[Modul] Zigbee2MQTT

Das musst du mal im Debug beobachten, wenn es im Debug ankommt, dann wird es auch ausgewertet.

Grüße,
Kai

Hallo Tom,

ich habe es hinzugefügt, willst du mal die Beta Version testen?

Grüße,
Kai

Ich glaube ausgewertet wird es nicht. Ich habe mir mal den String vom MQTT Configurator angelegt:

{"Time":"2020-08-07T18:04:41","Uptime":"60T23:07:32","UptimeSec":5267252,"Vcc":3.437,"Heap":29,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1414,"POWER":"OFF","Wifi":{"AP":1,"SSId":"fs-IoT","BSSId":"92:2A:A8:81:17:0A","Channel":6,"RSSI":20,"Signal":-90,"LinkCount":446,"Downtime":"43T09:19:08"}}

Dort steht Power OFF. Im MQTT Device ist allerdings von Power ON die rede mit einem Zeitstempel von vor 2 Tagen. (Die Lampen sind aber nachweislich aus und werden über Tasmota über einen Timer gesteuert).

Hallo Kai

Funktioniert super! Danke!

Tom

Hallo Kai

Neu meldet Zigbee2MQTT die Sensitivity für den Rauchmelder von Xiaoni wie folgt:
03/09/2020, 09:37:28 | BUFFER IN | 0…<SOH><NUL> zigbee2mqtt/server_cabinet_smoke{„battery“:100,„linkquality“:21,„sensitivity“:„low“,„smoke“:false,„smoke_density“:1,„voltage“:3085}
Siehe: Xiaomi JTYJ-GD-01LM/BW control via MQTT | zigbee2mqtt.io

Wie Du siehst wird anstatt ein String geliefert.

Dein Modul wirft damit den Fehler:
03/09/2020 09:34:40 | 15019 | ERROR | FlowHandler | Could not forward data to instance #15019: <br />
<b>Warning</b>: Cannot auto-convert value for parameter VariableValue in <b>C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.zigbee2mqtt\IPS-Z2MDevice\module.php</b> on line <b>204</b><br />
RESULT:
03/09/2020 09:34:43 | 00000 | CUSTOM | PHP | Error: Warning: Cannot auto-convert value for parameter VariableValue
Error in Script C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.zigbee2mqtt\IPS-Z2MDevice\module.php on Line 204
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
204 in modules.store\info.schnittcher.ips.zigbee2mqtt\IPS-Z2MDevice\module.php (call SetValue)
3 in C:\Windows\System32- (call ReceiveData)

Ich habe die Beta-Version des Moduls aktiviert.

Dank und Gruss!

Tom

Sollte nun gefixt sein, willst du es mit der aktuellen Beta Version mal testen?

Grüße,
Kai

Alles ok!

Dank und Gruss!

Tom

Neue Stable Version (Version 2.1.9) online.
Weitere Infos dazu im Changelog im zweiten Post.

Grüße,
Kai

Hi Kai,
ich bin diese Woche auf CC2652 (empfehlenswert) umgestiegen und habe bei der Gelegenheit auch gleich Hue auf Zigbee2MQTT umgestellt. Bei Hue fand ich gut das man eine Starthelligkeit einstellen kann.

Man könnte sowas ähnliches auch in IPS nachstellen wenn das Modul aus den Instanzmeldungen:


10.10.2020, 14:05:33 |         MQTT Payload | {"message":"announce","meta":{"friendly_name":"0x00124b001ed0100c"},"type":"device_announced"}

eine Variable wie z.B. announced aktualisieren würde. Nett wäre wenn es ein Zähler wäre, der bei jedem Annouce hochgezählt würde, dann hätte man auch gleich einen Wert wie oft eine Lampe eingeschaltet wurde oder wie oft sich ein Sensor angemeldet hat.

Gibt es irgendeine Möglichkeit den aktuellen Status abzufragen?

edit:
mit:

 
                if (property_exists($Payload, 'message')) {
                    if ($Payload->message == 'announce'){
                        $this->RegisterVariableInteger('Z2M_Announce', $this->Translate('Announce'), '');
                        $this->SendDebug('MQTT Announce', $Buffer->Payload, 0);
                        $announce = GetValue($this->GetIDForIdent('Z2M_Announce'));
                        SetValue($this->GetIDForIdent('Z2M_Announce'), ++$announce);
                    }
                }

