FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Bitschubser am 26 Oktober 2020, 17:09:18

Titel: devStateIcon
Beitrag von: Bitschubser am 26 Oktober 2020, 17:09:18
Hallo,

ich habe einen Shelly1PM mit der Original Firmware per MQTT eingebunden.
Dabei wurde beim einspielen des Templates auch das Attribut devStateIcon gesetzt auf:

{my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen";; my $light = ReadingsVal($name,"state","off");; my $cons = ReadingsVal($name,"relay_0_power","unknown");; my $total = ReadingsVal($name,"relay_0_kWh","unknown");; my $temp = ReadingsVal($name,"temperature","-100");;"<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}


das versuche ich nun für andere Gerät nachzubauen. Leider vergeblich.
Wenn ich die Codezeile mal anders formatiere - nur wegen der Übersicht - sieht das ja so aus:

{
my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen";;
my $light = ReadingsVal($name,"state","off");;
my $cons = ReadingsVal($name,"relay_0_power","unknown");;
my $total = ReadingsVal($name,"relay_0_kWh","unknown");;
my $temp = ReadingsVal($name,"temperature","-100");;
"<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a>
<div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"
}


Mein Problem ist Zeile 7. Was passiert da?
Wird da vom Shelly was runtergeladen?? ???
Und was ist cmd.dummy? und XHR=1?

Kann mir das jemand erklären?
Liebe Grüße
Jens
Titel: Antw:devStateIcon
Beitrag von: betateilchen am 26 Oktober 2020, 17:32:25
Zitat von: Bitschubser am 26 Oktober 2020, 17:09:18
Mein Problem ist Zeile 7. Was passiert da?

Da wird html Code generiert, der für die Anzeige im FHEM Frontend gebraucht wird.

Zitat von: Bitschubser am 26 Oktober 2020, 17:09:18
Wird da vom Shelly was runtergeladen?? ???

Nein.

Zitat von: Bitschubser am 26 Oktober 2020, 17:09:18
Und was ist cmd.dummy?

Das ist die Aktion, die von FHEM ausgeführt werden soll, wenn Du auf den generierten Link im Frontend klickst.
Genaugenommen ist es das hier: /fhem?cmd.dummy=set $name toggle&XHR=1
Da wird also ein Gerät abwechselnd an- und ausgeschaltet (toggle)
Die Angabe von ...cmd=... wäre vermutlich schon ausreichend.

Zitat von: Bitschubser am 26 Oktober 2020, 17:09:18
und XHR=1?

Das ist ein technischer Parameter.

Alles aber auch schon viele Male im Forum (vermutlich auch im Wiki)  beschrieben.
Titel: Antw:devStateIcon
Beitrag von: MichaelO am 05 November 2022, 17:39:33
Moin,
ich hätte da auch noch eine Frage, auch wenn das Thema schon etwas älter ist. Wenn der Shelly angelegt ist, erscheint im UI ja der rote/grüne Punkt (da denke ich verstanden zu haben, wie der generiert wird), gefolgt von dem Glühbirnen-Icon. Wo wird denn dieses erzeugt? Ich würde da gerne je nach Verwendung des Shelly ein anderes Icon haben, verstehe aber anscheinend die devStateIcon-Zeilen nicht :o
Gruß
Michael
Titel: Antw:devStateIcon
Beitrag von: gestein am 05 November 2022, 22:39:57
Das zweite Icon steht in $light (on/off sind die Glühbirnen).
Da kannst Du jedes andere Icon auch nehmen.

Hier habe ich z.B. einen Ventilator:
my $light =  ReadingsVal($name,"state","off") eq "on"?'vent_ventilation_level_3@green':'vent_ventilation@green';

Lg, Gerhard
Titel: Antw:devStateIcon
Beitrag von: MichaelO am 07 November 2022, 10:34:19
Danke, das hat mir geholfen  8)