mqtt2.template: bugs, Fragen, Anregungen

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

Vorheriges Thema - Nächstes Thema

Beta-User

Schon, aber mMn. "ein besonderes" (oder mehrere).

Meine Bitte wäre: Mach' ggf. dazu einen separaten Thread auf, den du gerne für interessierte Mitleser hier von hier aus verlinken darfst. Wenn es dann konkrete Ideen gibt, was ggf. in template-Form (option:...) gegossen werden kann, mache ich mir dazu auch Gedanken, aber so ist es vermutlich nicht wirklich zielführend, da mir das alles nichts sagt.
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

Hat sich doch schon jemand gemeldet :) wenn das so nicht klappt, dann deine Idee. Denke aber er bekommt das hin :)

Gesendet von meinem LM-G810 mit Tapatalk


Beta-User

Zitat von: bigtruite am 13 Dezember 2019, 10:43:23
Folgendes ist mir aufgefallen.

1. Beim Template "tasmota_rgb_led_controller" muss das devStateIcon geändert werden.
[...]

Könntet ihr bitte 1 fixen?
Andre hat Color.pm freundlicherweise erweitert; jetzt sollte auch die lange Version korrekte Ergebnisse liefern. Bitte testen (kommt mit update morgen früh).

Was die 8-stelligen hex-Werte angeht, scheint es so zu sein, dass man auch den Weiß-Kanal mit darüber steuern kann/könnte.
Jedenfalls wird's bei "set  MQTT2_DVES_EFFE7E_CH2 Color 00000088" hell in Weiß...
Es gibt aber afaik bisher noch keine Implementierung für einen Setter oder eine Auswertung der Rückmeldung dazu, update für die YX-DE0x folgt bei Gelegenheit.
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

bigtruite

Hab es mit meinem Arilux-01 unter Tasmota und dem Template tasmota_rgb_led_controller getestet. Mit den Standardsettings

devStateIcon {Color::devStateIcon($name,"rgb","Color","Dimmer","POWER1")}

funktioniert jetzt auch die Farbe des Icons. Dimmer geht. Und beim Klicken auf das Icon toggelt es... besten dank.  :D

Beta-User

Immer wieder gerne  :) .

Habe eben noch zwei kleine Änderungen vorgeschlagen; mit der einen würde dann auch die Anzeige im "Weiß"-Modus auf die Standardhintergrundfarbe wechseln, wenn nur weiß an ist (die andere betrifft reine Dimmer).

Ein neues/zusätzliches attrTemplate für rgbw-Devices (mit Steuermöglichkeit für den Weiß-Anteil) folgt dann bei Gelegenheit.
Frage: Das benötigt separate Slider für pct und weiß. Welche nehmen? 2*BRI oder lieber BRI+CT (das paßt dann aber nicht so recht von der Farbgebung her).
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

vbs

Eine Anmerkung zu den Templates (evtl. versteh ich es auch einfach falsch):

Die Templates heißen z.B. "zigbee2mqtt_Light_Switch". Ich finde das erstmal sehr unspezifisch. Wenn man es anwählt, dann bekommt zwar noch eine Beschreibung:
ZitatSmart light switch 2btn via zigbee2mqtt
Tested with: Xiaomi Aqara WXKG02LM 2btn Smart Light Switch

Aber man weiß trotzdem nicht, für welche konkreten Geräte das Template funktioniert. Klar, der Ersteller hat es vermutlich auch nur für ein Gerät entwickelt und getestet und theoretisch könnte es "zufällig" auch für andere Geräte funktionieren. Wenn ich mir ein neues zigbee-Gerät kaufe, dann finde ich es schwierig herauszufinden, welches Template ich nehmen muss und ob das Template ordnungsgemäß funktioniert.

Ich denke, ich fände es besser, wenn die Templates auf konkrete Geräte zugeschnitten wären, die dann auch im Namen auftauchen.

vbs

Würde eigentlich gerne noch ein Frage anschließen:
Wenn ich jetzt ein Template poste, was ich für "Aqara Opple" verwende (inhaltlich eigentlich nichts Spezielles). Wie soll ich das nennen? Es ist eigentlich identisch mit "Wireless Button", aber ohne "action" im stateFormat.

87insane

Naja, die Namen Vergabe und auch der Inhalt waren für mich am Anfang wie bei dir.  Fand es "komisch".


ABER dem ist nicht so. Mittlerweile (einige templates später) sehe ich es als gut an, wie es ist.

Hintergrund ist ja der, das man in der Theorie alles mögliche da rein werfen könnte. Die templates dienen aber als inspiration, sind aber voll benutzbar und sicher die meisten, sehr gut gelöst. Deswegen gibt es zu einer Sache / Gerät auch fast immer nur ein Template. Man stelle sich vor, es wären sonst wegen jedem Kram diverse Templates. Dann wäre der Sinn aus dem folgendem text verloren :-P