habe ich meine Variable:-)

Edit: Status geht auch (teilweise) mit:


$PayloadGet['state'] = '';
$PayloadJSON = json_encode($PayloadGet, JSON_UNESCAPED_SLASHES);
Z2M_Command(45501, 'get', $PayloadJSON);

kann der Status (fast) immer abgerufen werden. Ich habe fast und teilweise benutzt weil sich meine GledOpto nicht drum schert während Osram und Ikea promt reagieren.

Ralf

Hallo.

Habe mir ein Eurotronic SPZB0001 gekauft.
Muste jetzt das „IPS-Z2MDevice“ anpassen.

Hier das empfangene topic:


topic 'zigbee2mqtt/0x00158d0001fff86e', payload '{"local_temperature":20,"occupied_heating_setpoint":18,"unoccupied_heating_setpoint":16,"pi_heating_demand":0,"linkquality":31,"eurotronic_host_flags":{"mirror_display":false,"boost":false,"window_open":false,"child_protection":false},"system_mode":"auto","eurotronic_system_mode":1,"eurotronic_error_status":0,"current_heating_setpoint":18,"battery":100}'

Habe in module.php folgendes hinzugefügt:


if (property_exists($Payload, 'local_temperature')) {
                    $this->RegisterVariableFloat('Z2M_Temperature', $this->Translate('Temperature'), '~Temperature');
                    SetValue($this->GetIDForIdent('Z2M_Temperature'), $Payload->local_temperature);
                }
if (property_exists($Payload, 'occupied_heating_setpoint')) {
                    $this->RegisterVariableFloat('Z2M_SollTemperature', $this->Translate('Setpoint_Temperature'), '');
                    SetValue($this->GetIDForIdent('Z2M_SollTemperature'), $Payload->current_heating_setpoint);
                }
if (property_exists($Payload, 'system_mode')) {
                    $this->RegisterVariableString('Z2M_SystemMode', $this->Translate('SystemMode'), '');
                    SetValue($this->GetIDForIdent('Z2M_SystemMode'), $Payload->system_mode);
                }	
if (property_exists($Payload, 'eurotronic_error_status')) {
                    $this->RegisterVariableFloat('Z2M_ErrorStatus', $this->Translate('ErrorStatus'), '');
                    SetValue($this->GetIDForIdent('Z2M_ErrorStatus'), $Payload->eurotronic_error_status);
                }	
if (property_exists($Payload, 'pi_heating_demand')) {
                    $this->RegisterVariableInteger('Z2M_HeadingDemand', $this->Translate('HeadingDemand'), '');
                    SetValue($this->GetIDForIdent('Z2M_HeadingDemand'), $Payload->pi_heating_demand);
                }					

und in local.json folgnedes:


	  "Setpoint_Temperature": "Soll Temperatur"
	  "HeadingDemand": "Ventilstellung"

Könnt Ihr das Bitte für die nächste Version von IPS-Zigbee2MQTT Modul berücksichtigen?

Danke.
BYE
Thomas

Moin,
Z2M_setDimmerEx(ID, Helligkeit, Übergangszeit) wäre vielleicht eine nette Sache denn mit


$brightness = GetValue(34445);
$Payload['brightness'] = $brightness * 2.54;
$Payload['transition'] = 2;
$PayloadJSON = json_encode($Payload, JSON_UNESCAPED_SLASHES);
Z2M_Command(38765, 'set', $PayloadJSON);

geht es jetzt schon.

btw. mit


RequestAction(33118, 'raw'); // Absturz IPS! 
RequestAction(33118, 'graphviz'); // geht! 
RequestAction(33118, 'plantuml'); // geht! 

wobei 33118 ein MQTT Klient mit dem Topic zigbee2mqtt/bridge/networkmap/routes ist, bekommt man Netzwerkkarten geliefert.

Ralf

Ich habe Problem was wahrscheinlich eher Zigbee2Mqtt geschuldet ist und nicht dem Modul. Aber vielleicht kann mir ja jemand helfen.

