[Modul] Zigbee2MQTT

Danke, das werde ich mir anschauen.

Grüße,
Kai

Hi Kai,
Die Instanzen bleiben nach dem Update auf Status Inaktiv
grafik

Funktion ist aber weiterhin gegeben.

Grüße
Daniel

Ich habe den falschen Status gesetzt, korrigiere ich noch.
Danke für die Rückmeldung.

Grüße,
Kai

Ohh Mist, falsch vorgesagt :slight_smile: Sorry …

Moin @KaiS

habe mal wieder ein fehlendes Profil (gilt für den Tuya Smart Air House Keeper):

11.03.2022, 20:00:28 | mapExposesToVariables:: Missed Exposes | {"light":[],"switch":[],"0":{"type":"numeric","name":"pm25","property":"pm25","access":1,"unit":"\u00b5g\/m\u00b3","description":"Measured PM2.5 (particulate matter) concentration"}}

Das Payload dazu:

11.03.2022, 20:14:00 |         MQTT Payload | {"zh":{"_events":{},"_eventsCount":0,"ID":34,"_type":"Router","_ieeeAddr":"0xa4c138f182a17360","_networkAddress":50570,"_manufacturerID":4417,"_endpoints":[{"_events":{},"_eventsCount":0,"ID":1,"profileID":260,"deviceID":81,"inputClusters":[4,5,61184,0],"outputClusters":[25,10],"deviceNetworkAddress":50570,"deviceIeeeAddress":"0xa4c138f182a17360","clusters":{"genBasic":{"attributes":{"65503":"-i�)i-i�)i","65506":54,"65508":0,"modelId":"TS0601","manufacturerName":"_TZE200_dwcarsat","powerSource":1,"zclVersion":3,"appVersion":70,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]},{"_events":{},"_eventsCount":0,"ID":242,"profileID":41440,"deviceID":97,"inputClusters":[],"outputClusters":[33],"deviceNetworkAddress":50570,"deviceIeeeAddress":"0xa4c138f182a17360","clusters":{},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_dwcarsat","_powerSource":"Mains (single phase)","_modelID":"TS0601","_applicationVersion":70,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1647026039749,"_defaultSendRequestWhen":"immediate","_linkquality":135},"_definition":{"fingerprint":[{"modelID":"TS0601","manufacturerName":"_TZE200_dwcarsat"}],"model":"TS0601_smart_air_house_keeper","vendor":"TuYa","description":"Smart air house keeper","fromZigbee":[{"cluster":"manuSpecificTuya","type":["commandDataReport","commandDataResponse"],"options":[{"type":"numeric","name":"temperature_precision","property":"temperature_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for temperature, takes into effect on next report of device."},{"type":"numeric","name":"temperature_calibration","property":"temperature_calibration","access":2,"description":"Calibrates the temperature value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"humidity_precision","property":"humidity_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for humidity, takes into effect on next report of device."},{"type":"numeric","name":"humidity_calibration","property":"humidity_calibration","access":2,"description":"Calibrates the humidity value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"co2_precision","property":"co2_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for co2, takes into effect on next report of device."},{"type":"numeric","name":"co2_calibration","property":"co2_calibration","access":2,"description":"Calibrates the co2 value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"voc_precision","property":"voc_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for voc, takes into effect on next report of device."},{"type":"numeric","name":"voc_calibration","property":"voc_calibration","access":2,"description":"Calibrates the voc value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"formaldehyd_precision","property":"formaldehyd_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for formaldehyd, takes into effect on next report of device."},{"type":"numeric","name":"formaldehyd_calibration","property":"formaldehyd_calibration","access":2,"description":"Calibrates the formaldehyd value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"pm25_precision","property":"pm25_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for pm25, takes into effect on next report of device."},{"type":"numeric","name":"pm25_calibration","property":"pm25_calibration","access":2,"description":"Calibrates the pm25 value (absolute offset), takes into effect on next report of device."}]}],"toZigbee":[{"key":["scene_store"]},{"key":["scene_recall"]},{"key":["scene_add"]},{"key":["scene_remove"]},{"key":["scene_remove_all"]},{"key":["read"]},{"key":["write"]},{"key":["command"]}],"exposes":[{"type":"numeric","name":"temperature","property":"temperature","access":1,"unit":"°C","description":"Measured temperature value"},{"type":"numeric","name":"humidity","property":"humidity","access":1,"unit":"%","description":"Measured relative humidity"},{"type":"numeric","name":"co2","property":"co2","access":1,"unit":"ppm","description":"The measured CO2 (carbon dioxide) value"},{"type":"numeric","name":"voc","property":"voc","access":1,"unit":"ppb","description":"Measured VOC value"},{"type":"numeric","name":"formaldehyd","property":"formaldehyd","access":1,"description":"The measured formaldehyd value"},{"type":"numeric","name":"pm25","property":"pm25","access":1,"unit":"µg/m³","description":"Measured PM2.5 (particulate matter) concentration"},{"type":"numeric","name":"linkquality","property":"linkquality","access":1,"unit":"lqi","description":"Link quality (signal strength)","value_min":0,"value_max":255}],"options":[{"type":"numeric","name":"temperature_precision","property":"temperature_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for temperature, takes into effect on next report of device."},{"type":"numeric","name":"temperature_calibration","property":"temperature_calibration","access":2,"description":"Calibrates the temperature value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"humidity_precision","property":"humidity_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for humidity, takes into effect on next report of device."},{"type":"numeric","name":"humidity_calibration","property":"humidity_calibration","access":2,"description":"Calibrates the humidity value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"co2_precision","property":"co2_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for co2, takes into effect on next report of device."},{"type":"numeric","name":"co2_calibration","property":"co2_calibration","access":2,"description":"Calibrates the co2 value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"voc_precision","property":"voc_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for voc, takes into effect on next report of device."},{"type":"numeric","name":"voc_calibration","property":"voc_calibration","access":2,"description":"Calibrates the voc value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"formaldehyd_precision","property":"formaldehyd_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for formaldehyd, takes into effect on next report of device."},{"type":"numeric","name":"formaldehyd_calibration","property":"formaldehyd_calibration","access":2,"description":"Calibrates the formaldehyd value (absolute offset), takes into effect on next report of device."},{"type":"numeric","name":"pm25_precision","property":"pm25_precision","access":2,"value_min":0,"value_max":3,"description":"Number of digits after decimal point for pm25, takes into effect on next report of device."},{"type":"numeric","name":"pm25_calibration","property":"pm25_calibration","access":2,"description":"Calibrates the pm25 value (absolute offset), takes into effect on next report of device."}]},"_definitionModelID":"TS0601"}

