CUL_WS aus Log speisen und in GUI anzeigen

Begonnen von alochter, 29 September 2023, 08:07:52

Vorheriges Thema - Nächstes Thema

alochter

Hallo zusammen,

ich habe von Fhem 5.3 auf ein Docker Image (27895 2023-08-24 12:46:07Z rudolfkoenig) umgestellt und möchte gerne wie früher Werte aus einem selbst erstellten Log (Aussehen wie bei einem CUL_WS) anzeigen. Ich hatte folgendes laufen:

CUL_WS
Buero
T: 24.6 H: 56.6
Keller
T: 20 H: 53.2
Outside
T: 18.1

Wobei Outside aus einem eigenen Log gespeist wurde. Buero und Keller sind echte Devices. Der Code sah so aus:

define Outside CUL_WS 3
attr Outside fm_order 117
attr Outside room Temperatur

define FileLog_Outside FileLog /root/fhem/AussenTemp.log Outside
attr FileLog_Outside fm_order 119
attr FileLog_Outside logtype temp4hum4:Temp/Hum,text
attr FileLog_Outside room Temperatur

define weblink_Outside weblink fileplot FileLog_Outside:hms:CURRENT
attr weblink_Outside label "AussenTemp Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_Outside room Temperatur

define Buero CUL_WS 7
attr Buero IODev CUN1
attr Buero fm_order 111
attr Buero room Temperatur

define FileLog_Buero FileLog /root/fhem/Buero.log Buero
attr FileLog_Buero fm_order 113
attr FileLog_Buero logtype hms:Temp/Hum,text
attr FileLog_Buero room Temperatur

define weblink_Buero weblink fileplot FileLog_Buero:hms:CURRENT
attr weblink_Buero label "Buero Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_Buero room Temperatur

define Keller CUL_WS 5
attr Keller IODev CUN1
attr Keller fm_order 110
attr Keller room Temperatur

define FileLog_Keller FileLog /root/fhem/Keller.log Keller
attr FileLog_Keller fm_order 112
attr FileLog_Keller logtype hms:Temp/Hum,text
attr FileLog_Keller room Temperatur

define weblink_Keller weblink fileplot FileLog_Keller:hms:CURRENT
attr weblink_Keller label "Keller Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_Keller room Temperatur


In der aktuellen Version scheint es so nicht mehr zu gehen, weil ich immer nur Fragezeichen angezeigt bekomme.
Kann mir jemand weiterhelfen und mir erklären, wie ich das hinbekomme?

LG


rudolfkoenig

Aus "define XX weblink fileplot YY" ist vor ca 10 Jahren "define XX SVG YY" geworden.
Das label Attribut sollte unveraendert funktionieren.

alochter

Habe jetzt etwas mehr hinbekommen. Trotzdem fehlt mir der Wert für "Outside", denn genau den möchte ich gerne in der FHEM App anzeigen lassen. Ich hänge nochmal ein Bild an.

LG



alochter

Zitat von: rudolfkoenig am 29 September 2023, 10:09:07Aus "define XX weblink fileplot YY" ist vor ca 10 Jahren "define XX SVG YY" geworden.
Das label Attribut sollte unveraendert funktionieren.

Danke. Ja, das hab ich jetzt auch verstanden. Ich habe wirklich sehr sehr lange nichts an Fhem gemacht. Lief einfach schön, aber nun muss ich mal umstellen. Daher nochmal kurz die Frage, wie ich anstatt der Lampe wieder den Wert aus dem Log bei "Outside" anzeigen kann? Denn das würde in der App angezeigt werden. Danke vorab:-)

rudolfkoenig

ZitatDaher nochmal kurz die Frage, wie ich anstatt der Lampe wieder den Wert aus dem Log bei "Outside" anzeigen kann?
Hat mit FileLog/SVG nichts zu tun.

Normalerweise zeigt FHEMWEB / list in der Raumansicht den Wert des STATE Internals an.
Dieser wird (wenn nichts gesetzt, s.u.) aus dem state Reading abgeleitet.
FHEMWEB zeigt statt Text ein Bild an, falls in www/images ein Bild mit dem gleichen Namen vorliegt.

Mit dem stateFormat Attribut kann man statt state andere Readings verwenden, oder selbst was rechnen: https://fhem.de/commandref_modular.html#stateFormat

Fuer FHEMWEB kann man mit dem devStateIon Attribut unterschiedlichen STATE Werten relativ einfach (d.h. in der Detailansicht, ueber "Select icon") unterschiedliche Bilder zuordnen.
Mit eigenen Code kann man auch was Komplexes basteln, siehe https://wiki.fhem.de/wiki/DevStateIcon bzw. https://fhem.de/commandref_modular.html#FHEMWEB-attr-devStateIcon

In deinem Fall reicht vmtl. stateFormat, und das Wissen, in welchem Reading "20.9" gespeichert ist.

alochter

Ach, das ist alles so ein Mist. Ich habe es jetzt hinbekommen, einen Wert hinter "Outside" einzutragen. Und zwar so:

attr Outside stateFormat {qx(echo `cat /opt/fhem/scripts/test.log |tail -1`)}

Nur wie mache ich das jetzt dynamisch? Ich sitze genau an dieser Temperatur Geschichte schon Tage. Nur weil ich mal alles auf den aktuellen Stand bringen wollte. Die Graphen werden aus den Logs auch nicht aktualisiert. Ich schreibe zwar per Script immer lustig alle 2 Minuten Werte rein, aber angezeigt wird das nicht.

Über einen Code Schnipsel würde ich mich echt freuen. So langsam nervt es sehr, dass ich hier nicht weiter komme.
Danke und LG.

rudolfkoenig

Wie schon geschrieben, diese Anzeige ist nicht darauf ausgelegt, aus dem Log gespeist zu werden.
Kannst Du bitte die Details mit "Copy for forum.fhem.de" hier anhaengen?

alochter

Zitat von: rudolfkoenig am 29 September 2023, 15:08:15Wie schon geschrieben, diese Anzeige ist nicht darauf ausgelegt, aus dem Log gespeist zu werden.
Kannst Du bitte die Details mit "Copy for forum.fhem.de" hier anhaengen?

Ja, würde ich gerne, aber ich kann es nicht. Keine Ahnung, was ich klicken muss. Ich möchte aber kurz noch das Feedback geben, wie ich es gelöst habe (und es ging mal so. dass man dort einen Eintrag aus einem Log anzeigen lassen konnte; das war klasse bei Fhem 5.3):

Ich habe mir einen Dummy-Schalter gebaut, den ich alle 5 Minuten "off" und gleich wieder "on" schalte. So wird dann der Eintrag in meinem Outside Label eingetragen. Danke für den tollen Support:-)

define CheckOutTempLog dummy
setuuid CheckOutTempLog 6516cc60-f33f-5ccb-e8b7-5390a9b085a984e5

define CheckOutTempLog_on notify CheckOutTempLog {\
if ("$EVENT" eq "on") {\
  fhem "attr Outside stateFormat {qx(echo `/opt/fhem/scripts/check_outside_log.sh`)}"}\
}
setuuid CheckOutTempLog_on 6516da3d-f33f-5ccb-53a2-b26b2dbdebc8e647

define CheckOutTempLog_off notify CheckOutTempLog {\
if ("$EVENT" eq "off") {\
  fhem "setstate Outside -"}\
}
setuuid CheckOutTempLog_off 6516da3d-f33f-5ccb-1279-07ad95ac42ae3d6f