mqtt2.template: bugs, Fragen, Anregungen

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

Vorheriges Thema - Nächstes Thema

hydrotec

@Beta-User

Dankeschön für die schnelle Rückmeldung.

Der von mir beschriebene Weg ist eine Erstinstallation, ohne irgendetwas umbenannt zu haben.

Zitat
..., kann ich das gerne am "bridge"-attrTemplate anpassen, dann paßt es wieder für alle Neueinsteiger.
würde ich befürworten.
Ist nicht weiter dramatisch, funktioniert ja alles wie es soll.
Doch für Neueinsteiger (wie mich  ;)) ist es etwas verwirrend.

Ansonsten noch einen schönen Feiertag  8)

Gruß, Karsten

Beta-User

In MQTT2 für Xiaomi Vacuum Sauger sind ein paar Fragen aufgetaucht, zu denen ich mangels Hardware konkret relativ wenig sagen kann. Daher an dieser Stelle einfach ein paar allgemeine Anmerkungen, falls jemand was spezifischer interessiert, sollte man diese Themen ggf. in einem gesonderten Thread vertiefen.

Die Fragestellungen, die bei mir angekommen sind:
a) Wie ist das mit "filter:", wenn man zunächst eine readingList-Auswertung hat, die aber hinterher (nach der ersten Anwendung eines attrTemplate) nicht mehr klappt, weil in der readingList dann $DEVICETOPIC steht.
Die Werte nach "filter:" sind devspec, es sollte also ohne weiteres gehen, Alternativen per Komma zu trennen (zur Prüfung: list verwenden). Im konkreten Fall würde ich dabei als 1. match-Möglichkeit (wie gehabt) gegen das readingList-Attribut prüfen und dann ergänzend die 2. match-Möglichkeit gegen das Attribut devicetopic.

Bei den "gebrückten" zigbee2mqtt-Geräten wird das etwas anders gehandhabt, das hat aber damit zu tun, dass die CID dort in den wesentlichen Teilen "bekannt" ist.

b) Handhabung von "verwandten Geräten" - myUtils, Readings usw.:
(So ganz habe ich nicht verstanden, um was es geht)
- Tendenziell wäre es klasse, wenn man zwei unterschiedliche Geräte mit demselben Zweck (z.B. Saugrobis) am Ende (ziemlich) einheitlich gestalten könnte, was Reading- und Setternamen angeht (und ggf. jemand den Job übernehmen würde, da sinnvolle "internationale" (!) Namen zu vergeben/vorzuschlagen.
- die myUtils dazu würde ich tendenziell zusammenführen und versuchen, die jeweiligen Funktionsaufrufe einheitlich zu gestalten. Wenn man da intern "Kenner" oder Marker braucht, um unterschiedliche Typen zu unterscheiden, kann man entweder Readings auswerten (so vorhanden, optimalerweise vom Robi kommend), oder man setzt notfalls - neben dem "model"-Attribut, das immer vorhanden ist - weitere userattr (z.B. subType).

Meine persönliche Wunschvorstellung: Am Ende hat man eine Art "Weather"-Modul, bei der jeweils halt eine andere API im Hintergrund werkelt, aber das Ergebnis sieht (fast) identisch aus...
(die diversen "Thermostate" in den templates kommen dem vermutlich am nächsten, aber z.B. auch ein MQTT-Relay sieht "gleich" aus, egal ob Shelly-firmware oder Tasmota, und die Funktionalität ist auch - soweit möglich - gleich).

c) "Rückwärtskompabilität"
Tendenziell würde ich da nicht zu viel Energie drauf verwenden. Wenn jemand das aktuelle template anwendet, bekommt er die zugehörige myUtils, und das muss eben zusammenpassen, fertig. (Es ist die Entscheidung des Anwenders, ob er überhaupt aktualisieren will, und was er bekommt, kann er (meistens) vorher sehen!).

"alte Funktionsaufrufe" kann man ja ggf. weiter erhalten und die in einen wrapper für die neuen umbauen - oder umgekehrt neue als wrapper für diverse Unterprogramme gestalten, was vermutlich in diesem Fall deutlich einfacher zu pflegen ist, weil dann die jeweiligen Unterprogramme leichter von denjenigen beigesteuert werden können, die die Hardware haben. (Diese myUtils würde ich tendenziell packagen!)

