# Diller Arduino Library Diller is an IoT environment for makers that want an fast and easy way of connecting their projects to the internet. Everything is open source but everything is also hosted so you can either install everything yourself or just ust the instance running at https://trygvis.io/diller. A setup consists of a device with a Diller client, a gateway and a web frontend. ## Features # Diller MQTT Diller uses MQTT to communicate between the client and the gateway. ## Device / Property hierarchy All messages are published under the `/diller` path. / /property / /value /type (retained) /name (retained) /description (retained) The device id is a globally unique id of the device. The MAC address of devices is a useful identifier. The property id is an device-specific identifier chosen by the device. # 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=.. ## Properties introspection Request: properties Response: ok count= property key=.. [name=..] [description=..] ## Change property TODO: Implement description? A longer string describing the property. Request: 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 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