Files
aqhomecontrol/aqhome/data/README
2023-08-12 02:06:54 +02:00

97 lines
1.6 KiB
Plaintext

room:
- id
- name
- description
- colour
device
- id
- name
- room
- location
- description
mqtt-topic:
- id
- deviceId
- mqttTopic
- mqttDataType (num, json)
value:
- id
- topicId
- value type (temp, humidity, speed, door, length, width, counter, gauge)
- units
- dataPath (for JSON)
datapoint:
- value id
- timestamp
- value
lastDatapoint: (DB: no rollback, otherwise db would double in size)
- module id
- timestamp
- value
Processing MQTT publish messages:
- create data point
- set timestamp in data point
- find MQTT_TOPIC for topic string
- mqttType:
- num:
- lookup first value
- store data in data point
- json: parse data
- for every VALUE assigned to that topic:
- store data in data point
- write data point to long term db
- write data point to lastValues db
Storage API:
- handleMqttPublish(AQH_STORAGE *st, const char *topic, const char *value)
- addDevice(AQH_STORAGE *st, AQH_DEVICE *dev)
- getDeviceList(const AQH_STORAGE *st)
- getDeviceById(const AQH_STORAGE *st, uint32_t id)
- addMqttTopic(AQH_STORAGE *st, AQH_MQTT_TOPIC *t);
- getMqttTopicList(const AQH_STORAGE *st)
- getMqttTopicById(const AQH_STORAGE *st, uint32_t id)
- getMqttTopicByTopic(const AQH_STORAGE *st, const char *topic)
- addValue(AQH_STORAGE *st, AQH_VALUE *value)
- getValueList(const AQH_STORAGE *st)
- getValueById(const AQH_STORAGE *st, uint32_t id)
datafile:
- valueId
- filename
- number of entries
- fd
- getNumOfEntries()
- readRecord(id, &record)
- addRecord(record)
datarecord in file:
- 8 bytes timestamp
- 8 bytes value