Als Muster für die myUtils (auch was gewisse Vorarbeiten für einheitliche Readingnamen (jsonmap für interne json2nameValue()-Aufrufe) angeht), wären in dem go-echarger-Thread (?) zu finden.

Hoffe, das abstrakte Geschreibsel ist ggf. hilfreich, ansonsten _glaube ich_, dass es sinnvoll wäre, Teilaspekte jeweils gesondert zu beleuchten, weil es allgemeine Fragestellungen sind.
Falls _wirklich_ konkretere Hilfe erbeten wird: Für mich als "Spielmaterial" hilfreich wären für den Fall der Fälle in jedem Fall "unbearbeitete" RAW-Definitionen der diversen Varianten sowie ggf. ein paar "typische" Topic/Messages, aus denen zu erkennen ist, welche Readings eigentlich (wann) woher kommen.
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

Ralli

Beim Einrichten von Sonos über MQTT bin ich über ein kleines Problemchen gestoßen:

Für sonos2mqtt_bridge_comfort müssten die Zeile(n)


attr SonosBridge userReadings favlist:Favorites.* {sonos2mqtt_ur($name,'favlist')},\
grouplist:Favorites.* {sonos2mqtt_ur($name,'grouplist')}


ersetzt werden durch


attr DEVICE userReadings favlist:Favorites.* {sonos2mqtt_ur($name,'favlist')},\
grouplist:Favorites.* {sonos2mqtt_ur($name,'grouplist')}


da es ansonsten zu einem Fehler und einer nicht vollständigen Konfiguration kommt, wenn man das Bridge-Device nicht SonosBridge sondern bspw. MQTT2_SonosBridge benennt.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Otto123

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

darthi

Hallo zusammen,

ich nutze für diverse Tasmota Steckdosen das Sonoff POW Template. Bisher wurde immer die Version 20200529 genutzt. Mit dieser hatte ich auch keine Probleme und alle Stats wurden korrekt angezeigt und ausgewertet.
Für Steckdosen, die ich gestern eingerichtet habe, passt das nun aber nicht mehr. Hier wird das Template 20210521 genutzt. Die Readings werden anscheinend nicht mehr korrekt übersetzt (siehe Screenshot). Die Steckdose mit korrekter Status-Anzeige ist eine mit altem Template und die ohne (auch ohne Uptime) eine mit neuem Template.
Wenn ich mit die Attribute der beiden Steckdosen anschaue, finde ich keinen nennenswerten Unterschied:

Template 20210521:
defmod Aquarium_CO2 MQTT2_DEVICE DVES_453530
attr Aquarium_CO2 alias Aquarium CO2
attr Aquarium_CO2 autocreate 0
attr Aquarium_CO2 comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/Corn4/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr Aquarium_CO2 devStateIcon {my $text = ' uptime: '.ReadingsVal($name,"Uptime","unknown").sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"));;;; my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";;;; my $light = ReadingsVal($name,"state","off");;;;"<div><a href=\"http://".ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none"))." \"target=\"_blank\">".FW_makeImage($onl).'</a> <a href="/fhem?cmd.dummy=set '.$name.' toggle&XHR=1">'.FW_makeImage($light)."</a>$text"}
attr Aquarium_CO2 genericDeviceType switch
attr Aquarium_CO2 group Aquarium Nanocube
attr Aquarium_CO2 icon hue_filled_outlet
attr Aquarium_CO2 jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
attr Aquarium_CO2 model tasmota_POW
attr Aquarium_CO2 readingList tele/Corn4/LWT:.* LWT\
  tele/Corn4/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Corn4/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Corn4/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Corn4/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/Corn4/POWER1:.* state\
  stat/Corn4/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Aquarium_CO2 room Büro
attr Aquarium_CO2 setList off:noArg    cmnd/Corn4/POWER1 0\
  on:noArg     cmnd/Corn4/POWER1 1\
  toggle:noArg cmnd/Corn4/POWER1 2
attr Aquarium_CO2 setStateList on off toggle
attr Aquarium_CO2 stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"))}
attr Aquarium_CO2 webCmd :