Wegen der Namen. Verhält sich das nicht gerätespezifisch, weil es diverse geräte gibt die gleich gesteuert werden. Somit kannst du Gerät X mit einer Funktion Y ausstatten. Bei den shellys zb geht das natürlich nicht wie mit Geräten die mit tasmota geflasht wurden. Deswegen wirst du bei den shellys auch meist Namen der Geräte finden im template Namen. Bei x Schaltern, die aber mit tasmota geflasht sind wiederum, wirst du nur die Funktion, als Name finden. Warum? Weil es einfacher ist und auch Sinn ergibt. Umgekehrt, wenn du auf einen shelly tasmota flasht, muss du natürlich auch ein tasmota Template wählen. Kannst aber wegen der Funktions Wahl, dann auch direkt zb tasmota Rollo nutzen oder oder oder....

Aber ich gebe dir recht. Am Anfang war das für mich auch komisch.

Hoffe ich konnte es verständlich erklären und wünsche einen schönen Abend.

Gruß,
Kai

Gesendet von meinem LM-G810 mit Tapatalk


vbs

Hm, ich verstehe schon worauf du hinaus willst. Aber mMn funktioniert das für mich als User nur, wenn ich fundiertes Wissen habe 1.) über die interne Funktionweise/Nachrichten meines MQTT-Geräts und 2.) über die Internas der Templates bzw. welche Templates wie arbeiten.

Aber vielleicht fehlt mir einfach noch das nötige Verständnis oder die Übung. Lass mich nochmal anders herum fragen:

Konkreter Fall: Ich hab jetzt hier ein "Aqara Opple". Das ist ein Wandtaster mit 6 Buttons. Das Gerät hab ich in zigbee2mqtt angelegt und ein Device wurde in FHEM angelegt. Also fehlt mir jetzt zu meinem Glück nur noch ein passendes Template. Wie muss ich jetzt vorgehen, um herauszufinden, ob es ein passendes Template gibt, mit dem ich das Teil vollständig nutzen kann?

87insane

Du hast zum suchen vier Dinge (denke ich).
- Protokoll (hast du)
- Funktion / was soll es machen (hast du / denke ich mal)
- Anzahl der Knöpfe (hast du / hilft bei der Suche aber nur manchmal)
- Beschreibung

Das alles kannst du außerhalb von fhem in der mqtt2 Template Datei lesen. Da steht sowohl der Quelltext als auch die Beschreibungen, die du im fhem siehst. Wenn du ein wenig dahinter geblickt hast, siehst du dann auch direkt was es macht. Ich selber tue mich schwer bei Farb umrechnungen. Die templates verstehe ich zwar aber nicht die Umrechnung bei all diesen Varianten. Ist aber auch egal, da man die Funktion als solche nachvollziehen kann.

Wenn aber alle stricke reißen, dann einfach mal überlegen was willst du am ende willst. Also die Funktion. Danacg, alles passende einfach mal testen. Meist bleiben eh nicht mehr als 2 über. Ansonsten hilft hier schreiben meist :)
Ich selber hab den Schalter nicht aber mir fällt gerade auch nicht ein wofür. Wofür willst du ihn am ende nutzen?

Ach ja und als Bonus kannst du dich in der template Datei immer inspirieren lassen. Hast du also zb mal ein Template besonders gut gefunden und willst Funktionen für ein anderes Gerät haben, weil es zb gut aussah oder aber ne gute Funktion enthalten war, kann man sie daraus kopieren.

Gruß,
Kai

Gesendet von meinem LM-G810 mit Tapatalk


Beta-User

Schnelle Kurzfassung:
- Es ist heute nicht alles optimal, ja; man lernt gelegentlich dazu... (heißt nicht, dass es schlecht ist, aber verbesserungsfähig, eben noch nicht optimal)
- meine Tendenz geht teilweise zu jsonMap-Nutzung (@zigbee2mqtt: Doppelrelais-Beispiel), würde gerne auch die bestehenden in diese Richtung umbauen (teilweise statt stateFormat, betrifft auch tasmota).
- zigbee2mqtt abstrahiert bereits recht weitgehend => Produktnamen machen da im Namen keinen Sinn, die gehören mMn. nach desc; ist heute leider bei weitem nicht vollständig.
- Der 6-fach-Taster ist eventuell was neues, oder eben eine weitere Variante einer Fernbedienung  (analog der großen runden Tradfri und ein paar anderen wie dem cube) mit etwas anderen Events, die man sowieso anderweitig weiterverwendet. Wenn ganz anders, macht es Sinn, da ein entsprechendes neues template zu bauen, man kann eventuell "template-in-template" nutzen, um gleiches vorneweg zu machen. Wenn nein, sollte man ggf. (nur?) die jsonMap für die einzelnen Typen unterschiedlich machen. Bräuchte mehr Info, kann mich aber voraussichtlich erst im neuen Jahr wieder kümmern.

Vielleicht mag zwischenzeitlich jemand mit schon etwas mehr Übung mal über ein RAW drübersehen und helfen; bitte auch Events für diverse Tastendrücke dazu liefern und ggf. die JSON-Blobs mitschneiden...
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

vbs

Ok, danke, sollte auch keine Beschwerde sein. Nur mal so als Usability Rückmeldung eins unbedarften Users ;) Klappt ja alles soweit und ich finde die Struktur in FHEM zum Handling auch technisch sinnvoll und schön modular. Hat aber eben auch eine gewisse Komplexität.

