Sensorendaten und Aktorenzustände Loggen

Begonnen von Benny_82, 13 Juni 2013, 14:25:18

Vorheriges Thema - Nächstes Thema

Benny_82

Hallo zusammen,

ich habe mal eine Frage bezüglich des Loggings.
Meine erste Idee war "Filelog" zu verwenden, allerdings finde ich die Art des logfiles nicht ideal. Ich hätte gerne eine Zeitangabe und anschließend alle Relevanten Werte mit ";" getrennt. (Später vll auch in eine SQL Datenbank...)
Des weiteren bekomme ich beim Loggen mit "FileLog" alle 15 Minuten die einträge 4fach in die Logdatei geschrieben.

Im folgendem gehe ich von folgenden Relevanten Werten aus.
- Temperatur innen (Thermometer)
- Temperatur außen (Wetterstation)
- Tageslichtwert von "Twilight"

Da die beiden Temperatursensoren erst am Wochenende in Betrieb genommen werden, kann ich vorerst nur mit Twilight testen.
Derzeit scheint mir die einfachste Lösung als Shellskript mittels ">>" jeweils eine Neue Zeile in die Datei zu schreiben.
Hierzu muss ich die gewünschten Werte wohl manuell auslesen, etwas aufwendiger als "FileLog", jedoch könnte ich diese Paramter auch gleichzeitig auswerten und bei Bedarf an Zentraler stelle Aktionen ausführen.
(If lichtwert<3 Then set lamps on) <-Pseudocode

Ist diese Vorgehen zu einfach gedacht?
Ist es aus mir noch unbekannten Gründen doch besser "FileLog" zu verwenden?
Gibt es bessere Alternativen?

Freue mich über Hilfestellungen!
Gruß
Benny



justme1968

ich bin mir nicht sicher ob ich deine fragen richtig verstanden habe. aber hier mal ein paar gedanken die dir vielleicht weiter helfen:

- warum möchtest du denn die werte loggen? was stört dich am format?

- wenn du geloggte werde innerhalb von fhem z.b. mit einem plot darstellen willst geht das nur wenn du auch den logging mechanismus von fhem verwendest und nicht etwas eigenes.

- wenn du statt log files lieber eine db verwenden möchtest solltest du dbLog verwenden statt fileLog

- wenn tatsächlich werte mehrfach geloggt werden dann werden sie entweder wirklich mehrfach erzeugt, es gibt einen fehler in deiner definition oder einen fehler in fhem. letzteres ist zwar nie auszuschliessen aber in diesem fall recht unwahrscheinlich. das logging wird von sehr vielen verwendet.

- wenn du innerhalb von fhem auf bestimmte werte reagieren möchtest machst du das per notify. das logging (egal ob file oder db) hat damit nichts zu tun.

- mir fällt nicht wirklich ein grund etwas anderes als fileLog oder dbLog zu verwenden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Benny_82

Hier erstmal der verwendete code, falls ich hier einen Fehler eingebaut habe oder irgendwas zumindest falsch verstanden habe.

define myTwilight Twilight 50.047963 9.01395 0 12835121

define log_Twilight FileLog /volume1/@appstore/FHEM/var/log/twighlight.log myTwighlight:(light|ss_weather).*


Ergebnis im Logfile:
2013-06-13_14:20:57 myTwighlight ss_weather: 20:49:24
2013-06-13_14:20:57 myTwighlight light: 6
2013-06-13_14:20:58 myTwighlight ss_weather: 20:49:24
2013-06-13_14:20:58 myTwighlight light: 6
2013-06-13_14:20:58 myTwighlight ss_weather: 20:49:24
2013-06-13_14:20:58 myTwighlight light: 6
2013-06-13_14:20:58 myTwighlight ss_weather: 20:49:24
2013-06-13_14:20:58 myTwighlight light: 6
2013-06-13_14:35:57 myTwighlight ss_weather: 21:04:07
2013-06-13_14:35:57 myTwighlight light: 6
2013-06-13_14:35:58 myTwighlight ss_weather: 21:04:07
2013-06-13_14:35:58 myTwighlight light: 6
2013-06-13_14:35:58 myTwighlight ss_weather: 21:04:07
2013-06-13_14:35:58 myTwighlight light: 6
2013-06-13_14:35:58 myTwighlight ss_weather: 21:04:07
2013-06-13_14:35:58 myTwighlight light: 6


Das Notify-Konzept habe ich noch nicht im Detail verstanden. Wenn ich möchte das beim erreichen des Twighlight light Parameters mit dem Wert 2 das Licht angeht, aber nur wenn der wert vorher größer als 2 war, kann ich das mit einem notify ohne den vorherigen Wert aus dem log auszulesen erreichen?

Danke schonmal

justme1968

