Hallo zusammen,
ich stehe noch ganz am Anfang mit FHEM und muss noch einiges lernen.
Mit meinem aktuellen Problem komme ich trotz intensiver Recherche nicht zu einer Lösung (vielleicht auch die falschen Suchbegriffe?!).
In dem Status des Sonoff-Schalters ist Folgendes enthalten:
1. ein kleiner grüner oder roter Punkt je nachdem, ob eine Verbindung besteht -> CHECK
2. in grüner Schrift und als Link ausgeführt, der beim drauf klicken an oder aus schaltet: aktuell: 3.0 W Tag: 0.03 kWh Gestern: 0.000 kWh Gesamt: 0.0330 kWh
3. dahinter in schwarzer Schrift: uptime: 0T00:20:17 aktuell: 3.0 W Tag: 0.03 kWh Gestern: 0.000 kWh Gesamt: 0.0330 kWh
Muss der Text aus 2. da wirklich stehen? :o
Vielen Dank für Eure Hilfe, ich gehe davon aus, dass ich einfach etwas total einfaches übersehe.
Ich habe FHEM (und den RPi) von Grunde auf neu installiert, nachdem ich ein paar Probleme mit dem RaspberryPi hatte.
Davor meine ich war da einfach eine Glühlampe, an der ich ein- oder ausschalten konnte.
Folgend ein List des Device:
Internals:
CFGFN
CID DVES_507199
DEF DVES_507199
DEVICETOPIC MQTT2_DVES_507199
FUUID * GESCHWÄRZT *
IODev MQTT2_SERVER
LASTInputDev MQTT2_SERVER
MQTT2_SERVER_MSGCNT 12
MQTT2_SERVER_TIME 2020-08-27 14:36:10
MSGCNT 12
NAME MQTT2_DVES_507199
NR 1788
STATE aktuell: 3.0 W Tag: 0.03 kWh Gestern: 0.000 kWh Gesamt: 0.0330 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:
2020-08-27 14:36:10 ENERGY_ApparentPower 11
2020-08-27 14:36:10 ENERGY_Current 0.046
2020-08-27 14:36:10 ENERGY_Factor 0.25
2020-08-27 14:36:10 ENERGY_Period 0
2020-08-27 14:36:10 ENERGY_Power 3
2020-08-27 14:36:10 ENERGY_ReactivePower 11
2020-08-27 14:36:10 ENERGY_Today 0.033
2020-08-27 14:36:10 ENERGY_Total 0.033
2020-08-27 14:36:10 ENERGY_TotalStartTime 2020-08-24T08:21:36
2020-08-27 14:36:10 ENERGY_Voltage 238
2020-08-27 14:36:10 ENERGY_Yesterday 0.000
2020-08-27 14:36:10 LoadAvg 19
2020-08-27 14:23:40 SaveData on
2020-08-27 14:23:40 SetOption26 on
2020-08-27 14:36:10 Sleep 50
2020-08-27 14:36:10 SleepMode Dynamic
2020-08-27 14:23:39 StateText1 off
2020-08-27 14:23:39 StateText2 on
2020-08-27 14:23:40 StateText3 toggle
2020-08-27 14:23:40 StateText4 hold
2020-08-27 14:36:10 Time 2020-08-27T14:36:09
2020-08-27 14:36:10 Uptime 0T00:15:17
2020-08-27 14:36:10 Vcc 3.148
2020-08-27 14:36:10 Wifi_AP 1
2020-08-27 14:36:10 Wifi_BSSId * GESCHWÄRZT *
2020-08-27 14:36:10 Wifi_Channel 6
2020-08-27 14:36:10 Wifi_Downtime 0T00:00:05
2020-08-27 14:36:10 Wifi_LinkCount 1
2020-08-27 14:36:10 Wifi_RSSI 26
2020-08-27 14:36:10 Wifi_SSId * GESCHWÄRZT *
2020-08-27 14:23:39 attrTemplateVersion 20200801
Attributes:
IODev MQTT2_SERVER
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/home/cmnd/KG/sonoff02/test/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"; "<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($state)."</a>$text<b></b>"}
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 home/tele/KG/sonoff02/test/LWT:.* LWT
home/tele/KG/sonoff02/test/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/tele/KG/sonoff02/test/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/tele/KG/sonoff02/test/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/tele/KG/sonoff02/test/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/stat/KG/sonoff02/test/POWER1:.* state
home/stat/KG/sonoff02/test/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
room MQTT2_DEVICE
setList off:noArg home/cmnd/KG/sonoff02/test/POWER1 0
on:noArg home/cmnd/KG/sonoff02/test/POWER1 1
toggle:noArg home/cmnd/KG/sonoff02/test/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 :
Dein stateFormat von dem Device ist für die Darstellung dieser Informationen zuständig.
Hmm,
vorab mal herzlich willkommen im Forum!
Das ist nicht so beabsichtigt... Eigentlich sollte das wieder das Symbol werden, sobald "state" bekannt ist, also nach der ersten Schaltung. Das scheint aber nicht der Fall zu sein - hier ist aber das Reading state gar nicht vorhanden, warum auch immer.
Bin etwas am Rätseln, woran das liegen könnte; eigentlich sollte die Info über den POWER1-Topic kommen. Hast du da ggf. was auf dem ESP umkonfiguriert oder ist das eine ältere Tasmota-Version? (meine Testgeräte waren 8.irgendwas; die Umstellung auf $state ist allerdings das letzte, was ich an dem attrTemplate verändert hatte, kann auch sein, dass das auf was anderes zugreift als ich bei der Umstellung nach dem Testen angenommen hatte (nämlich STATE)...)
@t1me2die: Diese Doppelung gab es schon immer; die ist eigentlich afaik nicht das Problem.
@Beta-User: hartwiestein fragte doch:
Muss der Text aus 2. da wirklich stehen? :o
So habe ich die Frage auch verstanden?
Sein stateFormat steht in der Übersicht im Raum und das störte ihn?
Außerdem gefällt mir das "webCmd" nicht so richtig?
Fehlt da was?
Trag dort mal ein:
attr MQTT2_DVES_507199 webCmd ON:OFF
Gruß
Vielen Dank für die Antworten.
Ich probiere es mal mit dem Tasmota aktualisieren. Hatte fälschlich angenommen, dass tasmota.info irgendwie offiziell sei, aber das ist es wohl nicht. Da ist auf jeden Fall in der Anleitung dann wohl eine alte Firmware drin.
Etwas geändert habe ich nämlich (schon allein mangels Können) nicht.
Zitat von: Beta-User am 27 August 2020, 15:02:18
vorab mal herzlich willkommen im Forum!
Vielen Dank :)
@t1me2die: Die Frage habe ich gehört, und dass stateFormat STATE "füllt", ist auch keine Neuigkeit.
Seine (und daran anknüpfend meine) Frage war aber, warum da kein _Symbol_ mehr _zusätzlich_ steht (so war es definitiv früher und so sollte es auch wieder sein).
Und das liegt vermutlich daran, dass das Reading "state" nicht aktualisiert wird (oder daran, dass meine Änderung im attrTemplate Mist war). Um das zu beheben, könnte man auch das jsonMap entsprechend ändern, dann erhält man vermutlich in jedem Fall ein klickbares Symbol. Da gibt es aber einen Haken (darum steht das auf ":0"), und aus diesem Grund würde ich gerne erfahren, warum über den POWER-_topic_ keine Info kommt. (tasmota.info ist "irgendeine" Quelle, und die Links auf das offizielle Repo scheinen teilweise kaputt zu sein).
(Und wer mag, kann schon on:off (!) in webCmd eintragen, ich sehe nur keinen Mehrwert, zwei Symbole in der Raumansicht zu haben, wenn eines für diese Funktionalität ausreichend ist - unterstellt, devStateIcon tut was es soll ;) ).
Zitat von: hartwiestein am 27 August 2020, 15:19:09
Vielen Dank :)
Gerne, vor allem, wenn man eine (bis auf die Tasmota-Versionsinfo) vollständige und nachvollziehbare Fehlerbeschreibung bekommt ;) . Vorbildlich!
Also zunächst noch einmal vielen Dank für Eure Hilfe.
Tasmota habe ich aktualisiert (wenn es einmal drauf ist, ist das ja ein Kinderspiel 8) endlich kann ich auch mal was ohne größere Recherche :D )
Die Version ist jetzt:
Tasmota Version 8.4.0(tasmota)
Build-Datum & -Uhrzeit 2020.07.29 12:19:21
Core-/SDK-Version 2_7_2_1/2.2.2-dev(38a443e)
Ich habe das Device gelöscht und über autocreate von dem MQQTT2-Server neu anlegen lassen.
Dann das template für sonoff_POW "drübergebügelt" und leider ist es immer noch so wie vorher.
Anstatt Symbol (und der Anzeige uptime: 0T00:20:17 aktuell: 3.0 W Tag: 0.03 kWh Gestern: 0.000 kWh Gesamt: 0.0330 kWh)
habe ich die Anzeige ab "aktuell" doppelt. Ich habe mal ein Bild angefügt (Ich selbst kann besser gucken, als denken :P )
Internals:
CFGFN
CID DVES_507199
DEF DVES_507199
DEVICETOPIC MQTT2_DVES_507199
FUUID * geschwärzt *
IODev MQTT2_SERVER
LASTInputDev MQTT2_SERVER
MQTT2_SERVER_MSGCNT 38
MQTT2_SERVER_TIME 2020-08-27 21:22:17
MSGCNT 38
NAME MQTT2_DVES_507199
NR 588
STATE aktuell: 3.0 W Tag: 0.05 kWh Gestern: 0.000 kWh Gesamt: 0.0520 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:
2020-08-27 21:22:17 ENERGY_ApparentPower 9
2020-08-27 21:22:17 ENERGY_Current 0.036
2020-08-27 21:22:17 ENERGY_Factor 0.31
2020-08-27 21:22:17 ENERGY_Period 0
2020-08-27 21:22:17 ENERGY_Power 3
2020-08-27 21:22:17 ENERGY_ReactivePower 8
2020-08-27 21:22:17 ENERGY_Today 0.052
2020-08-27 21:22:17 ENERGY_Total 0.052
2020-08-27 21:22:17 ENERGY_TotalStartTime 2020-08-24T08:21:36
2020-08-27 21:22:17 ENERGY_Voltage 238
2020-08-27 21:22:17 ENERGY_Yesterday 0.000
2020-08-27 21:17:12 FallbackTopic cmnd/DVES_507199_fb/
2020-08-27 21:17:12 GroupTopic home/cmnd/sonoffs/test/
2020-08-27 21:22:17 Heap 26
2020-08-27 21:17:12 Hostname KG/sonoff02-4505
2020-08-27 21:17:12 IPAddress * geschwärzt *
2020-08-27 21:17:12 LWT Online
2020-08-27 21:22:17 LoadAvg 19
2020-08-27 21:17:12 Module Sonoff Pow R2
2020-08-27 21:22:17 MqttCount 1
2020-08-27 21:17:12 RestartReason Software/System restart
2020-08-27 21:15:06 SaveData on
2020-08-27 21:15:06 SetOption26 on
2020-08-27 21:22:17 Sleep 50
2020-08-27 21:22:17 SleepMode Dynamic
2020-08-27 21:15:05 StateText1 off
2020-08-27 21:15:05 StateText2 on
2020-08-27 21:15:05 StateText3 toggle
2020-08-27 21:15:05 StateText4 hold
2020-08-27 21:22:17 Time 2020-08-27T21:22:17
2020-08-27 21:22:17 Uptime 0T00:05:09
2020-08-27 21:22:17 UptimeSec 309
2020-08-27 21:17:12 Version 8.4.0(tasmota)
2020-08-27 21:17:12 WebServerMode Admin
2020-08-27 21:22:17 Wifi_AP 1
2020-08-27 21:22:17 Wifi_BSSId * geschwärzt *
2020-08-27 21:22:17 Wifi_Channel 1
2020-08-27 21:22:17 Wifi_Downtime 0T00:00:03
2020-08-27 21:22:17 Wifi_LinkCount 1
2020-08-27 21:22:17 Wifi_RSSI 96
2020-08-27 21:22:17 Wifi_SSId * geschwärzt *
2020-08-27 21:22:17 Wifi_Signal -52
2020-08-27 21:15:05 attrTemplateVersion 20200801
2020-08-27 21:17:30 state on
Attributes:
IODev MQTT2_SERVER
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/home/cmnd/KG/sonoff02/test/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"; "<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($state)."</a>$text<b></b>"}
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 home/tele/KG/sonoff02/test/LWT:.* LWT
home/tele/KG/sonoff02/test/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/tele/KG/sonoff02/test/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/tele/KG/sonoff02/test/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/tele/KG/sonoff02/test/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
home/stat/KG/sonoff02/test/POWER1:.* state
home/stat/KG/sonoff02/test/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
room MQTT2_DEVICE
setList off:noArg home/cmnd/KG/sonoff02/test/POWER1 0
on:noArg home/cmnd/KG/sonoff02/test/POWER1 1
toggle:noArg home/cmnd/KG/sonoff02/test/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 :
Edith sagt: "list" angehängt
Du musst einfach nur stateFormat löschen und einmal das Device schalten, dann wird das Lampen-Icon dargestellt.
Gruß
Thomas
...das wäre eine Lösung...
Die andere (update der template-file folgt bei Gelegenheit) - wieder den früheren Stand des devStateIcon-Codes verwenden:
attr DEVICE 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>"}
Zitat von: TomLee am 28 August 2020, 00:28:50
Du musst einfach nur stateFormat löschen und einmal das Device schalten, dann wird das Lampen-Icon dargestellt.
Gruß
Thomas
Vielen Dank! Ich habe es ausprobiert und es funktioniert.
Zitat von: Beta-User am 28 August 2020, 09:02:48
...das wäre eine Lösung...
Die andere (update der template-file folgt bei Gelegenheit) - wieder den früheren Stand des devStateIcon-Codes verwenden:
Die Lösung habe ich auch ausprobiert und bleibe dabei. Wirkt für MICH irgendwie "runder".
Danke an alle Helfenden! Nicht selbstverständlich!
Danke für die Rückmeldung - auch hier: vorbildlich!
Zu 100% fehlt noch: [gelöst] (1. Beitrag editieren). Bitte den Thread aber nicht schließen (das haben in der letzten Zeit wieder ein paar Neulinge gemacht; sehr ärgerlich, weil da - im Gegensatz zu hier - durchaus noch Anlaß zu Anmerkungen gewesen wäre. Wobei: Hier kann mich ggf. jemand _irgendwann_ daran erinnern, dass das angekündigte update noch aussteht, sollte mir das entfallen ;) ).