FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Mihca am 06 Juni 2020, 17:04:14

Titel: [gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 06 Juni 2020, 17:04:14
Der POW R2 ist mit Tasmota 8.3.1 geflasht und lässt sich auch in fhem einbinden. Als Template habe ich tasmota_POW gesetzt. Alle Werte werden empfangen. Dennoch ist im Device (Foto) kein Schalter, keine IP, kein LWT zu sehen. Per "set [Device] on" lässt er sich erwartungsgemäß schalten.

Was mache ich falsch? Vielen Dank vorab!
Achim

Hier das Raw-Listing:

defmod MaehRoboter MQTT2_DEVICE MaehRoboter
attr MaehRoboter IODev MQTT2Server
attr MaehRoboter autocreate 0
attr MaehRoboter 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/tasmota_4FB095/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr MaehRoboter devStateIcon {my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<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> 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"))}
attr MaehRoboter genericDeviceType switch
attr MaehRoboter icon hue_filled_outlet
attr MaehRoboter 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 MaehRoboter model tasmota_POW
attr MaehRoboter readingList tele/tasmota_4FB095/LWT:.* LWT\
  tele/tasmota_4FB095/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_4FB095/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_4FB095/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_4FB095/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_4FB095/POWER1:.* state\
  stat/tasmota_4FB095/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MaehRoboter room MQTT2_DEVICE
attr MaehRoboter setList off:noArg    cmnd/tasmota_4FB095/POWER1 0\
  on:noArg     cmnd/tasmota_4FB095/POWER1 1\
  toggle:noArg cmnd/tasmota_4FB095/POWER1 2
attr MaehRoboter setStateList on off toggle
attr MaehRoboter 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 MaehRoboter webCmd :

setstate MaehRoboter aktuell: 60.0 W Tag: 0.02 kWh Gestern: 0.000 kWh Gesamt: 0.0170 kWh
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_ApparentPower 63
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Current 0.267
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Factor 0.95
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Period 1
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Power 60
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_ReactivePower 20
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Today 0.017
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Total 0.017
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_TotalStartTime 2020-06-06T14:16:03
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Voltage 236
setstate MaehRoboter 2020-06-06 16:57:28 ENERGY_Yesterday 0.000
setstate MaehRoboter 2020-06-06 16:43:23 FallbackTopic cmnd/MaehRoboter_fb/
setstate MaehRoboter 2020-06-06 16:43:23 GroupTopic cmnd/tasmotas/
setstate MaehRoboter 2020-06-06 16:57:28 Heap 26
setstate MaehRoboter 2020-06-06 16:43:23 Hostname tasmota_4FB095-4245
setstate MaehRoboter 2020-06-06 16:43:23 IPAddress 192.168.0.24
setstate MaehRoboter 2020-06-06 16:43:23 LWT Online
setstate MaehRoboter 2020-06-06 16:57:28 LoadAvg 19
setstate MaehRoboter 2020-06-06 16:43:23 Module Sonoff Pow R2
setstate MaehRoboter 2020-06-06 16:57:28 MqttCount 1
setstate MaehRoboter 2020-06-06 16:43:23 RestartReason Software/System restart
setstate MaehRoboter 2020-06-06 16:43:09 SaveData on
setstate MaehRoboter 2020-06-06 16:43:09 SetOption26 on
setstate MaehRoboter 2020-06-06 16:57:28 Sleep 50
setstate MaehRoboter 2020-06-06 16:57:28 SleepMode Dynamic
setstate MaehRoboter 2020-06-06 16:43:08 StateText1 off
setstate MaehRoboter 2020-06-06 16:43:08 StateText2 on
setstate MaehRoboter 2020-06-06 16:43:09 StateText3 toggle
setstate MaehRoboter 2020-06-06 16:43:09 StateText4 hold
setstate MaehRoboter 2020-06-06 16:57:28 Time 2020-06-06T16:57:28
setstate MaehRoboter 2020-06-06 16:57:28 Uptime 0T00:14:09
setstate MaehRoboter 2020-06-06 16:57:28 UptimeSec 849
setstate MaehRoboter 2020-06-06 16:43:23 Version 8.3.1(tasmota)
setstate MaehRoboter 2020-06-06 16:43:23 WebServerMode Admin
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_AP 2
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_BSSId E0:28:6D:10:23:23
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_Channel 1
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_Downtime 0T00:00:03
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_LinkCount 1
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_RSSI 56
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_xxxxx
setstate MaehRoboter 2020-06-06 16:57:28 Wifi_Signal -72
setstate MaehRoboter 2020-06-06 16:43:08 attrTemplateVersion 20200522 or prior
setstate MaehRoboter 2020-06-06 16:55:48 state on
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 07 Juni 2020, 18:38:57
Gestern hatte ich ein update dafür ins svn geschubst, kann aber nicht sagen, ob das diese Effekte komplett beseitigt bzw. ob nicht noch regex für devStateIcon fehlt. Bitte testen und ggf. Rückmeldung geben.

War hier schon Thema: https://forum.fhem.de/index.php/topic,111779.0.html

Insgesamt würde mich dann das Umfeld dazu interessieren (OS/Perl-Version+voreingestellter Pfad für Icons), das tritt nicht überall in gleicher Weise auf.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 07 Juni 2020, 19:31:38
Mit dem heutigen update ist das noch nicht ok, aber es hat sich etwas geändert, siehe Bild. Man kann nun toggeln, aber die Farbe des Icons ändert sich nicht. Das LWT-Icon und die IP fehlen.

Den zitierten Thread hatte ich mir schon angesehen und daraus aber nichts ableiten können, was hilft.

Zu den Fragen:

1. OS Ubuntu 20.04
2. perl:5.030000
3. iconPath fhemSVG:openautomation:default:icons_small

Danke vorab!
VG Achim
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 10:49:55
Hmm, da fehlen mind. noch zwei Dinge, stimmt:

Kannst du das mal anpassen:
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
attr DEVICE stateFormat { my $onl = ReadingsVal($name,"LWT","false"); my $ipaddress = ReadingsVal($name,"IPAddress","none"); my $state = ReadingsVal($name,"state","unknown"); my $en_line = 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 $utime = ReadingsVal($name,"Uptime","unknown"); qq(<a href="http://$ipaddress"target="_blank">\n$onl\n</a>\n$state\n uptime: $utime $en_line) }


Weiß nicht, was mit der Farbe ist, aber könnte davon kommen, dass der href falsch gesetzt/nicht beendet gewesen war...

Interessant jedenfalls, dass das Ausgangsproblem auch unter relativ neuen OS/Perl-Versionen auftrat, Danke. Zeigt mir, dass der Umbau wohl sinnvoll ist.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 11:12:09
Moin,

danke, es wird immer besser  :), siehe Grafik.

1. Jetzt zeigt er auch LWT online/offline in der richtigen Farbe.
2. Toggeln kann man auch, allerdings wechselt die Farbe des ICONs nicht.
3. Die IP wird nicht angezeigt, obwohl sie richtig im Status (in der Grafik unten links) angezeigt wird.

VG Achim
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 11:21:42
Die IP verbirgt sich als Link hinter dem LWT-"Punkt"; das ist in vielen anderen Templates auch so gelöst und sollte m.E. (er attrTemplate) auch nicht anders gemacht werden - du selbst kennst jetzt ja ggf. die Bausteine, um das (zusätzlich) in Text anzuzeigen ;) .

