FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Thyraz am 26 März 2017, 13:27:39

Titel: DBLog loggt nur den Null-Zustand eines zwischen 0 und 1 wechselnden Readings
Beitrag von: Thyraz am 26 März 2017, 13:27:39
Hallo,

ich habe einen Dummy welcher meine Waschmaschine repräsentiert.
Dieser hat ein Reading "running"

Bei dem Dummy ist event-on-change-reading auf .* gesetzt.
Ebenfalls timestamp-on-change-reading auf .*, damit ich in der Visualisierung anzeigen kann wie lange die Wäsche schon läuft.

Über ein DOIF wird das Reading entsprechend auf 0 oder 1 gesetzt wenn die Wäsche läuft oder fertig ist:

([Dummy_PowerSwitch02:powerVal] >= 6)
    (setreading Dummy_PowerSwitch02 running 1)
DOELSEIF (([Dummy_PowerSwitch02:powerVal] < 3) and ([?Dummy_PowerSwitch02:running] == 1))
  (setreading Dummy_PowerSwitch02 running 0) ## Zeitverzögert über wait Attr
  (set PushOver msg "SmartHome" "Wäsche ist fertig" "" 0 "")

Der DOELSEIF Zweig ist verzögert, damit er die Meldung erst kommt wenn der Verbrauch ein paar Minuten unter 3 Watt lag.

Bei meinem DBLog hab ich dann entsprechend das Reading running zu meiner bisherigen Definition hinzugefügt:

./db.conf .*:(motionVal|powerVal|energyVal|luminanceVal|temperatureVal|batteryVal|dewpoint|absFeuchte|humidityVal|running).*


Allerdings tauchen in der Datenbank nun keine running Einträge mit dem Wert 1 auf.
Das Ende der Wäsche wird aber jedensmal geloggt:

sqlite> select * from history where reading = 'running';
2017-03-25 20:06:51|Dummy_PowerSwitch02|DUMMY|running: 0|running|0|
2017-03-26 12:05:16|Dummy_PowerSwitch02|DUMMY|running: 0|running|0|
sqlite>


Im Event-Monitor sehe ich die Zeile mit dem running auf 1 aber:

2017-03-26 09:44:41.237 dummy Dummy_PowerSwitch02 running: 1


Stimmt meine DBLog Definition nicht? (Hatte mit den anderen Werten aber gefühlt nie Probleme),
oder hat sonst jemand eine Idee woran das liegen könnte?
Titel: Antw:DBLog loggt nur den Null-Zustand eines zwischen 0 und 1 wechselnden Readings
Beitrag von: Thyraz am 26 März 2017, 18:28:39
Hab jetzt händisch ein paarmal

setreading Dummy_PowerSwitch02 running 1

gefolgt von einem

setreading Dummy_PowerSwitch02 running 1

gemacht, ohne Besserung (0-Events wurden geloggt, 1-Events nicht).

Danach ein

setreading Dummy_PowerSwitch02 running 2

was sofort funktioniert hat ???

Seitdem klappt jetzt auch ein Wechsel von 0 auf 1 und umgekehrt...
Verstehe wer will.