Einzige sinnvolle Infos, die ich zum Gerät finden konnte, sind hier im Video:
https://youtu.be/L62IO4sPQV8?t=18

Im Moment sehe ich jedoch nur single-Presses und wenn man eine Sekunde gedrückt hält, bekomme ich ein Hold-Event und beim Loslassen ein Release. Komischerweise klappt das nur auf den mittleren beiden Buttons (also 3 & 4). Im Video ist ja eigentlich von Long-Press-Events die Rede. Evtl. ist das so gewollt, evtl. geht da aber auch irgendwo auf dem Weg etwas in die Hose.

Ich werde das jetzt erstmal so machen, dass ich mir für die Geräte-Typen, die ich benutze, Kopien der Templates mit konkreten Typ-Namen als User-Templates anlege.

87insane

Kurz weil Handy: kopier dir einfach aus den ganzen Templates deinen Wunsch zusammen. Das ganze kannst du am ende dann vorstellen und ggf sind noch wünsche offen. Da kann dann jeder hier helfen. Ende vom Lied, es gäbe ein neues Template und alle sind glücklich :)

Gesendet von meinem LM-G810 mit Tapatalk


Beta-User

...hatte das auch nicht als Beschwerde aufgefaßt...

Wie gesagt: Es ist noch nicht perfekt, und vieles (eigentlich das meiste, was Informationsmöglichkeiten zu den einzelnen templates angeht und viel von der Funktionalität) ist erst im Verlauf der Zeit entstanden. Die volle Bandbreite aller Optionen ist von daher eben eigentlich noch bei keinem der templates reingearbeitet usw..
Wenn dann mal wieder jemand kommt und sich (zurecht!) traut, Fragen zu stellen, ist das eine gute Sache!

(Und ich habe selbst praktisch keine Hardware; ich kam von der MiLight-Ecke her, hatte kurz mit zigbee2mqtt experimentiert und neulich erst meinen ersten Tasmota in vorläufigen Produktivbetrieb genommen... => das meiste beruht auf dem, was mir jemand zugerufen hat, und teils wollte ich dann nicht mit noch mehr Rückfragen, kritischen Anmerkungen & Experimenten "nerven", (gell, Kai...!), das war teilweise schon so "recht viel").

(@Kai: auch wenn es eine ganze Anzahl von "Showcases" und Varianten gibt: für Standarddevices sollte ein user recht einfach zu dem auf seine Anforderung passenden template finden; erst wer "etwas mehr" will oder spezielle Anforderungen hat, darf/soll/kann in der file nach Belieben wühlen...).

Was die Benennung angeht:
"zigbee2mqtt_Light_Switch" sollte man wohl nach "zigbee2mqtt_Relay_w_2_buttons" oder "zigbee2mqtt_lightSwitch_w_2Buttons" umbenennen; an sich ist es so, dass die optimalerweise einigermaßen beschreibend sind, was sich an Readings der Optionen so dahinter verbirgt. War in dem Fall vermutlich eher nicht gelungen...

[OT]
Diesen 6-fach-Taster kannte ich noch gar nicht, die anderen/alten waren alle viel größer, oder?
Paßt der in ein "europäisches" Schalterprogramm (namentlich: Jung CD 500)? (Ich hatte eine ziemliche Enttäuschung mit einem Jung ZLL 5004, firmwareupdate ist da für Januar angekündigt, mal schauen...)
[/OT]
Wenn da keine Infos im MQTT2_DEVICE ankommen, wird evtl. von zigbee2mqtt-Seite nicht alles ausgewertet (=> Nachrichten bei zigbee sniffen wie von kkoenk beschrieben). Manchmal ist es aber auch irritierend, wie diese "Scene-Controller" funktionieren (siehe den Jung oben). Es gibt auch eine Gruppe im Forum hier, die sich die "große" tradfri vorgenommen hatten, Wissen dazu ist also auch hier vorhanden.

Und wenn du Typ-Namen hast, die zu bestimmten vorhandenen Templates passen: her damit!

Schließlich sollen es neue, "unbedarfte" Nutzer nicht schwerer haben als nötig...
Was wir also zusammen in diese Richtung hinbekommen, wird gerne eingearbeitet, und über den Weg darf man auch konträrer Ansicht sein bzw. das ausdiskutieren ;) .
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

#179
Wenn ich einen shelly plug s automatisch anlegen lasse und anschließend das attrTemplate shelly1 anwende, sieht das devStateIcon so aus:
{my $onl = ReadingsVal($name,"online","false") eq "false" ? "rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "gelb" : "gruen";; my $light = ReadingsVal($name,"state","off");; my $show = '<a href="';;$show .= $onl eq "gelb" ? "/fhem?cmd.dummy=set $name x_update&XHR=1\">" : "http://".ReadingsVal($name,"ip","none").' "target="_blank">';;$show .= FW_makeImage("10px-kreis-".$onl)."</a>";; "<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a>" }
Da lungert ein offenes <div> im letzten Drittel ;)

Wäre das im Anhang ein Patch? :)

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