Das mit der Farbe beim Toggeln verstehe ich nicht. Was ist da deine Erwartung?
So wie es jetzt ist, sollten eigentlich auch alle anderen on/off-Devices per default angezeigt werden; wenn das anders sein sollte, fehlt mir im Moment die Idee, wo der Unterschied ggf. herkommt. Es könnte dann ggf. was mit dem generellen Layout/css zu tun haben; wenn das so wäre, bräuchte ich einen Schubs, wie das auf dieser Ebene beeinflußt werden könnte - ohne die Farben hart zu codieren.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 11:30:30
Also wenn man über den LWT-Punkt mit der Maus geht, zeigt er "Online" an. Wenn man ihn anklickt zeigt er kurz die Glühbirne mit dem Ausrufzeichen (=ist was falsch) an, aber keine IP.

Und mit der Farbe beim Toggeln: Die kleine Glühbirne wechselt bei anderen Schaltern von Weiß(farblos) auf Orange, nur bei diesem Device nicht. Man kann also an der Farbe nicht erkennen, ob an oder aus. [Im DevStateIcon noch "on:light_light_dim_90@orange off:light_light_dim_00" anhängen, dann gehts]
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 11:39:44
Hmm, jetzt gehen mir etwas die Ideen aus. Erweitere mal bitte noch devStateIcon:
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot on:on:off off:off:onDas Problem scheint zu sein, dass der ganze STATE-Bereich insgesamt als Schalter verstanden zu werden scheint. Hätte gedacht, dass der eine href das durchbricht. Aber vielleicht ändert sich das mit der Ergänzung...?