Template 20200529:
defmod Aquarium_Heizung MQTT2_DEVICE DVES_DBBDC1
attr Aquarium_Heizung IODev MQTT_Server
attr Aquarium_Heizung alias Aquarium Heizung
attr Aquarium_Heizung autocreate 0
attr Aquarium_Heizung comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/Gosund_Steckdose1/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr Aquarium_Heizung devStateIcon {my $text = ' uptime: '.ReadingsVal($name,"Uptime","unknown").sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"));; my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<div><a href=\"http://".ReadingsVal($name,"IPAddress","none")." \"target=\"_blank\">".FW_makeImage($onl).'</a> <a href="/fhem?cmd.dummy=set '.$name.' toggle&XHR=1">'.FW_makeImage($light)."</a>$text<b></b>"}
attr Aquarium_Heizung genericDeviceType switch
attr Aquarium_Heizung group Aquarium Nanocube
attr Aquarium_Heizung icon hue_filled_outlet
attr Aquarium_Heizung jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
attr Aquarium_Heizung model tasmota_POW
attr Aquarium_Heizung readingList tele/Gosund_Steckdose1/LWT:.* LWT\
  tele/Gosund_Steckdose1/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Gosund_Steckdose1/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Gosund_Steckdose1/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Gosund_Steckdose1/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/Gosund_Steckdose1/POWER1:.* state\
  stat/Gosund_Steckdose1/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Aquarium_Heizung room Büro
attr Aquarium_Heizung setList off:noArg    cmnd/Gosund_Steckdose1/POWER1 0\
  on:noArg     cmnd/Gosund_Steckdose1/POWER1 1\
  toggle:noArg cmnd/Gosund_Steckdose1/POWER1 2
attr Aquarium_Heizung setStateList on off toggle
attr Aquarium_Heizung stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"))}
attr Aquarium_Heizung webCmd :


Irgendeine Idee woran das liegen könnte? Er erkennt aus irgendwelchen Gründen auch das IODevice nicht automatisch. Wenn ich es manuell setze, macht es jedoch keinen Unterschied.

Beta-User

Sind vermutlich zwei getrennte Themen:
a) Das mit IODev hat nichts mit attrTemplate zu tun, das Attribut wird einfach seit neuestem nicht mehr automatisch gesetzt: https://forum.fhem.de/index.php/topic,120603.0.html
Falls (!) du Probleme damit hast (also v.a. das Reading/Internal falsch gesetzt wird, was - wenn überhaupt - nur dann auftreten kann, wenn du mehrere passende IO's hast), bitte dazu einen neuen Thread aufmachen. (@Rudi, evtl. noch ein Fall, den man sich ansehen sollte: https://forum.fhem.de/index.php/topic,121213.0.html)

b) Ich _vermute_, du hast auch eine neue Tasmota-Version (9.4) geflasht, die etwas andere Infos an die INFO.-Topics sendet. Die readingList wird durch die neue Version leider nicht wie erhofft gesetzt, mir ist leider ausgerechnet das "Zentraltemplate" durchgerutscht. Habe das jetzt nachgeholt, wenn du magst, kannst du die aktuelle Fassung aus dem svn holen, sonst ab morgen per update.
Falls es weiter Probleme gibt, bitte ausnahmsweise dann ein list liefern, wir brauchen bestimmte Infos auch zu den Internals (und Readings), sonst ist es schwierig rauszufinden, wo das Problem ggf. noch steckt
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

darthi

#441
Dank dir für die schnelle Antwort. Die Readings passen, daher sollte das IODev keine Probleme machen.

Zum eigentlichen Problem: Du hast mit deiner Vermutung recht. :)
Verwende die aktuelle Tasmota 9.4 (bzw. 9.2), da ich nur eine Steckdose auf die allerletzte Version geholt habe, weil ich erst dachte, es gibt Probleme mit Tasmota. Die anderen Steckdosen, also die mit korrekter Anzeige, laufen noch mit Tasmota 8.x und älter.

Hab mir gerade über ein Update die aktuelle Version des Templates geholt, das Verhalten ist aber leider noch identisch. Hab auch nicht nur das Template neu gesetzt, sondern das ganze Gerät noch einmal per Autocreate anlegen lassen.

Was genau brauchst du von mir, um das Problem weiter einzugrenzen?

Hier schon einmal ein komplettes List meines "Test-Devices" (ich habe nur mal die SSID herausgenommen):

