Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Supported OS runtime

  • Linux

How does client interact

  • Interaction to device service is through GObject API
  • What do clients do
    • clients kicking off pairing/commissioning devices or interacting with already paired devices
    • These requests will usually percolate to technology-specific device drivers that may leverage subsystems for physical device interaction
    • In the case of Zigbee and Matter, these drivers may utilize standard cluster implementations
      • Zigbee core
      • Matter SDK
  • Devices are stored in an internal device database
  • Device Service device model is an attempt to standard device interaction for clients by abstracting out technology-specific concepts.
    • Sample device Model
      • Code Block
        deviceService> dump
        /2a63de336194874e
                deviceClass=light
                deviceClassVersion=3
                managingDeviceDriver=matterLight
                resources:
                        /2a63de336194874e/r/manufacturer
                                value=TP-Link
                                ownerId=2a63de336194874e
                                type=com.icontrol.string
                                mode=0x1 (r------)
                        /2a63de336194874e/r/model
                                value=Mini Smart Wi-Fi Plug
                                ownerId=2a63de336194874e
                                type=com.icontrol.string
                                mode=0x21 (r---e--)
                        /2a63de336194874e/r/hardwareVersion
                                value=1
                                ownerId=2a63de336194874e
                                type=com.icontrol.version
                                mode=0x1 (r------)
                        /2a63de336194874e/r/firmwareVersion
                                value=0x00000001
                                ownerId=2a63de336194874e
                                type=com.icontrol.version
                                mode=0x39 (r--de--)
                        /2a63de336194874e/r/firmwareUpdateStatus
                                value=(null)
                                ownerId=2a63de336194874e
                                type=com.icontrol.firmwareVersionStatus
                                mode=0x39 (r--de--)
                        /2a63de336194874e/r/dateAdded
                                value=1744644845171
                                ownerId=2a63de336194874e
                                type=com.icontrol.dateTime
                                mode=0x1 (r------)
                        /2a63de336194874e/r/dateLastContacted
                                value=1744664466026
                                ownerId=2a63de336194874e
                                type=com.icontrol.dateTime
                                mode=0x59 (r--d-l-)
                        /2a63de336194874e/r/communicationFailure
                                value=false
                                ownerId=2a63de336194874e
                                type=com.icontrol.trouble
                                mode=0x39 (r--de--)
                        /2a63de336194874e/r/resetToFactoryDefaults
                                value=(null)
                                ownerId=2a63de336194874e
                                type=com.icontrol.resetToFactoryOperation
                                mode=0x4 (--x----)
                        /2a63de336194874e/r/serialNumber
                                value=(null)
                                ownerId=2a63de336194874e
                                type=com.icontrol.serialNumber
                                mode=0x1 (r------)
                        /2a63de336194874e/r/firmwareVersionString
                                value=1.0.0 Build 220930 Rel.143947
                                ownerId=2a63de336194874e
                                type=com.icontrol.string
                                mode=0x39 (r--de--)
                        /2a63de336194874e/r/macAddress
                                value=30de4bdb8034
                                ownerId=2a63de336194874e
                                type=com.icontrol.macAddress
                                mode=0x1 (r------)
                        /2a63de336194874e/r/networkType
                                value=wifi
                                ownerId=2a63de336194874e
                                type=com.icontrol.networkType
                                mode=0x1 (r------)
                endpoints:
                        /2a63de336194874e/ep/1
                                profile=light
                                profileVersion=0
                                ownerId=2a63de336194874e
                                resources:
                                        /2a63de336194874e/ep/1/r/label
                                                value=Matter Light
                                                ownerId=2a63de336194874e
                                                type=com.icontrol.label
                                                mode=0x3b (rw-de--)
                                        /2a63de336194874e/ep/1/r/isOn
                                                value=true
                                                ownerId=2a63de336194874e
                                                type=com.icontrol.boolean
                                                mode=0x7b (rw-del-)
                metadata:
                                {
                "vendor":       "TP-Link",
                "product":      "Mini Smart Wi-Fi Plug",
                "hwVer":        "1",
                "swVer":        "0x00000001",
                "swStr":        "1.0.0 Build 220930 Rel.143947",
                "serialNumber": null,
                "macAddress":   "30de4bdb8034",
                "networkType":  "wifi",
                "endpoints":    [{
                                "endpointId":   0,
                                "deviceTypes":  [{
                                                "type": 22
                                        }],
                                "servers":      [29, 31, 40, 42, 48, 49, 51, 60, 62, 63],
                                "clients":      [41],
                                "parts":        [1]
                        }, {
                                "endpointId":   1,
                                "deviceTypes":  [{
                                                "type": 266
                                        }],
                                "servers":      [3, 4, 5, 6, 29],
                                "clients":      [],
                                "parts":        []
                        }]
        }
        /fdddc46b3881fe3c
                deviceClass=light
                deviceClassVersion=3
                managingDeviceDriver=matterLight
                resources:
                        /fdddc46b3881fe3c/r/manufacturer
                                value=Onvis
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.string
                                mode=0x1 (r------)
                        /fdddc46b3881fe3c/r/model
                                value=S4
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.string
                                mode=0x21 (r---e--)
                        /fdddc46b3881fe3c/r/hardwareVersion
                                value=1
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.version
                                mode=0x1 (r------)
                        /fdddc46b3881fe3c/r/firmwareVersion
                                value=0x0098bd9b
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.version
                                mode=0x39 (r--de--)
                        /fdddc46b3881fe3c/r/firmwareUpdateStatus
                                value=failed
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.firmwareVersionStatus
                                mode=0x39 (r--de--)
                        /fdddc46b3881fe3c/r/dateAdded
                                value=1744663050010
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.dateTime
                                mode=0x1 (r------)
                        /fdddc46b3881fe3c/r/dateLastContacted
                                value=1744664452372
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.dateTime
                                mode=0x59 (r--d-l-)
                        /fdddc46b3881fe3c/r/communicationFailure
                                value=false
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.trouble
                                mode=0x39 (r--de--)
                        /fdddc46b3881fe3c/r/resetToFactoryDefaults
                                value=(null)
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.resetToFactoryOperation
                                mode=0x4 (--x----)
                        /fdddc46b3881fe3c/r/serialNumber
                                value=70016cdbb45b44b3839f9c06aaad5b65
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.serialNumber
                                mode=0x1 (r------)
                        /fdddc46b3881fe3c/r/firmwareVersionString
                                value=1.1.11-c85ba1e-dirty
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.string
                                mode=0x39 (r--de--)
                        /fdddc46b3881fe3c/r/macAddress
                                value=000000000000
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.macAddress
                                mode=0x1 (r------)
                        /fdddc46b3881fe3c/r/networkType
                                value=thread
                                ownerId=fdddc46b3881fe3c
                                type=com.icontrol.networkType
                                mode=0x1 (r------)
                endpoints:
                        /fdddc46b3881fe3c/ep/1
                                profile=light
                                profileVersion=0
                                ownerId=fdddc46b3881fe3c
                                resources:
                                        /fdddc46b3881fe3c/ep/1/r/label
                                                value=Matter Light
                                                ownerId=fdddc46b3881fe3c
                                                type=com.icontrol.label
                                                mode=0x3b (rw-de--)
                                        /fdddc46b3881fe3c/ep/1/r/isOn
                                                value=true
                                                ownerId=fdddc46b3881fe3c
                                                type=com.icontrol.boolean
                                                mode=0x7b (rw-del-)
                metadata:
                                {
                "vendor":       "Onvis",
                "product":      "S4",
                "hwVer":        "1",
                "swVer":        "0x0098bd9b",
                "swStr":        "1.1.11-c85ba1e-dirty",
                "serialNumber": "70016cdbb45b44b3839f9c06aaad5b65",
                "macAddress":   "000000000000",
                "networkType":  "thread",
                "endpoints":    [{
                                "endpointId":   0,
                                "deviceTypes":  [{
                                                "type": 22
                                        }],
                                "servers":      [29, 31, 40, 48, 49, 51, 60, 62, 63, 53, 42],
                                "clients":      [41],
                                "parts":        [1]
                        }, {
                                "endpointId":   1,
                                "deviceTypes":  [{
                                                "type": 266
                                        }],
                                "servers":      [29, 3, 4, 5, 6],
                                "clients":      [],
                                "parts":        []
                        }]
        }
        deviceService>