Das Design ist Flex, oder? Wenn es nicht hilft, wäre nett, wenn du kurz testen könntest, ob f18 dasselbe Problem hat?
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 11:43:13
2 D.. ein Gedanke :) Ja damit geht es mit dem Iconwechsel.

Ja, ist Flex. Die Sache mit der IP bleibt auch bei Wechsel auf f18
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 12:05:58
Bei Deiner Version wechselt die Farbe nicht, sondern nur das Icon. Bei meiner Version wechselt auch die Farbe:

Online:10px-kreis-gruen Offline:10px-kreis-rot on:light_light_dim_90@orange off:light_light_dim_00
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 12:54:07
Hmm, dann müssen wir doch irgendwie das Ausgangs-Perl-devStateIcon reparieren...

Aber ich glaube nicht, das das dann die Farbe so wechselt, wie du das denkst. Farbe hart via attrTemplate vercoden will ich jedenfalls (an der Stelle) nicht.

Irgendwie scheint er den sprintf-Ausdruck nicht zu mögen, (bad regexp bzgl. der dortigen Klammer?!?) ich komme aber auch nicht so richtig dahinter, wie das zu reparieren sein könnte. Immerhin habe ich jetzt auch mal eine Fehlermeldung an einem Teststystem, das irgendwie auf das Problem hindeutet.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: TomLee am 08 Juni 2020, 12:55:55
Das mit dem Link klappt nicht wegen der zwei Zeilenumbrüche um $onl.

Sieht man schön im STATE:

STATE


<a href='http://192.168.188.64' target='_blank'>
Online
</a>
on
uptime: 108T16:28:46 aktuell: -1.0 W Tag: -1.00 kWh Gestern: -1.000 kWh Gesamt: -1.0000 kWh 192.168.188.64


Nehm ich die zwei \n raus:

STATE


<a href='http://192.168.188.64' target='_blank'>Online</a>
on
uptime: 108T16:33:46 aktuell: -1.0 W Tag: -1.00 kWh Gestern: -1.000 kWh Gesamt: -1.0000 kWh 192.168.188.64


wird das devstateIcon aber nicht aufgelöst, der Wert Online/Offline als funktionierender Link zu Seite angezeigt.

Gruß

Thomas
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 12:57:41
@Beta-User: Farbwechsel klappt, siehe Grafik
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 13:43:21
Grummel, irgendwas in dem String wirft FHEMWEB aus der Spur... Das scheint vorne ein ">" zu erwarten, wenn man entsprechend mit "<" anfängt.

So scheint es zu klappen, bitte nochmal testen:
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");"<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<div>"}
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: TomLee am 08 Juni 2020, 13:52:14
stimmt, dann passt alles,  bewirkt aber in STATE das Gegenteil von dem was du mMn zuvor verfolgt hast

ZitatBitte dann darauf achten, dass es möglichst "menschenlesbar" ist, es gibt auch User mit screenreadern, und die mögen aus guten Gründen nicht zu viel html-Code in stateFormat...