Internals:
   CFGFN     
   CID        DVES_D1FDB8
   DEF        DVES_D1FDB8
   DEVICETOPIC Aquarium_3_Licht
   FUUID      60abd70c-f33f-c6cb-e99f-cc6a1237bc3fdb8c
   IODev      MQTT_Server
   LASTInputDev MQTT_Server
   MQTT_Server_MSGCNT 20
   MQTT_Server_TIME 2021-05-24 18:48:00
   MSGCNT     20
   NAME       Aquarium_3_Licht
   NR         221
   STATE      aktuell: 0.0 W Tag: 0.12 kWh Gestern: 0.118 kWh Gesamt: 0.2540 kWh
   TYPE       MQTT2_DEVICE
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   OLDREADINGS:
   READINGS:
     2021-05-24 18:48:00   ENERGY_ApparentPower 0
     2021-05-24 18:48:00   ENERGY_Current  0.000
     2021-05-24 18:48:00   ENERGY_Factor   0.00
     2021-05-24 18:48:00   ENERGY_Period   0
     2021-05-24 18:48:00   ENERGY_Power    0
     2021-05-24 18:48:00   ENERGY_ReactivePower 0
     2021-05-24 18:48:00   ENERGY_Today    0.118
     2021-05-24 18:48:00   ENERGY_Total    0.254
     2021-05-24 18:48:00   ENERGY_TotalStartTime 2021-05-22T11:12:35
     2021-05-24 18:48:00   ENERGY_Voltage  0
     2021-05-24 18:48:00   ENERGY_Yesterday 0.118
     2021-05-24 18:42:55   FallbackTopic   cmnd/DVES_D1FDB8_fb/
     2021-05-24 18:42:55   GroupTopic      cmnd/tasmotas/
     2021-05-24 18:48:00   Heap            26
     2021-05-24 18:42:55   Hostname        Corn3-7608
     2021-05-24 18:42:55   IPAddress       192.168.101.138
     2021-05-24 18:42:55   LWT             Online
     2021-05-24 18:48:00   LoadAvg         19
     2021-05-24 18:42:55   Module          JH-G01B1
     2021-05-24 18:48:00   MqttCount       1
     2021-05-24 18:42:55   RestartReason   Software/System restart
     2021-05-24 18:48:00   Sleep           50
     2021-05-24 18:48:00   SleepMode       Dynamic
     2021-05-24 18:48:00   Time            2021-05-24T18:48:00
     2021-05-24 18:48:00   Uptime          0T00:05:09
     2021-05-24 18:48:00   UptimeSec       309
     2021-05-24 18:42:55   Version         9.4.0(tasmota)
     2021-05-24 18:42:55   WebServerMode   Admin
     2021-05-24 18:48:00   Wifi_AP         1
     2021-05-24 18:48:00   Wifi_BSSId      E4:26:8B:8B:AA:B8
     2021-05-24 18:48:00   Wifi_Channel    11
     2021-05-24 18:48:00   Wifi_Downtime   0T00:00:03
     2021-05-24 18:48:00   Wifi_LinkCount  1
     2021-05-24 18:48:00   Wifi_RSSI       64
     2021-05-24 18:48:00   Wifi_SSId     
     2021-05-24 18:48:00   Wifi_Signal     -68
     2021-05-24 18:40:58   attrTemplateVersion 20210521
     2021-05-24 18:43:09   state           off
     2021-05-24 18:42:42   subscriptions   cmnd/Corn3/# cmnd/DVES_D1FDB8_fb/# cmnd/tasmotas/#
Attributes:
   alias      Aquarium 3 Licht
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Corn3/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon {my $text = ' uptime: '.ReadingsVal($name,"Uptime","unknown").sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"));; my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<div><a href=\"http://".ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none"))." \"target=\"_blank\">".FW_makeImage($onl).'</a> <a href="/fhem?cmd.dummy=set '.$name.' toggle&XHR=1">'.FW_makeImage($light)."</a>$text"}
   genericDeviceType switch
   group      Aquarium
   icon       hue_filled_outlet
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_POW
   readingList tele/Corn3/LWT:.* LWT
  tele/Corn3/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Corn3/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Corn3/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
  tele/Corn3/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/Corn3/POWER1:.* state
  stat/Corn3/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Wohnzimmer
   setList    off:noArg    cmnd/Corn3/POWER1 0
  on:noArg     cmnd/Corn3/POWER1 1
  toggle:noArg cmnd/Corn3/POWER1 2
   setStateList on off toggle
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"))}
   webCmd     :


