aqhome-storage now checks and parses mqtt messages and stores values in datafiles.

This commit is contained in:
Martin Preuss
2023-08-12 16:55:06 +02:00
parent bcd3e3325c
commit a4c0f2e6fd
18 changed files with 517 additions and 53 deletions

View File

@@ -367,6 +367,7 @@ void AQH_Storage_HandleMqttPublish(AQH_STORAGE *sto, const char *sTopic, const c
topic=AQH_Storage_GetMqttTopicByTopic(sto, sTopic);
if (topic) {
DBG_INFO(AQH_LOGDOMAIN, "Handling MQTT topic \"%s\"", sTopic);
if (AQH_MqttTopic_GetDataType(topic)==AQH_MqttTopicType_Json)
_handleJsonTopic(sto, topic, sValue);
else
@@ -502,7 +503,13 @@ AQH_DATAFILE *_getDataFileByValueId(AQH_STORAGE *sto, uint64_t valueId)
df=_findDataFileByValueId(sto, valueId);
if (df==NULL) {
DBG_INFO(AQH_LOGDOMAIN, "Datafile for valueId \"%lu\" not in list, loading", (unsigned long int) valueId);
df=_openOrCreateDataFileByValueId(sto, valueId);
if (df==NULL) {
DBG_ERROR(AQH_LOGDOMAIN, "Error opening/creating datafile for valueId \"%lu\"", (unsigned long int) valueId);
return NULL;
}
DBG_INFO(AQH_LOGDOMAIN, "Adding datafile for valueId \"%lu\" to list", (unsigned long int) valueId);
AQH_DataFile_List_Add(df, sto->dataFileList);
}