setstate MQTT2_SonoffDUAL_Schaltschrank_Test <a href="http://192.168.188.64 "target="_blank"><img class=' 10px-kreis-gruen' src="/fhem/images/default/10px-kreis-gruen.png" alt="10px-kreis-gruen" title="10px-kreis-gruen"></a> <a href="/fhem?cmd.dummy=set MQTT2_SonoffDUAL_Schaltschrank_Test toggle&XHR=1"><svg class=" off" data-txt="off" version="1.0" xmlns="http://www.w3.org/2000/svg"  width="468pt" height="617pt" viewBox="0 0 468 617"  preserveAspectRatio="xMidYMid meet"> <metadata> Created by potrace 1.8, written by Peter Selinger 2001-2007 </metadata> <g transform="translate(0,617) scale(0.221801,-0.221801)"  stroke="none"> <path d="M756 2765 c-9 -25 -7 -128 3 -144 5 -8 16 -11 25 -8 24 10 19 160 -5 165 -9 2 -19 -4 -23 -13z"/> <path d="M1310 2695 c0 -77 2 -86 18 -83 14 3 17 15 17 83 0 68 -3 80 -17 83 -16 3 -18 -6 -18 -83z"/> <path d="M1806 2581 c-47 -47 -67 -74 -63 -85 4 -9 10 -16 14 -16 17 0 155 148 149 159 -14 21 -32 10 -100 -58z"/> <path d="M220 2622 c0 -23 125 -147 139 -138 21 13 11 32 -52 94 -64 64 -87 75 -87 44z"/> <path d="M809 2257 c-70 -20 -136 -63 -174 -115 -65 -87 -65 -91 -65 -643 0 -479 1 -500 21 -553 25 -67 87 -134 160 -173 l54 -28 250 0 c235 0 253 1 296 21 63 29 125 94 158 163 l26 56 0 520 0 520 -28 56 c-32 66 -99 132 -165 162 -43 20 -65 22 -267 24 -153 2 -234 -2 -266 -10z m486 -146 c48 -22 69 -44 90 -94 13 -31 15 -107 15 -517 0 -526 0 -523 -59 -573 -48 -40 -90 -47 -299 -47 -205 0 -226 4 -280 54 -51 46 -50 40 -53 567 l-3 495 23 40 c24 43 64 72 115 85 17 4 117 7 221 8 164 0 195 -2 230 -18z"/> <path d="M13 2065 c-11 -29 12 -36 118 -33 96 3 104 4 104 23 0 19 -8 20 -108 23 -91 2 -108 0 -114 -13z"/> <path d="M1877 2066 c-11 -27 17 -36 113 -36 100 0 127 8 117 34 -5 13 -25 16 -116 16 -83 0 -110 -3 -114 -14z"/> <path d="M10 1510 c0 -19 6 -20 116 -20 105 0 115 2 112 18 -3 15 -18 17 -116 20 -107 3 -112 2 -112 -18z"/> <path d="M1876 1522 c-2 -4 -1 -14 3 -20 5 -9 38 -12 117 -10 89 2 109 6 109 18 0 12 -20 16 -112 18 -61 1 -114 -1 -117 -6z"/> <path d="M21 981 c-8 -5 -11 -16 -8 -25 5 -13 24 -16 112 -16 88 0 107 3 112 16 10 26 -16 34 -112 34 -50 0 -96 -4 -104 -9z"/> <path d="M1882 978 c-8 -8 -9 -15 -1 -25 8 -9 40 -13 108 -13 101 0 128 8 118 34 -5 13 -24 16 -110 16 -66 0 -107 -4 -115 -12z"/> <path d="M768 693 c-36 -41 -30 -95 11 -108 60 -19 520 -91 539 -84 53 20 66 99 19 119 -28 12 -482 90 -524 90 -16 0 -37 -8 -45 -17z"/> <path d="M793 530 c-41 -17 -58 -85 -28 -110 15 -12 492 -100 543 -100 33 0 62 34 62 74 0 18 -6 38 -13 44 -6 6 -120 29 -252 51 -132 23 -251 43 -265 46 -14 2 -35 0 -47 -5z"/> <path d="M793 360 c-46 -18 -59 -90 -20 -114 21 -13 478 -96 531 -96 14 0 35 9 46 20 26 26 27 85 2 99 -10 5 -126 28 -258 51 -131 22 -248 42 -259 44 -11 2 -30 0 -42 -4z"/> <path d="M871 154 c-26 -33 -27 -55 -3 -82 13 -16 51 -26 176 -47 158 -27 159 -27 185 -7 31 22 41 81 18 101 -16 13 -271 61 -323 61 -23 0 -39 -8 -53
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 13:58:01
Hmm, also der letzte Code war so gemeint, dass wir wieder auf die alte "html-free" Version von stateFormat zurückgehen und diesen Code nur für devStateIcon verwenden. Da sollte html nicht in den Internals auftauchen?
Die Zeile ist doch ausdrücklich devStateIcon...?

(sobald man das über stateFormat löst, scheint es praktisch unmöglich zu sein, das individuell klickbar zu bekommen... Daher habe ich jetzt doch versucht, das @devStateIcon zu fixen).