edit: Okay, es scheint doch eher an der Template Version zu liegen statt an der Tasmota Version. Sehe gerade, dass die eine Steckdose, die ebenfalls neu eingerichtet wurde und länger in der Ecke lag, noch auf einer 8er Tasmota Version läuft und dasselbe Verhalten in FHEM zeigt. Hier auch der ihre Readings:
Internals:
   CID        DVES_D31A47
   DEF        DVES_D31A47
   DEVICETOPIC Aquarium_3_Pumpe
   FUUID      60a8d48c-f33f-c6cb-2ee1-461ba56e3e7b0c9f
   IODev      MQTT_Server
   LASTInputDev MQTT_Server
   MQTT_Server_MSGCNT 25
   MQTT_Server_TIME 2021-05-24 19:22:39
   MSGCNT     25
   NAME       Aquarium_3_Pumpe
   NR         115
   STATE      aktuell: 7.0 W Tag: 0.13 kWh Gestern: 0.185 kWh Gesamt: 71.2570 kWh
   TYPE       MQTT2_DEVICE
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   OLDREADINGS:
   READINGS:
     2021-05-24 19:22:39   ENERGY_ApparentPower 13
     2021-05-24 19:22:39   ENERGY_Current  0.056
     2021-05-24 19:22:39   ENERGY_Factor   0.58
     2021-05-24 19:22:39   ENERGY_Period   1
     2021-05-24 19:22:39   ENERGY_Power    7
     2021-05-24 19:22:39   ENERGY_ReactivePower 11
     2021-05-24 19:22:39   ENERGY_Today    0.133
     2021-05-24 19:22:39   ENERGY_Total    71.257
     2021-05-24 19:22:39   ENERGY_TotalStartTime 2020-10-22T16:09:47
     2021-05-24 19:22:39   ENERGY_Voltage  229
     2021-05-24 19:22:39   ENERGY_Yesterday 0.185
     2021-05-24 19:22:39   Heap            31
     2021-05-24 19:22:39   LoadAvg         19
     2021-05-24 19:22:39   MqttCount       3
     2021-05-24 19:22:39   Sleep           50
     2021-05-24 19:22:39   SleepMode       Dynamic
     2021-05-24 19:22:39   Time            2021-05-24T18:22:38
     2021-05-24 19:22:39   Uptime          2T07:00:15
     2021-05-24 19:22:39   UptimeSec       198015
     2021-05-24 19:22:39   Wifi_AP         1
     2021-05-24 19:22:39   Wifi_BSSId      E4:26:8B:8B:AA:B8
     2021-05-24 19:22:39   Wifi_Channel    11
     2021-05-24 19:22:39   Wifi_Downtime   0T00:00:07
     2021-05-24 19:22:39   Wifi_LinkCount  1
     2021-05-24 19:22:39   Wifi_RSSI       82
     2021-05-24 19:22:39   Wifi_SSId       
     2021-05-24 19:22:39   Wifi_Signal     -59
     2021-05-24 19:09:47   attrTemplateVersion 20210521
     2021-05-24 19:11:09   state           on
Attributes:
   alias      Aquarium 3 Pumpe
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Corn1/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon {my $text = ' uptime: '.ReadingsVal($name,"Uptime","unknown").sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"));; my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<div><a href=\"http://".ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none"))." \"target=\"_blank\">".FW_makeImage($onl).'</a> <a href="/fhem?cmd.dummy=set '.$name.' toggle&XHR=1">'.FW_makeImage($light)."</a>$text"}
   genericDeviceType switch
   group      Aquarium
   icon       hue_filled_outlet
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_POW
   readingList tele/Corn1/LWT:.* LWT
  tele/Corn1/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Corn1/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Corn1/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
  tele/Corn1/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/Corn1/POWER1:.* state
  stat/Corn1/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Wohnzimmer
   setList    off:noArg    cmnd/Corn1/POWER1 0
  on:noArg     cmnd/Corn1/POWER1 1
  toggle:noArg cmnd/Corn1/POWER1 2
   setStateList on off toggle
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1"))}
   webCmd     :

Beta-User

Kannst du mal devStateIcon aus der Vorgänger-Version testen? Ich vermute, das "fett ein-aus" hatte doch eine Funktion...
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

darthi

