mqtt2.template: bugs, Fragen, Anregungen

Begonnen von Beta-User, 15 Dezember 2018, 11:44:43

Vorheriges Thema - Nächstes Thema

Beta-User

Jetzt doch eine Rückmeldung vor dem Hintergund des 3em:

Beim shelly1pm (von dem kommt die setList des 3em) habe ich jetzt allg. das direkte toggle eingefügt, und noch an diversen Stellen ein paar doppelte ";;" entfernt.

Damit sollten sowohl der shelly1pm und der shelly 3em jetzt passen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

#346
Ich hab mir den Powerplug BW-SHP13 von Blitzwolf besorgt und suche das richtige template.
Eigentlich müsste es folgendes sein zigbee2mqtt_smart+plug, nur leider lässt sich das nicht setzen.
--> Unknown template_entry_name zigbee2mqtt_smart+plug

Hat wer eine Idee wie ich den plug in fhem ans laufen  bekomme?

Beta-User

Interessantes Device :) .

Wie kommst du drauf, dass es ein attrTemplate dieses Namens (noch) gibt? Was es gibt, sollte (samt Beschreibung) in der drop-down liste zu sehen sein, die Klartextsuche nach dem plug+ führt mich zu "zigbee2mqtt_plug".

Ansonsten wäre ein RAW-list in der Regel hilfreich, kann immer mal wieder auch sein, dass es an irgendwas anderem liegt (Filter oder prereq).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Sorry copypast Fehler ich rede vom template zigbee2mqtt_plug_w_energy_measuring

Beta-User

ah, ok; das ist ein interner Aufruf, um den es da geht. Versuch's mal mit dem genannten plug-template, bei Gelegenheit kommt dann ein update.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Ich hab mal selbst angefangen zu basteln.
Meine definition sieht nun so aus

defmod MQTT2_zigbee_0x842e14fffe13939c MQTT2_DEVICE zigbee_0x842e14fffe13939c
attr MQTT2_zigbee_0x842e14fffe13939c IODev MQTT
attr MQTT2_zigbee_0x842e14fffe13939c devStateIcon {my $current = ReadingsVal($name,"current",0);;;; my $pwr = ReadingsVal($name,"power",0);;;; my $energy = ReadingsVal($name,"energy",0);;;;"<div> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($state)."</a> Aktuell: $current A  Leistung.: $pwr W<b></b>"}
attr MQTT2_zigbee_0x842e14fffe13939c devicetopic zigbee2mqtt/0x842e14fffe13939c
attr MQTT2_zigbee_0x842e14fffe13939c eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr MQTT2_zigbee_0x842e14fffe13939c icon message_socket
attr MQTT2_zigbee_0x842e14fffe13939c readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_0x842e14fffe13939c setList on:noArg $DEVICETOPIC/set {"state":"ON"}\
  off:noArg $DEVICETOPIC/set {"state":"OFF"}\
attr MQTT2_zigbee_0x842e14fffe13939c setStateList on off


Was hältst du davon? ggf. könnte man damit das besagte Template fertig stellen?

Beta-User

Danke, das hilft deutlich weiter.

Habe eben mal ein update ins svn geschoben, der das mit kleinen Änderungen so übernimmt und einen direkten toggle-Command einführt, wäre klasse, wenn du das testen würdest.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

#352
Welches template hast jetzt angpasst?
Das zigbee2mqtt_plug_w_energy_measuring verhält sich wie vorher.

Update
Es braucht einen fhem Neustart das die templates da sind.
Leider funktioniert das template nicht mehr
Wenn ich auf on schalte zeigt er die Glühbirne mit Rufzeichen an und im state steht set_on anstatt on. (Scheinbar wird das vom Attribute setstatelist verursacht)
Auch die Steckdose schaltete jetzt nicht mehr

Beta-User

Ändere mal bitte die eventMap (oder lösche das einfach mal testweise, evtl. funktioniert das zwischenzeitlich auch so):attr DEVICE eventMap { dev=>{'ON'=>'on','OFF'=>'off'} }
Wenn die Lampe nicht schaltet, ist "set_xy" vermutlich richtig, das ist ein Übergangszustand bis die Rückmeldung der Leuchte kommt (oder ein Fehler bei der Auswertung, falls sie angeht). Also ist entweder der publish kaputt oder der Dienst nicht verfügbar.

Zeig mal bitte ein RAW, wie das jetzt aussieht, falls klar ist, dass der Dienst an sich funktioniert (z.B. über das Bridge-Device die device-Liste anfordern).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Ne funktioniert  nicht. Auch wenn ich eventmap lösche

ulli

Problem gefunden.
Bei der Übernahme des templates schneidet er das letzte Zeichen desdevicetopics weg. Damit ist die id nicht mehr richtig.
Jetzt geht's wenn man das händisch wieder korrigiert.

Der übergangszustand mit der birne mit Rufezeichen ist unschön. Kann man das ändern oder ist das bei allen Mqtt Devices so gelöst?
Schön wäre es noch wenn er das toggle Kommando in der weboberflache anbietet neben on und off

Beta-User

Oha, das mit dem Abschneiden des letzten Zeichens, wenn ein $DEVICETOPIC bereits vergeben war ist unschön! (wundert mich, dass sich bisher noch keiner darüber beschwert hatte, ist bei allen zigbee2mqtt-templates ein Thema...).
Fixe ich bei Gelegenheit.

Was den Übergangszustand angeht: Das ist (auch) eine Folge von setStateList und beabsichtigt. Ergo: Du kannst das Löschen, wenn du willst, aber es ist ein mMn. gutes feature, weil man so erkennen kann, ob ein Kommunikationsproblem besteht, und: Die "anderen Readings" werden dann auch korrekt gesetzt, falls es mehr einstellbare Elemente am Zieldevice gibt. Sonst geht z.B. ein brightness-command auch auf state ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

Zitat von: ulli am 04 September 2020, 09:15:24
Es braucht einen fhem Neustart das die templates da sind.
Es geht auch leichter :)
Nach dem Update von FHEM
{ AttrTemplate_Initialize() }
Oder nur Update der Templates:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

Zitat von: Otto123 am 04 September 2020, 11:27:32
Oder nur Update der Templates:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
:) Jetzt wäre dann demnächst (hoffentlich) ein guter Zeitpunkt, das zu tun...
(Da waren auch noch in den zweikanaligen ZigBee-split noch ein paar andere Kleinigkeiten).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

87insane

Hey - bin auch mal wieder im Leben angekommen...

für die ganz faulen auch "MQTT Template reload,cmd={ AttrTemplate_Initialize() }" als Menü Eintrag im Web Device.

Könnte zb so aussehen:
menuEntries: FHEM Update,cmd=update,MQTT Template reload,cmd={ AttrTemplate_Initialize() },FHEM neu starten,cmd=shutdown restart
Also ein klickbarer Button.