The Device Twin service holds information about the state of the connected devices. Once a device is registered in the IoT Identity Service, a device twin it created to hold the current and desired state of the device.
The device twin record holds:
- Summary of the device
- Last known heartbeat from the device
- The groups that the device belongs to
- Details about the device's state
- Details about the device's desired state
The service provides a cache so the devices can be monitored by the IoT Management Service, and relays actions to the device IoT agent e.g. to install a new application.
The project uses vendorized dependencies using govendor. Development has been done on minimum Go version 1.12.1.
$ go get github.com/canonical/iot-devicetwin
$ cd iot-devicetwin
$ go build ./...go run cmd/devicetwin/main.go -help
-configdir string
Directory path to the config file (default "certs")
-datasource string
The data repository data source
-driver string
The data repository driver (default "memory")
-mqttport string
Port of the MQTT broker (default "8883")
-mqtturl string
URL of the MQTT broker (default "mqtt.example.com")
-port string
The port the service listens on (default "8040")The service connects to the MQTT Broker using the certificates in the configdir (named ca.crt, server.crt and server.key).
Before contributing you should sign Canonical's contributor agreement, it’s the easiest way for you to give us permission to use your contributions.