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
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.
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
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
Danke, das hat mir geholfen 8)