Gruß
Burkhard

Anbei noch die Maßeinheit für PM2.5: µg/m3 (0-1000)

Achja, die Maßeinheit bei Formaldehyd ist in diesem Fall ppm:

{
  "result": {
    "category": "pm2.5",
    "functions": [],
    "status": [
      {
        "code": "pm25_value",
        "dp_id": 2,
        "type": "Integer",
        "values": "{\"unit\":\"ug/m3\",\"min\":0,\"max\":999,\"scale\":0,\"step\":1}"
      },
      {
        "code": "temp_current",
        "dp_id": 18,
        "type": "Integer",
        "values": "{\"unit\":\"℃\",\"min\":0,\"max\":850,\"scale\":1,\"step\":1}"
      },
      {
        "code": "humidity_value",
        "dp_id": 19,
        "type": "Integer",
        "values": "{\"unit\":\"%\",\"min\":0,\"max\":1000,\"scale\":1,\"step\":1}"
      },
      {
        "code": "ch2o_value",
        "dp_id": 20,
        "type": "Integer",
        "values": "{\"unit\":\"ppm\",\"min\":0,\"max\":1000,\"scale\":3,\"step\":1}"
      },
      {
        "code": "voc_value",
        "dp_id": 21,
        "type": "Integer",
        "values": "{\"unit\":\"ppm\",\"min\":0,\"max\":2000,\"scale\":3,\"step\":1}"
      },
      {
        "code": "co2_value",
        "dp_id": 22,
        "type": "Integer",
        "values": "{\"unit\":\"ppm\",\"min\":350,\"max\":2000,\"scale\":0,\"step\":1}"
      }
    ]
  },

Vielleicht kann man das auch gleich noch anpassen und „scale“ gibt die Nachkommastellen an. Vielleicht auch ganz interessant für die Profile.

Guten Abend @KaiS ,

habe dein Modul (Beta 4.0) mit einem Eurotronic Spirit Heizkörperthermostat getestet.
Dabei ist kein setzen der Temperatur möglich (‚Z2M_OccupiedHeatingSetpoint‘). Im Z2M Log kam ein „Invalid Value“ als Fehler an. Ich habe mir daraufhin dein Modul angeschaut und an der betreffenden Stelle in „Zigbee2MqttHelper.php“ folgende Zeilen geändert, dann gehts:
case ‚Z2M_OccupiedHeatingSetpoint‘:
//$Payload[‚occupied_heating_setpoint‘] = strval($Value);
$Payload[‚occupied_heating_setpoint‘] = $Value;
break;
D.h. der Wert (Float) darf nicht als String übergeben werden. Dein Code funktioniert nur, wenn man als Wert eine Ganzzahl (z.B. 22) übergibt, nicht jedoch bei einem Float (z.B. 22.5).

Ich teste jetzt weiter, ggf. muss du das noch an weiteren Stellen korrigiueren.

Könntest du das im Modul entsprechend anpassen?

Danke dir und Gruß
Georg

Moin Kai,
wenn Du die obigen Wünsche erfüllst kannst Du bitte den Status von 104 (inaktiv) auf 102 (aktiv) setzen?

Ralf

Hallo zusammen,

ich habe mal versucht, die Anbindung von Zigbee2MQTT mit IPS Bordmitteln umzusetzen. Der Grund liegt darin, dass ich eine Methode wollte, welche mich unabhängig macht von notwendigen Anpassungen im IPS Modul. Das hat erstaunlich gut funktioniert. Der Nachteil ist, dass man relativ viel händisch konfigurieren muss. Der Vorteil ist, dass man jedes Device, welches von Zigbee2MQTT unterstützt wird, direkt in IPS nutzen kann, ohne möglicherweise Anpassungen im IPS Modul vornehmen zu müssen, weil hier das Device vllt. noch nicht bekannt ist. Ich möchte damit das IPS Modul keinesfalls in Frage stellen. Dieses ist insbesondere bei der Konfiguration deutlich einfacher und schneller. Wer aber den oben genannten Vorteil haben will, kann dies mit Standard IPS Mitteln umsetzen.

Gruß
Georg

6 Beiträge wurden in ein neues Thema verschoben: Zigbee2MQTT Frontend Update

Das sollte nun in der aktuelle Version vorhanden sein.

Grüße,
Kai

Das sollte mit der neuen Version auch gefixt sein.

Grüße,
Kai

1 „Gefällt mir“

Kannst du mal zwei Debugs posten, also ein mal mit einem Float Wert und ein mal mit einem Integer Wert.
Bei beiden natürlich mit dem Code von mir.

Grüße,
Kai

So… Ich habe zwar gehofft niemandem auf die Nerven gehen zu müssen, aber ich komme einfach nicht weiter.

Setup:

  • IP Symcon als MQTT Server
  • zigbee2mqtt läuft
  • Sonoff USB 3.0 Adapter
  • zwei Steckdosenleisten von Lidl (Silvercrest)

Wenn ich die Leisten mit dem MQTT-Explorer anspreche klappt alles, d.h. das Setup an sich funktioniert.

Aber ich bekomme das Ganze nicht in IPS.
Ich habe das Modul installiert und auch die IPSymconExtension.js ins entsprechende Verzeichnis kopiert.
Es wurde mir auch im Objektbaum automatisch eine Verzeichnisstruktur angelegt:


(wobei „index (1)“ der Coordinator ist und 2&3 die beiden Steckdosenleisten)

Allerdings zeigt der Z2M Konfigurator keine Geräte an. Wenn ich den ausführe bzw. auf „aktualisieren“ klicke, sehe ich im MQTT-Explorer:

Versuche ich manuell ein Gerät anzulegen und aus IPS mit dem „offiziellen“ Befehl "message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state_l1": "ON"}" die Leiste zu schalten passiert nichts.
Im Debugger erscheint die Meldung:

{„DataID“:"{7F7632D9-FA40-4F38-8DEA-C83CD4325A32}",„PacketType“:3,„QualityOfService“:0,„Retain“:false,„Topic“:„zigbee2mqtt/bridge/logging“,„Payload“:"{„level“:„error“,„message“:„Entity ‚zigbee2mqtt/0xec1bbdfffea57892‘ is unknown“}"}

Wenn ich die Leiste aus dem MQTT-Explorer schalte bekomme ich die Rückmeldung:

{„DataID“:"{7F7632D9-FA40-4F38-8DEA-C83CD4325A32}",„PacketType“:3,„QualityOfService“:0,„Retain“:false,„Topic“:„zigbee2mqtt/bridge/logging“,„Payload“:"{„level“:„info“,„message“:„MQTT publish: topic ‚zigbee2mqtt/0xec1bbdfffea57892‘, payload ‚{\„linkquality\“:39,\„state_l1\“:\„OFF\“,\„state_l2\“:\„OFF\“}‘“}"}

Ich bin ratlos… Was mache ich falsch?

Ich frage mich gerade, warum Deine Geräte unter Bridge zu finden sind?

Was hast Du denn im z2m-Konfigurator eingestellt und bist Du auf dem Beta-Zweig von @KaiS z2m-Modul?

Und wichtig: Hast Du beim z2m-Konfigurator von @KaiS das richtige Gateway (MQTT-Server) eingestellt?

Im Konfigurator sollte es dann so aussehen:

Gruß
Burkhard

Das wundert mich übrigens noch viel mehr, dass dürfte nicht passieren, wenn Du @KaiS sein Modul nutzt.

Gruß
Burkhard

Das wurde vom MQTT-Server Konfigurator automatisch so angelegt. Da habe ich eigentlich garnichts gemacht.

Ich habe das Modul aus dem ModulStore installiert (Version 3.4.1). Von einer Beta-Version habe ich nichts gesehen.

Ja, das sollte eigentlich alles passen:

Z2M_Gateway

Ich hab’s gefunden.
Der Hinweis mit der Beta war es. Damit werden die Gerät jetzt im Z2M Konfigurator gefunden und ich kann beide Steckdosenleisten schalten.

Merci!

Sehr gut, dann hat ja noch alles geklappt.

Grüße,
Kai

@KaiS

Moin,

ich hab da mal ne generelle Frage: Manch einer hat im Configurator „bridge“ las topic zu stehen, manch einer (so wie ich) „tigbee2mqtt“.

Was wäre denn jetzt der eigentlich korrekte Eintrag und welche Auswirkungen hat es wenn ich „bridge“ anstelle von „zigbee2mqtt“ nehme?

Gruß
Burkhard

Ich würde mal behaupten, dass das im Kern völlig egal ist, wichtig ist, das überall das gleiche Base Topic steht, also im Z2M
grafik

und im Configurator vom Modul
grafik

und vor allem in jeder Instanz, gerade wenn sie von Hand angelegt wurde und nicht über den Configurator
grafik