
TODO

- isolate storage service:
  - remove http service from here
  - add ipc service
    - admin:
      - add room/device/MQTT topic/value
      - edit room/device/MQTT topic/value
      - del room/device/MQTT topic/value
      - get received topics
      - list rooms/devices/MQTT topics/values
      - getValues(valueId, timeFrom, timeUntil)
      - addValue(valueId/valueName, timeStamp, value)
  - aqhome-tool    
    - add ipc admin code to connect to ipc service
- create http service as stand-alone app or create PHP code which uses aqhome-tool
  - connect to storage service for information/admin



- move http service into own folder
- isolate functions:
  - getRoomList
  - getDeviceList
  - getTopicList
  - addRoom/Device/Topic/Value
  - delRoom/Device/Topic/Value
  - editRoom/Device/Topic/Value



- aqhome-storage->aqhome-data

- aqhome-data
  - only list of values
  - manages datafiles only
  - IPC (later secure ipc):
    - get value list
    - add value
    - del value
    - edit value

    - add datapoint(valueId, timestamp, data)
    - add datapoint(valueName, timestamp, data)

    - getData(valueId, timeFrom, timeUntil)
    - getLastData(valueId)

  - aqhome-tool:
    - add ipc code
  
- aqhome-mqttdata:
  - use devices, topics and values from aqhome-storage
  - derive valueid and data from mqtt messages
  - send data to aqhome-data via ipc (later secure ipc)


- mqtt values:
  - aliases (e.g. for doors: open=1.0, closed=0.0, tilted=0.5)


- later services only:
  - aqhomed (tty, ipcd)
  - aqhome-data (ipcd)
  - aqhome-mqtt (mqttc, ipcd)
  - aqhome-httpd (maybe; httpd, ipcc)