[OT]
Was das substr-Thema angeht: Evtl. kannst du vorab mit lenght prüfen, wie lange das ist und dann ggf. die drei Punkte nur dann anhängen, wenn du wirklich kürzen mußt (bitte bei Bedarf an anderer Stelle vertiefen)
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: TomLee am 08 Juni 2020, 14:03:31
ZitatDie Zeile ist doch ausdrücklich devStateIcon...?

Sry, ich war in Gedanken so bei stateformat, hatte mich nur über die div plötzlich gewundert, gesehen das viel HTML in STATE steht und nicht weiter mit beschäftigt, dann gleich hier geschrieben.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 14:54:29
@Beta-User: das sieht dann so wie in der Grafik aus. War vorher besser.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 14:57:53
*kopfkratz*

Solche Effekte kommen wohl hin und wieder vor, k.A., woher im Detail. Nur um sicher zu gehen:
- Bitte den stateFormat-Code entsorgen oder auf eine ungefährliche reine Text-Variante zurückbiegen;
- Browser-Cache löschen (vermutlich ist das alleine schon ausreichend) bzw. die Seite mal neu laden; notfalls FHEM mal neu starten.

Erst wenn das auch nicht fruchtet, bitte nochmal melden.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 15:05:34
Die Änderung hatte ich weisungsgemäß bei "devStateIcon" und nicht bei  "stateFormat"gemacht. Habe bei "devStateIcon" auf meine Version:

Online:10px-kreis-gruen Offline:10px-kreis-rot on:light_light_dim_90@orange off:light_light_dim_00

zurückgespielt und es geht alles bis auf die Anzeige der IP.
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 15:12:35
Die Änderung wieder in Richtung Perl sollte schon auf devStateIcon, nur die eventuelle Doppelung bei stateFormat sollte noch sicherheitshalber raus.
Dann sollte eigentlich nach einem Browser-Refresh alles ordnungsgemäß laufen (und die IP-Adresse nur bei mouse-over zu sehen sein).
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 15:28:25
Die Änderung bei "devStateIcon" gemacht und "stateFormat" komplett gelöscht. Sieht jetzt wie in der Grafik aus.

1. Wenn ich mit der Maus über das LWT-Symbol gehe zeigt sich "10px-kreis-gruen". Wenn ich dann auf LWT klicke, wird nicht die IP des Device angezeigt, sondern es öffnet sich das Tasmota-Web des Devices. Ist das so gedacht?

2. Die Farbe des Icons wechselt beim Toggeln nicht, sondern nur das Symbol. Wie kriege ich das "orange", wenn es an ist?
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 15:47:22
Danke.

Für mich sieht das so aus, als könnte/sollte man das so einchecken. Ob man den direkten Aufruf des Web-Interfaces des ESP braucht, darüber kann man streiten (ich bin selbst nicht so der Riesenfan davon, und hier ist das der einzige Grund, warum der Code so kompliziert ist; aber andere wollen das so, und so ist es dann eben einheitlich). Die verlinkte IP ist bei mouse-over unten im Browser zu sehen.

Was die Farbe angeht, funktioniert das mit "orange durchscheindend" hier auf dem Testsystem (win32, f18, Perl 5.28), das scheint also an Flex zu liegen (auch andere hatten dazu bisher nichts gemeldet bei anderen Varianten dieser Sache).

Wenn du Farbe erzwingen willst (und die IP im Klartext reicht), würde ich stateFormat-multiline-Perl (oder eine "set magic"-Schreibweise) empfehlen, zusammen mit deiner regex-Variante von devStateIcon. Ich hoffe, das ist jetzt halbwegs klar, wie es funktioniert? sonst müßtest du on/off noch mit Perl auswerten und die Farbvorgaben mit an FW_makeImage() übergeben, ginge auch (wie gesagt: im template will ich Farben möglichst vermeiden).

Danke auf alle Fälle für's testen, hatte wegen der Ursache für dieses Phänomen schon eine Zeitlang erfolglos rumgerätselt...
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 08 Juni 2020, 15:55:37
Hallo Beta-User,

gerne, ich habe mal wieder zu danken. Und wie immer hat es mir mit Dir Spaß gemacht, Dinge zu lösen.

Das mit der IP unten im Browser stimmt; hatte ich übersehen.

