Ich habe ein Problem mit DbLog, hier erstmal ein List
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf (sysmon:.*|Stromzaehler:.*|Viessmann:.*NurGestern.*|Viessmann:.*temperatur.*|Viessmann2:.*Vorlauf.*|Viessmann2:.*Ruecklauf.*|Garagensensor:Temperatur:.*|Heizungskeller:Gasverbrauch:.*|Heizungskeller:Wasser:.*|DECT1:temperature.*|Sonoff_pow1:.*|BresserTemeo_1:temperature.*|SensorHydrAbgleich.*:.*Temperatur.*|DECT1:power.*|.*thermostat_Clima:measured-temp.*|Wasserzaehler_IEC_01:Verbrauch.*|.*rssi_at_WLAN_HmUART.*|Blitzwolf(1|2):Verbrauch.*)
MODE asynchronous
MODEL MYSQL
NAME DbLog
NR 20
NTFY_ORDER 50-DbLog
PID 5121
REGEXP (sysmon:.*|Stromzaehler:.*|Viessmann:.*NurGestern.*|Viessmann:.*temperatur.*|Viessmann2:.*Vorlauf.*|Viessmann2:.*Ruecklauf.*|Garagensensor:Temperatur:.*|Heizungskeller:Gasverbrauch:.*|Heizungskeller:Wasser:.*|DECT1:temperature.*|Sonoff_pow1:.*|BresserTemeo_1:temperature.*|SensorHydrAbgleich.*:.*Temperatur.*|DECT1:power.*|.*thermostat_Clima:measured-temp.*|Wasserzaehler_IEC_01:Verbrauch.*|.*rssi_at_WLAN_HmUART.*|Blitzwolf(1|2):Verbrauch.*)
STATE connected
TYPE DbLog
UTF8 0
VERSION 3.10.10
dbconn mysql:database=fhem;host=127.0.0.1;port=3306
dbuser root
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
READINGS:
2018-09-13 20:43:22 CacheUsage 0
2018-09-13 20:43:22 NextSync 2018-09-13 20:43:52 or if CacheUsage 500 reached
2018-09-08 21:57:44 lastRowsDeleted 809143
2018-09-13 20:43:22 state connected
cache:
index 3863
Attributes:
asyncMode 1
group intern
verbose 0
Wenn ich jetzt das nachfolgende Gerät loggen will
Internals:
IODev Mosquitto
NAME Blitzwolf2
NR 198
STATE Gestern 0 kWh
TYPE MQTT_DEVICE
Helper:
DBLOG:
Verbrauch:
DbLog:
TIME 1536864080.68908
VALUE 2.41000000000008
READINGS:
2018-09-13 20:41:20 ENERGY_Current 0.514
2018-09-13 20:41:20 ENERGY_Factor 0.5
2018-09-13 20:41:20 ENERGY_Period 2.41
2018-09-13 20:41:20 ENERGY_Power 58.1
2018-09-13 20:41:20 ENERGY_Today 0.52026
2018-09-13 20:41:20 ENERGY_Total 0.52026
2018-09-13 20:41:20 ENERGY_Voltage 224.3
2018-09-13 20:41:20 ENERGY_Yesterday 0
2018-09-13 20:23:57 LWT online
2018-09-13 20:41:20 POWER ON
2018-09-13 20:41:20 SENSOR {"Time":"2018-09-13T19:41:20","ENERGY":{"Total":0.52026,"Yesterday":0.00000,"Today":0.52026,"Period":2.410,"Power":58.100,"Factor":0.50,"Voltage":224.300,"Current":0.514}}
2018-09-13 20:41:20 STATE {"Time":"2018-09-13T19:41:20","Uptime":"0T05:35:24","Vcc":3.222,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
2018-09-13 20:41:20 Time 2018-09-13T19:41:20
2018-09-13 20:41:20 Uptime 0T05:35:24
2018-09-13 20:41:20 Vcc 3.222
2018-09-13 20:41:20 Verbrauch 2.41000000000008
2018-09-13 20:41:20 Wifi_AP 1
2018-09-13 20:41:20 Wifi_APMac 38:10:D5:1C:D5:B8
2018-09-13 20:41:20 Wifi_RSSI 42
2018-09-13 20:41:20 Wifi_SSId WLAN-120954
2018-09-13 11:32:54 state off
2018-09-13 20:41:20 transmission-state incoming publish received
message_ids:
publishSets:
:
topic /cmnd/blitzwolf2/POWER
values:
on
off
sets:
off
on
subscribe:
tele/blitzwolf2/LWT
tele/blitzwolf2/SENSOR
tele/blitzwolf2/STATE
subscribeExpr:
^tele\/blitzwolf2\/LWT$
^tele\/blitzwolf2\/SENSOR$
^tele\/blitzwolf2\/STATE$
subscribeQos:
tele/blitzwolf2/LWT 0
tele/blitzwolf2/SENSOR 0
tele/blitzwolf2/STATE 0
subscribeReadings:
tele/blitzwolf2/LWT:
cmd
name LWT
tele/blitzwolf2/SENSOR:
cmd
name SENSOR
tele/blitzwolf2/STATE:
cmd
name STATE
Attributes:
IODev Mosquitto
devStateIcon .*:noIcon:noFhemwebLink
group Messen
publishSet on off /cmnd/blitzwolf2/POWER
room Info
stateFormat Gestern ENERGY_Yesterday kWh
subscribeReading_LWT tele/blitzwolf2/LWT
subscribeReading_SENSOR tele/blitzwolf2/SENSOR
subscribeReading_STATE tele/blitzwolf2/STATE
useSetExtensions 1
userReadings Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);;}
verbose 0
webCmd on:off
dann werden Einträge mehrfach in die Datenbank geschrieben. Dabei passiert es auch, dass zu einem Zeitpunkt verschiedene Werte erscheinen: Einmal null, einmal der von null verschiedene.
Da die Konsole des Blitzwolf keine doppelten Einträge ausgibt, müsste dies ein DbLog-Problem sein. Suchen im Forum ergab zwar einen Treffer, aber keine Lösung.
Hier der Konsolenauszug:
19:43:50 MQT: tele/blitzwolf2/STATE = {"Time":"2018-09-13T19:43:50","Uptime":"0T05:37:54","Vcc":3.222,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
19:43:50 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-13T19:43:50","ENERGY":{"Total":0.52268,"Yesterday":0.00000,"Today":0.52268,"Period":2.420,"Power":57.700,"Factor":0.50,"Voltage":224.700,"Current":0.514}}
19:46:20 MQT: tele/blitzwolf2/STATE = {"Time":"2018-09-13T19:46:20","Uptime":"0T05:40:24","Vcc":3.222,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":40,"APMac":"38:10:D5:1C:D5:B8"}}
19:46:20 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-13T19:46:20","ENERGY":{"Total":0.52510,"Yesterday":0.00000,"Today":0.52510,"Period":2.420,"Power":57.600,"Factor":0.50,"Voltage":223.700,"Current":0.512}}
19:48:50 MQT: tele/blitzwolf2/STATE = {"Time":"2018-09-13T19:48:50","Uptime":"0T05:42:54","Vcc":3.222,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
19:48:50 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-13T19:48:50","ENERGY":{"Total":0.52751,"Yesterday":0.00000,"Today":0.52751,"Period":2.410,"Power":58.000,"Factor":0.50,"Voltage":224.000,"Current":0.513}}
19:51:20 MQT: tele/blitzwolf2/STATE = {"Time":"2018-09-13T19:51:20","Uptime":"0T05:45:24","Vcc":3.222,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
19:51:20 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-13T19:51:20","ENERGY":{"Total":0.52993,"Yesterday":0.00000,"Today":0.52993,"Period":2.420,"Power":57.900,"Factor":0.50,"Voltage":224.700,"Current":0.515}}
19:53:50 MQT: tele/blitzwolf2/STATE = {"Time":"2018-09-13T19:53:50","Uptime":"0T05:47:54","Vcc":3.223,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
19:53:50 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-13T19:53:50","ENERGY":{"Total":0.53234,"Yesterday":0.00000,"Today":0.53234,"Period":2.410,"Power":58.400,"Factor":0.51,"Voltage":223.400,"Current":0.513}}
Weiß jemand, wie man das in den Griff kriegt?
Hallo andies,
ich glaube eher dass dein Device innerhalb einer Sekunde mehrere Events erzeugt. DbLog kleinste Zeiteinheit zur Unterscheidung (Timestamp) ist aber 1 Sekunde. Deswegen erscheint es dir als ob unterschiedliche Werte zum gleichem Zeitpunkt (Timestamp) auftreten.
Du müsstest dir mal die Events des Devices im Eventmonitor anschauen.
Andere Möglichkeit ist direkt im DbLog. Setze dir zuerst im global device mselog = 1. Damit siehst du Millisekunden im Log bzw. Eventmonitor.
Dann im DbLog das Attribut verbose4Devs = Blitzwolf2 und verbose = 4.
Dadurch werden im Logfile nur die Einträge bzgl. dieses Devices angezeigt und das Log nicht überschwemmt.
Hier im Beispiel mal eine Logausgabe für ein Device SMA_Energymeter:
2018.09.13 21:27:25.262 4: DbLog LogDB -> ################################################################
2018.09.13 21:27:25.271 4: DbLog LogDB -> ### start of new Logcycle ###
2018.09.13 21:27:25.278 4: DbLog LogDB -> ################################################################
2018.09.13 21:27:25.285 4: DbLog LogDB -> number of events received: 10 for device: SMA_Energymeter
2018.09.13 21:27:25.291 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Bezug_WirkP_Zaehler_Diff: 0.0132
2018.09.13 21:27:25.301 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_WirkP_Zaehler_Diff: 0.0132, Reading: Bezug_WirkP_Zaehler_Diff, Value: 0.0132, Unit:
2018.09.13 21:27:25.307 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Bezug_WirkP_Kosten_Diff: 0.0035
2018.09.13 21:27:25.320 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_WirkP_Kosten_Diff: 0.0035, Reading: Bezug_WirkP_Kosten_Diff, Value: 0.0035, Unit:
2018.09.13 21:27:25.328 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Einspeisung_WirkP_Zaehler_Diff: 0
2018.09.13 21:27:25.339 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeisung_WirkP_Zaehler_Diff: 0, Reading: Einspeisung_WirkP_Zaehler_Diff, Value: 0, Unit:
2018.09.13 21:27:25.345 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Einspeisung_WirkP_Verguet_Diff: 0.0000
2018.09.13 21:27:25.357 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeisung_WirkP_Verguet_Diff: 0.0000, Reading: Einspeisung_WirkP_Verguet_Diff, Value: 0.0000, Unit:
2018.09.13 21:27:25.364 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: -791.4
2018.09.13 21:27:25.376 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: -791.4, Reading: state, Value: -791.4, Unit: W
2018.09.13 21:27:25.383 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Saldo_Wirkleistung: -791.4
2018.09.13 21:27:25.395 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Saldo_Wirkleistung: -791.4, Reading: Saldo_Wirkleistung, Value: -791.4, Unit: W
2018.09.13 21:27:25.403 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Bezug_Wirkleistung: 791.4
2018.09.13 21:27:25.414 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_Wirkleistung: 791.4, Reading: Bezug_Wirkleistung, Value: 791.4, Unit: W
2018.09.13 21:27:25.421 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Bezug_Wirkleistung_Zaehler: 5876.2275
2018.09.13 21:27:25.431 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_Wirkleistung_Zaehler: 5876.2275, Reading: Bezug_Wirkleistung_Zaehler, Value: 5876.2275, Unit: kWh
2018.09.13 21:27:25.437 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Einspeisung_Wirkleistung: 0.0
2018.09.13 21:27:25.448 4: DbLog LogDB -> check Device: SMA_Energymeter , Event: Einspeisung_Wirkleistung_Zaehler: 9805.0167
2018.09.13 21:27:25.459 4: DbLog LogDB -> added event - Timestamp: 2018-09-13 21:27:25, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeis
Das "check device" besagt dass ein Event empfangen wurde und bewertet wird. Wenn es geloggt werden soll , erscheint danach "added event" , wie im Beispiel zu sehen.
Einen Workaround kannst du erzielen indem du event-on-change-reading setzt, eventuell mit einem mininterval-Zusatz.
In der Datenbank kannst du auch einen Primary Key setzen. Dadurch werden generell doppelte Datensätze vermieden.
Wenn du das letztere machen willst kannst du dich ja nochmal melden.
Edit: Eine andere Möglichkeit besteht darin, z.B. täglich ein DbRep mit "set ... delSeqDoublets" über die DB auszuführen. Die Routine entfernt dir diese nicht benötigten Datensätze ohne einen SVG-Plot zu zerstören. Im DbRep das Attr device = Blitzwolf2 setzen um nur Datensätze dieses Devices zu behandeln. Das wäre eine Massnahme um die bereits geloggten Sätze zu bereinigen.
LG,
Heiko
Danke für den Tipp, war ein Treffer ins Schwarze:
2018-09-14 07:14:05 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 STATE: {"Time":"2018-09-14T06:14:05","Uptime":"0T16:08:09","Vcc":3.226,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_APMac: 38:10:D5:1C:D5:B8
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_SSId: WLAN-120954
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_AP: 1
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_RSSI: 42
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 POWER: ON
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Vcc: 3.226
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Uptime: 0T16:08:09
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Time: 2018-09-14T06:14:05
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 transmission-state: incoming publish received
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 SENSOR: {"Time":"2018-09-14T06:14:05","ENERGY":{"Total":1.13471,"Yesterday":0.77064,"Today":0.36407,"Period":2.400,"Power":57.700,"Factor":0.50,"Voltage":224.300,"Current":0.513}}
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Time: 2018-09-14T06:14:05
Ich habe auch eine Vermutung, wie die doppelten Einträge entstehen. Könnte das dieses Device sein?
defmod ej3 expandJSON (Sonoff|Blitzwolf).*:.*:.{.*}
Damit sollen die json aus den MQTT Geräten auseinander genommen werden.
Zitat
Ich habe auch eine Vermutung, wie die doppelten Einträge entstehen. Könnte das dieses Device sein?
Code: [Auswählen]
defmod ej3 expandJSON (Sonoff|Blitzwolf).*:.*:.{.*}
Da bin ich mir nicht so sicher.
Es stellt sich mir die Frage, woher die vielen "Verbrauch: 0" kommen.
Wenn ich es richtig sehe, extrahiert "expandJSON" schön dieses JSON in seine Bestandteile:
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 STATE: {"Time":"2018-09-14T06:14:05","Uptime":"0T16:08:09","Vcc":3.226,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":42,"APMac":"38:10:D5:1C:D5:B8"}}
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_APMac: 38:10:D5:1C:D5:B8
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_SSId: WLAN-120954
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_AP: 1
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Wifi_RSSI: 42
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 POWER: ON
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Vcc: 3.226
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Uptime: 0T16:08:09
2018-09-14 07:14:06 MQTT_DEVICE Blitzwolf2 Time: 2018-09-14T06:14:05
In dem JSON kommt aber weder "Verbrauch" noch "transmission-state" vor.
Ich benutze das Modul selbst nicht und kann nur mutmaßen.
Diese Readings kommen wahrscheinlich direkt vom Device "Blitzwolf2". Setz dir dort doch mal das erwähnte event-on-change-reading auf die relevanten Readings.
Dann sieht man evtl. mehr.
Zitat von: DS_Starter am 14 September 2018, 08:43:54
Wenn ich es richtig sehe, extrahiert "expandJSON" schön dieses JSON in seine Bestandteile:
Genau, das ist die Funktion des devices.
Zitat von: DS_Starter am 14 September 2018, 08:43:54
Setz dir dort doch mal das erwähnte event-on-change-reading auf die relevanten Readings.
Habe ich gemacht, da Total die Gesamtmenge an Energie misst, habe ich
event-on-change-reading ENERGY_Total
gewählt. Das ergab dann gar keine Ereignisse mehr, weil ENERGY_Total erst "erzeugt" werden muss. Es gibt anscheinend kein Ereignis dazu. Danach habe ich
event-on-change-reading SENSOR,Verbrauch
probiert, weil ich das im Ereignismonitor gesehen hatte und das dann die Aufteilung der Readings auslöst. Im Ereignismomnitor sieht es dann so aus
2018-09-14 10:47:47 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 10:47:47 MQTT_DEVICE Blitzwolf2 SENSOR: {"Time":"2018-09-14T10:47:46","ENERGY":{"Total":1.34189,"Yesterday":0.77064,"Today":0.57125,"Power":29.600,"Factor":0.25,"Voltage":227.500,"Current":0.515}}
2018-09-14 10:47:47 MQTT_DEVICE Blitzwolf2 Verbrauch: 2.08000000000015
2018-09-14 10:47:48 MQTT_DEVICE Blitzwolf2 Verbrauch: 0
2018-09-14 10:47:48 MQTT_DEVICE Blitzwolf2 SENSOR: {"Time":"2018-09-14T10:47:48","ENERGY":{"Total":1.34192,"Yesterday":0.77064,"Today":0.57128,"Power":58.400,"Factor":0.50,"Voltage":227.500,"Current":0.515}}
2018-09-14 10:47:48 MQTT_DEVICE Blitzwolf2 Verbrauch: 0.0299999999999727
Jetzt frage ich mich, warum Blitzwolf da zweimal meldet? Am Ende gelangt folgendes in die MySQL-Datenbank
| 2018-09-14 10:47:47 | Blitzwolf2 | MQTT_DEVICE | Verbrauch: 0 | Verbrauch | 0 | |
| 2018-09-14 10:47:47 | Blitzwolf2 | MQTT_DEVICE | Verbrauch: 2.08000000000015 | Verbrauch | 2.08000000000015 | |
| 2018-09-14 10:47:48 | Blitzwolf2 | MQTT_DEVICE | Verbrauch: 0 | Verbrauch | 0 | |
| 2018-09-14 10:47:48 | Blitzwolf2 | MQTT_DEVICE | Verbrauch: 0.0299999999999727 | Verbrauch | 0.0299999999999727 | |
PS In der Konsole meldet er sich zu dem Zeitpunkt zweimal
10:47:47 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-14T10:47:46","ENERGY":{"Total":1.34189,"Yesterday":0.77064,"Today":0.57125,"Power":29.600,"Factor":0.25,"Voltage":227.500,"Current":0.515}}
10:47:48 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-14T10:47:48","ENERGY":{"Total":1.34192,"Yesterday":0.77064,"Today":0.57128,"Power":58.400,"Factor":0.50,"Voltage":227.500,"Current":0.515}}
10:48:09 MQT: tele/blitzwolf2/STATE = {"Time":"2018-09-14T10:48:09","Uptime":"0T00:35:50","Vcc":3.230,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-120954","RSSI":44,"APMac":"38:10:D5:1C:D5:B8"}}
10:48:09 MQT: tele/blitzwolf2/SENSOR = {"Time":"2018-09-14T10:48:09","ENERGY":{"Total":1.34226,"Yesterday":0.77064,"Today":0.57162,"Period":2.450,"Power":57.600,"Factor":0.50,"Voltage":224.300,"Current":0.513}}
Damit liegt es am Blitzwolf, oder?
Zitat
Jetzt frage ich mich, warum Blitzwolf da zweimal meldet?
Das würde ich mich auch fragen und versuchen zu ergründen. Du müsstest mit der Ursachenforschung also weiter vorn beim Ersteller der Messages beginnen.
Zitat
Das ist ja eine Stunde her. Da wird nichts in die Datenbank geschrieben...
Ich weiß jetzt nicht ob es eine Frage oder Feststelung war. Jedenfalls wird nur "Verbrauch" in die DB geschrieben weil der Regex es so bestimmt (Blitzwolf(1|2):Verbrauch.*)
Das event-on-change-reading müsstest du vermutlich mal so setzen:
event-on-change-reading SENSOR,Verbrauch
Dann sollte es in der DB nur Verbräuche loggen wenn sie sich geändert haben.
EDIT: da hat sich jetzt einiges überschnitten mit unseren Beiträgen ...
Ja, sorry, das ist mir beim Schreiben auch aufgefallen - Danke für die Hilfe und die Geduld!
Ich habe nun Verbrauch auch in die event-on-change aufgenommen und nun zeigt alles auf Blitzwolf. Habe gerade da einen Fall eröffnet, denn dort scheint das Problem zu liegen: https://github.com/arendst/Sonoff-Tasmota/issues/3795 (https://github.com/arendst/Sonoff-Tasmota/issues/3795)
Warten wir mal ab, was passiert.
Es gab Rückmeldung aus dem Tasmota-Forum. Theo schreibt
ZitatPeriod is only send when teleperiod is finished for the simple reason that it calculates the power used between teleperiod moments. When an energy status is requested outside the teleperiod timestamp it cannot know the period power usage as it does not know the period time to calculate.
So update your openhab receiver to be clever enough to handle a message without a period field.
In der Tat ist Period in der Rückgabe enthalten. Entweder sorgt man dafür, nur diese Werte zu speichern oder man sendet (anscheinend) das Kommando
Powerdelta 0
in der Konsole, das ebenfalls dafür sorgen soll. Scheint also gelöst zu sein.