Hallo,
da ich mir die Finger schon wund gegoogelt habe, frage ich mal hier nach Hilfe.
Eigentlich ganz simple ich lese ein paar Dateien ein, da sind nur Zahlen und nur in der ersten Zeile und möchte mir diese Anzeigen.
Als Test habe noch /etc/timezone eingelesen und das funktioniert, aber /run/StromVerbrauch nicht.
Und ich weiß nicht warum ...
Unter dem Punkt Readings wird es übrigens richtig angezeigt, nur in State bekomme ich es nicht. (Timezone ja, Stromverbrauch nein)
Danke im Voraus für die Hilfe.
define myReadings CustomReadings
attr myReadings interval 300
attr myReadings readingDefinitions timezone:qx(cat /etc/timezone 2>&1), stromverbrauch:qx(head -1 /run/StromVerbrauch 2>&1)
attr myReadings room Input
attr myReadings stateFormat {"Timezone: " . ReadingsVal($name,"timezone",0) . "!"."Strom: " . ReadingsVal($name,"stromverbrauch",0) . " Watt"}
Was sagt die Log?
Was sind die Berechtigungen auf /run/Stromverbrauch
Die Logs sind leer, die Rechte sind da.
Im Readings sind ja die Werte, ich möchte sie nur im state haben.
Ok falsch verstanden.
Dann zeig mal bitte ein vollständiges "list myReadings"
Was Du im Perl Code gemacht hast, kann man einfach so schreiben:
attr myReadings stateFormat Timezone: timezone !Strom: stromverbrauch Watt
Ich habe das hier der Übersicht halber etwas gekürzt, hier das komplette:
Internals:
FUUID 5f0b5e50-f33f-18b8-bbec-cc2aeb741446348c
NAME myReadings
NR 18
STATE Timezone: Europe/Berlin!Strom: Watt
TYPE CustomReadings
READINGS:
2020-07-15 22:12:14 feuchteaussen 77
2020-07-15 22:12:14 feuchtekeller 63.0
2020-07-15 22:12:14 stromverbrauch 192.9
2020-07-15 22:12:14 photovoltaik 0
2020-07-15 22:12:14 state OK
2020-07-15 22:12:14 timezone Europe/Berlin
Attributes:
interval 300
readingDefinitions timezone:qx(cat /etc/timezone 2>&1),photovoltaik:qx(cat /run/SolarAll 2>&1), stromverbrauch:qx(head -1 /run/StromVerbrauch 2>&1), feuchtekeller:qx(cat /run/HumKeller 2>&1), feuchteaussen:qx(cat /run/HumOut 2>&1)
room Input
stateFormat {"Timezone: " . ReadingsVal($name,"timezone",0) . "!"."Strom: " . ReadingsVal($name,"stromverbrauch","") . " Watt"}
Mach das Leerzeichen vor den Namen der Readings in readingDefinitions weg
So? Keine Änderung, auch bei Deiner Variante, das gleiche Ergebnis.
Timezone geht, Srom nicht.
Internals:
FUUID 5f0b5e50-f33f-18b8-bbec-cc2aeb741446348c
NAME myReadings
NR 18
STATE Timezone: Europe/Berlin!Strom: Watt
TYPE CustomReadings
READINGS:
2020-07-15 22:17:14 feuchteaussen 72
2020-07-15 22:17:14 feuchtekeller 63.1
2020-07-15 22:17:14 stromverbrauch 231.2
2020-07-15 22:17:14 photovoltaik 0
2020-07-15 22:17:14 state OK
2020-07-15 22:17:14 timezone Europe/Berlin
Attributes:
interval 300
readingDefinitions timezone:qx(cat /etc/timezone 2>&1),photovoltaik:qx(cat /run/SolarAll 2>&1), stromverbrauch:qx(head -1 /run/StromVerbrauch 2>&1), feuchtekeller:qx(cat /run/HumKeller 2>&1), feuchteaussen:qx(cat /run/HumOut 2>&1)
room Input
stateFormat {"Timezone: " .ReadingsVal($name,"timezone",0) . "!"."Strom: " .ReadingsVal($name,"stromverbrauch","") . " Watt"}
Deine Readings wurden nach der Änderung noch nicht aktualisiert (in deinem neuen "list")
EDIT: und die Änderung hast Du laut "list" immer noch nicht gemacht
Du hast recht, aber es stehen ja Werte im Reading, wenn auch alt, müssten diese nicht angezeigt werden?
Internals:
FUUID 5f0b5e50-f33f-18b8-bbec-cc2aeb741446348c
NAME myReadings
NR 18
STATE Timezone: Europe/Berlin!Strom: Watt
TYPE CustomReadings
READINGS:
2020-07-15 22:29:17 feuchteaussen 72
2020-07-15 22:29:17 feuchtekeller 63.1
2020-07-15 22:29:17 stromverbrauch 231.2
2020-07-15 22:29:17 photovoltaik 0
2020-07-15 22:29:17 state OK
2020-07-15 22:29:17 timezone Europe/Berlin
Attributes:
interval 300
readingDefinitions timezone:qx(cat /etc/timezone 2>&1),photovoltaik:qx(cat /run/SolarAll 2>&1), stromverbrauch:qx(head -1 /run/StromVerbrauch 2>&1), feuchtekeller:qx(cat /run/HumKeller 2>&1), feuchteaussen:qx(cat /run/HumOut 2>&1)
room Input
stateFormat {"Timezone: " .ReadingsVal($name,"timezone",0) . "!"."Strom: " .ReadingsVal($name,"stromverbrauch","") . " Watt"}
Die Änderung hast Du laut "list" immer noch nicht gemacht
ZitatreadingDefinitions timezone:qx(cat /etc/timezone 2>&1),photovoltaik:qx(cat /run/SolarAll 2>&1),<hier kein Leerzeichen>stromverbrauch:qx(head -1 /run/StromVerbrauch 2>&1),<hier auch nicht>feuchtekeller:qx(cat /run/HumKeller 2>&1),<und hier immer noch nicht, weg damit>feuchteaussen:qx(cat /run/HumOut 2>&1)
Dann auf eine Aktualisierung warten
Zitat von: Moli am 15 Juli 2020, 22:30:24
Du hast recht, aber es stehen ja Werte im Reading, wenn auch alt, müssten diese nicht angezeigt werden?
Das Problem ist, dass dein Reading nicht "stromverbrauch" sondern "<Leerzeichen>stromverbrauch" heisst,
Das wars, ich dachte Du meinst im stateFormat.
Ich dachte mir schon, das ein simpler Fehler sein muss, das kann man nicht Googlen.
Vielen Dank!
Zitat von: amenomade am 15 Juli 2020, 22:18:26
Mach das Leerzeichen vor den Namen der Readings in readingDefinitions weg
;)
Gut dass es jetzt geht :)
Allerdings, noch mal danke!