Das mit dem Orange ist tatsächlich ein Flex-Problem. Mit f18 ist alles ok. Das für Flex werde ich wohl so lassen müssen, da das eine Nummer zu hoch für meine Perl-Kenntnisse ist :) Damit kann ich aber leben.

VG
Achim
Titel: Antw:Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: TomLee am 08 Juni 2020, 16:06:20
zu 1. ja das sich die Tasmota-Oberfläche in einem neuen Fenster öffnet, das "10px-kreis-gruen" bei Mouseover angezeigt wird ist bei mir auch so.

zu 2. komm ich nicht ganz mit, bei mir wechselt das Glühlampensymbol die Farbe beim Statuswechsel und das Icon vorne zeigt wie gewollt Online-Status in den Farben grün/rot an.

Andere Frage:

Was soll das öffnende div da am Ende machen ?

Zitatattr 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");"<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<div>"}

Wars nicht eher so gemeint ?

Zitat{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</div>"}
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 16:16:55
schließend ist wohl richtiger...
Oder noch besser wäre vermutlich irgendwas, was gar keine Funktion hat? <p> oder </p>? Macht aber optisch einen kleinen Unterschied. Oder ein (ansonsten) völlig "unsinniges" "<b></b>"?
(Oder man versteckt das "<" irgendwie am Anfang der zurückgelieferten Zeichenkette? Aber wie?)

Falls jemand zweckdienliche Hinweise auf die "beste" Lösung liefern kann: feel free.
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: TomLee am 08 Juni 2020, 16:24:04
Zitatschließend ist wohl richtiger...

Wenn ich ne Tür nicht öffne brauch ich sie auch nicht schliessen  ;D

Seh in deinem Code keines welches zuvor öffnet.
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 16:46:35
Wir brauchen eigentlich nur ein unsichtbares ">"... Der Rest vorher ist sch..egal. Das hat damit zu tun, dass sonst die Rückgabe nicht als html erkannt wird. (Mir ist nur schleierhaft, warum das grade hier das erste Mal auftaucht).
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: TomLee am 08 Juni 2020, 16:59:30
sicher das das egal ist ? Du willst tricksen !? Kann nur das Html was ich mir selbst bei gebracht habe, wir klinken uns doch hier in HTML von FHEMWEB ein und wenn man das nicht richtig macht, dazu gehören für mich einleitende und schliessende tags, geht irgendwo an anderer Stelle wieder was schief, meine laienhafte Meinung.
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 08 Juni 2020, 17:16:41
Na ja, kann schon sein, dass ich was übersehe, aber es ist alles ok, bis der Text dazukommt, also glaube ich, korrekt gezählt zu haben.
Dazu kommt, das das hier (aus https://fhem.de/commandref_modular.html#FHEMWEB (https://fhem.de/commandref_modular.html#FHEMWEB)) mMn. eindeutig ist:
Zitat

       
  • devStateIcon
    First form:
    [...]

            
    • Perl code enclosed in {}. If the code returns [...], if it retuns a string enclosed in <>, then it is interpreted as an html string. Else [...]
  • Note: The above is valid for each line of STATE. If STATE (through stateFormat) is multilined, multiple icons (one per line) will be created.
Ergo: gibt man (in einer Zeile) ein < am Anfang einer Zeile zurück, braucht man am Ende der Zeile das Gegenstück...
ABER: das verhält sich irgendwie anders wie beschrieben, denn wenn man das wirklich in devStateIcon mit \n macht und z.B. schreibt:

{my $text = '\n 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");"<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"}

geht das auch nicht, obohl hier das schließende > vor der \n landet...

Wie dem auch sei, solange mir nichts mehr besseres einfällt, mache ich da ggf. einfach das ein-aus-Fett hin?.
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 10 Juni 2020, 08:33:28
Moin,
mit dem heutigen Update ist ein neues Template für den POW gekommen. Da stimmt noch was nicht, siehe Grafik. Wenn man das StateFormat löscht, passt es.
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Beta-User am 10 Juni 2020, 10:42:11
Kannst du mal testen, ob das mit dem vorherigen stateFormat besser wäre:
attr DEVICE 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"))}
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 10 Juni 2020, 10:50:28
Ja, das geht!
Titel: Antw:[gelöst] Template für Sonoff POW R2 funktioniert nicht vollständig
Beitrag von: Mihca am 11 Juni 2020, 08:47:16
Mit dem heutigen Update ist dann alles ok.
Danke :)
VG Achim