mqtt - tasmota POW template - Link im devstateicon

Begonnen von holle75, 28 Juli 2024, 17:17:58

Vorheriges Thema - Nächstes Thema

holle75

Hallo Ihr, nett mit diesen Templates. Besonders wenn man erst anfängt mit MQTT. Danke für die Vorarbeit.

tasmota POW template

Da mich die Zeit, wie lange das Ding schon online ist nur halb interessiert hat, aber mehr, unter welcher IP mit klick, erreichbar, habe ich versucht, das devstateicon umzubasteln. Mit viel Schmerz auch hinbekommen, aber trotzdem würde mich interessieren, warum, wenn ich den Link direkt in das devstateicon attr schreibe, fhem mir immer die fhem-Adresse vor die eigentliche Adresse setzt (im Link).

(aus dem Kopf https://fhemip:port/#http://tasmotaip)

Mit einem UserReadings umgangen, verstehen würde ich es trotzdem gerne.

Das neue devstateicon und das UserReadings
attr MQTT2_tasmota_Steckdose_DVES_83A4D8 devStateIcon {my $text = ' IP: '.ReadingsVal($name,"IPAddress-holle","unknown").sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.2f kWh Gesamt: %.2f 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",ReadingsVal($name,"Info2_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>"}

attr MQTT2_tasmota_Steckdose_DVES_83A4D8 userReadings IPAddress-holle \
{'<a href="http://'.ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none")).'" style="color: green;; text-decoration: underline;;" target="_blank" rel="noopener noreferrer">'.ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none")).'</a>'}



Weiß jemand warum?


holle75

Danke Thomas, dem Link gefolgt, Inhalt verstanden, bei mir hat es ein http:// vor der eigentlichen Adresse, es wird trotzdem der fhem Link vorgesetzt.

Aber ,,gut" zu wissen, dass es wohl ein Browser Phänomen ist. Der Workaround über UserReadings funktioniert ja. Wenn auch unschön.

TomLee

Wenn ich am PC bin würd ich das gerne ohne_großen_Aufwand mal nachvollziehen.

Kannst Du bitte mal ein Copy for forum.fhem.de von der Definition zeigen ?

holle75

#4
"Das Alte" attr (mit dem Link direkt integriert) gibt es nicht mehr. Und hatte mich Ewigkeiten gekostet mit dem Hochkomma-/Komma-/Semikolon-/Punktwahnsinn ;)
Im Prinzip war Eins zu Einst das UserReadings anstatt des jetzigen ReadingsVal eingebaut (siehe oben).

Ich kanns nur hier nochmal versuchen (ungetestet und Link style eingekürzt):
attr MQTT2_tasmota_Steckdose_DVES_83A4D8 devStateIcon {my $text = ' IP: <a href="http://'.ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none")).'" target="_blank">'.ReadingsVal($name,"IPAddress",ReadingsVal($name,"Info2_IPAddress","none")).'</a>'.sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.2f kWh Gesamt: %.2f 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",ReadingsVal($name,"Info2_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>"}