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.
/<device id>
/property
/<property id>
/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=<n>
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 switcheshumidity
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