Fix mqtt item expose detection only working on local instances
This commit is contained in:
parent
45676b3384
commit
58ba22b267
24 changed files with 340 additions and 415 deletions
|
|
@ -5,6 +5,32 @@
|
|||
|
||||
SensorStore globalSensors;
|
||||
|
||||
QString sensorUpdateTypeToString(sensor_update_type_t type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case SENSOR_UPDATE_USER:
|
||||
return "User";
|
||||
case SENSOR_UPDATE_REMOTE:
|
||||
return "Remote";
|
||||
case SENSOR_UPDATE_BACKEND:
|
||||
return "Backend";
|
||||
default:
|
||||
return "Invalid";
|
||||
}
|
||||
}
|
||||
|
||||
sensor_update_type_t sensorUpdateTypeFromString(const QString& string)
|
||||
{
|
||||
if(string == sensorUpdateTypeToString(SENSOR_UPDATE_USER))
|
||||
return SENSOR_UPDATE_USER;
|
||||
if(string == sensorUpdateTypeToString(SENSOR_UPDATE_REMOTE))
|
||||
return SENSOR_UPDATE_REMOTE;
|
||||
if(string == sensorUpdateTypeToString(SENSOR_UPDATE_BACKEND))
|
||||
return SENSOR_UPDATE_BACKEND;
|
||||
return SENSOR_UPDATE_INVALID;
|
||||
}
|
||||
|
||||
SensorStore::SensorStore(QObject *parent): QObject(parent)
|
||||
{
|
||||
}
|
||||
|
|
@ -12,7 +38,13 @@ SensorStore::SensorStore(QObject *parent): QObject(parent)
|
|||
void SensorStore::store(QJsonObject& json)
|
||||
{
|
||||
QJsonArray sensorsArray;
|
||||
for(const Sensor& sensor : sensors_)
|
||||
std::vector<Sensor> sensors = sensors_;
|
||||
for(const Sensor& sensor : knownSensors_)
|
||||
{
|
||||
if(std::find(sensors.begin(), sensors.end(), sensor) == sensors.end())
|
||||
sensors.push_back(sensor);
|
||||
}
|
||||
for(const Sensor& sensor : sensors)
|
||||
{
|
||||
QJsonObject sensorObject;
|
||||
sensor.store(sensorObject);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue