[Modul] Zigbee2MQTT

Danke. Ich weiß nun wieso und werde es fixen.

Grüße,
Kai

Moin Kai,
mit der aktuellen Beta wird Position jetzt angelegt aber immer noch nicht aktualisiert. State wird weder angelegt noch aktualisiert. Z2M schickt aber Daten:

info  2021-12-27 10:08:05: MQTT publish: topic 'zigbee2mqtt/HK/Rollo', payload '{"linkquality":117,"motor_speed":40,"position":100,"running":false,"state":"OPEN"}'
info  2021-12-27 10:08:05: MQTT publish: topic 'zigbee2mqtt/HK/Rollo', payload '{"linkquality":117,"motor_speed":40,"position":100,"running":false,"state":"OPEN"}'

anbei debug von aktueller Version.

Ralf
dump.zip (5,4 KB)

Genau, ich brauchte dazu das neue Debug. Danke!

Grüße,
Kai

Es gibt eine neue Beta Version, dort sollte eigentlich alles funktionieren.
Kannst du es mal testen?

Grüße,
Kai

Hi,
Variablen werden jetzt alle angelegt aber nicht aktualisiert. Was mich verwirrt ist das die Daten, die Z2M an HK/Rollo schickt, nicht im Debug auftauchen. Debug anbei. Wenn ich Befehl testen bei State und Motor Speed mache bekomme ich einen PHP-Error siehe Bilder.

Ralf
rollo motor speed


dump.zip (4,3 KB)

So die Fehlermeldungen sollte nicht mehr auftauchen.
Versuch es jetzt nochmal und schau ob geschaltet wird.

Grüße,
Kai

Hi,
mit dem letzten Update kommen jetzt auch Werte an. Nur beim State-Profil muss noch alles in GROSS geschrieben werden also OPEN, CLOSE, STOP dann ist es perfekt.

btw. statt öffnen, schließen wäre Geöffnet/Geschlossen besser den während der Aktion ändert sich nichts nur wenn der Endzustand erreicht ist.

Ralf

Funktioniert das kleingeschrieben nicht?

Grüße,
Kai

Moin @KaiS ,

wenn Du die Werte im Profil auch für die Übermittlung per json an die Device nutzt, wird es nicht funktionieren, da z2m die payloads im Konverter in Großschrift erwartet.
Wenn das Profil kleingeschrieben ist, die Werte aber in Großschrift gesendet werden, spielt die Schreibform im Profil keine Rolle.

