[Modul] ZigBee-DeCONZ

Nein, das ist nicht nur der Rauchmelder. Immer, wenn du die Konfiguration deines Thermostats änderst, fragt DeCONZ vorher die aktuelle Konfiguration ab. In der Antwort sind dann die configs aller Geräte, also auch vom Rauchmelder. Das ist normal und richtig.

Jepp, ist ab sofort in der aktuellen Beta in der Instanz einstellbar.
Grüße
Jürgen

V3.25 - Neu: lastseen/lastannounced

Ab dieser Version kann man in der Instanz entscheiden, ob man sich die Zeitstempel von „lastseen“ und/oder „lastannounced“ anzeigen lassen möchte.

Wie immer ist die neue Version zunächst als Beta im Module-Store erhältlich.

Grüße
Jürgen

OK, werde das mal beobachten - hatte eigentlich keine Änderung an der Konfiguration vorgenommen und nach meiner (groben) Beobachtung war es immer der gleiche Rauchmelder. Wenn ich nähere Erkenntnisse habe, melde ich mich dazu nochmal.

lastseen/lastannounced funktioniert :slight_smile:

Vielen Dank
LG Frank

steht doch im Debug: „config/externalsensortemp“ :wink:

ah - das ist die Übernahme der externen Temperatur … wäre für mich eher eine Statusänderung als eine Config-Änderung. :sunglasses:

Hallo Jürgen,
ist es richtig, dass die beiden Informationen nur aus dem Bosch Thermostat bereitgestellt werden oder sollte das bei anderen Zigbee-Komponenten auch funktionieren ? Bei meinen Aqara- und Heiman-Komponenten kommt noch nichts…

LG Frank

nein, die lastseen und lastannounced funktioniert bei allen Geräten. Wann und wie häufig DeCONZ diese Infos sendet bleibt aber das Geheimnis von DeCONZ. Bei meinen Geräten kommen die Infos einmal pro Minute.

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“