# TODOs / Notes Is registration required? Can't the firmware just send an update without a value on every boot? # MQTT ## Device / Property hierarchy / /property / /value /type (retained) /name (retained) /description (retained) /type TODO: remove? /status TODO: remove? type specified what the message looks like /firmware For updating the device's firmware # Diller serial API ## Network settings Request: Update or query network settings. If no paramters are given, no changes are done. If ip is set to a blank string, it will use DHCP. network [ip=..] [gateway=..] [netmask=..] Response: The command will always return the current values. ok ip=.. gateway=.. netmask=.. netmask=.. ## Wlan settings Request: Update or query wlan settings. If no paramters are given, no changes are done. wlan [ssid=..] [password=..] Response: The command will always return the current values. ok ssid=.. ## List properties Request: list-properties Response: ok count= property key=.. [name=..] [description=..] ## Set property value TODO: Implement description? A longer string describing the property. Request: set-property id=.. [value=..] [name=..] Type examples: * `temperature` * `switch` - boolean switches * `humidity` * `rtc` Response: ok The value might not be updated directly, but may be buffered on the device if it is not yet connected. ## Reset the device Request: reset Response ok # Example session require('main').main(); Get the current network configuration to update the Arduino's LCD display > network < ok ip=1.3.3.7 netmask=255.255.255.0 gateway=1.3.3.1 ssid=awesome Register the properties. This is done on every boot to keep the server in sync with the firmware's features. Old properties will not be removed. > set-property id=temp-0 value=12.3 type=temperature name=Water < ok