if (position > 0 && position <= 100) {
                    return {running, position, state: 'OPEN'};
                } else if (position == 0) { // Report fully closed
                    return {running, position, state: 'CLOSE'};
                } else {
                    return {running}; // Not calibrated yet, no position is available

Übrigens kann man die Motorgeschwindigkeit bei meinem NICHT beeinflussen, dass ist aber auch bekannt. @HarmonyFan : Hat das verstellen der Motorgeschwindigkeit bei Dir Auswirkungen?

Ansonsten läuft es bei mir problemlos:
image

Was Ralf meint ist, der Status (Öffnen/Schließen/Stopp) wird in Symcon nicht angezeigt und auch nicht geändert. Auch im Webfront ist aktuell der Status (Offen/Zu) derzeitig nur am der Position erkennbar. Was Schade ist, da das Payload den Zustand (Open, Close) enthält.

Dann noch, wenn ich eine Motorgeschwindigkeit einstelle, wird das Payload zwar gesendet, aber nicht quittiert. Auch nicht, wenn ich es direkt über z2m verändere. Demzufolge wird die Variable in Symcon derzeitig auch nicht gefüllt.
Wobei die Motorgeschwindigkeit im Payload aber doch mitgesendet wird:

TXT: 28.12.2021, 06:44:23 |         Z2MSet Topic | zigbee2mqtt/Büro/Rollo/set
TXT: 28.12.2021, 06:44:23 |       Z2MSet Payload | {"state":"open"}
TXT: 28.12.2021, 06:44:25 |           MQTT Topic | zigbee2mqtt/Büro/Rollo
TXT: 28.12.2021, 06:44:25 |         MQTT Payload | {"device":{"applicationVersion":71,"dateCode":"","friendlyName":"Büro/Rollo","hardwareVersion":1,"ieeeAddr":"0x847127fffe17bc5b","manufacturerID":4098,"manufacturerName":"_TZE200_zah67ekd","model":"TS0601_cover","networkAddress":6256,"powerSource":"Battery","stackVersion":0,"type":"EndDevice","zclVersion":3},"linkquality":114,"motor_speed":142,"position":17,"running":false,"state":"OPEN"}
TXT: 28.12.2021, 06:44:45 |           MQTT Topic | zigbee2mqtt/Büro/Rollo
TXT: 28.12.2021, 06:44:45 |         MQTT Payload | {"device":{"applicationVersion":71,"dateCode":"","friendlyName":"Büro/Rollo","hardwareVersion":1,"ieeeAddr":"0x847127fffe17bc5b","manufacturerID":4098,"manufacturerName":"_TZE200_zah67ekd","model":"TS0601_cover","networkAddress":6256,"powerSource":"Battery","stackVersion":0,"type":"EndDevice","zclVersion":3},"linkquality":108,"motor_speed":142,"position":100,"running":false,"state":"OPEN"}
TXT: 28.12.2021, 06:44:45 |           MQTT Topic | zigbee2mqtt/Büro/Rollo
TXT: 28.12.2021, 06:44:45 |         MQTT Payload | {"device":{"applicationVersion":71,"dateCode":"","friendlyName":"Büro/Rollo","hardwareVersion":1,"ieeeAddr":"0x847127fffe17bc5b","manufacturerID":4098,"manufacturerName":"_TZE200_zah67ekd","model":"TS0601_cover","networkAddress":6256,"powerSource":"Battery","stackVersion":0,"type":"EndDevice","zclVersion":3},"linkquality":108,"motor_speed":142,"position":100,"running":false,"state":"OPEN"}
TXT: 28.12.2021, 06:46:37 |         Z2MSet Topic | zigbee2mqtt/Büro/Rollo/set
TXT: 28.12.2021, 06:46:37 |       Z2MSet Payload | {"state":"close"}
TXT: 28.12.2021, 06:46:39 |           MQTT Topic | zigbee2mqtt/Büro/Rollo
TXT: 28.12.2021, 06:46:39 |         MQTT Payload | {"device":{"applicationVersion":71,"dateCode":"","friendlyName":"Büro/Rollo","hardwareVersion":1,"ieeeAddr":"0x847127fffe17bc5b","manufacturerID":4098,"manufacturerName":"_TZE200_zah67ekd","model":"TS0601_cover","networkAddress":6256,"powerSource":"Battery","stackVersion":0,"type":"EndDevice","zclVersion":3},"linkquality":114,"motor_speed":142,"position":100,"running":false,"state":"OPEN"}
TXT: 28.12.2021, 06:47:02 |           MQTT Topic | zigbee2mqtt/Büro/Rollo
TXT: 28.12.2021, 06:47:02 |         MQTT Payload | {"device":{"applicationVersion":71,"dateCode":"","friendlyName":"Büro/Rollo","hardwareVersion":1,"ieeeAddr":"0x847127fffe17bc5b","manufacturerID":4098,"manufacturerName":"_TZE200_zah67ekd","model":"TS0601_cover","networkAddress":6256,"powerSource":"Battery","stackVersion":0,"type":"EndDevice","zclVersion":3},"linkquality":114,"motor_speed":142,"position":0,"running":false,"state":"CLOSE"}
TXT: 28.12.2021, 06:47:03 |           MQTT Topic | zigbee2mqtt/Büro/Rollo
TXT: 28.12.2021, 06:47:03 |         MQTT Payload | {"device":{"applicationVersion":71,"dateCode":"","friendlyName":"Büro/Rollo","hardwareVersion":1,"ieeeAddr":"0x847127fffe17bc5b","manufacturerID":4098,"manufacturerName":"_TZE200_zah67ekd","model":"TS0601_cover","networkAddress":6256,"powerSource":"Battery","stackVersion":0,"type":"EndDevice","zclVersion":3},"linkquality":126,"motor_speed":142,"position":0,"running":false,"state":"CLOSE"}

Hier noch der Verlauf der Status-Änderung:
image

Gruß
Burkhard

Hallo Ralf,

das wäre nicht praktisch, da diese Variable gleichzeitig die Bedienvariable ist. Und da ist es nun mal so (in z2m auch so definiert) das ich den Vorhang ÖFFNEN oder SCHLIESSEN möchte. (siehe dazu auch den WF-Screenshot in meinem letzten Post). Die Frage wäre hier, evtl. eine zweite Variable einzubinden, die den aktuellen Status wiedergibt.

Gruß
Burkhard

Hi,
wirklich zur Bedienung taugt der Status eigentlich nicht. Wenn man es visualisieren möchte wäre es sinnvoller einen Button der dynamisch seinen Inhalt ändert. Ist Rollo offen macht öffnen oder stop keinen Sinn also sollte im Button dann schließen stehen. Wenn man Button drückt stop und wenn geschlossen ist öffnen. Ist aber nur eine Idee von mir denn das Rollo bediene ich ausschließlich per Harmony->LM Air->WebHook->IPS.

Ralf

So @Burki24 und @HarmonyFan bitte das Profil Z2M.state.7c75b7a3 löschen.
Dann die neue Beta Version installieren und dann sollte das mit dem Profil passen.

Motor Speed sollte nun auch gesetzt werden.

Grüße,
Kai

Gebe Dir da primär recht. Allerdings gibt es in dem Konverter keine Unterscheidung für Status (Bedienung/Zustand). Das macht es etwas kompliziert.
Ich selber nutze auch nicht das Frontend, sondern IPSStudio, da kann ich es so gestalten, wie ich es brauche. Ich glaube, für das Frontend gibt es da bisher keine passable Lösung, die alle Bedürfnisse abdecken kann.
Evtl. schaue ich mir heute Abend den z2m-Konverter nochmal an, ob man den optimieren kann.

Gruß
Burkhard

Moin Kai,
es wird nichts aktualisiert. Jetzt habe ich:

28.12.2021 10:56:11 | 33512 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #33512 weiterleiten: 
Warning: Variablentyp und Profiltyp stimmen nicht überein in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 1915
RESULT:
28.12.2021 10:56:19 | 33512 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #33512 weiterleiten: 
Warning: Variablentyp und Profiltyp stimmen nicht überein in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 1915
RESULT:
28.12.2021 10:58:23 | 39400 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #39400 weiterleiten: 
Warning: Variablentyp und Profiltyp stimmen nicht überein in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 1860
RESULT:
28.12.2021 10:58:30 | 39400 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #39400 weiterleiten: 
Warning: Variablentyp und Profiltyp stimmen nicht überein in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 1860
RESULT:

33512 ist die Rollo Instanz und
39400 ist die Instanz von dem schweineteuren Präsenzmelder von Tuya.

Ralf

Hallo Ralf,

bei dem schweineteuren Präsenzmelder läuft bei mir alles rund:
image
Evtl. mal bitte die Variablen löschen und die Geräteinformationen neu abholen.

Auch das Rollo läuft bei mir mit Aktualisierung aller Daten:
image
Vielleicht auch noch mal die Variablen löschen und wichtig:
Hier bitte unbedingt, wie @KaiS geschrieben hat, das alte Profil: Z2M.state.7c75b7a3 löschen und dann die Geräteinformationen neu abholen.

Gruß
Burkhard

Hi,
ich hatte sogar alle Variablen und das Profil gelöscht. Aber jetzt kommen die Werte wieder. Schau mal ins IPS Logfile denn das eine ist ein IntegerProfil für ein Float. Mit „~Intensity.255“ für motor_speed aktualisieren sich meine Werte nicht. Ich habe jetzt das falsche „~Intensity.1“ eingebaut und da kamen dann Werte.

Bei dem PM ist es das Profile der Variable radar_sensitivity.

Ach ja ich benutze IPS 6.1 vielleicht meckert die öfter.

Ralf

Ich benutze das auch, von daher sind wir da gleich.

Habe jetzt nochmal alles gelöscht und neu gemacht.
Folgendes ist aufgefallen:

Beim Radar-Sensor:
Er legt bei mir die Radar_Sensitivity als String an und hinterlegt ein Z2M_radar.sensitivity Profil (Integer)
Zusätzlich legt er mir noch ein Integer-Profil Z2M_radar.sensitivity0_10 an, welches auch das richtige für die Radar_sensitivity wäre. Allerdings sollte er die Variable als integer und nicht als string anlegen. Das ist im z2m-Konverter von mir auch so eingepflegt worden.

Beim Rollladen:
Er legt ein Float für Motorgeschwindigkeit an. Hier sollte es ebenfalls eher ein Integer sein, da Kommazahlen nicht akzeptiert werden. Als hinterlegtes Profil zeigt er mir ein Z2M_MotorSpeed an, welches er aber nicht anlegt. Hier sollte ein Integer-Profil Z2M_MotorSpeed0_255 passend angelegt werden.

Also ist bei Beiden leider doch noch irgendwie der Wurm drin.

Gruß
Burkhard

Wahrscheinlich die entsprechenden Variablen ein mal löschen und neu anlegen lassen, evtl. sind die noch vom alten Modul.

Grüße,
Kai

Das stimmt, es werden mehrere angelegt, kannst du mir nochmal ein Debug davon schicken?

Das habe ich schon gefixt und ist bei der nächste Beta Version geändert.

Gibt es jetzt sonst noch etwas?

Grüße,
Kai

Hi,
sieht nicht schlecht aus. Beim Profil Bewegungsrichtung von dem Tuya Radar-Sensor kommt nur forward, backward, still ohne moving.

Ralf