ich nutze DBREP jetzt schon x Jahre - hab aber daran überhaupt nicht mehr gedacht ........
ich werde wohl zu alt......ZitatEs wird die Differenz aus den VALUE-Werten der im Aggregationszeitraum (z.B. day) vorhandenen Datensätze gebildet und aufsummiert. Ein Übertragswert aus der Vorperiode (aggregation) zur darauf folgenden Aggregationsperiode wird berücksichtigt, sofern diese Periode einen Value-Wert enhtält.
In der Standardeinstellung wertet die Funktion nur positive Differenzen aus wie sie z.B. bei einem stetig ansteigenden Zählerwert auftreten. Mit dem Attribut diffAccept) kann sowohl die akzeptierte Differenzschwelle als auch die Möglichkeit negative Differenzen auszuwerten eingestellt werden.
Internals:
DATABASE fhem
DEF myDbLog
FUUID 68dadafc-f33f-11b3-7c89-597145420ca7a720
FVERSION 93_DbRep.pm:v8.54.19-s30153/2025-07-27
LASTCMD diffValue display
MODEL Client
NAME Rep.MQTT2_WP_Waermemenge.Erzeugung.Vorjahr
NOTIFYDEV global,Rep.MQTT2_WP_Waermemenge.Erzeugung.Vorjahr
NR 1974
NTFY_ORDER 50-Rep.MQTT2_WP_Waermemenge.Erzeugung.Vorjahr
ROLE Client
STATE done
TYPE DbRep
UTF8 1
eventCount 12
HELPER:
DBLOGDEVICE myDbLog
GRANTS INSERT,SELECT,ALL PRIVILEGES,UPDATE,DELETE
IDRETRIES 2
MINTS 1996-03-08 17:23:29
PACKAGE main
VERSION 8.54.19
CV:
aggregation no
aggsec 1
destr 2025-12-31
dsstr 2025-01-01
epoch_seconds_end 1767221999
mestr 12
msstr 01
testr 23:59:59
tsstr 00:00:00
wdadd
yestr 2025
ysstr 2025
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
myDbLog:
TIME 1768331811.03616
VALUE done
OLDREADINGS:
READINGS:
2026-01-13 20:16:50 2025-12-31_23-59-20__MQTT_EMSwp__boiler_data_nrgtotal__DIFF__no_aggregation 12970.7300
2026-01-13 20:16:50 background_processing_time 6.4102
2026-01-13 20:16:50 sql_processing_time 3.7993
2026-01-13 20:16:50 state done
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device MQTT_EMSwp
diffAccept 20000
disable 0
event-on-update-reading state
group Energy Meter Auswertung
reading boiler_data_nrgtotal
room Energie
showproctime 1
timeout 180
timestamp_begin previous_year_begin
timestamp_end previous_year_end
userExitFn setDumEnergy .*:.*
verbose 2
2025-04-10 12:00:00 MQTT_EMSwp MQTT2_DEVICE boiler_data_nrgtotal: 5.25 boiler_data_nrgtotal 0 NULL
2025-12-31 23:59:20 MQTT_EMSwp MQTT2_DEVICE boiler_data_nrgtotal: 12761.37 boiler_data_nrgtotal 12761.37 NULL
SELECT
*
FROM
`fhem`.`history`
WHERE
(`DEVICE` = 'MQTT_EMSwp')
AND (`TIMESTAMP` < '2026-01-01 00:00:00')
AND (`READING` = 'boiler_data_nrgtotal')
ORDER BY
CAST(VALUE AS DECIMAL(10, 2)) DESC;
2025-04-10_12-00-00__MQTT_EMSwp__boiler_data_nrgtotal__MIN__no_aggregation 0.0000 2026-01-13 22:04:27
2025-12-31_23-59-20__MQTT_EMSwp__boiler_data_nrgtotal__MAX__no_aggregation 12761.3700 2026-01-13 22:05:12
setreading Rauchmelder_Wohnzimmer params_smoke_0_alarm falseaber wieder zurück, läuft das DOIF auch wieder an und führt das Kommando nochmals aus (im konkreten Fall nutze ich auch SIP zur telefonischen Alarmierung, da verwirrt das dann). Gibt es da noch einen Trick, die DOIF-Automation zu perfektionieren?