[Modul] ZigBee-DeCONZ

ich habe mal noch einen Dump von einem Aqara Fenstersensor. Der meldet lastannounced als NULL und lastseen mit einen gültigen Zeitpunkt.
Wäre es möglich, dass der NULL-Wert zu einem Problem führt ?
dump.txt (3,4 KB)

Grüße Frank

Kann ich dir nicht sagen. Aber dafür gibt es ja den Schalter. Schalte den NULL-Wert einfach weg. Dann weißt du mehr.

UPDATE: Habe eben deinen JSON-String aus dem debug bei mir durchgejagt. Führt zu keinerlei Problemen.

alles klar - danke. Ich muss mal weiter forschen … nur 3 von 10 Bosch-Thermostaten bringen die Informationen ins IPS. Bei den anderen werden die Attribute nicht angelegt.

Schalter für den NULL-Wert hast du auf „aus“ und den für „lastseen“ auf an?
Es kommen keine Fehlermeldungen?

hm - wo ist der Schalter für NULL-Wert ?

image

„zuletzt angekündigt“ ist der NULL-Wert. Der muss aus.

Ah - sorry … habe nicht verstanden, was du meintest. Ja, wenn man das Attribut deaktiviert, dann funktioniert es überall. Komisch nur, dass 3 Thermostate den Wert liefern und 7 nicht. Mit der FW kann es aber nicht zusammenhängen. Aber egal, LastSeen ist eh wichtiger - danke.

Das NULL-Wert-Thema habe ich jetzt gefixt.

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\"}"}

aktuell fehlt mir leider die Zeit, da etwas zu basteln. Wenn du das selbst machen magst, dann kann ich das gerne später übernehmen.
Grüße
Jürgen

Kein Problem. Bin mir allerdings nicht sicher, ob ich das schaffe. Aber ich such mal.
Edit: Ok, ich l<ss es :slight_smile: ist besser.

Hast eventuell einen Tip wo ich was suchen muss, damit die Variablen angelegt werden und befüllt werden?

Ich bekomme Werte. Keine Ahnung ob das richtig ist, was ich gemacht habe. Jedenfalls habe ich im Skript DeconzBaseModule.php Abfragen zu den Sensoren gefunden und dann das eingefügt:

				//Änderung Helmut Beginn
				if (property_exists($Payload, 'measured_value')) {
					$this->RegisterVariableFloat('Z2D_value', $this->Translate('Value'), '');
					$this->SetValue('Z2D_value', $Payload->measured_value);
				}
				//Änderung Helmut Ende

Es werden Variablen mit dem Namen „Value“ und ohne Profil angelegt. Ebenso der Ident wird auf Z2D_value gesetzt. Nicht schön, aber vorerst egal. Das kann ich in IPS ja alles ändern.
Es kommen keine Nachkommastellen. Der ORP (Redox) ist um den Faktor 10000 und der PH um 100 zu hoch. Auch kein Beinbruch.
Ob das so stimmt und ob die Werte plausibel sind, werde ich beobachten.

Ich hänge das mal an. Meine Änerungen sind ab Zeile 321.
DeconzBaseModule.zip (4,9 KB)

1 „Gefällt mir“