du hast recht. das schaut tatsächlich komisch aus. eventuell liegt es an der art und weise wie die readings von twilight erzeugt werden. ich habe eben aber nur flüchtig drüber geschaut.

es gibt gerade einen recht langen twilight thread Link und ich vermute es wird hier in zukunft noch grössere änderungen geben. am besten stellst du das problem mit den mehrfachen einträgen dort mal vor.

mit dem event-on-change attribut sollte es möglich sein nur die werte zu loggen die sich auch wirklich ändern und mit event-min-interval das loggen von gleichen einträgen kurz hintereinander verhindern.

wenn dich aber die twilight werte historisch gar nicht interessieren und das logging nur dazu dienen sollte aktionen auszulösen brauchst du das log ja gar nicht.

ansonsten zum notify:
- ein notify sagt dir das sich ein an einem reading etwas getan hat
- darauf kannst du dann mit einer aktion reagieren
- in deiner aktion kannst du alles mögliche tun, nicht nur etwas schalten sondern zum beispiel auch in abhängigkeit von einer bedingung schalten.
das ist oft der aktuelle wert. also wenn es dunker ist als x und das licht noch nicht an ist mach es an.

gruss
  andre

edit: hast du eine aktuelle fhem/twilight version? ich habe eben bei mir geschaut und ich bekomme die events nur ein mal. vielleicht solltest du mal ein update machen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Benny_82

FHEM sollte 5.4 sein. Twilight-Version? Keine Ahnung.

Jetzt wäre die Frage wie ich die Twilight-Version herausfinde und ggf. Update :-)

 


justme1968

die fhem version findest du unter unsorted -> global -> version

aktuell ist das: Fhem 5.4 (DEVELOPMENT), $Id: fhem.pl 3236 2013-06-01 17:13:50Z rudolfkoenig $

du kannst mal 'update check' in der command box eingeben. dann siehst du was sich bei einem update ädnern würde und ob twilight dabei ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Hallo,

einfach in der FHEM-Befehszeile oben updateeingeben und den Anweisungen am Bildschirm folgen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Benny_82

Gut das hab ich vorgestern gemacht, da sollte sich ja in der zwischenzeit nicht viel geändert haben.
Werde es dennoch mal testen. Mal schauen ob der Event-ON-change Eintrag etwas gebracht hat.

Sobald ich da heute abend mal draufgeschaut hab, geb ich bescheid ob es geklappt hat!

justme1968

die aktuelle twilight version ist erst ein oder zwei tage alt. genau deshalb kann es sein das sie nicht aktuell ist...

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Dietmar63

ich habe TW am 10.6 wg. diverser Fehler aktualisiert: Probleme mit Fritten bei Zugriff auf yahoo-weather und Probleme beim Berechen der suntime auf wenig gebräuchlicher Hardware - kann im oben erwähnten Thread nachgelesen werden.

TW ist lange nicht gepflegt worden und kann diverse Verbesserungen vertragen. Es ermittelt beispielsweise alle ca. 900 Sekunen alle ss/Sr(-18° -12° ... weather) neu und aktualisiert die Readings, obwohl sich die sr/ss pro Tag nicht mehr ändern.

event-on-change-reading ist für den light-Parameter ein möglicher Weg um doppelte notify zu verhindern.
Bei ss/sr* wird das eher nicht erfolgreich sein, weil die Werte gesetzt werden, wenn sie errechnet werden und nicht wenn sie eintreten - finde ich falsch, aber es ist vom Autor so programmiert worden.

Ich habe eine Version im Keller, bei der ich das komplett geändert habe.
Ich werde die Version von TW aber nicht ohne allgemeinen Test und vor meinem Urlaub hier einstellen.

Du bekommst die aktuelle Version per update; dann bekommst du auch alle anderen Änderungen seit 5.4., oder du kopierst dir TW aus der Rubrik Sourcen hier im Thread und führst einen reload aus!
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Benny_82

So es scheint jetzt alles korrekt zu Loggen und ich habe mir nun auch ein notify erstellt, das mir derzeit bei jedem event die Lichtstärke per mail schickt.
(natürlich nur zu Testzwecken)

gl_TW:(light).* {sendmail("Tageslicht","$EVENT")}

Wenn ich jetzt allerdings versuche das/den notify zu triggern mit:
trigger tst_notify

funktioniert das nicht... will heißen ich bekomme keine Email?!
Bin ein wenig verwirrt.

---EDIT:
im Log ist kein Eintrag
sendmail funktioniert offensichtlich auch, da es bei nicht manuellem Triggern funktioniert.

Puschel74

Hallo,

versuch mal

trigger gl_TW light 5

tst_notify kann nicht klappen da dein notify zwar so heissen mag der regexp aber
Zitatgl_TW light
ist

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Benny_82

Klappt!

Dankeschön... prinzip erkannt... und verstanden.