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?
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.