[gelöst] Wert aus FileLog als UserReading

Begonnen von joker4791, 25 Dezember 2022, 18:25:24

Vorheriges Thema - Nächstes Thema

joker4791

Hi,

folgendes habe ich gebaut: in unserer Zisterne ist eine Drucksonde eingelassen, welche an einem Auswertegerät angeschlossen ist. Das Auswertegerät ist per RS232 an einem RasPi angeschlossen und dieser schickt alle 5 Min. den aktuellen Datenbestand per Telnet an den FHEM-Server. Hierfür ist auf dem FHEM-Server ein Dummy-Device angelegt, welches die Werte entgegen nimmt und in einem FileLog speichert.
Wie kann ich nun aus den abgelegten Werten entsprechende Readings generieren, so dass die auch in anderen Teilen von FHEM zur Verfügung stehen? Das sollte doch irgendwie mit ReadingList gehen und völlig einfach sein, aber irgendwie stehe ich auf dem Schlauch und sehe den Wald vor lauter Bäumen nicht...

defmod Zysternensensor1 dummy
attr Zysternensensor1 comment Hydrostatischer Füllstandsmesser mit Drucksonde und ATMEGA8
attr Zysternensensor1 room Zysterne

defmod FileLog_Zysternensensor1 FileLog ./log/Zysternensensor1-%Y-%m.log Zysternensensor1
attr FileLog_Zysternensensor1 logtype text
attr FileLog_Zysternensensor1 room Zysterne


Das Einzige was ich als Reading erhalte ist der 'state':
state  fuellstand: 3250 l  2022-12-25 18:15:17

Auszug aus dem Logfile:
2022-12-25_18:10:01 Zysternensensor1 temp_garage: 9.3 °C
2022-12-25_18:10:01 Zysternensensor1 hum_garage: 99.9 %
2022-12-25_18:10:07 Zysternensensor1 temp2_garage: 9.20 °C
2022-12-25_18:10:07 Zysternensensor1 airpres_garage: 972.75 hPa
2022-12-25_18:10:07 Zysternensensor1 alt_garage: 342.26 m
2022-12-25_18:10:07 Zysternensensor1 sealevelpres_garage: 97278.00 Pa
2022-12-25_18:10:17 Zysternensensor1 fuellstand_mm: 1500 mm
2022-12-25_18:10:17 Zysternensensor1 fuellstand_perc: 50 %
2022-12-25_18:10:17 Zysternensensor1 Relais: R--
2022-12-25_18:10:17 Zysternensensor1 temperaturwert: 399
2022-12-25_18:10:17 Zysternensensor1 druckwert: 384
2022-12-25_18:10:17 Zysternensensor1 fuellstand: 3250 l
2022-12-25_18:15:01 Zysternensensor1 temp_garage: 9.2 °C
2022-12-25_18:15:01 Zysternensensor1 hum_garage: 99.9 %
2022-12-25_18:15:07 Zysternensensor1 temp2_garage: 9.20 °C
2022-12-25_18:15:07 Zysternensensor1 airpres_garage: 972.87 hPa
2022-12-25_18:15:07 Zysternensensor1 alt_garage: 341.48 m
2022-12-25_18:15:07 Zysternensensor1 sealevelpres_garage: 97286.00 Pa
2022-12-25_18:15:17 Zysternensensor1 fuellstand_mm: 1500 mm
2022-12-25_18:15:17 Zysternensensor1 fuellstand_perc: 50 %
2022-12-25_18:15:17 Zysternensensor1 Relais: R--
2022-12-25_18:15:17 Zysternensensor1 temperaturwert: 398
2022-12-25_18:15:17 Zysternensensor1 druckwert: 384
2022-12-25_18:15:17 Zysternensensor1 fuellstand: 3250 l


Als Graphen bekomme ich da schöne Kurven angezeigt...

Grüße,
j.

betateilchen


ZitatAntw:Wert aus FileLog als UserReading

Titel des Threads ist aber komplett irreführend, mit userReading hat das nix zu tun.

Um Deine Frage beantworten zu können, müsste man genauer wissen, wie Du die Werte an FHEM schickst. Also wie genau ist das hier umgesetzt?

Zitat
Das Auswertegerät ist per RS232 an einem RasPi angeschlossen und dieser schickt alle 5 Min. den aktuellen Datenbestand per Telnet an den FHEM-Server.

Und nochwas: Zisterne schreibt man mit i, nicht mit y. (Vom lateinischen cisterna)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

joker4791

hier ein Auszug aus dem Skript vom RasPi:
# ================================
# Senden der Daten an FHEM
# --------------------------------
if [ -n $v_zyst ]
then
{ echo "set Zysternensensor1 fuellstand_mm: $l_zyst mm"; } | telnet $FHEM 7072
{ echo "set Zysternensensor1 fuellstand_perc: $perc_zyst %"; } | telnet $FHEM 7072
{ echo "set Zysternensensor1 Relais: $rel_zyst"; } | telnet $FHEM 7072
{ echo "set Zysternensensor1 temperaturwert: $t_zyst"; } | telnet $FHEM 7072
{ echo "set Zysternensensor1 druckwert: $p_zyst"; } | telnet $FHEM 7072
{ echo "set Zysternensensor1 fuellstand: $v_zyst l"; } | telnet $FHEM 7072
fi
# --------------------------------


Ob ich den ganzen Kram umbenannt bekomme (y-->i), naja, mal schauen...

betateilchen

Nimm mal setreading anstatt set und teste dann nochmal.
Wenn möglich, ohne die Doppelpunkte am Ende des readingName.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

joker4791

Hi,

habe alle Skripte und Einstellungen umbenannt, sowie ein 'setreading' statt 'set' angewendet und es funktioniert so wie gewünscht.
Vielen Dank für die Hilfe!

Grüße,
j.