Hallo zusammen, ich habe ein kleines Verständnis Problem,
ich versuche bei meinem Leistungsmesser Daten zu Loggen und zwar möchte ich nur "state" und "ENERGY_Power" also die Watt zahl haben, da der log aber nicht zu groß werden soll möchte ich "ENERGY_Power" nur alle 300 Sekunden loggen.
DbLogInclude state,ENERGY_Power:300
Geht leider nicht....
Hier mal ein list vom device.
Internals:
CFGFN
IODev MQTT
NAME sonoff_waschmaschine
NR 152
STATE on
TYPE MQTT_DEVICE
Helper:
DBLOG:
ENERGY_Power:
DBLogging:
TIME 1525488273.66006
VALUE 3
READINGS:
2018-05-05 14:39:45 ENERGY_Current 0
2018-05-05 14:39:45 ENERGY_Factor 0
2018-05-05 14:39:45 ENERGY_Period 0
2018-05-05 14:39:45 ENERGY_Power 0
2018-05-05 14:39:45 ENERGY_Today 1.552
2018-05-05 14:39:45 ENERGY_Total 80.403
2018-05-05 14:39:45 ENERGY_Voltage 228
2018-05-05 14:39:45 ENERGY_Yesterday 1.552
2018-01-13 01:14:32 FallbackTopic DVES_E772C6
2018-01-13 01:14:32 GroupTopic sonoffs
2018-01-13 01:14:32 Hostname sonoff_waschmaschine-4806
2018-01-13 01:14:32 INFO1 {"Module":"Sonoff Pow","Version":"5.11.0a","FallbackTopic":"DVES_E772C6","GroupTopic":"sonoffs"}
2018-01-13 01:14:32 INFO2 {"WebServerMode":"Admin","Hostname":"sonoff_waschmaschine-4806","IPAddress":"192.168.1.39"}
2018-01-13 01:14:32 INFO3 {"RestartReason":"Software/System restart"}
2018-01-13 01:14:32 IPAddress 192.168.1.39
2018-05-04 20:12:55 LWT Online
2018-01-13 01:14:32 Module Sonoff Pow
2018-05-05 14:39:45 POWER on
2018-05-04 19:44:30 RESULT {"POWER":"ON"}
2018-01-13 01:14:32 RestartReason Software/System restart
2018-05-05 14:39:45 SENSOR {"Time":"2018-05-05T13:39:45","ENERGY":{"Total":80.403,"Yesterday":1.552,"Today":1.552,"Period":0,"Power":0,"Factor":0.00,"Voltage":228,"Current":0.000}}
2018-05-05 14:39:45 STATE {"Time":"2018-05-05T13:39:45","Uptime":2700,"Vcc":3.472,"POWER":"ON","Wifi":{"AP":2,"SSId":"Garage","RSSI":80,"APMac":"xxx"}}
2018-05-05 14:39:45 Time 2018-05-05T13:39:45
2018-05-05 14:02:00 UPTIME {"Time":"2018-05-05T13:02:00","Uptime":2700}
2018-05-05 14:39:45 Uptime 2700
2018-05-05 14:39:45 Vcc 3.472
2018-01-13 01:14:32 Version 5.11.0a
2018-01-13 01:14:32 WebServerMode Admin
2018-05-05 14:39:45 Wifi_AP 2
2018-05-05 14:39:45 Wifi_APMac xxx
2018-05-05 14:39:45 Wifi_RSSI 80
2018-05-05 14:39:45 Wifi_SSId Garage
2018-05-04 19:44:30 power ON
2018-05-04 19:44:30 state ON
2018-05-05 14:39:45 transmission-state incoming publish received
Attributes:
DbLogInclude state,ENERGY_Power:300
IODev MQTT
autoSubscribeReadings +/sonoff_waschmaschine/+
devStateIcon on:black_Steckdose.on off:black_Steckdose.off .*:black_Steckdose.off
eventMap ON:on OFF:off
publishSet ON OFF cmnd/sonoff_waschmaschine/power
publishSet_update 1 cmnd/sonoff_waschmaschine/upgrade
room MQTT
stateFormat POWER
subscribeReading_ENERGY tele/sonoff_waschmaschine/ENERGY
subscribeReading_INFO1 tele/sonoff_waschmaschine/INFO1
subscribeReading_INFO2 tele/sonoff_waschmaschine/INFO2
subscribeReading_INFO3 tele/sonoff_waschmaschine/INFO3
subscribeReading_LWT tele/sonoff_waschmaschine/LWT
subscribeReading_POWER stat/sonoff_waschmaschine/POWER
subscribeReading_RESULT stat/sonoff_waschmaschine/RESULT
subscribeReading_SENSOR tele/sonoff_waschmaschine/SENSOR
subscribeReading_STATE tele/sonoff_waschmaschine/STATE
subscribeReading_UPGRADE stat/sonoff_waschmaschine/UPGRADE
subscribeReading_UPTIME tele/sonoff_waschmaschine/UPTIME
subscribeReading_power cmnd/sonoff_waschmaschine/power
subscribeReading_upgrade cmnd/sonoff_waschmaschine/upgrade
webCmd ON:OFF
Wo liegt der Fehler?
Hast du in deinem DbLog-Device das Attribut "DbLogSelectionMode" richtig gesetzt ?
attr <DbLogdevice> DbLogSelectionMode Include
VG
Heiko
ja das habe ich gesetzt.
Ok, dann wie üblich verbose 4 oder 5 einstellen. Damit siehst du im Log Einträge etwa dieser Art:
2018.05.05 20:58:36.876 4: DbLog LogDB1 -> ################################################################
2018.05.05 20:58:36.881 4: DbLog LogDB1 -> ### start of new Logcycle ###
2018.05.05 20:58:36.886 4: DbLog LogDB1 -> ################################################################
2018.05.05 20:58:36.891 4: DbLog LogDB1 -> number of events received: 1 for device: LogDB
2018.05.05 20:58:36.896 4: DbLog LogDB1 -> check Device: LogDB , Event: notify_processing_time: 0.0062
2018.05.05 20:58:36.902 4: DbLog LogDB1 -> added event - Timestamp: 2018-05-05 20:58:36, Device: LogDB, Type: DBLOG, Event: notify_processing_time: 0.0062, Reading: notify_processing_time, Value: 0.0062, Unit:
2018.05.05 20:58:36.913 4: DbLog LogDB1 -> ################################################################
2018.05.05 20:58:36.919 4: DbLog LogDB1 -> ### start of new Logcycle ###
2018.05.05 20:58:36.923 4: DbLog LogDB1 -> ################################################################
2018.05.05 20:58:36.928 4: DbLog LogDB1 -> number of events received: 2 for device: heartbeat
2018.05.05 20:58:36.934 4: DbLog LogDB1 -> check Device: heartbeat , Event: state: Next: 20:59:36
2018.05.05 20:58:36.939 4: DbLog LogDB1 -> check Device: heartbeat , Event: touch: 1
2018.05.05 20:58:36.944 4: DbLog LogDB1 -> added event - Timestamp: 2018-05-05 20:58:36, Device: heartbeat, Type: AT, Event: touch: 1, Reading: touch, Value: 1, Unit:
Daran sieht man schon welche Events empfangen und verarbeitet werden.
Außerdem hast du nur geschrieben "Geht leider nicht.... "
Was genau geht denn nicht ? ;)
VG
ZitatWas genau geht denn nicht ? ;)
ich möchte das "state" jedes mal geloggt wird wenn sich was ändert aber nur alle 5 Minuten wenn sich der der status "ENERGY_Power" ändert.
aber egal was ich einstelle logt er alles (state, ENERGY_Power) sofort.
2018.05.05 21:29:04 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:04 4: DbLog DBLogging -> ### start of new Logcycle ###
2018.05.05 21:29:04 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:04 4: DbLog DBLogging -> number of events received: 1 for device: sonoff_waschmaschine
2018.05.05 21:29:04 4: DbLog DBLogging -> check Device: sonoff_waschmaschine , Event: ENERGY_Power: 6
2018.05.05 21:29:04 4: DbLog DBLogging -> added event - Timestamp: 2018-05-05 21:29:04, Device: sonoff_waschmaschine, Type: MQTT_DEVICE, Event: ENERGY_Power: 6, Reading: ENERGY_Power, Value: 6, Unit:
2018.05.05 21:29:04 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:04 4: DbLog DBLogging -> ### New database processing cycle - synchronous ###
2018.05.05 21:29:04 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:04 4: DbLog DBLogging -> DbLogType is: Current/History
2018.05.05 21:29:04 4: DbLog DBLogging -> AutoCommit mode: ON, Transaction mode: ON
2018.05.05 21:29:04 4: DbLog DBLogging -> processing event Timestamp: 2018-05-05 21:29:04, Device: sonoff_waschmaschine, Type: MQTT_DEVICE, Event: ENERGY_Power: 6, Reading: ENERGY_Power, Value: 6, Unit:
2018.05.05 21:29:04 4: DbLog DBLogging -> 1 of 1 events inserted into table history
2018.05.05 21:29:04 4: DbLog DBLogging -> insert table history committed by autocommit
2018.05.05 21:29:04 4: DbLog DBLogging -> 1 of 1 events updated in table current
2018.05.05 21:29:04 4: DbLog DBLogging -> insert / update table current committed by autocommit
2018.05.05 21:29:04 1: PERL WARNING: Argument "0T06:40:16" isn't numeric in numeric gt (>) at (eval 63343) line 4.
2018.05.05 21:29:05 4: Processing Statement: SELECT
DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
DEVICE,
READING,
VALUE
FROM history WHERE 1=1 AND DEVICE = 'sonoff_trockner' AND READING = 'ENERGY_Power' AND TIMESTAMP >= STR_TO_DATE('2018-05-05 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP < STR_TO_DATE('2018-05-05 23:59:59', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP
2018.05.05 21:29:05 4: Processing Statement: SELECT
DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
DEVICE,
READING,
VALUE
FROM history WHERE 1=1 AND DEVICE = 'sonoff_waschmaschine' AND READING = 'ENERGY_Power' AND TIMESTAMP >= STR_TO_DATE('2018-05-05 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP < STR_TO_DATE('2018-05-05 23:59:59', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP
2018.05.05 21:29:07 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:07 4: DbLog DBLogging -> ### start of new Logcycle ###
2018.05.05 21:29:07 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:07 4: DbLog DBLogging -> number of events received: 1 for device: sonoff_waschmaschine
2018.05.05 21:29:07 4: DbLog DBLogging -> check Device: sonoff_waschmaschine , Event: ENERGY_Power: 5
2018.05.05 21:29:07 4: DbLog DBLogging -> added event - Timestamp: 2018-05-05 21:29:07, Device: sonoff_waschmaschine, Type: MQTT_DEVICE, Event: ENERGY_Power: 5, Reading: ENERGY_Power, Value: 5, Unit:
2018.05.05 21:29:07 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:07 4: DbLog DBLogging -> ### New database processing cycle - synchronous ###
2018.05.05 21:29:07 4: DbLog DBLogging -> ################################################################
2018.05.05 21:29:07 4: DbLog DBLogging -> DbLogType is: Current/History
2018.05.05 21:29:07 4: DbLog DBLogging -> AutoCommit mode: ON, Transaction mode: ON
2018.05.05 21:29:07 4: DbLog DBLogging -> processing event Timestamp: 2018-05-05 21:29:07, Device: sonoff_waschmaschine, Type: MQTT_DEVICE, Event: ENERGY_Power: 5, Reading: ENERGY_Power, Value: 5, Unit:
2018.05.05 21:29:07 4: DbLog DBLogging -> 1 of 1 events inserted into table history
2018.05.05 21:29:07 4: DbLog DBLogging -> insert table history committed by autocommit
2018.05.05 21:29:07 4: DbLog DBLogging -> 1 of 1 events updated in table current
2018.05.05 21:29:07 4: DbLog DBLogging -> insert / update table current committed by autocommit
2018.05.05 21:29:07 1: PERL WARNING: Argument "0T06:40:16" isn't numeric in numeric gt (>) at (eval 63418) line 4.
2018.05.05 21:29:08 4: Processing Statement: SELECT
DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
DEVICE,
READING,
VALUE
FROM history WHERE 1=1 AND DEVICE = 'sonoff_trockner' AND READING = 'ENERGY_Power' AND TIMESTAMP >= STR_TO_DATE('2018-05-05 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP < STR_TO_DATE('2018-05-05 23:59:59', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP
2018.05.05 21:29:08 4: Processing Statement: SELECT
DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
DEVICE,
READING,
VALUE
FROM history WHERE 1=1 AND DEVICE = 'sonoff_waschmaschine' AND READING = 'ENERGY_Power' AND TIMESTAMP >= STR_TO_DATE('2018-05-05 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP < STR_TO_DATE('2018-05-05 23:59:59', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP
jump to the top
Kann es sein dass sich der Wert von "ENERGY_Power" innerhalb des eingestellten MinIntervall ändert ?
Falls sich der Wert ändert wird dennoch geloggt obwohl das MinIntervall nicht nicht erreicht ist.
Grüße
Heiko
ja er ändert sich innerhalb der zeit.
aber ich möchte das er nur SPÄTESTENS alle 5 Minuten loggt oder wenn länger als 5 Minuten erst dann wenn sich der wert ändert.
dann hatte ich die Funktion falsch verstanden :/
Zitataber ich möchte das er nur SPÄTESTENS alle 5 Minuten loggt ....
Dafür kannst du "set <Dblog> addLog ..." einsetzen und per AT alle 5 Minuten das Reading ENERGY_Power loggen.
Damit bei Werteänderung keinen Event erzeugt wird, könntest du event-on-change-reading benutzen und dieses Reading nicht mit aufnehmen.
Das wäre ein möglicher Weg, gibt sicherlich noch andere.
Grüße
Heiko
Ok dann werde ich das erstmal so machen Danke für deine Hilfe.