Ja mit dem alten DevStateIcon {my $text = ' uptime: '.ReadingsVal($name,"Uptime","unknown").sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power","-1"), ReadingsVal($name,"ENERGY_Today","-1"), ReadingsVal($name,"ENERGY_Yesterday","-1"), ReadingsVal($name,"ENERGY_Total","-1")); my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot"; my $light = ReadingsVal($name,"state","off");"<div><a href=\"http://".ReadingsVal($name,"IPAddress","none")." \"target=\"_blank\">".FW_makeImage($onl).'</a> <a href="/fhem?cmd.dummy=set '.$name.' toggle&XHR=1">'.FW_makeImage($light)."</a>$text<b></b>"}

funktioniert die Anzeige. Allerdings wird das Gerät nicht als online angezeigt (Kreis rot). Siehe mein edit oben, es scheint wohl auch mit den alten Tasmota Versionen mit dem neuen Template ein Problem zu geben.

Beta-User

Zur Sicherheit: das LWT-Reading ist auf Online, aber der Punkt rot?
(Werte werden gelöscht, das dauert uU. etwas.)
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

darthi

#445
Okay vergiss es. LWT Reading war nicht da... Nun ist er grün. Also scheint es mit dem "alten" DevStateIcon zu funktionieren.

Vielen Dank für die Hilfe!

Beta-User

Danke erst mal für die Rückmeldung, dass
Zitat von: Beta-User am 24 Mai 2021, 19:18:55
vermute, das "fett ein-aus" hatte doch eine Funktion...
zutreffend war.

Trotzdem finde ich den Hinweis an sich von hier berechtigt:
Zitat von: yersinia am 07 Mai 2021, 16:14:00
btw, soll das eigtl so
$text<b></b>
?

Hat also jemand eine bessere Idee? Würde z.B. das hier auch zu einer richtigen Anzeige führen (will nicht unbedingt das list abtippen, um es selbst zu testen):
$text</p>
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

Hallo Jörg,

hab ich zufällig im Template name:OpenMQTTGateway_simple_RF433_switch entdeckt -
dort gibt es die Zeile zweimal?
3998 defmod OMG_DEVCID MQTT2_\DEVICE DEVCID
3999 deletereading -q OMG_DEVCID (?!associatedWith).*
4000 defmod OMG_DEVCID MQTT2_\DEVICE DEVCID

Wenn Du mir jetzt noch bitte sagst, ob ich diese Zeile auch in mein Worx Template reinnehmen sollte damit die komische / deformierte DEF / CID dort nicht steht.
Da wird aus der CID (im MQTT2_CLIENT) android-da1a23fb-12bf-1234-a1d2-123c4567b89b sowas im
MQTT2_DEVICE android_da1a23fb_12bf_1234_a1d2_123c4567b89b_
  ??? ::)

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 29 Mai 2021, 21:28:55
dort gibt es die Zeile zweimal?
Das ist ein Versehen und fliegt bei nächster Gelegenheit raus... ::)
(Aber auch kein Beinbruch, wird halt unnötigerweise doppelt gesetzt.)

ZitatWenn Du mir jetzt noch bitte sagst, ob ich diese Zeile auch in mein Worx Template reinnehmen sollte damit die komische / deformierte DEF / CID dort nicht steht.
Von hier aus: Schwierig...
Wenn die CID eindeutig ist und "irgendwie" bei der Zuordnung neuer Topics auf das Device hilft: eher drin lassen, auch wenn es "komisch" ist. (Ohne das im Code verifiziert zu haben:) Die "Transformation" (mit den Unterstrichen) dürfte auch bei neuen Topics identisch durchlaufen werden, das ist in dem Zusammenhang eher kein Problem.
Wenn es aber sowieso eine Random-Angabe ist und der M2C Client sowieso auf diese eine Verbindung beschränkt ist (und dieses M2D sowieso "alles bekommt"), kannst du auch die CID ganz löschen (das fände ich dann vom Bauchgefühl her besser, als "irgendwas" zu setzen; allenfalls die aus dem IO abgeleitete CID wäre evtl. noch eine Variante (?).) 

Anm.: Die "händischen" CID-Vergaben sind uU. nicht bis ins Letzte durchdacht, bei der oMG-RF-Geschichte ist es "zum Wiederfinden" ein RF-Code, soweit ich mich entsinne.
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

Ich habe es jetzt nach Deiner Empfehlung gemacht und mache
defmod DEVICE MQTT2_\DEVICEwobei dadurch das Internal CID nicht gelöscht wird.

Ich verstehe noch nicht warum die Bindestriche in der CID beim autocreate des MQTT2_DEVICE in Unterstriche umgewandelt werden (müssen?)
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