Hauptmenü

devStateIcon

Begonnen von Bitschubser, 26 Oktober 2020, 17:09:18

Vorheriges Thema - Nächstes Thema

Bitschubser

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
FHEM in VM auf Proxmox, Homematic über 2x HM-Lan, Homematic-IP über Raspimatic in VM auf Proxmox, Solax-X3 G4-Wechselrichter, Pushover, TTS, Shelly + Sonoff über MQTT

betateilchen

#1
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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MichaelO

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

gestein

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

MichaelO

Danke, das hat mir geholfen  8)