Ich habe ein IKEA 30w Treiber für Fernbedienung
An dem 4 Lampen für den Wohnzimmer Schrank angeschlossen sind .
Kann ich über das Modul Steuern. [emoji1303]
Dann hatte ich bis gestern (da her ist mir das nicht aufgefallen ) eine Runde Fernbedienung mit der ich über Skripte verschiedene Sachen Steuer, Shellys, Hue ( Helligkeit, Color) etc.
Jetzt habe ich mir eine zweite gekauft und da ist mir aufgefallen das die Fernbedienung nicht nur an den Zigbee Stick sendet sondern auch an den 30 W Treiber.

Setup :
Treiber Friendly Name -> WhzLicht
Fernbedienung 1 -> IkeaSwitchOne
Fernbedienung 2 -> IkeaSwitchTwo

Wenn ich jetzt Fernbedienung 1 Drücke wird auch der Staus der 2 geändert

Siehe Screenshot

Also noch mal kurz erklärt egal welche Fernbedienung ich drücke es werden jeweils immer beide geändert weil sie anscheinend zusätzlich mit dem Wohnzimmerlicht Treiber gekoppelt sind und der ist dann weiter gibt. Wenn ich die Values beim Wohnzimmerlicht lösche werden sie beim nächsten Click direkt wieder neu angelegt.

Ich hoffe ich konnte mein Problem schildern, und irgend jemand hat eine Lösung für mich wie ich die Fernbedienung unabhängig vom Treiber machen können.

Hat sich erledigt, eigene Dummheit [emoji85]

Gesendet von iPhone mit Tapatalk

Hallo Kai

Könntest Du bitte gelegentlich die Color Temperature „color_temp“ im Modul implementieren?

{„brightness“:110,„color“:{„x“:0.373648905857491,„y“:0.372402118535558},„color_temp“:400,„linkquality“:60,„state“:„ON“,„update“:{„state“:„idle“},„update_available“:false}

(Ich verwende eine Osram LIGHTIFY LED PAR16 50 GU10 tunable white)

Dank und Gruss!

Tom

Hi,
experimentell ist ja für einige Geräte, bei mir Osram (Ledvance) und Ikea (Tadfri), theoretisch schon ein Update möglich.

Wenn man einem MQTT-Client mit Toptic „zigbee2mqtt/bridge/ota_update/update“ kann man mit RequestAction(ID vom MQTT Update Client, ‚ID vom Gerät‘); ein Update starten. Damit ich nicht immer im Logfile von Zigbee2MQTT nachschauen muss habe ich im Modul der Bridge Folgendes bei mir eingebaut:


if (property_exists($Payload, 'message')) {
    $this->RegisterVariableString('Z2M_Message', $this->Translate('Message'), '');
    SetValue($this->GetIDForIdent('Z2M_Message'), $Payload->message);
}

jetzt kann man in der Bridge sehen was passiert. Da steht u.a. auch drin wenn es ein Update für ein Gerät gibt. Hier könnte man jetzt auf Änderungen reagieren.

Update geht prinzipiell hat aber noch kleinere Problemchen.

Ralf

Zigbee2MQTT hat mittlerweile ein Webinterface, Da kannst Du pro Gerät nachschauen ob Updates vorhanden sind und ein Update direkt starten.

Dank und Gruss!

Tom

Hi,
ich benutze das Zigbee2MQTT Docker hat das auch ein Web-Interface? Ich wusste bisher nur das ein anderes Docker gibt was als MQTT-Server läuft und Zigbee2MQTT steuern kann. Mit diesem 2. Docker weiß ich aber nicht wie ich es zeitgleich mit IPS verwenden kann.

Ralf

Das musst Du selbst ausprobieren.
Guckst Du hier: [Experimental feature] Webbased frontend · Issue #4266 · Koenkk/zigbee2mqtt · GitHub

Gruss!

Tom

Die Farbe geht, oder?
Was für einen Bereich hat color_temp?

Grüße,
Kai

Hi,

super danke. Werde ich ausprobieren. Als ich mich vor ein paar Monaten interessierte brauchte man noch einen separaten MQTT-Server der das handelt.

Ralf