[Modul] ZigBee-DeCONZ

Hallo @Silberstreifen
Ich hab mal wieder was neues :smiley:
Einen Zigbee ORP, Chlor, Salz und was weiß ich noch alles Messer. Mit dem richtigen DDF (kann ich gerne auch bereitstellen), klappt es auch mit DeconZ und ich bekomme die Instanzen auch nach IPS.


Leider ohne Variablen (Korrektur: die Temperatur kommt an)
Ich häng mal mein Dump vom Konfigurator an.
debug.txt (198,8 KB)


Es ist dieses Teil

Mit dieser DDF

{
  "schema": "devcap1.schema.json",
  "manufacturername": "_TZE200_v1jqz5cy",
  "modelid": "TS0601",
  "vendor": "Tuya",
  "product": "Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL",
  "sleeper": false,
  "status": "Gold",
  "path": "/devices/_TZE200_TS0601_v1jqz5cy_v12.json",
  "subdevices": [
    {
      "type": "$TYPE_TEMPERATURE_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0514"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/battery",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 7,
            "eval": "Item.val = Attr.val;",
            "fn": "tuya"
          },
          "default": 0
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/temperature",
          "refresh.interval": 3600,
          "read": {
            "fn": "tuya"
          },
          "parse": {
            "dpid": 2,
            "eval": "Item.val = (10 * Attr.val);",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_PH_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0512"
      ],
      "items": [
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "cap/measured_value/unit",
          "static": "pH"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/measured_value",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 10,
            "eval": "Item.val = Attr.val;",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_CHLORINE_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x041a"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "cap/measured_value/max",
          "default": 0
        },
        {
          "name": "cap/measured_value/min",
          "default": 0
        },
        {
          "name": "cap/measured_value/unit",
          "static": "mg/L"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/measured_value",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 102,
            "eval": "Item.val = (ZclFrame.at(3) << 32) | (ZclFrame.at(2) << 16) | (ZclFrame.at(1) << 8) | ZclFrame.at(0);",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_ORP_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x042a"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "cap/measured_value/max",
          "description": "Maximum value of state/measured_value.",
          "default": 0
        },
        {
          "name": "cap/measured_value/min",
          "description": "Minimum value of state/measured_value.",
          "default": 0
        },
        {
          "name": "cap/measured_value/unit",
          "static": "mV"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/measured_value",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 101,
            "eval": "Item.val = (ZclFrame.at(3) << 32) | (ZclFrame.at(2) << 16) | (ZclFrame.at(1) << 8) | ZclFrame.at(0);",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_EC_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x043a"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "cap/measured_value/max",
          "description": "Maximum value of state/measured_value.",
          "default": 0
        },
        {
          "name": "cap/measured_value/min",
          "description": "Minimum value of state/measured_value.",
          "default": 0
        },
        {
          "name": "cap/measured_value/unit",
          "static": "μS/cm"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/measured_value",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 11,
            "eval": "Item.val = (ZclFrame.at(3) << 32) | (ZclFrame.at(2) << 16) | (ZclFrame.at(1) << 8) | ZclFrame.at(0);",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_TDS_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x042B"
      ],
      "items": [
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "cap/measured_value/unit",
          "static": "ppm"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/measured_value",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 1,
            "eval": "Item.val = Attr.val;",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_SALT_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x040D"
      ],
      "items": [
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "cap/measured_value/unit",
          "static": "ppm"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/measured_value",
          "read": {
            "fn": "none"
          },
          "parse": {
            "dpid": 117,
            "eval": "Item.val = Attr.val;",
            "fn": "tuya"
          },
          "default": 0
        }
      ]
    }
  ]
}

Edi
Ich hab ein paar Debug Meldungen wenn Werte kommen

20.06.2024, 18:05:46 |             Received | {"DataID":"{D7B089F0-6AFD-8861-2226-07B675D951B1}","Buffer":"{\"e\":\"changed\",\"id\":\"237\",\"r\":\"sensors\",\"state\":{\"lastupdated\":\"2024-06-20T16:05:46.037\",\"measured_value\":6717186},\"t\":\"event\",\"uniqueid\":\"7c:c6:b6:ff:fe:8a:e0:14-01-041a\"}"}

20.06.2024, 18:05:45 |             Received | {"DataID":"{D7B089F0-6AFD-8861-2226-07B675D951B1}","Buffer":"{\"e\":\"changed\",\"id\":\"239\",\"r\":\"sensors\",\"state\":{\"lastupdated\":\"2024-06-20T16:05:45.819\",\"measured_value\":752898},\"t\":\"event\",\"uniqueid\":\"7c:c6:b6:ff:fe:8a:e0:14-01-043a\"}"}

20.06.2024, 18:05:45 |             Received | {"DataID":"{D7B089F0-6AFD-8861-2226-07B675D951B1}","Buffer":"{\"e\":\"changed\",\"id\":\"238\",\"r\":\"sensors\",\"state\":{\"lastupdated\":\"2024-06-20T16:05:45.944\",\"measured_value\":6651394},\"t\":\"event\",\"uniqueid\":\"7c:c6:b6:ff:fe:8a:e0:14-01-042a\"}"}

20.06.2024, 18:05:45 |             Received | {"DataID":"{D7B089F0-6AFD-8861-2226-07B675D951B1}","Buffer":"{\"e\":\"changed\",\"id\":\"236\",\"r\":\"sensors\",\"state\":{\"lastupdated\":\"2024-06-20T16:05:45.694\",\"measured_value\":710},\"t\":\"event\",\"uniqueid\":\"7c:c6:b6:ff:fe:8a:e0:14-01-0512\"}"}

20.06.2024, 18:05:47 |             Received | {"DataID":"{D7B089F0-6AFD-8861-2226-07B675D951B1}","Buffer":"{\"e\":\"changed\",\"id\":\"241\",\"r\":\"sensors\",\"state\":{\"lastupdated\":\"2024-06-20T16:05:47.819\",\"measured_value\":216},\"t\":\"event\",\"uniqueid\":\"7c:c6:b6:ff:fe:8a:e0:14-01-040d\"}"}

20.06.2024, 18:05:45 |             Received | {"DataID":"{D7B089F0-6AFD-8861-2226-07B675D951B1}","Buffer":"{\"e\":\"changed\",\"id\":\"240\",\"r\":\"sensors\",\"state\":{\"lastupdated\":\"2024-06-20T16:05:45.366\",\"measured_value\":216},\"t\":\"event\",\"uniqueid\":\"7c:c6:b6:ff:fe:8a:e0:14-01-042b\"}"}