2016.06.27 09:11:28 3: DbRep Mengen - Connection to db mysql:database=fhem;host=localhost;port=3306 established
Undefined subroutine &main::timelocal called at ./FHEM/93_DbRep.pm line 359.
2016.06.27 08:44:26 0: Server started with 25 defined entities (fhem.pl:11655/2016-06-13 perl:5.020002 os:linux user:fhem pid:434)
2016.06.27 08:44:26 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2016.06.27 08:44:26 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 434
2016.06.27 08:44:26 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established
2016.06.27 09:11:28 3: DbRep Mengen - Connection to db mysql:database=fhem;host=localhost;port=3306 established
Undefined subroutine &main::timelocal called at ./FHEM/93_DbRep.pm line 359.
2016.06.27 11:00:09 1: Including fhem.cfg
2016.06.27 11:00:09 3: telnetPort: port 7072 opened
2016.06.27 11:00:11 3: WEB: port 8083 opened
2016.06.27 11:00:11 3: WEBphone: port 8084 opened
2016.06.27 11:00:11 3: WEBtablet: port 8085 opened
2016.06.27 11:00:13 2: eventTypes: loaded 87 events from ./log/eventTypes.txt
2016.06.27 11:00:24 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet_eval:
2016.06.27 11:00:24 3: Registering HTTPSRV TABLETUI for URL /ftui and assigned link ftui/ ...
2016.06.27 11:00:26 3: Opening CUL_0 device /dev/ttyACM0
2016.06.27 11:00:28 3: Setting CUL_0 serial parameters to 9600,8,N,1
2016.06.27 11:00:28 3: CUL_0 device opened
2016.06.27 11:00:31 3: CUL_0: Possible commands: BbCFiAZNkGMKUYRTVWXefmLltux
2016.06.27 11:00:31 2: Switched CUL_0 rfmode to WMBus_T
2016.06.27 11:00:34 3: StromzaehlerNT: I/O device is CUL_0
2016.06.27 11:00:34 3: StromzaehlerHT: I/O device is CUL_0
2016.06.27 11:00:40 3: Wasserzaehler: I/O device is CUL_0
2016.06.27 11:00:44 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2016.06.27 11:00:46 2: DbRep Mengen - DB connect failed. Have a look if the credentials of logdb are right !
2016.06.27 11:00:46 1: Including ./log/fhem.save
2016.06.27 11:00:47 1: usb create starting
2016.06.27 11:00:52 3: Probing CUL device /dev/ttyAMA0
2016.06.27 11:00:52 3: Can't open /dev/ttyAMA0: Permission denied
2016.06.27 11:00:53 1: usb create end
2016.06.27 11:00:53 0: Featurelevel: 5.7
2016.06.27 11:00:53 0: Server started with 23 defined entities (fhem.pl:11655/2016-06-13 perl:5.020002 os:linux user:fhem pid:432)
2016.06.27 11:00:53 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2016.06.27 11:00:53 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 432
2016.06.27 11:00:53 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established
perldoc perlmodlib
The Value for timestamp_begin is out of range - Undefined subroutine &main::timelocal called
ZitatDie andere Sache mit timelocal ... schau mal bitte ob das Modul Time::Local bei dir installiert ist, sollte eigentlich so sein.
pi@RPI-FHEM:/opt/fhem/FHEM $ perldoc -f
Option f needs a following argument!
at /usr/share/perl/5.20/Pod/Perldoc/GetOptsOO.pm line 45.
Usage: perldoc [-hVriDtumFXlT] [-n nroffer_program]
[-d output_filename] [-o output_format] [-M FormatterModule]
[-w formatter_option:option_value] [-L translation_code]
PageName|ModuleName|ProgramName
Examples:
perldoc -f PerlFunc
perldoc -q FAQKeywords
perldoc -v PerlVar
perldoc -a PerlAPI
The -h option prints more help. Also try "perldoc perldoc" to get
acquainted with the system. [Perldoc v3.23]
pi@RPI-FHEM:/opt/fhem/FHEM $ perldoc -f perlmodlib
No documentation for perl function 'perlmodlib' found
pi@RPI-FHEM:/opt/fhem/FHEM $
Fhem info:
Release : 5.7 FeatureLevel: 5.7
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.20.2
uniqueID : e3372d4b3832bb4f0d87f3eda68eedae
upTime : 00:11:25
Defined modules:
CUL : 1
DbLog : 1
FHEMWEB : 3
FileLog : 4
HTTPSRV : 1
SVG : 1
WMBUS : 3
autocreate : 1
eventTypes : 1
notify : 1
readingsGroup : 1
telnet : 1
weblink : 1
Defined models per module:
CUL : CUL
Bezug -> sumValue
Einspeisung -> sumValue
Kosten -> sumValue
Vergütung -> sumValue
Tageswerte -> maxValue
define recalc_Bezug AT +*00:05:05 {if ($mday == 01) {my $rcb = strftime "%Y-%m-%d", localtime(time);; fhem ("attr Bezug timestamp_begin $rcb 00:00:00");; fhem ("set Bezug sumValue") } else {fhem ("set Bezug sumValue") } }
define recalc_Kosten NOTIFY
Bezug:.*done {if ($mday == 01) {my $rck = strftime "%Y-%m-%d", localtime(time);; fhem ("attr Kosten timestamp_begin $rck 00:00:00");; fhem ("set Kosten sumValue") } else {fhem ("set Kosten sumValue") } }
######################################################################
# Readingsgroup SMA Energy Meter Übersicht
######################################################################
define SMAEM_Uebersicht readingsGroup <%measure_power>,<01>,<>,<02>,<>,<03>,<>,<04>,<>,<05>,<>,<06>,<>,<07>,<>,<08>,<>,<09>,<>,<10>,<>,<11>,<>,<12>,<>,<13>,<>,<14>,<>,<15>,<>,<16>,<>,<17>,<>,<18>,<>,<19>,<>,<20>,<>,<21>,<>,<22>,<>,<23>,<>,<24>,<>,<25>,<>,<26>,<>,<27>,<>,<28>,<>,<29>,<>,<30>,<>,<31> Bezug:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Einspeisung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Tageserzeugung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Verguetung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Kosten:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31
attr SMAEM_Uebersicht alias Tagesübersicht Einpeisung / Bezug / Ertrag
attr SMAEM_Uebersicht cellStyle { "c:0" => 'style="text-align:left;;color:green;;font-weight:normal"'}
attr SMAEM_Uebersicht group Energie Übersicht
attr SMAEM_Uebersicht mapping {Bezug => "Bezug (kWh)", Einspeisung => "Einspeisung (kWh)", Tageserzeugung => "Erzeugung (kWh)",\
Verguetung => "Ertrag (€)", Kosten => "Stromkosten (€)"}
attr SMAEM_Uebersicht nameStyle style="text-align:center;;color:black;;font-weight:bold"
attr SMAEM_Uebersicht room Energie
attr SMAEM_Uebersicht valueFormat { ($VALUE ne "-") ? "%.2f" : "-" }\
attr SMAEM_Uebersicht valueStyle style="text-align:center"
attr SMAEM_Uebersicht verbose 1
define Test DbRep DbLog
set Test countEntries
set Test countEntries
set Test countEntries -> es sollten nicht zu viele Einträge selektiert werden , wenn ok dann ->
set Test fetchrows
set Test averageValue bzw.
set Test sumValue bzw.
set Test maxValue
name function max count total average maxDly
LogDB DbLog_Log 3821 7721 185153 23.98 0 HASH(LogDB); HASH(sysmon)
Zitat von: DS_Starter am 05 Juli 2016, 08:15:24
EDIT: Habe gerade realisiert dass du auch postgre einsetzt, vllt. könntest du auch ein paar Tests mit DbRep ausführen wie oben beschrieben. :) Dann wären alle von DbLog unterstützten DB's auch mit DbRep getestet
Grüße
Heiko
reload: Error:Modul 93_DbRep deactivated:
statEinspeisung_Wirkleistung_Zaehler Hour: 0.4140 Day: 5.6034 Month: 206.3490 Year: 206.3490 (since: 2016-07-02 )
Zitat von: DS_Starter am 03 Juli 2016, 10:07:20Code Auswählen
######################################################################
# Readingsgroup SMA Energy Meter Übersicht
######################################################################
define SMAEM_Uebersicht readingsGroup <%measure_power>,<01>,<>,<02>,<>,<03>,<>,<04>,<>,<05>,<>,<06>,<>,<07>,<>,<08>,<>,<09>,<>,<10>,<>,<11>,<>,<12>,<>,<13>,<>,<14>,<>,<15>,<>,<16>,<>,<17>,<>,<18>,<>,<19>,<>,<20>,<>,<21>,<>,<22>,<>,<23>,<>,<24>,<>,<25>,<>,<26>,<>,<27>,<>,<28>,<>,<29>,<>,<30>,<>,<31> Bezug:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Einspeisung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Tageserzeugung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Verguetung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Kosten:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31
attr SMAEM_Uebersicht alias Tagesübersicht Einpeisung / Bezug / Ertrag
attr SMAEM_Uebersicht cellStyle { "c:0" => 'style="text-align:left;;color:green;;font-weight:normal"'}
attr SMAEM_Uebersicht group Energie Übersicht
attr SMAEM_Uebersicht mapping {Bezug => "Bezug (kWh)", Einspeisung => "Einspeisung (kWh)", Tageserzeugung => "Erzeugung (kWh)",\
Verguetung => "Ertrag (€)", Kosten => "Stromkosten (€)"}
attr SMAEM_Uebersicht nameStyle style="text-align:center;;color:black;;font-weight:bold"
attr SMAEM_Uebersicht room Energie
attr SMAEM_Uebersicht valueFormat { ($VALUE ne "-") ? "%.2f" : "-" }\
attr SMAEM_Uebersicht valueStyle style="text-align:center"
attr SMAEM_Uebersicht verbose 1
2016.08.03 21:53:18 1: PERL WARNING: Argument "-" isn't numeric in subroutine entry at (eval 1017) line 1.
2016.08.03 21:53:18 3: eval: {diffval_ParseDone('DbRep.elektrische.Energie.FBDECT_fritz.box.AHA.Wohnzimmer_17|TWpBeE5pMHdNUT09IDAgMjAxNi0wMS0wMQp8TWpBeE5pMHdNZz09IDAgMjAxNi0wMi0wMQp8TWpBeE5pMHdNdz09IDAgMjAxNi0wMy0wMQp8TWpBeE5pMHdOQT09IDAgMjAxNi0wNC0wMQp8TWpBeE5pMHdOUT09IDAgMjAxNi0wNS0wMQp8TWpBeE5pMHdOZz09IDAgMjAxNi0wNi0wMQp8TWpBeE5pMHdOdz09IDUzODE2NSAyMDE2LTA3LTMxIDIxOjU3OjA5CnxNakF4Tmkwd053PT0gNTM4MTY2IDIwMTYtMDctMzEgMjI6MDE6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxNjcgMjAxNi0wNy0zMSAyMjowNzowOQp8TWpBeE5pMHdOdz09IDUzODE2OCAyMDE2LTA3LTMxIDIyOjExOjA5CnxNakF4Tmkwd053PT0gNTM4MTY5IDIwMTYtMDctMzEgMjI6MTU6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxNzAgMjAxNi0wNy0zMSAyMjoxOTowOQp8TWpBeE5pMHdOdz09IDUzODE3MSAyMDE2LTA3LTMxIDIyOjIzOjA5CnxNakF4Tmkwd053PT0gNTM4MTcyIDIwMTYtMDctMzEgMjI6Mjc6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxNzMgMjAxNi0wNy0zMSAyMjozMzowOQp8TWpBeE5pMHdOdz09IDUzODE3NCAyMDE2LTA3LTMxIDIyOjM3OjA5CnxNakF4Tmkwd053PT0gNTM4MTc1IDIwMTYtMDctMzEgMjI6NDE6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxNzYgMjAxNi0wNy0zMSAyMjo0NTowOQp8TWpBeE5pMHdOdz09IDUzODE3NyAyMDE2LTA3LTMxIDIyOjUxOjA5CnxNakF4Tmkwd053PT0gNTM4MTc4IDIwMTYtMDctMzEgMjI6NTU6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxNzkgMjAxNi0wNy0zMSAyMjo1OTowOQp8TWpBeE5pMHdOdz09IDUzODE4MCAyMDE2LTA3LTMxIDIzOjAzOjA5CnxNakF4Tmkwd053PT0gNTM4MTgxIDIwMTYtMDctMzEgMjM6MDc6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxODIgMjAxNi0wNy0zMSAyMzoxMTowOQp8TWpBeE5pMHdOdz09IDUzODE4MyAyMDE2LTA3LTMxIDIzOjE1OjA5CnxNakF4Tmkwd053PT0gNTM4MTg0IDIwMTYtMDctMzEgMjM6MTc6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxODUgMjAxNi0wNy0zMSAyMzoyMTowOQp8TWpBeE5pMHdOdz09IDUzODE4NiAyMDE2LTA3LTMxIDIzOjI1OjA5CnxNakF4Tmkwd053PT0gNTM4MTg3IDIwMTYtMDctMzEgMjM6Mjc6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxODggMjAxNi0wNy0zMSAyMzozMzowOQp8TWpBeE5pMHdOdz09IDUzODE4OSAyMDE2LTA3LTMxIDIzOjM3OjA5CnxNakF4Tmkwd053PT0gNTM4MTkwIDIwMTYtMDctMzEgMjM6NDE6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxOTEgMjAxNi0wNy0zMSAyMzo0NTowOQp8TWpBeE5pMHdOdz09IDUzODE5MiAyMDE2LTA3LTMxIDIzOjQ5OjA5CnxNakF4Tmkwd053PT0gNTM4MTkzIDIwMTYtMDctMzEgMjM6NTM6MDkKfE1qQXhOaTB3Tnc9PSA1MzgxOTQgMjAxNi0wNy0zMSAyMzo1NzowOQp8TWpBeE5pMHdOdz09IDUzODE5NCAyMDE2LTA3LTMxIDIzOjU5OjU5CnxNakF4Tmkwd09BPT0gNTM4MTk1IDIwMTYtMDgtMDEgMDA6MDE6MDkKfE1qQXhOaTB3T0E9PSA1MzgxOTYgMjAxNi0wOC0wMSAwMDowNTowOQp8TWpBeE5pMHdPQT09IDUzODE5NyAyMDE2LTA4LTAxIDAwOjA5OjA5CnxNakF4Tmkwd09BPT0gNTM4MTk4IDIwMTYtMDgtMDEgMDA6MTU6MDkKfE1qQXhOaTB3T0E9PSA1MzgxOTkgMjAxNi0wOC0wMSAwMDoxOTowOQp8TWpBeE5pMHdPQT09IDUzODIwMCAyMDE2LTA4LTAxIDAwOjIzOjA5CnxNakF4Tmkwd09BPT0gNTM4MjAxIDIwMTYtMDgtMDEgMDA6Mjc6MDkKfE1qQXhOaTB3T0E9PSA1MzgyMDIgMjAxNi0wOC0wMSAwMDozMTowOQp8TWpBeE5pMHdPQT09IDUzODIwMyAyMDE2LTA4LTAxIDAwOjM3OjA5CnxNakF4Tmkwd09BPT0gNTM4MjA0IDIwMTYtMDgtMDEgMDA6NDE6MDkKfE1qQXhOaTB3T0E9PSA1MzgyMDUgMjAxNi0wOC0wMSAwMDo0NTowOQp8TWpBeE5pMHdPQT09IDUzODIwNiAyMDE2LTA4LTAxIDAwOjQ5OjA5CnxNakF4Tmkwd09BPT0gNTM4MjA3IDIwMTYtMDgtMDEgMDA6NTU6MDkKfE1qQXhOaTB3T0E9PSA1MzgyMDggMjAxNi0wOC0wMSAwMDo1OTowOQp8TWpBeE5pMHdPQT09IDUzODIxNSAyMDE2LTA4LTAxIDA2OjI2OjI4CnxNakF4Tmkwd09BPT0gNTM4MjE2IDIwMTYtMDgtMDEgMDY6Mjg6MjgKfE1qQXhOaTB3T0E9PSA1MzgyMTcgMjAxNi0wOC0wMSAwNjozMjoyOAp8TWpBeE5pMHdPQT09IDUzODIxOCAyMDE2LTA4LTAxIDA2OjM2OjI4CnxNakF4Tmkwd09BPT0gNTM4MjE5IDIwMTYtMDgtMDEgMDY6NDI6MjgKfE1qQXhOaTB3T0E9PSA1MzgyMjAgMjAxNi0wOC0wMSAwNjo0NjoyOAp8TWpBeE5pMHdPQT09IDUzODIyMSAyMDE2LTA4LTAxIDA2OjUwOjI4CnxNakF4Tmkwd09BPT0gNTM4MjIyIDIwMTYtMDgtMDEgMDY6NTQ6MjgKfE1qQXhOaTB3T0E9PSA1MzgyMjMgMjAxNi0wOC0wMSAwNjo1ODoyOAp8TWpBeE5pMHdPQT09IDUzODIyNCAyMDE2LTA4LTAxIDA3OjAyOjI4CnxNakF4Tmkwd09BPT0gNTM4MjI1IDIwMTYtMDgtMDEgMDc6MDY6MjgKfE1qQXhOaTB3T0E9PSA1MzgyMjYgMjAxNi0wOC0wMSAwNzoxMDoyOAp8TWpBeE5pMHdPQT09IDUzODIyNyAyMDE2LTA4LTAxIDA3OjE0OjI4CnxNakF4Tmkwd09BPT0gNTM4MjI4IDIwMTYtMDgtMDEgMDc6MjA6MjgKfE1qQXhOaTB3T0E9PSA1MzgyMjkgMjAxNi0wOC0wMSAwNzoyNDoyOAp8TWpBeE5pMHdPQT09IDUzODIzMCAyMDE2LTA4LTAxIDA3OjI4OjI4CnxNakF4Tmkwd09BPT0gNTM4MjMxIDIwMTYtMDgtMDEgMDc6MzI6MjgKfE1qQXhOaTB3T0E9PSA1MzgyMzIgMjAxNi0wOC0wMSAwNzozODoyOAp8TWpBeE5pMHdPQT09IDUzODIzMyAyMDE2LTA4LTAxIDA3OjQyOjI4CnxNakF4Tmkwd09BPT0gNTM4MjM0IDIwMTYtMDgtMDEgMDc6NDY6MzYKfE1qQXhOaTB3T0E9PSA1MzgyMzUgMjAxNi0wOC0wMSAwNzo1MDozNgp8TWpBeE5pMHdPQT09IDUzODIzNiAyMDE2LTA4LTAxIDA3OjU0OjM2CnxNakF4Tmkwd09BPT0gNTM4MjM3IDIwMTYtMDgtMDEgMDg6MDA6MzYKfE1qQXhOaTB3T0E9PSA1MzgyMzggMjAxNi0wOC0wMSAwODowNDozNgp8TWpBeE5pMHdPQT09IDUzODIzOSAyMDE2LTA4LTAxIDA4OjA4OjM2CnxNakF4Tmkwd09BPT0gNTM4MjQwIDIwMTYtMDgtMDEgMDg6MTI6MzYKfE1qQXhOaTB3T0E9PSA1MzgyNDEgMjAxNi0wOC0wMSAwODoxNjozNgp8TWpBeE5pMHdPQT09IDUzODI0MiAyMDE2LTA4LTAxIDA4OjIwOjM2CnxNakF4Tmkwd09BPT0gNTM4MjQzIDIwMTYtMDgtMDEgMDg6MjQ6MzYKfE1qQXhOaTB3T0E9PSA1MzgyNDQgMjAxNi0wOC0wMSAwODoyODozNgp8TWpBeE5pMHdPQT09IDUzODI0NSAyMDE2LTA4LTAxIDA4OjMyOjM2CnxNakF4Tmkwd09BPT0gNTM4MjQ2IDIwMTYtMDgtMDEgMDg6MzY6MzYKfE1qQXhOaTB3T0E9PSA1MzgyNDcgMjAxNi0wOC0wMSAwODo0MjozNgp8TWpBeE5pMHdPQT09IDUzODI0OCAyMDE2LTA4LTAxIDA4OjQ2OjM2CnxNakF4Tmkwd09BPT0gNTM4MjQ5IDIwMTYtMDgtMDEgMDg6NTA6MzYKfE1qQXhOaTB3T0E9PSA1MzgyNTAgMjAxNi0wOC0wMSAwODo1NDozNgp8TWpBeE5pMHdPQT09IDUzODI1MSAyMDE2LTA4LTAxIDA4OjU4OjM2CnxNakF4Tmkwd09BPT0gNTM4MjUyIDIwMTYtMDgtMDEgMDk6MDI6MzcKfE1qQXhOaTB3T0E9PSA1MzgyNTMgMjAxNi0wOC0wMSAwOTowODozNgp8TWpBeE5pMHdPQT09IDUzODI1NCAyMDE2LTA4LTAxIDA5OjEyOjM2CnxNakF4Tmkwd09BPT0gNTM4MjU1IDIwMTYtMDgtMDEgMDk6MTY6MzYKfE1qQXhOaTB3T0E9PSA1MzgyNTYgMjAxNi0wOC0wMSAwOToyMDozNwp8TWpBeE5pMHdPQT09IDUzODI1NyAyMDE2LTA4LTAxIDA5OjI0OjM2CnxNakF4Tmkwd09BPT0gNTM4MjU4IDIwMTYtMDgtMDEgMDk6MzA6MzcKfE1qQXhOaTB3T0E9PSA1MzgyNTkgMjAxNi0wOC0wMSAwOTozNDozNgp8TWpBeE5pMHdPQT09IDUzODI2MCAyMDE2LTA4LTAxIDA5OjM4OjM2CnxNakF4Tmkwd09BPT0gNTM4MjYxIDIwMTYtMDgtMDEgMDk6NDI6MzcKfE1qQXhOaTB3T0E9PSA1MzgyNjIgMjAxNi0wOC0wMSAwOTo0NjozNgp8TWpBeE5pMHdPQT09IDUzODI2MyAyMDE2LTA4LTAxIDA5OjUwOjM2CnxNakF4Tmkwd09BPT0gNTM4MjY0IDIwMTYtMDgtMDEgMDk6NTQ6MzYKfE1qQXhOaTB3T0E9PSA1MzgyNjcgMjAxNi0wOC0wMSAwOTo1ODozNQp8TWpBeE5pMHdPQT09IDUzODI3MiAyMDE2LTA4LTAxIDEwOjAwOjM1CnxNakF4Tmkwd09BPT0gNTM4Mjc3IDIwMTYtMDgtMDEgMTA6MDI6MzUKfE1qQXhOaTB3T0E9PSA1MzgyNzggMjAxNi0wOC0wMSAxMDowMjo0NAp8TWpBeE5pMHdPQT09IDUzODI4MSAyMDE2LTA4LTAxIDEwOjAzOjQ0CnxNakF4Tmkwd09BPT0gNTM4Mjg2IDIwMTYtMDgtMDEgMTA6MDU6NDQKfE1qQXhOaTB3T0E9PSA1MzgyODggMjAxNi0wOC0wMSAxMDowNjoyNAp8TWpBeE5pMHdPQT09IDUzODI5MSAyMDE2LTA4LTAxIDEwOjA3OjI0CnxNakF4Tmkwd09BPT0gNTM4Mjk3IDIwMTYtMDgtMDEgMTA6MDk6MjQKfE1qQXhOaTB3T0E9PSA1MzgzMDIgMjAxNi0wOC0wMSAxMDoxMToyNQp8TWpBeE5pMHdPQT09IDUzODMwOCAyMDE2LTA4LTAxIDEwOjEzOjI1CnxNakF4Tmkwd09BPT0gNTM4MzE0IDIwMTYtMDgtMDEgMTA6MTU6MjQKfE1qQXhOaTB3T0E9PSA1MzgzMjAgMjAxNi0wOC0wMSAxMDoxNzoyNAp8TWpBeE5pMHdPQT09IDUzODMyNCAyMDE2LTA4LTAxIDEwOjE4OjU1CnxNakF4Tmkwd09BPT0gNTM4MzMwIDIwMTYtMDgtMDEgMTA6MjA6NTUKfE1qQXhOaTB3T0E9PSA1MzgzMzYgMjAxNi0wOC0wMSAxMDoyMjo1NQp8TWpBeE5pMHdPQT09IDUzODM0MiAyMDE2LTA4LTAxIDEwOjI0OjU1CnxNakF4Tmkwd09BPT0gNTM4MzQ4IDIwMTYtMDgtMDEgMTA6MjY6NTUKfE1qQXhOaTB3T0E9PSA1MzgzNTQgMjAxNi0wOC0wMSAxMDoyODo1NQp8TWpBeE5pMHdPQT09IDUzODM2MCAyMDE2LTA4LTAxIDEwOjMwOjU1CnxNakF4Tmkwd09BPT0gNTM4MzY2IDIwMTYtMDgtMDEgMTA6MzI6NDQKfE1qQXhOaTB3T0E9PSA1MzgzNjkgMjAxNi0wOC0wMSAxMDozMzo0NQp8TWpBeE5pMHdPQT09IDUzODM3NSAyMDE2LTA4LTAxIDEwOjM1OjQ1CnxNakF4Tmkwd09BPT0gNTM4Mzc3IDIwMTYtMDgtMDEgMTA6MzY6MjUKfE1qQXhOaTB3T0E9PSA1MzgzODQgMjAxNi0wOC0wMSAxMDozODoyNAp8TWpBeE5pMHdPQT09IDUzODM5MSAyMDE2LTA4LTAxIDEwOjQwOjI0CnxNakF4Tmkwd09BPT0gNTM4Mzk4IDIwMTYtMDgtMDEgMTA6NDI6MjUKfE1qQXhOaTB3T0E9PSA1Mzg0MDEgMjAxNi0wOC0wMSAxMDo0MzoyNAp8TWpBeE5pMHdPQT09IDUzODQwNSAyMDE2LTA4LTAxIDEwOjQ0OjI1CnxNakF4Tmkwd09BPT0gNTM4NDEyIDIwMTYtMDgtMDEgMTA6NDY6MjQKfE1qQXhOaTB3T0E9PSA1Mzg0MTkgMjAxNi0wOC0wMSAxMDo0ODoyNQp8TWpBeE5pMHdPQT09IDUzODQyNiAyMDE2LTA4LTAxIDEwOjUwOjI0CnxNakF4Tmkwd09BPT0gNTM4NDMyIDIwMTYtMDgtMDEgMTA6NTI6MjQKfE1qQXhOaTB3T0E9PSA1Mzg0MzkgMjAxNi0wOC0wMSAxMDo1NDoyNAp8TWpBeE5pMHdPQT09IDUzODQ0MyAyMDE2LTA4LTAxIDEwOjU1OjM1CnxNakF4Tmkwd09BPT0gNTM4NDQ3IDIwMTYtMDgtMDEgMTA6NTY6MzUKfE1qQXhOaTB3T0E9PSA1Mzg0NTMgMjAxNi0wOC0wMSAxMDo1ODozNQp8TWpBeE5pMHdPQT09IDUzODQ1OCAyMDE2LTA4LTAxIDEwOjU5OjU1CnxNakF4Tmkwd09BPT0gNTM4NDYyIDIwMTYtMDgtMDEgMTE6MDE6MDQKfE1qQXhOaTB3T0E9PSA1Mzg0NjggMjAxNi0wOC0wMSAxMTowMzowNQp8TWpBeE5pMHdPQT09IDUzODQ3NSAyMDE2LTA4LTAxIDExOjA1OjA1CnxNakF4Tmkwd09BPT0gNTM4NDgyIDIwMTYtMDgtMDEgMTE6MDc6MDUKfE1qQXhOaTB3T0E9PSA1Mzg0ODkgMjAxNi0wOC0wMSAxMTowOToxNQp8TWpBeE5pMHdPQT09IDUzODQ5NiAyMDE2LTA4LTAxIDExOjExOjE1CnxNakF4Tmkwd09BPT0gNTM4NTAzIDIwMTYtMDgtMDEgMTE6MTM6MTUKfE1qQXhOaTB3T0E9PSA1Mzg1MDkgMjAxNi0wOC0wMSAxMToxNToxNQp8TWpBeE5pMHdPQT09IDUzODUxMSAyMDE2LTA4LTAxIDExOjE1OjQ1CnxNakF4Tmkwd09BPT0gNTM4NTE0IDIwMTYtMDgtMDEgMTE6MTY6NDQKfE1qQXhOaTB3T0E9PSA1Mzg1MTcgMjAxNi0wOC0wMSAxMToxNzo0NQp8TWpBeE5pMHdPQT09IDUzODUyNCAyMDE2LTA4LTAxIDExOjE5OjQ1CnxNakF4Tmkwd09BPT0gNTM4NTMwIDIwMTYtMDgtMDEgMTE6MjE6MzUKfE1qQXhOaTB3T0E9PSA1Mzg1MzMgMjAxNi0wOC0wMSAxMToyMjozNQp8TWpBeE5pMHdPQT09IDUzODU0MCAyMDE2LTA4LTAxIDExOjI0OjM1CnxNakF4Tmkwd09BPT0gNTM4NTQ3IDIwMTYtMDgtMDEgMTE6MjY6MzUKfE1qQXhOaTB3T0E9PSA1Mzg1NTQgMjAxNi0wOC0wMSAxMToyODozNQp8TWpBeE5pMHdPQT09IDUzODU2MCAyMDE2LTA4LTAxIDExOjMwOjM1CnxNakF4Tmkwd09BPT0gNTM4NTY3IDIwMTYtMDgtMDEgMTE6MzI6MzUKfE1qQXhOaTB3T0E9PSA1Mzg1NzQgMjAxNi0wOC0wMSAxMTozNDozNQp8TWpBeE5pMHdPQT09IDUzODU4MCAyMDE2LTA4LTAxIDExOjM2OjM1CnxNakF4Tmkwd09BPT0gNTM4NTg3IDIwMTYtMDgtMDEgMTE6Mzg6MzUKfE1qQXhOaTB3T0E9PSA1Mzg1OTQgMjAxNi0wOC0wMSAxMTo0MDozNQp8TWpBeE5pMHdPQT09IDUzODYwMSAyMDE2LTA4LTAxIDExOjQyOjM1CnxNakF4Tmkwd09BPT0gNTM4NjA3IDIwMTYtMDgtMDEgMTE6NDQ6MzUKfE1qQXhOaTB3T0E9PSA1Mzg2MTQgMjAxNi0wOC0wMSAxMTo0NjozNQp8TWpBeE5pMHdPQT09IDUzODYyMSAyMDE2LTA4LTAxIDExOjQ4OjM1CnxNakF4Tmkwd09BPT0gNTM4NjI3IDIwMTYtMDgtMDEgMTE6NTA6MzUKfE1qQXhOaTB3T0E9PSA1Mzg2MzQgMjAxNi0wOC0wMSAxMTo1MjozNQp8TWpBeE5pMHdPQT09IDUzODY0MSAyMDE2LTA4LTAxIDExOjU0OjM1CnxNakF4Tmkwd09BPT0gNTM4NjQ3IDIwMTYtMDgtMDEgMTE6NTY6MjUKfE1qQXhOaTB3T0E9PSA1Mzg2NTAgMjAxNi0wOC0wMSAxMTo1NzoyNQp8TWpBeE5pMHdPQT09IDUzODY1NyAyMDE2LTA4LTAxIDExOjU5OjI1CnxNakF4Tmkwd09BPT0gNTM4NjYzIDIwMTYtMDgtMDEgMTI6MDE6MjUKfE1qQXhOaTB3T0E9PSA1Mzg2NzAgMjAxNi0wOC0wMSAxMjowMzoyNQp8TWpBeE5pMHdPQT09IDUzODY3NiAyMDE2LTA4LTAxIDEyOjA1OjI1CnxNakF4Tmkwd09BPT0gNTM4NjgzIDIwMTYtMDgtMDEgMTI6MDc6MjUKfE1qQXhOaTB3T0E9PSA1Mzg2OTAgMjAxNi0wOC0wMSAxMjowOToyNQp8TWpBeE5pMHdPQT09IDUzODY5MiAyMDE2LTA4LTAxIDEyOjEwOjA1CnxNakF4Tmkwd09BPT0gNTM4NjkzIDIwMTYtMDgtMDEgMTI6MTM6NDUKfE1qQXhOaTB3T0E9PSA1Mzg2OTQgMjAxNi0wOC0wMSAxMjoxNTo0NQp8TWpBeE5pMHdPQT09IDUzODY5NSAyMDE2LTA4LTAxIDEyOjE5OjQ1CnxNakF4Tmkwd09BPT0gNTM4Njk3IDIwMTYtMDgtMDEgMTI6MjA6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3MDIgMjAxNi0wOC0wMSAxMjoyMjo1NQp8TWpBeE5pMHdPQT09IDUzODcwNyAyMDE2LTA4LTAxIDEyOjI0OjU1CnxNakF4Tmkwd09BPT0gNTM4NzEyIDIwMTYtMDgtMDEgMTI6MjY6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3MTcgMjAxNi0wOC0wMSAxMjoyODo1NQp8TWpBeE5pMHdPQT09IDUzODcyMiAyMDE2LTA4LTAxIDEyOjMwOjU1CnxNakF4Tmkwd09BPT0gNTM4NzI3IDIwMTYtMDgtMDEgMTI6MzI6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3MzIgMjAxNi0wOC0wMSAxMjozNDo1NQp8TWpBeE5pMHdPQT09IDUzODczNyAyMDE2LTA4LTAxIDEyOjM2OjU1CnxNakF4Tmkwd09BPT0gNTM4NzQyIDIwMTYtMDgtMDEgMTI6Mzg6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3NDcgMjAxNi0wOC0wMSAxMjo0MDo1NQp8TWpBeE5pMHdPQT09IDUzODc1MiAyMDE2LTA4LTAxIDEyOjQyOjU1CnxNakF4Tmkwd09BPT0gNTM4NzU3IDIwMTYtMDgtMDEgMTI6NDQ6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3NjIgMjAxNi0wOC0wMSAxMjo0Njo1NQp8TWpBeE5pMHdPQT09IDUzODc2NyAyMDE2LTA4LTAxIDEyOjQ4OjU1CnxNakF4Tmkwd09BPT0gNTM4NzcyIDIwMTYtMDgtMDEgMTI6NTA6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3NzcgMjAxNi0wOC0wMSAxMjo1Mjo1NQp8TWpBeE5pMHdPQT09IDUzODc4MiAyMDE2LTA4LTAxIDEyOjU0OjU1CnxNakF4Tmkwd09BPT0gNTM4Nzg3IDIwMTYtMDgtMDEgMTI6NTY6NTUKfE1qQXhOaTB3T0E9PSA1Mzg3OTIgMjAxNi0wOC0wMSAxMjo1ODo1NQp8TWpBeE5pMHdPQT09IDUzODc5NyAyMDE2LTA4LTAxIDEzOjAwOjU1CnxNakF4Tmkwd09BPT0gNTM4ODAyIDIwMTYtMDgtMDEgMTM6MDI6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4MDcgMjAxNi0wOC0wMSAxMzowNDo1NQp8TWpBeE5pMHdPQT09IDUzODgxMiAyMDE2LTA4LTAxIDEzOjA2OjU1CnxNakF4Tmkwd09BPT0gNTM4ODE3IDIwMTYtMDgtMDEgMTM6MDg6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4MjIgMjAxNi0wOC0wMSAxMzoxMDo1NQp8TWpBeE5pMHdPQT09IDUzODgyNyAyMDE2LTA4LTAxIDEzOjEyOjU1CnxNakF4Tmkwd09BPT0gNTM4ODMyIDIwMTYtMDgtMDEgMTM6MTQ6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4MzcgMjAxNi0wOC0wMSAxMzoxNjo1NQp8TWpBeE5pMHdPQT09IDUzODg0MSAyMDE2LTA4LTAxIDEzOjE4OjU1CnxNakF4Tmkwd09BPT0gNTM4ODQ2IDIwMTYtMDgtMDEgMTM6MjA6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4NTIgMjAxNi0wOC0wMSAxMzoyMjo1NQp8TWpBeE5pMHdPQT09IDUzODg1NiAyMDE2LTA4LTAxIDEzOjI0OjU1CnxNakF4Tmkwd09BPT0gNTM4ODYxIDIwMTYtMDgtMDEgMTM6MjY6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4NjcgMjAxNi0wOC0wMSAxMzoyODo1NQp8TWpBeE5pMHdPQT09IDUzODg3MSAyMDE2LTA4LTAxIDEzOjMwOjU1CnxNakF4Tmkwd09BPT0gNTM4ODc2IDIwMTYtMDgtMDEgMTM6MzI6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4ODEgMjAxNi0wOC0wMSAxMzozNDo1NQp8TWpBeE5pMHdPQT09IDUzODg4NiAyMDE2LTA4LTAxIDEzOjM2OjU1CnxNakF4Tmkwd09BPT0gNTM4ODkxIDIwMTYtMDgtMDEgMTM6Mzg6NTUKfE1qQXhOaTB3T0E9PSA1Mzg4OTYgMjAxNi0wOC0wMSAxMzo0MDo1NQp8TWpBeE5pMHdPQT09IDUzODkwMSAyMDE2LTA4LTAxIDEzOjQyOjU1CnxNakF4Tmkwd09BPT0gNTM4OTA2IDIwMTYtMDgtMDEgMTM6NDQ6NTUKfE1qQXhOaTB3T0E9PSA1Mzg5MTEgMjAxNi0wOC0wMSAxMzo0Njo1NQp8TWpBeE5pMHdPQT09IDUzODkxNiAyMDE2LTA4LTAxIDEzOjQ4OjU1CnxNakF4Tmkwd09BPT0gNTM4OTIxIDIwMTYtMDgtMDEgMTM6NTA6NTUKfE1qQXhOaTB3T0E9PSA1Mzg5MjYgMjAxNi0wOC0wMSAxMzo1Mjo1NQp8TWpBeE5pMHdPQT09IDUzODkzMSAyMDE2LTA4LTAxIDEzOjU0OjU1CnxNakF4Tmkwd09BPT0gNTM4OTM2IDIwMTYtMDgtMDEgMTM6NTY6NTUKfE1qQXhOaTB3T0E9PSA1Mzg5NDEgMjAxNi0wOC0wMSAxMzo1ODo1NQp8TWpBeE5pMHdPQT09IDUzODk0NiAyMDE2LTA4LTAxIDE0OjAwOjU1CnxNakF4Tmkwd09BPT0gNTM4OTUxIDIwMTYtMDgtMDEgMTQ6MDI6NTUKfE1qQXhOaTB3T0E9PSA1Mzg5NTYgMjAxNi0wOC0wMSAxNDowNDo1NQp8TWpBeE5pMHdPQT09IDUzODk2MSAyMDE2LTA4LTAxIDE0OjA2OjU1CnxNakF4Tmkwd09BPT0gNTM4OTY2IDIwMTYtMDgtMDEgMTQ6MDg6NTUKfE1qQXhOaTB3T0E9PSA1Mzg5NjkgMjAxNi0wOC0wMSAxNDoxMDozNQp8TWpBeE5pMHdPQT09IDUzODk3MCAyMDE2LTA4LTAxIDE0OjEyOjE1CnxNakF4Tmkwd09BPT0gNTM4OTcxIDIwMTYtMDgtMDEgMTQ6MTQ6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5NzIgMjAxNi0wOC0wMSAxNDoxODoxNQp8TWpBeE5pMHdPQT09IDUzODk3MyAyMDE2LTA4LTAxIDE0OjIyOjE1CnxNakF4Tmkwd09BPT0gNTM4OTc0IDIwMTYtMDgtMDEgMTQ6MjQ6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5NzUgMjAxNi0wOC0wMSAxNDoyODoxNQp8TWpBeE5pMHdPQT09IDUzODk3NiAyMDE2LTA4LTAxIDE0OjMwOjE1CnxNakF4Tmkwd09BPT0gNTM4OTc3IDIwMTYtMDgtMDEgMTQ6MzQ6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5NzggMjAxNi0wOC0wMSAxNDo0MDoxNQp8TWpBeE5pMHdPQT09IDUzODk3OSAyMDE2LTA4LTAxIDE0OjQyOjE1CnxNakF4Tmkwd09BPT0gNTM4OTgwIDIwMTYtMDgtMDEgMTQ6NDY6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5ODEgMjAxNi0wOC0wMSAxNDo0ODoxNQp8TWpBeE5pMHdPQT09IDUzODk4MiAyMDE2LTA4LTAxIDE0OjU0OjE1CnxNakF4Tmkwd09BPT0gNTM4OTgzIDIwMTYtMDgtMDEgMTQ6NTY6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5ODQgMjAxNi0wOC0wMSAxNTowMDoxNQp8TWpBeE5pMHdPQT09IDUzODk4NSAyMDE2LTA4LTAxIDE1OjAyOjE1CnxNakF4Tmkwd09BPT0gNTM4OTg2IDIwMTYtMDgtMDEgMTU6MDY6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5ODcgMjAxNi0wOC0wMSAxNToxMDoxNQp8TWpBeE5pMHdPQT09IDUzODk4OCAyMDE2LTA4LTAxIDE1OjE0OjE1CnxNakF4Tmkwd09BPT0gNTM4OTg5IDIwMTYtMDgtMDEgMTU6MTY6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5OTAgMjAxNi0wOC0wMSAxNToyMDoxNQp8TWpBeE5pMHdPQT09IDUzODk5MSAyMDE2LTA4LTAxIDE1OjI0OjE1CnxNakF4Tmkwd09BPT0gNTM4OTkyIDIwMTYtMDgtMDEgMTU6MjY6MTUKfE1qQXhOaTB3T0E9PSA1Mzg5OTMgMjAxNi0wOC0wMSAxNTozMDoxNQp8TWpBeE5pMHdPQT09IDUzODk5NCAyMDE2LTA4LTAxIDE1OjM0OjE1CnxNakF4Tmkwd09BPT0gNTM5MDI5IDIwMTYtMDgtMDEgMTc6MzY6MTQKfE1qQXhOaTB3T0E9PSA1MzkwMzAgMjAxNi0wOC0wMSAxNzozODoxNQp8TWpBeE5pMHdPQT09IDUzOTAzMSAyMDE2LTA4LTAxIDE3OjQwOjE1CnxNakF4Tmkwd09BPT0gNTM5MDM0IDIwMTYtMDgtMDEgMTc6NDI6MzUKfE1qQXhOaTB3T0E9PSA1MzkwMzcgMjAxNi0wOC0wMSAxNzo0MzozNQp8TWpBeE5pMHdPQT09IDUzOTA0NCAyMDE2LTA4LTAxIDE3OjQ1OjM0CnxNakF4Tmkwd09BPT0gNTM5MDUwIDIwMTYtMDgtMDEgMTc6NDc6MzUKfE1qQXhOaTB3T0E9PSA1MzkwNTcgMjAxNi0wOC0wMSAxNzo0OTozNQp8TWpBeE5pMHdPQT09IDUzOTA2NCAyMDE2LTA4LTAxIDE3OjUxOjM1CnxNakF4Tmkwd09BPT0gNTM5MDcxIDIwMTYtMDgtMDEgMTc6NTM6MzUKfE1qQXhOaTB3T0E9PSA1MzkwNzcgMjAxNi0wOC0wMSAxNzo1NTozNQp8TWpBeE5pMHdPQT09IDUzOTA4NCAyMDE2LTA4LTAxIDE3OjU3OjM1CnxNakF4Tmkwd09BPT0gNTM5MDkxIDIwMTYtMDgtMDEgMTc6NTk6MzUKfE1qQXhOaTB3T0E9PSA1MzkwOTcgMjAxNi0wOC0wMSAxODowMTozNQp8TWpBeE5pMHdPQT09IDUzOTEwNCAyMDE2LTA4LTAxIDE4OjAzOjM1CnxNakF4Tmkwd09BPT0gNTM5MTExIDIwMTYtMDgtMDEgMTg6MDU6MzUKfE1qQXhOaTB3T0E9PSA1MzkxMTcgMjAxNi0wOC0wMSAxODowNzozNQp8TWpBeE5pMHdPQT09IDUzOTEyNCAyMDE2LTA4LTAxIDE4OjA5OjM1CnxNakF4Tmkwd09BPT0gNTM5MTMwIDIwMTYtMDgtMDEgMTg6MTE6MzUKfE1qQXhOaTB3T0E9PSA1MzkxMzMgMjAxNi0wOC0wMSAxODoxMjozNQp8TWpBeE5pMHdPQT09IDUzOTEzNiAyMDE2LTA4LTAxIDE4OjEzOjM1CnxNakF4Tmkwd09BPT0gNTM5MTQzIDIwMTYtMDgtMDEgMTg6MTU6MzUKfE1qQXhOaTB3T0E9PSA1MzkxNDkgMjAxNi0wOC0wMSAxODoxNzozNQp8TWpBeE5pMHdPQT09IDUzOTE1MCAyMDE2LTA4LTAxIDE4OjE3OjQ1CnxNakF4Tmkwd09BPT0gNTM5MTU0IDIwMTYtMDgtMDEgMTg6MTk6MDUKfE1qQXhOaTB3T0E9PSA1MzkxNTcgMjAxNi0wOC0wMSAxODoyMDowNQp8TWpBeE5pMHdPQT09IDUzOTE2NCAyMDE2LTA4LTAxIDE4OjIyOjA1CnxNakF4Tmkwd09BPT0gNTM5MTcwIDIwMTYtMDgtMDEgMTg6MjQ6MDUKfE1qQXhOaTB3T0E9PSA1MzkxNzMgMjAxNi0wOC0wMSAxODoyNDo1NQp8TWpBeE5pMHdPQT09IDUzOTE3NiAyMDE2LTA4LTAxIDE4OjI1OjU1CnxNakF4Tmkwd09BPT0gNTM5MTgyIDIwMTYtMDgtMDEgMTg6Mjc6NTUKfE1qQXhOaTB3T0E9PSA1MzkxODMgMjAxNi0wOC0wMSAxODoyODoyNQp8TWpBeE5pMHdPQT09IDUzOTE4NyAyMDE2LTA4LTAxIDE4OjI5OjI1CnxNakF4Tmkwd09BPT0gNTM5MTkzIDIwMTYtMDgtMDEgMTg6MzE6MjUKfE1qQXhOaTB3T0E9PSA1MzkxOTYgMjAxNi0wOC0wMSAxODozMjoyNQp8TWpBeE5pMHdPQT09IDUzOTIwMCAyMDE2LTA4LTAxIDE4OjMzOjM1CnxNakF4Tmkwd09BPT0gNTM5MjA2IDIwMTYtMDgtMDEgMTg6MzU6MzUKfE1qQXhOaTB3T0E9PSA1MzkyMDcgMjAxNi0wOC0wMSAxODozNTo1NQp8TWpBeE5pMHdPQT09IDUzOTIxMyAyMDE2LTA4LTAxIDE4OjM3OjU1CnxNakF4Tmkwd09BPT0gNTM5MjE1IDIwMTYtMDgtMDEgMTg6Mzg6MzUKfE1qQXhOaTB3T0E9PSA1MzkyMTkgMjAxNi0wOC0wMSAxODozOTozNQp8TWpBeE5pMHdPQT09IDUzOTIyNSAyMDE2LTA4LTAxIDE4OjQxOjM1CnxNakF4Tmkwd09BPT0gNTM5MjMxIDIwMTYtMDgtMDEgMTg6NDM6MzUKfE1qQXhOaTB3T0E9PSA1MzkyMzcgMjAxNi0wOC0wMSAxODo0NTozNQp8TWpBeE5pMHdPQT09IDUzOTI0MiAyMDE2LTA4LTAxIDE4OjQ3OjE1CnxNakF4Tmkwd09BPT0gNTM5MjQ2IDIwMTYtMDgtMDEgMTg6NDg6MTUKfE1qQXhOaTB3T0E9PSA1MzkyNTIgMjAxNi0wOC0wMSAxODo1MDoxNQp8TWpBeE5pMHdPQT09IDUzOTI1OCAyMDE2LTA4LTAxIDE4OjUyOjE1CnxNakF4Tmkwd09BPT0gNTM5MjY0IDIwMTYtMDgtMDEgMTg6NTQ6MTUKfE1qQXhOaTB3T0E9PSA1MzkyNzEgMjAxNi0wOC0wMSAxODo1NjoxNQp8TWpBeE5pMHdPQT09IDUzOTI3MyAyMDE2LTA4LTAxIDE4OjU2OjU1CnxNakF4Tmkwd09BPT0gNTM5Mjc2IDIwMTYtMDgtMDEgMTg6NTc6NTUKfE1qQXhOaTB3T0E9PSA1MzkyODIgMjAxNi0wOC0wMSAxODo1OTo1NQp8TWpBeE5pMHdPQT09IDUzOTI4NSAyMDE2LTA4LTAxIDE5OjAxOjA1CnxNakF4Tmkwd09BPT0gNTM5Mjg4IDIwMTYtMDgtMDEgMTk6MDI6MDUKfE1qQXhOaTB3T0E9PSA1MzkyOTUgMjAxNi0wOC0wMSAxOTowNDowNQp8TWpBeE5pMHdPQT09IDUzOTMwMSAyMDE2LTA4LTAxIDE5OjA2OjA1CnxNakF4Tmkwd09BPT0gNTM5MzA3IDIwMTYtMDgtMDEgMTk6MDg6MDUKfE1qQXhOaTB3T0E9PSA1MzkzMDggMjAxNi0wOC0wMSAxOTowODoyNQp8TWpBeE5pMHdPQT09IDUzOTMxMSAyMDE2LTA4LTAxIDE5OjA5OjI1CnxNakF4Tmkwd09BPT0gNTM5MzE3IDIwMTYtMDgtMDEgMTk6MTE6MjUKfE1qQXhOaTB3T0E9PSA1MzkzMjIgMjAxNi0wOC0wMSAxOToxMjo1NQp8TWpBeE5pMHdPQT09IDUzOTMyOCAyMDE2LTA4LTAxIDE5OjE0OjU1CnxNakF4Tmkwd09BPT0gNTM5MzMwIDIwMTYtMDgtMDEgMTk6MTU6MzUKfE1qQXhOaTB3T0E9PSA1MzkzMzMgMjAxNi0wOC0wMSAxOToxNjozNQp8TWpBeE5pMHdPQT09IDUzOTMzOSAyMDE2LTA4LTAxIDE5OjE4OjM1CnxNakF4Tmkwd09BPT0gNTM5MzQyIDIwMTYtMDgtMDEgMTk6MTk6MzUKfE1qQXhOaTB3T0E9PSA1MzkzNDUgMjAxNi0wOC0wMSAxOToyMDo0NQp8TWpBeE5pMHdPQT09IDUzOTM1MiAyMDE2LTA4LTAxIDE5OjIyOjQ1CnxNakF4Tmkwd09BPT0gNTM5MzU0IDIwMTYtMDgtMDEgMTk6MjM6MjUKfE1qQXhOaTB3T0E9PSA1MzkzNTcgMjAxNi0wOC0wMSAxOToyNDoyNQp8TWpBeE5pMHdPQT09IDUzOTM2MSAyMDE2LTA4LTAxIDE5OjI1OjQ1CnxNakF4Tmkwd09BPT0gNTM5MzY0IDIwMTYtMDgtMDEgMTk6MjY6NDUKfE1qQXhOaTB3T0E9PSA1MzkzNzcgMjAxNi0wOC0wMSAxOTozMDo0NQp8TWpBeE5pMHdPQT09IDUzOTM4MyAyMDE2LTA4LTAxIDE5OjMyOjQ1CnxNakF4Tmkwd09BPT0gNTM5Mzg5IDIwMTYtMDgtMDEgMTk6MzQ6NDUKfE1qQXhOaTB3T0E9PSA1MzkzOTUgMjAxNi0wOC0wMSAxOTozNjo0NQp8TWpBeE5pMHdPQT09IDUzOTQwMSAyMDE2LTA4LTAxIDE5OjM4OjQ1CnxNakF4Tmkwd09BPT0gNTM5NDA4IDIwMTYtMDgtMDEgMTk6NDA6NDUKfE1qQXhOaTB3T0E9PSA1Mzk0MTQgMjAxNi0wOC0wMSAxOTo0Mjo0NQp8TWpBeE5pMHdPQT09IDUzOTQxNiAyMDE2LTA4LTAxIDE5OjQzOjM1CnxNakF4Tmkwd09BPT0gNTM5NDg4IDIwMTYtMDgtMDEgMjE6NDY6MDUKfE1qQXhOaTB3T0E9PSA1Mzk0ODkgMjAxNi0wOC0wMSAyMTo1MDowNQp8TWpBeE5pMHdPQT09IDUzOTQ5MCAyMDE2LTA4LTAxIDIxOjU0OjA1CnxNakF4Tmkwd09BPT0gNTM5NDkxIDIwMTYtMDgtMDEgMjE6NTg6MDUKfE1qQXhOaTB3T0E9PSA1Mzk0OTIgMjAxNi0wOC0wMSAyMjowMjowNQp8TWpBeE5pMHdPQT09IDUzOTQ5MyAyMDE2LTA4LTAxIDIyOjA4OjA1CnxNakF4Tmkwd09BPT0gNTM5NDk0IDIwMTYtMDgtMDEgMjI6MTI6MDUKfE1qQXhOaTB3T0E9PSA1Mzk0OTUgMjAxNi0wOC0wMSAyMjoxNjowNQp8TWpBeE5pMHdPQT09IDUzOTQ5NiAyMDE2LTA4LTAxIDIyOjIwOjA1CnxNakF4Tmkwd09BPT0gNTM5NDk3IDIwMTYtMDgtMDEgMjI6MjQ6MDUKfE1qQXhOaTB3T0E9PSA1Mzk0OTggMjAxNi0wOC0wMSAyMjoyODowNQp8TWpBeE5pMHdPQT09IDUzOTQ5OSAyMDE2LTA4LTAxIDIyOjMyOjA1CnxNakF4Tmkwd09BPT0gNTM5NTAwIDIwMTYtMDgtMDEgMjI6MzY6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MDEgMjAxNi0wOC0wMSAyMjo0MDowNQp8TWpBeE5pMHdPQT09IDUzOTUwMiAyMDE2LTA4LTAxIDIyOjQ0OjA1CnxNakF4Tmkwd09BPT0gNTM5NTAzIDIwMTYtMDgtMDEgMjI6NTA6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MDQgMjAxNi0wOC0wMSAyMjo1NDowNQp8TWpBeE5pMHdPQT09IDUzOTUwNSAyMDE2LTA4LTAxIDIyOjU4OjA1CnxNakF4Tmkwd09BPT0gNTM5NTA2IDIwMTYtMDgtMDEgMjM6MDI6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MDcgMjAxNi0wOC0wMSAyMzowNjowNQp8TWpBeE5pMHdPQT09IDUzOTUwOCAyMDE2LTA4LTAxIDIzOjEyOjA1CnxNakF4Tmkwd09BPT0gNTM5NTA5IDIwMTYtMDgtMDEgMjM6MTY6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MTAgMjAxNi0wOC0wMSAyMzoyMDowNQp8TWpBeE5pMHdPQT09IDUzOTUxMSAyMDE2LTA4LTAxIDIzOjI0OjA1CnxNakF4Tmkwd09BPT0gNTM5NTEyIDIwMTYtMDgtMDEgMjM6MzA6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MTMgMjAxNi0wOC0wMSAyMzozNDowNQp8TWpBeE5pMHdPQT09IDUzOTUxNCAyMDE2LTA4LTAxIDIzOjM4OjA1CnxNakF4Tmkwd09BPT0gNTM5NTE1IDIwMTYtMDgtMDEgMjM6NDI6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MTYgMjAxNi0wOC0wMSAyMzo0NjowNQp8TWpBeE5pMHdPQT09IDUzOTUxNyAyMDE2LTA4LTAxIDIzOjUwOjA1CnxNakF4Tmkwd09BPT0gNTM5NTE4IDIwMTYtMDgtMDEgMjM6NTQ6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MTkgMjAxNi0wOC0wMSAyMzo1ODowNQp8TWpBeE5pMHdPQT09IDUzOTUxOSAyMDE2LTA4LTAyIDAwOjAwOjAwCnxNakF4Tmkwd09BPT0gNTM5NTIwIDIwMTYtMDgtMDIgMDA6MDI6MDYKfE1qQXhOaTB3T0E9PSA1Mzk1MjEgMjAxNi0wOC0wMiAwMDowNjowNQp8TWpBeE5pMHdPQT09IDUzOTUyMiAyMDE2LTA4LTAyIDAwOjEwOjA1CnxNakF4Tmkwd09BPT0gNTM5NTIzIDIwMTYtMDgtMDIgMDA6MTY6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MjQgMjAxNi0wOC0wMiAwMDoyMDowNQp8TWpBeE5pMHdPQT09IDUzOTUyNSAyMDE2LTA4LTAyIDAwOjI0OjA1CnxNakF4Tmkwd09BPT0gNTM5NTI2IDIwMTYtMDgtMDIgMDA6Mjg6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MjcgMjAxNi0wOC0wMiAwMDozNDowNQp8TWpBeE5pMHdPQT09IDUzOTUyOCAyMDE2LTA4LTAyIDAwOjM4OjA1CnxNakF4Tmkwd09BPT0gNTM5NTI5IDIwMTYtMDgtMDIgMDA6NDI6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MzAgMjAxNi0wOC0wMiAwMDo0NjowNQp8TWpBeE5pMHdPQT09IDUzOTUzMSAyMDE2LTA4LTAyIDAwOjUwOjA1CnxNakF4Tmkwd09BPT0gNTM5NTMyIDIwMTYtMDgtMDIgMDA6NTQ6MDUKfE1qQXhOaTB3T0E9PSA1Mzk1MzMgMjAxNi0wOC0wMiAwMTowMDowNQp8TWpBeE5pMHdPQT09IDUzOTUzNCAyMDE2LTA4LTAyIDA2OjAyOjM1CnxNakF4Tmkwd09BPT0gNTM5NTM1IDIwMTYtMDgtMDIgMDY6MDQ6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1MzYgMjAxNi0wOC0wMiAwNjowODo0NQp8TWpBeE5pMHdPQT09IDUzOTUzNyAyMDE2LTA4LTAyIDA2OjE0OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTM4IDIwMTYtMDgtMDIgMDY6MTY6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1MzkgMjAxNi0wOC0wMiAwNjoyMDo0NQp8TWpBeE5pMHdPQT09IDUzOTU0MCAyMDE2LTA4LTAyIDA2OjI2OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTQxIDIwMTYtMDgtMDIgMDY6MzI6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NDIgMjAxNi0wOC0wMiAwNjozNDo0NQp8TWpBeE5pMHdPQT09IDUzOTU0MyAyMDE2LTA4LTAyIDA2OjM4OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTQ0IDIwMTYtMDgtMDIgMDY6NDI6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NDUgMjAxNi0wOC0wMiAwNjo0Njo0NQp8TWpBeE5pMHdPQT09IDUzOTU0NiAyMDE2LTA4LTAyIDA2OjUwOjQ1CnxNakF4Tmkwd09BPT0gNTM5NTQ3IDIwMTYtMDgtMDIgMDY6NTQ6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NDggMjAxNi0wOC0wMiAwNzowMDo0NQp8TWpBeE5pMHdPQT09IDUzOTU0OSAyMDE2LTA4LTAyIDA3OjA0OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTUwIDIwMTYtMDgtMDIgMDc6MDg6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NTEgMjAxNi0wOC0wMiAwNzoxMjo0NQp8TWpBeE5pMHdPQT09IDUzOTU1MiAyMDE2LTA4LTAyIDA3OjE4OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTUzIDIwMTYtMDgtMDIgMDc6MjI6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NTQgMjAxNi0wOC0wMiAwNzoyNjo0Ngp8TWpBeE5pMHdPQT09IDUzOTU1NSAyMDE2LTA4LTAyIDA3OjMwOjQ1CnxNakF4Tmkwd09BPT0gNTM5NTU2IDIwMTYtMDgtMDIgMDc6MzQ6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NTcgMjAxNi0wOC0wMiAwNzo0MDo0NQp8TWpBeE5pMHdPQT09IDUzOTU1OCAyMDE2LTA4LTAyIDA3OjQ0OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTU5IDIwMTYtMDgtMDIgMDc6NDg6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NjAgMjAxNi0wOC0wMiAwNzo1Mjo0NQp8TWpBeE5pMHdPQT09IDUzOTU2MSAyMDE2LTA4LTAyIDA3OjU2OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTYyIDIwMTYtMDgtMDIgMDg6MDA6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NjMgMjAxNi0wOC0wMiAwODowNDo0NQp8TWpBeE5pMHdPQT09IDUzOTU2NCAyMDE2LTA4LTAyIDA4OjA4OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTY1IDIwMTYtMDgtMDIgMDg6MTI6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NjYgMjAxNi0wOC0wMiAwODoxNjo0NQp8TWpBeE5pMHdPQT09IDUzOTU2NyAyMDE2LTA4LTAyIDA4OjIyOjQ1CnxNakF4Tmkwd09BPT0gNTM5NTY4IDIwMTYtMDgtMDIgMDg6MjY6NDUKfE1qQXhOaTB3T0E9PSA1Mzk1NjkgMjAxNi0wOC0wMiAwODozMDo0NQp8TWpBeE5pMHdPQT09IDUzOTU3MCAyMDE2LTA4LTAyIDA4OjM0OjQ1CnxNakF4Tmkwd09BPT0gNTM5NTcxIDIwMTYtMDgtMDIgMDg6Mzg6NDUKfE1qQXhOaTB3T0E9PSA1Mzk2NTUgMjAxNi0wOC0wMiAxMDo0MjoyNQp8TWpBeE5pMHdPQT09IDUzOTY2MSAyMDE2LTA4LTAyIDEwOjQ0OjI1CnxNakF4Tmkwd09BPT0gNTM5NjY3IDIwMTYtMDgtMDIgMTA6NDY6MjUKfE1qQXhOaTB3T0E9PSA1Mzk2NzMgMjAxNi0wOC0wMiAxMDo0ODowNQp8TWpBeE5pMHdPQT09IDUzOTY3NiAyMDE2LTA4LTAyIDEwOjQ5OjA1CnxNakF4Tmkwd09BPT0gNTM5NjgxIDIwMTYtMDgtMDIgMTA6NTA6MzUKfE1qQXhOaTB3T0E9PSA1Mzk2ODQgMjAxNi0wOC0wMiAxMDo1MTozNQp8TWpBeE5pMHdPQT09IDUzOTY5MSAyMDE2LTA4LTAyIDEwOjUzOjM1CnxNakF4Tmkwd09BPT0gNTQwMDE1IDIwMTYtMDgtMDIgMTI6NTU6MTUKfE1qQXhOaTB3T0E9PSA1NDAwMjAgMjAxNi0wOC0wMiAxMjo1NzoxNQp8TWpBeE5pMHdPQT09IDU0MDAyNSAyMDE2LTA4LTAyIDEyOjU5OjE1CnxNakF4Tmkwd09BPT0gNTQwMDMwIDIwMTYtMDgtMDIgMTM6MDE6MTUKfE1qQXhOaTB3T0E9PSA1NDAwMzUgMjAxNi0wOC0wMiAxMzowMzoxNQp8TWpBeE5pMHdPQT09IDU0MDA0MCAyMDE2LTA4LTAyIDEzOjA1OjE1CnxNakF4Tmkwd09BPT0gNTQwMDQ1IDIwMTYtMDgtMDIgMTM6MDc6MTUKfE1qQXhOaTB3T0E9PSA1NDAwNTAgMjAxNi0wOC0wMiAxMzowOToxNQp8TWpBeE5pMHdPQT09IDU0MDA1NSAyMDE2LTA4LTAyIDEzOjExOjE1CnxNakF4Tmkwd09BPT0gNTQwMDYwIDIwMTYtMDgtMDIgMTM6MTM6MTUKfE1qQXhOaTB3T0E9PSA1NDAwNjUgMjAxNi0wOC0wMiAxMzoxNToxNQp8TWpBeE5pMHdPQT09IDU0MDA3MCAyMDE2LTA4LTAyIDEzOjE3OjE1CnxNakF4Tmkwd09BPT0gNTQwMDc1IDIwMTYtMDgtMDIgMTM6MTk6MTUKfE1qQXhOaTB3T0E9PSA1NDAwODAgMjAxNi0wOC0wMiAxMzoyMToxNQp8TWpBeE5pMHdPQT09IDU0MDA4NSAyMDE2LTA4LTAyIDEzOjIzOjE1CnxNakF4Tmkwd09BPT0gNTQwMDkwIDIwMTYtMDgtMDIgMTM6MjU6MTUKfE1qQXhOaTB3T0E9PSA1NDAwOTUgMjAxNi0wOC0wMiAxMzoyNzoxNQp8TWpBeE5pMHdPQT09IDU0MDEwMCAyMDE2LTA4LTAyIDEzOjI5OjE1CnxNakF4Tmkwd09BPT0gNTQwMTA1IDIwMTYtMDgtMDIgMTM6MzE6MTUKfE1qQXhOaTB3T0E9PSA1NDAyMjkgMjAxNi0wOC0wMiAxNDoyMToxNQp8TWpBeE5pMHdPQT09IDU0MDIzNCAyMDE2LTA4LTAyIDE0OjIzOjE1CnxNakF4Tmkwd09BPT0gNTQwMjM5IDIwMTYtMDgtMDIgMTQ6MjU6MTUKfE1qQXhOaTB3T0E9PSA1NDAyNDQgMjAxNi0wOC0wMiAxNDoyNzoxNQp8TWpBeE5pMHdPQT09IDU0MDI0OSAyMDE2LTA4LTAyIDE0OjI5OjE1CnxNakF4Tmkwd09BPT0gNTQwMjU0IDIwMTYtMDgtMDIgMTQ6MzE6MTUKfE1qQXhOaTB3T0E9PSA1NDAyNTkgMjAxNi0wOC0wMiAxNDozMzoxNQp8TWpBeE5pMHdPQT09IDU0MDI2NCAyMDE2LTA4LTAyIDE0OjM1OjE1CnxNakF4Tmkwd09BPT0gNTQwMjY5IDIwMTYtMDgtMDIgMTQ6Mzc6MTUKfE1qQXhOaTB3T0E9PSA1NDAyNzQgMjAxNi0wOC0wMiAxNDozOToxNQp8TWpBeE5pMHdPQT09IDU0MDI3OSAyMDE2LTA4LTAyIDE0OjQxOjE1CnxNakF4Tmkwd09BPT0gNTQwMjgzIDIwMTYtMDgtMDIgMTQ6NDM6MTUKfE1qQXhOaTB3T0E9PSA1NDAyODggMjAxNi0wOC0wMiAxNDo0NToxNQp8TWpBeE5pMHdPQT09IDU0MDI5MyAyMDE2LTA4LTAyIDE0OjQ3OjE1CnxNakF4Tmkwd09BPT0gNTQwMjk4IDIwMTYtMDgtMDIgMTQ6NDk6MTUKfE1qQXhOaTB3T0E9PSA1NDAzMDMgMjAxNi0wOC0wMiAxNDo1MToxNQp8TWpBeE5pMHdPQT09IDU0MDMwOCAyMDE2LTA4LTAyIDE0OjUzOjE1CnxNakF4Tmkwd09BPT0gNTQwMzEzIDIwMTYtMDgtMDIgMTQ6NTU6MTUKfE1qQXhOaTB3T0E9PSA1NDAzMTggMjAxNi0wOC0wMiAxNDo1NzoxNQp8TWpBeE5pMHdPQT09IDU0MDMyMyAyMDE2LTA4LTAyIDE0OjU5OjE1CnxNakF4Tmkwd09BPT0gNTQwMzI4IDIwMTYtMDgtMDIgMTU6MDE6MTUKfE1qQXhOaTB3T0E9PSA1NDAzMzMgMjAxNi0wOC0wMiAxNTowMzoxNQp8TWpBeE5pMHdPQT09IDU0MDMzOCAyMDE2LTA4LTAyIDE1OjA1OjE1CnxNakF4Tmkwd09BPT0gNTQwMzQzIDIwMTYtMDgtMDIgMTU6MDc6MTUKfE1qQXhOaTB3T0E9PSA1NDAzNDggMjAxNi0wOC0wMiAxNTowOToxNQp8TWpBeE5pMHdPQT09IDU0MDM1MyAyMDE2LTA4LTAyIDE1OjExOjE1CnxNakF4Tmkwd09BPT0gNTQwMzU4IDIwMTYtMDgtMDIgMTU6MTM6MTUKfE1qQXhOaTB3T0E9PSA1NDAzNjMgMjAxNi0wOC0wMiAxNToxNToxNQp8TWpBeE5pMHdPQT09IDU0MDM2OCAyMDE2LTA4LTAyIDE1OjE3OjE1CnxNakF4Tmkwd09BPT0gNTQwMzczIDIwMTYtMDgtMDIgMTU6MTk6MTUKfE1qQXhOaTB3T0E9PSA1NDAzNzggMjAxNi0wOC0wMiAxNToyMToxNQp8TWpBeE5pMHdPQT09IDU0MDM4MiAyMDE2LTA4LTAyIDE1OjIzOjE1CnxNakF4Tmkwd09BPT0gNTQwMzg3IDIwMTYtMDgtMDIgMTU6MjU6MTUKfE1qQXhOaTB3T0E9PSA1NDAzOTIgMjAxNi0wOC0wMiAxNToyNzoxNQp8TWpBeE5pMHdPQT09IDU0MDM5NyAyMDE2LTA4LTAyIDE1OjI5OjE1CnxNakF4Tmkwd09BPT0gNTQwNDAyIDIwMTYtMDgtMDIgMTU6MzE6MTUKfE1qQXhOaTB3T0E9PSA1NDA0MDcgMjAxNi0wOC0wMiAxNTozMzoxNQp8TWpBeE5pMHdPQT09IDU0MDQxMiAyMDE2LTA4LTAyIDE1OjM1OjE1CnxNakF4Tmkwd09BPT0gNTQwNDE3IDIwMTYtMDgtMDIgMTU6Mzc6MTUKfE1qQXhOaTB3T0E9PSA1NDA0MjIgMjAxNi0wOC0wMiAxNTozOToxNQp8TWpBeE5pMHdPQT09IDU0MDQyNyAyMDE2LTA4LTAyIDE1OjQxOjE1CnxNakF4Tmkwd09BPT0gNTQwNDMyIDIwMTYtMDgtMDIgMTU6NDM6MTUKfE1qQXhOaTB3T0E9PSA1NDA0MzcgMjAxNi0wOC0wMiAxNTo0NToxNQp8TWpBeE5pMHdPQT09IDU0MDQ0MiAyMDE2LTA4LTAyIDE1OjQ3OjE1CnxNakF4Tmkwd09BPT0gNTQwNDQ3IDIwMTYtMDgtMDIgMTU6NDk6MTUKfE1qQXhOaTB3T0E9PSA1NDA0NTIgMjAxNi0wOC0wMiAxNTo1MToxNQp8TWpBeE5pMHdPQT09IDU0MDQ1NyAyMDE2LTA4LTAyIDE1OjUzOjE1CnxNakF4Tmkwd09BPT0gNTQwNDYyIDIwMTYtMDgtMDIgMTU6NTU6MTUKfE1qQXhOaTB3T0E9PSA1NDA0NjcgMjAxNi0wOC0wMiAxNTo1NzoxNQp8TWpBeE5pMHdPQT09IDU0MDQ3MiAyMDE2LTA4LTAyIDE1OjU5OjE1CnxNakF4Tmkwd09BPT0gNTQwNDc3IDIwMTYtMDgtMDIgMTY6MDE6MTUKfE1qQXhOaTB3T0E9PSA1NDA0ODIgMjAxNi0wOC0wMiAxNjowMzoxNQp8TWpBeE5pMHdPQT09IDU0MDQ4NyAyMDE2LTA4LTAyIDE2OjA1OjE1CnxNakF4Tmkwd09BPT0gNTQwNDkyIDIwMTYtMDgtMDIgMTY6MDc6MTUKfE1qQXhOaTB3T0E9PSA1NDA0OTcgMjAxNi0wOC0wMiAxNjowOToxNQp8TWpBeE5pMHdPQT09IDU0MDUwMiAyMDE2LTA4LTAyIDE2OjExOjE1CnxNakF4Tmkwd09BPT0gNTQwNTA3IDIwMTYtMDgtMDIgMTY6MTM6MTUKfE1qQXhOaTB3T0E9PSA1NDA1MTIgMjAxNi0wOC0wMiAxNjoxNToxNQp8TWpBeE5pMHdPQT09IDU0MDUxNyAyMDE2LTA4LTAyIDE2OjE3OjE1CnxNakF4Tmkwd09BPT0gNTQwNTIyIDIwMTYtMDgtMDIgMTY6MTk6MTUKfE1qQXhOaTB3T0E9PSA1NDA1MjcgMjAxNi0wOC0wMiAxNjoyMToxNQp8TWpBeE5pMHdPQT09IDU0MDg5NiAyMDE2LTA4LTAyIDE4OjI0OjA1CnxNakF4Tmkwd09BPT0gNTQwOTAxIDIwMTYtMDgtMDIgMTg6MjY6MDUKfE1qQXhOaTB3T0E9PSA1NDA5MTQgMjAxNi0wOC0wMiAxODozMDowNQp8TWpBeE5pMHdPQT09IDU0MDkyMCAyMDE2LTA4LTAyIDE4OjMyOjA2CnxNakF4Tmkwd09BPT0gNTQwOTI2IDIwMTYtMDgtMDIgMTg6MzQ6MDUKfE1qQXhOaTB3T0E9PSA1NDA5MzIgMjAxNi0wOC0wMiAxODozNjowNQp8TWpBeE5pMHdPQT09IDU0MDkzOCAyMDE2LTA4LTAyIDE4OjM4OjA1CnxNakF4Tmkwd09BPT0gNTQwOTQ0IDIwMTYtMDgtMDIgMTg6NDA6MDUKfE1qQXhOaTB3T0E9PSA1NDA5NTAgMjAxNi0wOC0wMiAxODo0MjowNwp8TWpBeE5pMHdPQT09IDU0MDk1NiAyMDE2LTA4LTAyIDE4OjQ0OjA1CnxNakF4Tmkwd09BPT0gNTQwOTYyIDIwMTYtMDgtMDIgMTg6NDY6MDUKfE1qQXhOaTB3T0E9PSA1NDA5NjkgMjAxNi0wOC0wMiAxODo0ODowNQp8TWpBeE5pMHdPQT09IDU0MDk3NSAyMDE2LTA4LTAyIDE4OjUwOjA1CnxNakF4Tmkwd09BPT0gNTQwOTgxIDIwMTYtMDgtMDIgMTg6NTI6MDYKfE1qQXhOaTB3T0E9PSA1NDA5ODcgMjAxNi0wOC0wMiAxODo1NDowNQp8TWpBeE5pMHdPQT09IDU0MDk5MyAyMDE2LTA4LTAyIDE4OjU2OjA1CnxNakF4Tmkwd09BPT0gNTQwOTk5IDIwMTYtMDgtMDIgMTg6NTg6MDUKfE1qQXhOaTB3T0E9PSA1NDEwMDUgMjAxNi0wOC0wMiAxOTowMDowNQp8TWpBeE5pMHdPQT09IDU0MTAxMSAyMDE2LTA4LTAyIDE5OjAyOjA3CnxNakF4Tmkwd09BPT0gNTQxMDE3IDIwMTYtMDgtMDIgMTk6MDQ6MDUKfE1qQXhOaTB3T0E9PSA1NDEwMjMgMjAxNi0wOC0wMiAxOTowNjowNQp8TWpBeE5pMHdPQT09IDU0MTAyOSAyMDE2LTA4LTAyIDE5OjA4OjA1CnxNakF4Tmkwd09BPT0gNTQxMDM1IDIwMTYtMDgtMDIgMTk6MTA6MDUKfE1qQXhOaTB3T0E9PSA1NDEwNDEgMjAxNi0wOC0wMiAxOToxMjowNwp8TWpBeE5pMHdPQT09IDU0MTA0NyAyMDE2LTA4LTAyIDE5OjE0OjA1CnxNakF4Tmkwd09BPT0gNTQxMDUzIDIwMTYtMDgtMDIgMTk6MTY6MDUKfE1qQXhOaTB3T0E9PSA1NDEwNTkgMjAxNi0wOC0wMiAxOToxODowNQp8TWpBeE5pMHdPQT09IDU0MTA2NSAyMDE2LTA4LTAyIDE5OjIwOjA1CnxNakF4Tmkwd09BPT0gNTQxMDcxIDIwMTYtMDgtMDIgMTk6MjI6MDUKfE1qQXhOaTB3T0E9PSA1NDEwNzcgMjAxNi0wOC0wMiAxOToyNDowNQp8TWpBeE5pMHdPQT09IDU0MTA4MiAyMDE2LTA4LTAyIDE5OjI2OjA1CnxNakF4Tmkwd09BPT0gNTQxMDgzIDIwMTYtMDgtMDIgMTk6Mjg6MDUKfE1qQXhOaTB3T0E9PSA1NDEwODQgMjAxNi0wOC0wMiAxOTozMDowNQp8TWpBeE5pMHdPQT09IDU0MTA4NSAyMDE2LTA4LTAyIDE5OjM0OjA1CnxNakF4Tmkwd09BPT0gNTQxMDg2IDIwMTYtMDgtMDIgMTk6MzY6MDUKfE1qQXhOaTB3T0E9PSA1NDEwODcgMjAxNi0wOC0wMiAxOTo0MDowNQp8TWpBeE5pMHdPQT09IDU0MTA4OCAyMDE2LTA4LTAyIDE5OjQ0OjA1CnxNakF4Tmkwd09BPT0gNTQxMDg5IDIwMTYtMDgtMDIgMTk6NDg6MDUKfE1qQXhOaTB3T0E9PSA1NDEwOTAgMjAxNi0wOC0wMiAxOTo1MjowNgp8TWpBeE5pMHdPQT09IDU0MTA5MSAyMDE2LTA4LTAyIDE5OjU0OjA1CnxNakF4Tmkwd09BPT0gNTQxMDkyIDIwMTYtMDgtMDIgMjA6MDA6MDUKfE1qQXhOaTB3T0E9PSA1NDEwOTMgMjAxNi0wOC0wMiAyMDowNDowNQp8TWpBeE5pMHdPQT09IDU0MTA5NCAyMDE2LTA4LTAyIDIwOjA4OjA1CnxNakF4Tmkwd09BPT0gNTQxMDk1IDIwMTYtMDgtMDIgMjA6MTI6MDYKfE1qQXhOaTB3T0E9PSA1NDEwOTYgMjAxNi0wOC0wMiAyMDoxNjowNQp8TWpBeE5pMHdPQT09IDU0MTA5NyAyMDE2LTA4LTAyIDIwOjIyOjA2CnxNakF4Tmkwd09BPT0gNTQxMDk4IDIwMTYtMDgtMDIgMjA6MjY6MDUKfE1qQXhOaTB3T0E9PSA1NDExMjcgMjAxNi0wOC0wMiAyMjozMDowNQp8TWpBeE5pMHdPQT09IDU0MTEyOCAyMDE2LTA4LTAyIDIyOjM0OjA1CnxNakF4Tmkwd09BPT0gNTQxMTI5IDIwMTYtMDgtMDIgMjI6Mzg6MDUKfE1qQXhOaTB3T0E9PSA1NDExMzAgMjAxNi0wOC0wMiAyMjo0MjowNwp8TWpBeE5pMHdPQT09IDU0MTEzMSAyMDE2LTA4LTAyIDIyOjQ2OjA1CnxNakF4Tmkwd09BPT0gNTQxMTM0IDIwMTYtMDgtMDIgMjM6MDI6MDUKfE1qQXhOaTB3T0E9PSA1NDExMzQgMjAxNi0wOC0wMyAwMDowMDowMAp8TWpBeE5pMHdPQT09IDU0MTE1NSAyMDE2LTA4LTAzIDA3OjI2OjExCnxNakF4Tmkwd09BPT0gNTQxMTU2IDIwMTYtMDgtMDMgMDc6MzA6MTEKfE1qQXhOaTB3T0E9PSA1NDExNTcgMjAxNi0wOC0wMyAwNzozNDoxMQp8TWpBeE5pMHdPQT09IDU0MTE1OCAyMDE2LTA4LTAzIDA3OjQwOjExCnxNakF4Tmkwd09BPT0gNTQxMTU5IDIwMTYtMDgtMDMgMDc6NDQ6MTEKfE1qQXhOaTB3T0E9PSA1NDExNjAgMjAxNi0wOC0wMyAwNzo0ODoxMQp8TWpBeE5pMHdPQT09IDU0MTE2MSAyMDE2LTA4LTAzIDA3OjUyOjExCnxNakF4Tmkwd09BPT0gNTQxMTYyIDIwMTYtMDgtMDMgMDc6NTg6MTEKfE1qQXhOaTB3T0E9PSA1NDExNjMgMjAxNi0wOC0wMyAwODowMjoxMQp8TWpBeE5pMHdPQT09IDU0MTE2NCAyMDE2LTA4LTAzIDA4OjA2OjExCnxNakF4Tmkwd09BPT0gNTQxMTY1IDIwMTYtMDgtMDMgMDg6MTA6MTEKfE1qQXhOaTB3T0E9PSA1NDExNjYgMjAxNi0wOC0wMyAwODoxNDoxMQp8TWpBeE5pMHdPQT09IDU0MTE2NyAyMDE2LTA4LTAzIDA4OjIwOjExCnxNakF4Tmkwd09BPT0gNTQxMTY4IDIwMTYtMDgtMDMgMDg6MjQ6MTEKfE1qQXhOaTB3T0E9PSA1NDExNjkgMjAxNi0wOC0wMyAwODoyODoxMQp8TWpBeE5pMHdPQT09IDU0MTE3MCAyMDE2LTA4LTAzIDA4OjMyOjExCnxNakF4Tmkwd09BPT0gNTQxMTcxIDIwMTYtMDgtMDMgMDg6MzY6MTEKfE1qQXhOaTB3T0E9PSA1NDExNzIgMjAxNi0wOC0wMyAwODo0MDoxMQp8TWpBeE5pMHdPQT09IDU0MTE3MyAyMDE2LTA4LTAzIDA4OjQ2OjExCnxNakF4Tmkwd09BPT0gNTQxMTc0IDIwMTYtMDgtMDMgMDg6NTA6MTEKfE1qQXhOaTB3T0E9PSA1NDExNzUgMjAxNi0wOC0wMyAwODo1NDoxMQp8TWpBeE5pMHdPQT09IDU0MTE3NiAyMDE2LTA4LTAzIDA4OjU4OjExCnxNakF4Tmkwd09BPT0gNTQxMTc3IDIwMTYtMDgtMDMgMDk6MDI6MTEKfE1qQXhOaTB3T0E9PSA1NDExNzggMjAxNi0wOC0wMyAwOTowNjoxMQp8TWpBeE5pMHdPQT09IDU0MTE3OSAyMDE2LTA4LTAzIDA5OjEwOjExCnxNakF4Tmkwd09BPT0gNTQxMTgyIDIwMTYtMDgtMDMgMDk6MTQ6MjEKfE1qQXhOaTB3T0E9PSA1NDExODYgMjAxNi0wOC0wMyAwOToxNToyMQp8TWpBeE5pMHdPQT09IDU0MTE5MiAyMDE2LTA4LTAzIDA5OjE3OjIxCnxNakF4Tmkwd09BPT0gNTQxMTk0IDIwMTYtMDgtMDMgMDk6MTg6MDEKfE1qQXhOaTB3T0E9PSA1NDExOTcgMjAxNi0wOC0wMyAwOToxOTowMQp8TWpBeE5pMHdPQT09IDU0MTIwMyAyMDE2LTA4LTAzIDA5OjIwOjMxCnxNakF4Tmkwd09BPT0gNTQxMjA2IDIwMTYtMDgtMDMgMDk6MjE6MzMKfE1qQXhOaTB3T0E9PSA1NDEyMTMgMjAxNi0wOC0wMyAwOToyMzozMQp8TWpBeE5pMHdPQT09IDU0MTIyMCAyMDE2LTA4LTAzIDA5OjI1OjMxCnxNakF4Tmkwd09BPT0gNTQxMjI0IDIwMTYtMDgtMDMgMDk6MjY6NDEKfE1qQXhOaTB3T0E9PSA1NDEyMjcgMjAxNi0wOC0wMyAwOToyNzo0MQp8TWpBeE5pMHdPQT09IDU0MTIzNCAyMDE2LTA4LTAzIDA5OjI5OjQxCnxNakF4Tmkwd09BPT0gNTQxMjM3IDIwMTYtMDgtMDMgMDk6MzA6NTEKfE1qQXhOaTB3T0E9PSA1NDEyNDEgMjAxNi0wOC0wMyAwOTozMTo1MQp8TWpBeE5pMHdPQT09IDU0MTI0NyAyMDE2LTA4LTAzIDA5OjMzOjUxCnxNakF4Tmkwd09BPT0gNTQxMjU0IDIwMTYtMDgtMDMgMDk6MzU6NTEKfE1qQXhOaTB3T0E9PSA1NDEyNjEgMjAxNi0wOC0wMyAwOTozNzo1MQp8TWpBeE5pMHdPQT09IDU0MTI2NSAyMDE2LTA4LTAzIDA5OjM5OjIxCnxNakF4Tmkwd09BPT0gNTQxMjY4IDIwMTYtMDgtMDMgMDk6NDA6MjEKfE1qQXhOaTB3T0E9PSA1NDEyNzIgMjAxNi0wOC0wMyAwOTo0MTozNAp8TWpBeE5pMHdPQT09IDU0MTMzOSAyMDE2LTA4LTAzIDExOjQzOjUxCnxNakF4Tmkwd09BPT0gNTQxMzQwIDIwMTYtMDgtMDMgMTE6NDc6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNDEgMjAxNi0wOC0wMyAxMTo1MTo1MQp8TWpBeE5pMHdPQT09IDU0MTM0MiAyMDE2LTA4LTAzIDExOjU1OjUxCnxNakF4Tmkwd09BPT0gNTQxMzQzIDIwMTYtMDgtMDMgMTE6NTk6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNDQgMjAxNi0wOC0wMyAxMjowMzo1MQp8TWpBeE5pMHdPQT09IDU0MTM0NSAyMDE2LTA4LTAzIDEyOjA3OjUxCnxNakF4Tmkwd09BPT0gNTQxMzQ2IDIwMTYtMDgtMDMgMTI6MTE6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNDcgMjAxNi0wOC0wMyAxMjoxNzo1MQp8TWpBeE5pMHdPQT09IDU0MTM0OCAyMDE2LTA4LTAzIDEyOjIxOjUxCnxNakF4Tmkwd09BPT0gNTQxMzQ5IDIwMTYtMDgtMDMgMTI6MjU6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNTAgMjAxNi0wOC0wMyAxMjoyOTo1MQp8TWpBeE5pMHdPQT09IDU0MTM1MSAyMDE2LTA4LTAzIDEyOjMzOjUxCnxNakF4Tmkwd09BPT0gNTQxMzUyIDIwMTYtMDgtMDMgMTI6Mzc6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNTMgMjAxNi0wOC0wMyAxMjo0Mzo1MQp8TWpBeE5pMHdPQT09IDU0MTM1NCAyMDE2LTA4LTAzIDEyOjQ3OjUxCnxNakF4Tmkwd09BPT0gNTQxMzU1IDIwMTYtMDgtMDMgMTI6NTE6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNTYgMjAxNi0wOC0wMyAxMjo1NTo1MQp8TWpBeE5pMHdPQT09IDU0MTM1NyAyMDE2LTA4LTAzIDEzOjAxOjUxCnxNakF4Tmkwd09BPT0gNTQxMzU4IDIwMTYtMDgtMDMgMTM6MDU6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNTkgMjAxNi0wOC0wMyAxMzowOTo1MQp8TWpBeE5pMHdPQT09IDU0MTM2MCAyMDE2LTA4LTAzIDEzOjEzOjUxCnxNakF4Tmkwd09BPT0gNTQxMzYxIDIwMTYtMDgtMDMgMTM6MTc6NTEKfE1qQXhOaTB3T0E9PSA1NDEzNjIgMjAxNi0wOC0wMyAxMzoyMTo1MQp8TWpBeE5pMHdPQT09IDU0MTM2MyAyMDE2LTA4LTAzIDEzOjI1OjUxCnxNakF4Tmkwd09BPT0gNTQxMzkyIDIwMTYtMDgtMDMgMTU6Mjk6NTEKfE1qQXhOaTB3T0E9PSA1NDEzOTMgMjAxNi0wOC0wMyAxNTozNTo1MQp8TWpBeE5pMHdPQT09IDU0MTM5NCAyMDE2LTA4LTAzIDE1OjM5OjUxCnxNakF4Tmkwd09BPT0gNTQxMzk1IDIwMTYtMDgtMDMgMTU6NDM6NTEKfE1qQXhOaTB3T0E9PSA1NDEzOTYgMjAxNi0wOC0wMyAxNTo0Nzo1MQp8TWpBeE5pMHdPQT09IDU0MTM5NyAyMDE2LTA4LTAzIDE1OjUxOjUxCnxNakF4Tmkwd09BPT0gNTQxMzk4IDIwMTYtMDgtMDMgMTU6NTc6NTEKfE1qQXhOaTB3T0E9PSA1NDEzOTkgMjAxNi0wOC0wMyAxNjowMTo1MQp8TWpBeE5pMHdPQT09IDU0MTQwMCAyMDE2LTA4LTAzIDE2OjA1OjUxCnxNakF4Tmkwd09BPT0gNTQxNDAxIDIwMTYtMDgtMDMgMTY6MDk6NTEKfE1qQXhOaTB3T0E9PSA1NDE0MDIgMjAxNi0wOC0wMyAxNjoxMzo1MQp8TWpBeE5pMHdPQT09IDU0MTQwMyAyMDE2LTA4LTAzIDE2OjE3OjUxCnxNakF4Tmkwd09BPT0gNTQxNDA0IDIwMTYtMDgtMDMgMTY6MjE6NTEKfE1qQXhOaTB3T0E9PSA1NDE0MDUgMjAxNi0wOC0wMyAxNjoyNTo1MQp8TWpBeE5pMHdPQT09IDU0MTQwNiAyMDE2LTA4LTAzIDE2OjI5OjUxCnxNakF4Tmkwd09BPT0gNTQxNDA3IDIwMTYtMDgtMDMgMTY6MzE6NTEKfE1qQXhOaTB3T0E9PSA1NDE0MDkgMjAxNi0wOC0wMyAxNjozNTozMQp8TWpBeE5pMHdPQT09IDU0MTQxNCAyMDE2LTA4LTAzIDE2OjM3OjMxCnxNakF4Tmkwd09BPT0gNTQxNDE5IDIwMTYtMDgtMDMgMTY6Mzk6MzEKfE1qQXhOaTB3T0E9PSA1NDE0MjMgMjAxNi0wOC0wMyAxNjo0MTozNQp8TWpBeE5pMHdPQT09IDU0MTQyOCAyMDE2LTA4LTAzIDE2OjQzOjMxCnxNakF4Tmkwd09BPT0gNTQxNDMzIDIwMTYtMDgtMDMgMTY6NDU6MzEKfE1qQXhOaTB3T0E9PSA1NDE0MzggMjAxNi0wOC0wMyAxNjo0NzozMQp8TWpBeE5pMHdPQT09IDU0MTQ0MyAyMDE2LTA4LTAzIDE2OjQ5OjMxCnxNakF4Tmkwd09BPT0gNTQxNDQ4IDIwMTYtMDgtMDMgMTY6NTE6MzEKfE1qQXhOaTB3T0E9PSA1NDE0NTIgMjAxNi0wOC0wMyAxNjo1MzozMQp8TWpBeE5pMHdPQT09IDU0MTQ1NyAyMDE2LTA4LTAzIDE2OjU1OjMxCnxNakF4Tmkwd09BPT0gNTQxNDYyIDIwMTYtMDgtMDMgMTY6NTc6MzEKfE1qQXhOaTB3T0E9PSA1NDE0NjcgMjAxNi0wOC0wMyAxNjo1OTozMQp8TWpBeE5pMHdPQT09IDU0MTQ3MiAyMDE2LTA4LTAzIDE3OjAxOjM0CnxNakF4Tmkwd09BPT0gNTQxNDc3IDIwMTYtMDgtMDMgMTc6MDM6MzEKfE1qQXhOaTB3T0E9PSA1NDE0ODIgMjAxNi0wOC0wMyAxNzowNTozMQp8TWpBeE5pMHdPQT09IDU0MTQ4NyAyMDE2LTA4LTAzIDE3OjA3OjMxCnxNakF4Tmkwd09BPT0gNTQxNDkyIDIwMTYtMDgtMDMgMTc6MDk6MzEKfE1qQXhOaTB3T0E9PSA1NDE0OTYgMjAxNi0wOC0wMyAxNzoxMTozNQp8TWpBeE5pMHdPQT09IDU0MTUwMiAyMDE2LTA4LTAzIDE3OjEzOjMxCnxNakF4Tmkwd09BPT0gNTQxNTA3IDIwMTYtMDgtMDMgMTc6MTU6MzEKfE1qQXhOaTB3T0E9PSA1NDE1MTEgMjAxNi0wOC0wMyAxNzoxNzozMQp8TWpBeE5pMHdPQT09IDU0MTUxNiAyMDE2LTA4LTAzIDE3OjE5OjMxCnxNakF4Tmkwd09BPT0gNTQxNTIxIDIwMTYtMDgtMDMgMTc6MjE6MzQKfE1qQXhOaTB3T0E9PSA1NDE1MjYgMjAxNi0wOC0wMyAxNzoyMzozMQp8TWpBeE5pMHdPQT09IDU0MTUzMSAyMDE2LTA4LTAzIDE3OjI1OjMxCnxNakF4Tmkwd09BPT0gNTQxNTM2IDIwMTYtMDgtMDMgMTc6Mjc6MzEKfE1qQXhOaTB3T0E9PSA1NDE1NDEgMjAxNi0wOC0wMyAxNzoyOTozMQp8TWpBeE5pMHdPQT09IDU0MTU0NSAyMDE2LTA4LTAzIDE3OjMxOjMxCnxNakF4Tmkwd09BPT0gNTQxNTUwIDIwMTYtMDgtMDMgMTc6MzM6MzEKfE1qQXhOaTB3T0E9PSA1NDE1NTUgMjAxNi0wOC0wMyAxNzozNTozMQp8TWpBeE5pMHdPQT09IDU0MTU2MCAyMDE2LTA4LTAzIDE3OjM3OjMxCnxNakF4Tmkwd09BPT0gNTQxNTY1IDIwMTYtMDgtMDMgMTc6Mzk6MzEKfE1qQXhOaTB3T0E9PSA1NDE1NzAgMjAxNi0wOC0wMyAxNzo0MTozMgp8TWpBeE5pMHdPQT09IDU0MTU3NSAyMDE2LTA4LTAzIDE3OjQzOjMxCnxNakF4Tmkwd09BPT0gNTQxNTgwIDIwMTYtMDgtMDMgMTc6NDU6MzEKfE1qQXhOaTB3T0E9PSA1NDE1ODQgMjAxNi0wOC0wMyAxNzo0NzozMQp8TWpBeE5pMHdPQT09IDU0MTU4OSAyMDE2LTA4LTAzIDE3OjQ5OjMxCnxNakF4Tmkwd09BPT0gNTQxNTk0IDIwMTYtMDgtMDMgMTc6NTE6MzIKfE1qQXhOaTB3T0E9PSA1NDE1OTkgMjAxNi0wOC0wMyAxNzo1MzozMQp8TWpBeE5pMHdPQT09IDU0MTYwNCAyMDE2LTA4LTAzIDE3OjU1OjMxCnxNakF4Tmkwd09BPT0gNTQxNjA5IDIwMTYtMDgtMDMgMTc6NTc6MzEKfE1qQXhOaTB3T0E9PSA1NDE2MTQgMjAxNi0wOC0wMyAxNzo1OTozMQp8TWpBeE5pMHdPQT09IDU0MTYxOSAyMDE2LTA4LTAzIDE4OjAxOjM0CnxNakF4Tmkwd09BPT0gNTQxNjIzIDIwMTYtMDgtMDMgMTg6MDM6MzEKfE1qQXhOaTB3T0E9PSA1NDE2MjggMjAxNi0wOC0wMyAxODowNTozMQp8TWpBeE5pMHdPQT09IDU0MTYzMyAyMDE2LTA4LTAzIDE4OjA3OjMxCnxNakF4Tmkwd09BPT0gNTQxNjM4IDIwMTYtMDgtMDMgMTg6MDk6MzEKfE1qQXhOaTB3T0E9PSA1NDE2NDEgMjAxNi0wOC0wMyAxODoxMDo1MQp8TWpBeE5pMHdPQT09IDU0MTY0NyAyMDE2LTA4LTAzIDE4OjEyOjUxCnxNakF4Tmkwd09BPT0gNTQxNjUwIDIwMTYtMDgtMDMgMTg6MTQ6MDEKfE1qQXhOaTB3T0E9PSA1NDE2NTYgMjAxNi0wOC0wMyAxODoxNjowMQp8TWpBeE5pMHdPQT09IDU0MTY2MSAyMDE2LTA4LTAzIDE4OjE3OjQxCnxNakF4Tmkwd09BPT0gNTQxNjYzIDIwMTYtMDgtMDMgMTg6MTg6NDEKfE1qQXhOaTB3T0E9PSA1NDE2NjkgMjAxNi0wOC0wMyAxODoyMDo0MQp8TWpBeE5pMHdPQT09IDU0MTY3NCAyMDE2LTA4LTAzIDE4OjIyOjQxCnxNakF4Tmkwd09BPT0gNTQxNjgwIDIwMTYtMDgtMDMgMTg6MjQ6NDEKfE1qQXhOaTB3T0E9PSA1NDE2ODYgMjAxNi0wOC0wMyAxODoyNjo0MQp8TWpBeE5pMHdPQT09IDU0MTY5MSAyMDE2LTA4LTAzIDE4OjI4OjQxCnxNakF4Tmkwd09BPT0gNTQxNjk2IDIwMTYtMDgtMDMgMTg6MzA6NDEKfE1qQXhOaTB3T0E9PSA1NDE3MDIgMjAxNi0wOC0wMyAxODozMjo0MQp8TWpBeE5pMHdPQT09IDU0MTcwNyAyMDE2LTA4LTAzIDE4OjM0OjQxCnxNakF4Tmkwd09BPT0gNTQxNzA5IDIwMTYtMDgtMDMgMTg6MzU6MTEKfE1qQXhOaTB3T0E9PSA1NDE3MTIgMjAxNi0wOC0wMyAxODozNjoxMQp8TWpBeE5pMHdPQT09IDU0MTcxNSAyMDE2LTA4LTAzIDE4OjM3OjIxCnxNakF4Tmkwd09BPT0gNTQxNzE4IDIwMTYtMDgtMDMgMTg6Mzg6MzEKfE1qQXhOaTB3T0E9PSA1NDE3MjEgMjAxNi0wOC0wMyAxODozOTozMQp8TWpBeE5pMHdPQT09IDU0MTcyNiAyMDE2LTA4LTAzIDE4OjQxOjMxCnxNakF4Tmkwd09BPT0gNTQxNzMxIDIwMTYtMDgtMDMgMTg6NDM6MzEKfE1qQXhOaTB3T0E9PSA1NDE3MzMgMjAxNi0wOC0wMyAxODo0NDoxMQp8TWpBeE5pMHdPQT09IDU0MTczNiAyMDE2LTA4LTAzIDE4OjQ1OjExCnxNakF4Tmkwd09BPT0gNTQxNzQxIDIwMTYtMDgtMDMgMTg6NDY6NTEKfE1qQXhOaTB3T0E9PSA1NDE3NDMgMjAxNi0wOC0wMyAxODo0Nzo1MQp8TWpBeE5pMHdPQT09IDU0MTc0OCAyMDE2LTA4LTAzIDE4OjQ5OjUxCnxNakF4Tmkwd09BPT0gNTQxNzU0IDIwMTYtMDgtMDMgMTg6NTE6NTEKfE1qQXhOaTB3T0E9PSA1NDE3NTcgMjAxNi0wOC0wMyAxODo1MzowMQp8TWpBeE5pMHdPQT09IDU0MTc2MCAyMDE2LTA4LTAzIDE4OjU0OjAxCnxNakF4Tmkwd09BPT0gNTQxNzYyIDIwMTYtMDgtMDMgMTg6NTU6MDEKfE1qQXhOaTB3T0E9PSA1NDE3NjUgMjAxNi0wOC0wMyAxODo1NjowMQp8TWpBeE5pMHdPQT09IDU0MTc3MSAyMDE2LTA4LTAzIDE4OjU4OjAxCnxNakF4Tmkwd09BPT0gNTQxNzc2IDIwMTYtMDgtMDMgMTk6MDA6MDEKfE1qQXhOaTB3T0E9PSA1NDE3NzggMjAxNi0wOC0wMyAxOTowMDozMQp8TWpBeE5pMHdPQT09IDU0MTc4MCAyMDE2LTA4LTAzIDE5OjAxOjM0CnxNakF4Tmkwd09BPT0gNTQxNzgzIDIwMTYtMDgtMDMgMTk6MDI6MzEKfE1qQXhOaTB3T0E9PSA1NDE3ODggMjAxNi0wOC0wMyAxOTowNDozMQp8TWpBeE5pMHdPQT09IDU0MTc5NCAyMDE2LTA4LTAzIDE5OjA2OjMyCnxNakF4Tmkwd09BPT0gNTQxNzk5IDIwMTYtMDgtMDMgMTk6MDg6MzEKfE1qQXhOaTB3T0E9PSA1NDE4MDQgMjAxNi0wOC0wMyAxOToxMDozMQp8TWpBeE5pMHdPQT09IDU0MTgxMCAyMDE2LTA4LTAzIDE5OjEyOjMxCnxNakF4Tmkwd09BPT0gNTQxODE1IDIwMTYtMDgtMDMgMTk6MTQ6MzEKfE1qQXhOaTB3T0E9PSA1NDE4MjEgMjAxNi0wOC0wMyAxOToxNjozNAp8TWpBeE5pMHdPQT09IDU0MTgyNiAyMDE2LTA4LTAzIDE5OjE4OjMxCnxNakF4Tmkwd09BPT0gNTQxODMxIDIwMTYtMDgtMDMgMTk6MjA6MzEKfE1qQXhOaTB3T0E9PSA1NDE4MzcgMjAxNi0wOC0wMyAxOToyMjozMQp8TWpBeE5pMHdPQT09IDU0MTg0MiAyMDE2LTA4LTAzIDE5OjI0OjMxCnxNakF4Tmkwd09BPT0gNTQxODQ4IDIwMTYtMDgtMDMgMTk6MjY6MzEKfE1qQXhOaTB3T0E9PSA1NDE4NTMgMjAxNi0wOC0wMyAxOToyODozMQp8TWpBeE5pMHdPQT09IDU0MTg1OSAyMDE2LTA4LTAzIDE5OjMwOjMxCnxNakF4Tmkwd09BPT0gNTQxODY0IDIwMTYtMDgtMDMgMTk6MzI6MzEKfE1qQXhOaTB3T0E9PSA1NDE4NjkgMjAxNi0wOC0wMyAxOTozNDozMQp8TWpBeE5pMHdPQT09IDU0MTg3NSAyMDE2LTA4LTAzIDE5OjM2OjM1CnxNakF4Tmkwd09BPT0gNTQxODgwIDIwMTYtMDgtMDMgMTk6Mzg6MzEKfE1qQXhOaTB3T0E9PSA1NDE4ODYgMjAxNi0wOC0wMyAxOTo0MDozMQp8TWpBeE5pMHdPQT09IDU0MTg5MSAyMDE2LTA4LTAzIDE5OjQyOjMxCnxNakF4Tmkwd09BPT0gNTQxODk3IDIwMTYtMDgtMDMgMTk6NDQ6MzEKfE1qQXhOaTB3T0E9PSA1NDE5MDIgMjAxNi0wOC0wMyAxOTo0NjozNAp8TWpBeE5pMHdPQT09IDU0MTkwOCAyMDE2LTA4LTAzIDE5OjQ4OjMxCnxNakF4Tmkwd09BPT0gNTQxOTEzIDIwMTYtMDgtMDMgMTk6NTA6MzEKfE1qQXhOaTB3T0E9PSA1NDE5MTkgMjAxNi0wOC0wMyAxOTo1MjozMQp8TWpBeE5pMHdPQT09IDU0MTkyNCAyMDE2LTA4LTAzIDE5OjU0OjMxCnxNakF4Tmkwd09BPT0gNTQxOTMwIDIwMTYtMDgtMDMgMTk6NTY6MzQKfE1qQXhOaTB3T0E9PSA1NDE5MzYgMjAxNi0wOC0wMyAxOTo1ODozMQp8TWpBeE5pMHdPQT09IDU0MTkzOSAyMDE2LTA4LTAzIDIwOjAwOjMxCnxNakF4Tmkwd09BPT0gNTQxOTQwIDIwMTYtMDgtMDMgMjA6MDI6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NDEgMjAxNi0wOC0wMyAyMDowNjozNAp8TWpBeE5pMHdPQT09IDU0MTk0MiAyMDE2LTA4LTAzIDIwOjEyOjMxCnxNakF4Tmkwd09BPT0gNTQxOTQzIDIwMTYtMDgtMDMgMjA6MTY6MzQKfE1qQXhOaTB3T0E9PSA1NDE5NDQgMjAxNi0wOC0wMyAyMDoyMDozMQp8TWpBeE5pMHdPQT09IDU0MTk0NSAyMDE2LTA4LTAzIDIwOjI0OjMxCnxNakF4Tmkwd09BPT0gNTQxOTQ2IDIwMTYtMDgtMDMgMjA6Mjg6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NDcgMjAxNi0wOC0wMyAyMDozMjozMQp8TWpBeE5pMHdPQT09IDU0MTk0OCAyMDE2LTA4LTAzIDIwOjM2OjMxCnxNakF4Tmkwd09BPT0gNTQxOTQ5IDIwMTYtMDgtMDMgMjA6NDA6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NTAgMjAxNi0wOC0wMyAyMDo0NDozMQp8TWpBeE5pMHdPQT09IDU0MTk1MSAyMDE2LTA4LTAzIDIwOjQ4OjMxCnxNakF4Tmkwd09BPT0gNTQxOTUyIDIwMTYtMDgtMDMgMjA6NTI6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NTMgMjAxNi0wOC0wMyAyMDo1ODozMQp8TWpBeE5pMHdPQT09IDU0MTk1NCAyMDE2LTA4LTAzIDIxOjAyOjMxCnxNakF4Tmkwd09BPT0gNTQxOTU1IDIwMTYtMDgtMDMgMjE6MDY6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NTYgMjAxNi0wOC0wMyAyMToxMDozMQp8TWpBeE5pMHdPQT09IDU0MTk1NyAyMDE2LTA4LTAzIDIxOjE2OjMxCnxNakF4Tmkwd09BPT0gNTQxOTU4IDIwMTYtMDgtMDMgMjE6MjA6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NTkgMjAxNi0wOC0wMyAyMToyNDozMQp8TWpBeE5pMHdPQT09IDU0MTk2MCAyMDE2LTA4LTAzIDIxOjI4OjMxCnxNakF4Tmkwd09BPT0gNTQxOTYxIDIwMTYtMDgtMDMgMjE6MzI6MzEKfE1qQXhOaTB3T0E9PSA1NDE5NjIgMjAxNi0wOC0wMyAyMTozNjozMgp8TWpBeE5pMHdPQT09IDU0MTk2NCAyMDE2LTA4LTAzIDIxOjQ2OjMxCnxNakF4Tmkwd09BPT0gNTQxOTY1IDIwMTYtMDgtMDMgMjE6NTI6MzEKfE1qQXhOaTB3T1E9PSAwIDIwMTYtMDktMDEKfE1qQXhOaTB4TUE9PSAwIDIwMTYtMTAtMDEKfE1qQXhOaTB4TVE9PSAwIDIwMTYtMTEtMDEKfE1qQXhOaTB4TWc9PSAwIDIwMTYtMTItMDEK|FBDECT_fritz.box.AHA.Wohnzimmer_17|energy|0.020194|0')}
setreading Hauptzähler energy <Wert>
valueFormat {
if ($VALUE ne "-") {
if ($DEVICE eq "DbRep.elektrische.Energie.Hauptzaehler") {
sprintf("%.2f",$VALUE);
} else {
sprintf("%.2f",$VALUE/1000);
}
} else {
sprintf("-");
}
}
DbRep.elektrische.Energie.Hauptzaehler:.*-01,.*-02,.*-03,.*-04,.*-05,.*-06,.*-07,.*-08,.*-09,.*-10,.*-11,.*-12,$sum($ROW:1..$COLUMN-1),<100%>
<%measure_power>,<Januar>,<Februar>,<März>,<April>,<Mai>,<Juni>,<Juli>,<August>,<September>,<Oktober>,<November>,<Dezember>,<Gesamtbedarf>,<[%]>
DbRep.elektrische.Energie.Hauptzaehler:.*-01,.*-02,.*-03,.*-04,.*-05,.*-06,.*-07,.*-08,.*-09,.*-10,.*-11,.*-12,$sum($ROW:1..$COLUMN-1),<100%>
<hr>
<hr>
DbRep.elektrische.Energie.FBDECT_fritz.box.*:.*-01,.*-02,.*-03,.*-04,.*-05,.*-06,.*-07,.*-08,.*-09,.*-10,.*-11,.*-12,$sum($ROW:1..$COLUMN-1),<100%>
DbRep.elektrische.Energie.switchable.socket.*:.*-01,.*-02,.*-03,.*-04,.*-05,.*-06,.*-07,.*-08,.*-09,.*-10,.*-11,.*-12,$sum($ROW:1..$COLUMN-1),<100%>
<hr>
report.electricalEnergy:$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),$sum(2..$ROW),<100%>
2016-08-03 22:59:56: FBDECT_fritz.box.AHA.Wohnzimmer_17, FBDECT, energy: 541982 Wh, energy, 541982, W
2016-08-03 22:59:56 energy 541982 Wh
Internals:
CFGFN
DEF Dblog
NAME DbRep.elektrische.Energie.FBDECT_fritz.box.AHA.Wohnzimmer_17
NR 336
STATE done » ProcTime: 0.0204 sec
TYPE DbRep
Helper:
DBLOGDEVICE Dblog
Cv:
aggregation month
aggsec 2678400
destr 2016-12-31
dsstr 2016-01-01
epoch_seconds_end 1483225199
mestr 12
msstr 01
testr 23:59:59
tsstr 00:00:00
wdadd 259200
yestr 2016
ysstr 2016
Readings:
2016-08-03 22:56:36 2016-01-01__elektrische.Energie__2016-01 -
2016-08-03 22:56:36 2016-02-01__elektrische.Energie__2016-02 -
2016-08-03 22:56:36 2016-03-01__elektrische.Energie__2016-03 -
2016-08-03 22:56:36 2016-04-01__elektrische.Energie__2016-04 -
2016-08-03 22:56:36 2016-05-01__elektrische.Energie__2016-05 -
2016-08-03 22:56:36 2016-06-01__elektrische.Energie__2016-06 -
2016-08-03 22:56:36 2016-07-31_23-59-59__elektrische.Energie__2016-07 29.0000
2016-08-03 22:56:36 2016-08-03_22-52-31__elektrische.Energie__2016-08 3785.0000
2016-08-03 22:56:36 2016-09-01__elektrische.Energie__2016-09 -
2016-08-03 22:56:36 2016-10-01__elektrische.Energie__2016-10 -
2016-08-03 22:56:36 2016-11-01__elektrische.Energie__2016-11 -
2016-08-03 22:56:36 2016-12-01__elektrische.Energie__2016-12 -
2016-08-03 22:56:36 sql_processing_time 0.0204
2016-08-03 22:56:36 state done
Dbloghash:
CFGFN
CONFIGURATION /opt/fhem/DBlog.conf
DBMODEL SQLITE
DEF /opt/fhem/DBlog.conf .*:.*
NAME Dblog
NR 17
NTFY_ORDER 50-Dblog
PID 10953
REGEXP .*:.*
STATE connected
TYPE DbLog
dbconn SQLite:dbname=/opt/fhem/DBlog.db
dbuser
Readings:
2016-08-03 00:00:00 lastRowsDeleted 0E0
2016-08-03 22:51:27 state connected
Helper:
Attributes:
DbLogExclude .*
aggregation month
alias Schaltsteckdose - Wohnzimmer (TV/Video)
device FBDECT_fritz.box.AHA.Wohnzimmer_17
event-on-change-reading .*
group TEST - Energie Meter
reading energy
readingNameMap elektrische.Energie
room Test
showproctime 1
stateFormat state » ProcTime: sql_processing_time sec
timeout 10
timestamp_begin 2016-01-01 00:00:00
timestamp_end 2016-12-31 23:59:59
verbose 0
Zitat von: DS_Starter am 03 August 2016, 22:48:53
Was gibt denn die Funktion "countEntries" aus ohne das du die Attribute sowie die Zeitgrenzen änderst ?
Zitat von: DS_Starter am 03 August 2016, 23:09:23
...und führe die Funktion "fetchrows" aus. Dann schauen wir uns mal die Readings an die ausgegeben werden.
Zitat von: DS_Starter am 03 August 2016, 23:20:11Das mit den 1 W Unterschied passt, es handelt sich hier um einen Ausschnitt und die Geräte sollten sich alle im StandBy Modus befinden... aktuell durch die Schaltsteckdose sogar komplett ausgeschaltet. Dann kommt noch die Einstellung event-on-change-reading hinzu.
Das sieht doch aber garnicht schlecht aus. Kann das realistisch dass immer genau 1W Unterschied zwischen den einzelnen Datensätzen sind ?
Jetzt können wir es auch wagen ein verbose 4 einzuschalten, nochmal "fetchrows" auszuführen und den Logausschnitt zu posten.
Dann sehen wir sicher noch mehr.
PERL WARNING: Argument "-" isn't numeric in subroutine entry at
ZitatPERL WARNING: Argument "49261,2" isn't numeric in subtraction
Zitateval: {diffval_ParseDone('DbRep.elektrische.Energie.Hauptzaehler|TW....
Zitat von: DS_Starter am 04 August 2016, 00:08:09Da hatte ich zwei oder drei Werte manuell fehlerhaft eingegeben.
rühren m.M. nach daher dass "49261,2" wegen dem Komma kein numerischer Wert ist -> müßte "49261.2" heißen.
Zitat von: DS_Starter am 04 August 2016, 00:08:09kann man durch Log Einstellungen herausfinden wer diese Fehlereinträge generiert? Möglicherweise ist es am Ende nicht mal das DbRep Modul.
Kopfzerbrechen nacht mir noch woher die eval Einträge:
stammen. Im Modul selbst habe ich die nicht (zumindest nicht an diesen momentan zur Diskussion stehenden Stellen).
EDIT: Auch diese Einträge bekomme ich bei mir, auch bei bewußt falscher Anwendung der Selektion, nicht auf den Schirm.
Zitatrühren ziemlich sicher daher dass ich im Code "-" setze wenn keine Werte geliefert wurden
Zitatkann man durch Log Einstellungen herausfinden wer diese Fehlereinträge generiert
DbRep test - ERROR - found value = 'Total:' isn't numeric in diffval function. Leaving ...
2016.08.04 19:52:29 1: PERL WARNING: Argument "-" isn't numeric in subroutine entry at (eval 769) line 1.
2016.08.04 19:52:29 3: stacktrace:
2016.08.04 19:52:29 3: main::__ANON__ called by (eval 769) (1)
2016.08.04 19:52:29 3: (eval) called by ./FHEM/33_readingsGroup.pm (498)
2016.08.04 19:52:29 3: readingsGroup::rgCalc called by ./FHEM/33_readingsGroup.pm (513)
2016.08.04 19:52:29 3: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (998)
2016.08.04 19:52:29 3: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1087)
2016.08.04 19:52:29 3: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (2811)
2016.08.04 19:52:29 3: main::FW_devState called by ./FHEM/01_FHEMWEB.pm (1519)
2016.08.04 19:52:29 3: main::FW_makeDeviceLine called by ./FHEM/01_FHEMWEB.pm (1627)
2016.08.04 19:52:29 3: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (909)
2016.08.04 19:52:29 3: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (454)
2016.08.04 19:52:29 3: main::FW_Read called by fhem.pl (3199)
2016.08.04 19:52:29 3: main::CallFn called by fhem.pl (667)
DbRep.elektrische.Energie.FBDECT_fritz.box.*:.*-01,.*-02,.*-03,.*-04,.*-05,.*-06,.*-07,.*-08,.*-09,.*-10,.*-11,.*-12,$sum($ROW:1..$COLUMN-1),<100%>
valueFormat { ($VALUE ne "-") ? "%.2f" : "-" }\
{ ($VALUE ne "-") ? "%.2f" : "-" }
PERL WARNING: Argument "-" isn't numeric ....
eval: {diffval_ParseDone('DbRep.elektrische.Energi ....
Zitat]Funktionen wie z.B. $sum($ROW:1..$COLUMN-1) sind wegen der "-" nicht nutzbar.
{ ($VALUE ne "-") ? "%.2f" : 0.00 }
DBD::SQLite::st fetchall_arrayref failed: database disk image is malformed
Zitat von: DS_Starter am 05 August 2016, 08:59:56
Guten Morgen,
Du könntest in der Readingsgroup das valueFormat so umformulieren:Code Auswählen{ ($VALUE ne "-") ? "%.2f" : 0.00 }
Damit wären Weiterberechnungen wohl möglich, da du immer numerische Werte bekommst.
Zitat von: DS_Starter am 08 August 2016, 22:43:39
Aber wenn es sich als praktischer und logischer erweist bei der insert Funktion die Attribute Device/Reading zu verwenden ändere ich es gerne um, es soll ja möglichst praktisch und hilfreich sein.
Grüße
Heiko
ZitatDie anderen Funktionen beziehen sich ja auch auf das jeweils angegebene Device und das Reading, demnach hätte ich diese Funktionsweise als konsequent angesehen.
ZitatIch muß noch etwas testen und die Doku ändern, dann kann ich die neue Version einchecken.
Zitat von: DS_Starter am 09 August 2016, 18:40:42werde ich dann gerne testen...
Habe die neue Verssion eingecheckt und steht dann morgen früh zur Verfügung.
Zitatwenn man timestamp_begin und timestamp_end mit Werten wie z.B. current_year_begin, current_year_end sowie previous_year_begin und previous_year_end belegen könnte.
Zitat von: DS_Starter am 09 August 2016, 19:06:22
Hab die neue Version 3.4.3 auch noch im ersten Thread eingehängt. Kannst du dann auch heute schon probieren.
Du meinst z.B. current_year_begin stellvertretend für "2016-01-01 00:00:00" ?
Zitat von: DS_Starter am 09 August 2016, 22:10:29
Das Modul nimmt jeden verfügbaren Wert innerhalb der Aggregationsgrenzen... also so wie du geschrieben hast, zunächst zwischen dem 01. (bzw. Startzeitpunkt) und dem Ende des Monats ... bei dir den 25. und ermittelt daraus die Differenz. Danach wird der Zeitraum 01. bis Ende des Folgemonats betrachtet. Wenn nur ein einzelner Wert (vom 05.) in der DB enthalten ist, dann wird die Differenz für den Folgemonat schwer ermittelbar sein, da quasi nicht vorhanden (nur ein Wert = Anfangswert = Endewert des Monats).
Zitat von: DS_Starter am 09 August 2016, 22:40:52Natürlich bleibt es ein Kompromiss. Es hätte ja auch sein können, dass für den Fall, bei dem für den Monatsbeginn kein Wert vorhanden ist, man auf den letzten verfügbaren zurückgreifen würde. Aber das in Deinem Modul mit einzubringen macht nun wirklich keinen Sinn. Möglicherweise gibt es ja irgendwann Smart Meter flächendeckend oder ich muss mich um eine lokale Lösung kümmern.
Um das bei manueller Eingabe einigermaßen realistisch zu gestalten, müßtest du wahrscheinlich den Startwert am 01.06. entsprechend des durchschnittlichen Tagesverbrauchs schätzen und eintragen. Wenn du nur den Wert vom 25.05. überträgst, würdest du die 6 letzten Tage im Mai verbauchstechnisch "unterschlagen" und statt im Mai dem Juni hinzuschlagen.
Naja, es bleibt ein Kompromiß.
ZitatIch hätte da noch einen Vorschlag: wenn man timestamp_begin und timestamp_end mit Werten wie z.B. current_year_begin, current_year_end sowie previous_year_begin und previous_year_end belegen könnte.
ZitatEine Verbesserung hätte ich dann noch... wenn sein Kommando nicht erfolgreich durchläuft könnte man es doch zeitversetzt automatisch wiederholen?
# DBRep Device anlegen
define Rep.Del.Sonnenstrom_Relative DbRep LogDB
attr Rep.Del.Sonnenstrom_Relative allowDeletion 1
attr Rep.Del.Sonnenstrom_Relative comment Löschen der DB-Einträge älter als 2 Tage für Device Rep.Del.Sonnenstrom_Relative.
attr Rep.Del.Sonnenstrom_Relative devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.Del.Sonnenstrom_Relative device Sonnenstrom_Relative
attr Rep.Del.Sonnenstrom_Relative room DbLog
attr Rep.Del.Sonnenstrom_Relative showproctime 1
attr Rep.Del.Sonnenstrom_Relative timeUpToDiff 172800
attr Rep.Del.Sonnenstrom_Relative timeout 120
attr Rep.Del.Sonnenstrom_Relative verbose 3
# regelmaäßigen Löschjob laufen lassen
define At.Del.Sonnenstrom_Relative at +*24:00:00 set Rep.Del.Sonnenstrom_Relative delEntries
attr At.Del.Sonnenstrom_Relative comment Job zum Löschen der DB-Einträge älter als 2 Tage für Device Rep.Del.Sonnenstrom_Relative.
attr At.Del.Sonnenstrom_Relative room DbLog
Zitat von: DS_Starter am 19 August 2016, 09:17:48ich benutze aktuell ausschliesslich diffValue
Prinzipiell wäre soetwas sicherlich umsetzbar mit definierten Rahmenbedingungen. Also wenn Fehler, dann x mal wiederholen mit Abstand y -> sonst Error. (Endlosschleifen vermeiden)
Welches Scenario schwebt dir denn da konkret vor ? Es wäre wahrscheinlich nicht nötig bei jeder Selektionsvariante eine solche Zusatzfunktion vorzusehen.
Zitat von: DS_Starter am 19 August 2016, 09:17:48Das geht bei aktuell noch relativ einfach über deleteOldDays, da ich alle Werte Tagesgenau kappe. Aktuell nutze ich zwei DBs, eine für die Daten die ich lediglich für 3 Tage aufbewahre (Charts) und dann noch eine die mir Zählerdaten für 2 Jahre aufbewahrt. Beide werden nachts mit Hilfe von deleteOldDays gekappt. Interessant wäre die neue Funktion für die Kurzzeitdaten... dann könnte ich bei einer einzelnen Datenbank bleiben, nur leider werden genau diese Kurzzeitdaten nicht mit DbRep ausgewertet.
Ich war auch nicht untätig und habe in das Modul ein Attribut "timeOlderThan" eingebaut was quasi das Gegenstück zu "timeDIffToNow" ist.
Wird dieses Attribut gesetzt, werden alle Selektionen bzw. Löschungen alle alten Datensaätze in der DB BIS zu dem Zeitpunkt <aktueller Timestamp>-<timeOlderThan> (dynamisch kalkuliert) ausgeführt.
Also wenn das Attr auf z.B. 172800 (s) gesetzt ist, denn werden alle Datensätze in der DB die älter als 1 Tag sind und den sonstigen Bedingungen wie Device bzw. Reading entsprechen, gelöscht.
Zitat von: DS_Starter am 19 August 2016, 09:17:48Mal sehen ob ich in den nächsten Tagen zum Testen komme....
Ich hänge die neue Version V3.5 wieder in den Eingangsthread und ergänze die Doku. Über das WE will ich die commandref noch beschreiben und das Modul mit dem Entwicklungsstand auch wieder einchecken.
Zitatkann man die aktuelle Moduldatei auch direkt mit einem "sudo wget" runter laden?
ZitatDas geht bei aktuell noch relativ einfach über deleteOldDays
Zitatnur leider werden genau diese Kurzzeitdaten nicht mit DbRep ausgewertet.
ZitatInteressant wäre die neue Funktion für die Kurzzeitdaten... dann könnte ich bei einer einzelnen Datenbank bleiben, nur leider werden genau diese Kurzzeitdaten nicht mit DbRep ausgewertet.
ZitatKann es sein dass bei jeder Neukalkulation (diffValue) alle Readings ausnahmslos erst einmal gelöscht werden?
Zitat von: DS_Starter am 19 August 2016, 16:56:36
EDIT. Wobei ... Userreadings ist ja ein Attribut und wird jedesmal neu berechnet. ???
Zitat von: DS_Starter am 19 Mai 2016, 22:52:13
mir kam die Idee zu diesem Modul durch den Wunsch die Energiedaten meiner PV-Anlage auszuwerten.
ZitatWas für eine Anlage benutzt Du?
<Datum/Zeit>__<Device aus DB>__<Reading aus DB>__<Funktion ....>
also in deinem Fall
2016-08-22_22-22-56__MeinStromzaehler__total_consumption__DIFF__all between timestamps
ZitatWie kann ich dann auf das Variable Reading - z.B. beim Zuweisen auf einen Dummy - zugreifen, bzw. gibt es eine Möglichkeit die Uhrzeit wegzulassen?
# den Dummy definieren
define Dum.Rep dummy
# nun das Notify anlegen
define N.Dum.Rep notify Rep.SMAEM:(\d+).*MeinStromzaehler.* { fhem "setreading Dum.Rep DeinReading"." $EVTPART1"}
ZitatMerkwürdig ist nur, das ich unterschiedliche Namenstrukturen bekommen.....
2016-04-24_22-21-45__GridConsumption__MAX__2016-04 3565.0000
2016-01-01__GridConsumption__DIFF__2016-01 -
Readings:
2016-08-27 13:45:59 currentPowerMeasurement 46.13
2016-08-27 13:39:52 state running
Zitatsolltest Du noch mal Langeweile verspüren, dann wäre ein Feature bei dem userReadings nicht gelöscht werden doch ganz hilfreich... wir hatten uns ja schon darüber unterhalten.ok, sehe ich bei Gelegenheit mit vor.
ZitatIch schicke Dir später mal ausführliche Informationen zu den Daten, der DbReg Definition und was sonst noch hilfreich sein könnte.
Internals:
CFGFN
DEF DBlog_meterReading
NAME DbRep.elektrische.Energie.switchable.socket.storageCellar.fridge_Pwr
NR 381
STATE connected » ProcTime: 0.0155 sec
TYPE DbRep
Helper:
DBLOGDEVICE DBlog_meterReading
Readings:
2016-08-28 13:10:08 2016-01-01__elektrische.Energie__2016-01 -
2016-08-28 13:10:08 2016-02-01__elektrische.Energie__2016-02 -
2016-08-28 13:10:08 2016-03-01__elektrische.Energie__2016-03 -
2016-08-28 13:10:08 2016-04-01__elektrische.Energie__2016-04 -
2016-08-28 13:10:08 2016-05-01__elektrische.Energie__2016-05 -
2016-08-28 13:10:08 2016-06-01__elektrische.Energie__2016-06 -
2016-08-28 13:10:08 2016-07-01__elektrische.Energie__2016-07 -
2016-08-28 13:10:08 2016-08-28_04-35-17__elektrische.Energie__2016-08 606.2000
2016-08-28 13:10:08 2016-09-01__elektrische.Energie__2016-09 -
2016-08-28 13:10:08 2016-10-01__elektrische.Energie__2016-10 -
2016-08-28 13:10:08 2016-11-01__elektrische.Energie__2016-11 -
2016-08-28 13:10:08 2016-12-01__elektrische.Energie__2016-12 -
2016-08-28 13:25:08 currentPowerMeasurement 0.75
2016-08-28 13:10:08 sql_processing_time 0.0155
2016-08-28 14:02:48 state connected
Dbloghash:
CFGFN
CONFIGURATION /opt/fhem/DBlog_meterReading.conf
DBMODEL SQLITE
DEF /opt/fhem/DBlog_meterReading.conf .*:(countHistory|energy_kWh|meterReading_kWh|meterReading_m3).*
NAME DBlog_meterReading
NR 366
NTFY_ORDER 50-DBlog_meterReading
PID 3656
REGEXP .*:(countHistory|energy_kWh|meterReading_kWh|meterReading_m3).*
STATE connected
TYPE DbLog
dbconn SQLite:dbname=/opt/fhem/DBlog_meterReading.db
dbuser
Readings:
2016-08-28 11:25:22 countCurrent 74
2016-08-28 11:25:22 countHistory 1362918
2016-08-28 03:00:01 lastRowsDeleted 0E0
2016-08-28 14:02:43 state connected
2016-08-28 04:00:00 userCommand "VACUUM history"
Attributes:
DbLogExclude .*
aggregation month
alias Schaltsteckdose - Vorratskeller (Kühlschrank) - DB-Report
device switchable.socket.storageCellar.fridge_Pwr
event-on-change-reading .*
group Auswertung - Berechnung
reading energy_kWh
readingNameMap elektrische.Energie
room 03 Auswertung
showproctime 1
stateFormat state » ProcTime: sql_processing_time sec
timeout 10
timestamp_begin current_year_begin
timestamp_end current_year_end
userReadings currentPowerMeasurement
verbose 0
Readings:
2016-08-28 14:04:25 2016-08-22_19-02-19__elektrische.Energie 0.01
2016-08-28 14:04:25 2016-08-22_19-05-05__elektrische.Energie 0.02
2016-08-28 14:04:25 2016-08-22_19-09-53__elektrische.Energie 0.03
2016-08-28 14:04:25 2016-08-22_19-34-24__elektrische.Energie 0.04
2016-08-28 14:04:25 2016-08-22_19-39-50__elektrische.Energie 0.05
2016-08-28 14:04:25 2016-08-22_20-02-31__elektrische.Energie 0.06
2016-08-28 14:04:25 2016-08-22_20-07-27__elektrische.Energie 0.07
2016-08-28 14:04:25 2016-08-22_20-10-22__elektrische.Energie 0.08
2016-08-28 14:04:25 2016-08-22_20-35-51__elektrische.Energie 0.09
2016-08-28 14:04:25 2016-08-22_20-39-45__elektrische.Energie 0.10
2016-08-28 14:04:25 2016-08-22_21-05-51__elektrische.Energie 0.11
2016-08-28 14:04:25 2016-08-22_21-08-34__elektrische.Energie 0.12
2016-08-28 14:04:25 2016-08-22_21-34-14__elektrische.Energie 0.13
2016-08-28 14:04:25 2016-08-22_21-38-32__elektrische.Energie 0.14
2016-08-28 14:04:25 2016-08-22_22-02-19__elektrische.Energie 0.15
2016-08-28 14:04:25 2016-08-22_22-07-36__elektrische.Energie 0.16
2016-08-28 14:04:25 2016-08-22_22-32-23__elektrische.Energie 0.17
2016-08-28 14:04:25 2016-08-22_22-37-02__elektrische.Energie 0.18
2016-08-28 14:04:25 2016-08-22_23-00-27__elektrische.Energie 0.19
2016-08-28 14:04:25 2016-08-22_23-05-21__elektrische.Energie 0.20
2016-08-28 14:04:25 2016-08-22_23-30-18__elektrische.Energie 0.21
2016-08-28 14:04:25 2016-08-22_23-33-11__elektrische.Energie 0.22
2016-08-28 14:04:25 2016-08-22_23-58-21__elektrische.Energie 0.23
2016-08-28 14:04:25 2016-08-23_00-02-51__elektrische.Energie 0.24
2016-08-28 14:04:25 2016-08-23_00-05-09__elektrische.Energie 0.25
2016-08-28 14:04:25 2016-08-23_00-31-44__elektrische.Energie 0.26
2016-08-28 14:04:25 2016-08-23_00-34-17__elektrische.Energie 0.00
2016-08-28 14:04:25 2016-08-23_00-57-09__elektrische.Energie 0.01
2016-08-28 14:04:25 2016-08-23_01-02-54__elektrische.Energie 0.02
2016-08-28 14:04:25 2016-08-23_01-25-27__elektrische.Energie 0.03
2016-08-28 14:04:25 2016-08-23_01-31-59__elektrische.Energie 0.05
2016-08-28 14:04:25 2016-08-23_01-54-17__elektrische.Energie 0.06
2016-08-28 14:04:25 2016-08-23_01-58-18__elektrische.Energie 0.07
2016-08-28 14:04:25 2016-08-23_02-21-16__elektrische.Energie 0.08
2016-08-28 14:04:25 2016-08-23_02-26-06__elektrische.Energie 0.09
2016-08-28 14:04:25 2016-08-23_02-36-05__elektrische.Energie 0.10
2016-08-28 14:04:25 2016-08-23_02-53-37__elektrische.Energie 0.11
2016-08-28 14:04:25 2016-08-23_02-57-33__elektrische.Energie 0.12
2016-08-28 14:04:25 2016-08-23_03-20-50__elektrische.Energie 0.13
2016-08-28 14:04:25 2016-08-23_03-24-00__elektrische.Energie 0.14
2016-08-28 14:04:25 2016-08-23_03-49-50__elektrische.Energie 0.15
2016-08-28 14:04:25 2016-08-23_03-52-34__elektrische.Energie 0.16
2016-08-28 14:04:25 2016-08-23_03-55-06__elektrische.Energie 0.17
2016-08-28 14:04:25 2016-08-23_04-19-46__elektrische.Energie 0.18
2016-08-28 14:04:25 2016-08-23_04-22-44__elektrische.Energie 0.19
2016-08-28 14:04:25 2016-08-23_04-47-03__elektrische.Energie 0.20
2016-08-28 14:04:25 2016-08-23_04-50-12__elektrische.Energie 0.21
2016-08-28 14:04:25 2016-08-23_05-15-27__elektrische.Energie 0.22
2016-08-28 14:04:25 2016-08-23_05-18-28__elektrische.Energie 0.23
2016-08-28 14:04:25 2016-08-23_05-22-08__elektrische.Energie 0.24
2016-08-28 14:04:25 2016-08-23_05-46-26__elektrische.Energie 0.25
2016-08-28 14:04:25 2016-08-23_05-50-43__elektrische.Energie 0.26
2016-08-28 14:04:25 2016-08-23_06-14-06__elektrische.Energie 0.27
2016-08-28 14:04:25 2016-08-23_06-19-30__elektrische.Energie 0.28
2016-08-28 14:04:25 2016-08-23_06-44-53__elektrische.Energie 0.29
2016-08-28 14:04:25 2016-08-23_06-46-56__elektrische.Energie 0.30
2016-08-28 14:04:25 2016-08-23_06-50-52__elektrische.Energie 0.31
2016-08-28 14:04:25 2016-08-23_07-14-30__elektrische.Energie 0.32
2016-08-28 14:04:25 2016-08-23_07-19-18__elektrische.Energie 0.33
2016-08-28 14:04:25 2016-08-23_07-42-01__elektrische.Energie 0.34
2016-08-28 14:04:25 2016-08-23_07-44-58__elektrische.Energie 0.35
2016-08-28 14:04:25 2016-08-23_08-10-44__elektrische.Energie 0.36
2016-08-28 14:04:25 2016-08-23_08-15-21__elektrische.Energie 0.37
2016-08-28 14:04:25 2016-08-23_08-17-45__elektrische.Energie 0.38
2016-08-28 14:04:25 2016-08-23_08-43-03__elektrische.Energie 0.39
2016-08-28 14:04:25 2016-08-23_08-48-09__elektrische.Energie 0.40
2016-08-28 14:04:25 2016-08-23_09-10-30__elektrische.Energie 0.41
2016-08-28 14:04:25 2016-08-23_09-16-48__elektrische.Energie 0.42
2016-08-28 14:04:25 2016-08-23_09-39-53__elektrische.Energie 0.43
2016-08-28 14:04:25 2016-08-23_09-42-25__elektrische.Energie 0.44
2016-08-28 14:04:25 2016-08-23_09-49-41__elektrische.Energie 0.45
2016-08-28 14:04:25 2016-08-23_10-12-23__elektrische.Energie 0.46
2016-08-28 14:04:25 2016-08-23_10-14-47__elektrische.Energie 0.47
2016-08-28 14:04:25 2016-08-23_10-37-23__elektrische.Energie 0.48
2016-08-28 14:04:25 2016-08-23_10-41-52__elektrische.Energie 0.49
2016-08-28 14:04:25 2016-08-23_11-07-53__elektrische.Energie 0.50
2016-08-28 14:04:25 2016-08-23_11-10-33__elektrische.Energie 0.51
2016-08-28 14:04:25 2016-08-23_11-14-01__elektrische.Energie 0.52
2016-08-28 14:04:25 2016-08-23_11-39-08__elektrische.Energie 0.53
2016-08-28 14:04:25 2016-08-23_11-44-09__elektrische.Energie 0.54
2016-08-28 14:04:25 2016-08-23_12-08-33__elektrische.Energie 0.55
2016-08-28 14:04:25 2016-08-23_12-11-59__elektrische.Energie 0.56
2016-08-28 14:04:25 2016-08-23_12-37-01__elektrische.Energie 0.57
2016-08-28 14:04:25 2016-08-23_12-39-28__elektrische.Energie 0.58
2016-08-28 14:04:25 2016-08-23_12-43-30__elektrische.Energie 0.59
2016-08-28 14:04:25 2016-08-23_13-07-44__elektrische.Energie 0.60
2016-08-28 14:04:25 2016-08-23_13-13-03__elektrische.Energie 0.61
2016-08-28 14:04:25 2016-08-23_13-35-42__elektrische.Energie 0.62
2016-08-28 14:04:25 2016-08-23_13-40-00__elektrische.Energie 0.63
2016-08-28 14:04:25 2016-08-23_13-49-57__elektrische.Energie 0.64
2016-08-28 14:04:25 2016-08-23_14-06-13__elektrische.Energie 0.65
2016-08-28 14:04:25 2016-08-23_14-10-34__elektrische.Energie 0.66
2016-08-28 14:04:25 2016-08-23_14-34-11__elektrische.Energie 0.67
2016-08-28 14:04:25 2016-08-23_14-39-09__elektrische.Energie 0.68
2016-08-28 14:04:25 2016-08-23_14-41-48__elektrische.Energie 0.69
2016-08-28 14:04:25 2016-08-23_14-44-13__elektrische.Energie 0.70
2016-08-28 14:04:25 2016-08-23_14-46-23__elektrische.Energie 0.71
2016-08-28 14:04:25 2016-08-23_14-49-23__elektrische.Energie 0.72
2016-08-28 14:04:25 2016-08-23_14-52-09__elektrische.Energie 0.73
2016-08-28 14:04:25 2016-08-23_14-54-40__elektrische.Energie 0.74
2016-08-28 14:04:25 2016-08-23_14-56-57__elektrische.Energie 0.75
2016-08-28 14:04:25 2016-08-23_15-06-52__elektrische.Energie 0.76
2016-08-28 14:04:25 2016-08-23_15-09-00__elektrische.Energie 0.77
2016-08-28 14:04:25 2016-08-23_15-14-42__elektrische.Energie 0.78
2016-08-28 14:04:25 2016-08-23_15-17-11__elektrische.Energie 0.79
2016-08-28 14:04:25 2016-08-23_15-19-26__elektrische.Energie 0.80
2016-08-28 14:04:25 2016-08-23_15-24-17__elektrische.Energie 0.81
2016-08-28 14:04:25 2016-08-23_15-26-53__elektrische.Energie 0.82
2016-08-28 14:04:25 2016-08-23_15-31-21__elektrische.Energie 0.83
2016-08-28 14:04:25 2016-08-23_15-52-24__elektrische.Energie 0.84
2016-08-28 14:04:25 2016-08-23_15-57-24__elektrische.Energie 0.85
2016-08-28 14:04:25 2016-08-23_16-19-46__elektrische.Energie 0.86
2016-08-28 14:04:25 2016-08-23_16-25-17__elektrische.Energie 0.87
2016-08-28 14:04:25 2016-08-23_16-28-11__elektrische.Energie 0.88
2016-08-28 14:04:25 2016-08-23_16-52-52__elektrische.Energie 0.89
2016-08-28 14:04:25 2016-08-23_16-55-35__elektrische.Energie 0.90
2016-08-28 14:04:25 2016-08-23_17-21-14__elektrische.Energie 0.91
2016-08-28 14:04:25 2016-08-23_17-26-17__elektrische.Energie 0.92
2016-08-28 14:04:25 2016-08-23_17-49-19__elektrische.Energie 0.93
2016-08-28 14:04:25 2016-08-23_17-54-35__elektrische.Energie 0.94
2016-08-28 14:04:25 2016-08-23_18-19-22__elektrische.Energie 0.95
2016-08-28 14:04:25 2016-08-23_18-21-22__elektrische.Energie 0.96
2016-08-28 14:04:25 2016-08-23_18-46-30__elektrische.Energie 0.97
2016-08-28 14:04:25 2016-08-23_18-52-18__elektrische.Energie 0.98
2016-08-28 14:04:25 2016-08-23_18-54-24__elektrische.Energie 0.99
2016-08-28 14:04:25 2016-08-23_19-20-08__elektrische.Energie 1.00
2016-08-28 14:04:25 2016-08-23_19-24-17__elektrische.Energie 1.01
2016-08-28 14:04:25 2016-08-23_19-49-47__elektrische.Energie 1.02
2016-08-28 14:04:25 2016-08-23_19-52-44__elektrische.Energie 1.03
2016-08-28 14:04:25 2016-08-23_20-18-39__elektrische.Energie 1.04
2016-08-28 14:04:25 2016-08-23_20-21-06__elektrische.Energie 1.05
2016-08-28 14:04:25 2016-08-23_20-46-10__elektrische.Energie 1.06
2016-08-28 14:04:25 2016-08-23_20-49-10__elektrische.Energie 1.07
2016-08-28 14:04:25 2016-08-23_21-14-28__elektrische.Energie 1.08
2016-08-28 14:04:25 2016-08-23_21-19-12__elektrische.Energie 1.09
2016-08-28 14:04:25 2016-08-23_21-42-21__elektrische.Energie 1.10
2016-08-28 14:04:25 2016-08-23_21-47-15__elektrische.Energie 1.11
2016-08-28 14:04:25 2016-08-23_21-50-24__elektrische.Energie 1.12
2016-08-28 14:04:25 2016-08-23_22-15-45__elektrische.Energie 1.13
2016-08-28 14:04:25 2016-08-23_22-18-33__elektrische.Energie 1.14
2016-08-28 14:04:25 2016-08-23_22-43-54__elektrische.Energie 1.15
2016-08-28 14:04:25 2016-08-23_22-48-14__elektrische.Energie 1.16
2016-08-28 14:04:25 2016-08-23_23-13-32__elektrische.Energie 1.17
2016-08-28 14:04:25 2016-08-23_23-16-08__elektrische.Energie 1.18
2016-08-28 14:04:25 2016-08-23_23-41-40__elektrische.Energie 1.19
2016-08-28 14:04:25 2016-08-23_23-46-34__elektrische.Energie 1.20
2016-08-28 14:04:25 2016-08-24_00-09-31__elektrische.Energie 1.21
2016-08-28 14:04:25 2016-08-24_00-14-33__elektrische.Energie 1.22
2016-08-28 14:04:25 2016-08-24_00-39-12__elektrische.Energie 1.23
2016-08-28 14:04:25 2016-08-24_00-42-09__elektrische.Energie 1.24
2016-08-28 14:04:25 2016-08-24_01-05-58__elektrische.Energie 1.25
2016-08-28 14:04:25 2016-08-24_01-10-32__elektrische.Energie 1.26
2016-08-28 14:04:25 2016-08-24_01-14-00__elektrische.Energie 1.27
2016-08-28 14:04:25 2016-08-24_01-38-38__elektrische.Energie 1.28
2016-08-28 14:04:25 2016-08-24_01-43-03__elektrische.Energie 1.29
2016-08-28 14:04:25 2016-08-24_02-08-41__elektrische.Energie 1.30
2016-08-28 14:04:25 2016-08-24_02-12-06__elektrische.Energie 1.31
2016-08-28 14:04:25 2016-08-24_02-36-45__elektrische.Energie 1.32
2016-08-28 14:04:25 2016-08-24_02-39-19__elektrische.Energie 1.33
2016-08-28 14:04:25 2016-08-24_03-04-33__elektrische.Energie 1.34
2016-08-28 14:04:25 2016-08-24_03-09-29__elektrische.Energie 1.35
2016-08-28 14:04:25 2016-08-24_03-33-45__elektrische.Energie 1.27
2016-08-28 14:04:25 2016-08-24_03-34-39__elektrische.Energie 1.36
2016-08-28 14:04:25 2016-08-24_03-37-01__elektrische.Energie 1.37
2016-08-28 14:04:25 2016-08-24_04-02-25__elektrische.Energie 1.38
2016-08-28 14:04:25 2016-08-24_04-05-21__elektrische.Energie 1.39
2016-08-28 14:04:25 2016-08-24_04-30-58__elektrische.Energie 1.40
2016-08-28 14:04:25 2016-08-24_04-33-23__elektrische.Energie 1.41
2016-08-28 14:04:25 2016-08-24_04-53-38__elektrische.Energie 1.42
2016-08-28 14:04:25 2016-08-24_05-03-52__elektrische.Energie 1.43
2016-08-28 14:04:25 2016-08-24_05-05-47__elektrische.Energie 1.44
2016-08-28 14:04:25 2016-08-24_05-30-49__elektrische.Energie 1.45
2016-08-28 14:04:25 2016-08-24_05-34-47__elektrische.Energie 1.46
2016-08-28 14:04:25 2016-08-24_05-59-37__elektrische.Energie 1.47
2016-08-28 14:04:25 2016-08-24_06-03-41__elektrische.Energie 1.48
2016-08-28 14:04:25 2016-08-24_06-27-03__elektrische.Energie 1.49
2016-08-28 14:04:25 2016-08-24_06-31-55__elektrische.Energie 1.50
2016-08-28 14:04:25 2016-08-24_06-57-51__elektrische.Energie 1.51
2016-08-28 14:04:25 2016-08-24_07-00-11__elektrische.Energie 1.52
2016-08-28 14:04:25 2016-08-24_07-25-17__elektrische.Energie 1.53
2016-08-28 14:04:25 2016-08-24_07-28-10__elektrische.Energie 1.54
2016-08-28 14:04:25 2016-08-24_07-53-29__elektrische.Energie 1.55
2016-08-28 14:04:25 2016-08-24_07-58-00__elektrische.Energie 1.56
2016-08-28 14:04:25 2016-08-24_08-21-06__elektrische.Energie 1.57
2016-08-28 14:04:25 2016-08-24_08-25-58__elektrische.Energie 1.58
2016-08-28 14:04:25 2016-08-24_08-29-15__elektrische.Energie 1.59
2016-08-28 14:04:25 2016-08-24_08-53-39__elektrische.Energie 1.60
2016-08-28 14:04:25 2016-08-24_08-58-09__elektrische.Energie 1.61
2016-08-28 14:04:25 2016-08-24_09-22-41__elektrische.Energie 1.62
2016-08-28 14:04:25 2016-08-24_09-27-03__elektrische.Energie 1.63
2016-08-28 14:04:25 2016-08-24_09-50-28__elektrische.Energie 1.64
2016-08-28 14:04:25 2016-08-24_09-55-41__elektrische.Energie 1.65
2016-08-28 14:04:25 2016-08-24_10-20-10__elektrische.Energie 1.66
2016-08-28 14:04:25 2016-08-24_10-23-13__elektrische.Energie 1.67
2016-08-28 14:04:25 2016-08-24_10-48-59__elektrische.Energie 1.68
2016-08-28 14:04:25 2016-08-24_10-51-31__elektrische.Energie 1.69
2016-08-28 14:04:25 2016-08-24_11-16-27__elektrische.Energie 1.70
2016-08-28 14:04:25 2016-08-24_11-21-20__elektrische.Energie 1.71
2016-08-28 14:04:25 2016-08-24_11-44-42__elektrische.Energie 1.72
2016-08-28 14:04:25 2016-08-24_11-49-37__elektrische.Energie 1.73
2016-08-28 14:04:25 2016-08-24_12-12-40__elektrische.Energie 1.74
2016-08-28 14:04:25 2016-08-24_12-17-38__elektrische.Energie 1.75
2016-08-28 14:04:25 2016-08-24_12-24-52__elektrische.Energie 1.76
2016-08-28 14:04:25 2016-08-24_12-45-20__elektrische.Energie 1.77
2016-08-28 14:04:25 2016-08-24_12-48-27__elektrische.Energie 1.78
2016-08-28 14:04:25 2016-08-24_13-12-46__elektrische.Energie 1.79
2016-08-28 14:04:25 2016-08-24_13-17-12__elektrische.Energie 1.80
2016-08-28 14:04:25 2016-08-24_13-40-59__elektrische.Energie 1.81
2016-08-28 14:04:25 2016-08-24_13-46-00__elektrische.Energie 1.82
2016-08-28 14:04:25 2016-08-24_14-11-39__elektrische.Energie 1.83
2016-08-28 14:04:25 2016-08-24_14-14-09__elektrische.Energie 1.84
2016-08-28 14:04:25 2016-08-24_14-38-46__elektrische.Energie 1.85
2016-08-28 14:04:25 2016-08-24_14-41-49__elektrische.Energie 1.86
2016-08-28 14:04:25 2016-08-24_14-47-13__elektrische.Energie 1.87
2016-08-28 14:04:25 2016-08-24_14-49-34__elektrische.Energie 1.88
2016-08-28 14:04:25 2016-08-24_14-51-40__elektrische.Energie 1.89
2016-08-28 14:04:25 2016-08-24_14-54-35__elektrische.Energie 1.90
2016-08-28 14:04:25 2016-08-24_14-57-16__elektrische.Energie 1.91
2016-08-28 14:04:25 2016-08-24_14-59-43__elektrische.Energie 1.92
2016-08-28 14:04:25 2016-08-24_15-01-12__elektrische.Energie 1.93
2016-08-28 14:04:25 2016-08-24_15-10-17__elektrische.Energie 1.94
2016-08-28 14:04:25 2016-08-24_15-13-50__elektrische.Energie 1.95
2016-08-28 14:04:25 2016-08-24_15-17-33__elektrische.Energie 1.96
2016-08-28 14:04:25 2016-08-24_15-20-13__elektrische.Energie 1.97
2016-08-28 14:04:25 2016-08-24_15-24-48__elektrische.Energie 1.98
2016-08-28 14:04:25 2016-08-24_15-27-48__elektrische.Energie 1.99
2016-08-28 14:04:25 2016-08-24_15-33-04__elektrische.Energie 2.00
2016-08-28 14:04:25 2016-08-24_15-35-21__elektrische.Energie 2.01
2016-08-28 14:04:25 2016-08-24_15-57-50__elektrische.Energie 2.02
2016-08-28 14:04:25 2016-08-24_16-02-41__elektrische.Energie 2.03
2016-08-28 14:04:25 2016-08-24_16-25-54__elektrische.Energie 2.04
2016-08-28 14:04:25 2016-08-24_16-28-28__elektrische.Energie 2.05
2016-08-28 14:04:25 2016-08-24_16-31-41__elektrische.Energie 2.06
2016-08-28 14:04:25 2016-08-24_16-55-44__elektrische.Energie 2.07
2016-08-28 14:04:25 2016-08-24_16-58-37__elektrische.Energie 2.08
2016-08-28 14:04:25 2016-08-24_17-23-46__elektrische.Energie 2.09
2016-08-28 14:04:25 2016-08-24_17-26-08__elektrische.Energie 2.10
2016-08-28 14:04:25 2016-08-24_17-51-32__elektrische.Energie 2.11
2016-08-28 14:04:25 2016-08-24_17-54-27__elektrische.Energie 2.12
2016-08-28 14:04:25 2016-08-24_18-20-04__elektrische.Energie 2.13
2016-08-28 14:04:25 2016-08-24_18-22-28__elektrische.Energie 2.14
2016-08-28 14:04:25 2016-08-24_18-47-15__elektrische.Energie 2.15
2016-08-28 14:04:25 2016-08-24_18-52-57__elektrische.Energie 2.16
2016-08-28 14:04:25 2016-08-24_18-54-28__elektrische.Energie 2.17
2016-08-28 14:04:25 2016-08-24_19-19-53__elektrische.Energie 2.18
2016-08-28 14:04:25 2016-08-24_19-22-55__elektrische.Energie 2.19
2016-08-28 14:04:25 2016-08-24_19-48-40__elektrische.Energie 2.20
2016-08-28 14:04:25 2016-08-24_19-51-12__elektrische.Energie 2.21
2016-08-28 14:04:25 2016-08-24_20-17-06__elektrische.Energie 2.22
2016-08-28 14:04:25 2016-08-24_20-19-52__elektrische.Energie 2.23
2016-08-28 14:04:25 2016-08-24_20-44-55__elektrische.Energie 2.24
2016-08-28 14:04:25 2016-08-24_20-49-11__elektrische.Energie 2.25
2016-08-28 14:04:25 2016-08-24_21-12-27__elektrische.Energie 2.26
2016-08-28 14:04:25 2016-08-24_21-17-49__elektrische.Energie 2.27
2016-08-28 14:04:25 2016-08-24_21-40-46__elektrische.Energie 2.28
2016-08-28 14:04:25 2016-08-24_21-45-07__elektrische.Energie 2.29
2016-08-28 14:04:25 2016-08-24_22-10-34__elektrische.Energie 2.30
2016-08-28 14:04:25 2016-08-24_22-13-11__elektrische.Energie 2.31
2016-08-28 14:04:25 2016-08-24_22-37-00__elektrische.Energie 2.32
2016-08-28 14:04:25 2016-08-24_22-40-58__elektrische.Energie 2.33
2016-08-28 14:04:25 2016-08-24_22-45-07__elektrische.Energie 2.34
2016-08-28 14:04:25 2016-08-24_23-09-31__elektrische.Energie 2.35
2016-08-28 14:04:25 2016-08-24_23-14-00__elektrische.Energie 2.36
2016-08-28 14:04:25 2016-08-24_23-39-42__elektrische.Energie 2.37
2016-08-28 14:04:25 2016-08-24_23-42-25__elektrische.Energie 2.38
2016-08-28 14:04:25 2016-08-25_00-07-10__elektrische.Energie 2.39
2016-08-28 14:04:25 2016-08-25_00-11-41__elektrische.Energie 2.40
2016-08-28 14:04:25 2016-08-25_00-35-25__elektrische.Energie 2.41
2016-08-28 14:04:25 2016-08-25_00-38-12__elektrische.Energie 2.42
2016-08-28 14:04:25 2016-08-25_01-03-23__elektrische.Energie 2.43
2016-08-28 14:04:25 2016-08-25_01-07-40__elektrische.Energie 2.44
2016-08-28 14:04:25 2016-08-25_01-31-04__elektrische.Energie 2.45
2016-08-28 14:04:25 2016-08-25_01-36-28__elektrische.Energie 2.46
2016-08-28 14:04:25 2016-08-25_01-46-31__elektrische.Energie 2.47
2016-08-28 14:04:25 2016-08-25_02-03-54__elektrische.Energie 2.48
2016-08-28 14:04:25 2016-08-25_02-06-48__elektrische.Energie 2.49
2016-08-28 14:04:25 2016-08-25_02-32-07__elektrische.Energie 2.50
2016-08-28 14:04:25 2016-08-25_02-35-52__elektrische.Energie 2.51
2016-08-28 14:04:25 2016-08-25_03-01-55__elektrische.Energie 2.52
2016-08-28 14:04:25 2016-08-25_03-04-37__elektrische.Energie 2.53
2016-08-28 14:04:25 2016-08-25_03-27-41__elektrische.Energie 2.54
2016-08-28 14:04:25 2016-08-25_03-32-18__elektrische.Energie 2.55
2016-08-28 14:04:25 2016-08-25_03-58-01__elektrische.Energie 2.56
2016-08-28 14:04:25 2016-08-25_04-00-46__elektrische.Energie 2.57
2016-08-28 14:04:25 2016-08-25_04-25-39__elektrische.Energie 2.58
2016-08-28 14:04:25 2016-08-25_04-27-53__elektrische.Energie 2.59
2016-08-28 14:04:25 2016-08-25_04-52-13__elektrische.Energie 2.60
2016-08-28 14:04:25 2016-08-25_04-56-50__elektrische.Energie 2.61
2016-08-28 14:04:25 2016-08-25_05-00-10__elektrische.Energie 2.62
2016-08-28 14:04:25 2016-08-25_05-24-27__elektrische.Energie 2.63
2016-08-28 14:04:25 2016-08-25_05-29-02__elektrische.Energie 2.64
2016-08-28 14:04:25 2016-08-25_05-54-21__elektrische.Energie 2.65
2016-08-28 14:04:25 2016-08-25_05-56-42__elektrische.Energie 2.66
2016-08-28 14:04:25 2016-08-25_06-21-56__elektrische.Energie 2.67
2016-08-28 14:04:25 2016-08-25_06-24-51__elektrische.Energie 2.68
2016-08-28 14:04:25 2016-08-25_06-51-08__elektrische.Energie 2.69
2016-08-28 14:04:25 2016-08-25_06-53-12__elektrische.Energie 2.70
2016-08-28 14:04:25 2016-08-25_07-18-49__elektrische.Energie 2.71
2016-08-28 14:04:25 2016-08-25_07-21-26__elektrische.Energie 2.72
2016-08-28 14:04:25 2016-08-25_07-46-12__elektrische.Energie 2.73
2016-08-28 14:04:25 2016-08-25_07-51-16__elektrische.Energie 2.74
2016-08-28 14:04:25 2016-08-25_08-14-23__elektrische.Energie 2.75
2016-08-28 14:04:25 2016-08-25_08-19-29__elektrische.Energie 2.76
2016-08-28 14:04:25 2016-08-25_08-37-14__elektrische.Energie 2.77
2016-08-28 14:04:25 2016-08-25_08-47-25__elektrische.Energie 2.78
2016-08-28 14:04:25 2016-08-25_08-50-46__elektrische.Energie 2.79
2016-08-28 14:04:25 2016-08-25_09-15-04__elektrische.Energie 2.80
2016-08-28 14:04:25 2016-08-25_09-19-40__elektrische.Energie 2.81
2016-08-28 14:04:25 2016-08-25_09-43-29__elektrische.Energie 2.82
2016-08-28 14:04:25 2016-08-25_09-48-30__elektrische.Energie 2.83
2016-08-28 14:04:25 2016-08-25_10-11-37__elektrische.Energie 2.84
2016-08-28 14:04:25 2016-08-25_10-15-57__elektrische.Energie 2.85
2016-08-28 14:04:25 2016-08-25_10-41-14__elektrische.Energie 2.86
2016-08-28 14:04:25 2016-08-25_10-43-50__elektrische.Energie 2.87
2016-08-28 14:04:25 2016-08-25_11-09-22__elektrische.Energie 2.88
2016-08-28 14:04:25 2016-08-25_11-14-21__elektrische.Energie 2.89
2016-08-28 14:04:25 2016-08-25_11-37-12__elektrische.Energie 2.90
2016-08-28 14:04:25 2016-08-25_11-42-14__elektrische.Energie 2.91
2016-08-28 14:04:25 2016-08-25_12-04-44__elektrische.Energie 2.92
2016-08-28 14:04:25 2016-08-25_12-09-50__elektrische.Energie 2.93
2016-08-28 14:04:25 2016-08-25_12-28-03__elektrische.Energie 2.94
2016-08-28 14:04:25 2016-08-25_12-38-12__elektrische.Energie 2.95
2016-08-28 14:04:25 2016-08-25_12-41-15__elektrische.Energie 2.96
2016-08-28 14:04:25 2016-08-25_13-06-16__elektrische.Energie 2.97
2016-08-28 14:04:25 2016-08-25_13-10-01__elektrische.Energie 2.98
2016-08-28 14:04:25 2016-08-25_13-34-04__elektrische.Energie 2.99
2016-08-28 14:04:25 2016-08-25_13-38-20__elektrische.Energie 3.00
2016-08-28 14:04:25 2016-08-25_14-04-23__elektrische.Energie 3.01
2016-08-28 14:04:25 2016-08-25_14-06-56__elektrische.Energie 3.02
2016-08-28 14:04:25 2016-08-25_14-32-09__elektrische.Energie 3.03
2016-08-28 14:04:25 2016-08-25_14-34-12__elektrische.Energie 3.04
2016-08-28 14:04:25 2016-08-25_14-39-44__elektrische.Energie 3.05
2016-08-28 14:04:25 2016-08-25_14-42-07__elektrische.Energie 3.06
2016-08-28 14:04:25 2016-08-25_14-44-17__elektrische.Energie 3.07
2016-08-28 14:04:25 2016-08-25_14-47-16__elektrische.Energie 3.08
2016-08-28 14:04:25 2016-08-25_14-50-00__elektrische.Energie 3.09
2016-08-28 14:04:25 2016-08-25_14-52-31__elektrische.Energie 3.10
2016-08-28 14:04:25 2016-08-25_14-59-38__elektrische.Energie 3.11
2016-08-28 14:04:25 2016-08-25_15-04-37__elektrische.Energie 3.12
2016-08-28 14:04:25 2016-08-25_15-06-10__elektrische.Energie 3.13
2016-08-28 14:04:25 2016-08-25_15-09-42__elektrische.Energie 3.14
2016-08-28 14:04:25 2016-08-25_15-14-53__elektrische.Energie 3.15
2016-08-28 14:04:25 2016-08-25_15-17-07__elektrische.Energie 3.16
2016-08-28 14:04:25 2016-08-25_15-23-00__elektrische.Energie 3.17
2016-08-28 14:04:25 2016-08-25_15-25-34__elektrische.Energie 3.18
2016-08-28 14:04:25 2016-08-25_15-28-51__elektrische.Energie 3.19
2016-08-28 14:04:25 2016-08-25_15-50-56__elektrische.Energie 3.20
2016-08-28 14:04:25 2016-08-25_15-55-22__elektrische.Energie 3.21
2016-08-28 14:04:25 2016-08-25_16-18-35__elektrische.Energie 3.22
2016-08-28 14:04:25 2016-08-25_16-21-12__elektrische.Energie 3.23
2016-08-28 14:04:25 2016-08-25_16-45-57__elektrische.Energie 3.24
2016-08-28 14:04:25 2016-08-25_16-48-03__elektrische.Energie 3.25
2016-08-28 14:04:25 2016-08-25_16-52-04__elektrische.Energie 3.26
2016-08-28 14:04:25 2016-08-25_17-16-45__elektrische.Energie 3.27
2016-08-28 14:04:25 2016-08-25_17-20-36__elektrische.Energie 3.28
2016-08-28 14:04:25 2016-08-25_17-45-20__elektrische.Energie 3.29
2016-08-28 14:04:25 2016-08-25_17-47-59__elektrische.Energie 3.30
2016-08-28 14:04:25 2016-08-25_18-13-04__elektrische.Energie 3.31
2016-08-28 14:04:25 2016-08-25_18-18-11__elektrische.Energie 3.32
2016-08-28 14:04:25 2016-08-25_18-40-30__elektrische.Energie 3.33
2016-08-28 14:04:25 2016-08-25_18-45-40__elektrische.Energie 3.34
2016-08-28 14:04:25 2016-08-25_19-08-43__elektrische.Energie 3.35
2016-08-28 14:04:25 2016-08-25_19-13-56__elektrische.Energie 3.36
2016-08-28 14:04:25 2016-08-25_19-36-40__elektrische.Energie 3.37
2016-08-28 14:04:25 2016-08-25_19-41-54__elektrische.Energie 3.38
2016-08-28 14:04:25 2016-08-25_19-44-47__elektrische.Energie 3.39
2016-08-28 14:04:25 2016-08-25_20-09-36__elektrische.Energie 3.40
2016-08-28 14:04:25 2016-08-25_20-13-40__elektrische.Energie 3.41
2016-08-28 14:04:25 2016-08-25_20-38-04__elektrische.Energie 3.42
2016-08-28 14:04:25 2016-08-25_20-42-27__elektrische.Energie 3.43
2016-08-28 14:04:25 2016-08-25_21-08-03__elektrische.Energie 3.44
2016-08-28 14:04:25 2016-08-25_21-10-40__elektrische.Energie 3.45
2016-08-28 14:04:25 2016-08-25_21-35-26__elektrische.Energie 3.46
2016-08-28 14:04:25 2016-08-25_21-40-23__elektrische.Energie 3.47
2016-08-28 14:04:25 2016-08-25_22-03-36__elektrische.Energie 3.48
2016-08-28 14:04:25 2016-08-25_22-08-42__elektrische.Energie 3.49
2016-08-28 14:04:25 2016-08-25_22-31-28__elektrische.Energie 3.50
2016-08-28 14:04:25 2016-08-25_22-36-37__elektrische.Energie 3.51
2016-08-28 14:04:25 2016-08-25_23-01-47__elektrische.Energie 3.52
2016-08-28 14:04:25 2016-08-25_23-04-15__elektrische.Energie 3.53
2016-08-28 14:04:25 2016-08-25_23-07-13__elektrische.Energie 3.54
2016-08-28 14:04:25 2016-08-25_23-32-40__elektrische.Energie 3.55
2016-08-28 14:04:25 2016-08-25_23-35-27__elektrische.Energie 3.56
2016-08-28 14:04:25 2016-08-26_00-00-47__elektrische.Energie 3.57
2016-08-28 14:04:25 2016-08-26_00-05-02__elektrische.Energie 3.58
2016-08-28 14:04:25 2016-08-26_00-30-24__elektrische.Energie 3.59
2016-08-28 14:04:25 2016-08-26_00-32-59__elektrische.Energie 3.60
2016-08-28 14:04:25 2016-08-26_00-58-30__elektrische.Energie 3.61
2016-08-28 14:04:25 2016-08-26_01-00-35__elektrische.Energie 3.62
2016-08-28 14:04:25 2016-08-26_01-26-20__elektrische.Energie 3.63
2016-08-28 14:04:25 2016-08-26_01-28-58__elektrische.Energie 3.64
2016-08-28 14:04:25 2016-08-26_01-53-51__elektrische.Energie 3.65
2016-08-28 14:04:25 2016-08-26_01-58-56__elektrische.Energie 3.66
2016-08-28 14:04:25 2016-08-26_02-14-49__elektrische.Energie 3.67
2016-08-28 14:04:25 2016-08-26_02-27-18__elektrische.Energie 3.68
2016-08-28 14:04:25 2016-08-26_02-29-30__elektrische.Energie 3.69
2016-08-28 14:04:25 2016-08-26_02-55-22__elektrische.Energie 3.70
2016-08-28 14:04:25 2016-08-26_02-58-07__elektrische.Energie 3.71
2016-08-28 14:04:25 2016-08-26_03-23-09__elektrische.Energie 3.72
2016-08-28 14:04:25 2016-08-26_03-27-24__elektrische.Energie 3.73
2016-08-28 14:04:25 2016-08-26_03-50-39__elektrische.Energie 3.74
2016-08-28 14:04:25 2016-08-26_03-56-01__elektrische.Energie 3.75
2016-08-28 14:04:25 2016-08-26_04-18-55__elektrische.Energie 3.76
2016-08-28 14:04:25 2016-08-26_04-24-45__elektrische.Energie 3.77
2016-08-28 14:04:25 2016-08-26_04-47-35__elektrische.Energie 3.78
2016-08-28 14:04:25 2016-08-26_04-52-23__elektrische.Energie 3.79
2016-08-28 14:04:25 2016-08-26_05-16-54__elektrische.Energie 3.80
2016-08-28 14:04:25 2016-08-26_05-19-44__elektrische.Energie 3.81
2016-08-28 14:04:25 2016-08-26_05-23-08__elektrische.Energie 3.82
2016-08-28 14:04:25 2016-08-26_05-47-52__elektrische.Energie 3.83
2016-08-28 14:04:25 2016-08-26_05-52-02__elektrische.Energie 3.84
2016-08-28 14:04:25 2016-08-26_06-18-21__elektrische.Energie 3.85
2016-08-28 14:04:25 2016-08-26_06-20-45__elektrische.Energie 3.86
2016-08-28 14:04:25 2016-08-26_06-25-37__elektrische.Energie 3.77
2016-08-28 14:04:25 2016-08-26_06-25-54__elektrische.Energie 3.86
2016-08-28 14:04:25 2016-08-26_06-45-24__elektrische.Energie 3.87
2016-08-28 14:04:25 2016-08-26_06-48-21__elektrische.Energie 3.88
2016-08-28 14:04:25 2016-08-26_07-14-17__elektrische.Energie 3.89
2016-08-28 14:04:25 2016-08-26_07-16-44__elektrische.Energie 3.90
2016-08-28 14:04:25 2016-08-26_07-41-49__elektrische.Energie 3.91
2016-08-28 14:04:25 2016-08-26_07-44-50__elektrische.Energie 3.92
2016-08-28 14:04:25 2016-08-26_08-10-08__elektrische.Energie 3.93
2016-08-28 14:04:25 2016-08-26_08-14-53__elektrische.Energie 3.94
2016-08-28 14:04:25 2016-08-26_08-40-09__elektrische.Energie 3.95
2016-08-28 14:04:25 2016-08-26_08-42-57__elektrische.Energie 3.96
2016-08-28 14:04:25 2016-08-26_09-05-55__elektrische.Energie 3.97
2016-08-28 14:04:25 2016-08-26_09-10-44__elektrische.Energie 3.98
2016-08-28 14:04:25 2016-08-26_09-35-23__elektrische.Energie 3.99
2016-08-28 14:04:25 2016-08-26_09-38-15__elektrische.Energie 4.00
2016-08-28 14:04:25 2016-08-26_09-42-09__elektrische.Energie 4.01
2016-08-28 14:04:25 2016-08-26_10-06-31__elektrische.Energie 4.02
2016-08-28 14:04:25 2016-08-26_10-10-57__elektrische.Energie 4.03
2016-08-28 14:04:25 2016-08-26_10-37-10__elektrische.Energie 4.04
2016-08-28 14:04:25 2016-08-26_10-39-35__elektrische.Energie 4.05
2016-08-28 14:04:25 2016-08-26_11-04-22__elektrische.Energie 4.06
2016-08-28 14:04:25 2016-08-26_11-07-20__elektrische.Energie 4.07
2016-08-28 14:04:25 2016-08-26_11-32-20__elektrische.Energie 4.08
2016-08-28 14:04:25 2016-08-26_11-37-00__elektrische.Energie 4.09
2016-08-28 14:04:25 2016-08-26_12-00-01__elektrische.Energie 4.10
2016-08-28 14:04:25 2016-08-26_12-05-49__elektrische.Energie 4.11
2016-08-28 14:04:25 2016-08-26_12-28-29__elektrische.Energie 4.12
2016-08-28 14:04:25 2016-08-26_12-33-15__elektrische.Energie 4.13
2016-08-28 14:04:25 2016-08-26_12-58-39__elektrische.Energie 4.14
2016-08-28 14:04:25 2016-08-26_13-01-28__elektrische.Energie 4.15
2016-08-28 14:04:25 2016-08-26_13-24-37__elektrische.Energie 4.16
2016-08-28 14:04:25 2016-08-26_13-29-25__elektrische.Energie 4.17
2016-08-28 14:04:25 2016-08-26_13-32-35__elektrische.Energie 4.18
2016-08-28 14:04:25 2016-08-26_13-57-04__elektrische.Energie 4.19
2016-08-28 14:04:25 2016-08-26_14-01-19__elektrische.Energie 4.20
2016-08-28 14:04:25 2016-08-26_14-26-32__elektrische.Energie 4.21
2016-08-28 14:04:25 2016-08-26_14-27-02__elektrische.Energie 4.12
2016-08-28 14:04:25 2016-08-26_14-29-28__elektrische.Energie 4.22
2016-08-28 14:04:25 2016-08-26_14-32-10__elektrische.Energie 4.23
2016-08-28 14:04:25 2016-08-26_14-34-38__elektrische.Energie 4.24
2016-08-28 14:04:25 2016-08-26_14-39-53__elektrische.Energie 4.25
2016-08-28 14:04:25 2016-08-26_14-42-41__elektrische.Energie 4.27
2016-08-28 14:04:25 2016-08-26_14-47-08__elektrische.Energie 4.28
2016-08-28 14:04:25 2016-08-26_14-55-14__elektrische.Energie 4.29
2016-08-28 14:04:25 2016-08-26_14-57-39__elektrische.Energie 4.30
2016-08-28 14:04:25 2016-08-26_15-02-51__elektrische.Energie 4.31
2016-08-28 14:04:25 2016-08-26_15-05-38__elektrische.Energie 4.32
2016-08-28 14:04:25 2016-08-26_15-08-10__elektrische.Energie 4.33
2016-08-28 14:04:25 2016-08-26_15-11-11__elektrische.Energie 4.34
2016-08-28 14:04:25 2016-08-26_15-16-32__elektrische.Energie 4.35
2016-08-28 14:04:25 2016-08-26_15-20-55__elektrische.Energie 4.36
2016-08-28 14:04:25 2016-08-26_15-41-37__elektrische.Energie 4.37
2016-08-28 14:04:25 2016-08-26_15-46-32__elektrische.Energie 4.38
2016-08-28 14:04:25 2016-08-26_15-48-52__elektrische.Energie 4.39
2016-08-28 14:04:25 2016-08-26_16-11-34__elektrische.Energie 4.40
2016-08-28 14:04:25 2016-08-26_16-16-03__elektrische.Energie 4.41
2016-08-28 14:04:25 2016-08-26_16-39-11__elektrische.Energie 4.42
2016-08-28 14:04:25 2016-08-26_16-44-46__elektrische.Energie 4.43
2016-08-28 14:04:25 2016-08-26_17-07-35__elektrische.Energie 4.44
2016-08-28 14:04:25 2016-08-26_17-09-59__elektrische.Energie 4.45
2016-08-28 14:04:25 2016-08-26_17-13-52__elektrische.Energie 4.46
2016-08-28 14:04:25 2016-08-26_17-40-18__elektrische.Energie 4.47
2016-08-28 14:04:25 2016-08-26_17-42-32__elektrische.Energie 4.48
2016-08-28 14:04:25 2016-08-26_18-05-58__elektrische.Energie 4.49
2016-08-28 14:04:25 2016-08-26_18-11-12__elektrische.Energie 4.50
2016-08-28 14:04:25 2016-08-26_18-36-49__elektrische.Energie 4.51
2016-08-28 14:04:25 2016-08-26_18-39-21__elektrische.Energie 4.52
2016-08-28 14:04:25 2016-08-26_19-04-07__elektrische.Energie 4.53
2016-08-28 14:04:25 2016-08-26_19-08-58__elektrische.Energie 4.54
2016-08-28 14:04:25 2016-08-26_19-32-12__elektrische.Energie 4.55
2016-08-28 14:04:25 2016-08-26_19-34-45__elektrische.Energie 4.56
2016-08-28 14:04:25 2016-08-26_19-59-59__elektrische.Energie 4.57
2016-08-28 14:04:25 2016-08-26_20-04-55__elektrische.Energie 4.58
2016-08-28 14:04:25 2016-08-26_20-27-25__elektrische.Energie 4.59
2016-08-28 14:04:25 2016-08-26_20-32-28__elektrische.Energie 4.60
2016-08-28 14:04:25 2016-08-26_20-35-37__elektrische.Energie 4.61
2016-08-28 14:04:25 2016-08-26_21-00-47__elektrische.Energie 4.62
2016-08-28 14:04:25 2016-08-26_21-04-30__elektrische.Energie 4.63
2016-08-28 14:04:25 2016-08-26_21-28-49__elektrische.Energie 4.64
2016-08-28 14:04:25 2016-08-26_21-33-18__elektrische.Energie 4.65
2016-08-28 14:04:25 2016-08-26_21-56-34__elektrische.Energie 4.66
2016-08-28 14:04:25 2016-08-26_22-01-47__elektrische.Energie 4.67
2016-08-28 14:04:25 2016-08-26_22-26-15__elektrische.Energie 4.68
2016-08-28 14:04:25 2016-08-26_22-29-18__elektrische.Energie 4.69
2016-08-28 14:04:25 2016-08-26_22-55-03__elektrische.Energie 4.70
2016-08-28 14:04:25 2016-08-26_22-57-35__elektrische.Energie 4.71
2016-08-28 14:04:25 2016-08-26_23-22-29__elektrische.Energie 4.72
2016-08-28 14:04:25 2016-08-26_23-24-31__elektrische.Energie 4.73
2016-08-28 14:04:25 2016-08-26_23-28-22__elektrische.Energie 4.74
2016-08-28 14:04:25 2016-08-26_23-53-17__elektrische.Energie 4.75
2016-08-28 14:04:25 2016-08-26_23-57-10__elektrische.Energie 4.76
2016-08-28 14:04:25 2016-08-27_00-20-43__elektrische.Energie 4.77
2016-08-28 14:04:25 2016-08-27_00-25-57__elektrische.Energie 4.78
2016-08-28 14:04:25 2016-08-27_00-48-55__elektrische.Energie 4.79
2016-08-28 14:04:25 2016-08-27_00-53-27__elektrische.Energie 4.80
2016-08-28 14:04:25 2016-08-27_01-18-43__elektrische.Energie 4.81
2016-08-28 14:04:25 2016-08-27_01-21-25__elektrische.Energie 4.82
2016-08-28 14:04:25 2016-08-27_01-46-54__elektrische.Energie 4.83
2016-08-28 14:04:25 2016-08-27_01-49-05__elektrische.Energie 4.84
2016-08-28 14:04:25 2016-08-27_02-13-07__elektrische.Energie 4.85
2016-08-28 14:04:25 2016-08-27_02-18-07__elektrische.Energie 4.86
2016-08-28 14:04:25 2016-08-27_02-21-09__elektrische.Energie 4.87
2016-08-28 14:04:25 2016-08-27_02-45-54__elektrische.Energie 4.88
2016-08-28 14:04:25 2016-08-27_02-49-53__elektrische.Energie 4.89
2016-08-28 14:04:25 2016-08-27_03-13-23__elektrische.Energie 4.90
2016-08-28 14:04:25 2016-08-27_03-18-39__elektrische.Energie 4.91
2016-08-28 14:04:25 2016-08-27_03-41-39__elektrische.Energie 4.92
2016-08-28 14:04:25 2016-08-27_03-46-57__elektrische.Energie 4.93
2016-08-28 14:04:25 2016-08-27_04-09-37__elektrische.Energie 4.94
2016-08-28 14:04:25 2016-08-27_04-13-55__elektrische.Energie 4.95
2016-08-28 14:04:25 2016-08-27_04-37-19__elektrische.Energie 4.96
2016-08-28 14:04:25 2016-08-27_04-42-43__elektrische.Energie 4.97
2016-08-28 14:04:25 2016-08-27_04-45-03__elektrische.Energie 4.98
2016-08-28 14:04:25 2016-08-27_05-10-10__elektrische.Energie 4.99
2016-08-28 14:04:25 2016-08-27_05-13-04__elektrische.Energie 5.00
2016-08-28 14:04:25 2016-08-27_05-38-24__elektrische.Energie 5.01
2016-08-28 14:04:25 2016-08-27_05-42-30__elektrische.Energie 5.02
2016-08-28 14:04:25 2016-08-27_06-05-16__elektrische.Energie 5.03
2016-08-28 14:04:25 2016-08-27_06-10-54__elektrische.Energie 5.04
2016-08-28 14:04:25 2016-08-27_06-33-59__elektrische.Energie 5.05
2016-08-28 14:04:25 2016-08-27_06-38-36__elektrische.Energie 5.06
2016-08-28 14:04:25 2016-08-27_07-04-20__elektrische.Energie 5.07
2016-08-28 14:04:25 2016-08-27_07-07-05__elektrische.Energie 5.08
2016-08-28 14:04:25 2016-08-27_07-31-58__elektrische.Energie 5.09
2016-08-28 14:04:25 2016-08-27_07-34-12__elektrische.Energie 5.10
2016-08-28 14:04:25 2016-08-27_07-52-43__elektrische.Energie 5.11
2016-08-28 14:04:25 2016-08-27_08-03-10__elektrische.Energie 5.12
2016-08-28 14:04:25 2016-08-27_08-05-43__elektrische.Energie 5.13
2016-08-28 14:04:25 2016-08-27_08-30-47__elektrische.Energie 5.14
2016-08-28 14:04:25 2016-08-27_08-34-45__elektrische.Energie 5.15
2016-08-28 14:04:25 2016-08-27_08-58-07__elektrische.Energie 5.16
2016-08-28 14:04:25 2016-08-27_09-03-04__elektrische.Energie 5.17
2016-08-28 14:04:25 2016-08-27_09-26-14__elektrische.Energie 5.18
2016-08-28 14:04:25 2016-08-27_09-31-13__elektrische.Energie 5.19
2016-08-28 14:04:25 2016-08-27_09-56-41__elektrische.Energie 5.20
2016-08-28 14:04:25 2016-08-27_09-59-05__elektrische.Energie 5.21
2016-08-28 14:04:25 2016-08-27_10-23-42__elektrische.Energie 5.22
2016-08-28 14:04:25 2016-08-27_10-26-39__elektrische.Energie 5.23
2016-08-28 14:04:25 2016-08-27_10-51-57__elektrische.Energie 5.24
2016-08-28 14:04:25 2016-08-27_10-55-01__elektrische.Energie 5.25
2016-08-28 14:04:25 2016-08-27_10-59-03__elektrische.Energie 5.26
2016-08-28 14:04:25 2016-08-27_11-23-05__elektrische.Energie 5.27
2016-08-28 14:04:25 2016-08-27_11-27-27__elektrische.Energie 5.28
2016-08-28 14:04:25 2016-08-27_11-50-52__elektrische.Energie 5.29
2016-08-28 14:04:25 2016-08-27_11-53-07__elektrische.Energie 5.30
2016-08-28 14:04:25 2016-08-27_12-15-19__elektrische.Energie 5.31
2016-08-28 14:04:25 2016-08-27_12-21-10__elektrische.Energie 5.32
2016-08-28 14:04:25 2016-08-27_12-23-44__elektrische.Energie 5.33
2016-08-28 14:04:25 2016-08-27_12-46-38__elektrische.Energie 5.34
2016-08-28 14:04:25 2016-08-27_12-52-28__elektrische.Energie 5.35
2016-08-28 14:04:25 2016-08-27_12-54-35__elektrische.Energie 5.36
2016-08-28 14:04:25 2016-08-27_13-17-49__elektrische.Energie 5.37
2016-08-28 14:04:25 2016-08-27_13-22-09__elektrische.Energie 5.38
2016-08-28 14:04:25 2016-08-27_13-44-37__elektrische.Energie 5.39
2016-08-28 14:04:25 2016-08-27_13-47-27__elektrische.Energie 5.40
2016-08-28 14:04:25 2016-08-27_13-51-23__elektrische.Energie 5.41
2016-08-28 14:04:25 2016-08-27_13-54-31__elektrische.Energie 5.42
2016-08-28 14:04:25 2016-08-27_13-57-28__elektrische.Energie 5.43
2016-08-28 14:04:25 2016-08-27_14-00-10__elektrische.Energie 5.44
2016-08-28 14:04:25 2016-08-27_14-02-37__elektrische.Energie 5.45
2016-08-28 14:04:25 2016-08-27_14-04-51__elektrische.Energie 5.46
2016-08-28 14:04:25 2016-08-27_14-07-53__elektrische.Energie 5.47
2016-08-28 14:04:25 2016-08-27_14-17-40__elektrische.Energie 5.48
2016-08-28 14:04:25 2016-08-27_14-20-35__elektrische.Energie 5.49
2016-08-28 14:04:25 2016-08-27_14-23-15__elektrische.Energie 5.50
2016-08-28 14:04:25 2016-08-27_14-27-52__elektrische.Energie 5.51
2016-08-28 14:04:25 2016-08-27_14-30-53__elektrische.Energie 5.52
2016-08-28 14:04:25 2016-08-27_14-33-40__elektrische.Energie 5.53
2016-08-28 14:04:25 2016-08-27_14-38-29__elektrische.Energie 5.54
2016-08-28 14:04:25 2016-08-27_14-43-26__elektrische.Energie 5.55
2016-08-28 14:04:25 2016-08-27_14-46-04__elektrische.Energie 5.56
2016-08-28 14:04:25 2016-08-27_15-06-00__elektrische.Energie 5.57
2016-08-28 14:04:25 2016-08-27_15-10-59__elektrische.Energie 5.58
2016-08-28 14:04:25 2016-08-27_15-15-25__elektrische.Energie 5.59
2016-08-28 14:04:25 2016-08-27_15-36-24__elektrische.Energie 5.60
2016-08-28 14:04:25 2016-08-27_15-42-00__elektrische.Energie 5.61
2016-08-28 14:04:25 2016-08-27_15-43-57__elektrische.Energie 5.62
2016-08-28 14:04:25 2016-08-27_16-07-22__elektrische.Energie 5.63
2016-08-28 14:04:25 2016-08-27_16-12-04__elektrische.Energie 5.64
2016-08-28 14:04:25 2016-08-27_16-35-08__elektrische.Energie 5.65
2016-08-28 14:04:25 2016-08-27_16-37-52__elektrische.Energie 5.66
2016-08-28 14:04:25 2016-08-27_16-40-21__elektrische.Energie 5.67
2016-08-28 14:04:25 2016-08-27_17-04-49__elektrische.Energie 5.68
2016-08-28 14:04:25 2016-08-27_17-07-52__elektrische.Energie 5.69
2016-08-28 14:04:25 2016-08-27_17-30-51__elektrische.Energie 5.70
2016-08-28 14:04:25 2016-08-27_17-36-10__elektrische.Energie 5.71
2016-08-28 14:04:25 2016-08-27_17-38-28__elektrische.Energie 5.72
2016-08-28 14:04:25 2016-08-27_17-58-49__elektrische.Energie 5.73
2016-08-28 14:04:25 2016-08-27_18-01-05__elektrische.Energie 5.74
2016-08-28 14:04:25 2016-08-27_18-05-04__elektrische.Energie 5.75
2016-08-28 14:04:25 2016-08-27_18-29-19__elektrische.Energie 5.76
2016-08-28 14:04:25 2016-08-27_18-31-54__elektrische.Energie 5.77
2016-08-28 14:04:25 2016-08-27_18-35-06__elektrische.Energie 5.78
2016-08-28 14:04:25 2016-08-27_18-57-16__elektrische.Energie 5.79
2016-08-28 14:04:25 2016-08-27_19-02-14__elektrische.Energie 5.80
2016-08-28 14:04:25 2016-08-27_19-04-32__elektrische.Energie 5.81
2016-08-28 14:04:25 2016-08-27_19-27-33__elektrische.Energie 5.82
2016-08-28 14:04:25 2016-08-27_19-32-05__elektrische.Energie 5.83
2016-08-28 14:04:25 2016-08-27_19-54-25__elektrische.Energie 5.84
2016-08-28 14:04:25 2016-08-27_19-57-21__elektrische.Energie 5.85
2016-08-27_19-57-21__elektrische.Energie 5.85
2016-08-28_12-49-28__elektrische.Energie 6.80
ZitatNote that numeric arguments in parentheses that following the type name (ex: "VARCHAR(255)") are ignored by SQLite - SQLite does not impose any length restrictions (other than the large global SQLITE_MAX_LENGTH limit) on the length of strings, BLOBs or numeric values.Quelle: https://www.sqlite.org/datatype3.html#section_3_2
Zitat von: DS_Starter am 28 August 2016, 20:38:05
Werde dem Modul noch einen Plausi-Check gönnen wenn der DB-Type noch gerade SQLite ist ;)
Zitat
define AuswertungPV DbRep <DbLog>
Zitat
define LogDB DbLog ./db.conf .*:.*
define AuswertungPV DbRep LogDB
ZitatKann die abzufragende Datenbank einen anderen Aufbau haben als die Datenbank DBlog
set .... exportToFile
2016-08-30 00:00:00: gas.mainCounter, DUMMY, meterReading_m3: 3385.881, meterReading_m3, 3385.881,
2016-08-30 23:55:27: gas.mainCounter, DUMMY, meterReading_m3: 3386.559, meterReading_m3, 3386.559,
2016-08-31 00:00:00: gas.mainCounter, DUMMY, meterReading_m3: 3386.559, meterReading_m3, 3386.559,
2016-09-01 00:00:00: gas.mainCounter, DUMMY, meterReading_m3: 3386.559, meterReading_m3, 3386.559,
2016-09-02 00:00:00: gas.mainCounter, DUMMY, meterReading_m3: 3386.559, meterReading_m3, 3386.559,
2016-09-02 23:59:59: gas.mainCounter, DUMMY, meterReading_m3: 3386.559, meterReading_m3, 3386.559,
2016-08-30_00-00-00__Gas 3385.881 2016-09-03 19:34:43
2016-08-30_23-55-27__Gas 3386.559 2016-09-03 19:34:43
2016-08-31_00-00-00__Gas 3386.559 2016-09-03 19:34:43
2016-09-01_00-00-00__Gas 3386.559 2016-09-03 19:34:43
2016-09-02_00-00-00__Gas 3386.559 2016-09-03 19:34:43
2016-09-02_23-59-59__Gas 3386.559 2016-09-03 19:34:43
2016.09.03 19:36:26 4: DbRep DbRep.gas.mainCounter -> BlockingCall diffval_ParseDone finished
TIMESTAMP: 0_2016-01-01, DEVICE: gas.mainCounter, READING: meterReading_m3, VALUE: .
2016.09.03 19:36:26 2: DbRep DbRep.gas.mainCounter - ERROR - value isn't numeric in diffValue function. Faulty dataset was
MjAxNi0xMg== 0 2016-12-01
MjAxNi0xMQ== 0 2016-11-01
MjAxNi0xMA== 0 2016-10-01
MjAxNi0wOQ== 2016-09-02 23:59:59 3386.559
MjAxNi0wOQ== 2016-09-02 00:00:00 3386.559
MjAxNi0wOQ== 2016-09-01 00:00:00 3386.559
MjAxNi0wOA== 2016-08-31 00:00:00 3386.559
MjAxNi0wOA== 2016-08-30 23:55:27 3386.559
MjAxNi0wOA== 2016-08-30 00:00:00 3385.881
MjAxNi0wNw== 0 2016-07-01
MjAxNi0wNg== 0 2016-06-01
MjAxNi0wNQ== 0 2016-05-01
MjAxNi0wNA== 0 2016-04-01
MjAxNi0wMw== 0 2016-03-01
MjAxNi0wMg== 0 2016-02-01
ZitatDas mit dem readingPreventFromDel klappt super!
2016.09.30 00:53:09 4: DbRep dbRepOil - -------- New selection ---------
2016.09.30 00:53:09 4: DbRep dbRepOil - Aggregation: day
2016.09.30 00:53:09 4: DbRep dbRepOil - Timestamp begin human readable: 2016-08-20 00:00:00
2016.09.30 00:53:09 4: DbRep dbRepOil - Timestamp end human readable: 2016-09-30 00:53:09
2016.09.30 00:53:09 4: BlockingCall (sumval_DoParse): created child (3115), uses telnetPort to connect back
2016.09.30 00:53:09 4: DbRep dbRepOil -> Start BlockingCall sumval_DoParse
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-20 00:00:00' AND '2016-08-21' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-21' AND '2016-08-22' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-22' AND '2016-08-23' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-23' AND '2016-08-24' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-24' AND '2016-08-25' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-25' AND '2016-08-26' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-26' AND '2016-08-27' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-27' AND '2016-08-28' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-28' AND '2016-08-29' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-29' AND '2016-08-30' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-30' AND '2016-08-31' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-08-31' AND '2016-09-01' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-09-01' AND '2016-09-02' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-09-02' AND '2016-09-03' ;
2016.09.30 00:53:09 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-09-03' AND '2016-09-04' ;
...
2016.09.30 00:53:10 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-09-28' AND '2016-09-29' ;
2016.09.30 00:53:10 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-09-29' AND '2016-09-30' ;
2016.09.30 00:53:10 4: DbRep dbRepOil - SQL to execute: SELECT SUM(VALUE) FROM `history` where READING = 'Oelstand' AND TIMESTAMP BETWEEN '2016-09-30' AND '2016-09-30 00:53:09' ;
2016.09.30 00:53:10 4: DbRep dbRepOil -> BlockingCall sumval_DoParse finished
2016.09.30 00:53:10 4: Connection accepted from telnetPort_127.0.0.1_46772
2016.09.30 00:53:10 4: DbRep dbRepOil -> Start BlockingCall sumval_ParseDone
2016.09.30 00:53:10 4: DbRep dbRepOil -> BlockingCall sumval_ParseDone finished
ZitatVersuch mal 24:00:00 in Deine Datenbank einzutragen, dann reden wir weiter.
ZitatDas geht hier ja richtig schnell. Der Grenzwertproblemfix war erfolgreich.
errortext
Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at ./FHEM/93_DbRep.pm line 1759.
2016-10-20 17:03:13
eval {$dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, RaiseError => 1, AutoInactiveDestroy => 1 });};
STATE connected
TYPE DbLog
dbconn mysql:database=fhem;host=192.168.2.10;port=3306
dbuser fhem
Messages collected while initializing FHEM:
configDB: DbLog_meterReading already defined, delete it first
2015-11-27_19-24-23__XXYY__total__DIFF__2015-10 636.9493 2016-11-11 14:47:48
2015-12-16_21-14-49__XXYY__total__DIFF__2015-12 169.1893 2016-11-11 14:47:48
Internals:
DATABASE fhem
DEF myDbLogSQL
LASTCMD
NAME calc_solar_year
NOTIFYDEV global,calc_solar_year
NR 310
NTFY_ORDER 50-calc_solar_year
ROLE Client
STATE connected
TYPE DbRep
Helper:
DBLOGDEVICE myDbLogSQL
Readings:
2016-11-11 14:47:48 2000-01-17__solar__total__DIFF__2000-01 -
2016-11-11 14:47:48 2000-02-01__solar__total__DIFF__2000-02 -
2016-11-11 14:47:48 2000-03-01__solar__total__DIFF__2000-03 -
2016-11-11 14:47:48 2000-04-01__solar__total__DIFF__2000-04 -
2016-11-11 14:47:48 2000-05-01__solar__total__DIFF__2000-05 -
2016-11-11 14:47:48 2000-06-01__solar__total__DIFF__2000-06 -
2016-11-11 14:47:48 2000-07-01__solar__total__DIFF__2000-07 -
2016-11-11 14:47:48 2000-08-01__solar__total__DIFF__2000-08 -
2016-11-11 14:47:48 2000-09-01__solar__total__DIFF__2000-09 -
2016-11-11 14:47:48 2000-10-01__solar__total__DIFF__2000-10 -
2016-11-11 14:47:48 2000-11-01__solar__total__DIFF__2000-11 -
2016-11-11 14:47:48 2000-12-01__solar__total__DIFF__2000-12 -
2016-11-11 14:47:48 2001-01-01__solar__total__DIFF__2001-01 -
2016-11-11 14:47:48 2001-02-01__solar__total__DIFF__2001-02 -
2016-11-11 14:47:48 2001-03-01__solar__total__DIFF__2001-03 -
2016-11-11 14:47:48 2001-04-01__solar__total__DIFF__2001-04 -
2016-11-11 14:47:48 2001-05-01__solar__total__DIFF__2001-05 -
2016-11-11 14:47:48 2001-06-01__solar__total__DIFF__2001-06 -
2016-11-11 14:47:48 2001-07-01__solar__total__DIFF__2001-07 -
2016-11-11 14:47:48 2001-08-01__solar__total__DIFF__2001-08 -
2016-11-11 14:47:48 2001-09-01__solar__total__DIFF__2001-09 -
2016-11-11 14:47:48 2001-10-01__solar__total__DIFF__2001-10 -
2016-11-11 14:47:48 2001-11-01__solar__total__DIFF__2001-11 -
2016-11-11 14:47:48 2001-12-01__solar__total__DIFF__2001-12 -
2016-11-11 14:47:48 2002-01-01__solar__total__DIFF__2002-01 -
2016-11-11 14:47:48 2002-03-01__solar__total__DIFF__2002-03 -
2016-11-11 14:47:48 2002-04-01__solar__total__DIFF__2002-04 -
2016-11-11 14:47:48 2002-05-01__solar__total__DIFF__2002-05 -
2016-11-11 14:47:48 2002-06-01__solar__total__DIFF__2002-06 -
2016-11-11 14:47:48 2002-07-01__solar__total__DIFF__2002-07 -
2016-11-11 14:47:48 2002-08-01__solar__total__DIFF__2002-08 -
2016-11-11 14:47:48 2002-09-01__solar__total__DIFF__2002-09 -
2016-11-11 14:47:48 2002-10-01__solar__total__DIFF__2002-10 -
2016-11-11 14:47:48 2002-11-01__solar__total__DIFF__2002-11 -
2016-11-11 14:47:48 2002-12-01__solar__total__DIFF__2002-12 -
2016-11-11 14:47:48 2003-01-01__solar__total__DIFF__2003-01 -
2016-11-11 14:47:48 2003-02-01__solar__total__DIFF__2003-02 -
2016-11-11 14:47:48 2003-03-01__solar__total__DIFF__2003-03 -
2016-11-11 14:47:48 2003-04-01__solar__total__DIFF__2003-04 -
2016-11-11 14:47:48 2003-05-01__solar__total__DIFF__2003-05 -
2016-11-11 14:47:48 2003-06-01__solar__total__DIFF__2003-06 -
2016-11-11 14:47:48 2003-07-01__solar__total__DIFF__2003-07 -
2016-11-11 14:47:48 2003-08-01__solar__total__DIFF__2003-08 -
2016-11-11 14:47:48 2003-09-01__solar__total__DIFF__2003-09 -
2016-11-11 14:47:48 2003-10-01__solar__total__DIFF__2003-10 -
2016-11-11 14:47:48 2003-11-01__solar__total__DIFF__2003-11 -
2016-11-11 14:47:48 2003-12-01__solar__total__DIFF__2003-12 -
2016-11-11 14:47:48 2004-01-01__solar__total__DIFF__2004-01 -
2016-11-11 14:47:48 2004-02-01__solar__total__DIFF__2004-02 -
2016-11-11 14:47:48 2004-03-01__solar__total__DIFF__2004-03 -
2016-11-11 14:47:48 2004-04-01__solar__total__DIFF__2004-04 -
2016-11-11 14:47:48 2004-05-01__solar__total__DIFF__2004-05 -
2016-11-11 14:47:48 2004-06-01__solar__total__DIFF__2004-06 -
2016-11-11 14:47:48 2004-07-01__solar__total__DIFF__2004-07 -
2016-11-11 14:47:48 2004-08-01__solar__total__DIFF__2004-08 -
2016-11-11 14:47:48 2004-09-01__solar__total__DIFF__2004-09 -
2016-11-11 14:47:48 2004-10-01__solar__total__DIFF__2004-10 -
2016-11-11 14:47:48 2004-11-01__solar__total__DIFF__2004-11 -
2016-11-11 14:47:48 2004-12-01__solar__total__DIFF__2004-12 -
2016-11-11 14:47:48 2005-01-01__solar__total__DIFF__2005-01 -
2016-11-11 14:47:48 2005-02-01__solar__total__DIFF__2005-02 -
2016-11-11 14:47:48 2005-03-01__solar__total__DIFF__2005-03 -
2016-11-11 14:47:48 2005-04-01__solar__total__DIFF__2005-04 -
2016-11-11 14:47:48 2005-05-01__solar__total__DIFF__2005-05 -
2016-11-11 14:47:48 2005-06-01__solar__total__DIFF__2005-06 -
2016-11-11 14:47:48 2005-07-01__solar__total__DIFF__2005-07 -
2016-11-11 14:47:48 2005-08-01__solar__total__DIFF__2005-08 -
2016-11-11 14:47:48 2005-09-01__solar__total__DIFF__2005-09 -
2016-11-11 14:47:48 2005-10-01__solar__total__DIFF__2005-10 -
2016-11-11 14:47:48 2005-11-01__solar__total__DIFF__2005-11 -
2016-11-11 14:47:48 2005-12-01__solar__total__DIFF__2005-12 -
2016-11-11 14:47:48 2006-01-01__solar__total__DIFF__2006-01 -
2016-11-11 14:47:48 2006-02-01__solar__total__DIFF__2006-02 -
2016-11-11 14:47:48 2006-03-01__solar__total__DIFF__2006-03 -
2016-11-11 14:47:48 2006-04-01__solar__total__DIFF__2006-04 -
2016-11-11 14:47:48 2006-05-01__solar__total__DIFF__2006-05 -
2016-11-11 14:47:48 2006-06-01__solar__total__DIFF__2006-06 -
2016-11-11 14:47:48 2006-07-01__solar__total__DIFF__2006-07 -
2016-11-11 14:47:48 2006-08-01__solar__total__DIFF__2006-08 -
2016-11-11 14:47:48 2006-10-01__solar__total__DIFF__2006-10 -
2016-11-11 14:47:48 2006-11-01__solar__total__DIFF__2006-11 -
2016-11-11 14:47:48 2006-12-01__solar__total__DIFF__2006-12 -
2016-11-11 14:47:48 2007-01-01__solar__total__DIFF__2007-01 -
2016-11-11 14:47:48 2007-02-01__solar__total__DIFF__2007-02 -
2016-11-11 14:47:48 2007-03-01__solar__total__DIFF__2007-03 -
2016-11-11 14:47:48 2007-04-01__solar__total__DIFF__2007-04 -
2016-11-11 14:47:48 2007-05-01__solar__total__DIFF__2007-05 -
2016-11-11 14:47:48 2007-06-01__solar__total__DIFF__2007-06 -
2016-11-11 14:47:48 2007-07-01__solar__total__DIFF__2007-07 -
2016-11-11 14:47:48 2007-08-01__solar__total__DIFF__2007-08 -
2016-11-11 14:47:48 2007-09-01__solar__total__DIFF__2007-09 -
2016-11-11 14:47:48 2007-10-01__solar__total__DIFF__2007-10 -
2016-11-11 14:47:48 2007-11-01__solar__total__DIFF__2007-11 -
2016-11-11 14:47:48 2007-12-01__solar__total__DIFF__2007-12 -
2016-11-11 14:47:48 2008-01-01__solar__total__DIFF__2008-01 -
2016-11-11 14:47:48 2008-02-01__solar__total__DIFF__2008-02 -
2016-11-11 14:47:48 2008-03-31_23-00-00__solar__total__DIFF__2008-03 344.7000
2016-11-11 14:47:48 2008-04-30_23-00-00__solar__total__DIFF__2008-04 499.6000
2016-11-11 14:47:48 2008-05-31_23-00-00__solar__total__DIFF__2008-05 692.0000
2016-11-11 14:47:48 2008-06-30_23-00-00__solar__total__DIFF__2008-06 511.1000
2016-11-11 14:47:48 2008-07-31_23-00-00__solar__total__DIFF__2008-07 585.6000
2016-11-11 14:47:48 2008-08-31_23-00-00__solar__total__DIFF__2008-08 531.9000
2016-11-11 14:47:48 2008-09-30_23-00-00__solar__total__DIFF__2008-09 406.0000
2016-11-11 14:47:48 2008-10-31_23-00-00__solar__total__DIFF__2008-10 276.1000
2016-11-11 14:47:48 2008-11-30_23-00-00__solar__total__DIFF__2008-11 219.3000
2016-11-11 14:47:48 2008-12-31_23-00-00__solar__total__DIFF__2008-12 115.8000
2016-11-11 14:47:48 2009-01-31_23-00-00__solar__total__DIFF__2009-01 235.1200
2016-11-11 14:47:48 2009-02-28_23-00-00__solar__total__DIFF__2009-02 140.9000
2016-11-11 14:47:48 2009-03-31_23-00-00__solar__total__DIFF__2009-03 339.9000
2016-11-11 14:47:48 2009-04-30_23-00-00__solar__total__DIFF__2009-04 565.0000
2016-11-11 14:47:48 2009-05-31_23-00-00__solar__total__DIFF__2009-05 609.0000
2016-11-11 14:47:48 2009-06-30_23-00-00__solar__total__DIFF__2009-06 522.1000
2016-11-11 14:47:48 2009-07-31_23-00-00__solar__total__DIFF__2009-07 544.3000
2016-11-11 14:47:48 2009-08-31_23-00-00__solar__total__DIFF__2009-08 626.5000
2016-11-11 14:47:48 2009-09-30_23-00-00__solar__total__DIFF__2009-09 435.5000
2016-11-11 14:47:48 2009-10-31_23-00-00__solar__total__DIFF__2009-10 238.5000
2016-11-11 14:47:48 2009-11-30_23-00-00__solar__total__DIFF__2009-11 220.0000
2016-11-11 14:47:48 2009-12-31_23-00-00__solar__total__DIFF__2009-12 13.7000
2016-11-11 14:47:48 2010-01-31_23-00-00__solar__total__DIFF__2010-01 80.6000
2016-11-11 14:47:48 2010-02-28_23-00-00__solar__total__DIFF__2010-02 219.0000
2016-11-11 14:47:48 2010-03-31_23-00-00__solar__total__DIFF__2010-03 366.0000
2016-11-11 14:47:48 2010-04-30_23-00-00__solar__total__DIFF__2010-04 494.6000
2016-11-11 14:47:48 2010-05-31_23-00-00__solar__total__DIFF__2010-05 394.5900
2016-11-11 14:47:48 2010-06-30_23-00-00__solar__total__DIFF__2010-06 263.8000
2016-11-11 14:47:48 2010-07-31_23-00-00__solar__total__DIFF__2010-07 621.4000
2016-11-11 14:47:48 2010-08-31_23-00-00__solar__total__DIFF__2010-08 -
2016-11-11 14:47:48 2010-09-30_23-00-00__solar__total__DIFF__2010-09 345.9000
2016-11-11 14:47:48 2010-10-31_23-00-00__solar__total__DIFF__2010-10 324.2000
2016-11-11 14:47:48 2010-11-30_23-00-00__solar__total__DIFF__2010-11 1.2000
2016-11-11 14:47:48 2010-12-31_23-00-00__solar__total__DIFF__2010-12 33.6000
2016-11-11 14:47:48 2011-02-28_23-00-00__solar__total__DIFF__2011-01 482.4100
2016-11-11 14:47:48 2011-03-31_23-00-00__solar__total__DIFF__2011-03 324.5000
2016-11-11 14:47:48 2011-04-30_23-00-00__solar__total__DIFF__2011-04 367.3700
2016-11-11 14:47:48 2011-05-31_23-00-00__solar__total__DIFF__2011-05 -
2016-11-11 14:47:48 2011-06-30_23-00-00__solar__total__DIFF__2011-06 133.1000
2016-11-11 14:47:48 2011-07-31_23-00-00__solar__total__DIFF__2011-07 -
2016-11-11 14:47:48 2011-08-31_23-00-00__solar__total__DIFF__2011-08 -
2016-11-11 14:47:48 2011-09-30_23-00-00__solar__total__DIFF__2011-09 -
2016-11-11 14:47:48 2011-10-31_23-00-00__solar__total__DIFF__2011-10 47.9000
2016-11-11 14:47:48 2011-11-30_23-00-00__solar__total__DIFF__2011-11 315.0000
2016-11-11 14:47:48 2011-12-30_23-00-00__solar__total__DIFF__2011-12 102.0500
2016-11-11 14:47:48 2012-01-01__solar__total__DIFF__2012-01 -
2016-11-11 14:47:48 2012-02-19_23-00-00__solar__total__DIFF__2012-02 -
2016-11-11 14:47:48 2012-03-27_23-00-00__solar__total__DIFF__2012-03 -
2016-11-11 14:47:48 2012-04-01__solar__total__DIFF__2012-04 -
2016-11-11 14:47:48 2012-05-28_23-00-00__solar__total__DIFF__2012-05 -
2016-11-11 14:47:48 2012-06-01__solar__total__DIFF__2012-06 -
2016-11-11 14:47:48 2012-07-24_23-00-00__solar__total__DIFF__2012-07 29.4000
2016-11-11 14:47:48 2012-08-01__solar__total__DIFF__2012-08 -
2016-11-11 14:47:48 2012-09-11_23-00-00__solar__total__DIFF__2012-09 19.4000
2016-11-11 14:47:48 2012-10-01__solar__total__DIFF__2012-10 -
2016-11-11 14:47:48 2012-11-01__solar__total__DIFF__2012-11 -
2016-11-11 14:47:48 2012-12-13_23-00-00__solar__total__DIFF__2012-12 -
2016-11-11 14:47:48 2013-01-01__solar__total__DIFF__2013-01 -
2016-11-11 14:47:48 2013-02-01__solar__total__DIFF__2013-02 -
2016-11-11 14:47:48 2013-03-01__solar__total__DIFF__2013-03 -
2016-11-11 14:47:48 2013-04-01__solar__total__DIFF__2013-04 -
2016-11-11 14:47:48 2013-05-01__solar__total__DIFF__2013-05 -
2016-11-11 14:47:48 2013-06-01__solar__total__DIFF__2013-06 -
2016-11-11 14:47:48 2013-07-01__solar__total__DIFF__2013-07 -
2016-11-11 14:47:48 2013-08-01__solar__total__DIFF__2013-08 -
2016-11-11 14:47:48 2013-09-01__solar__total__DIFF__2013-09 -
2016-11-11 14:47:48 2013-10-01__solar__total__DIFF__2013-10 -
2016-11-11 14:47:48 2013-11-09_23-00-00__solar__total__DIFF__2013-11 -
2016-11-11 14:47:48 2013-12-01__solar__total__DIFF__2013-12 -
2016-11-11 14:47:48 2014-01-22_17-33-53__solar__total__DIFF__2014-01 125.7440
2016-11-11 14:47:48 2014-02-28_23-37-35__solar__total__DIFF__2014-02 379.9520
2016-11-11 14:47:48 2014-03-10_14-06-18__solar__total__DIFF__2014-03 145.5893
2016-11-11 14:47:48 2014-04-01__solar__total__DIFF__2014-04 -
2016-11-11 14:47:48 2014-05-01__solar__total__DIFF__2014-05 -
2016-11-11 14:47:48 2014-06-01__solar__total__DIFF__2014-06 -
2016-11-11 14:47:48 2014-07-01__solar__total__DIFF__2014-07 -
2016-11-11 14:47:48 2014-08-01__solar__total__DIFF__2014-08 -
2016-11-11 14:47:48 2014-09-30_23-57-36__solar__total__DIFF__2014-09 7.8960
2016-11-11 14:47:48 2014-10-31_23-59-49__solar__total__DIFF__2014-10 364.6693
2016-11-11 14:47:48 2014-11-30_23-59-38__solar__total__DIFF__2014-11 258.6800
2016-11-11 14:47:48 2014-12-31_23-56-38__solar__total__DIFF__2014-12 127.5627
2016-11-11 14:47:48 2015-01-31_23-59-33__solar__total__DIFF__2015-01 140.7707
2016-11-11 14:47:48 2015-02-28_23-56-35__solar__total__DIFF__2015-02 284.0000
2016-11-11 14:47:48 2015-03-31_23-58-47__solar__total__DIFF__2015-03 502.4987
2016-11-11 14:47:48 2015-04-30_23-59-05__solar__total__DIFF__2015-04 641.2133
2016-11-11 14:47:48 2015-05-29_21-50-46__solar__total__DIFF__2015-05 477.6187
2016-11-11 14:47:48 2015-06-30_23-58-32__solar__total__DIFF__2015-06 609.3093
2016-11-11 14:47:48 2015-07-31_23-57-02__solar__total__DIFF__2015-07 720.6053
2016-11-11 14:47:48 2015-08-31_23-59-23__solar__total__DIFF__2015-08 493.0880
2016-11-11 14:47:48 2015-09-03_10-25-12__solar__total__DIFF__2015-09 22.2400
2016-11-11 14:47:48 2015-11-27_19-24-23__solar__total__DIFF__2015-10 636.9493
2016-11-11 14:47:48 2015-12-16_21-14-49__solar__total__DIFF__2015-12 169.1893
2016-11-11 14:47:48 2016-01-31_23-55-29__solar__total__DIFF__2016-01 119.7307
2016-11-11 14:47:48 2016-02-21_19-01-07__solar__total__DIFF__2016-02 176.5173
2016-11-11 14:47:48 2016-03-31_23-58-15__solar__total__DIFF__2016-03 405.3307
2016-11-11 14:47:48 2016-04-11_08-55-34__solar__total__DIFF__2016-04 129.1147
2016-11-11 14:47:48 2016-05-01__solar__total__DIFF__2016-05 -
2016-11-11 14:47:48 2016-06-01__solar__total__DIFF__2016-06 -
2016-11-11 14:47:48 2016-07-31_23-58-47__solar__total__DIFF__2016-07 173.0987
2016-11-11 14:47:48 2016-08-31_23-56-41__solar__total__DIFF__2016-08 655.4907
2016-11-11 14:47:48 2016-09-30_17-18-19__solar__total__DIFF__2016-09 583.5653
2016-11-11 14:47:48 2016-10-01__solar__total__DIFF__2016-10 -
2016-11-11 14:47:48 2016-11-01__solar__total__DIFF__2016-11 -
2016-11-11 15:17:58 state connected
Dbloghash:
CONFIGURATION /opt/fhem/db-mysql.conf
DBMODEL MYSQL
DEF /opt/fhem/db-mysql.conf .*:.*
NAME myDbLogSQL
NR 70
NTFY_ORDER 50-myDbLogSQL
PID 11765
REGEXP .*:.*
STATE connected
TYPE DbLog
dbconn mysql:database=fhem;host=1.2.3.1;port=3306
dbuser fhemuser
Helper:
Dblog:
State:
Mydblogsql:
TIME 1478873901.14212
VALUE connected
Readings:
2016-01-05 11:46:03 lastReduceLogResult Rows processed: 245075, deleted: 234890, updated: 2340, time: 507.40sec
2016-11-11 15:18:21 state connected
Attributes:
DbLogExclude .*
aggregation month
allowDeletion 0
comment 2016-01-17 00:00:00
device solar
reading total
timeout 600
timestamp_begin 2000-01-17 00:00:00
ZitatAber in der Theorie würde es ja beim Umsprung auf 0 einen negativen DIFF-Wert geben. Den würde ich ignorieren und am nächsten Tag wieder neu die Differenz bilden...
Zitat von: DS_Starter am 11 November 2016, 16:26:11
Und was machen wir wenn der Nutzer eine Aggregation Woche oder Monat einstellt und der Zähler in der Mitte der Periode auf Null geht. Fängt dann die Woche oder der Monat mit 0 an ?
"letzter Eintrag vor MonatsMin"-MonatsAnfagg + MonatsEnde-MonatsMin
, oder so ähnlich...Zitat"letzter Eintrag vor MonatsMin"-MonatsAnfagg + MonatsEnde-MonatsMin , oder so ähnlich...
Select timestamp, min(value) from history where device and timestamp between xx and yy.
select timestamp,value from history where device and timestamp < $timestampMIN order by timestamp desc limit 1
select timestamp,value from history where device and timestamp > $timestampMIN order by timestamp limit 1
create temporary table mytable as
SELECT
timestamp, DEVICE, reading,
value,
if(value-@VDay < 0, 0 , value-@VDay) as diff,
@VDay:= value as valueVortag
FROM history where device='powersolar' and reading='total' order by timestamp;
select sum(diff) from mytable where diff>0;
ZitatIch glaube, du siehst das zu kompliziert!
SELECT
timestamp, DEVICE, reading,
value,
if(value-@VDay < 0, '0' , value-@VDay) as diff,
@VDay:= value as valueVortag
FROM history where device='MySTP_5000' and reading='etotal'
ORDER BY `history`.`timestamp` DESC
SELECT
timestamp, DEVICE, reading,
value,
if(value-@VDay > 0, '0' , value-@VDay) as diff,
@VDay:= value as valueVortag
FROM history where device='MySTP_5000' and reading='etotal'
ORDER BY `history`.`timestamp` DESC
SELECT
timestamp, DEVICE, reading,
value,
if(value-@VDay < 0, @diff:= 0 ,@diff:= value-@VDay) as diff,
@diffTotal:= @diffTotal + @diff as diffTotal ,
@VDay:= value as valueVortag
FROM history where device='powersolar' and reading='total'
ORDER BY `history`.`timestamp` limit 100;
ZitatNö... achtung! Entweder > UND desc, oder < ohne DESC.
set @VDay=0, @diff=0, @diffTotal=0;
2015-09-28_16-31-54__powersolar__total__DIFF__2015-09 348.7024
2015-11-30_23-57-05__powersolar__total__DIFF__2015-10 642.4555
2015-12-16_21-14-49__powersolar__total__DIFF__2015-12 169.2405
"TIMESTAMP" "DEVICE" "TYPE" "EVENT" "READING" "VALUE" "UNIT" "Longterm"
"2008-01-11 00:00:00" "Manuell" "typ" "event" "Wasser" "335.61" "u" "0"
"2008-02-04 00:00:00" "Manuell" "typ" "event" "Wasser" "342.8" "u" "0"
"2008-02-29 00:00:00" "Manuell" "typ" "event" "Wasser" "349.635" "u" "0"
"2008-03-04 00:00:00" "Manuell" "typ" "event" "Wasser" "350.87" "u" "0"
"2008-03-27 00:00:00" "Manuell" "typ" "event" "Wasser" "356.581" "u" "0"
"2008-04-17 00:00:00" "Manuell" "typ" "event" "Wasser" "361.507" "u" "0"
"2008-05-07 00:00:00" "Manuell" "typ" "event" "Wasser" "366.283" "u" "0"
"2008-05-25 00:00:00" "Manuell" "typ" "event" "Wasser" "370.028" "u" "0"
"2008-06-03 00:00:00" "Manuell" "typ" "event" "Wasser" "371.447" "u" "0"
"2008-06-19 00:00:00" "Manuell" "typ" "event" "Wasser" "371.68" "u" "0"
"2008-06-20 00:00:00" "Manuell" "typ" "event" "Wasser" "372.251" "u" "0"
"2008-06-21 00:00:00" "Manuell" "typ" "event" "Wasser" "372.748" "u" "0"
"2008-07-13 00:00:00" "Manuell" "typ" "event" "Wasser" "377.134" "u" "0"
"2008-07-22 00:00:00" "Manuell" "typ" "event" "Wasser" "378.956" "u" "0"
"2008-07-23 00:00:00" "Manuell" "typ" "event" "Wasser" "379" "u" "0"
"2008-08-27 00:00:00" "Manuell" "typ" "event" "Wasser" "390.713" "u" "0"
"2008-09-18 00:00:00" "Manuell" "typ" "event" "Wasser" "396.529" "u" "0"
"2008-10-14 00:00:00" "Manuell" "typ" "event" "Wasser" "403.731" "u" "0"
"2008-10-30 00:00:00" "Manuell" "typ" "event" "Wasser" "408.307" "u" "0"
"2008-11-17 00:00:00" "Manuell" "typ" "event" "Wasser" "413.849" "u" "0"
"2008-12-03 00:00:00" "Manuell" "typ" "event" "Wasser" "417.307" "u" "0"
"2008-12-19 00:00:00" "Manuell" "typ" "event" "Wasser" "421.655" "u" "0"
"2008-12-31 00:00:00" "Manuell" "typ" "event" "Wasser" "425.871" "u" "0"
0 7 6 0 4 1 2 0 0 5 0 9 sum(33)
27.03.2008 356,58
17.04.2008 361,51
diffenzWert 4,93
differenzTage 21
diff in Minuten 30240
Betrag/Minute 0,000162897
TageMärz 5
TageApril 16
MinutenMärz 7200 (5*24*60)
EndstandMärz31.3.23:59:59 356,58 + 7200*0,000162897 = 357,7538571
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-01-11 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '335.61', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-02-04 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '342.8', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-02-29 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '349.635', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-03-04 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '350.87', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-03-27 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '356.581', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-04-17 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '361.507', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-05-07 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '366.283', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-05-25 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '370.028', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-03 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '371.447', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-19 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '371.68', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-20 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '372.251', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-21 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '372.748', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-07-13 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '377.134', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-07-22 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '378.956', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-07-23 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '379', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-08-27 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '390.713', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-09-18 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '396.529', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-10-14 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '403.731', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-10-30 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '408.307', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-11-17 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '413.849', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-12-03 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '417.307', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-12-19 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '421.655', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-12-31 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '425.871', 'u');
ZitatDas mit den 0-Einträgen habe ich nicht, vielleicht hängt das mit dem Modul deines Zählers zusammen?
ZitatDas verhindere ich iom Moment über einen primary key ...
ZitatWas mir auffällt, das ist mir aber auch schon in der vorherigen Version aufgefallen, ist, dass
er hie raus mir unverständlichen Gründen kein Reading für 11.2015 erstellt, und stattdessen 2 Monate zusammenfasst. Hast Du dafür eine Erklärung?
ZitatdiffAccept ist ein tolles Feature, vielen Dank dafür!!
ZitatAuch sollte der April hier im Beispiel niemals eine 0 liefern!
ZitatLösungsvorschlag:
Egal wie fein die Dateneinträge sind, denke ich, muss man die Lücken die differenzwerte in Minuten ausrechnen und auf jedes Ende eines Zeitblocks entsprechend die Minuten aufteilen.
Ansonsten verlierst du immer Werte dazwischen und die Gesamtzahl stimmt nicht!
Zitat von: DS_Starter am 16 November 2016, 20:34:32
Danke für deinen Vorschlag Joe. Ich finde diesen Wunsch auf jeden Fall nachvollziehbar und bedenkenswert.
Allerdings vertrete ich mit dem Modul einen anderen Ansatz bzw. eine andere Rollenverteilung zwischen der Datenbereitstellung und Datenauswertung.
D.h. die Datenbank ist die Etität die alle notwendigen Daten zur Verfügung stellt .... DbRep wertet diese Daten aus.
ZitatAber ich hoffe, dass Du mit mir übereinstimmst, dass die Summe aller Monatssumme, eines Jahres zumindest gerundet den selben Wert ergeben sollte, wie die Subtraktion von Max-Min.
ZitatIch arbeite übrigens zusätzlich mit partitionierten Tabellen, das macht da slöschen alter Einträge deutlich einfacher.
ALTER TABLE history DROP PARTITION monNolong ;
CREATE TABLE `history` (
`TIMESTAMP` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`DEVICE` VARCHAR(40) NOT NULL DEFAULT '',
`TYPE` VARCHAR(32) NULL DEFAULT NULL,
`EVENT` VARCHAR(512) NULL DEFAULT NULL,
`READING` VARCHAR(45) NOT NULL DEFAULT '',
`VALUE` VARCHAR(32) NULL DEFAULT NULL,
`UNIT` VARCHAR(32) NULL DEFAULT NULL,
`Longterm` TINYINT(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`DEVICE`, `READING`, `TIMESTAMP`, `Longterm`),
INDEX `Reading_Time_Idx` (`READING`, `TIMESTAMP`) USING BTREE
)
COLLATE='latin1_swedish_ci'
PARTITION BY RANGE (WEEKDAY(timestamp))
SUBPARTITION BY HASH (Longterm)
(PARTITION mon VALUES LESS THAN (1)
(SUBPARTITION monNolong ENGINE = MyISAM,
SUBPARTITION monLong ENGINE = MyISAM),
PARTITION tue VALUES LESS THAN (2)
(SUBPARTITION tueNolong ENGINE = MyISAM,
SUBPARTITION tueLong ENGINE = MyISAM),
PARTITION wed VALUES LESS THAN (3)
(SUBPARTITION wedNolong ENGINE = MyISAM,
SUBPARTITION wedLong ENGINE = MyISAM),
PARTITION thu VALUES LESS THAN (4)
(SUBPARTITION thuNolong ENGINE = MyISAM,
SUBPARTITION thuLong ENGINE = MyISAM),
PARTITION fri VALUES LESS THAN (5)
(SUBPARTITION friNolong ENGINE = MyISAM,
SUBPARTITION friLong ENGINE = MyISAM),
PARTITION sat VALUES LESS THAN (6)
(SUBPARTITION satNolong ENGINE = MyISAM,
SUBPARTITION satLong ENGINE = MyISAM),
PARTITION sun VALUES LESS THAN (7)
(SUBPARTITION sunNolong ENGINE = MyISAM,
SUBPARTITION sunLong ENGINE = MyISAM)) */;
Length of "reading" is too big. Maximum lenth for database type MYSQL is 32
show COLUMNS from history like 'device';
Zitat von: DS_Starter am 20 November 2016, 12:10:49Nur als Idee:
habe gerade festgestellt dass die neuen SQL-Statements (V 4.7.x) in diffValue für SQLite NICHT funktionieren.
2016.11.27 09:17:13 1: reload: Error:Modul 93_DbRep deactivated:
syntax error at ./FHEM/93_DbRep.pm line 3564, near "$ch{"
syntax error at ./FHEM/93_DbRep.pm line 3566, near "$ch{"
Global symbol "$key" requires explicit package name at ./FHEM/93_DbRep.pm line 3566, <$fh> line 1489.
Global symbol "%ncp" requires explicit package name at ./FHEM/93_DbRep.pm line 3567, <$fh> line 1489.
Global symbol "%ncp" requires explicit package name at ./FHEM/93_DbRep.pm line 3570, <$fh> line 1489.
Can't use global @_ in "my" at ./FHEM/93_DbRep.pm line 3578, near "= @_"
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 3579, <$fh> line 1489.
syntax error at ./FHEM/93_DbRep.pm line 3615, near "}"
# $Id: 93_DbRep.pm 12631 2016-11-22 21:07:28Z nasseeder1 $
93_DbRep.pm 12631 2016-11-22 21:07:28Z nasseeder1
Zitat von: DS_Starter am 28 November 2016, 11:58:49
Hallo Detlef,
ich vermute du hast eine etwas niedrigere Perl-Version als ich bzw. Joe und die kam mit dem Code nicht zurecht.
Teste mal bitte die V4.7.4 aus dem Eingangsbeitrag.
@Joe, wenn du magst ... Bei mir läuft diese ebenfalls. Es betrifft eine sub von diffValue.
Grüße
Heiko
SELECT DAY(TIMESTAMP) , SUM(VALUE) FROM history where DEVICE LIKE 'SMA_Energymeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-01-01' AND TIMESTAMP < '2016-12-31' GROUP BY DAY(TIMESTAMP)
ZitatEvtl. wäre diese Abfrage das was Du für ein ganzes Jahr als Tagesabfrage suchst ?
SELECT DAY(TIMESTAMP) , SUM(VALUE) FROM history where DEVICE LIKE 'SMA_Energymeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-01-01' AND TIMESTAMP < '2016-12-31' GROUP BY DAY(TIMESTAMP)
no such function: DAY: SELECT DAY(TIMESTAMP) , SUM(VALUE) FROM history where DEVICE LIKE 'SMA_Energymeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-01-01' AND TIMESTAMP < '2016-12-31' GROUP BY DAY(TIMESTAMP)
INSERT IGNORE INTO history VALUES ('2016-10-05 00:00:00','Test','typ','event','test','49047','manuell');
INSERT IGNORE INTO history VALUES ('2016-10-07 00:00:00','Test','typ','event','test','49147','manuell');
INSERT IGNORE INTO history VALUES ('2016-11-01 00:00:00','Test','typ','event','test','50000','manuell');
INSERT IGNORE INTO history VALUES ('2016-11-02 00:00:00','Test','typ','event','test','51000','manuell');
INSERT IGNORE INTO history VALUES ('2016-12-01 00:00:00','Test','typ','event','test','60000','manuell');
INSERT IGNORE INTO history VALUES ('2016-12-02 00:00:00','Test','typ','event','test','60000','manuell');
2016-09-01__stromverbrauch__2016-09 -
2016-10-07_00-00-00__stromverbrauch__2016-10 100.0000
2016-11-02_00-00-00__stromverbrauch__2016-11 1000.0000
2016-12-02_00-00-00__stromverbrauch__2016-12 -
defmod calc_Test DbRep myDbLogSQL
attr calc_Test DbLogExclude .*
attr calc_Test aggregation month
attr calc_Test allowDeletion 0
attr calc_Test device test
attr calc_Test diffAccept 50000
attr calc_Test reading test
attr calc_Test readingNameMap stromverbrauch
attr calc_Test timeout 15200
attr calc_Test timestamp_begin 2016-09-01 00:00:00
select * from history where device="test" and timestamp between '2016-10-01 00:00:00' and '2016-11-01 00:00:00';
select * from history where device="test" and timestamp between '2016-10-01 00:00:00' and '2016-11-01 00:00:00';
Zitat von: DS_Starter am 09 Dezember 2016, 12:44:06
hatte ich Anfangs so. Hat sich nicht bewährt weil dieser Wert dann im nächsten Abrechnungszeitraum ebenfalls, also doppelt gezogen wurde (wenn auf Zeitgrenze 00:00:00 angegeben).
[code]INSERT IGNORE INTO history VALUES ('2016-10-07 00:00:00','Test','typ','event','test','49000','manuell');
INSERT IGNORE INTO history VALUES ('2016-11-01 00:00:00','Test','typ','event','test','50000','manuell');
INSERT IGNORE INTO history VALUES ('2016-12-01 00:00:00','Test','typ','event','test','51000','manuell');
Was kann da doppelt gezählt werden?Zitat von: DS_Starter am 09 Dezember 2016, 12:44:06Nein, hat es eben nicht! Das Modul verfälscht die Werte massiv!
Abgesehen davon hat das Modul aufgrund deiner Angaben völlig recht. Warum ? Weil du angegeben hast dass du im November 51000 - 50000 kWh verbraucht hast = 1000, im Dezember hingegen 60000 - 60000 = 0 (bzw. "-") !
Zitat von: DS_Starter am 09 Dezember 2016, 12:44:06
Da es sich um manuelle Eingaben handelt würde ich die nicht unbedingt auf die Zeitgrenze 00:00:00 legen.
Zitat von: DS_Starter am 09 Dezember 2016, 12:44:06Selbst wenn das Zeitfenster kleiner ist, ignorierst du immer einen Wert um 00:00:00....
Was hier fehlt ist der Endstand im November, die fehlende Differenz von 9000 kWh zwischen dem angegebenen Endwert von 51000 im Nov und dem Anfangswert von 60000 im Dez. Möglicherweise hast du die ja garnicht verbraucht sondern nur einen andren Zähler eingebaut ;) (philosoph. Betrachtung am Rande).
Bei automatischen Erfassungen alle x-Sekunden/Minuten stellt sich diese Frage nicht.
ZitatIn diesem Beispielszeitraum wurden 2000 verbraucht. Egal wie du es drehst, das Datum mit 00:00:00 wird hier niemals doppelt gezählt, daher ist dies sicher die richtige variante!
ZitatEs ist eindeutig, dass ich in dem Zeitraum mehr Strom verbraucht habe, als dein Modul mir anzeigt. Auch die Jahressumme stimmt somit natürlich nicht.
ZitatGenau genommen ignoriet das Modul sämtliche Werte zwischen dem letzten der Vorperiode und dem ersten Messwert der Nachfolgeperiode.
Zitat von: DS_Starter am 09 Dezember 2016, 14:56:45
Die Aussage dass mit der Zeitangabe 00:00:00 nichts doppelt gezählt wird, wurde schon hier diskutiert: https://forum.fhem.de/index.php/topic,53584.msg496812.html#msg496812 (https://forum.fhem.de/index.php/topic,53584.msg496812.html#msg496812) und deswegen auch geändert.
Zitat von: DS_Starter am 09 Dezember 2016, 14:56:45Ja klar. Dies zeigt aber eindeutig, dass die Aggregation( in Kombination mit DIFF) falsch ist (wenn dohne Aggregation korrekte Werte rauskommen, mit jedoch nicht)!
So ? Hast du mal mit der Begin = Jahresanfang und Ende = Jahresende und Aggregation = no gerechnet ?
Also ich gehe davon aus dass es stimmen wird.
Zitat von: DS_Starter am 09 Dezember 2016, 14:56:45Wie soll ich mich denn ausdrücken? Du kannst nicht sagen, dass ich mich nicht bemüht habe, und keine Zeit in Beispiele und Screenshots gesteckt habe.
Es können zwar immer Fehler auftreten, davor ist niemand gefeit, aber mir gefällt dieser Ton hier momentan überhaupt nicht. :(
Zitat von: DS_Starter am 09 Dezember 2016, 14:56:45
Wie gesagt es ist kein Abrechnungstool für Energieunternahmen sondern ein Hilfsmittel um seine DB-Inhalte nach bestimmten Kriterien (die auch bestimmten Rahmenbedingungen unterliegen) auszuwerten.
ZitatDu kannst nicht sagen, dass ich mich nicht bemüht habe, und keine Zeit in Beispiele und Screenshots gesteckt habe.
ZitatJa klar. Dies zeigt aber eindeutig, dass die Aggregation( in Kombination mit DIFF) falsch ist (wenn dohne Aggregation korrekte Werte rauskommen, mit jedoch nicht)!
ZitatBei Aggregation und DIFF liefert es immer falsche Werte. Vielleicht sollte man diese Kombination dann einfach sperren(wobei dies die einzige ist, die mich aktuell interessiert).
Zitat von: DS_Starter am 09 Dezember 2016, 15:51:51Die Fehlwerte sind bei minütlichen Einträgen halt sehr klein, aber auch da vorhanden ;-)
Würde ich jetzt so global nicht unterschreiben. Ich werte sehr häufig mit DIFF und Tagesaggregation aus. Das klappt , aber ich habe auch jede Minute Messwerte
Zitat von: DS_Starter am 09 Dezember 2016, 15:51:51
Mir fällt addhoc kein allgemein gültiges Lösungsszenario ein.
Zitat von: DS_Starter am 09 Dezember 2016, 15:51:51
Du kannst ja mal für dich nur für die Diff-Funktion das Select auf "between" ändern.
Zitat von: DS_Starter am 09 Dezember 2016, 15:51:51Nein, sorry, das stimmt nicht! Wenn man GENAU den Nullpunkt nimmt, gilt dieser immer auf beiden seiten! Um beim Beispiel zu bleiben ist dieser kurze Zeitpunkt nämlich beides... Oktober und november.
Eigentlich braucht man immer zwei Messwerte in der DB um einen Nullpunkt herum. Zum Beispiel wenn man eine Stundenaggregation macht genauso.
Zitat von: DS_Starter am 09 Dezember 2016, 15:51:51
Vielleicht kommt das Modul in genau diesen Grenzfällen an seine Einsatzgrenzen.
Zitatich denke(hoffe), wir verstehen uns schon...
Zitat von: DS_Starter am 09 Dezember 2016, 19:42:18
Erstmal einen schönen Abend !
INSERT IGNORE INTO history VALUES ('2016-11-02 00:00:00','Test','typ','event','test','51000','manuell');
INSERT IGNORE INTO history VALUES ('2016-12-01 00:00:00','Test','typ','event','test','60000','manuell');
INSERT IGNORE INTO history VALUES ('2016-12-02 00:00:00','Test','typ','event','test','60000','manuell');
Zitat von: DS_Starter am 10 Dezember 2016, 13:26:05
Diese Verfahren stellt m.M. nach sicher dass mathematisch nichts "verloren" geht. Vom logischen Standpunkt ist es natürlich nicht unbedingt schlüssig da der Verbrauch ja eher zwischen dem 02.11. und 30.11 anfiel. Vielleicht kriege ich das noch besser geregelt, mal schauen.
2012-07-01__stromverbrauch__2012-07 11400.9000
2016-12-10 13:49:33 2012-08-01__stromverbrauch__2012-01 -11400.9000
Zitataber eigentlich sollte die DIFF-Funktion ja nie negativ werden, oder?
ALTER TABLE 'fhem'.'history' ADD INDEX `Reading_Time_Idx` (`READING`, `TIMESTAMP`) USING BTREE;
oder:
CREATE INDEX Reading_Time_Idx ON `fhem`.`history` (READING, TIMESTAMP);
Zitat
The implementation is the same on the server-side.
The only practical difference is that with ALTER TABLE, you have the option to create an index without specifying a name for the index. The server generates a default name, as the name of the first column in the index, with a number suffix if necessary.
Whereas with CREATE INDEX syntax, you must specify a name for the index.
CREATE INDEX Reading_Time_Idx ON `history` (READING, TIMESTAMP);
CREATE INDEX Reading_Dev_Time_Idx ON `history` (READING, DEVICE, TIMESTAMP);
CREATE INDEX Reading_Dev_Time_Idx ON `current` (READING, DEVICE, TIMESTAMP);
Zitat von: DS_Starter am 12 Dezember 2016, 11:37:38
Ja, die gibt es. Aber es etwas entspannt weil die Länge auf 64 Zeichen im DbLog abgeändert wurde.
attr myDbLog userReadings DbFileSize:lastReduceLogResult.* { (split(' ',`du -m fhem.db`))[0] }
Zitat von: DerFrickler am 13 Dezember 2016, 18:13:14ich würde zurück auf fhem.cfg gehen und wenn dir dbconfig gut gefällt, einfach wieder neu mit DBconfig für mySQL beginnen.
Mit der DB bin ich jetzt nach MySQL umgezogen, klappt gut und die Performance ist wirklich deutlich besser. Konsequenter weise sollte ich dann ach meine configDB mit umziehen lassen.
1. Gibt es da eine einfache Methode des Datentransfers vom sqlit3 nach MySQL?
Zitat von: DerFrickler am 13 Dezember 2016, 18:13:14
2. Bei sqlit3 habe ich regelmässig ein VACUUM gemacht, besteht die Notwendigkeit einer Optimierung bei MySQL auch und wie erfolgt das dann bei MySQL?
optimize table history;
Zitat von: DerFrickler am 13 Dezember 2016, 18:13:14Ich würde 00:00:00 empfehlen. Dann wird es korrekt in den Plots angezeigt und auch andere Module verwenden den Wert wie gedacht.
Wie man sich jetzt vorstellen kann handelt es sich bei dem ersten Wert am Tag / Monat um den letzten Wert des Vortages / Vormonats (ich mache um 00:00:01 einen Übertrag auf den Folgetag), wodurch
ZitatBei sqlit3 habe ich regelmässig ein VACUUM gemacht, besteht die Notwendigkeit einer Optimierung bei MySQL auch und wie erfolgt das dann bei MySQL?
Zitatdie große des DB-Files anzeigen zu lassen. Gibt es hier für MySQL auch eine Möglichkeit den Speicherbedarf der DB zu ermitteln?
ZitatWähre es ein großer Aufwand z.B. eine Option einzubauen, die es erlaubt bei diffValue auf den letzten Wert der Vorperiode zurückzugreifen?
DBD::mysql::st execute failed: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.tables.TABLE_SCHEMA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at ./FHEM/93_DbRep.pm line 3161.
2016.12.13 18:36:19 2: DbLog: Failed to insert new readings into database: DBD::mysql::st execute failed: Data too long for column 'DEVICE' at row 1 at ./FHEM/93_DbLog.pm line 613.
CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'fhemUser'@'%' IDENTIFIED BY 'fhemUser01';
CREATE TABLE `fhem`.`history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE TABLE `fhem`.`current` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemUser'@'%';
CREATE INDEX Search_Idx ON `fhem`.`history` (DEVICE, READING, TIMESTAMP);
mysql> use fhem
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_fhem |
+----------------+
| current |
| history |
+----------------+
2 rows in set (0,00 sec)
mysql>
ALTER TABLE current MODIFY DEVICE VARCHAR(64);
ALTER TABLE history MODIFY DEVICE VARCHAR(64);
If a MyISAM table is fragmented, concurrent inserts will not be performed until an OPTIMIZE TABLE statement is executed on that table, unless the concurrent_insert server system variable is set to ALWAYS.
sudo apt-get install libdbi-perl
Zitat von: JoeALLb am 13 Dezember 2016, 18:49:30Da hätte ich jetzt prinzipiell auch 'drauf kommen sollen; Danke!Code AuswählenALTER TABLE current MODIFY DEVICE VARCHAR(64);
ALTER TABLE history MODIFY DEVICE VARCHAR(64);
Zitat von: JoeALLb am 13 Dezember 2016, 18:49:30Das mit den Optimize läuft leider auch ins leere:
B ezüglich optimize:
Ich verwende MariaDB statt MySQL, dort liest sich folgendes:
https://mariadb.com/kb/en/mariadb/optimize-table/Code AuswählenIf a MyISAM table is fragmented, concurrent inserts will not be performed until an OPTIMIZE TABLE statement is executed on that table, unless the concurrent_insert server system variable is set to ALWAYS.
Für eine Logtabelle ist das so natürlich völlig ausreichend.... (normalerweise)
mysql> optimize table history;
+--------------+----------+----------+-------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------+----------+----------+-------------------------------------------------------------------+
| fhem.history | optimize | note | Table does not support optimize, doing recreate + analyze instead |
| fhem.history | optimize | status | OK |
+--------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (0,15 sec)
Zitat von: DS_Starter am 13 Dezember 2016, 18:56:05
Und installiere bitte nochCode Auswählensudo apt-get install libdbi-perl
Bin mir nicht sicher ob libdbd identisch ist.
DBD::mysql::st execute failed: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.tables.TABLE_SCHEMA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at ./FHEM/93_DbRep.pm line 3161.
DBD::mysql::st execute failed: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.tables.TABLE_SCHEMA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at ./FHEM/93_DbRep.pm line 3161.
ALTER TABLE `history`ENGINE=MyISAM;
ALTER TABLE `history`COLLATE='latin2_swedish_ci';
INFO_history.data_index_lenth_MB
alter table history optimize partition mon;
ALTER TABLE history TRUNCATE PARTITION longterm
ZitatIst das "lenth" hier eventuell ein Vertipper und sollte length heißen?
Zitatkönnte man das (irgendwann mal) noch erweitern um Parameter wie "delete-readings, all " oder eben eine separierte Liste an Readings, die mich interessieren?
attr <DbRep-Dev> showTableInfo %history% (oder nur history)
attr <DbRep-Dev> suppressReading ^(?!.*INFO_history.data_index_length_MB).*$
ZitatAngenommen das Problem des "Konfigurationszerschiessen" beim FHEM Update lässt sich lösen.... was wäre performancetechnisch optimaler? 2 DBs mit jeweils einem deleteOldDays oder 1 DB mit 1 einem deleteOldDay und 15 delEntries?
create table history3 like history;
rename table history to history2; rename history3 to history;
[...] Bereinige die history-tabelle, die nun history2 heißt. zB delete from history2 where reading="XY";
rename history to history3; rename history2 to history;
insert into history select * from history3;
drop table history;
Zitat von: DS_Starter am 13 Dezember 2016, 22:36:08
die Version 4.8.4 sollte die FehlermeldungCode AuswählenDBD::mysql::st execute failed: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.tables.TABLE_SCHEMA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at ./FHEM/93_DbRep.pm line 3161.
eliminieren.
DBD::mysql::st execute failed: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.tables.TABLE_SCHEMA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at ./FHEM/93_DbRep.pm line 3190.
Zitatleider immer noch
Zitat
Change permanently
If you want to disable it permanently, add/edit the following in your my.cnf file:
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
For this change a service restart is required:
$ mysql service restart
DBD::mysql::st execute failed: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.tables.TABLE_SCHEMA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at ./FHEM/93_DbRep.pm line 3193.
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sudo apt-get purge mysql-server mysql-common mysql*
## Aufräumen:
sudo apt-get autoclean; sudo apt-get clean; sudo apt-get autoremove;
## Prüfen auf sql Reste:
dpkg -l | grep -i -e "sql\|maria"
sudo apt-get install mariadb-server
Zitat von: DS_Starter am 16 Dezember 2016, 22:44:43
Ich würde erstmal nur den SQL_Mode setzen in der my.cnf.
Das ist schnell gemacht.
ZitatKann es sein dass ein tableInfo die DB eine Zeit lang blockiert?Nein.
ZitatDbLog: Failed to insert new readings into database: DBD::mysql::st execute failed: Data too long for column 'READING' at row 1 at ./FHEM/93_DbLog.pm line 613.
CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'fhempassword';
CREATE TABLE `fhem`.`history` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(128), UNIT varchar(32));
CREATE TABLE `fhem`.`current` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(128), UNIT varchar(32));
GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';
CREATE INDEX Search_Idx ON `fhem`.`history` (DEVICE, READING, TIMESTAMP);
ALTER TABLE `history` CHANGE `READING` `READING` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;
Zitat von: DS_Starter am 28 Dezember 2016, 09:08:52
Es muß also bei dir ein DbRep-Device geben welches solche Readings mit unerlaubten Sonderzeichen enthält. Das hat aber nichts mit Wildcards in den Attributen device/reading zu tun. Du kannst auch in ../log/fhem.save danach suchen.
ZitatUnd auf diese Art und Weise habe ich auch die Löschfunktionen generiert: radiator.thermostat.% und wall.thermostat.%
Zitat
Readings:
2016-12-28 01:10:00 state done
2016-12-28 01:10:00 window.sensor.% -- -- DELETED ROWS -- 0
Zitat von: DS_Starter am 28 Dezember 2016, 11:47:56
1. ich statte die Löschfunktion mit Wildcards aus
2. ich lasse das Modul so wie es es ist und passe den Wikieintrag an. In diesem Fall müsstest du die zu löschenden Devices konkret ageben was andererseits die Sicherheit erhöht (siehe meine Überlegungen zuvor)
Zitatgibt es da eine einfache Kombi zwischen device und reading die das in einem Rutsch löst?
Can't call method "execute" on an undefined value at ./FHEM/93_DbRep.pm line 2606
ZitatKönnte es mit den letzten Änderungen im DbLog-Modul zu tun haben,
Zitat von: DS_Starter am 15 Januar 2017, 22:17:13
Hallo friesenjung,
eher unwahrscheinlich. Aber schwer zu sagen. Kannst du versuchen versbose 4 zu loggen ?
2017.01.15 22:20:09 4: DbRep Agent DBAgent - Evt RENAMED rec - old device: TestPush3, new device: TestPush4 -> start deviceRename in DB: fhem
2017.01.15 22:20:09 4: DbRep DBAgent - -------- New selection ---------
2017.01.15 22:20:09 4: DbRep DBAgent - Aggregation: no
2017.01.15 22:20:09 4: DbRep DBAgent - Command: deviceRename
2017.01.15 22:20:09 4: DbRep DBAgent - Timestamp begin human readable: 1970-01-01 01:00:00
2017.01.15 22:20:09 4: DbRep DBAgent - Timestamp end human readable: 2017-01-15 22:20:09
2017.01.15 22:20:09 4: DbRep DBAgent -> Start BlockingCall devren_Push
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2585.
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2595.
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2611.
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2612.
2017.01.15 22:20:09 4: DbRep DBAgent -> BlockingCall devren_Push finished
2017.01.15 22:20:09 4: DbRep DBAgent -> Start BlockingCall devren_Done
2017.01.15 22:20:09 4: DbRep DBAgent -> BlockingCall devren_Done finished
Zitat von: DS_Starter am 15 Januar 2017, 22:35:29
Das ist schon ein Anhaltspunkt ... muß ich mir in Ruhe anschauen...
Machst du bitte noch ein ist von dem DbRep-Device ?
Grüße
Heiko
Zitat von: DS_Starter am 15 Januar 2017, 22:45:56
Oben in der Kommandozeile "list <DbRep-Device> eintippen....
Internals:
CFGFN
DATABASE fhem
DEF DBLogging
LASTCMD dbstatus
NAME DBAgent
NOTIFYDEV global,DBReporting
NR 3096
NTFY_ORDER 50-DBReporting
ROLE Agent
STATE error
TYPE DbRep
VERSION 4.10.1
Helper:
DBLOGDEVICE DBLogging
NEWDEV TestPush4
OLDDEV TestPush3
Cv:
aggregation no
aggsec 1
destr 2017-01-15
dsstr 1970-01-01
epoch_seconds_end 1484515209
mestr 01
msstr 01
testr 22:20:09
tsstr 01:00:00
wdadd
yestr 2017
ysstr 1970
Readings:
2017-01-15 22:20:09 errortext Can't call method "execute" on an undefined value at ./FHEM/93_DbRep.pm line 2606.
2017-01-15 22:20:09 state error
Dbloghash:
CONFIGURATION /opt/fhem/contrib/dblog/db.conf
DBMODEL MYSQL
DEF /opt/fhem/contrib/dblog/db.conf .*:.*
MODE asynchronous
NAME DBLogging
NR 347
NTFY_ORDER 50-DBLogging
PID 6469
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 2.8.8
dbconn mysql:database=fhem;host=192.168.41.198;port=3306
dbuser fhemuser
Helper:
Readings:
2017-01-15 22:46:49 CacheUsage 0
2017-01-15 22:46:44 NextSync 2017-01-15 22:47:14
2016-12-27 23:53:24 countCurrent 614
2016-12-27 23:53:24 countHistory 2
2017-01-15 22:46:45 state connected
Cache:
index 20544
Memcache:
Attributes:
DbLogExclude .*
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
group Datenbank
icon security
role Agent
room 9.7_Dienste
timeout 3600
verbose 4
optimize table history;
Zitat von: DS_Starter am 16 Januar 2017, 22:37:59
Hallo friesenjung,
habe die V4.10.2 im Eingangsbeitrag hinterlegt.
Habe den Fehler gefixt.
Probiers mal aus.
Setz dir das Attr timeout in dem Rep-Agenten gleich hoch, z.B. auf 1800 (helbe Stunde) damit die umbenennungen in der DB nicht auf ein timeout laufen wenn es mal länger dauert.
Grüße
Heiko
ZitatMüssen die Daten / Readings nochmal geloggt werden?Vermutlich ja, da ich nicht annehme dass SVG mathematische Funktionen wie Diffvalue oder sumValue beherrscht.
ZitatUnd wie funktioniert es, dass im Plot jeweils in Ballken pro Monat ausgegeben wirdBalken kannst du im Ploteditor mit dem Style "bars" erstellen. (siehe Screenshot)
ZitatWenn jetzt ein weiteres Readings für Februar dazukommt, wie erkennt der Plot dann, dass es sich um einen neuen Monat handelt?Plot erkennt den Zeitpunkt des Readings anhand dessen Erstellungsdatums in der Datenbank bzw. dem Filelog. Meiner Meinung nach müßte man demnach z.B. für jeden Monat ein eigenes DbRep-Device erstellen um mit diesem nur das jeweilige Reading für den jeweiligen Monat wie von dir beschrieben:
ZitatKann ich auch parallel Tages-., Monats und Jahresplots generieren wenn ich über aggregation day, month, year jeweils einmal die Nacht die entsprechenden Werte von DbRep genieren lassen?Ja das geht . Aber Aggregation "year" gibt es zumindest bis jetzt noch nicht.
diff-overrun_limit-20
attr REP_test readingNameMap Gaszaehler(kWh)
attr REP_test readingNameMap Gaszaehler
2017-01-20_23-50-52__Gaszaehler__total__DIFF__2017-01-20
timestamp_begin 2017-01-01 00:00:00
timestamp_end 2017-01-31 23:59:59
2017-02-01__Gaszaehler__total__DIFF__2017-02-01
Internals:
DATABASE fhem
DEF logdb
LASTCMD diffValue
NAME REP_test
NOTIFYDEV global,REP_test
NR 785
NTFY_ORDER 50-REP_test
ROLE Client
STATE Warning
TYPE DbRep
VERSION 4.10.1
Helper:
DBLOGDEVICE logdb
Cv:
aggregation day
aggsec 86400
destr 2017-01-31
dsstr 2017-01-01
epoch_seconds_end 1485903599
mestr 01
msstr 01
testr 23:59:59
tsstr 00:00:00
wdadd 86400
yestr 2017
ysstr 2017
Readings:
2017-02-01 01:21:49 2017-01-01_23-37-37__Gaszaehler__total__DIFF__2017-01-01 13.9650
2017-02-01 01:21:49 2017-01-02_23-52-38__Gaszaehler__total__DIFF__2017-01-02 22.2250
2017-02-01 01:21:49 2017-01-03_19-01-34__Gaszaehler__total__DIFF__2017-01-03 12.0800
2017-02-01 01:21:49 2017-01-04_23-52-30__Gaszaehler__total__DIFF__2017-01-04 15.6700
2017-02-01 01:21:49 2017-01-05_23-52-25__Gaszaehler__total__DIFF__2017-01-05 16.0650
2017-02-01 01:21:49 2017-01-06_19-41-28__Gaszaehler__total__DIFF__2017-01-06 18.6350
2017-02-01 01:21:49 2017-01-07_21-26-45__Gaszaehler__total__DIFF__2017-01-07 27.5400
2017-02-01 01:21:49 2017-01-08_22-36-53__Gaszaehler__total__DIFF__2017-01-08 23.0250
2017-02-01 01:21:49 2017-01-09_23-52-01__Gaszaehler__total__DIFF__2017-01-09 19.2450
2017-02-01 01:21:49 2017-01-10_20-01-06__Gaszaehler__total__DIFF__2017-01-10 18.0700
2017-02-01 01:21:49 2017-01-11_23-51-45__Gaszaehler__total__DIFF__2017-01-11 20.4700
2017-02-01 01:21:49 2017-01-12_22-36-23__Gaszaehler__total__DIFF__2017-01-12 14.1550
2017-02-01 01:21:49 2017-01-13_19-40-40__Gaszaehler__total__DIFF__2017-01-13 14.1650
2017-02-01 01:21:49 2017-01-14_20-15-41__Gaszaehler__total__DIFF__2017-01-14 17.0550
2017-02-01 01:21:49 2017-01-15_18-30-14__Gaszaehler__total__DIFF__2017-01-15 16.3750
2017-02-01 01:21:49 2017-01-16_22-40-48__Gaszaehler__total__DIFF__2017-01-16 20.3900
2017-02-01 01:21:49 2017-01-17_23-35-55__Gaszaehler__total__DIFF__2017-01-17 14.7150
2017-02-01 01:21:49 2017-01-18_23-25-47__Gaszaehler__total__DIFF__2017-01-18 14.3600
2017-02-01 01:21:49 2017-01-19_19-34-58__Gaszaehler__total__DIFF__2017-01-19 9.2250
2017-02-01 01:21:49 2017-01-20_23-50-52__Gaszaehler__total__DIFF__2017-01-20 12.4150
2017-02-01 01:21:49 2017-01-21_23-50-52__Gaszaehler__total__DIFF__2017-01-21 12.7900
2017-02-01 01:21:49 2017-01-22__Gaszaehler__total__DIFF__2017-01-22 -
2017-02-01 01:21:49 2017-01-23_23-56-12__Gaszaehler__total__DIFF__2017-01-23 17.9900
2017-02-01 01:21:49 2017-01-24_23-51-19__Gaszaehler__total__DIFF__2017-01-24 20.1950
2017-02-01 01:21:49 2017-01-25_19-50-34__Gaszaehler__total__DIFF__2017-01-25 11.9100
2017-02-01 01:21:49 2017-01-26_20-05-41__Gaszaehler__total__DIFF__2017-01-26 12.4750
2017-02-01 01:21:49 2017-01-27_19-15-35__Gaszaehler__total__DIFF__2017-01-27 12.9800
2017-02-01 01:21:49 2017-01-28_20-25-53__Gaszaehler__total__DIFF__2017-01-28 12.9950
2017-02-01 01:21:49 2017-01-29_23-31-34__Gaszaehler__total__DIFF__2017-01-29 23.9450
2017-02-01 01:21:49 2017-01-30_21-31-07__Gaszaehler__total__DIFF__2017-01-30 20.2650
2017-02-01 01:21:49 2017-01-31_23-26-27__Gaszaehler__total__DIFF__2017-01-31 16.2700
2017-02-01 01:21:49 2017-02-01__Gaszaehler__total__DIFF__2017-02-01 -
2017-02-01 01:21:49 background_processing_time 0.6062
2017-02-01 01:21:49 diff-overrun_limit-20 2017-01-12 07:28:19 0.2400 -> 2017-01-12 07:33:20 327.8350 || 2017-01-18 20:55:16 0.0000 -> 2017-01-18 21:25:22 1542.3150 ||
2017-02-01 01:21:49 sql_processing_time 0.3022
2017-02-01 01:21:49 state Warning
Dbloghash:
CONFIGURATION ./db_fhem.conf
DBMODEL MYSQL
DEF ./db_fhem.conf .*:.*
NAME logdb
NOTIFYDEV .*
NR 348
NTFY_ORDER 50-logdb
PID 1985
REGEXP .*:.*
STATE connected
TYPE DbLog
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser
Readings:
2016-11-28 10:56:26 countCurrent 101
2016-11-28 10:56:26 countHistory 21728026
2016-07-19 19:30:51 lastReduceLogResult Rows processed: 12507, deleted: 0, updated: 0, time: 10.00sec
2016-07-19 18:02:10 lastRowsDeleted 1898873
2017-02-01 01:22:16 state connected
Attributes:
aggregation day
device Gaszaehler
diffAccept 20
event-on-change-reading state
reading total
room Logging
showproctime 1
timestamp_begin 2017-01-01 00:00:00
timestamp_end 2017-01-31 23:59:59
ZitatKönntest du das limit-reading umbenennen?Ja, ich schaue mal wie das besser wäre. Das ist wirklich unschön wenn man in dem speziellen Fall so "rumopern" muß.
Zitatcurrent_year_begin, current_year_end sowie previous_year_begin und previous_year_end
attr calcTimeBetween (chour,cday,cweek,cmonth,cyear;lhour,lday,lweek,lmonth,lyear)
2017-02-01_17-51-25__Stromzaehler__total_energy__DIFF__2017-02_lday
ZitatHabe ein bisschen mit dem Modul rumgebastelt, und es sind mir tausend Ideen eingefallen 8)Ja, das kenne ich zur Genüge. Der Appetit kommt beim essen und wenn man erstmal auf den Geschmack gekommen ist. ;)
ZitatDass ich 30 Tage sehen kann, ist ja ganz nett, aber irgendwie interessiert mich der aktuelle/kürzliche Verbrauch mehr ...
ZitatKonnte nicht DBLog oder DBRep beliebige MySQL-Statements absetzen?
Zitat von: DS_Starter am 10 Februar 2017, 21:11:24
Ursprünglich waren die DbRep-Auswertungen gedacht für tabellarische Darstellungen/Gegenüberstellungen (z.B. mit Readingsgroup) verschiedener definierter uswerungsscenarien.
Zitat von: DS_Starter am 10 Februar 2017, 22:41:55
Du hast sicherlich die Ergänzung auch schon durchgetestet nehme ich an !? (Mache ich natürlich auch noch)
ReadingsVal("meinRep",".*DIFF.*",0);
ZitatSagen wir mal so: ich hab beim anwenden und ausprobieren ein paar Unschönheiten gefunden. Die einzelnen Zeitpunkte hab ich im online-perl entwickelt und soweit ich konnte, geprüft. Systematisch getestet hab ichs aber nicht, zumal ich auch gar nicht weiss, wo da die Stolperfallen liegen. Zur Zeit funktionieren die Attribute aber so, wie ich es mir vorstelle.
ZitatKann ich bei ReadingsVal irgendwie mit Platzhaltern arbeiten?Nein, ReadingsVal verarbeitet keine Regex.
define DbLog DbLog /opt/fhem/db.conf .*:(box_rateDown|box_rateUp|cpu_temp|cpu_temp_avg|cpu_freq|eth0_diff|loadavg|ram|fs_.*|stat_cpu_percent).*
attr DbLog room 99_DbLog
attr DbLog userReadings DbFileSize:lastReduceLogResult.* { (split(' ',`du -m /opt/fhem/fhem.db`))[0] }
define DbRep DbRep DbLog
2017.02.19 18:56:55.424 4: DbRep Rep.Show.DbSize -> Start BlockingCall dbmeta_DoParse
2017.02.19 18:56:55.430 4: DbRep Rep.Show.DbSize - SQL execute: select
table_name,
table_schema,
round(sum(data_length+index_length)/1024/1024,2),
round(data_free/1024/1024,2),
row_format,
table_collation,
engine,
table_type,
create_time
from information_schema.tables group by 1;
2017.02.19 18:56:55.563 4: DbRep Rep.Show.DbSize -> BlockingCall dbmeta_DoParse finished
2017.02.19 18:56:55.574 4: DbRep Rep.Show.DbSize -> Start BlockingCall dbmeta_ParseDone
2017.02.19 18:56:55.587 4: DbRep Rep.Show.DbSize -> BlockingCall dbmeta_ParseDone finished
DbRep Rep.Fhem.Size -> Start BlockingCall dbmeta_DoParse
Can't locate object method "sqlite_db_filename" via package "DBI::db" at ./FHEM/93_DbRep.pm line 3301.
sudo apt-get install libdbd-sqlite3-perl
sudo apt-get install libdbi-perl
Zitat von: DS_Starter am 19 Februar 2017, 20:37:38
Hmm ... mich beschleicht das Gefühl dass deine DB-Treiber Version diese Methoden nicht anbietet.
Meine Versionen:
SQL_DBMS_VER 3.8.7.1
SQL_DBMS_VERSION 3.8.7.1
perl:5.020002 os:linux
Wie sieht es bei dir aus ?
sudo sqlite3
SQLite version 3.8.7.1 2014-10-29 13:59:56
Zitat
Ganz komisch:
2017.02.19 20:53:20 3: DbRep Rep.Fhem.Size - connected
2017.02.19 20:53:20 4: DbRep Rep.Fhem.Size - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
sudo apt-get -f install && sudo apt-get -y install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl
my $ph = strftime "%Y-%m-%d %T",localtime(timelocal(0,0,$hour,$mday,$mon,$year)-3600);
} elsif (AttrVal($hash->{NAME}, "timestamp_begin", "") eq "previous_hour_begin") {
my $rhour = $hour-1;
my $rmday = $mday;
my $rmon = $mon;
my $ryear = $year;
if($rhour<0) {
$rhour = 23;
$rmday = $mday-1;
if($rmday<1) {
$rmon--;
if ($rmon<0) {
$rmon=12;
$ryear--;
}
$rmday = $rmon-2?30+($rmon*3%7<4):28+!($ryear%4||$ryear%400*!($ryear%100));
}
}
$tsbegin = strftime "%Y-%m-%d %T",localtime(timelocal(0,0,$rhour,$rmday,$rmon,$ryear));
define rep.myDbLog.Size DbRep myDbLog
sudo apt-get -f install && sudo apt-get -y install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl
habe ich ausgeführt mit anschließendem Neustart.
get rep.myDbLog.Size svrinfo
ein,
du: Zugriff auf ,,/opt/fhem/fhem.db" nicht möglich: Datei oder Verzeichnis nicht gefunden
Zitatfhem.db gibt es wirklich nicht – von daher ist die Meldung korrekt. Der Zugriff soll ja auch auf die /opt/fhem/dblog/mydblog.db erfolgen – das geschieht aber offensichtlich nicht.
Habe ich etwas übersehen oder liegt noch ein Fehler im Modul vor?
define rep.myDbLog.Agent DbRep myLogDB
define rep.myDbLog_LT.Agent DbRep myLogDB_LT
There is already an Agent device: rep.myDbLog.Agent defined for database !
Internals:
CFGFN
DATABASE
DEF myLogDB
LASTCMD svrinfo
NAME rep.myDbLog.Agent
NOTIFYDEV global,rep.myDbLog.Agent
NR 10328
NTFY_ORDER 50-rep.myDbLog.Agent
ROLE Agent
STATE disconnected »; ProcTime: sec
TYPE DbRep
VERSION 4.11.2
Helper:
DBLOGDEVICE myLogDB
Helper:
Dblog:
Errortext:
Mydblog:
TIME 1489850389.85052
VALUE Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at ./FHEM/93_DbRep.pm line 3337.
State:
Mydblog:
TIME 1489850576.00303
VALUE disconnected
Readings:
2017-03-18 16:19:49 errortext Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at ./FHEM/93_DbRep.pm line 3337.
2017-03-18 16:22:56 state disconnected
Dbloghash:
Attributes:
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
disable 1
icon security
role Agent
room DbLog
showproctime 1
stateFormat { ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " »; ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeout 3600
2017.03.18 15:56:38 1: PERL WARNING: Use of uninitialized value $dbconn in split at ./FHEM/93_DbRep.pm line 253.
2017.03.18 15:56:38 1: Error: >myLogDB< has no TYPE, but following keys: ><
2017.03.18 15:56:38 1: PERL WARNING: Use of uninitialized value $dbmodel in string eq at ./FHEM/93_DbRep.pm line 416.
2017.03.18 15:56:43 1: PERL WARNING: Use of uninitialized value $dblogname in concatenation (.) or string at ./FHEM/93_DbRep.pm line 718.
2017.03.18 15:56:43 1: PERL WARNING: Use of uninitialized value $dbconn in concatenation (.) or string at ./FHEM/93_DbRep.pm line 722.
2017.03.18 15:56:43 1: PERL WARNING: Use of uninitialized value $dbconn in concatenation (.) or string at ./FHEM/93_DbRep.pm line 726.
2017.03.18 15:56:43 1: PERL WARNING: Use of uninitialized value $dbuser in concatenation (.) or string at ./FHEM/93_DbRep.pm line 726.
2017.03.18 15:56:43 3: DbRep rep.myDbLog.Agent - Connectiontest to database with user
2017.03.18 15:56:43 3: DbRep rep.myDbLog.Agent - Waiting for database connection
2017.03.18 15:56:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 692.
2017.03.18 15:56:43 2: DbRep rep.myDbLog.Agent - DB connect failed. Credentials of database are valid and database reachable ?
2017.03.18 15:56:47 3: DbRep rep.myDbLog.Agent - Connectiontest to database with user
2017.03.18 15:56:47 3: DbRep rep.myDbLog.Agent - Waiting for database connection
2017.03.18 15:56:51 3: DbRep rep.myDbLog.Agent - Connectiontest to database with user
2017.03.18 15:56:51 3: DbRep rep.myDbLog.Agent - Waiting for database connection
2017.03.18 15:56:55 3: DbRep rep.myDbLog.Agent - Connectiontest to database with user
2017.03.18 15:56:55 3: DbRep rep.myDbLog.Agent - Waiting for database connection
2017.03.18 15:57:00 3: DbRep rep.myDbLog.Agent - Connectiontest to database with user
2017.03.18 15:57:00 3: DbRep rep.myDbLog.Agent - Waiting for database connection
2017.03.18 16:24:56 3: DbRep rep.myDbLog.Agent - Connectiontest to database with user
2017.03.18 16:24:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 328041) line 1.
2017.03.18 16:24:56 3: DbRep rep.myDbLog.Agent - Waiting for database connection
Zitatdefine rep.myDbLog.Agent DbRep myLogDB
PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 32340) line 1.
connected »; ProcTime: sec
attr <Rep.Agent> showproctime 1
attr Rep.Agent stateFormat { ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
defmod Dum.Rep dummy
attr Dum.Rep room DbLog
defmod N.Dum.Rep notify .*Rep.Energy.*DIFF.* { fhem "setreading Dum.Rep DeinReading"." $EVTPART1"}
attr N.Dum.Rep room DbLog
2017-03-24 16:28:35.857 dummy Dum.Rep DeinReading: 2.3290
2017-03-24 16:28:35.860 dummy Dum.Rep DeinReading: 1.1400
mysql -u root -pPasswort -e 'select table_schema "Database",round(sum(data_length+index_length)/1024/1024,4) "Size (MB)" from information_schema.tables group by table_schema;'
ZitatWas muss ich zur Ermittlung der DB-Größe noch beachten?
2017.04.04 09:29:05 5: DbRep rep.myFHEMdb.Size -> row_array:
current.table_schema fhem current.data_index_length_MB 0.23 current.table_name fhem current.data_free_MB 4.00 current.row_format Compact current.table_collation utf8_bin current.engine InnoDB current.table_type BASE_TABLE current.create_time 2017-03-23_00:09:28 history.table_schema fhem history.data_index_length_MB 336.89 history.table_name fhem history.data_free_MB 4.00 history.row_format Compact history.table_collation utf8_bin history.engine InnoDB history.table_type BASE_TABLE history.create_time 2017-03-23_00:09:28
2017.04.04 09:28:47 5: DbRep rep.myFHEMdb_LT.Size -> row_array:
current.table_schema fhem current.data_index_length_MB 0.23 current.table_name fhem current.data_free_MB 4.00 current.row_format Compact current.table_collation utf8_bin current.engine InnoDB current.table_type BASE_TABLE current.create_time 2017-03-23_00:09:28 history.table_schema fhem history.data_index_length_MB 336.89 history.table_name fhem history.data_free_MB 4.00 history.row_format Compact history.table_collation utf8_bin history.engine InnoDB history.table_type BASE_TABLE history.create_time 2017-03-23_00:09:28
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/dblog/sqldb.conf
DBMODEL MYSQL
DEF /opt/fhem/dblog/sqldb.conf .*:.*
MODE asynchronous
NAME myFHEMdb
NR 229
NTFY_ORDER 50-myFHEMdb
PID 4224
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 2.14.4
dbconn mysql:database=fhem;host=192.168.0.25;port=3306
dbuser fhem
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
Dblog:
Countcurrent:
Mydblog:
TIME 1491291632.33305
VALUE 1535
Myfhemdb:
TIME 1491291632.3382
VALUE 1535
Counthistory:
Mydblog:
TIME 1491291632.32342
VALUE 1172753
Myfhemdb:
TIME 1491291632.32741
VALUE 1172753
Lastrowsdeleted:
Mydblog:
TIME 1491256863.41192
VALUE 0
Myfhemdb:
TIME 1491256863.41605
VALUE 0
State:
Mydblog:
TIME 1491291632.01284
VALUE countNbl
Myfhemdb:
TIME 1491291632.01807
VALUE countNbl
Readings:
2017-04-04 09:41:08 CacheUsage 18
2017-04-04 09:41:08 NextSync 2017-04-04 09:41:38 or if CacheUsage 500 reached
2017-04-04 09:40:32 countCurrent 1535
2017-04-04 09:40:32 countHistory 1172753
2017-04-04 00:01:03 lastRowsDeleted 0
2017-04-04 09:41:08 state connected
Cache:
index 109712
Memcache:
109695 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed: 152626|electricityConsumed|152626|
109696 2017-04-04 09:41:08|strombezug|JSONMETER|statElectricityConsumed: Hour: 571 Day: 4710 Month: 33746 Year: 33746 (since: 2017-04-02 )|statElectricityConsumed|Hour: 571 Day: 4710 Month: 33746 Year: 33746 (since: 2017-04-02 )|
109697 2017-04-04 09:41:08|strombezug|JSONMETER|statElectricityConsumedToday: 4710|statElectricityConsumedToday|4710|
109698 2017-04-04 09:41:08|strombezug|JSONMETER|electricityPower: 657|electricityPower|657|
109699 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_kWh: 152.626|electricityConsumed_kWh|152.626|
109700 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumedToday_kWh: 4.71|electricityConsumedToday_kWh|4.71|
109701 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_PowerCurrent: 654.545|electricityConsumed_PowerCurrent|654.545|
109702 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_PowerDayAver: 486.392|electricityConsumed_PowerDayAver|486.392|
109703 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyDay: 4.710|electricityConsumed_EnergyDay|4.710|
109704 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyMonth: -4887.374|electricityConsumed_EnergyMonth|-4887.374|
109705 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyYear: -4887.374|electricityConsumed_EnergyYear|-4887.374|
109706 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyMeter: -4887.374|electricityConsumed_EnergyMeter|-4887.374|
109707 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyCostDay: 1.201|electricityConsumed_EnergyCostDay|1.201|
109708 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyCostMonth: -1246.280|electricityConsumed_EnergyCostMonth|-1246.280|
109709 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyCostYear: -1246.280|electricityConsumed_EnergyCostYear|-1246.280|
109710 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_EnergyCostMeter: -1246.280|electricityConsumed_EnergyCostMeter|-1246.280|
109711 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_FinanceReserve: 2796.730|electricityConsumed_FinanceReserve|2796.730|
109712 2017-04-04 09:41:08|strombezug|JSONMETER|electricityConsumed_CounterCurrent: 152.626|electricityConsumed_CounterCurrent|152.626|
Attributes:
DbLogSelectionMode Exclude
DbLogType Current/History
asyncMode 1
excludeDevs LaCrosse.*,clone_ESPEasy_ESP_G16.*,ESPEasy_ESP_G16.*,d.ESP_G16_GasZaehler.*,doif..*,DS.*
room DbLog
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/dblog/sqldb_lt.conf
DBMODEL MYSQL
DEF /opt/fhem/dblog/sqldb_lt.conf (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
MODE asynchronous
NAME myFHEMdb_LT
NR 231
NTFY_ORDER 50-myFHEMdb_LT
PID 4224
REGEXP (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
STATE connected
TYPE DbLog
VERSION 2.14.4
dbconn mysql:database=fhem_lt;host=192.168.0.25;port=3306
dbuser fhem
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
Dblog:
State:
Mydblog:
TIME 1491256740.03095
VALUE connected
Myfhemdb:
TIME 1491256740.03662
VALUE connected
Readings:
2017-04-04 09:43:44 CacheUsage 2
2017-04-04 09:43:44 NextSync 2017-04-04 09:44:14 or if CacheUsage 500 reached
2017-03-21 17:15:20 reduceLogState reduceLogNbl finished. Rows processed: 0, deleted: 0, time: 0.00sec
2017-04-04 09:43:44 state connected
Cache:
index 19417
Memcache:
19416 2017-04-04 09:43:44|strombezug|JSONMETER|statElectricityConsumed: Hour: 604 Day: 4743 Month: 33779 Year: 33779 (since: 2017-04-02 )|statElectricityConsumed|Hour: 604 Day: 4743 Month: 33779 Year: 33779 (since: 2017-04-02 )|
19417 2017-04-04 09:43:44|strombezug|JSONMETER|statElectricityConsumedToday: 4743|statElectricityConsumedToday|4743|
Attributes:
DbLogSelectionMode Exclude
DbLogType Current/History
asyncMode 1
room DbLog
Internals:
CFGFN
DATABASE fhem
DEF myFHEMdb
LASTCMD tableinfo
NAME rep.myFHEMdb.Size
NOTIFYDEV global,rep.myFHEMdb.Size
NR 18015
NTFY_ORDER 50-rep.myFHEMdb.Size
ROLE Client
STATE done
TYPE DbRep
VERSION 4.11.4
Helper:
DBLOGDEVICE myFHEMdb
Cv:
aggregation no
aggsec 1
destr 2017-04-04
dsstr 1970-01-01
epoch_seconds_end 1491290647
mestr 04
msstr 01
testr 09:24:07
tsstr 01:00:00
wdadd 345600
yestr 2017
ysstr 1970
Helper:
Dblog:
1970-01-01__count__all_between_timestamps:
Mydblog:
TIME 1491290648.78851
VALUE 1172043
Myfhemdb:
TIME 1491290648.79239
VALUE 1172043
Info_history.data_index_length_mb:
Mydblog:
TIME 1491290945.37953
VALUE 336.89
Myfhemdb:
TIME 1491290945.38358
VALUE 336.89
State:
Mydblog:
TIME 1491251391.14047
VALUE done
Myfhemdb:
TIME 1491251391.1444
VALUE done
Readings:
2017-04-04 09:29:05 INFO_history.data_index_length_MB 336.89
2017-04-04 09:29:05 state done
Dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/dblog/sqldb.conf
DBMODEL MYSQL
DEF /opt/fhem/dblog/sqldb.conf .*:.*
MODE asynchronous
NAME myFHEMdb
NR 229
NTFY_ORDER 50-myFHEMdb
PID 4224
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 2.14.4
dbconn mysql:database=fhem;host=192.168.0.25;port=3306
dbuser fhem
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
Dblog:
Countcurrent:
Mydblog:
TIME 1491291632.33305
VALUE 1535
Myfhemdb:
TIME 1491291632.3382
VALUE 1535
Counthistory:
Mydblog:
TIME 1491291632.32342
VALUE 1172753
Myfhemdb:
TIME 1491291632.32741
VALUE 1172753
Lastrowsdeleted:
Mydblog:
TIME 1491256863.41192
VALUE 0
Myfhemdb:
TIME 1491256863.41605
VALUE 0
State:
Mydblog:
TIME 1491291632.01284
VALUE countNbl
Myfhemdb:
TIME 1491291632.01807
VALUE countNbl
Readings:
2017-04-04 09:44:47 CacheUsage 20
2017-04-04 09:44:47 NextSync 2017-04-04 09:45:17 or if CacheUsage 500 reached
2017-04-04 09:40:32 countCurrent 1535
2017-04-04 09:40:32 countHistory 1172753
2017-04-04 00:01:03 lastRowsDeleted 0
2017-04-04 09:44:47 state connected
Cache:
index 109868
Memcache:
109849 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed: 152668|electricityConsumed|152668|
109850 2017-04-04 09:44:47|strombezug|JSONMETER|statElectricityConsumed: Hour: 613 Day: 4752 Month: 33788 Year: 33788 (since: 2017-04-02 )|statElectricityConsumed|Hour: 613 Day: 4752 Month: 33788 Year: 33788 (since: 2017-04-02 )|
109851 2017-04-04 09:44:47|strombezug|JSONMETER|statElectricityConsumedToday: 4752|statElectricityConsumedToday|4752|
109852 2017-04-04 09:44:47|strombezug|JSONMETER|electricityPower: 532|electricityPower|532|
109853 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_kWh: 152.668|electricityConsumed_kWh|152.668|
109854 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumedToday_kWh: 4.752|electricityConsumedToday_kWh|4.752|
109855 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_PowerCurrent: 480.000|electricityConsumed_PowerCurrent|480.000|
109856 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_PowerDayAver: 487.682|electricityConsumed_PowerDayAver|487.682|
109857 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyDay: 4.752|electricityConsumed_EnergyDay|4.752|
109858 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyMonth: -4887.332|electricityConsumed_EnergyMonth|-4887.332|
109859 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyYear: -4887.332|electricityConsumed_EnergyYear|-4887.332|
109860 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyMeter: -4887.332|electricityConsumed_EnergyMeter|-4887.332|
109861 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyCostDay: 1.212|electricityConsumed_EnergyCostDay|1.212|
109862 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyCostMonth: -1246.270|electricityConsumed_EnergyCostMonth|-1246.270|
109863 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyCostYear: -1246.270|electricityConsumed_EnergyCostYear|-1246.270|
109864 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_EnergyCostMeter: -1246.270|electricityConsumed_EnergyCostMeter|-1246.270|
109865 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_FinanceReserve: 2796.720|electricityConsumed_FinanceReserve|2796.720|
109866 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_CounterCurrent: 152.668|electricityConsumed_CounterCurrent|152.668|
109867 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumed_kWh_PowerDayAver: 0.715|electricityConsumed_kWh_PowerDayAver|0.715|
109868 2017-04-04 09:44:47|strombezug|JSONMETER|electricityConsumedToday_kWh_PowerDayAver: -0.994|electricityConsumedToday_kWh_PowerDayAver|-0.994|
Attributes:
DbLogExclude state
icon time_note
room DbLog
showTableInfo %history%,%current%
showproctime 1
suppressReading ^(?!.*(INFO_history.data_index_length_MB)|(state)|(1970-01-01__COUNT__all_between_timestamps)).*$
Internals:
CFGFN
DATABASE fhem_lt
DEF myFHEMdb_LT
LASTCMD tableinfo
NAME rep.myFHEMdb_LT.Size
NOTIFYDEV global,rep.myFHEMdb_LT.Size
NR 18113
NTFY_ORDER 50-rep.myFHEMdb_LT.Size
ROLE Client
STATE done
TYPE DbRep
VERSION 4.11.4
Helper:
DBLOGDEVICE myFHEMdb_LT
Cv:
aggregation no
aggsec 1
destr 2017-04-04
dsstr 1970-01-01
epoch_seconds_end 1491290843
mestr 04
msstr 01
testr 09:27:23
tsstr 01:00:00
wdadd 345600
yestr 2017
ysstr 1970
Helper:
Dblog:
1970-01-01__count__all_between_timestamps:
Mydblog:
TIME 1491290844.20598
VALUE 512601
Myfhemdb:
TIME 1491290844.21006
VALUE 512601
Info_history.data_index_length_mb:
Mydblog:
TIME 1491290927.01463
VALUE 336.89
Myfhemdb:
TIME 1491290927.01863
VALUE 336.89
State:
Mydblog:
TIME 1491251610.77049
VALUE done
Myfhemdb:
TIME 1491251610.7746
VALUE done
Readings:
2017-04-04 09:28:47 INFO_history.data_index_length_MB 336.89
2017-04-04 09:28:47 state done
Dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/dblog/sqldb_lt.conf
DBMODEL MYSQL
DEF /opt/fhem/dblog/sqldb_lt.conf (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
MODE asynchronous
NAME myFHEMdb_LT
NR 231
NTFY_ORDER 50-myFHEMdb_LT
PID 4224
REGEXP (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
STATE connected
TYPE DbLog
VERSION 2.14.4
dbconn mysql:database=fhem_lt;host=192.168.0.25;port=3306
dbuser fhem
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
Dblog:
State:
Mydblog:
TIME 1491256740.03095
VALUE connected
Myfhemdb:
TIME 1491256740.03662
VALUE connected
Readings:
2017-04-04 09:45:20 CacheUsage 5
2017-04-04 09:45:20 NextSync 2017-04-04 09:45:50 or if CacheUsage 500 reached
2017-03-21 17:15:20 reduceLogState reduceLogNbl finished. Rows processed: 0, deleted: 0, time: 0.00sec
2017-04-04 09:45:20 state connected
Cache:
index 19429
Memcache:
19425 2017-04-04 09:45:20|mys_103_TempHum2Button|MYSENSORS_DEVICE|temperature: 16.2|temperature|16.2|°C
19426 2017-04-04 09:45:20|mys_103_TempHum2Button|MYSENSORS_DEVICE|humidity: 55.7|humidity|55.7|%
19427 2017-04-04 09:45:20|mys_103_TempHum2Button|MYSENSORS_DEVICE|dewpoint: 7.3|dewpoint|7.3|
19428 2017-04-04 09:45:20|strombezug|JSONMETER|statElectricityConsumed: Hour: 618 Day: 4757 Month: 33793 Year: 33793 (since: 2017-04-02 )|statElectricityConsumed|Hour: 618 Day: 4757 Month: 33793 Year: 33793 (since: 2017-04-02 )|
19429 2017-04-04 09:45:20|strombezug|JSONMETER|statElectricityConsumedToday: 4757|statElectricityConsumedToday|4757|
Attributes:
DbLogExclude state
icon time_note
room DbLog
showTableInfo %history%,%current%
showproctime 1
suppressReading ^(?!.*(INFO_history.data_index_length_MB)|(state)|(1970-01-01__COUNT__all_between_timestamps)).*$
[font=courier]+--------------------+-----------+
| Database | Size (MB) |
+--------------------+-----------+
| fhem | 248.9219 |
| fhem_lt | 89.2031 |
| information_schema | 0.0088 |
| mysql | 0.6784 |
| performance_schema | 0.0000 |
+--------------------+-----------+[/font]
2017-04-04 12:00:05 INFO_current.create_time 2017-03-23_00:09:28
2017-04-04 12:00:05 INFO_current.data_free_MB 18.00
2017-04-04 12:00:05 INFO_current.data_index_length_MB 0.27
2017-04-04 12:00:05 INFO_current.engine InnoDB
2017-04-04 12:00:05 INFO_current.row_format Compact
2017-04-04 12:00:05 INFO_current.table_collation utf8_bin
2017-04-04 12:00:05 INFO_current.table_name fhem
2017-04-04 12:00:05 INFO_current.table_schema fhem
2017-04-04 12:00:05 INFO_current.table_type BASE_TABLE
2017-04-04 12:00:05 INFO_history.create_time 2017-03-23_00:09:28
2017-04-04 12:00:05 INFO_history.data_free_MB 18.00
2017-04-04 12:00:05 INFO_history.data_index_length_MB 418.08
2017-04-04 12:00:05 INFO_history.engine InnoDB
2017-04-04 12:00:05 INFO_history.row_format Compact
2017-04-04 12:00:05 INFO_history.table_collation utf8_bin
2017-04-04 12:00:05 INFO_history.table_name fhem
2017-04-04 12:00:05 INFO_history.table_schema fhem
2017-04-04 12:00:05 INFO_history.table_type BASE_TABLE
2017-04-04 12:00:05 background_processing_time 0.0101
2017-04-04 12:00:05 sql_processing_time 0.0087
2017-04-04 12:00:05 state done
Dbloghash:
CFGFN
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/dblog/sqldblt.conf
DBMODEL MYSQL
DEF /opt/fhem/dblog/sqldblt.conf (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
MODE synchronous
NAME myFHEMdbLT
NR 26143
NTFY_ORDER 50-myFHEMdbLT
PID 4224
REGEXP (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
STATE connected
TYPE DbLog
VERSION 2.14.4
dbconn mysql:database=fhemlt;host=192.168.0.25;port=3306
dbuser fhem
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
Dblog:
State:
Mydblog:
TIME 1491298884.62611
VALUE connected
Myfhemdb:
TIME 1491298884.62999
VALUE connected
Readings:
2017-04-04 14:02:27 CacheUsage 2
2017-04-04 14:02:27 NextSync 2017-04-04 14:02:57 or if CacheUsage 500 reached
2017-04-04 14:02:27 state connected
Cache:
index 1122
Memcache:
1121 2017-04-04 14:02:27|strombezug|JSONMETER|statElectricityConsumed: Hour: 21 Day: 7604 Month: 36640 Year: 36640 (since: 2017-04-02 )|statElectricityConsumed|Hour: 21 Day: 7604 Month: 36640 Year: 36640 (since: 2017-04-02 )|
1122 2017-04-04 14:02:27|strombezug|JSONMETER|statElectricityConsumedToday: 7604|statElectricityConsumedToday|7604|
Attributes:
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
icon security
room DbLog
showproctime 1
stateFormat { ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeout 3600
Use of uninitialized value $dbconn in split at ./FHEM/93_DbRep.pm line 257, <$fh> line 2754.
Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 1939, <$fh> line 3564.
INFO_fhem.create_time 2017-03-23_00:09:28 2017-04-06 21:48:32
INFO_fhem.data_index_length_MB 293.08 2017-04-06 21:48:32
Internals:
DATABASE test
DEF myTESTdb
LASTCMD tableinfo
NAME rep.myTESTdb
NOTIFYDEV global,rep.myTESTdb
NR 244
NTFY_ORDER 50-rep.myTESTdb
ROLE Client
STATE done
TYPE DbRep
VERSION 4.12.1
Helper:
DBLOGDEVICE myTESTdb
Helper:
Dblog:
Info_fhem.create_time:
Mydblog:
TIME 1491508112.42359
VALUE 2017-03-23_00:09:28
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-03-23_00:09:28
Info_fhem.data_index_length_mb:
Mydblog:
TIME 1491508112.42359
VALUE 293.08
Myfhemdb:
TIME 1491508112.43054
VALUE 293.08
Info_fhem.engine:
Mydblog:
TIME 1491508112.42359
VALUE InnoDB
Myfhemdb:
TIME 1491508112.43054
VALUE InnoDB
Info_fhem.row_format:
Mydblog:
TIME 1491508112.42359
VALUE Compact
Myfhemdb:
TIME 1491508112.43054
VALUE Compact
Info_fhem.table_collation:
Mydblog:
TIME 1491508112.42359
VALUE utf8_bin
Myfhemdb:
TIME 1491508112.43054
VALUE utf8_bin
Info_fhem.table_type:
Mydblog:
TIME 1491508112.42359
VALUE 2017-03-23_00:09:28
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-03-23_00:09:28
Info_fhem_lt.create_time:
Mydblog:
TIME 1491508112.42359
VALUE 2017-03-22_23:43:49
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-03-22_23:43:49
Info_fhem_lt.data_index_length_mb:
Mydblog:
TIME 1491508112.42359
VALUE 94.25
Myfhemdb:
TIME 1491508112.43054
VALUE 94.25
Info_fhem_lt.engine:
Mydblog:
TIME 1491508112.42359
VALUE InnoDB
Myfhemdb:
TIME 1491508112.43054
VALUE InnoDB
Info_fhem_lt.row_format:
Mydblog:
TIME 1491508112.42359
VALUE Compact
Myfhemdb:
TIME 1491508112.43054
VALUE Compact
Info_fhem_lt.table_collation:
Mydblog:
TIME 1491508112.42359
VALUE utf8_bin
Myfhemdb:
TIME 1491508112.43054
VALUE utf8_bin
Info_fhem_lt.table_type:
Mydblog:
TIME 1491508112.42359
VALUE 2017-03-22_23:43:49
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-03-22_23:43:49
Info_fhemlt.create_time:
Mydblog:
TIME 1491508112.42359
VALUE 2017-04-04_11:32:21
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-04-04_11:32:21
Info_fhemlt.data_index_length_mb:
Mydblog:
TIME 1491508112.42359
VALUE 86.25
Myfhemdb:
TIME 1491508112.43054
VALUE 86.25
Info_fhemlt.engine:
Mydblog:
TIME 1491508112.42359
VALUE InnoDB
Myfhemdb:
TIME 1491508112.43054
VALUE InnoDB
Info_fhemlt.row_format:
Mydblog:
TIME 1491508112.42359
VALUE Compact
Myfhemdb:
TIME 1491508112.43054
VALUE Compact
Info_fhemlt.table_collation:
Mydblog:
TIME 1491508112.42359
VALUE utf8_bin
Myfhemdb:
TIME 1491508112.43054
VALUE utf8_bin
Info_fhemlt.table_type:
Mydblog:
TIME 1491508112.42359
VALUE 2017-04-04_11:32:21
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-04-04_11:32:21
Info_information_schema.create_time:
Mydblog:
TIME 1491508112.42359
VALUE 2017-04-06_21:48:32
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-04-06_21:48:32
Info_information_schema.data_index_length_mb:
Mydblog:
TIME 1491508112.42359
VALUE 0.01
Myfhemdb:
TIME 1491508112.43054
VALUE 0.01
Info_information_schema.engine:
Mydblog:
TIME 1491508112.42359
VALUE MEMORY
Myfhemdb:
TIME 1491508112.43054
VALUE MEMORY
Info_information_schema.row_format:
Mydblog:
TIME 1491508112.42359
VALUE Fixed
Myfhemdb:
TIME 1491508112.43054
VALUE Fixed
Info_information_schema.table_collation:
Mydblog:
TIME 1491508112.42359
VALUE utf8_general_ci
Myfhemdb:
TIME 1491508112.43054
VALUE utf8_general_ci
Info_information_schema.table_type:
Mydblog:
TIME 1491508112.42359
VALUE 2017-04-06_21:48:32
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-04-06_21:48:32
Info_test.create_time:
Mydblog:
TIME 1491508112.42359
VALUE 2017-04-04_22:09:48
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-04-04_22:09:48
Info_test.data_index_length_mb:
Mydblog:
TIME 1491508112.42359
VALUE 7.05
Myfhemdb:
TIME 1491508112.43054
VALUE 7.05
Info_test.engine:
Mydblog:
TIME 1491508112.42359
VALUE InnoDB
Myfhemdb:
TIME 1491508112.43054
VALUE InnoDB
Info_test.row_format:
Mydblog:
TIME 1491508112.42359
VALUE Compact
Myfhemdb:
TIME 1491508112.43054
VALUE Compact
Info_test.table_collation:
Mydblog:
TIME 1491508112.42359
VALUE utf8_bin
Myfhemdb:
TIME 1491508112.43054
VALUE utf8_bin
Info_test.table_type:
Mydblog:
TIME 1491508112.42359
VALUE 2017-04-04_22:09:48
Myfhemdb:
TIME 1491508112.43054
VALUE 2017-04-04_22:09:48
Background_processing_time:
Mydblog:
TIME 1491508112.42359
VALUE 0.0103
Myfhemdb:
TIME 1491508112.43054
VALUE 0.0103
Sql_processing_time:
Mydblog:
TIME 1491508112.42359
VALUE 0.0071
Myfhemdb:
TIME 1491508112.43054
VALUE 0.0071
State:
Mydblog:
TIME 1491508112.42359
VALUE done
Myfhemdb:
TIME 1491508112.43054
VALUE done
Readings:
2017-04-06 21:48:32 INFO_fhem.create_time 2017-03-23_00:09:28
2017-04-06 21:48:32 INFO_fhem.data_index_length_MB 293.08
2017-04-06 21:48:32 INFO_fhem.engine InnoDB
2017-04-06 21:48:32 INFO_fhem.row_format Compact
2017-04-06 21:48:32 INFO_fhem.table_collation utf8_bin
2017-04-06 21:48:32 INFO_fhem.table_type 2017-03-23_00:09:28
2017-04-06 21:48:32 INFO_fhem_lt.create_time 2017-03-22_23:43:49
2017-04-06 21:48:32 INFO_fhem_lt.data_index_length_MB 94.25
2017-04-06 21:48:32 INFO_fhem_lt.engine InnoDB
2017-04-06 21:48:32 INFO_fhem_lt.row_format Compact
2017-04-06 21:48:32 INFO_fhem_lt.table_collation utf8_bin
2017-04-06 21:48:32 INFO_fhem_lt.table_type 2017-03-22_23:43:49
2017-04-06 21:48:32 INFO_fhemlt.create_time 2017-04-04_11:32:21
2017-04-06 21:48:32 INFO_fhemlt.data_index_length_MB 86.25
2017-04-06 21:48:32 INFO_fhemlt.engine InnoDB
2017-04-06 21:48:32 INFO_fhemlt.row_format Compact
2017-04-06 21:48:32 INFO_fhemlt.table_collation utf8_bin
2017-04-06 21:48:32 INFO_fhemlt.table_type 2017-04-04_11:32:21
2017-04-06 21:48:32 INFO_information_schema.create_time 2017-04-06_21:48:32
2017-04-06 21:48:32 INFO_information_schema.data_index_length_MB 0.01
2017-04-06 21:48:32 INFO_information_schema.engine MEMORY
2017-04-06 21:48:32 INFO_information_schema.row_format Fixed
2017-04-06 21:48:32 INFO_information_schema.table_collation utf8_general_ci
2017-04-06 21:48:32 INFO_information_schema.table_type 2017-04-06_21:48:32
2017-04-06 21:48:32 INFO_test.create_time 2017-04-04_22:09:48
2017-04-06 21:48:32 INFO_test.data_index_length_MB 7.05
2017-04-06 21:48:32 INFO_test.engine InnoDB
2017-04-06 21:48:32 INFO_test.row_format Compact
2017-04-06 21:48:32 INFO_test.table_collation utf8_bin
2017-04-06 21:48:32 INFO_test.table_type 2017-04-04_22:09:48
2017-04-06 21:48:32 background_processing_time 0.0103
2017-04-06 21:48:32 sql_processing_time 0.0071
2017-04-06 21:48:32 state done
Dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/dblog/sqldbtest.conf
DBMODEL MYSQL
DEF /opt/fhem/dblog/sqldbtest.conf (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
MODE asynchronous
NAME myTESTdb
NR 242
NTFY_ORDER 50-myTESTdb
PID 22137
REGEXP (myFHEMdb.*:DbFileSize.*|myFHEMdb.*:1970-01-01__COUNT_.*|Vitocrossal:.*LastDay.*|Vitocrossal:(appCountsPerDay|appCountsPerMonth).*|Vitocrossal:state_.*|.*_avg_.*|.*_max_.*|.*_min_.*|hc.Gasverbrauch_.*:(appCountsPerDay|appCountsPerWeek|appCountsPerMonth|appCountsPerYear).*|HZ_.*:temperature.*|WW_.*:temperature.*|Raumt.*:temperature.*|mys_103.*:temperature.*|mys_103.*:humidity.*|mys_103.*:dewpoint.*|.*:deviceMsg.*|.*:statElectricity.*)
STATE connected
TYPE DbLog
VERSION 2.14.4
dbconn mysql:database=test;host=192.168.0.25;port=3306
dbuser fhem
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
Dblog:
Dbi connect('database=test;host=192.168.0.25;port=3306','fhem',...) failed:
Mydblog:
TIME 1491493681.14178
VALUE Can't connect to MySQL server on '192.168.0.25' (111) at ./FHEM/93_DbLog.pm line 1560.
Myfhemdb:
TIME 1491493681.14937
VALUE Can't connect to MySQL server on '192.168.0.25' (111) at ./FHEM/93_DbLog.pm line 1560.
Readings:
2017-04-06 21:55:21 CacheUsage 7
2017-04-06 21:55:17 NextSync 2017-04-06 21:55:47 or if CacheUsage 500 reached
2017-04-06 21:55:17 state connected
Cache:
index 21758
Memcache:
21752 2017-04-06 21:55:17|WW_Ruecklauf_Zirkulationspumpe|OWDEVICE|temperature: 23.5|temperature|23.5|°C
21753 2017-04-06 21:55:17|strombezug|JSONMETER|statElectricityConsumed: Hour: 612 Day: 17139 Month: 74872 Year: 74872 (since: 2017-04-02 )|statElectricityConsumed|Hour: 612 Day: 17139 Month: 74872 Year: 74872 (since: 2017-04-02 )|
21754 2017-04-06 21:55:17|strombezug|JSONMETER|statElectricityConsumedToday: 17139|statElectricityConsumedToday|17139|
21755 2017-04-06 21:55:17|strombezug|JSONMETER|statElectricityPowerDay: Min: 246 Avg: 783 Max: 7317|statElectricityPowerDay|Min: 246 Avg: 783 Max: 7317|
21756 2017-04-06 21:55:17|strombezug|JSONMETER|statElectricityPowerMonth: Min: 0 Avg: 639 Max: 7317 (since: 2017-04-01_22:29:19 )|statElectricityPowerMonth|Min: 0 Avg: 639 Max: 7317 (since: 2017-04-01_22:29:19 )|
21757 2017-04-06 21:55:17|strombezug|JSONMETER|statElectricityPowerYear: Min: 0 Avg: 639 Max: 7317 (since: 2017-04-01_22:29:19 )|statElectricityPowerYear|Min: 0 Avg: 639 Max: 7317 (since: 2017-04-01_22:29:19 )|
21758 2017-04-06 21:55:21|WW_OG_warm|OWDEVICE|temperature: 53.5|temperature|53.5|°C
Attributes:
allowDeletion 1
expimpfile /opt/fhem/backup/exp2sql_lt.csv
icon time_note
room DbLog
showproctime 1
timeout 180
ZitatThe number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40 to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
select device, count(*) from history where timestamp >= "2017-05-06 00:00:00" group by DEVICE HAVING count(*) > 2000
wert1|wert2|...
und dann in einem Reading mit mehreren Zeilen dieser Art zu realisieren. Zumindest in perl lässt sich das so immer noch recht gut weiterverarbeiten (der senkrechte Strich kann ja noch im Inhalt escaped werden).ZitatIch liefer auch gerne Code für eine erste Version zu, wenn gewünscht, ich habe bisher nur nicht in die Tasten gegriffen...
Zitat von: DS_Starter am 07 Mai 2017, 15:36:47
Ja klar, immer gerne ....
select device, count(*) from history where timestamp >= "2017-01-06 00:00:00" group by DEVICE HAVING count(*) > 2000
select device, count(*) from history where timestamp >= "2017-01-06 00:00:00" group by DEVICE HAVING count(*) > 800
select device, count(*) from history where timestamp >= "2017-05-06 00:00:00" group by device
select * from history where device like "Te%t" ORDER BY `TIMESTAMP` DESC;
select * from history where `TIMESTAMP` > "2017-05-09 18:03:00" ORDER BY `TIMESTAMP` DESC;
select * from current order by `timestamp` desc;
SELECT SUM(VALUE) AS 'Einspeisung am 04.05.2017', count(*) AS 'Anzahl' FROM `history` where `READING` = "Einspeisung_WirkP_Zaehler_Diff" AND TIMESTAMP BETWEEN '2017-05-04' AND '2017-05-05'
delete from current;
delete from history where timestamp < "2016-05-06 00:00:00"
UPDATE history SET value='TestVa$$$$ue$' WHERE value='TestVa$$$$ue'
select * from history where device = "Te§t"
insert INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES ('2017-05-09 17:00:14','Test','manuell','manuell','Tes§e','TestValue','°C')
Reading: Te§Te Device: Te§t
2017-05-09,10:00:09,TestValue
2017-05-09,10:00:10,TestVa§ue
2017-05-09,10:00:11,TestVa§§ue
2017-05-09,10:00:12,TestVa$$$ue
2017-05-09,10:00:13,TestVa$$$$ue
2017-05-09,17:00:13,TestValue
ZitatBei fehlerhaftem Statement stürzt der Tochterprozess im prepare ab und bleibt auf running state. Hier wäre eine Ausführung im eval wahrscheinlich sinnvoll, um dann direkt eine Fehlermeldung
ZitatMacht ein getrenntes sqlResultSingle wirklich noch Sinn? (mit der Formatoption ist das doch unnötig, oder)
sub UserExitFunction {
my ($name,$reading,$value) = @_;
my $hash = $defs{$name};
...
# z.B. übergebene Daten loggen
Log3 $name, 1, "UserExitFn $name called - transfer parameter are Reading: $reading, Value: $value " ;
...
return;
}
attr Report event-on-update-reading state
attr Report sqlResultFormat separated
set Report sqlCmd select device, count(*) from history group by DEVICE;
attr Report userExitFn NaDevs .*:.*
attr Report comment (sysmon|MyWetter|SMA_Energymeter|STP_5000|Cam.*)
############################################################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.
package main;
use strict;
use warnings;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
# Enter you functions below _this_ line.
my @dna;
...
######################################################
######## Not allowed Devs in DB ermitteln
######## UserExitFn in DbRep
######################################################
sub NaDevs {
my ($name,$reading,$value) = @_;
my $hash = $defs{$name};
# DB Namen ermitteln
my $dbconn = $hash->{dbloghash}{dbconn};
my $db = (split("=",(split(";",$dbconn))[0]))[1];
# Liste der erlaubten Devices aus Attribut "comment" lesen
my $adevs = AttrVal($name, "comment","-");
if($reading eq "state" && $value eq "running") {
# der Select wurde gestartet
Log3 $name, 1, "UserExitFn called by $name - new Select has been startet. Allowed devices in database are: $adevs";
@dna=();
return;
}
my $d = (split("\\|",$value))[0];
# das Selektionsergebnis bewerten und ggf. dem Ergebnisarray hinzufügen
if ( $reading =~ m/SqlResultRow.*/ && $d !~ m/$adevs/) {
push(@dna,$d."\n")
}
if ($reading eq "state" && $value eq "done") {
# Ergebnis versenden bzw. loggen
Log3 $name, 1, "UserExitFn called by $name - Devices not allowd found in $db: @dna";
fhem("set teleBot message Devices are not allowed found in $db: \n @dna");
}
return;
}
....
1;
ZitatAktueller Stromverbrauch der WP wird alle 60 sec. von einem Modbus Zähler abgefragt und in die DB geschrieben.
Betrriebsstatus der Heizung wird ebenfalls alle 60 sec. abgefragt und bei Änderung aufgezeichnet.
2017-05-22_07-23-35__MelderGW1__state motion 2017-05-22 18:10:44
2017-05-22_07-24-07__MelderGW1__state noMotion 2017-05-22 18:10:44
2017-05-22_08-38-59__MelderGW1__state motion 2017-05-22 18:10:44
2017-05-22_08-39-30__MelderGW1__state noMotion 2017-05-22 18:10:44
2017-05-22_11-35-21__MelderGW1__state motion 2017-05-22 18:10:44
2017-05-22_11-35-53__MelderGW1__state noMotion 2017-05-22 18:10:44
lastUsage WW 2.87 kw
lastDuration WW 13 min
...
ZitatDer Wert des Zählers ist nicht die aktuelle Leistung, sondern der Verbrauchte Strom in kWh.Das macht es einfacher ...
ZitatMüsste eben statt "averageValue", "diffValue" verwenden und erspare mir das Multiplizieren.Richtig.
Zitatin der Berechnung müsste man dann wohl auch noch Mitternacht als eventuelles Start oder Stop berücksichtigen.In DbLog gibt es eine addlog-Funktion. Mit einem At kannst du dir damit immer z.B. um 00:00:00 und 23:59:59 einen definierten Messpunkt setzen.
ZitatEs geht natürliches alles Mögliche. Wichtig nur dass du die Rohwerte für jedwede Auswertung in der DB vorhältst. Dann kannst du später nach Herzenslust verschiedene Perioden auswerten, darstellen etc. In meinem weiter oben angegeben Beispiel will ich die Energiebilanz noch um einen Jahreswert ergänzen ... geht ja problemlos da die zugrunde liegenden Daten in der DB vorhanden sind. Das ist in meinen Augen der primäre Vorteil einer DB und deswegen auch DbRep entstanden.
Könnte man dies dann eigentlich auch statt scheduled zu berechnen und in der DB zu speichern einfach ausführen wenn man es benötigt? Also mit timestamp_begin/end eines Tages von welchem man die genauen Werte wissen will?
######################################################
######## Zugriff auf Wert aus JSON formatiertes
######## SqlResult
######## (sqlResultFormat = json)
######################################################
sub resfromjson {
my ($name,$reading,$value) = @_;
my $hash = $defs{$name};
if ($reading eq "SqlResult") {
# nur Reading SqlResult ist JSON formatiert
my $data = decode_json($value);
foreach my $k (keys(%$data)) {
# ab hier eigene Verarbeitung für jedes Element
# z.B. Ausgabe jedes Element welches "Cam" enthält
my $ke = $data->{$k};
if($ke =~ m/Cam/i) {
my ($res1,$res2) = split("\\|", $ke);
Log3($name, 1, "$name - extract element $k by userExitFn: ".$res1." ".$res2);
}
}
}
return;
}
mysql -u <user> -p <dbname> < <filename>.sql
defmod mySqlBackup_DI DOIF ([[00:10]])\
({fhem("set dbrepBackup sqlCmd ".AttrVal("dbrepBackup","sqlExport",""))})\
defmod dbrepBackup DbRep myDbLogSQL
attr dbrepBackup userattr sqlExport
attr dbrepBackup dumpDir /mnt/usbstick
attr dbrepBackup dumpFilesKeep 5
attr dbrepBackup dumpMemlimit 10000
attr dbrepBackup dumpSpeed 1000
attr dbrepBackup sqlExport SELECT *\
FROM history\
INTO OUTFILE '/mnt/usbstick/fhemDB.bak.csv'\
FIELDS TERMINATED BY ','\
ENCLOSED BY '"'\
LINES TERMINATED BY '\n';;
attr dbrepBackup timeout 5000
attr dbrepBackup widgetOverride sqlExport:textField-long
2017.06.06 10:02:01 1: Timeout for mysql_DoDump reached, terminated process 20411
set SQL reopen 900
(oder ähnliches) absetzt. (und natürlich den asynchronen Modus nutzt).Die Versionsverwaltung der erzeugten Exportfiles muß der Anwender durch geeignete Maßnahmen selbst übernehmen.
set dbRep dumpMySQL serversite
nicht direkt ausführen, da dann meine synology noch nicht gestartet ist (WOL) und das Zielverzeichnis somit noch nicht zur Verfügung steht.Zitat von: DS_Starter am 08 Juni 2017, 10:43:42Man könnte den Prozess killen, indem man sich die ProzessID merkt, aber ich denke, darauf kann verzichtet werden.
Ja klar, cancelDump funktioniert nicht, weil einmal auf dem Server angstossen läuft es halt los. Muss ich rausnehmen.
Zitat von: DS_Starter am 08 Juni 2017, 10:43:42
Wenn dir / euch bezüglich der Versionsverwaltung auf serverSide etwas brauchbares einfällt gerne als Zuarbeit ....
attr <Device > userExitFn doafterdump
############################################################################################################
######## Aktion nach einem Backup
############################################################################################################
sub doafterdump {
my ($name,$reading,$value) = @_;
my $hash = $defs{$name};
my $dbname = $hash->{DATABASE};
if ($name =~ m/Rep.Fhem.*Dump/) {
if ($reading = "state" && ReadingsVal($name,"state",'') =~ m/Database.*backup.*finished/) {
my $dev = 'Device: '.$name.'\n';
my $dfc = 'DumpFileCreated: '.ReadingsVal($name, "DumpFileCreated", '').'\n';
my $dfd = 'DumpFilesDeleted: '.ReadingsVal($name, "DumpFilesDeleted", '').'\n';
my $rc = 'DumpRowsCurrrent: '.ReadingsVal($name, "DumpRowsCurrrent", '').'\n';
my $rh = 'DumpRowsHistory: '.ReadingsVal($name, "DumpRowsHistory", '').'\n';
my $bt = 'Laufzeit: '.sprintf("%.0f",ReadingsVal($name, "background_processing_time", '')).' Sekunden\n';
my $dfs = 'Status: '.ReadingsVal($name, "state", '').'\n';
DebianMailnbl('<Empfänger>',
'Dump '.$dbname.' beendet', 'Datenbank Dump ist beendet:\n\n'.$dev.$dfc.$dfd.$rc.$rh.$bt.$dfs.'\n\\nFHEM-Server' );
}
}
return;
}
Too many arguments for main::deldumpfiles at ./FHEM/93_DbRep.pm line 4500, near "$bfile)"
BEGIN not safe after errors--compilation aborted at ./FHEM/93_DbRep.pm line 4876.
2017.06.12 09:08:45 3: DbRep mySqlBackup - Starting dump of database 'fhem', table 'history'.
2017.06.12 09:09:45 1: Timeout for mysql_DoDumpServerSide reached, terminated process 22387
2017.06.12 09:09:45 1: DbRep mySqlBackup -> BlockingCall timed out
2017.06.12 09:09:45 3: DbRep mySqlBackup - Database dump aborted with timeout !
cd /opt/fhem
sudo perl contrib/commandref_join.pl
2017.06.13 08:47:48 3: DbRep mySqlBackup - Table 1 `current` optimized successfully.
2017.06.13 08:47:48 3: DbRep mySqlBackup - 1 tables have been optimized.
2017.06.13 08:47:48 3: DbRep mySqlBackup - Starting dump of database 'fhem', table 'history'.
2017.06.13 08:47:48 5: DbRep mySqlBackup - Use Outfile: /tmp/fhem_history_2017_06_13_08_47.csv
3: DbRep mySqlBackup - ################################################################
3: DbRep mySqlBackup - ### New database serverSide dump ###
3: DbRep mySqlBackup - ################################################################
4: DbRep mySqlBackup -> Start BlockingCall mysql_DoDumpServerSide
5: DbRep mySqlBackup - current query: SHOW TABLE STATUS FROM `fhem`
3: DbRep mySqlBackup - Searching for tables inside database fhem....
5: DbRep mySqlBackup - ......... Table definition found: .........
5: DbRep mySqlBackup - Avg_row_length: 82
5: DbRep mySqlBackup - Check_time: 2014-11-12 13:08:35
5: DbRep mySqlBackup - Collation: latin1_swedish_ci
5: DbRep mySqlBackup - Comment:
5: DbRep mySqlBackup - Create_options:
5: DbRep mySqlBackup - Create_time: 2014-10-12 10:08:40
5: DbRep mySqlBackup - Data_free: 112
5: DbRep mySqlBackup - Data_length: 34264
5: DbRep mySqlBackup - Engine: MyISAM
5: DbRep mySqlBackup - Index_length: 1024
5: DbRep mySqlBackup - Max_data_length: 281474976710655
5: DbRep mySqlBackup - Name: current
5: DbRep mySqlBackup - Row_format: Dynamic
5: DbRep mySqlBackup - Update_time: 2014-11-20 15:35:51
5: DbRep mySqlBackup - Version: 10
5: DbRep mySqlBackup - ......... Table definition END ............
5: DbRep mySqlBackup - ......... Table definition found: .........
5: DbRep mySqlBackup - Avg_row_length: 90
5: DbRep mySqlBackup - Check_time: 2017-03-16 12:28:17
5: DbRep mySqlBackup - Collation: latin1_bin
5: DbRep mySqlBackup - Comment:
5: DbRep mySqlBackup - Create_options: partitioned
5: DbRep mySqlBackup - Create_time: 2017-03-14 11:49:56
5: DbRep mySqlBackup - Data_free: 0
5: DbRep mySqlBackup - Data_length: 1423007744
5: DbRep mySqlBackup - Engine: Aria
5: DbRep mySqlBackup - Index_length: 651214848
5: DbRep mySqlBackup - Max_data_length: 0
5: DbRep mySqlBackup - Name: history
5: DbRep mySqlBackup - Row_format: Page
5: DbRep mySqlBackup - Update_time: 2017-06-13 07:58:35
5: DbRep mySqlBackup - Version: 10
5: DbRep mySqlBackup - ......... Table definition END ............
3: DbRep mySqlBackup - Optimizing tables
3: DbRep mySqlBackup - Optimizing table `current` (MYISAM). It will take a while.
3: DbRep mySqlBackup - Table 1 `current` optimized successfully.
3: DbRep mySqlBackup - 1 tables have been optimized.
3: DbRep mySqlBackup - Starting dump of database 'fhem', table 'history'.
5: DbRep mySqlBackup - Use Outfile: /tmp/fhem_history_2017_06_13_08_47.csv
2017.06.14 09:56:34 3: DbRep rep - Database dump finished successfully.
2017.06.14 09:56:34 4: DbRep rep -> BlockingCall DumpDone finished
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:54:19, Device: log, Event: CacheUsage: 304
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:54:19, Device: log, Event: CacheUsage: 306
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:54:19, Device: log, Event: CacheUsage: 308
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:14, Device: log, Event: CacheUsage: 314
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:14, Device: log, Event: CacheUsage: 316
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:18, Device: log, Event: CacheUsage: 320
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:18, Device: log, Event: CacheUsage: 322
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:18, Device: log, Event: CacheUsage: 324
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:19, Device: log, Event: CacheUsage: 328
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:19, Device: log, Event: CacheUsage: 330
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:19, Device: log, Event: CacheUsage: 332
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:19, Device: log, Event: CacheUsage: 334
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:20, Device: log, Event: CacheUsage: 338
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:22, Device: log, Event: CacheUsage: 344
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:22, Device: log, Event: CacheUsage: 346
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:55:22, Device: log, Event: CacheUsage: 348
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:18, Device: log, Event: CacheUsage: 352
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:18, Device: log, Event: CacheUsage: 354
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:18, Device: log, Event: CacheUsage: 356
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:18, Device: log, Event: CacheUsage: 358
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:19, Device: log, Event: CacheUsage: 362
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:19, Device: log, Event: CacheUsage: 364
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:19, Device: log, Event: CacheUsage: 366
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:19, Device: log, Event: CacheUsage: 368
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:20, Device: log, Event: CacheUsage: 372
2017.06.14 09:56:51 3: DbLog log -> Failed to insert into history - TS: 2017-06-14 09:56:21, Device: log, Event: CacheUsage: 376
Zitat von: DS_Starter am 14 Juni 2017, 12:43:31Darum so vorsichtig formuliert... es ging mir mehr um die Sinnhaftigkeit... ;-)
Naja DbLog macht halt das was du ihm gesagt hast,...
Zitat von: DS_Starter am 14 Juni 2017, 12:43:31Korrekt!Mir schwebt aber eine globale Info über "db temporär nicht verfügbar" vor, sei es als Reading oder als globale Variable,
Edit: du kannst auch mit executeBefore / executeAfter das Attribut cacheLimit vom DbLog-Device während des Backup abändern.
2017.07.03 21:00:34.894 3: DbRep Rep.LogDB1 - ################################################################
2017.07.03 21:00:34.895 3: DbRep Rep.LogDB1 - ### New database serverSide dump ###
2017.07.03 21:00:34.895 3: DbRep Rep.LogDB1 - ################################################################
2017.07.03 21:00:34.907 3: DbRep Rep.LogDB1 - Searching for tables inside database fhemtest1....
2017.07.03 21:00:34.950 3: DbRep Rep.LogDB1 - Starting dump of database 'fhemtest1', table 'history'.
2017.07.03 21:00:48.957 3: DbRep Rep.LogDB1 - Finished backup of database fhemtest1, total time used: 14 sec.
2017.07.03 21:00:48.957 3: DbRep Rep.LogDB1 - Size of backupfile: 305.54 MB
2017.07.03 21:00:48.961 3: DbRep Rep.LogDB1 - Deleting old dumpfile 'fhemtest1_history_2017_07_03_20_37.csv'
2017.07.03 21:00:48.973 3: DbRep Rep.LogDB1 - Database dump finished successfully.
2017.07.03 21:02:36.595 3: DbRep Rep.LogDB1 - ################################################################
2017.07.03 21:02:36.596 3: DbRep Rep.LogDB1 - ### New database Restore/Recovery ###
2017.07.03 21:02:36.596 3: DbRep Rep.LogDB1 - ################################################################
2017.07.03 21:02:36.607 3: DbRep Rep.LogDB1 - Starting restore of database 'fhemtest1', table 'history'.
2017.07.03 21:04:52.136 3: DbRep Rep.LogDB1 - Restore of /volume1/ApplicationBackup/dumps_FHEM/fhemtest1_history_2017_07_03_21_00.csv into 'fhemtest1', 'history' finished - total time used: 136 sec.
2017.07.03 21:04:52.151 3: DbRep Rep.LogDB1 - Database restore finished successfully.
CREATE INDEX Report_Idx ON `history` (TIMESTAMP, READING) USING BTREE;
Zitatwäre es bei Gelegenheit möglich, beim attr device auch <devspec> zu verwenden?Ich habe "befürchtet" dass früher oder später diese Frage kommt. Es wunderte mich nur dass sie solange auf sich hat warten lassen ;)
Zitat
FTP Transfer nach Dump
Wenn diese Möglichkeit genutzt werden soll, ist das Attribut "ftpUse" oder "ftpUseSSL" zu setzen. Letzteres gilt wenn Verschlüsselung genutzt werden soll.
Weitere Attribute sind:
ftpUse : FTP Transfer nach dem Dump wird eingeschaltet (ohne SSL Verschlüsselung)
ftpUser : User zur Anmeldung am FTP-Server, default: anonymous
ftpUseSSL : FTP Transfer mit SSL Verschlüsselung nach dem Dump wird eingeschaltet
ftpDebug : Debugging des FTP Verkehrs zur Fehlersuche
ftpDir : Verzeichnis auf dem FTP-Server in welches das File übertragen werden soll (default: "/")
ftpPassive : setzen wenn passives FTP verwendet werden soll
ftpPort : FTP-Port, default: 21
ftpPwd : Passwort des FTP-Users, default nicht gesetzt
ftpServer : Name oder IP-Adresse des FTP-Servers. notwendig !
ftpTimeout : Timeout für die FTP-Verbindung in Sekunden (default: 30).
2017.11.04 11:27:16 3: DbRep MyDbRep - ################################################################
2017.11.04 11:27:16 3: DbRep MyDbRep - ### New optimize table / vacuum execution ###
2017.11.04 11:27:16 3: DbRep MyDbRep - ################################################################
2017.11.04 11:27:16 2: DbRep MyDbRep - Error executing: 'SELECT pg_size_pretty(pg_database_size('fhemtest'))' ! PostgreSQL-Error: DBD::Pg::st execute failed: ERROR: database "fhemtest" does not exist at ./FHEM/93_DbRep.pm line 4785.
Zitat von: DS_Starter am 04 November 2017, 15:18:36möglicherweise habe ich nach meinen Tests vergessen fhemtest gegen die variable zu tauschen. :(
Hast du mal in die zeile geschaut ?
$query = "SELECT pg_size_pretty(pg_database_size('fhemtest'))";
$query = "SELECT pg_size_pretty(pg_database_size('$dbname'))";
ZitatWie kann ich aus meiner Datenbank einen bestimmten Wert zu einer bestimmten Zeit auslesen und zum Rechnen in ein Reading kopieren ?
2017.11.19 23:21:46 1: PERL WARNING: Use of uninitialized value $wdadd in concatenation (.) or string at ./FHEM/93_DbRep.pm line 1420.
set <Name> diffValue
set <name> addLog <device>:<Reading>
Zitat von: DS_Starter am 20 November 2017, 08:29:50Ich habe einen FHEM Neustart durchgeführt und direkt unter den Meldungen kam eben diesen.
bei meinen ganzen Devices habe ich diese Warnung noch nicht gesehen.
Unter welchen Umständen erscheint sie denn ?
ZitatDie Warnings gehe ich dann wahrscheinlich mit diffAccept an oder ?Ja genau, einfach auf einen hohen Wert setzen. Das diffAccept soll nur vor Unregelmäßigkeiten schützen bzw. darauf aufmerksam machen.
ZitatDie im Screenshot orange markierten Werte sind dann irgendwie die Basis für die jeweiligen Differenzen >20 die angemahnt werden oder ?Auch richtig.
ZitatAber was stellen diese Einzelwerte dar ? Also z.B. in der erste Zeile 10.0000 -> 31.5000
Readings
2017-11-18_16-30-56__HM_32B1AE_Pwr__energyCalc 3320.4 21.11.2017 01:01
2017-11-18_16-33-22__HM_32B1AE_Pwr__energyCalc 3320.4 21.11.2017 01:01
2017-11-18_16-35-33__HM_32B1AE_Pwr__energyCalc 3320.5 21.11.2017 01:01
2017-11-18_16-38-33__HM_32B1AE_Pwr__energyCalc 3320.5 21.11.2017 01:01
2017-11-18_16-39-34__HM_32B1AE_Pwr__energyCalc 3320.5 21.11.2017 01:01
2017-11-18_16-39-42__HM_32B1AE_Pwr__energyCalc 3320.7 21.11.2017 01:01
2017-11-18_16-40-49__HM_32B1AE_Pwr__energyCalc 3322.7 21.11.2017 01:01
2017-11-18_16-40-57__HM_32B1AE_Pwr__energyCalc 3323.3 21.11.2017 01:01
2017-11-18_16-41-05__HM_32B1AE_Pwr__energyCalc 3324.1 21.11.2017 01:01
2017-11-18_16-41-19__HM_32B1AE_Pwr__energyCalc 3325.6 21.11.2017 01:01
2017-11-18_16-42-43__HM_32B1AE_Pwr__energyCalc 3335 21.11.2017 01:01
2017-11-18_16-43-51__HM_32B1AE_Pwr__energyCalc 3342.9 21.11.2017 01:01
2017-11-18_16-44-36__HM_32B1AE_Pwr__energyCalc 3348.5 21.11.2017 01:01
2017-11-18_16-46-08__HM_32B1AE_Pwr__energyCalc 3360.1 21.11.2017 01:01
2017-11-18_16-46-25__HM_32B1AE_Pwr__energyCalc 3362.3 21.11.2017 01:01
2017-11-18_16-48-11__HM_32B1AE_Pwr__energyCalc 3376.3 21.11.2017 01:01
2017-11-18_16-48-14__HM_32B1AE_Pwr__energyCalc 3376.9 21.11.2017 01:01
2017-11-18_16-50-00__HM_32B1AE_Pwr__energyCalc 3391.9 21.11.2017 01:01
2017-11-18_16-51-04__HM_32B1AE_Pwr__energyCalc 3401.1 21.11.2017 01:01
2017-11-18_16-51-47__HM_32B1AE_Pwr__energyCalc 3407.8 21.11.2017 01:01
2017-11-18_16-53-35__HM_32B1AE_Pwr__energyCalc 3424.7 21.11.2017 01:01
2017-11-18_16-53-42__HM_32B1AE_Pwr__energyCalc 3425.7 21.11.2017 01:01
2017-11-18_16-54-30__HM_32B1AE_Pwr__energyCalc 3433.6 21.11.2017 01:01
2017-11-18_16-56-05__HM_32B1AE_Pwr__energyCalc 3449.6 21.11.2017 01:01
2017-11-18_16-57-17__HM_32B1AE_Pwr__energyCalc 3462.2 21.11.2017 01:01
2017-11-18_16-58-14__HM_32B1AE_Pwr__energyCalc 3472.2 21.11.2017 01:01
2017-11-18_17-01-13__HM_32B1AE_Pwr__energyCalc 3503.7 21.11.2017 01:01
2017-11-18_17-02-16__HM_32B1AE_Pwr__energyCalc 3515.3 21.11.2017 01:01
2017-11-18_17-03-57__HM_32B1AE_Pwr__energyCalc 3533.7 21.11.2017 01:01
2017-11-18_17-05-32__HM_32B1AE_Pwr__energyCalc 3551.4 21.11.2017 01:01
2017-11-18_17-06-27__HM_32B1AE_Pwr__energyCalc 3561.9 21.11.2017 01:01
2017-11-18_17-08-28__HM_32B1AE_Pwr__energyCalc 3585.3 21.11.2017 01:01
2017-11-18_17-08-43__HM_32B1AE_Pwr__energyCalc 3588.1 21.11.2017 01:01
2017-11-18_17-10-44__HM_32B1AE_Pwr__energyCalc 3612.2 21.11.2017 01:01
2017-11-18_17-11-25__HM_32B1AE_Pwr__energyCalc 3620.7 21.11.2017 01:01
2017-11-18_17-13-34__HM_32B1AE_Pwr__energyCalc 3647.2 21.11.2017 01:01
2017-11-18_17-14-06__HM_32B1AE_Pwr__energyCalc 3653.8 21.11.2017 01:01
2017-11-18_17-14-14__HM_32B1AE_Pwr__energyCalc 3654.1 21.11.2017 01:01
2017-11-18_17-16-11__HM_32B1AE_Pwr__energyCalc 3657.8 21.11.2017 01:01
2017-11-18_17-18-32__HM_32B1AE_Pwr__energyCalc 3662.2 21.11.2017 01:01
2017-11-18_17-19-05__HM_32B1AE_Pwr__energyCalc 3663.3 21.11.2017 01:01
2017-11-18_17-19-13__HM_32B1AE_Pwr__energyCalc 3664.5 21.11.2017 01:01
2017-11-18_17-19-21__HM_32B1AE_Pwr__energyCalc 3665.8 21.11.2017 01:01
2017-11-18_17-20-13__HM_32B1AE_Pwr__energyCalc 3674.7 21.11.2017 01:01
2017-11-18_17-20-21__HM_32B1AE_Pwr__energyCalc 3676.1 21.11.2017 01:01
2017-11-18_17-20-40__HM_32B1AE_Pwr__energyCalc 3679.4 21.11.2017 01:01
2017-11-18_17-20-47__HM_32B1AE_Pwr__energyCalc 3680.9 21.11.2017 01:01
2017-11-18_17-20-55__HM_32B1AE_Pwr__energyCalc 3682.3 21.11.2017 01:01
2017-11-18_17-21-03__HM_32B1AE_Pwr__energyCalc 3683.8 21.11.2017 01:01
2017-11-18_17-23-37__HM_32B1AE_Pwr__energyCalc 3713.1 21.11.2017 01:01
2017-11-18_17-23-56__HM_32B1AE_Pwr__energyCalc 3717.1 21.11.2017 01:01
2017-11-18_17-25-48__HM_32B1AE_Pwr__energyCalc 3739.6 21.11.2017 01:01
2017-11-18_17-26-19__HM_32B1AE_Pwr__energyCalc 3745.8 21.11.2017 01:01
2017-11-18_17-26-48__HM_32B1AE_Pwr__energyCalc 3752 21.11.2017 01:01
2017-11-18_17-26-56__HM_32B1AE_Pwr__energyCalc 3752.3 21.11.2017 01:01
2017-11-18_17-28-47__HM_32B1AE_Pwr__energyCalc 3755.8 21.11.2017 01:01
2017-11-18_17-31-01__HM_32B1AE_Pwr__energyCalc 3759.8 21.11.2017 01:01
2017-11-18_17-31-46__HM_32B1AE_Pwr__energyCalc 3761.3 21.11.2017 01:01
2017-11-18_17-31-54__HM_32B1AE_Pwr__energyCalc 3762.4 21.11.2017 01:01
2017-11-18_17-32-02__HM_32B1AE_Pwr__energyCalc 3763.8 21.11.2017 01:01
2017-11-18_17-32-54__HM_32B1AE_Pwr__energyCalc 3772.8 21.11.2017 01:01
2017-11-18_17-33-10__HM_32B1AE_Pwr__energyCalc 3775.7 21.11.2017 01:01
2017-11-18_17-34-04__HM_32B1AE_Pwr__energyCalc 3785.7 21.11.2017 01:01
2017-11-18_17-34-26__HM_32B1AE_Pwr__energyCalc 3790.1 21.11.2017 01:01
2017-11-18_17-36-02__HM_32B1AE_Pwr__energyCalc 3808.9 21.11.2017 01:01
2017-11-18_17-36-53__HM_32B1AE_Pwr__energyCalc 3819 21.11.2017 01:01
2017-11-18_17-37-20__HM_32B1AE_Pwr__energyCalc 3824.8 21.11.2017 01:01
2017-11-18_17-38-19__HM_32B1AE_Pwr__energyCalc 3837 21.11.2017 01:01
2017-11-18_17-38-27__HM_32B1AE_Pwr__energyCalc 3837.3 21.11.2017 01:01
2017-11-18_17-39-27__HM_32B1AE_Pwr__energyCalc 3839.3 21.11.2017 01:01
2017-11-18_17-41-47__HM_32B1AE_Pwr__energyCalc 3843.6 21.11.2017 01:01
2017-11-18_17-43-18__HM_32B1AE_Pwr__energyCalc 3846.5 21.11.2017 01:01
2017-11-18_17-43-26__HM_32B1AE_Pwr__energyCalc 3847.6 21.11.2017 01:01
2017-11-18_17-43-34__HM_32B1AE_Pwr__energyCalc 3849 21.11.2017 01:01
2017-11-18_17-43-53__HM_32B1AE_Pwr__energyCalc 3852.1 21.11.2017 01:01
2017-11-18_17-44-21__HM_32B1AE_Pwr__energyCalc 3857.2 21.11.2017 01:01
2017-11-18_17-44-49__HM_32B1AE_Pwr__energyCalc 3862.4 21.11.2017 01:01
2017-11-18_17-46-07__HM_32B1AE_Pwr__energyCalc 3877.4 21.11.2017 01:01
2017-11-18_17-46-48__HM_32B1AE_Pwr__energyCalc 3885.3 21.11.2017 01:01
2017-11-18_17-47-58__HM_32B1AE_Pwr__energyCalc 3899.6 21.11.2017 01:01
2017-11-18_17-49-21__HM_32B1AE_Pwr__energyCalc 3916.6 21.11.2017 01:01
2017-11-18_17-49-29__HM_32B1AE_Pwr__energyCalc 3916.8 21.11.2017 01:01
2017-11-18_17-51-55__HM_32B1AE_Pwr__energyCalc 3921.4 21.11.2017 01:01
2017-11-18_17-54-07__HM_32B1AE_Pwr__energyCalc 3925.5 21.11.2017 01:01
2017-11-18_17-54-19__HM_32B1AE_Pwr__energyCalc 3926 21.11.2017 01:01
2017-11-18_17-54-27__HM_32B1AE_Pwr__energyCalc 3927.1 21.11.2017 01:01
2017-11-18_17-54-35__HM_32B1AE_Pwr__energyCalc 3928.5 21.11.2017 01:01
2017-11-18_17-55-13__HM_32B1AE_Pwr__energyCalc 3935.1 21.11.2017 01:01
2017-11-18_17-55-21__HM_32B1AE_Pwr__energyCalc 3936.6 21.11.2017 01:01
2017-11-18_17-56-08__HM_32B1AE_Pwr__energyCalc 3945.4 21.11.2017 01:01
2017-11-18_17-57-00__HM_32B1AE_Pwr__energyCalc 3955.5 21.11.2017 01:01
2017-11-18_17-57-08__HM_32B1AE_Pwr__energyCalc 3957.1 21.11.2017 01:01
2017-11-18_17-58-41__HM_32B1AE_Pwr__energyCalc 3975.7 21.11.2017 01:01
2017-11-18_17-59-55__HM_32B1AE_Pwr__energyCalc 3991 21.11.2017 01:01
2017-11-18_18-00-05__HM_32B1AE_Pwr__energyCalc 3993 21.11.2017 01:01
2017-11-18_18-00-13__HM_32B1AE_Pwr__energyCalc 3993.3 21.11.2017 01:01
2017-11-18_18-00-46__HM_32B1AE_Pwr__energyCalc 3994.4 21.11.2017 01:01
2017-11-18_18-00-54__HM_32B1AE_Pwr__energyCalc 3994.6 21.11.2017 01:01
2017-11-18_18-01-02__HM_32B1AE_Pwr__energyCalc 3994.8 21.11.2017 01:01
2017-11-18_18-02-28__HM_32B1AE_Pwr__energyCalc 3997.3 21.11.2017 01:01
2017-11-18_18-04-46__HM_32B1AE_Pwr__energyCalc 4001.5 21.11.2017 01:01
2017-11-18_18-05-04__HM_32B1AE_Pwr__energyCalc 4002.2 21.11.2017 01:01
2017-11-18_18-05-12__HM_32B1AE_Pwr__energyCalc 4003.4 21.11.2017 01:01
2017-11-18_18-05-20__HM_32B1AE_Pwr__energyCalc 4004.8 21.11.2017 01:01
2017-11-18_18-06-04__HM_32B1AE_Pwr__energyCalc 4012.5 21.11.2017 01:01
2017-11-18_18-06-30__HM_32B1AE_Pwr__energyCalc 4017.4 21.11.2017 01:01
2017-11-18_18-06-50__HM_32B1AE_Pwr__energyCalc 4021.1 21.11.2017 01:01
2017-11-18_18-07-58__HM_32B1AE_Pwr__energyCalc 4034.5 21.11.2017 01:01
2017-11-18_18-09-43__HM_32B1AE_Pwr__energyCalc 4055.5 21.11.2017 01:01
2017-11-18_18-09-53__HM_32B1AE_Pwr__energyCalc 4057.8 21.11.2017 01:01
2017-11-18_18-10-38__HM_32B1AE_Pwr__energyCalc 4067 21.11.2017 01:01
2017-11-18_18-10-46__HM_32B1AE_Pwr__energyCalc 4067.3 21.11.2017 01:01
2017-11-18_18-12-22__HM_32B1AE_Pwr__energyCalc 4070.3 21.11.2017 01:01
2017-11-18_18-14-46__HM_32B1AE_Pwr__energyCalc 4074.7 21.11.2017 01:01
2017-11-18_18-15-36__HM_32B1AE_Pwr__energyCalc 4076.3 21.11.2017 01:01
2017-11-18_18-15-44__HM_32B1AE_Pwr__energyCalc 4077.5 21.11.2017 01:01
2017-11-18_18-15-52__HM_32B1AE_Pwr__energyCalc 4078.8 21.11.2017 01:01
2017-11-18_18-16-36__HM_32B1AE_Pwr__energyCalc 4086.6 21.11.2017 01:01
2017-11-18_18-16-44__HM_32B1AE_Pwr__energyCalc 4088.1 21.11.2017 01:01
2017-11-18_18-16-56__HM_32B1AE_Pwr__energyCalc 4090.3 21.11.2017 01:01
2017-11-18_18-17-30__HM_32B1AE_Pwr__energyCalc 4096.9 21.11.2017 01:01
2017-11-18_18-19-14__HM_32B1AE_Pwr__energyCalc 4117.4 21.11.2017 01:01
2017-11-18_18-19-56__HM_32B1AE_Pwr__energyCalc 4125.7 21.11.2017 01:01
2017-11-18_18-20-13__HM_32B1AE_Pwr__energyCalc 4129.4 21.11.2017 01:01
2017-11-18_18-21-06__HM_32B1AE_Pwr__energyCalc 4140.4 21.11.2017 01:01
2017-11-18_18-21-14__HM_32B1AE_Pwr__energyCalc 4140.7 21.11.2017 01:01
2017-11-18_18-22-41__HM_32B1AE_Pwr__energyCalc 4143.5 21.11.2017 01:01
2017-11-18_18-25-12__HM_32B1AE_Pwr__energyCalc 4148 21.11.2017 01:01
2017-11-18_18-26-05__HM_32B1AE_Pwr__energyCalc 4149.8 21.11.2017 01:01
2017-11-18_18-26-13__HM_32B1AE_Pwr__energyCalc 4151 21.11.2017 01:01
2017-11-18_18-26-21__HM_32B1AE_Pwr__energyCalc 4152.4 21.11.2017 01:01
2017-11-18_18-27-05__HM_32B1AE_Pwr__energyCalc 4160.2 21.11.2017 01:01
2017-11-18_18-27-28__HM_32B1AE_Pwr__energyCalc 4164.5 21.11.2017 01:01
2017-11-18_18-27-52__HM_32B1AE_Pwr__energyCalc 4169.2 21.11.2017 01:01
2017-11-18_18-28-55__HM_32B1AE_Pwr__energyCalc 4181.5 21.11.2017 01:01
2017-11-18_18-29-30__HM_32B1AE_Pwr__energyCalc 4188.4 21.11.2017 01:01
2017-11-18_18-30-16__HM_32B1AE_Pwr__energyCalc 4197.8 21.11.2017 01:01
2017-11-18_18-31-28__HM_32B1AE_Pwr__energyCalc 4212.7 21.11.2017 01:01
2017-11-18_18-31-36__HM_32B1AE_Pwr__energyCalc 4213.4 21.11.2017 01:01
2017-11-18_18-32-22__HM_32B1AE_Pwr__energyCalc 4214.9 21.11.2017 01:01
2017-11-18_18-34-59__HM_32B1AE_Pwr__energyCalc 4219.7 21.11.2017 01:01
2017-11-18_18-36-29__HM_32B1AE_Pwr__energyCalc 4222.5 21.11.2017 01:01
2017-11-18_18-36-37__HM_32B1AE_Pwr__energyCalc 4223.7 21.11.2017 01:01
2017-11-18_18-36-45__HM_32B1AE_Pwr__energyCalc 4225.1 21.11.2017 01:01
2017-11-18_18-37-21__HM_32B1AE_Pwr__energyCalc 4231.4 21.11.2017 01:01
2017-11-18_18-37-29__HM_32B1AE_Pwr__energyCalc 4232.9 21.11.2017 01:01
2017-11-18_18-38-00__HM_32B1AE_Pwr__energyCalc 4238.7 21.11.2017 01:01
2017-11-18_18-39-24__HM_32B1AE_Pwr__energyCalc 4255.1 21.11.2017 01:01
2017-11-18_18-39-30__HM_32B1AE_Pwr__energyCalc 4256 21.11.2017 01:01
2017-11-18_18-40-45__HM_32B1AE_Pwr__energyCalc 4271.4 21.11.2017 01:01
2017-11-18_18-40-53__HM_32B1AE_Pwr__energyCalc 4273 21.11.2017 01:01
2017-11-18_18-41-01__HM_32B1AE_Pwr__energyCalc 4274.6 21.11.2017 01:01
2017-11-18_18-41-36__HM_32B1AE_Pwr__energyCalc 4281.7 21.11.2017 01:01
2017-11-18_18-41-44__HM_32B1AE_Pwr__energyCalc 4281.9 21.11.2017 01:01
2017-11-18_18-42-27__HM_32B1AE_Pwr__energyCalc 4283.3 21.11.2017 01:01
2017-11-18_18-45-11__HM_32B1AE_Pwr__energyCalc 4288.2 21.11.2017 01:01
2017-11-18_18-46-34__HM_32B1AE_Pwr__energyCalc 4290.8 21.11.2017 01:01
2017-11-18_18-46-42__HM_32B1AE_Pwr__energyCalc 4292 21.11.2017 01:01
2017-11-18_18-46-50__HM_32B1AE_Pwr__energyCalc 4293.3 21.11.2017 01:01
2017-11-18_18-47-35__HM_32B1AE_Pwr__energyCalc 4301.2 21.11.2017 01:01
2017-11-18_18-47-40__HM_32B1AE_Pwr__energyCalc 4301.9 21.11.2017 01:01
2017-11-18_18-47-47__HM_32B1AE_Pwr__energyCalc 4303.4 21.11.2017 01:01
2017-11-18_18-48-40__HM_32B1AE_Pwr__energyCalc 4313.5 21.11.2017 01:01
2017-11-18_18-49-54__HM_32B1AE_Pwr__energyCalc 4328 21.11.2017 01:01
2017-11-18_18-50-08__HM_32B1AE_Pwr__energyCalc 4330.8 21.11.2017 01:01
2017-11-18_18-51-54__HM_32B1AE_Pwr__energyCalc 4352.4 21.11.2017 01:01
2017-11-18_18-51-58__HM_32B1AE_Pwr__energyCalc 4353.2 21.11.2017 01:01
2017-11-18_18-52-13__HM_32B1AE_Pwr__energyCalc 4356.3 21.11.2017 01:01
2017-11-18_18-52-21__HM_32B1AE_Pwr__energyCalc 4356.5 21.11.2017 01:01
2017-11-18_18-54-44__HM_32B1AE_Pwr__energyCalc 4361 21.11.2017 01:01
2017-11-18_18-57-11__HM_32B1AE_Pwr__energyCalc 4365.4 21.11.2017 01:01
2017-11-18_18-57-19__HM_32B1AE_Pwr__energyCalc 4366.6 21.11.2017 01:01
2017-11-18_18-57-27__HM_32B1AE_Pwr__energyCalc 4368 21.11.2017 01:01
2017-11-18_18-58-12__HM_32B1AE_Pwr__energyCalc 4375.9 21.11.2017 01:01
2017-11-18_18-58-52__HM_32B1AE_Pwr__energyCalc 4383.4 21.11.2017 01:01
2017-11-18_18-59-40__HM_32B1AE_Pwr__energyCalc 4392.7 21.11.2017 01:01
2017-11-18_19-00-37__HM_32B1AE_Pwr__energyCalc 4404 21.11.2017 01:01
2017-11-18_19-01-47__HM_32B1AE_Pwr__energyCalc 4418 21.11.2017 01:01
2017-11-18_19-01-52__HM_32B1AE_Pwr__energyCalc 4419.2 21.11.2017 01:01
2017-11-18_19-02-46__HM_32B1AE_Pwr__energyCalc 4430.3 21.11.2017 01:01
2017-11-18_19-02-54__HM_32B1AE_Pwr__energyCalc 4430.5 21.11.2017 01:01
2017-11-18_19-04-43__HM_32B1AE_Pwr__energyCalc 4433.9 21.11.2017 01:01
2017-11-18_19-07-24__HM_32B1AE_Pwr__energyCalc 4438.8 21.11.2017 01:01
2017-11-18_19-07-44__HM_32B1AE_Pwr__energyCalc 4439.5 21.11.2017 01:01
2017-11-18_19-07-52__HM_32B1AE_Pwr__energyCalc 4440.7 21.11.2017 01:01
2017-11-18_19-08-00__HM_32B1AE_Pwr__energyCalc 4442.1 21.11.2017 01:01
2017-11-18_19-08-44__HM_32B1AE_Pwr__energyCalc 4449.8 21.11.2017 01:01
2017-11-18_19-08-53__HM_32B1AE_Pwr__energyCalc 4451.5 21.11.2017 01:01
2017-11-18_19-09-40__HM_32B1AE_Pwr__energyCalc 4460.5 21.11.2017 01:01
2017-11-18_19-09-51__HM_32B1AE_Pwr__energyCalc 4462.6 21.11.2017 01:01
2017-11-18_19-11-17__HM_32B1AE_Pwr__energyCalc 4479.5 21.11.2017 01:01
2017-11-18_19-12-04__HM_32B1AE_Pwr__energyCalc 4489.1 21.11.2017 01:01
2017-11-18_19-13-19__HM_32B1AE_Pwr__energyCalc 4504.5 21.11.2017 01:01
2017-11-18_19-13-27__HM_32B1AE_Pwr__energyCalc 4504.7 21.11.2017 01:01
2017-11-18_19-14-47__HM_32B1AE_Pwr__energyCalc 4507.3 21.11.2017 01:01
2017-11-18_19-17-15__HM_32B1AE_Pwr__energyCalc 4511.7 21.11.2017 01:01
2017-11-18_19-18-18__HM_32B1AE_Pwr__energyCalc 4513.7 21.11.2017 01:01
2017-11-18_19-18-26__HM_32B1AE_Pwr__energyCalc 4514.9 21.11.2017 01:01
2017-11-18_19-18-34__HM_32B1AE_Pwr__energyCalc 4516.3 21.11.2017 01:01
2017-11-18_19-19-18__HM_32B1AE_Pwr__energyCalc 4524 21.11.2017 01:01
2017-11-18_19-19-29__HM_32B1AE_Pwr__energyCalc 4526.1 21.11.2017 01:01
2017-11-18_19-19-34__HM_32B1AE_Pwr__energyCalc 4527 21.11.2017 01:01
2017-11-18_19-20-44__HM_32B1AE_Pwr__energyCalc 4540.5 21.11.2017 01:01
2017-11-18_19-20-52__HM_32B1AE_Pwr__energyCalc 4542 21.11.2017 01:01
2017-11-18_19-21-00__HM_32B1AE_Pwr__energyCalc 4543.5 21.11.2017 01:01
2017-11-18_19-22-32__HM_32B1AE_Pwr__energyCalc 4562 21.11.2017 01:01
2017-11-18_19-23-05__HM_32B1AE_Pwr__energyCalc 4568.8 21.11.2017 01:01
2017-11-18_19-23-44__HM_32B1AE_Pwr__energyCalc 4576.7 21.11.2017 01:01
2017-11-18_19-23-52__HM_32B1AE_Pwr__energyCalc 4576.9 21.11.2017 01:01
2017-11-18_19-25-22__HM_32B1AE_Pwr__energyCalc 4579.7 21.11.2017 01:01
2017-11-18_19-27-56__HM_32B1AE_Pwr__energyCalc 4584.2 21.11.2017 01:01
2017-11-18_19-28-42__HM_32B1AE_Pwr__energyCalc 4585.6 21.11.2017 01:01
2017-11-18_19-28-50__HM_32B1AE_Pwr__energyCalc 4586.8 21.11.2017 01:01
2017-11-18_19-28-58__HM_32B1AE_Pwr__energyCalc 4588.2 21.11.2017 01:01
2017-11-18_19-29-43__HM_32B1AE_Pwr__energyCalc 4596.1 21.11.2017 01:01
2017-11-18_19-30-14__HM_32B1AE_Pwr__energyCalc 4601.9 21.11.2017 01:01
2017-11-18_19-30-16__HM_32B1AE_Pwr__energyCalc 4602.2 21.11.2017 01:01
2017-11-18_19-31-48__HM_32B1AE_Pwr__energyCalc 4620.1 21.11.2017 01:01
2017-11-18_19-32-22__HM_32B1AE_Pwr__energyCalc 4626.8 21.11.2017 01:01
2017-11-18_19-33-18__HM_32B1AE_Pwr__energyCalc 4638.2 21.11.2017 01:01
2017-11-18_19-34-23__HM_32B1AE_Pwr__energyCalc 4651.5 21.11.2017 01:01
2017-11-18_19-34-31__HM_32B1AE_Pwr__energyCalc 4651.7 21.11.2017 01:01
2017-11-18_19-35-17__HM_32B1AE_Pwr__energyCalc 4653.2 21.11.2017 01:01
2017-11-18_19-37-58__HM_32B1AE_Pwr__energyCalc 4658 21.11.2017 01:01
2017-11-18_19-39-22__HM_32B1AE_Pwr__energyCalc 4660.5 21.11.2017 01:01
2017-11-18_19-39-30__HM_32B1AE_Pwr__energyCalc 4661.7 21.11.2017 01:01
2017-11-18_19-39-38__HM_32B1AE_Pwr__energyCalc 4663.1 21.11.2017 01:01
2017-11-18_19-40-23__HM_32B1AE_Pwr__energyCalc 4671 21.11.2017 01:01
2017-11-18_19-40-25__HM_32B1AE_Pwr__energyCalc 4671.1 21.11.2017 01:01
2017-11-18_19-40-43__HM_32B1AE_Pwr__energyCalc 4674.7 21.11.2017 01:01
2017-11-18_19-41-45__HM_32B1AE_Pwr__energyCalc 4686.5 21.11.2017 01:01
2017-11-18_19-42-37__HM_32B1AE_Pwr__energyCalc 4696.5 21.11.2017 01:01
2017-11-18_19-43-40__HM_32B1AE_Pwr__energyCalc 4709.2 21.11.2017 01:01
2017-11-18_19-45-07__HM_32B1AE_Pwr__energyCalc 4726.8 21.11.2017 01:01
2017-11-18_19-45-15__HM_32B1AE_Pwr__energyCalc 4727.1 21.11.2017 01:01
2017-11-18_19-45-38__HM_32B1AE_Pwr__energyCalc 4727.8 21.11.2017 01:01
2017-11-18_19-48-26__HM_32B1AE_Pwr__energyCalc 4732.7 21.11.2017 01:01
2017-11-18_19-50-05__HM_32B1AE_Pwr__energyCalc 4735.6 21.11.2017 01:01
2017-11-18_19-50-13__HM_32B1AE_Pwr__energyCalc 4736.8 21.11.2017 01:01
2017-11-18_19-50-21__HM_32B1AE_Pwr__energyCalc 4738.2 21.11.2017 01:01
2017-11-18_19-50-58__HM_32B1AE_Pwr__energyCalc 4744.6 21.11.2017 01:01
2017-11-18_19-51-07__HM_32B1AE_Pwr__energyCalc 4746.1 21.11.2017 01:01
2017-11-18_19-51-49__HM_32B1AE_Pwr__energyCalc 4754 21.11.2017 01:01
2017-11-18_19-53-17__HM_32B1AE_Pwr__energyCalc 4770.8 21.11.2017 01:01
2017-11-18_19-53-28__HM_32B1AE_Pwr__energyCalc 4773.1 21.11.2017 01:01
2017-11-18_19-54-49__HM_32B1AE_Pwr__energyCalc 4789.3 21.11.2017 01:01
2017-11-18_19-55-21__HM_32B1AE_Pwr__energyCalc 4795.6 21.11.2017 01:01
2017-11-18_19-55-56__HM_32B1AE_Pwr__energyCalc 4802.9 21.11.2017 01:01
2017-11-18_19-56-04__HM_32B1AE_Pwr__energyCalc 4803.2 21.11.2017 01:01
2017-11-18_19-58-14__HM_32B1AE_Pwr__energyCalc 4807 21.11.2017 01:01
2017-11-18_20-00-43__HM_32B1AE_Pwr__energyCalc 4811.2 21.11.2017 01:01
2017-11-18_20-00-51__HM_32B1AE_Pwr__energyCalc 4811.4 21.11.2017 01:01
2017-11-18_20-00-53__HM_32B1AE_Pwr__energyCalc 4811.4 21.11.2017 01:01
2017-11-18_20-00-59__HM_32B1AE_Pwr__energyCalc 4811.8 21.11.2017 01:01
2017-11-18_20-01-07__HM_32B1AE_Pwr__energyCalc 4813.1 21.11.2017 01:01
2017-11-18_20-01-15__HM_32B1AE_Pwr__energyCalc 4814.4 21.11.2017 01:01
2017-11-18_20-01-59__HM_32B1AE_Pwr__energyCalc 4822 21.11.2017 01:01
2017-11-18_20-03-11__HM_32B1AE_Pwr__energyCalc 4835.4 21.11.2017 01:01
2017-11-18_20-03-18__HM_32B1AE_Pwr__energyCalc 4836.5 21.11.2017 01:01
2017-11-18_20-04-56__HM_32B1AE_Pwr__energyCalc 4855.7 21.11.2017 01:01
2017-11-18_20-05-28__HM_32B1AE_Pwr__energyCalc 4862.1 21.11.2017 01:01
2017-11-18_20-06-27__HM_32B1AE_Pwr__energyCalc 4874 21.11.2017 01:01
2017-11-18_20-06-58__HM_32B1AE_Pwr__energyCalc 4880.2 21.11.2017 01:01
2017-11-18_20-07-06__HM_32B1AE_Pwr__energyCalc 4880.4 21.11.2017 01:01
2017-11-18_20-08-28__HM_32B1AE_Pwr__energyCalc 4882.8 21.11.2017 01:01
2017-11-18_20-11-13__HM_32B1AE_Pwr__energyCalc 4887.4 21.11.2017 01:01
2017-11-18_20-11-56__HM_32B1AE_Pwr__energyCalc 4888.7 21.11.2017 01:01
2017-11-18_20-12-04__HM_32B1AE_Pwr__energyCalc 4889.8 21.11.2017 01:01
2017-11-18_20-12-12__HM_32B1AE_Pwr__energyCalc 4891.2 21.11.2017 01:01
2017-11-18_20-12-59__HM_32B1AE_Pwr__energyCalc 4899.2 21.11.2017 01:01
2017-11-18_20-13-16__HM_32B1AE_Pwr__energyCalc 4902.3 21.11.2017 01:01
2017-11-18_20-13-44__HM_32B1AE_Pwr__energyCalc 4907.5 21.11.2017 01:01
2017-11-18_20-14-26__HM_32B1AE_Pwr__energyCalc 4915.4 21.11.2017 01:01
2017-11-18_20-16-01__HM_32B1AE_Pwr__energyCalc 4933.7 21.11.2017 01:01
2017-11-18_20-16-26__HM_32B1AE_Pwr__energyCalc 4938.8 21.11.2017 01:01
2017-11-18_20-18-03__HM_32B1AE_Pwr__energyCalc 4958.2 21.11.2017 01:01
2017-11-18_20-18-10__HM_32B1AE_Pwr__energyCalc 4959.9 21.11.2017 01:01
2017-11-18_20-18-18__HM_32B1AE_Pwr__energyCalc 4960.7 21.11.2017 01:01
2017-11-18_20-20-55__HM_32B1AE_Pwr__energyCalc 4965.1 21.11.2017 01:01
2017-11-18_20-23-12__HM_32B1AE_Pwr__energyCalc 4969 21.11.2017 01:01
2017-11-18_20-23-20__HM_32B1AE_Pwr__energyCalc 4970.1 21.11.2017 01:01
2017-11-18_20-23-28__HM_32B1AE_Pwr__energyCalc 4971.4 21.11.2017 01:01
2017-11-18_20-23-32__HM_32B1AE_Pwr__energyCalc 4971.9 21.11.2017 01:01
2017-11-18_20-24-12__HM_32B1AE_Pwr__energyCalc 4978.9 21.11.2017 01:01
2017-11-18_20-24-20__HM_32B1AE_Pwr__energyCalc 4980.4 21.11.2017 01:01
2017-11-18_20-25-08__HM_32B1AE_Pwr__energyCalc 4989.2 21.11.2017 01:01
2017-11-18_20-25-55__HM_32B1AE_Pwr__energyCalc 4997.9 21.11.2017 01:01
2017-11-18_20-26-47__HM_32B1AE_Pwr__energyCalc 5008.1 21.11.2017 01:01
2017-11-18_20-28-03__HM_32B1AE_Pwr__energyCalc 5023.1 21.11.2017 01:01
2017-11-18_20-28-43__HM_32B1AE_Pwr__energyCalc 5031.1 21.11.2017 01:01
2017-11-18_20-29-49__HM_32B1AE_Pwr__energyCalc 5044.4 21.11.2017 01:01
2017-11-18_20-29-57__HM_32B1AE_Pwr__energyCalc 5044.6 21.11.2017 01:01
2017-11-18_20-31-01__HM_32B1AE_Pwr__energyCalc 5046.5 21.11.2017 01:01
2017-11-18_20-33-45__HM_32B1AE_Pwr__energyCalc 5050.9 21.11.2017 01:01
2017-11-18_20-34-47__HM_32B1AE_Pwr__energyCalc 5052.7 21.11.2017 01:01
2017-11-18_20-34-55__HM_32B1AE_Pwr__energyCalc 5053.8 21.11.2017 01:01
2017-11-18_20-35-03__HM_32B1AE_Pwr__energyCalc 5055.1 21.11.2017 01:01
2017-11-18_20-35-48__HM_32B1AE_Pwr__energyCalc 5062.7 21.11.2017 01:01
2017-11-18_20-35-56__HM_32B1AE_Pwr__energyCalc 5064.1 21.11.2017 01:01
2017-11-18_20-36-14__HM_32B1AE_Pwr__energyCalc 5067.4 21.11.2017 01:01
2017-11-18_20-37-03__HM_32B1AE_Pwr__energyCalc 5076.5 21.11.2017 01:01
2017-11-18_20-38-29__HM_32B1AE_Pwr__energyCalc 5092.6 21.11.2017 01:01
2017-11-18_20-38-42__HM_32B1AE_Pwr__energyCalc 5095.3 21.11.2017 01:01
2017-11-18_20-40-29__HM_32B1AE_Pwr__energyCalc 5116.4 21.11.2017 01:01
2017-11-18_20-40-42__HM_32B1AE_Pwr__energyCalc 5118.9 21.11.2017 01:01
2017-11-18_20-40-50__HM_32B1AE_Pwr__energyCalc 5120.5 21.11.2017 01:01
2017-11-18_20-40-58__HM_32B1AE_Pwr__energyCalc 5122.1 21.11.2017 01:01
2017-11-18_20-41-33__HM_32B1AE_Pwr__energyCalc 5129.2 21.11.2017 01:01
2017-11-18_20-41-41__HM_32B1AE_Pwr__energyCalc 5129.4 21.11.2017 01:01
2017-11-18_20-43-19__HM_32B1AE_Pwr__energyCalc 5132.2 21.11.2017 01:01
2017-11-18_20-45-54__HM_32B1AE_Pwr__energyCalc 5136.3 21.11.2017 01:01
2017-11-18_20-46-32__HM_32B1AE_Pwr__energyCalc 5137.4 21.11.2017 01:01
2017-11-18_20-46-40__HM_32B1AE_Pwr__energyCalc 5138.6 21.11.2017 01:01
2017-11-18_20-46-48__HM_32B1AE_Pwr__energyCalc 5139.9 21.11.2017 01:01
2017-11-18_20-47-32__HM_32B1AE_Pwr__energyCalc 5147.3 21.11.2017 01:01
2017-11-18_20-47-41__HM_32B1AE_Pwr__energyCalc 5148.8 21.11.2017 01:01
2017-11-18_20-48-15__HM_32B1AE_Pwr__energyCalc 5155 21.11.2017 01:01
2017-11-18_20-49-19__HM_32B1AE_Pwr__energyCalc 5166.8 21.11.2017 01:01
2017-11-18_20-50-22__HM_32B1AE_Pwr__energyCalc 5178.5 21.11.2017 01:01
2017-11-18_20-51-07__HM_32B1AE_Pwr__energyCalc 5187.4 21.11.2017 01:01
2017-11-18_20-52-44__HM_32B1AE_Pwr__energyCalc 5206.5 21.11.2017 01:01
2017-11-18_20-53-18__HM_32B1AE_Pwr__energyCalc 5213.3 21.11.2017 01:01
2017-11-18_20-54-33__HM_32B1AE_Pwr__energyCalc 5228.3 21.11.2017 01:01
2017-11-18_20-54-41__HM_32B1AE_Pwr__energyCalc 5228.6 21.11.2017 01:01
2017-11-18_20-56-00__HM_32B1AE_Pwr__energyCalc 5230.8 21.11.2017 01:01
2017-11-18_20-58-27__HM_32B1AE_Pwr__energyCalc 5234.7 21.11.2017 01:01
2017-11-18_20-59-31__HM_32B1AE_Pwr__energyCalc 5236.5 21.11.2017 01:01
2017-11-18_20-59-39__HM_32B1AE_Pwr__energyCalc 5237.6 21.11.2017 01:01
2017-11-18_20-59-47__HM_32B1AE_Pwr__energyCalc 5238.9 21.11.2017 01:01
2017-11-18_20-59-59__HM_32B1AE_Pwr__energyCalc 5240.9 21.11.2017 01:01
2017-11-18_21-00-07__HM_32B1AE_Pwr__energyCalc 5241.1 21.11.2017 01:01
2017-11-18_21-00-40__HM_32B1AE_Pwr__energyCalc 5242 21.11.2017 01:01
2017-11-18_21-03-42__HM_32B1AE_Pwr__energyCalc 5247.1 21.11.2017 01:01
2017-11-18_21-04-58__HM_32B1AE_Pwr__energyCalc 5249.3 21.11.2017 01:01
2017-11-18_21-05-06__HM_32B1AE_Pwr__energyCalc 5250.4 21.11.2017 01:01
2017-11-18_21-05-14__HM_32B1AE_Pwr__energyCalc 5251.6 21.11.2017 01:01
2017-11-18_21-06-13__HM_32B1AE_Pwr__energyCalc 5261 21.11.2017 01:01
2017-11-18_21-06-30__HM_32B1AE_Pwr__energyCalc 5263.8 21.11.2017 01:01
2017-11-18_21-06-38__HM_32B1AE_Pwr__energyCalc 5265.1 21.11.2017 01:01
2017-11-18_21-08-55__HM_32B1AE_Pwr__energyCalc 5289.4 21.11.2017 01:01
2017-11-18_21-09-04__HM_32B1AE_Pwr__energyCalc 5291 21.11.2017 01:01
2017-11-18_21-10-34__HM_32B1AE_Pwr__energyCalc 5307.6 21.11.2017 01:01
2017-11-18_21-11-23__HM_32B1AE_Pwr__energyCalc 5316.9 21.11.2017 01:01
2017-11-18_21-12-58__HM_32B1AE_Pwr__energyCalc 5335.2 21.11.2017 01:01
2017-11-18_21-13-28__HM_32B1AE_Pwr__energyCalc 5341.1 21.11.2017 01:01
number_fetched_rows 347 21.11.2017 01:01
state done 21.11.2017 01:01
Zitat2017-11-18 16:58:14 10.0000 -> 2017-11-18 17:01:13 31.5000
2017-11-18 17:06:27 10.5000 -> 2017-11-18 17:08:28 23.4000
ZitatDann hab ich es ja wieder erfolgreich in Erinnerung gerufen.
ZitatWas passiert wenn 5min vor dem abgefragten 24h Zyklus der Zustand auf "On" geht und dann 6h so bleibt?Ja, das wird berücksichtigt. Der Code reagiert nicht auf Flanken, sondern den Zustand/Inhalt jedes einzelnen Daten satzes.
Werden die 5h 55min einberechnet?
defmod DbBackUp DbRep logdb
attr DbBackUp DbLogExclude .*
attr DbBackUp DbLogInclude DumpRowsHistory
attr DbBackUp dumpDirLocal /mnt/tc/mySqlBackUp/
attr DbBackUp dumpFilesKeep 6
attr DbBackUp event-on-update-reading state,DumpRowsHistory
attr DbBackUp executeAfterDump msg mySQL Der Dump wurde erfolgreich erstellt
attr DbBackUp executeBeforeDump set logdb commitCache
attr DbBackUp optimizeTablesBeforeDump 1
attr DbBackUp room ArbeitsRaum
defmod logdb DbLog ./configDB.conf .*:.*
attr logdb DbLogExclude .*
attr logdb DbLogInclude state,countCurrent,countHistory,userCommand,userCommandResult,statCountHistoryDayLast,statCountHistoryHourLast,statCountHistoryMonthLast,statCountHistoryYearLast
attr logdb DbLogSelectionMode Exclude/Include
attr logdb DbLogType History
attr logdb asyncMode 1
attr logdb event-on-change-reading state,countCurrent,countHistory,userCommand,userCommandResult,statCountHistoryDayLast,statCountHistoryHourLast,statCountHistoryMonthLast,statCountHistoryYearLast
attr logdb group Datenbank
attr logdb room ArbeitsRaum,system
attr logdb shutdownWait 60
...
KEY `Search_Idx` (`DEVICE`,`READING`,`TIMESTAMP`),
KEY `Report_Idx` (`TIMESTAMP`,`READING`) USING BTREE,
KEY `IDX_HISTORY` (`DEVICE`,`READING`,`TIMESTAMP`,`VALUE`) USING BTREE
...
dumpMemlimit 100000000
dumpSpeed 10000000
dumpMemlimit 1000000
dumpSpeed 100000
5000000 / 500000
ist er in 19 Minuten durch .. Zitat
mein erster versuch mit:
dumpMemlimit 1000000
dumpSpeed 100000
nur noch 38 Minuten. Die Belastung für das System ist im Vergleich zu den Standardeinstellungen nicht gestiegen.
Zitatoder per standard-widgetoverride einfach das Datumsauswahlfeld festlegen?An welches Standard-Widget, also was nicht extra nachinstalliert werden muss, dachtest du dabei ?
attr calc_Test widgetOverride timestamp_begin:datetime,datepicker:true,weeks:false,dayOfWeekStart:1,inline:true,format:Y-m-d_H:i
https://svn.fhem.de/fhem/trunk/fhem/contrib/Widgets/DateTimePicker/
Zitat von: DS_Starter am 13 Dezember 2017, 08:47:46
Hallo Thomas,
hier nochmal die V6.3.2.
Aber du musst eigentlich nur das Attr widgetOverride löschen, Browser refresh und dann geht alles wieder wie gewohnt.
Grüße
Heiko
Zitatwenn ich in der V6.4.0 als Attribut Timestamp_xxx auswähle, ist das Attributfeld nur noch als DropDown ohne Inhalt auswählbar. Ich kann keinen Wert ala "2017_10_10 00:00:00" eingebenKomisch, konnte ich bei mir nicht feststellen. vllt. eine Browsersache wegen javascript.
2017.12.14 11:05:44 4: DbRep DBReporting - -------- New selection ---------
2017.12.14 11:05:44 4: DbRep DBReporting - Aggregation: no
2017.12.14 11:05:44 4: DbRep DBReporting - Command: delSeqDoublets
2017.12.14 11:05:44 4: DbRep DBReporting - Timestamp begin human readable: 2017-08-01 00:00:00
2017.12.14 11:05:44 4: DbRep DBReporting - Timestamp end human readable: 2017-11-01 00:00:00
2017.12.14 11:05:44 4: DbRep DBReporting -> Start BlockingCall delseqdoubl_DoParse
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-01 00:00:00' AND TIMESTAMP < '2017-08-02' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-02' AND TIMESTAMP < '2017-08-03' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-03' AND TIMESTAMP < '2017-08-04' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-04' AND TIMESTAMP < '2017-08-05' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-05' AND TIMESTAMP < '2017-08-06' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-06' AND TIMESTAMP < '2017-08-07' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-07' AND TIMESTAMP < '2017-08-08' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-08' AND TIMESTAMP < '2017-08-09' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-09' AND TIMESTAMP < '2017-08-10' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-10' AND TIMESTAMP < '2017-08-11' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-11' AND TIMESTAMP < '2017-08-12' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-12' AND TIMESTAMP < '2017-08-13' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-13' AND TIMESTAMP < '2017-08-14' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-14' AND TIMESTAMP < '2017-08-15' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-15' AND TIMESTAMP < '2017-08-16' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-16' AND TIMESTAMP < '2017-08-17' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-17' AND TIMESTAMP < '2017-08-18' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-18' AND TIMESTAMP < '2017-08-19' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-19' AND TIMESTAMP < '2017-08-20' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-20' AND TIMESTAMP < '2017-08-21' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-21' AND TIMESTAMP < '2017-08-22' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-22' AND TIMESTAMP < '2017-08-23' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-23' AND TIMESTAMP < '2017-08-24' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-24' AND TIMESTAMP < '2017-08-25' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-25' AND TIMESTAMP < '2017-08-26' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-26' AND TIMESTAMP < '2017-08-27' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-27' AND TIMESTAMP < '2017-08-28' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-28' AND TIMESTAMP < '2017-08-29' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-29' AND TIMESTAMP < '2017-08-30' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-30' AND TIMESTAMP < '2017-08-31' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-31' AND TIMESTAMP < '2017-09-01' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-01' AND TIMESTAMP < '2017-09-02' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-02' AND TIMESTAMP < '2017-09-03' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-03' AND TIMESTAMP < '2017-09-04' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-04' AND TIMESTAMP < '2017-09-05' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-05' AND TIMESTAMP < '2017-09-06' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-06' AND TIMESTAMP < '2017-09-07' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-07' AND TIMESTAMP < '2017-09-08' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-08' AND TIMESTAMP < '2017-09-09' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-09' AND TIMESTAMP < '2017-09-10' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-10' AND TIMESTAMP < '2017-09-11' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-11' AND TIMESTAMP < '2017-09-12' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-12' AND TIMESTAMP < '2017-09-13' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-13' AND TIMESTAMP < '2017-09-14' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-14' AND TIMESTAMP < '2017-09-15' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-15' AND TIMESTAMP < '2017-09-16' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-16' AND TIMESTAMP < '2017-09-17' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-17' AND TIMESTAMP < '2017-09-18' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-18' AND TIMESTAMP < '2017-09-19' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-19' AND TIMESTAMP < '2017-09-20' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-20' AND TIMESTAMP < '2017-09-21' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-21' AND TIMESTAMP < '2017-09-22' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-22' AND TIMESTAMP < '2017-09-23' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-23' AND TIMESTAMP < '2017-09-24' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-24' AND TIMESTAMP < '2017-09-25' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-25' AND TIMESTAMP < '2017-09-26' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-26' AND TIMESTAMP < '2017-09-27' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-27' AND TIMESTAMP < '2017-09-28' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-28' AND TIMESTAMP < '2017-09-29' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-29' AND TIMESTAMP < '2017-09-30' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-30' AND TIMESTAMP < '2017-10-01' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-01' AND TIMESTAMP < '2017-10-02' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-02' AND TIMESTAMP < '2017-10-03' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-03' AND TIMESTAMP < '2017-10-04' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-04' AND TIMESTAMP < '2017-10-05' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-05' AND TIMESTAMP < '2017-10-06' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-06' AND TIMESTAMP < '2017-10-07' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-07' AND TIMESTAMP < '2017-10-08' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-08' AND TIMESTAMP < '2017-10-09' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-09' AND TIMESTAMP < '2017-10-10' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-10' AND TIMESTAMP < '2017-10-11' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-11' AND TIMESTAMP < '2017-10-12' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-12' AND TIMESTAMP < '2017-10-13' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-13' AND TIMESTAMP < '2017-10-14' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-14' AND TIMESTAMP < '2017-10-15' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-15' AND TIMESTAMP < '2017-10-16' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-16' AND TIMESTAMP < '2017-10-17' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-17' AND TIMESTAMP < '2017-10-18' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-18' AND TIMESTAMP < '2017-10-19' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-19' AND TIMESTAMP < '2017-10-20' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-20' AND TIMESTAMP < '2017-10-21' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-21' AND TIMESTAMP < '2017-10-22' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-22' AND TIMESTAMP < '2017-10-23' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-23' AND TIMESTAMP < '2017-10-24' ;
2017.12.14 11:05:44 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 00:24:18' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 00:39:19' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 00:54:19' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 01:09:29' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 01:24:30' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 01:39:31' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 01:54:32' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 02:09:34' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 02:24:36' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 02:39:38' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 02:54:38' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 03:09:40' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 03:24:42' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 03:39:42' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 03:54:43' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 04:09:44' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 04:24:45' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 04:39:47' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 04:54:47' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 05:09:49' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 05:24:49' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 05:39:50' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 05:54:50' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 06:09:51' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 06:24:51' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 06:39:52' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 06:54:55' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 07:09:56' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 07:24:57' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 07:40:05' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 07:55:07' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 08:10:08' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 08:25:09' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 08:40:10' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 08:55:31' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='1';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 09:10:32' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='1';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 09:29:04' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 09:44:06' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 09:59:08' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 10:14:08' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 10:29:09' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 10:44:09' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 10:59:10' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 11:14:11' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 11:29:11' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 11:44:12' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 11:59:14' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 12:14:14' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 12:29:15' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 12:44:16' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 12:59:16' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 13:14:17' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 13:29:19' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 13:44:21' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 13:59:21' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 14:14:23' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 14:29:28' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 14:44:28' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 14:59:29' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 15:14:31' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 15:29:33' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 15:44:33' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 15:59:35' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 16:14:35' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 16:29:35' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 16:44:35' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 16:59:36' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 17:14:37' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 17:29:38' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 17:44:38' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 17:59:39' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 18:14:39' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 18:29:39' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 18:44:40' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 18:59:41' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 19:14:43' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 19:42:51' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 19:57:51' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 20:12:53' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 20:27:57' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 20:42:59' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 20:57:59' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 21:13:00' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 21:28:01' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 21:43:01' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 21:58:03' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 22:13:05' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 22:28:05' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 22:43:05' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 22:58:05' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 23:13:06' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: delete FROM history where TIMESTAMP = '2017-10-23 23:28:07' AND DEVICE = 'MAX_159796' AND READING = 'onoff' AND VALUE ='0';
2017.12.14 11:05:45 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-24' AND TIMESTAMP < '2017-10-25' ;
2017.12.14 11:05:45 2: DbRep DBReporting - DBD::mysql::st execute failed: called with 2 bind variables when 0 are needed at ./FHEM/93_DbRep.pm line 3954.
2017.12.14 11:05:45 4: DbRep DBReporting -> BlockingCall delseqdoubl_DoParse finished
2017.12.14 11:05:45 4: DbRep DBReporting -> Start BlockingCall delseqdoubl_ParseDone
2017.12.14 11:05:45 4: DbRep DBReporting -> BlockingCall delseqdoubl_ParseDone finished
2017.12.14 11:05:56 3: ESPEasy: set ESPEasy_NodeMCU_2 neopixel 85 0 0 0
2017.12.14 11:36:40 4: DbRep DBReporting - -------- New selection ---------
2017.12.14 11:36:40 4: DbRep DBReporting - Aggregation: no
2017.12.14 11:36:40 4: DbRep DBReporting - Command: delSeqDoublets
2017.12.14 11:36:40 4: DbRep DBReporting - Timestamp begin human readable: 2017-08-01 00:00:00
2017.12.14 11:36:40 4: DbRep DBReporting - Timestamp end human readable: 2017-10-24 00:00:00
2017.12.14 11:36:40 4: DbRep DBReporting -> Start BlockingCall delseqdoubl_DoParse
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-01 00:00:00' AND TIMESTAMP < '2017-08-02' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-02' AND TIMESTAMP < '2017-08-03' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-03' AND TIMESTAMP < '2017-08-04' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-04' AND TIMESTAMP < '2017-08-05' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-05' AND TIMESTAMP < '2017-08-06' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-06' AND TIMESTAMP < '2017-08-07' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-07' AND TIMESTAMP < '2017-08-08' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-08' AND TIMESTAMP < '2017-08-09' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-09' AND TIMESTAMP < '2017-08-10' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-10' AND TIMESTAMP < '2017-08-11' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-11' AND TIMESTAMP < '2017-08-12' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-12' AND TIMESTAMP < '2017-08-13' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-13' AND TIMESTAMP < '2017-08-14' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-14' AND TIMESTAMP < '2017-08-15' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-15' AND TIMESTAMP < '2017-08-16' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-16' AND TIMESTAMP < '2017-08-17' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-17' AND TIMESTAMP < '2017-08-18' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-18' AND TIMESTAMP < '2017-08-19' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-19' AND TIMESTAMP < '2017-08-20' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-20' AND TIMESTAMP < '2017-08-21' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-21' AND TIMESTAMP < '2017-08-22' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-22' AND TIMESTAMP < '2017-08-23' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-23' AND TIMESTAMP < '2017-08-24' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-24' AND TIMESTAMP < '2017-08-25' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-25' AND TIMESTAMP < '2017-08-26' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-26' AND TIMESTAMP < '2017-08-27' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-27' AND TIMESTAMP < '2017-08-28' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-28' AND TIMESTAMP < '2017-08-29' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-29' AND TIMESTAMP < '2017-08-30' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-30' AND TIMESTAMP < '2017-08-31' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-08-31' AND TIMESTAMP < '2017-09-01' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-01' AND TIMESTAMP < '2017-09-02' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-02' AND TIMESTAMP < '2017-09-03' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-03' AND TIMESTAMP < '2017-09-04' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-04' AND TIMESTAMP < '2017-09-05' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-05' AND TIMESTAMP < '2017-09-06' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-06' AND TIMESTAMP < '2017-09-07' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-07' AND TIMESTAMP < '2017-09-08' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-08' AND TIMESTAMP < '2017-09-09' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-09' AND TIMESTAMP < '2017-09-10' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-10' AND TIMESTAMP < '2017-09-11' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-11' AND TIMESTAMP < '2017-09-12' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-12' AND TIMESTAMP < '2017-09-13' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-13' AND TIMESTAMP < '2017-09-14' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-14' AND TIMESTAMP < '2017-09-15' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-15' AND TIMESTAMP < '2017-09-16' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-16' AND TIMESTAMP < '2017-09-17' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-17' AND TIMESTAMP < '2017-09-18' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-18' AND TIMESTAMP < '2017-09-19' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-19' AND TIMESTAMP < '2017-09-20' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-20' AND TIMESTAMP < '2017-09-21' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-21' AND TIMESTAMP < '2017-09-22' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-22' AND TIMESTAMP < '2017-09-23' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-23' AND TIMESTAMP < '2017-09-24' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-24' AND TIMESTAMP < '2017-09-25' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-25' AND TIMESTAMP < '2017-09-26' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-26' AND TIMESTAMP < '2017-09-27' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-27' AND TIMESTAMP < '2017-09-28' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-28' AND TIMESTAMP < '2017-09-29' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-29' AND TIMESTAMP < '2017-09-30' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-09-30' AND TIMESTAMP < '2017-10-01' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-01' AND TIMESTAMP < '2017-10-02' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-02' AND TIMESTAMP < '2017-10-03' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-03' AND TIMESTAMP < '2017-10-04' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-04' AND TIMESTAMP < '2017-10-05' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-05' AND TIMESTAMP < '2017-10-06' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-06' AND TIMESTAMP < '2017-10-07' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-07' AND TIMESTAMP < '2017-10-08' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-08' AND TIMESTAMP < '2017-10-09' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-09' AND TIMESTAMP < '2017-10-10' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-10' AND TIMESTAMP < '2017-10-11' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-11' AND TIMESTAMP < '2017-10-12' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-12' AND TIMESTAMP < '2017-10-13' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-13' AND TIMESTAMP < '2017-10-14' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-14' AND TIMESTAMP < '2017-10-15' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-15' AND TIMESTAMP < '2017-10-16' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-16' AND TIMESTAMP < '2017-10-17' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-17' AND TIMESTAMP < '2017-10-18' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-18' AND TIMESTAMP < '2017-10-19' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-19' AND TIMESTAMP < '2017-10-20' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-20' AND TIMESTAMP < '2017-10-21' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-21' AND TIMESTAMP < '2017-10-22' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-22' AND TIMESTAMP < '2017-10-23' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-23' AND TIMESTAMP < '2017-10-24' ;
2017.12.14 11:36:40 4: DbRep DBReporting - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE FROM history where DEVICE = 'MAX_159796' AND READING = 'onoff' AND TIMESTAMP >= '2017-10-24' AND TIMESTAMP < '2017-10-24 00:00:00' ;
2017.12.14 11:36:40 4: DbRep DBReporting -> BlockingCall delseqdoubl_DoParse finished
2017.12.14 11:36:40 4: DbRep DBReporting -> Start BlockingCall delseqdoubl_ParseDone
2017.12.14 11:36:40 4: DbRep DBReporting -> BlockingCall delseqdoubl_ParseDone finished
ZitatNach der Analyse mit adviceDelete blieb der fhem/perl Thread bei ~70% CPU Last. FHEM reagierte zwar noch, war aber dadurch halt sehr träge. Erst nach shutdown restart war alles wieder gut... zum löschen bin ich noch nicht gekommen.
ZitatVielen Dank!
es läuft.
$val =~ s/'/''/g; # escape ' with '' for MySQL
$val =~ tr/"\n"//d;
+---------------------+----------+----------+---------------------------------------------------------------------------------------------------------+------------------------------------------------------------+--------------------------------------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+----------+----------+---------------------------------------------------------------------------------------------------------+------------------------------------------------------------+--------------------------------------+------+
| 2017-10-14 11:53:23 | Pushover | PUSHOVER | msg title='' device='my_iPhone6:' priority=0 url_title="" message='status_EG.Eingang.Briefkasten: dead' | msg title='' device='my_iPhone6:' priority=0 url_title="" | dead' | |
2017.12.17 11:39:05.739 4: DbRep dbRep__full - SQL execute: delete FROM history where TIMESTAMP = 'title='' device='my_iPhone6:' priority=0 url_title="" 2017-10-14 11:53:23' AND DEVICE = 'Pushover' AND READING = 'msg' AND VALUE ='dead''';
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'my_iPhone6:' priority=0 url_title="" 2017-10-14 11:53:23' AND DEVICE = 'P' at line 1 at ./FHEM/93_DbRep.pm line 4006
@row_array = map { $_->[0]."_ESC_".$_->[1]."_ESC_".($_->[2] =~ s/ /_ESC_/r)."_ESC_".$_->[3]."\n" } @{$sth->fetchall_arrayref()};
# s/ /_ESC_/ for @row_array; # Leerzeichen in TIMESTAMP escapen
Zitat@row_array = map { $_->Das erleichtert den Ablauf Christian, habe ich gleich so übernommen.
- ."_ESC_".$_->[1]."_ESC_".($_->[2] =~ s/ /_ESC_/r)."_ESC_".$_->[3]."\n" } @{$sth->fetchall_arrayref()};
ZitatSchön wäre es also, wenn ich bei delSeqDoublets angeben könnte, welche Value-Abweichung ignoriert wird und als "Doublets" angesehen wird.Ja, schaue ich mir mal an. Wird aber sicherlich erst nach den Feiertagen.
Internals:
DATABASE fhem
DEF logdb
LASTCMD
NAME repdb
NOTIFYDEV global,repdb
NR 46
NTFY_ORDER 50-repdb
ROLE Client
STATE disconnected
TYPE DbRep
UTF8 1
VERSION 7.0.0
HELPER:
DBLOGDEVICE logdb
READINGS:
2017-12-25 15:26:17 state disconnected
dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION db.conf
DEF db.conf neversaveanything
MODE synchronous
MODEL MYSQL
NAME logdb
NR 20
NTFY_ORDER 50-logdb
PID 30284
REGEXP neversaveanything
STATE disconnected
TYPE DbLog
UTF8 1
VERSION 3.5.0
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE initialized
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
READINGS:
2017-12-25 15:26:18 state disconnected
cache:
index 0
Attributes:
disable 1
2017.12.25 15:27:26 3: DbRep repdb - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2017.12.25 15:27:26 3: DbRep repdb - Waiting for database connection
ZitatIch fixe das und checke es ein.erledigt. -> V7.2.1
syntax error at ./FHEM/93_DbRep.pm line 6394, near "$h{"
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6396.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6396.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6396.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6397.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6397.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6397.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6400.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6400.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6401.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6401.
Global symbol "$h" requires explicit package name at ./FHEM/93_DbRep.pm line 6402.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6406.
Global symbol "@rows" requires explicit package name at ./FHEM/93_DbRep.pm line 6408.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6409.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6410.
Global symbol "@rows" requires explicit package name at ./FHEM/93_DbRep.pm line 6420.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6426.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6427.
Global symbol "@rows" requires explicit package name at ./FHEM/93_DbRep.pm line 6427.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6429.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 6430.
syntax error at ./FHEM/93_DbRep.pm line 6433, near "}"
./FHEM/93_DbRep.pm has too many errors.
2018.01.07 23:12:06 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2687.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Initialize redefined at ./FHEM/93_DbRep.pm line 290.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Define redefined at ./FHEM/93_DbRep.pm line 354.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Set redefined at ./FHEM/93_DbRep.pm line 392.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Get redefined at ./FHEM/93_DbRep.pm line 651.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Attr redefined at ./FHEM/93_DbRep.pm line 715.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Notify redefined at ./FHEM/93_DbRep.pm line 942.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Undef redefined at ./FHEM/93_DbRep.pm line 1013.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_firstconnect redefined at ./FHEM/93_DbRep.pm line 1033.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Connect redefined at ./FHEM/93_DbRep.pm line 1061.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_Main redefined at ./FHEM/93_DbRep.pm line 1099.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine createTimeArray redefined at ./FHEM/93_DbRep.pm line 1233.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine collaggstr redefined at ./FHEM/93_DbRep.pm line 1603.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine averval_DoParse redefined at ./FHEM/93_DbRep.pm line 1773.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine averval_ParseDone redefined at ./FHEM/93_DbRep.pm line 1901.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine count_DoParse redefined at ./FHEM/93_DbRep.pm line 1962.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine count_ParseDone redefined at ./FHEM/93_DbRep.pm line 2079.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine maxval_DoParse redefined at ./FHEM/93_DbRep.pm line 2143.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine maxval_ParseDone redefined at ./FHEM/93_DbRep.pm line 2318.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine minval_DoParse redefined at ./FHEM/93_DbRep.pm line 2384.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine minval_ParseDone redefined at ./FHEM/93_DbRep.pm line 2560.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine diffval_DoParse redefined at ./FHEM/93_DbRep.pm line 2626.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine diffval_ParseDone redefined at ./FHEM/93_DbRep.pm line 2900.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine sumval_DoParse redefined at ./FHEM/93_DbRep.pm line 2988.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine sumval_ParseDone redefined at ./FHEM/93_DbRep.pm line 3116.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine del_DoParse redefined at ./FHEM/93_DbRep.pm line 3177.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine del_ParseDone redefined at ./FHEM/93_DbRep.pm line 3250.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine insert_Push redefined at ./FHEM/93_DbRep.pm line 3307.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine insert_Done redefined at ./FHEM/93_DbRep.pm line 3402.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine currentfillup_Push redefined at ./FHEM/93_DbRep.pm line 3452.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine currentfillup_Done redefined at ./FHEM/93_DbRep.pm line 3619.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine devren_Push redefined at ./FHEM/93_DbRep.pm line 3669.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine devren_Done redefined at ./FHEM/93_DbRep.pm line 3769.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine fetchrows_DoParse redefined at ./FHEM/93_DbRep.pm line 3831.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine fetchrows_ParseDone redefined at ./FHEM/93_DbRep.pm line 3921.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine delseqdoubl_DoParse redefined at ./FHEM/93_DbRep.pm line 3989.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine delseqdoubl_ParseDone redefined at ./FHEM/93_DbRep.pm line 4173.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine expfile_DoParse redefined at ./FHEM/93_DbRep.pm line 4243.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine expfile_ParseDone redefined at ./FHEM/93_DbRep.pm line 4336.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine impfile_Push redefined at ./FHEM/93_DbRep.pm line 4385.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine impfile_PushDone redefined at ./FHEM/93_DbRep.pm line 4545.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine sqlCmd_DoParse redefined at ./FHEM/93_DbRep.pm line 4588.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine sqlCmd_ParseDone redefined at ./FHEM/93_DbRep.pm line 4700.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine dbmeta_DoParse redefined at ./FHEM/93_DbRep.pm line 4808.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine dbmeta_ParseDone redefined at ./FHEM/93_DbRep.pm line 5021.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DbRep_optimizeTables redefined at ./FHEM/93_DbRep.pm line 5077.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine OptimizeDone redefined at ./FHEM/93_DbRep.pm line 5271.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine mysql_DoDumpClientSide redefined at ./FHEM/93_DbRep.pm line 5313.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine mysql_DoDumpServerSide redefined at ./FHEM/93_DbRep.pm line 5774.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DumpDone redefined at ./FHEM/93_DbRep.pm line 5935.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine mysql_RestoreServerSide redefined at ./FHEM/93_DbRep.pm line 6002.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine RestoreDone redefined at ./FHEM/93_DbRep.pm line 6072.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine RestoreAborted redefined at ./FHEM/93_DbRep.pm line 6111.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine ParseAborted redefined at ./FHEM/93_DbRep.pm line 6134.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine DumpAborted redefined at ./FHEM/93_DbRep.pm line 6151.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine OptimizeAborted redefined at ./FHEM/93_DbRep.pm line 6187.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine createSelectSql redefined at ./FHEM/93_DbRep.pm line 6204.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine createDeleteSql redefined at ./FHEM/93_DbRep.pm line 6236.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine specsForSql redefined at ./FHEM/93_DbRep.pm line 6272.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine checktimeaggr redefined at ./FHEM/93_DbRep.pm line 6302.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine ReadingsSingleUpdateValue redefined at ./FHEM/93_DbRep.pm line 6335.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine ReadingsBulkUpdateValue redefined at ./FHEM/93_DbRep.pm line 6349.
2018.01.07 23:14:13 1: PERL WARNING: Subroutine ReadingsBulkUpdateTimeState redefined at ./FHEM/93_DbRep.pm line 6363.
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo reboot
beim raspi unter Debian (wheezy) auch die Perl-Pakete aktuell halte :-\ ???ZitatWelche Version sollte man denn mindestens haben?Diesbezüglich hat man schonmal hier https://forum.fhem.de/index.php/topic,65154.msg563946.html#msg563946 diskutiert.
Zitat von: DS_Starter am 08 Januar 2018, 18:36:56
Aber tendenziell wäre es sicherlich hilfreich wenn du mal eine Version mindestens 5.20 ins Auge fasst. Wenn man auf der Statistics-Seite schaut (https://fhem.de/stats/statistics.html) verwenden ca. 3/4 aller User Perl 5.20 und höher.
ZitatSchön, dass Du das 5.14 kompatibel gehalten hast, denn FHEM wird bei mir schon regelmässig auf neue Versionen gehoben...Na klar, mache ich gerne :)
Zitat von: DS_Starter am 08 Januar 2018, 19:10:46
Na klar, mache ich gerne :)
Habe ich mit meiner Aussage recht dass das Perl Release am BS hängt, oder kennst du eine separate Perl-Upgrademöglichkeit ?
ZitatUiuiui, wird nie langweilig ;)
attr <Rep> executeBeforeProc set LogDB1 reopen 3600
attr <Rep> executeAfterProc set LogDB1 reopen
{ my $duration = ReadingsVal("BackupDb","background_processing_time"," ");; exmail('test1@meinedomain.de','Backup DB Ende','Backup DB wurde nach ' .$duration. ' sec. beendet') }
ZitatIch glaube deine Mittelwert Berechnung ist nicht ganz richtig.
Zitat
Die Anzahl der anzuzeigenden Datensätze der Kommandos "delSeqDoublets adviceDelete", "delSeqDoublets adviceRemain" ist zunächst begrenzt (default 1000) und kann durch das Attribut "limit" angepasst werden. Die Einstellung von "limit" hat keinen Einfluss auf die "delSeqDoublets delete" Funktion, sondern beeinflusst NUR die Anzeige der Daten.
Zitat von: DS_Starter am 23 Januar 2018, 21:29:20
aber das das "NUR" fett gedruckt ist, hast du nicht gesehen ... ;)
Zitatdas Timestamp-Array was ausgewertet werden soll. Das ist ohne Einschränkung über die gesamte DB mit täglicher Aggregation soweit ich sehe.Das ist default. Ich habe (wie du bereits bemerkt hast :) nichts eingestellt ...
Zitat
Mir ist gerade aufgefallen, dass nach dem update auf Revision
Latest Revision: 15962
der "blockinginfo" -Befehl nicht mehr vorhanden ist.
ZitatIn der DbRep.pm scheinst du ohne diesen auszukommen... ist die Funktionalität gleich?Sie ist ähnlich. Nachgebaut und abgeändert damit es dem gewünschten Umfang entspricht.
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./dabafhem_db.conf
DEF ./dabafhem_db.conf .*:.*
MODE synchronous
MODEL SQLITE
NAME logdb
NR 17
NTFY_ORDER 50-logdb
PID 5193
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 3.7.1
dbconn SQLite:dbname=/opt/fhem/dabafhem.db
dbuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
READINGS:
2018-01-26 10:08:06 countCurrent 220
2018-01-26 10:08:06 countHistory 2840982
2018-01-26 09:53:25 state connected
cache:
index 0
Attributes:
DbLogExclude .*
DbLogSelectionMode Include
DbLogType SampleFill/History
room LOG
Internals:
DATABASE /opt/fhem/dabafhem.db
DEF logdb
LASTCMD sqlCmd delete
NAME repdb
NOTIFYDEV global,repdb
NR 19
NTFY_ORDER 50-repdb
ROLE Client
STATE error
TYPE DbRep
UTF8 0
VERSION 7.5.5
HELPER:
DBLOGDEVICE logdb
CV:
aggregation no
aggsec 1
destr 2018-01-20
dsstr 2018-01-10
epoch_seconds_end 1516402800
mestr 01
msstr 01
testr 00:00:00
tsstr 00:00:00
wdadd 432000
yestr 2018
ysstr 2018
READINGS:
2018-01-26 10:08:01 errortext DBD::SQLite::st execute failed: database is locked at ./FHEM/93_DbRep.pm line 4808.
2018-01-26 10:08:01 state error
dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./dabafhem_db.conf
DEF ./dabafhem_db.conf .*:.*
MODE synchronous
MODEL SQLITE
NAME logdb
NR 17
NTFY_ORDER 50-logdb
PID 5193
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 3.7.1
dbconn SQLite:dbname=/opt/fhem/dabafhem.db
dbuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
READINGS:
2018-01-26 10:08:06 countCurrent 220
2018-01-26 10:08:06 countHistory 2840982
2018-01-26 09:53:25 state connected
cache:
index 0
Attributes:
DbLogExclude .*
allowDeletion 1
room LOG
timestamp_begin 2018-01-10 00:00:00
timestamp_end 2018-01-20 00:00:00
set repdb sqlCmd delete from history where DEVICE='global'
Fehler: DBD::SQLite::st execute failed: database is locked at ./FHEM/93_DbRep.pm line 4808.
Zitat2018.01.26 10:21:21.811 4: DbLog logdb -> ################################################################
2018.01.26 10:21:21.812 4: DbLog logdb -> ### start of new Logcycle ###
2018.01.26 10:21:21.812 4: DbLog logdb -> ################################################################
2018.01.26 10:21:21.812 4: DbLog logdb -> number of events received: 1 for device: repdb
2018.01.26 10:21:21.812 4: DbLog logdb -> check Device: repdb , Event: state: error
2018.01.26 10:21:21.812 5: DbLog logdb -> parsed Event: repdb , Event: state: error
2018.01.26 10:21:21.812 4: DbRep repdb -> BlockingCall sqlCmd_ParseDone finished
2018.01.26 10:21:49.705 4: DbLog logdb -> ################################################################
2018.01.26 10:21:49.705 4: DbLog logdb -> ### start of new Logcycle ###
2018.01.26 10:21:49.705 4: DbLog logdb -> ################################################################
2018.01.26 10:21:49.705 4: DbLog logdb -> number of events received: 1 for device: repdb
2018.01.26 10:21:49.706 4: DbLog logdb -> check Device: repdb , Event: state: running
2018.01.26 10:21:49.706 5: DbLog logdb -> parsed Event: repdb , Event: state: running
2018.01.26 10:21:49.706 4: DbRep repdb - -------- New selection ---------
2018.01.26 10:21:49.706 4: DbRep repdb - Command: sqlCmd delete from history where DEVICE='global'
2018.01.26 10:21:49.707 5: DbRep repdb - Timestamp begin epocheseconds: 1515538800
2018.01.26 10:21:49.707 4: DbRep repdb - Timestamp begin human readable: 2018-01-10 00:00:00
2018.01.26 10:21:49.707 5: DbRep repdb - Timestamp end epocheseconds: 1516402800
2018.01.26 10:21:49.708 4: DbRep repdb - Timestamp end human readable: 2018-01-20 00:00:00
2018.01.26 10:21:49.708 5: DbRep repdb - weekday of start for selection: Mi -> wdadd: 432000
2018.01.26 10:21:49.708 4: DbRep repdb - Aggregation: no
2018.01.26 10:21:49.728 4: DbRep repdb -> Start BlockingCall sqlCmd_DoParse
2018.01.26 10:21:49.729 4: DbRep repdb - SQL execute: delete from history where DEVICE='global';
2018.01.26 10:22:19.791 2: DbRep repdb - ERROR - DBD::SQLite::st execute failed: database is locked at ./FHEM/93_DbRep.pm line 4808.
2018.01.26 10:22:19.792 4: DbRep repdb -> BlockingCall sqlCmd_DoParse finished
2018.01.26 10:22:19.794 4: DbRep repdb -> Start BlockingCall sqlCmd_ParseDone
2018.01.26 10:22:19.795 4: DbLog logdb -> ################################################################
2018.01.26 10:22:19.795 4: DbLog logdb -> ### start of new Logcycle ###
2018.01.26 10:22:19.795 4: DbLog logdb -> ################################################################
2018.01.26 10:22:19.795 4: DbLog logdb -> number of events received: 1 for device: repdb
2018.01.26 10:22:19.796 4: DbLog logdb -> check Device: repdb , Event: errortext: DBD::SQLite::st execute failed: database is locked at ./FHEM/93_DbRep.pm line 4808.
2018.01.26 10:22:19.796 5: DbLog logdb -> parsed Event: repdb , Event: errortext: DBD::SQLite::st execute failed: database is locked at ./FHEM/93_DbRep.pm line 4808.
2018.01.26 10:22:19.798 4: DbLog logdb -> ################################################################
2018.01.26 10:22:19.798 4: DbLog logdb -> ### start of new Logcycle ###
2018.01.26 10:22:19.798 4: DbLog logdb -> ################################################################
2018.01.26 10:22:19.798 4: DbLog logdb -> number of events received: 1 for device: repdb
2018.01.26 10:22:19.798 4: DbLog logdb -> check Device: repdb , Event: state: error
2018.01.26 10:22:19.799 5: DbLog logdb -> parsed Event: repdb , Event: state: error
2018.01.26 10:22:19.799 4: DbRep repdb -> BlockingCall sqlCmd_ParseDone finished
Zitat von: DS_Starter am 24 Januar 2018, 21:08:12
in der V7.5.4
Zitat2018.01.26 10:22:19.791 2: DbRep repdb - ERROR - DBD::SQLite::st execute failed: database is locked at ./FHEM/93_DbRep.pm line 4808.Ja sowas kann kommen wenn du zum Beispiel einen SQL-Editor aufhast und die DB geladen ist. SQLite ist da nicht so gentle wie MySQL.
Zitatich hab ausm *update* bereits die 7.5.5?Ja, bin grad fleißig ;)
ZitatIch weiss nicht, ob das einfach geht, aber in den letzten Tagen wünschte ich mir immer sehnlicher eine Funktion, die mir .. die letzten, ka, 5 Befehle als Button zur Verfügung stellt, damit ich nicht den ganzen Text nochmal tippen muss ...Ich denk mal drüber nach. Habe ja das gleiche Problem. Behelfe mir momentan damit dass ich meine am häufigsten benötigten Statements in das Attribut comment im Device eintrage und dann per Coppy&Paste ...
Zitat von: DS_Starter am 26 Januar 2018, 10:48:01Hab ich aber nicht. Nur logdb und repdb.
Ja sowas kann kommen wenn du zum Beispiel einen SQL-Editor aufhast und die DB geladen ist. SQLite ist da nicht so gentle wie MySQL.
ZitatJa, bin grad fleißig ;)Klasse, weiter so ;)
ZitatAttribut comment im Device eintrage und dann per Coppy&Paste ...
Zitat
Hab ich aber nicht. Nur logdb und repdb.
und auch nur ein device.
und weils grade brandneu installiert ist, auch *keine* sonstigen Events.
und weil die mit DbLogExclude ausgeschlossen sind, schon gar keine Events.
Zitat
2018-01-26 18:35:14 2017-10-22_02-56-36_1__sysmon1__eth0_diff RX: 2.17 MB, TX: 0.22 MB, Total: 2.39 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_1__sysmon1__loadavg 0.09 0.04 0.01
2018-01-26 18:35:14 2017-10-22_02-56-36_1__sysmon1__ram Total: 2010.07 MB, Used: 342.15 MB, 17.02 %, Free: 1667.92 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_1__sysmon1__stat_cpu_percent 0.26 0.00 0.12 99.36 0.26 0.00 0.00
2018-01-26 18:35:14 2017-10-22_02-56-36_1__sysmon1__swap Total: 1293.00 MB, Used: 3.47 MB, 0.27 %, Free: 1289.52 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_2__sysmon1__eth0_diff RX: 2.17 MB, TX: 0.22 MB, Total: 2.39 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_2__sysmon1__loadavg 0.09 0.04 0.01
2018-01-26 18:35:14 2017-10-22_02-56-36_2__sysmon1__ram Total: 2010.07 MB, Used: 342.15 MB, 17.02 %, Free: 1667.92 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_2__sysmon1__stat_cpu_percent 0.26 0.00 0.12 99.36 0.26 0.00 0.00
2018-01-26 18:35:14 2017-10-22_02-56-36_2__sysmon1__swap Total: 1293.00 MB, Used: 3.47 MB, 0.27 %, Free: 1289.52 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_3__sysmon1__eth0_diff RX: 2.17 MB, TX: 0.22 MB, Total: 2.39 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_3__sysmon1__loadavg 0.09 0.04 0.01
2018-01-26 18:35:14 2017-10-22_02-56-36_3__sysmon1__ram Total: 2010.07 MB, Used: 342.15 MB, 17.02 %, Free: 1667.92 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_3__sysmon1__stat_cpu_percent 0.26 0.00 0.12 99.36 0.26 0.00 0.00
2018-01-26 18:35:14 2017-10-22_02-56-36_3__sysmon1__swap Total: 1293.00 MB, Used: 3.47 MB, 0.27 %, Free: 1289.52 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_4__sysmon1__eth0_diff RX: 2.17 MB, TX: 0.22 MB, Total: 2.39 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_4__sysmon1__loadavg 0.09 0.04 0.01
2018-01-26 18:35:14 2017-10-22_02-56-36_4__sysmon1__ram Total: 2010.07 MB, Used: 342.15 MB, 17.02 %, Free: 1667.92 MB
2018-01-26 18:35:14 2017-10-22_02-56-36_4__sysmon1__stat_cpu_percent 0.26 0.00 0.12 99.36 0.26 0.00 0.00
2018-01-26 18:35:14 2017-10-22_02-56-36_4__sysmon1__swap Total: 1293.00 MB, Used: 3.47 MB, 0.27 %, Free: 1289.52 MB
attr <dbrep> widgetOverride fetchMarkDuplicates:colorpicker
Zitat von: DS_Starter am 28 Januar 2018, 11:34:14
Oder übersehe ich Möglichkeiten mit einfachen SQL-Statements und so etwas wäre überflüssig ?
ZitatAnsonten umständlicher Weg den Satz lokal zwischenspeichern, doppelte Sätze löschen und im Anschluss wieder einfügen.Genau ein solches/ähnliches Verfahren würde ich in ein set-Kommando gießen als Pflegetool ... sofern eben Bedarf besteht.
ZitatLeider kann ich mit diesem Mittelwert nichts anfangen.Die Mittelwertberechnung des DWD war nur der Anfang und diente gleich dazu die notwendige Struktur im Modul für unterschiedliche Average-Berechnungen zu schaffen.
ZitatHabe ich global mit Version 7.8.1 im ersten Beitrag korrigiert.
Mir ist aber aufgefallen, das deine Bereichsangabe nicht so funktioniert wie ich es erwartet habe. Wenn du den Bereich von 2018-02-20 00:00:00 bis 2018-02-02 23:59:59 angibst und einen Datensatzexport machst, sollte dann nicht auch ein existierender Wert bei 23:59:59 mit in das File geschrieben werden? Bei mir wird dann der letzte Wert weggelassen.
Zitat2018.02.06 07:54:20.493 4: DbRep DBReport - -------- New selection ---------
2018.02.06 07:54:20.493 4: DbRep DBReport - Command: exportToFile
2018.02.06 07:54:20.495 4: DbRep DBReport - Timestamp begin human readable: 2018-02-02 00:00:00
2018.02.06 07:54:20.496 4: DbRep DBReport - Timestamp end human readable: 2018-02-02 23:59:59
2018.02.06 07:54:20.497 4: DbRep DBReport - Aggregation: no
2018.02.06 07:54:20.532 4: DbRep DBReport -> Start BlockingCall expfile_DoParse
2018.02.06 07:54:20.551 4: DbRep DBReport - SQL execute: SELECT TIMESTAMP,DEVICE,TYPE,EVENT,READING,VALUE,UNIT FROM history where READING = 'Temp_Aussen_Tiefpass' AND TIMESTAMP >= '2018-02-02 00:00:00' AND TIMESTAMP <= '2018-02-02 23:59:59' ORDER BY TIMESTAMP;
2018.02.06 07:54:20.845 4: DbRep DBReport -> BlockingCall expfile_DoParse finished
2018.02.06 07:54:20.852 4: DbRep DBReport -> Start BlockingCall expfile_ParseDone
2018.02.06 07:54:20.881 3: DbRep DBReport - Number of exported datasets from fhem to file ./log/dbexport.log: / -- Temp_Aussen_Tiefpass -- 129.
2018.02.06 07:54:20.881 4: DbRep DBReport -> BlockingCall expfile_ParseDone finished
ZitatSQL execute: SELECT TIMESTAMP,DEVICE,TYPE,EVENT,READING,VALUE,UNIT FROM history where READING = 'Temp_Aussen_Tiefpass' AND TIMESTAMP >= '2018-02-02 00:00:00' AND TIMESTAMP <= '2018-02-02 23:59:59' ORDER BY TIMESTAMP;
"2018-02-05 00:04:18","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 00:14:19","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 00:24:20","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 00:34:21","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 00:44:21","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 00:54:22","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 01:04:23","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 01:14:24","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 01:24:25","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 01:34:25","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 01:44:26","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 01:54:27","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 02:04:28","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 02:14:29","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 02:24:29","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 02:34:30","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 02:44:31","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 02:54:32","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 03:04:33","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 03:14:33","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 03:24:34","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 03:34:35","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 03:44:36","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 03:54:37","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 04:04:37","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 04:14:38","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 04:24:39","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 04:34:40","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 04:44:40","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 04:54:41","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 05:04:42","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 05:14:43","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 05:24:44","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 05:34:44","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 05:44:45","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 05:54:46","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 06:04:47","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 06:14:48","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 06:24:48","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 06:34:49","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 06:44:50","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 06:54:51","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 07:04:52","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 07:14:52","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 07:24:53","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 07:34:54","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 07:44:55","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 07:54:56","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 08:04:56","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 08:14:57","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 08:24:58","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 08:34:59","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 08:45:00","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 08:55:00","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 09:05:02","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 09:15:03","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 09:25:04","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 09:35:04","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 09:45:05","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 09:55:06","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 10:05:07","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 10:15:07","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 10:25:08","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 10:35:09","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 10:45:10","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 10:55:10","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 11:05:11","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 11:15:12","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 11:25:12","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 11:35:13","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 11:45:14","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 11:55:15","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 12:05:15","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 12:15:16","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 12:25:17","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 12:35:17","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 12:45:18","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 12:55:19","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 13:05:20","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 13:15:20","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 13:25:21","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 13:35:22","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 13:45:23","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 13:55:23","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 14:05:24","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 14:15:25","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 14:25:25","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 14:35:26","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 14:45:27","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 14:55:28","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 15:05:28","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 15:15:29","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 15:25:30","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 15:35:30","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 15:45:31","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 15:55:32","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 16:05:33","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 16:15:33","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 16:25:34","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 16:35:35","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 16:45:36","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 16:55:36","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 17:05:37","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 17:15:38","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 17:25:39","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 17:35:39","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 17:45:40","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 17:55:41","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 18:05:41","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 18:15:42","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 18:25:43","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 18:35:44","MyWetter","WEATHER","temperature: 0","temperature","0","C"
"2018-02-05 18:45:44","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 18:55:45","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 19:05:46","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 19:15:47","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 19:25:47","MyWetter","WEATHER","temperature: -1","temperature","-1","C"
"2018-02-05 19:35:48","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 19:45:49","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 19:55:49","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 20:05:50","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 20:15:51","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 20:25:52","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 20:35:52","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 20:45:53","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 20:55:54","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 21:05:55","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 21:15:55","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 21:25:56","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 21:35:57","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 21:45:58","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 21:55:58","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 22:05:59","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 22:16:00","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 22:26:01","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 22:36:01","MyWetter","WEATHER","temperature: -2","temperature","-2","C"
"2018-02-05 22:46:02","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 22:56:03","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 23:06:04","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 23:16:04","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 23:26:05","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 23:36:06","MyWetter","WEATHER","temperature: -3","temperature","-3","C"
"2018-02-05 23:46:07","MyWetter","WEATHER","temperature: -5","temperature","-5","C"
"2018-02-05 23:56:07","MyWetter","WEATHER","temperature: -5","temperature","-5","C"
"2018-02-05 23:59:59","MyWetter","WEATHER","temperature: -6","temperature","-6","C"
2018.02.07 20:53:12.888 4: DbRep Rep.LogDB1 - -------- New selection ---------
2018.02.07 20:53:12.890 4: DbRep Rep.LogDB1 - Command: exportToFile
2018.02.07 20:53:12.892 5: DbRep Rep.LogDB1 - Timestamp begin epocheseconds: 1517785200
2018.02.07 20:53:12.893 4: DbRep Rep.LogDB1 - Timestamp begin human readable: 2018-02-05 00:00:00
2018.02.07 20:53:12.894 5: DbRep Rep.LogDB1 - Timestamp end epocheseconds: 1517871599
2018.02.07 20:53:12.895 4: DbRep Rep.LogDB1 - Timestamp end human readable: 2018-02-05 23:59:59
2018.02.07 20:53:12.896 5: DbRep Rep.LogDB1 - weekday of start for selection: Mo -> wdadd: 604800
2018.02.07 20:53:12.897 4: DbRep Rep.LogDB1 - Aggregation: no
2018.02.07 20:53:12.909 4: DbRep Rep.LogDB1 -> Start BlockingCall expfile_DoParse
2018.02.07 20:53:12.916 5: DbRep Rep.LogDB1 - IsTimeSet: 1, IsAggrSet: 0
2018.02.07 20:53:12.917 5: DbRep Rep.LogDB1 - Timestamp-Array:
no_aggregation#2018-02-05 00:00:00#2018-02-05 23:59:59
2018.02.07 20:53:12.918 5: DbRep Rep.LogDB1 - Device specifications use for select: MyWetter
2018.02.07 20:53:12.920 5: DbRep Rep.LogDB1 - Reading specification use for select: temperature
2018.02.07 20:53:12.921 5: DbRep Rep.LogDB1 - Device specifications use for select: MyWetter
2018.02.07 20:53:12.922 5: DbRep Rep.LogDB1 - Reading specification use for select: temperature
2018.02.07 20:53:12.923 4: DbRep Rep.LogDB1 - SQL execute: SELECT TIMESTAMP,DEVICE,TYPE,EVENT,READING,VALUE,UNIT FROM history where DEVICE = 'MyWetter' AND READING = 'temperature' AND TIMESTAMP >= '2018-02-05 00:00:00' AND TIMESTAMP <= '2018-02-05 23:59:59' ORDER BY TIMESTAMP;
2018.02.07 20:53:12.931 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 00:04:18 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.932 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 00:14:19 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.933 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 00:24:20 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.934 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 00:34:21 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.935 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 00:44:21 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.935 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 00:54:22 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.936 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 01:04:23 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.937 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 01:14:24 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.937 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 01:24:25 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.938 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 01:34:25 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.939 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 01:44:26 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.939 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 01:54:27 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.940 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 02:04:28 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.941 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 02:14:29 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.941 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 02:24:29 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.942 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 02:34:30 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.943 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 02:44:31 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.943 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 02:54:32 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.944 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 03:04:33 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.945 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 03:14:33 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.946 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 03:24:34 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.947 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 03:34:35 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:12.948 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 03:44:36 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.949 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 03:54:37 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.950 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 04:04:37 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.950 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 04:14:38 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.951 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 04:24:39 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.952 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 04:34:40 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.953 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 04:44:40 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.954 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 04:54:41 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.955 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 05:04:42 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.956 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 05:14:43 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.957 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 05:24:44 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.958 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 05:34:44 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.959 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 05:44:45 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.968 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 05:54:46 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.972 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 06:04:47 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.973 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 06:14:48 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.973 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 06:24:48 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.974 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 06:34:49 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.975 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 06:44:50 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.975 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 06:54:51 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.976 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 07:04:52 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.976 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 07:14:52 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.977 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 07:24:53 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.978 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 07:34:54 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.978 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 07:44:55 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.979 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 07:54:56 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.980 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 08:04:56 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.980 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 08:14:57 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.981 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 08:24:58 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.982 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 08:34:59 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.982 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 08:45:00 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.983 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 08:55:00 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.983 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 09:05:02 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.984 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 09:15:03 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.985 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 09:25:04 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.985 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 09:35:04 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.986 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 09:45:05 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.986 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 09:55:06 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.987 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 10:05:07 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.988 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 10:15:07 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.988 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 10:25:08 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.989 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 10:35:09 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:12.989 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 10:45:10 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.990 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 10:55:10 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.991 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 11:05:11 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.991 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 11:15:12 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.992 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 11:25:12 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.993 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 11:35:13 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.993 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 11:45:14 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.994 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 11:55:15 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.994 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 12:05:15 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.995 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 12:15:16 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.996 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 12:25:17 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.996 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 12:35:17 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:12.997 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 12:45:18 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.998 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 12:55:19 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.998 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 13:05:20 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.999 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 13:15:20 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:12.999 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 13:25:21 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.001 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 13:35:22 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.002 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 13:45:23 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.003 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 13:55:23 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.003 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 14:05:24 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.004 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 14:15:25 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.005 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 14:25:25 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.005 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 14:35:26 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.006 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 14:45:27 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.006 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 14:55:28 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.007 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 15:05:28 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.008 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 15:15:29 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.008 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 15:25:30 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.009 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 15:35:30 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.010 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 15:45:31 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.010 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 15:55:32 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.011 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 16:05:33 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.011 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 16:15:33 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.012 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 16:25:34 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.013 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 16:35:35 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.013 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 16:45:36 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.014 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 16:55:36 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.015 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 17:05:37 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.015 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 17:15:38 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.016 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 17:25:39 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.016 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 17:35:39 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.017 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 17:45:40 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.018 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 17:55:41 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.018 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 18:05:41 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.019 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 18:15:42 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.020 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 18:25:43 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.020 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 18:35:44 MyWetter WEATHER temperature: 0 temperature 0 �C
2018.02.07 20:53:13.021 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 18:45:44 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.022 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 18:55:45 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.022 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 19:05:46 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.023 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 19:15:47 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.024 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 19:25:47 MyWetter WEATHER temperature: -1 temperature -1 �C
2018.02.07 20:53:13.024 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 19:35:48 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.025 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 19:45:49 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.025 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 19:55:49 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.026 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 20:05:50 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.027 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 20:15:51 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.027 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 20:25:52 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.028 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 20:35:52 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.029 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 20:45:53 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.030 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 20:55:54 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.030 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 21:05:55 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.031 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 21:15:55 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.032 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 21:25:56 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.032 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 21:35:57 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.033 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 21:45:58 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.033 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 21:55:58 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.034 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 22:05:59 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.035 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 22:16:00 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.035 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 22:26:01 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.036 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 22:36:01 MyWetter WEATHER temperature: -2 temperature -2 �C
2018.02.07 20:53:13.037 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 22:46:02 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.037 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 22:56:03 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.038 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:06:04 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.039 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:16:04 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.039 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:26:05 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.040 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:36:06 MyWetter WEATHER temperature: -3 temperature -3 �C
2018.02.07 20:53:13.041 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:46:07 MyWetter WEATHER temperature: -5 temperature -5 �C
2018.02.07 20:53:13.041 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:56:07 MyWetter WEATHER temperature: -5 temperature -5 �C
2018.02.07 20:53:13.042 5: DbRep Rep.LogDB1 -> write row: 2018-02-05 23:59:59 MyWetter WEATHER temperature: -6 temperature -6 C
2018.02.07 20:53:13.044 4: DbRep Rep.LogDB1 -> BlockingCall expfile_DoParse finished
2018.02.07 20:53:13.046 4: DbRep Rep.LogDB1 -> Start BlockingCall expfile_ParseDone
2018.02.07 20:53:13.052 3: DbRep Rep.LogDB1 - Number of exported datasets from fhemtest1 to file /sds1/backup/export.txt: MyWetter -- temperature -- 145.
2018.02.07 20:53:13.056 4: DbRep Rep.LogDB1 -> BlockingCall expfile_ParseDone finished
Zitatich habe die 7.9.0 geladen. Der letzte Datensatz fehlt aber weiterhin.wirklich eigenartig. grenze mal time begin bis ende auf zwei Tage ein und aggregation auf day. Dann bitte wieder ein verbose 5. mal schauen wie es dann bei dir aussieht.
ZitatMit welchen set kann ich denn den neuen Mittelwert berechnen?Du stellst Attribut averageCalcForm = avgTimeWeightMean. Die Berechnung ist wie üblich mit set averageValue zu starten.
Zitatjetzt habe ich auch den letzten Datensatz. Super.Dann haben wir das schonmal geschafft. :)
2018.02.08 21:02:34.559 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.48538011695906
2018.02.08 21:02:34.560 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.49242344337798
2018.02.08 21:02:34.561 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.4994667697969
2018.02.08 21:02:34.561 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.50651009621582
2018.02.08 21:02:34.562 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.51354170328962
2018.02.08 21:02:34.563 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.52058502970854
2018.02.08 21:02:34.563 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.52762835612746
2018.02.08 21:02:34.564 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.53467168254638
2018.02.08 21:02:34.564 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.54170328962018
2018.02.08 21:02:34.565 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.5487466160391
2018.02.08 21:02:34.566 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.55578994245802
2018.02.08 21:02:34.566 2: DbRep Rep.LogDB1 - Row: Time: 200, Value: -1, Summe: -1.55813381148262
2018.02.08 21:02:34.567 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.56517713790153
2018.02.08 21:02:34.568 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.57220874497533
2018.02.08 21:02:34.568 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.57925207139425
2018.02.08 21:02:34.569 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.58629539781317
2018.02.08 21:02:34.570 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.59332700488697
2018.02.08 21:02:34.570 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.60037033130589
2018.02.08 21:02:34.571 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.60741365772481
2018.02.08 21:02:34.571 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.6144452647986
2018.02.08 21:02:34.572 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.62148859121752
2018.02.08 21:02:34.573 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.62853191763644
2018.02.08 21:02:34.573 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.63556352471024
2018.02.08 21:02:34.574 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.64260685112916
2018.02.08 21:02:34.575 2: DbRep Rep.LogDB1 - Row: Time: 601, Value: -1, Summe: -1.64965017754808
2018.02.08 21:02:34.575 2: DbRep Rep.LogDB1 - Row: Time: 600, Value: -1, Summe: -1.65668178462188
set name changeValue "alter Wert","neuer Wert"
ZitatZu deinem changeValue, so wie ich das verstehe, muss ich jeden einzelnen Wert auslesen und dann Step by Step ändern. Ober habe ich das falsch verstanden?
ZitatKannst du mir jetzt noch einmal näher erläutern wie ich es schaffe meinen Text aus den Datenfeldern zu löschen?Für eine einfache Ersetzung hatte ich vorgesehen:
set name changeValue "alter String","neuer String"
Zitat von: DS_Starter am 17 Februar 2018, 16:59:56
<neuer String> : * ein einfacher String mit/ohne Leerzeichen, z.B. "12 kWh"
* Perl Code eingeschlossen in {}, z.B. {$VALUE = (split(",",$VALUE))[1]}.
Dem Perl-Ausdruck werden die Variablen $VALUE und $UNIT übergeben. Sie können innerhalb
des Perl-Code geändert werden. Der zurückgebene Wert von $VALUE und $UNIT wird in dem Feld
VALUE bzw. UNIT des Datensatzes gespeichert.
set <name> changeValue "12 kWh","{$VALUE,$UNIT = split(" ",$VALUE)}"
# der alte Feldwert "12 kWh" wird in VALUE=12 und UNIT=kWh gesplittet und in den Datenbankfeldern gespeichert
"OL %"
"%","{$VALUE= (split(" ",$VALUE))[0]}" oder
"%","{$VALUE,$UNIT= split(" ",$VALUE) }"
define LogSQLITE1 DbLog ./db_sqlite1.conf aaaa:bbbbb
set <DbRep> syncStandby LogSQLITE1
2018.02.28 23:32:00 4: DbRep MyDbRep - -------- New selection ---------
2018.02.28 23:32:00 4: DbRep MyDbRep - Command: tableCurrentPurge
2018.02.28 23:32:00 4: DbRep MyDbRep -> Start BlockingCall del_DoParse
2018.02.28 23:32:00 4: DbRep MyDbRep - SQL execute: delete FROM current;
2018.02.28 23:32:00 4: DbRep MyDbRep -> BlockingCall del_DoParse finished
2018.02.28 23:32:00 4: DbRep MyDbRep -> Start BlockingCall del_ParseDone
2018.02.28 23:32:00 3: DbRep MyDbRep - Entries of fhemdaten.current deleted: 967
2018.02.28 23:32:00 4: DbRep MyDbRep -> BlockingCall del_ParseDone finished
2018.02.28 23:32:05 4: DbRep MyDbRep - -------- New selection ---------
2018.02.28 23:32:05 4: DbRep MyDbRep - Command: tableCurrentFillup
2018.02.28 23:32:05 4: DbRep MyDbRep - Timestamp begin human readable: not set
2018.02.28 23:32:05 4: DbRep MyDbRep - Timestamp end human readable: not set
2018.02.28 23:32:05 4: DbRep MyDbRep -> Start BlockingCall currentfillup_Push
2018.02.28 23:32:05 4: DbRep MyDbRep - SQL execute: INSERT INTO current (TIMESTAMP,DEVICE,READING) SELECT '',device,reading FROM history where true group by device,reading ORDER BY 2 ASC, 3 ASC;
2018.02.28 23:32:05 2: DbRep MyDbRep - Insert new dataset into database failed: DBD::Pg::st execute failed: ERROR: invalid input syntax for type timestamp: ""
LINE 1: ...RT INTO current (TIMESTAMP,DEVICE,READING) SELECT '',device,...
^ at ./FHEM/93_DbRep.pm line 3981.
2018.02.28 23:32:05 4: DbRep MyDbRep -> BlockingCall currentfillup_Push finished
2018.02.28 23:32:05 4: DbRep MyDbRep -> Start BlockingCall currentfillup_Done
2018.02.28 23:32:05 4: DbRep MyDbRep -> BlockingCall currentfillup_Done finished
DBD::SQLite::st execute failed: database disk image is malformed at /usr/share/fhem/FHEM/93_DbRep.pm line 4549. 2018-03-01 21:50:08
version =
Latest Revision: 16296
File Rev Last Change
fhem.pl 16291 2018-02-28 21:09:20Z rudolfkoenig
...
93_DbLog.pm 16271 2018-02-25 19:14:46Z DS_Starter (3.8.6)
93_DbRep.pm 16292 2018-02-28 21:23:28Z DS_Starter (7.14.0)
...
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> .version
SQLite 3.22.0 2018-01-22 18:45:57 ...
gcc-7.2.1 20180116
sqlite>
set ... repairSQLite
executeAfterProc set <DbLog-Device> reopen
executeBeforeProc set <DbLog-Device> reopen 3600
ZitatDafür habe ich gleich auch gute Nachrichten: funktioniert wieder wie gewünscht :)
2018.03.03 21:29:21 1: PERL WARNING: Use of uninitialized value $wdadd in concatenation (.) or string at ./FHEM/93_DbRep.pm line 1785.
set delSeqDoublets adviceDelete
ausgeführt habe.2018.03.03 16:41:19 4: DbRep MyDbRep - -------- New selection ---------
2018.03.03 16:41:19 4: DbRep MyDbRep - Command: delSeqDoublets adviceRemain
2018.03.03 16:41:19 5: DbRep MyDbRep - Timestamp begin epocheseconds: 3600
2018.03.03 16:41:19 4: DbRep MyDbRep - Timestamp begin human readable: 1970-01-01 01:00:00
2018.03.03 16:41:19 5: DbRep MyDbRep - Timestamp end epocheseconds: 1520095279
2018.03.03 16:41:19 4: DbRep MyDbRep - Timestamp end human readable: 2018-03-03 16:41:19
2018.03.03 16:41:19 1: PERL WARNING: Use of uninitialized value $wdadd in concatenation (.) or string at ./FHEM/93_DbRep.pm line 1802.
Internals:
DATABASE fhemdaten
DEF myDbLog
LASTCMD delSeqDoublets delete
NAME MyDbRep
NOTIFYDEV global,MyDbRep
NR 12
NTFY_ORDER 50-MyDbRep
ROLE Client
STATE done
TYPE DbRep
UTF8 0
VERSION 7.14.1
HELPER:
DBLOGDEVICE myDbLog
CV:
aggregation day
aggsec 86400
destr 2018-03-03
dsstr 1970-01-01
epoch_seconds_end 1520102116
mestr 03
msstr 01
testr 18:35:16
tsstr 01:00:00
wdadd
yestr 2018
ysstr 1970
Helper:
DBLOG:
2017-11-19_22-44-35__MyDbRep__state:
myDbLog:
TIME 1520099208.42687
VALUE running
2017-11-19_22-44-38__MyDbRep__/--/----DELETED_ROWS_HISTORY--:
myDbLog:
TIME 1520099208.42687
VALUE 583507
2017-11-19_22-44-38__MyDbRep__state:
myDbLog:
TIME 1520099208.42687
VALUE done
2017-11-19_22-44-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1879
2017-11-19_22-44-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.16 MB, Total: 0.16 MB
2017-11-19_22-44-48__mySysMon__fs_boot:
myDbLog:
TIME 1520099208.42687
VALUE Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at /boot (not available)
2017-11-19_22-44-48__mySysMon__fs_root:
myDbLog:
TIME 1520099208.42687
VALUE Total: 30110 MB, Used: 1635 MB, 6 %, Available: 26923 MB at /
2017-11-19_22-44-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.45 0.40 0.35
2017-11-19_22-44-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.48 MB, 1.26 %, Free: 5786.57 MB
2017-11-19_22-44-56__myDbLog__countHistory:
myDbLog:
TIME 1520099208.42687
VALUE 9
2017-11-19_22-44-56__myDbLog__state:
myDbLog:
TIME 1520099208.42687
VALUE countNbl
2017-11-19_22-45-40__global__state:
myDbLog:
TIME 1520099208.42687
VALUE UPDATE
2017-11-19_22-45-44__global__state:
myDbLog:
TIME 1520099208.42687
VALUE SHUTDOWN
2017-11-19_22-45-52__MyDbRep__state:
myDbLog:
TIME 1520099208.42687
VALUE connected
2017-11-19_22-46-03__global__state:
myDbLog:
TIME 1520099208.42687
VALUE DELETEATTR MyDbRep ftpPwd
2017-11-19_22-46-04__global__state:
myDbLog:
TIME 1520099208.42687
VALUE DELETEATTR MyDbRep ftpServer
2017-11-19_22-46-06__global__state:
myDbLog:
TIME 1520099208.42687
VALUE DELETEATTR MyDbRep ftpUse
2017-11-19_22-46-08__global__state:
myDbLog:
TIME 1520099208.42687
VALUE DELETEATTR MyDbRep ftpUser
2017-11-19_22-46-09__global__state:
myDbLog:
TIME 1520099208.42687
VALUE SAVE
2017-11-19_22-46-19__myDbLog__state:
myDbLog:
TIME 1520099208.42687
VALUE connected
2017-11-19_22-46-40__myDbLog__countCurrent:
myDbLog:
TIME 1520099208.42687
VALUE 0
2017-11-19_22-46-40__myDbLog__countHistory:
myDbLog:
TIME 1520099208.42687
VALUE 19
2017-11-19_22-46-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 2046
2017-11-19_22-46-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 2.25 MB, TX: 0.16 MB, Total: 2.41 MB
2017-11-19_22-46-48__mySysMon__fs_root:
myDbLog:
TIME 1520099208.42687
VALUE Total: 30110 MB, Used: 1673 MB, 6 %, Available: 26886 MB at /
2017-11-19_22-46-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.26 0.35 0.33
2017-11-19_22-46-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.32 MB, 1.32 %, Free: 5600.36 MB
2017-11-19_22-47-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 580
2017-11-19_22-47-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.03 MB, TX: 0.02 MB, Total: 0.05 MB
2017-11-19_22-47-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.17 0.31 0.32
2017-11-19_22-47-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.25 MB, 1.32 %, Free: 5600.43 MB
2017-11-19_22-48-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1062
2017-11-19_22-48-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_22-48-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.15 0.28 0.31
2017-11-19_22-48-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.46 MB, 1.33 %, Free: 5600.19 MB
2017-11-19_22-49-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1909
2017-11-19_22-49-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_22-49-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.30 0.30 0.32
2017-11-19_22-49-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.59 MB, 1.33 %, Free: 5600.06 MB
2017-11-19_22-50-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 730
2017-11-19_22-50-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_22-50-48__mySysMon__fs_root:
myDbLog:
TIME 1520099208.42687
VALUE Total: 30110 MB, Used: 1673 MB, 6 %, Available: 26886 MB at /
2017-11-19_22-50-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.11 0.25 0.29
2017-11-19_22-50-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.66 MB, 1.33 %, Free: 5599.99 MB
2017-11-19_22-51-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 2004
2017-11-19_22-51-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_22-51-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.16 0.24 0.29
2017-11-19_22-51-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.66 MB, 1.33 %, Free: 5583.99 MB
2017-11-19_22-52-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 560
2017-11-19_22-52-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.01 MB, Total: 0.02 MB
2017-11-19_22-52-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.25 0.24 0.28
2017-11-19_22-52-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.70 MB, 1.33 %, Free: 5583.96 MB
2017-11-19_22-53-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1919
2017-11-19_22-53-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_22-53-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.15 0.21 0.27
2017-11-19_22-53-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.76 MB, 1.33 %, Free: 5583.89 MB
2017-11-19_22-54-47__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1249
2017-11-19_22-54-48__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_22-54-48__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.22 0.22 0.27
2017-11-19_22-54-48__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 81.77 MB, 1.33 %, Free: 5583.88 MB
2017-11-19_23-16-47__MyDbRep__state:
myDbLog:
TIME 1520099208.42687
VALUE connected
2017-11-19_23-17-14__myDbLog__state:
myDbLog:
TIME 1520099208.42687
VALUE connected
2017-11-19_23-17-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 564
2017-11-19_23-17-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-17-43__mySysMon__fs_root:
myDbLog:
TIME 1520099208.42687
VALUE Total: 30110 MB, Used: 1689 MB, 6 %, Available: 26870 MB at /
2017-11-19_23-17-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.34 0.35 0.30
2017-11-19_23-17-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 76.21 MB, 1.24 %, Free: 5954.34 MB
2017-11-19_23-18-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 571
2017-11-19_23-18-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.27 0.33 0.30
2017-11-19_23-18-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 76.51 MB, 1.25 %, Free: 5878.46 MB
2017-11-19_23-19-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 778
2017-11-19_23-19-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-19-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.50 0.38 0.31
2017-11-19_23-19-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 76.43 MB, 1.24 %, Free: 5878.54 MB
2017-11-19_23-20-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1084
2017-11-19_23-20-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-20-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.22 0.32 0.30
2017-11-19_23-20-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 76.45 MB, 1.24 %, Free: 5878.51 MB
2017-11-19_23-21-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1060
2017-11-19_23-21-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.02 MB, TX: 0.02 MB, Total: 0.04 MB
2017-11-19_23-21-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.24 0.31 0.29
2017-11-19_23-21-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.06 MB, 1.25 %, Free: 5877.41 MB
2017-11-19_23-21-46__MyDbRep__1970-01-01__/__/__COUNT_history__all_between_timestamps:
myDbLog:
TIME 1520099208.42687
VALUE 88
2017-11-19_23-21-46__MyDbRep__state:
myDbLog:
TIME 1520099208.42687
VALUE done
2017-11-19_23-22-19__myDbLog__countHistory:
myDbLog:
TIME 1520099208.42687
VALUE 91
2017-11-19_23-22-19__myDbLog__state:
myDbLog:
TIME 1520099208.42687
VALUE countNbl
2017-11-19_23-22-41__global__state:
myDbLog:
TIME 1520099208.42687
VALUE SAVE
2017-11-19_23-22-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1097
2017-11-19_23-22-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.09 MB, TX: 0.08 MB, Total: 0.17 MB
2017-11-19_23-22-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.31 0.31 0.29
2017-11-19_23-22-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.17 MB, 1.26 %, Free: 5876.63 MB
2017-11-19_23-23-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1008
2017-11-19_23-23-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.03 MB, TX: 0.03 MB, Total: 0.06 MB
2017-11-19_23-23-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.22 0.28 0.28
2017-11-19_23-23-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.14 MB, 1.26 %, Free: 5876.64 MB
2017-11-19_23-24-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1086
2017-11-19_23-24-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-24-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.17 0.26 0.27
2017-11-19_23-24-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.20 MB, 1.26 %, Free: 5876.58 MB
2017-11-19_23-25-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 805
2017-11-19_23-25-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-25-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.23 0.27 0.27
2017-11-19_23-25-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.18 MB, 1.26 %, Free: 5876.11 MB
2017-11-19_23-26-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 716
2017-11-19_23-26-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-26-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.23 0.26 0.27
2017-11-19_23-26-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.12 MB, 1.26 %, Free: 5876.16 MB
2017-11-19_23-27-42__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1118
2017-11-19_23-27-43__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.03 MB, TX: 0.03 MB, Total: 0.06 MB
2017-11-19_23-27-43__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.28 0.27 0.27
2017-11-19_23-27-43__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.41 MB, 1.26 %, Free: 5875.82 MB
2017-11-19_23-28-05__global__state:
myDbLog:
TIME 1520099208.42687
VALUE ATTR myMail verbose 5
2017-11-19_23-28-17__global__state:
myDbLog:
TIME 1520099208.42687
VALUE ATTR MyDbRep verbose 5
2017-11-19_23-28-19__global__state:
myDbLog:
TIME 1520099208.42687
VALUE SAVE
2017-11-19_23-28-29__MyDbRep__state:
myDbLog:
TIME 1520099208.42687
VALUE connected
2017-11-19_23-28-56__myDbLog__state:
myDbLog:
TIME 1520099208.42687
VALUE connected
2017-11-19_23-29-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 847
2017-11-19_23-29-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.13 MB, TX: 0.18 MB, Total: 0.31 MB
2017-11-19_23-29-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.48 0.34 0.29
2017-11-19_23-29-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.31 MB, 1.26 %, Free: 5875.66 MB
2017-11-19_23-30-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 554
2017-11-19_23-30-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-30-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.23 0.29 0.27
2017-11-19_23-30-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.36 MB, 1.26 %, Free: 5875.32 MB
2017-11-19_23-31-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1090
2017-11-19_23-31-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-31-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.29 0.31 0.28
2017-11-19_23-31-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.39 MB, 1.26 %, Free: 5875.28 MB
2017-11-19_23-32-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1106
2017-11-19_23-32-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-32-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.35 0.31 0.28
2017-11-19_23-32-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.48 MB, 1.26 %, Free: 5875.09 MB
2017-11-19_23-33-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1122
2017-11-19_23-33-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-33-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.58 0.37 0.30
2017-11-19_23-33-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.48 MB, 1.26 %, Free: 5875.07 MB
2017-11-19_23-34-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 502
2017-11-19_23-34-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.05 MB, TX: 0.05 MB, Total: 0.10 MB
2017-11-19_23-34-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.67 0.42 0.32
2017-11-19_23-34-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.46 MB, 1.26 %, Free: 5875.09 MB
2017-11-19_23-35-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 2073
2017-11-19_23-35-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.03 MB, Total: 0.04 MB
2017-11-19_23-35-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.55 0.43 0.33
2017-11-19_23-35-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.34 MB, 1.26 %, Free: 5875.18 MB
2017-11-19_23-36-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 498
2017-11-19_23-36-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.02 MB, TX: 0.01 MB, Total: 0.03 MB
2017-11-19_23-36-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.46 0.43 0.33
2017-11-19_23-36-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.47 MB, 1.26 %, Free: 5875.05 MB
2017-11-19_23-37-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1089
2017-11-19_23-37-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-37-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.50 0.44 0.35
2017-11-19_23-37-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.49 MB, 1.26 %, Free: 5875.02 MB
2017-11-19_23-38-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 718
2017-11-19_23-38-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-38-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.22 0.37 0.33
2017-11-19_23-38-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.48 MB, 1.26 %, Free: 5875.02 MB
2017-11-19_23-39-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 754
2017-11-19_23-39-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-39-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.25 0.35 0.32
2017-11-19_23-39-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.47 MB, 1.26 %, Free: 5875.02 MB
2017-11-19_23-40-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1174
2017-11-19_23-40-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-40-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.49 0.41 0.34
2017-11-19_23-40-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.40 MB, 1.26 %, Free: 5875.08 MB
2017-11-19_23-41-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1179
2017-11-19_23-41-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.76 0.49 0.38
2017-11-19_23-41-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.51 MB, 1.26 %, Free: 5874.96 MB
2017-11-19_23-42-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 834
2017-11-19_23-42-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-42-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.51 0.47 0.38
2017-11-19_23-42-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.47 MB, 1.26 %, Free: 5874.99 MB
2017-11-19_23-43-25__Statistik__state:
myDbLog:
TIME 1520099208.42687
VALUE Next
2017-11-19_23-43-25__myDbLog__countHistory:
myDbLog:
TIME 1520099208.42687
VALUE 185
2017-11-19_23-43-25__myDbLog__state:
myDbLog:
TIME 1520099208.42687
VALUE countNbl
2017-11-19_23-43-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1465
2017-11-19_23-43-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.02 MB, TX: 0.02 MB, Total: 0.04 MB
2017-11-19_23-43-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.62 0.52 0.40
2017-11-19_23-43-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 78.10 MB, 1.27 %, Free: 5874.09 MB
2017-11-19_23-44-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1045
2017-11-19_23-44-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.04 MB, TX: 0.02 MB, Total: 0.06 MB
2017-11-19_23-44-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.38 0.47 0.39
2017-11-19_23-44-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.41 MB, 1.26 %, Free: 5874.43 MB
2017-11-19_23-45-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 480
2017-11-19_23-45-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-45-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.32 0.44 0.38
2017-11-19_23-45-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.48 MB, 1.26 %, Free: 5874.21 MB
2017-11-19_23-46-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1041
2017-11-19_23-46-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.01 MB, Total: 0.01 MB
2017-11-19_23-46-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.65 0.51 0.41
2017-11-19_23-46-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.49 MB, 1.26 %, Free: 5874.19 MB
2017-11-19_23-47-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1066
2017-11-19_23-47-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.02 MB, TX: 0.01 MB, Total: 0.03 MB
2017-11-19_23-47-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.54 0.51 0.41
2017-11-19_23-47-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.57 MB, 1.26 %, Free: 5874.10 MB
2017-11-19_23-48-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 762
2017-11-19_23-48-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-48-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.36 0.46 0.40
2017-11-19_23-48-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.60 MB, 1.26 %, Free: 5874.06 MB
2017-11-19_23-49-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1446
2017-11-19_23-49-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-49-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.32 0.43 0.40
2017-11-19_23-49-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.58 MB, 1.26 %, Free: 5874.06 MB
2017-11-19_23-50-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1122
2017-11-19_23-50-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-50-25__mySysMon__fs_boot:
myDbLog:
TIME 1520099208.42687
VALUE Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at /boot (not available)
2017-11-19_23-50-25__mySysMon__fs_root:
myDbLog:
TIME 1520099208.42687
VALUE Total: 30110 MB, Used: 1689 MB, 6 %, Available: 26870 MB at /
2017-11-19_23-50-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.29 0.40 0.38
2017-11-19_23-50-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.60 MB, 1.26 %, Free: 5874.04 MB
2017-11-19_23-51-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 1097
2017-11-19_23-51-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
2017-11-19_23-51-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.36 0.40 0.38
2017-11-19_23-51-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.54 MB, 1.26 %, Free: 5874.09 MB
2017-11-19_23-52-25__mySysMon__cpu_freq:
myDbLog:
TIME 1520099208.42687
VALUE 602
2017-11-19_23-52-25__mySysMon__eth0_diff:
myDbLog:
TIME 1520099208.42687
VALUE RX: 0.01 MB, TX: 0.00 MB, Total: 0.01 MB
2017-11-19_23-52-25__mySysMon__loadavg:
myDbLog:
TIME 1520099208.42687
VALUE 0.64 0.45 0.40
2017-11-19_23-52-25__mySysMon__ram:
myDbLog:
TIME 1520099208.42687
VALUE Total: 6144.00 MB, Used: 77.57 MB, 1.26 %, Free: 5874.05 MB
READINGS:
2018-03-03 19:43:30 number_rows_deleted 70286
2018-03-03 19:43:30 state done
dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf .*:.*
MODE asynchronous
MODEL POSTGRESQL
NAME myDbLog
NR 9
NTFY_ORDER 50-myDbLog
PID 2813
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 3.8.6
dbconn Pg:database=fhemdaten;host=localhost
dbuser fhem
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
DBLOG:
countCurrent:
myDbLog:
TIME 1520170598.42667
VALUE 26
countHistory:
myDbLog:
TIME 1520170598.42556
VALUE 453129
state:
myDbLog:
TIME 1520170598.24708
VALUE countNbl
READINGS:
2018-03-04 13:38:44 CacheUsage 4
2018-03-04 13:38:31 NextSync 2018-03-04 13:39:01 or if CacheUsage 500 reached
2018-03-04 13:36:38 countCurrent 26
2018-03-04 13:36:38 countHistory 453129
2018-03-04 13:38:31 state connected
cache:
index 10875
Attributes:
allowDeletion 1
SELECT min(history.TIMESTAMP) FROM fhem.history
HELPER:
DBLOGDEVICE LogSQLITE
MINTS 2017-10-22 02:56:36
set <dbrep> changeValue "%<< addLog","{$VALUE = (split("<<",$VALUE))[0]}
set <dbrep> changeValue "%<< addLog","{$VALUE = (split(" ",$VALUE))[0]}
set <dbrep> changeValue "%<< addLog","{$VALUE = (split("<<",$VALUE))[0]}"
"%addlog%","{$VALUE = (split("<<",$VALUE))[0]}"
2018.03.07 20:04:54.357 4: DbRep Rep.LogDB1 - -------- New selection ---------
2018.03.07 20:04:54.359 4: DbRep Rep.LogDB1 - Command: changeValue
2018.03.07 20:04:54.364 4: DbRep Rep.LogDB1 - timeDiffToNow - day: 30, hour: , min: , sec:
2018.03.07 20:04:54.365 4: DbRep Rep.LogDB1 - Time difference to current time for calculating Timestamp begin: 2592001 sec
2018.03.07 20:04:54.366 4: DbRep Rep.LogDB1 - Timestamp begin human readable: 2018-02-05 20:04:53
2018.03.07 20:04:54.367 4: DbRep Rep.LogDB1 - Timestamp end human readable: 2018-03-07 20:04:54
2018.03.07 20:04:54.371 4: DbRep Rep.LogDB1 - Aggregation: day
2018.03.07 20:04:54.386 4: DbRep Rep.LogDB1 - SQL execute: SELECT DEVICE,READING,TIMESTAMP,VALUE,UNIT FROM history where DEVICE = 'USV' AND TIMESTAMP >= '2018-02-05 20:04:53' AND TIMESTAMP < '2018-02-06' AND VALUE LIKE '%addlog%';
2018.03.07 21:07:29.716 4: DbRep DBReport - -------- New selection ---------
2018.03.07 21:07:29.717 4: DbRep DBReport - Command: changeValue
2018.03.07 21:07:29.719 5: DbRep DBReport - Timestamp begin epocheseconds: 1517526000
2018.03.07 21:07:29.719 4: DbRep DBReport - Timestamp begin human readable: 2018-02-02 00:00:00
2018.03.07 21:07:29.720 5: DbRep DBReport - Timestamp end epocheseconds: 1517612399
2018.03.07 21:07:29.720 4: DbRep DBReport - Timestamp end human readable: 2018-02-02 23:59:59
2018.03.07 21:07:29.721 5: DbRep DBReport - weekday of start for selection: Fr -> wdadd: 259200
2018.03.07 21:07:29.721 4: DbRep DBReport - Aggregation: no
2018.03.07 21:07:29.863 4: DbRep DBReport -> Start BlockingCall change_Push
2018.03.07 21:07:29.869 5: DbRep DBReport -> Change old value "%addlog%" to new value "{$VALUE = (split(<<,$VALUE))[0]}" in database DBLogData
2018.03.07 21:07:29.870 5: DbRep DBReport - IsTimeSet: 1, IsAggrSet: 0
2018.03.07 21:07:29.883 5: DbRep DBReport - Device specifications use for select: %
2018.03.07 21:07:29.884 5: DbRep DBReport - Reading specification use for select: Temp_Aussen_Tiefpass
2018.03.07 21:07:29.884 4: DbRep DBReport - SQL execute: UPDATE history SET TIMESTAMP=TIMESTAMP,VALUE='{$VALUE = (split(<<,$VALUE))[0]}' WHERE VALUE='%addlog%' AND READING = 'Temp_Aussen_Tiefpass' AND TIMESTAMP >= '2018-02-02 00:00:00' AND TIMESTAMP <= '2018-02-02 23:59:59' ;
2018.03.07 21:07:30.484 4: DbRep DBReport -> BlockingCall change_Push finished
2018.03.07 21:07:30.492 4: DbRep DBReport -> Start BlockingCall change_Done
2018.03.07 21:07:30.544 1: DBReport done
2018.03.07 21:07:30.555 4: DbRep DBReport -> BlockingCall change_Done finished
4: DbRep DBReport -> Start BlockingCall change_Push
Zitat von: DS_Starter am 04 März 2018, 20:54:15
Hallo Pyro, @all,
mir ist eine Idee gekommen deinen Vorschlag umzusetzen.
MINTS 2017-11-19 22:44:35
get MyDbRep MinTimestamp
2018.03.11 17:03:26 1: Timeout for DbRep_getMinTs reached, terminated process 3673
2018.03.11 17:03:26 1: DbRep MyDbRep -> BlockingCall DbRep_getMinTs pid:3675 Timeout: process terminated
2018.03.11 17:03:31 1: Timeout for DbRep_getMinTs reached, terminated process 3675
2018.03.11 17:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 1370.
2018.03.11 17:03:31 1: DbRep MyDbRep -> BlockingCall pid: Timeout: process terminated
2018.03.11 17:04:05 1: Timeout for DbRep_getMinTs reached, terminated process 3705
2018.03.11 17:04:05 1: DbRep MyDbRep -> BlockingCall DbRep_getMinTs pid:3705 Timeout: process terminated
Internals:
DATABASE fhemdaten
DEF myDbLog
LASTCMD minTimestamp
NAME MyDbRep
NOTIFYDEV global,MyDbRep
NR 9
NTFY_ORDER 50-MyDbRep
ROLE Client
STATE disconnected
TYPE DbRep
UTF8 0
VERSION 7.14.3
HELPER:
DBLOGDEVICE myDbLog
Helper:
DBLOG:
errortext:
myDbLog:
TIME 1520784245.61213
VALUE Timeout
state:
myDbLog:
TIME 1520784245.61213
VALUE disconnected
READINGS:
2018-03-11 17:04:05 errortext Timeout: process terminated
2018-03-11 17:04:05 state disconnected
dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf .*:.*
MODE asynchronous
MODEL POSTGRESQL
NAME myDbLog
NR 6
NTFY_ORDER 50-myDbLog
PID 1488
REGEXP .*:.*
STATE connected
TYPE DbLog
VERSION 3.8.9
dbconn Pg:database=fhemdaten;host=localhost
dbuser fhem
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
DBLOG:
state:
myDbLog:
TIME 1520784206.43397
VALUE connected
READINGS:
2018-03-11 17:06:12 CacheUsage 20
2018-03-11 17:05:56 NextSync 2018-03-11 17:06:26 or if CacheUsage 500 reached
2018-02-28 23:18:20 countCurrent 967
2018-03-11 17:01:38 countHistory 27924284
2018-03-11 17:05:56 state connected
cache:
index 358
Attributes:
allowDeletion 1
timestamp_begin 2017-12-31 23:56:46
verbose 5
Zitat
Kann es sein dass der Timeout etwas zu kurz gesetzt ist?
Auf der Konsole dauert die Abfrage meines ältesten Datensatzes ca 14 Sekunden.
Zitat von: DS_Starter am 11 März 2018, 17:41:09
So, ist im ersten Beitrag. HAbe den Timeout für diese Spezialfunktion auf 90 Sek. erhöht. Sollte jetzt auch bei dir passen und genug Luft sein.
2018.03.17 15:58:21 1: PERL WARNING: Use of uninitialized value $dn in substr at ./FHEM/93_DbLog.pm line 3739.
2018.03.17 15:58:21 1: PERL WARNING: Use of uninitialized value $dt in substr at ./FHEM/93_DbLog.pm line 3740.
2018.03.17 15:58:21 1: PERL WARNING: Use of uninitialized value $evt in substr at ./FHEM/93_DbLog.pm line 3741.
2018.03.17 15:58:21 1: PERL WARNING: Use of uninitialized value $rd in substr at ./FHEM/93_DbLog.pm line 3742.
ZitatMit den von Dir gemachten Angaben hat das nicht ganz geklappt. Der Wert war OK, aber die Unit wurde bei allen Einträgen auf 2 gesetzt
ZitatAber die Commandref solltet Du dann auch noch anpassen, da ist der gleiche Fehler drin.Hast recht ... habe es geändert und eingecheckt.
select Device, reading, count(0) AS `countA` from history
where ( TIMESTAMP > (now() - interval 2 day)) group by DEVICE, READING
order by countA desc, DEVICE limit 50;
ZitatWenn ich mit DbRep die maxValue in die DB schreibt, schreibt er dort keine "0" Values, sondern nur die von den Tagen mit Values >0Hast nichts übersehen ... das war ein Bug den ich mit V7.14.8 (im ersten Beitrag) gefixt habe. Die V checke ich heute noch ein, aber vllt. magst du es schon testen.
ZitatVielleicht wäre ein Überblick über die häufigsten Logeinträge ein interessantes Feature für dieses Modul?Ja, ich habe die Idee ein set zu definieren, z.B. "sqlSpecial".
Zitat von: DS_Starter am 21 März 2018, 21:15:56Bitte entschuldige, da ich erst am 19. ein Update über den offiziellen Weg bekommen habe, dachte ich, das sei dort schon enthalten.
Die V checke ich heute noch ein, aber vllt. magst du es schon testen.
Zitat von: DS_Starter am 21 März 2018, 21:15:56So ähnlich waren meine Gedanken auch... eventuell könnte man dort dann sogar im Ergebnis gewisse Dinge zukünftig "anklickbar" machen, ähnlich wie in DOIF,
Ja, ich habe die Idee ein set zu definieren, z.B. "sqlSpecial".
{ return "select value from ( ( select *, TIMESTAMPDIFF(SECOND, '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."', timestamp) as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."' order by timestamp asc limit 1 ) union ( select *, TIMESTAMPDIFF(SECOND, timestamp, '2018-04-10 09:45:00') as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp < '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."' order by timestamp desc limit 1 ) ) x order by diff limit 1"}
{ fhem("set <rep> sqlCmd select value from ( ( select *, TIMESTAMPDIFF(SECOND, '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."', timestamp) as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."' order by timestamp asc limit 1 ) union ( select *, TIMESTAMPDIFF(SECOND, timestamp, '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."') as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp < '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."' order by timestamp desc limit 1 ) ) x order by diff limit 1")}
{fhem("get Rep.LogDB1 dbValue select device,count(*) from history where timestamp > '2018-04-01' group by device")}
get Rep.LogDB1 dbValue select device,count(*) from history where timestamp > '2018-04-01' group by device"
{CommandGet(undef,"Rep.LogDB1 dbValue select device,count(*) from history where timestamp > '2018-04-01' group by device")}
###########################################
# dbvalue
###########################################
sub dbval ($$) {
my ($name,$cmd) = @_;
my $ret = CommandGet(undef,"$name dbValue $cmd");
return $ret;
}
{dbval("Rep.LogDB1","select count(*) from history")}
my $ret = dbval("Rep.LogDB1","select count(*) from history")
order by abs(timestampaSoll-timestamp)
, wo das Ergebnis für jeden Datensatz ausgerechnet werden (also mit füll Tablet scan)attr VorlaufGesamt stateFormat {\
sprintf "%4.1f° ".\
"(%4.1f°) ", \
ReadingsNum($name,"temperature",undef),\
DbReadingsVal("dbRep","$name:temperature",strftime("%Y-%m-%d %H:%M:%S", localtime(time-60*10)),"-100");;\
}
define Rep.HT_Tagesenergieaufnahme DbRep DBLogging
attr Rep.HT_Tagesenergieaufnahme aggregation day
attr Rep.HT_Tagesenergieaufnahme device HT_Tagesenergieaufnahme
attr Rep.HT_Tagesenergieaufnahme reading state
attr Rep.HT_Tagesenergieaufnahme showproctime 1
attr Rep.HT_Tagesenergieaufnahme timestamp_begin previous_day_begin
attr Rep.HT_Tagesenergieaufnahme timestamp_end previous_day_end
define Vortag.Rep.HT_Tagesenergieaufnahme_max at *00:02:40 set Rep.HT_Tagesenergieaufnahme maxValue writeToDB
define N.Vortag.Rep.HT_Tagesenergieaufnahme_max notify Rep.HT_Tagesenergieaufnahme:(\d).*HT_Tagesenergieaufnahme__state__MAX.* {fhem("set Tagesgesamtenergieaufnahme_HT $EVTPART1 ;; set Rep.HT_Tagesenergieaufnahme sqlCmd UPDATE history SET timestamp = timestamp, device = 'Tagesgesamtenergieaufnahme_HT', reading = 'state' where TIMESTAMP >= §timestamp_begin§ and TIMESTAMP <= §timestamp_end§ and device = 'HT_Tagesenergieaufnahme' and reading = 'max_day_state'")}
Zitat
Das führt zu folgendem Fehler:
DbRep Rep.HT_Tagesenergieaufnahme - ERROR - DBD::mysql::st execute failed: Unknown column 'timestamp_begin' in 'where clause' at ./FHEM/93_DbRep.pm line 5267
define Rep.Monatskosten.HNT_Energie DbRep DBLogging
attr Rep.Monatskosten.HNT_Energie aggregation no
attr Rep.Monatskosten.HNT_Energie device Tageskosten.HNT_Energie
attr Rep.Monatskosten.HNT_Energie reading state
attr Rep.Monatskosten.HNT_Energie showproctime 1
attr Rep.Monatskosten.HNT_Energie timestamp_begin current_month_begin
define Calc.Rep.Monatskosten.HNT_Energie at *00:03:00 set Rep.Monatskosten.HNT_Energie sumValue writeToDB
ZitatDiese Meldung macht m.M.n. in dieser Situation keinen Sinn.Da hast du Recht.
Internals:
DATABASE fhem
DEF DbLog
LASTCMD delEntries
MODEL Client
NAME DbLogRep
NOTIFYDEV global,DbLogRep
NR 108
NTFY_ORDER 50-DbLogRep
ROLE Client
STATE error
TYPE DbRep
UTF8 0
VERSION 7.15.2
HELPER:
DBLOGDEVICE DbLog
CV:
aggregation no
aggsec 1
destr 2018-01-13
dsstr 1970-01-01
epoch_seconds_end 1515870764
mestr 01
msstr 01
testr 20:12:44
tsstr 01:00:00
wdadd 345600
yestr 2018
ysstr 1970
READINGS:
2018-04-23 21:13:37 errortext DBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction at ./FHEM/93_DbRep.pm line 3669.
2018-04-23 21:13:37 state error
dbloghash:
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.*|Garagensensor:Temperatur:.*|Heizungskeller:Gasverbrauch:.*|Heizungskeller:Wasser:.*|DECT1:temperature.*|Sonoff_pow1:.*|Sonoff_TH10a:myTemperature.*|Sonoff_TH10a:mypower.*|BresserTemeo_1:temperature.*|SensorHydrAbgleich.*:.*Temperatur.*|DECT1:power.*)
MODE synchronous
MODEL MYSQL
NAME DbLog
NR 20
NTFY_ORDER 50-DbLog
PID 32119
REGEXP (sysmon:.*|Stromzaehler:.*|Viessmann:.*NurGestern.*|Viessmann:.*temperatur.*|Garagensensor:Temperatur:.*|Heizungskeller:Gasverbrauch:.*|Heizungskeller:Wasser:.*|DECT1:temperature.*|Sonoff_pow1:.*|Sonoff_TH10a:myTemperature.*|Sonoff_TH10a:mypower.*|BresserTemeo_1:temperature.*|SensorHydrAbgleich.*:.*Temperatur.*|DECT1:power.*)
STATE connected
TYPE DbLog
UTF8 0
VERSION 3.10.6
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-04-15 13:59:53 lastRowsDeleted 800717
2018-04-23 21:16:15 state connected
cache:
index 0
Attributes:
allowDeletion 1
timeOlderThan 8640000
2018.04.23 21:13:37 2: DbRep DbLogRep - DBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction at ./FHEM/93_DbRep.pm line 3669.
ZitatDBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction
define Rep.NT_365d_Energieaufnahme DbRep DBLogging
attr Rep.NT_365d_Energieaufnahme aggregation no
attr Rep.NT_365d_Energieaufnahme device Tagesgesamtenergieaufnahme_NT
attr Rep.NT_365d_Energieaufnahme reading state
attr Rep.NT_365d_Energieaufnahme showproctime 1
attr Rep.NT_365d_Energieaufnahme timeDiffToNow d:365
attr Rep.NT_365d_Energieaufnahme verbose 5
define Calc.Rep.NT_365d_Energieaufnahme at *00:02:56 set Rep.NT_365d_Energieaufnahme sumValue writeToDB
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - -------- New selection ---------
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - Command: sumValue writeToDB
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - timeDiffToNow - day: 365, hour: , min: , sec:
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - Time difference to current time for calculating Timestamp begin: 31536001 sec
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - Timestamp begin epocheseconds: 1493021749
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - Timestamp begin human readable: 2017-04-24 10:15:49
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - Timestamp end epocheseconds: 1524557750
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - Timestamp end human readable: 2018-04-24 10:15:50
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - weekday of start for selection: Mo -> wdadd: 604800
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - Aggregation: no
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - IsTimeSet: 1, IsAggrSet: 0
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - Timestamp-Array:
no_aggregation#2017-04-24 10:15:49#2018-04-24 10:15:50
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - Device specifications use for select: Tagesgesamtenergieaufnahme_NT
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - Reading specification use for select: state
2018.04.24 10:15:50 4: DbRep Rep.NT_365d_Energieaufnahme - SQL execute: SELECT SUM(VALUE) FROM history where DEVICE = 'Tagesgesamtenergieaufnahme_NT' AND READING = 'state' AND TIMESTAMP >= '2017-04-24 10:15:49' AND TIMESTAMP <= '2018-04-24 10:15:50' ;
2018.04.24 10:15:50 5: DbRep Rep.NT_365d_Energieaufnahme - SQL result: 0.2
2018.04.24 10:15:51 5: DbRep Rep.NT_365d_Energieaufnahme -> Primary Key used in fhem.history: none
2018.04.24 10:15:51 5: DbRep Rep.NT_365d_Energieaufnahme -> Primary Key used in fhem.current: DEVICE,READING
2018.04.24 10:15:51 5: DbRep Rep.NT_365d_Energieaufnahme - data prepared to db write:
2018.04.24 10:15:51 5: DbRep Rep.NT_365d_Energieaufnahme - 2017-04-24 23:59:58|Tagesgesamtenergieaufnahme_NT|dummy|calculated|sum_no_state|0.2000|
2018.04.24 10:15:51 3: DbRep Rep.NT_365d_Energieaufnahme - number of lines updated in "DBLogging": 1
2018.04.24 10:15:51 3: DbRep Rep.NT_365d_Energieaufnahme - number of lines inserted into "DBLogging": 0
define N.Rep.NT_365d_Energieaufnahme_sum notify Rep.NT_365d_Energieaufnahme:(\d).*Tagesgesamtenergieaufnahme_NT__state__SUM__no_aggregation {fhem("set NT_365d_Energieaufnahme $EVTPART1")}
select * from history where device = 'Tagesgesamtenergieaufnahme_NT';
WARNING - old process nnnn will be killed now to start a new BlockingCall
ZitatNoch eine Frage: Ist die writeToDB-Opperation bei Eintritt in die Exitfunktion abgeschlossen, bzw. würde in der Exitfunktion eine Operation auf einer asynchronen DB-Instanz erst nach dem writeToDB-Zugriff ausgeführt werden?
Zitat
Ich bekomme im Ablauf von mehreren aufeinander abfolgenden DB-Operation mit dbrep mitunter:
Code: [Auswählen]
WARNING - old process nnnn will be killed now to start a new BlockingCall
Kann das zu Datenverlust führen?
Zitat
Das Problem ist letztendlich hausgemacht: Ich muss über ein identisches Device/reading mit gleicher Aggregation aber unterschiedlichen Zeitbereichen in der DB unterscheidbare Einträge erzeugen, Beispiel: Monatsertrag und Vergleichsmonatsertrag.
CREATE TABLE `history` (
`TIMESTAMP` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`DEVICE` VARCHAR(64) NOT NULL DEFAULT '',
`TYPE` VARCHAR(32) NULL DEFAULT NULL,
`EVENT` VARCHAR(512) NULL DEFAULT NULL,
`READING` VARCHAR(64) NOT NULL DEFAULT '',
`VALUE` VARCHAR(32) NULL DEFAULT NULL,
`UNIT` VARCHAR(32) NULL DEFAULT NULL,
`Longterm` TINYINT(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`DEVICE`, `READING`, `TIMESTAMP`, `Longterm`),
INDEX `Reading_Time_Idx` (`READING`, `TIMESTAMP`) USING BTREE
)
COLLATE='latin1_swedish_ci'
PARTITION BY RANGE (WEEKDAY(timestamp))
SUBPARTITION BY HASH (Longterm)
(PARTITION mon VALUES LESS THAN (1)
(SUBPARTITION monNolong ENGINE = Aria,
SUBPARTITION monLong ENGINE = Aria),
PARTITION tue VALUES LESS THAN (2)
(SUBPARTITION tueNolong ENGINE = Aria,
SUBPARTITION tueLong ENGINE = Aria),
PARTITION wed VALUES LESS THAN (3)
(SUBPARTITION wedNolong ENGINE = Aria,
SUBPARTITION wedLong ENGINE = Aria),
PARTITION thu VALUES LESS THAN (4)
(SUBPARTITION thuNolong ENGINE = Aria,
SUBPARTITION thuLong ENGINE = Aria),
PARTITION fri VALUES LESS THAN (5)
(SUBPARTITION friNolong ENGINE = Aria,
SUBPARTITION friLong ENGINE = Aria),
PARTITION sat VALUES LESS THAN (6)
(SUBPARTITION satNolong ENGINE = Aria,
SUBPARTITION satLong ENGINE = Aria),
PARTITION sun VALUES LESS THAN (7)
(SUBPARTITION sunNolong ENGINE = Aria,
SUBPARTITION sunLong ENGINE = Aria)) ;
ALTER TABLE history TRUNCATE PARTITION monNoLong;
DBD::SQLite::db sqlite_backup_from_file failed: sqlite_backup_from_file failed with error attempt to write a readonly database at ./FHEM/93_DbRep.pm line 6902
ZitatVielleicht kann man ja tatsächlich nur ein restore auf die DB machen, von der auch das Backup erfolgt istNein, diese Beschränkung gibt es nicht. Aber nimm doch nicht schon eine bestehende DB auf deinem Testsystem, sondern lege dir dort eine neue Datenbank ganz nach Vorschrift mit dem Namen der alten DB (sicherheitshalber) an als wolltest du anfangen mit loggen und setzte dir dann im DbLog DEF den Regex so dass nichts reinläuft und connecte dir dann das DbRep-Device. Dann sollte es kein Problem mit dem Restore geben. Achte darauf das user/group fhem/dialout Schreibrechte besitzen.
Zitatwie kann ich dann aber meinen Fall lösen, aus einem Db Backup nur bestimmte readings zu exportieren?Wenn die DB läuft beschränkste du mit dem Attribut "reading" auf das was du willst und machst dann einen set ... exportToFile.
defmod RestoreDbWhng3 DbRep dblog_test_whng3
attr RestoreDbWhng3 dumpDirLocal /opt/fhem/db_recover_whng3/
attr RestoreDbWhng3 dumpFilesKeep 6
attr RestoreDbWhng3 executeAfterProc { fhem("set dblog_test_whng3 reopen");;;;my $duration = ReadingsVal("RestoreDbWhng3","background_processing_time"," ");;;; exmail('test1@xxxxx.de','Restore DB Ende','Restore DB wurde nach ' .$duration. ' sec. beendet') }
attr RestoreDbWhng3 executeBeforeProc { fhem("set dblog_test_whng3 reopen 7200");;;;exmail('test1@xxxxx.de','Restore DB Start','Restore DB wurde gestartet') }
attr RestoreDbWhng3 room DB,Server
attr RestoreDbWhng3 showproctime 1
attr RestoreDbWhng3 verbose 5
setstate RestoreDbWhng3 error
setstate RestoreDbWhng3 2018-06-23 12:00:09 errortext DBD::SQLite::db sqlite_backup_from_file failed: sqlite_backup_from_file failed with error attempt to write a readonly database at ./FHEM/93_DbRep.pm line 6902.\
setstate RestoreDbWhng3 2018-06-23 12:00:09 state error
drwxr-xr-x 2 fhem dialout 4096 Jun 23 12:00 db_recover_whng3
-rwxrwxrwx 1 fhem dialout 632127488 Jun 22 18:40 fhem_2018_06_07_00_39.sqlitebkp
-rw-rw-rw- 1 fhem dialout 4096 Jun 23 11:58 fhem.db
-rwxrwxrwx 1 fhem dialout 168099840 Jun 22 20:28 fhem.db.saved
defmod Rep.SQLite.Backup DbRep LogSQLITE
attr Rep.SQLite.Backup allowDeletion 1
attr Rep.SQLite.Backup devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.SQLite.Backup disable 0
attr Rep.SQLite.Backup dumpCompress 1
attr Rep.SQLite.Backup dumpDirLocal /sds1/backup/dumps_FHEM
attr Rep.SQLite.Backup dumpFilesKeep 1
attr Rep.SQLite.Backup event-on-update-reading state
attr Rep.SQLite.Backup ftpDir /ftp
attr Rep.SQLite.Backup ftpDumpFilesKeep 1
attr Rep.SQLite.Backup ftpPwd ftpftp1
attr Rep.SQLite.Backup ftpServer sds1.myds.me
attr Rep.SQLite.Backup ftpUse 0
attr Rep.SQLite.Backup ftpUser ftpuser
attr Rep.SQLite.Backup optimizeTablesBeforeDump 0
attr Rep.SQLite.Backup room DbLog
attr Rep.SQLite.Backup showproctime 1
attr Rep.SQLite.Backup verbose 3
setstate Rep.SQLite.Backup Database backup finished
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 DumpFileCreated /sds1/backup/dumps_FHEM/fhem_2018_06_22_17_25.sqlitebkp.gzip
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 DumpFileCreatedSize 485.18 MB
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 DumpFilesDeleted fhem_2018_06_21_17_25.sqlitebkp.gzip
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 DumpRowsCurrent n.a.
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 DumpRowsHistory n.a.
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 background_processing_time 141.2785
setstate Rep.SQLite.Backup 2018-06-22 17:27:21 state Database backup finished
sudo chmod 664 /opt/fhem1.db
stehen also auf: -rw-rw-r-- fhem dialout
defmod Rep.SQLite1.Restore DbRep LogSQLITE1
attr Rep.SQLite1.Restore aggregation no
attr Rep.SQLite1.Restore allowDeletion 1
attr Rep.SQLite1.Restore devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.SQLite1.Restore disable 0
attr Rep.SQLite1.Restore dumpDirLocal /sds1/backup/dumps_FHEM
attr Rep.SQLite1.Restore dumpFilesKeep 1
attr Rep.SQLite1.Restore event-on-update-reading state
attr Rep.SQLite1.Restore executeAfterProc set LogSQLITE1 reopen
attr Rep.SQLite1.Restore executeBeforeProc set LogSQLITE1 reopen 3600
attr Rep.SQLite1.Restore room DbLog
attr Rep.SQLite1.Restore showproctime 1
attr Rep.SQLite1.Restore verbose 3
cp /sds1/backup/dumps_FHEM/fhem_2018_06_22_17_25.sqlitebkp.gzip /sds1/backup/dumps_FHEM/fhem1_2018_06_22_17_25.sqlitebkp.gzip
2018.06.23 15:21:40.137 3: DbRep Rep.SQLite1.Restore - ################################################################
2018.06.23 15:21:40.138 3: DbRep Rep.SQLite1.Restore - ### New database Restore/Recovery ###
2018.06.23 15:21:40.139 3: DbRep Rep.SQLite1.Restore - ################################################################
2018.06.23 15:21:40.140 3: DbRep Rep.SQLite1.Restore - execute command before restore: 'set LogSQLITE1 reopen 3600'
2018.06.23 15:21:40.144 2: DbLog LogSQLITE1: Connection closed until 16:21:40 (3600 seconds).
2018.06.23 15:21:40.166 3: DbRep Rep.SQLite1.Restore - uncompress file /sds1/backup/dumps_FHEM/fhem1_2018_06_22_17_25.sqlitebkp.gzip
2018.06.23 15:22:34.630 3: DbRep Rep.SQLite1.Restore - file uncompressed to output file: /sds1/backup/dumps_FHEM/fhem1_2018_06_22_17_25.sqlitebkp
2018.06.23 15:22:34.645 3: DbRep Rep.SQLite1.Restore - Size of uncompressed file: 3236.36 MB
2018.06.23 15:22:34.646 3: DbRep Rep.SQLite1.Restore - Starting restore of database 'fhem1.db'
2018.06.23 15:29:09.218 3: DbRep Rep.SQLite1.Restore - Restore of /sds1/backup/dumps_FHEM/fhem1_2018_06_22_17_25.sqlitebkp into 'fhem1.db' finished - total time used: 449 seconds.
2018.06.23 15:29:09.227 3: DbLog LogSQLITE1: Reopen requested.
2018.06.23 15:29:09.228 3: DbLog LogSQLITE1 - Creating Push-Handle to database SQLite:dbname=/opt/fhem1.db with user
2018.06.23 15:29:09.240 3: DbLog LogSQLITE1 - Push-Handle to db SQLite:dbname=/opt/fhem1.db created
2018.06.23 15:29:09.249 2: DbRep Rep.SQLite1.Restore - command message after restore: "Reopen executed."
2018.06.23 15:29:09.254 3: DbRep Rep.SQLite1.Restore - Database restore finished successfully.
Zitat
2
down vote
In Linux command shell, I did:
chmod 777 <db_folder>
Where contains the database file.
It works. Now I can access my database and make insert queries.
ZitatAuf dem System gibt es zwei defines für DbLog (unterschiedliche Datenbanken). Könnte das noch ein Problem sein?Nein, kann ich mir nicht vorstellen. Das sind andere Handles.
ZitatIch hätte jetzt kein Problem, Dir das Backup der Datenbank auf Dropbox hochzuladen. Also wenn Du die Zeit wirklich spendieren möchtest, kannst Du mir den Dropbox Link schicken. Ich vertraue Dir, dass die Daten in Deiner Hand bleiben.Die Daten werde ich nach dem Test natürlich wieder löschen. Einen Versuch wäre es wert.
DBD::SQLite::db sqlite_backup_from_file failed: sqlite_backup_from_file failed with error attempt to write a readonly database at ./FHEM/93_DbRep.pm line 6902.\
aufgetreten ist, für einen Test haben möchtest, kann ich es Dir schicken.ZitatIch schließe daraus, dass DbRep restore mit der korrupten DB ein Problem hatte und es deshalb nicht auf dem direkten Weg, wie wir ihn heute Nachmittag diskutiert haben, funktioniert hat.Nicht ganz. DbRep verwendet eine von SQLite bereit gestellte Funktion zum Restore. Die meldet diesen Fehler und DbRep schiebt ihn durch.
set DBReporting sqlCmd select MAX(CAST(VALUE AS double)) from history where device = 'LaCrosse_3E' and READING = 'temperature' and TIMESTAMP like '2018-05%';
define sun_riseSet_timer at *03:00:00 { my $s = sunrise("REAL");; fhem("set Sonnenaufgang $s");; $s = sunset("REAL");; fhem("set Sonnenuntergang $s");; }
device = LaCrosse_3E
reading = temperature
timestamp_begin = current_month_begin
timestamp_end = current_month_end
aggregation = month
set <DbRep> maxValue writeToDb
aggregation = day
device = LaCrosse_3E
reading = temperature
timestamp_begin = 2018-07-07 00:00:00
timestamp_end = 2018-07-08 00:00:00
ZitatJa, so etwas ähnliches mache ich auch. Ich benutze mehrere DbReps um die Summenwerte der Energieverbräuche/Erzeugung zu ermitteln und per Readingsgroup darzustellen.
Mein Gedanke, oder mein wunsch ist eigentlich für viele verschiedene Devices eine Min/Max/AVG Temperatur für Tag/Monat abzuspeichern.
Ebenso für Stromverbrauch einen Max...
ZitatJa, genau. Wenn du das machst, wäre für DbLog von vornherein klar, dass es momentan keine Schreibaktion auf der DB ausführen soll.
Zu einem anderen regelmäßigen Zeitpunkt in der Nacht, wenn ich Einträge älter als 31 bzw. 10 Tage weglösche ändert sich der Zustand in 'Commit already running - resync at NextSync'. Das könnte ich wahrscheinlich vermeiden, wenn ich vor den Löschaktionen auch ein reopen xxxxsec einfügen würde.
ZitatWas mich aber eigentlich verunsichert ist, dass zu beliebigen Zeitpunkten die DB immer mal wieder in den Zustand 'Commit already running - resync at NextSync' geht.....Woher kommt der Zustand 'Commit already running - resync at NextSync' , ist das 'gefährlich' oder gibt es eine Abhilfe dafür?Grundsätzlich ist die Meldung 'Commit already running - resync at NextSync' erstmal nichts gefährliches.
define Energy.Tag.Kuehlschrank dummy
attr Energy.Tag.Kuehlschrank room Energy
define N.Energy.Tag.Kuehlschrank notify DBReporting:(\d).*Grid.* { fhem "setreading Energy.Tag.Kuehlschrank".(split(":",$EVTPART0))[0]." $EVTPART1"}
attr N.Energy.Tag.Kuehlschrank room Energy
set DBReporting sqlCmd select MAX(VALUE) from history where DEVICE = "FBDECT_fbahahttp_08761_0044555" AND TIMESTAMP like "2018-07-09%" AND READING = "energy";
DBReporting:.*SqlResultRow_1.* { fhem "setreading Energy.Tag.Kuehlschrank".(split(":",$EVTPART0))[0]." $EVTPART1"}
DBReporting:SqlResultRow_1.* { fhem "setreading Energy.Tag.Kuehlschrank".(split(":",$EVTPART0))[0]." $EVTPART1"}
DBReporting:.*SqlResultRow_1.* { fhem "setreading Energy.Tag.Kuehlschrank test test"}
DBReporting:SqlResultRow_1.* { fhem "setreading Energy.Tag.Kuehlschrank ".(split(":",$EVTPART0))[0]." $EVTPART1"}
define Temperatur.Tag.berechnen at *02:00:00 { fhem "set DBReporting sqlCmd select MIN(CAST(VALUE as double)) from history where DEVICE = """LaCrosse_3E""" AND TIMESTAMP like "$year"-"$month"-"$mday-1"% AND READING = """temperature""";"}
set DBReporting sqlCmd select MIN(CAST(VALUE as double)) from history where DEVICE = "LaCrosse_3E" AND TIMESTAMP like "2018-07-05%" AND READING = "temperature";
device=LaCrosse_3E
reading=temperature
aggregation=day
timestamp_begin=previous_day_begin
timestamp_end=previous_day_end
set dbrep minValue oder max/avgValue
set dbrep minValue writeToDB (oder max/avgValue)
define at.Energy.Tag.Kuehlschrank at *15:52:00 attr DBReporting_LaCrosse device LaCrosse_3E;;\
attr DBReporting_LaCrosse reading temperature;;\
attr DBReporting_LaCrosse aggregation day;;\
attr DBReporting_LaCrosse timestamp_begin previous_day_begin;;\
attr DBReporting_LaCrosse timestamp_end previous_day_end;;\
set DBReporting_LaCrosse minValue writeToDB;;\
set DBReporting_LaCrosse mmaxValue writeToDB;;\
set DBReporting_LaCrosse avgValue writeToDB
attr at.Energy.Tag.Kuehlschrank room Energy
define at.Energy.Tag.Kuehlschrank1 at *11:51:00 attr DBReporting_LaCrosse device LaCrosse_3E;;\
attr DBReporting_LaCrosse reading temperature;;\
attr DBReporting_LaCrosse aggregation day;;\
attr DBReporting_LaCrosse timestamp_begin previous_day_begin;;\
attr DBReporting_LaCrosse timestamp_end previous_day_end;;\
set DBReporting_LaCrosse averageValue writeToDB\
attr at.Energy.Tag.Kuehlschrank1 room Energy
2018-07-16__LaCrosse_3E__temperature__AVERAGE__2018-07-16 22.4021 2018-07-17 11:51:00
state done 2018-07-17 11:51:00
2018-07-17 14:57:36 DbRep DBReporting_LaCrosse running
2018-07-17 14:57:36 DbRep DBReporting_LaCrosse 2018-07-16__LaCrosse_3E__temperature__AVERAGE__2018-07-16: 22.4021
2018-07-17 14:57:36 DbRep DBReporting_LaCrosse done
2018-07-17 14:58:02 Global global ATTR DBReporting verbose 5
2018-07-17 14:58:14 DbRep DBReporting_LaCrosse running
2018-07-17 14:58:14 DbRep DBReporting_LaCrosse 2018-07-16__LaCrosse_3E__temperature__AVERAGE__2018-07-16: 22.4021
2018-07-17 14:58:14 DbRep DBReporting_LaCrosse done
2018.07.17 15:28:53.029 4: DbRep Rep.SMAEM.Bezug - -------- New selection ---------
2018.07.17 15:28:53.030 4: DbRep Rep.SMAEM.Bezug - Command: averageValue writeToDB
2018.07.17 15:28:53.032 4: DbRep Rep.SMAEM.Bezug - Timestamp begin human readable: 2018-07-16 00:00:00
2018.07.17 15:28:53.033 4: DbRep Rep.SMAEM.Bezug - Timestamp end human readable: 2018-07-16 23:59:59
2018.07.17 15:28:53.034 4: DbRep Rep.SMAEM.Bezug - Aggregation: no
2018.07.17 15:28:53.035 4: DbRep Rep.SMAEM.Bezug - averageValue calculation sceme: avgArithmeticMean
2018.07.17 15:28:53.054 4: DbRep Rep.SMAEM.Bezug - SQL execute: SELECT AVG(VALUE) FROM history where DEVICE = 'SMA_Energymeter' AND READING = 'Bezug_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2018-07-16 00:00:00' AND TIMESTAMP <= '2018-07-16 23:59:59' ;
2018.07.17 15:28:53.069 4: DbRep Rep.SMAEM.Bezug - data prepared to db write:
2018.07.17 15:28:53.070 4: DbRep Rep.SMAEM.Bezug -
2018-07-16 23:59:58|SMA_Energymeter|SMAEM|calculated|avgam_no_Bezug_WirkP_Zaehler_Diff|0.0019|
2018.07.17 15:28:53.223 3: DbRep Rep.SMAEM.Bezug - number of lines updated in "LogDB": 0
2018.07.17 15:28:53.224 3: DbRep Rep.SMAEM.Bezug - number of lines inserted into "LogDB": 1
2018.07.17 14:57:08 2: ESPEasy espBridge: httpReq failed: 192.168.2.134 NodeMCU_2 'neopixel 85,0,60,0'
2018.07.17 14:57:28 3: ESPEasy: set ESPEasy_NodeMCU_2 neopixel 85 0 60 0
2018.07.17 14:57:31 2: ESPEasy espBridge: httpReq failed: 192.168.2.134 NodeMCU_2 'neopixel 85,0,60,0'
2018.07.17 14:58:05 3: ESPEasy: set ESPEasy_NodeMCU_2 neopixel 85 0 60 0
2018.07.17 14:58:08 2: ESPEasy espBridge: httpReq failed: 192.168.2.134 NodeMCU_2 'neopixel 85,0,60,0'
2018.07.17 14:58:29 3: ESPEasy: set ESPEasy_NodeMCU_2 neopixel 85 0 60 0
2018.07.17 14:58:32 2: ESPEasy espBridge: httpReq failed: 192.168.2.134 NodeMCU_2 'neopixel 85,0,60,0'
2018.07.17 14:59:06 3: ESPEasy: set ESPEasy_NodeMCU_2 neopixel 85 0 60 0
set DBReporting_LaCrosse averageValue writeToDB
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse - -------- New selection ---------
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse - Aggregation: day
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse - Command: averageValue
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse - Timestamp begin human readable: 2018-07-17 00:00:00
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse - Timestamp end human readable: 2018-07-17 23:59:59
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse -> Start BlockingCall averval_DoParse
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse - SQL execute: SELECT AVG(VALUE) FROM history where DEVICE = 'LaCrosse_3E' AND READING = 'temperature' AND TIMESTAMP >= '2018-07-17 00:00:00' AND TIMESTAMP < '2018-07-17 23:59:59' ;
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse -> BlockingCall averval_DoParse finished
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse -> Start BlockingCall averval_ParseDone
2018.07.18 14:27:04 4: DbRep DBReporting_LaCrosse -> BlockingCall averval_ParseDone finished
1: DbRep rep.maxday -> BlockingCall DbRep_getMinTs pid:2916 Timeout: process terminated
sub DbRep_firstconnect($) {
my ($hash) = @_;
my $name = $hash->{NAME};
my $to = "120";
2018.09.19 10:48:51 3: DbRep rep.samplefill - Connectiontest to database mysql:database=fhem;mysql_socket=/var/run/mysqld/mysqld.sock with user fhemuser
2018.09.19 10:49:34 4: DbRep rep.samplefill - Connectiontest to db mysql:database=fhem;mysql_socket=/var/run/mysqld/mysqld.sock successful
time echo "select * from history limit 1;" | mysql -pXXXX fhem
TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT datatype
2018-01-09 10:49:36 sql DBLOG CacheUsage: 0 CacheUsage 0 0
real 0m0,029s
user 0m0,016s
sys 0m0,012s
invalid timestamp "0000-00-00 00:00:00" found in database - please delete it
Zitat von: DS_Starter am 24 September 2018, 15:15:03
Aber ich würde in dem Fall auch die Anzahl der möglichen gleichzeitigen Blockingcalls im fhem begrenzen. Dann dürfte es kein spürbares Problem geben.
2018.10.09 19:35:56.121 4: DbRep Rep.CPU - -------- New selection ---------
2018.10.09 19:35:56.121 4: DbRep Rep.CPU - Command: countEntries history
2018.10.09 19:35:56.122 4: DbRep Rep.CPU - Timestamp begin human readable: 2016-04-10 07:00:00
2018.10.09 19:35:56.122 4: DbRep Rep.CPU - Time difference to current time for calculating Timestamp end: 1 sec
2018.10.09 19:35:56.123 4: DbRep Rep.CPU - Timestamp end human readable: 2018-10-09 19:35:55
2018.10.09 19:35:56.123 4: DbRep Rep.CPU - Aggregation: no
2018.10.09 19:35:56.137 4: DbRep Rep.CPU - SQL execute: SELECT COUNT(*) FROM history where DEVICE = 'sysmon' AND READING = 'stat_cpu_percent' AND TIMESTAMP >= '2016-04-10 07:00:00' AND TIMESTAMP <= '2018-10-09 19:35:55' ;
018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - -------- New selection ---------
2018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - Command: countEntries history
2018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - Timestamp begin human readable: 2018-10-06 18:51:10
2018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - Time difference to current time for calculating Timestamp end: 86400 sec
2018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - Timestamp end human readable: 2018-10-09 07:05:29
2018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - Aggregation: no
2018.10.10 07:05:29 4: DbRep db_g8_var_Z1 - SQL execute: SELECT COUNT(*) FROM history where DEVICE = 'var_Z1' AND TIMESTAMP >= '2018-10-06 18:51:10' AND TIMESTAMP <= '2018-10-09 07:05:29' ;
Internals:
CFGFN
DATABASE fhem
DEF myDbLog
LASTCMD countEntries history
MODEL Client
NAME db_g8_var_Z1
NOTIFYDEV global,db_g8_var_Z1
NR 627
NTFY_ORDER 50-db_g8_var_Z1
ROLE Client
STATE done
TYPE DbRep
UTF8 0
VERSION 8.2.1
HELPER:
DBLOGDEVICE myDbLog
MINTS 2018-10-06 18:51:10
RDPFDEL .*
SQLHIST
CV:
aggregation no
aggsec 1
destr 2018-10-09
dsstr 2018-10-06
epoch_seconds_end 1539061529.34278
mestr 10
msstr 10
testr 07:05:29
tsstr 18:51:10
wdadd 172800
yestr 2018
ysstr 2018
READINGS:
2018-10-10 07:05:29 2018-10-06__var_Z1__/__COUNT_history__no_aggregation 1455
2018-10-10 06:59:12 __var_Z1__/__COUNT_history__no_aggregation 115242
2018-10-10 07:05:29 state done
2018-10-10 07:05:29 timeOlderThan_days 1
dbloghash:
CFGFN
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /etc/fhem/db.conf
DEF /etc/fhem/db.conf .*:.*
MODE synchronous
MODEL MYSQL
NAME myDbLog
NR 52
NTFY_ORDER 50-myDbLog
PID 11514
REGEXP .*:.*
STATE connected
TYPE DbLog
UTF8 0
VERSION 3.12.2
dbconn mysql:database=fhem;host=192.168.1.212;port=3306
dbuser fhemuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Helper:
DBLOG:
countCurrent:
myDbLog:
TIME 1539122581.47579
VALUE 1089
countHistory:
myDbLog:
TIME 1539122581.42609
VALUE 1639384
state:
myDbLog:
TIME 1539104596.32857
VALUE connected
READINGS:
2018-10-10 00:03:01 countCurrent 1089
2018-10-10 00:03:01 countHistory 1639384
2018-07-21 00:03:40 lastRowsDeleted 87785
2018-10-10 07:07:42 state connected
cache:
index 0
Attributes:
DbLogExclude .*
allowDeletion 0
device var_Z1
group DB-Delete-G8
readingPreventFromDel .*
room 50-DBRep
timeOlderThan 86400
userReadings timeOlderThan_days {AttrVal($NAME,"timeOlderThan","0") / 3600 / 24 ;}
userattr dbRepDel
verbose 4
HELPER:
DBLOGDEVICE myDbLog
MINTS 2018-10-06 18:51:10
set dbrep sqlCmd select TIMESTAMP from history order by TIMESTAMP limit 1;
set dbrep sqlCmd select TIMESTAMP from history limit 1;
select TIMESTAMP from history limit 1;
belässt oder eben die sichere Abfrage Zitat von: oldscout am 11 Oktober 2018, 06:55:42
set dbrep sqlCmd select TIMESTAMP from history limit 1; ergibt: auch den 6.10.18, im Workbench jedoch 23.3.18
set dbrep sqlCmd select TIMESTAMP from history order by timestamp limit 1;
ZitatHeute früh:
ich habe nochmal ein neues DBrep Device angelegt, gleiches device im Attribut, folgender Fehler kommt:
Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at ./FHEM/93_DbRep.pm line 1464.
Die bereits angelegten Devices mit DbRep funktionieren aber noch!!!
Ist das ev. die Ursache??
ZitatHabe eben auch nochmal ein bereits definiertes Device gecheckt:Das hängt mit der falschen Ermittlung des min timestamps zusammen.
Sobald timeOlderThan gesetzt ist, wird falsch gezählt, ist das Attribut gelöscht stimmt der Zähler mit Workbench überein.
ZitatNein, das sind zwei paar Schuhe.Danke.
Dieser Fehler kommt wenn das DbLog Device noch nicht geladen ist, aber schon dbrep. die startreihenfolge wird normalerweise durch die fhem.cfg vorgegeben. Ich weiss nicht wie configdb dies sicherstellt.
ZitatFrage nebenbei: wird die fhem.cfg noch benutzt obwohl fhem auf DBLog umgestellt ist?Dblog hat damit nichts zu tun. du meinst sicherlich configdb. dann wird die fhem.cfg nicht mehr genutzt.
ZitatHeiko, reicht es nicht, beim Start der Aktion den ältesten Datensatz zu ermitteln, und nicht schon beim Start von FHEM
Zitatsobald das device attribut gesetzt ....
Internals:
CFGFN
DATABASE
LASTCMD
MODEL Client
NAME test
NOTIFYDEV global,test
NR 10079
NTFY_ORDER 50-test
ROLE Client
STATE initialized
TYPE DbRep
UTF8 0
VERSION 8.2.2
HELPER:
DBLOGDEVICE
SQLHIST
Helper:
DBLOG:
state:
myDbLog:
TIME 1539319636.3901
VALUE initialized
READINGS:
2018-10-12 06:47:16 state initialized
dbloghash:
HELPER:
Attributes:
DbReadingsVal("<name>","<device:reading>","<timestamp>","<default>")
Zitat
...
Standardmäßig wird die Summe aller Datensätze, gekennzeichnet mit "ALLREADINGS", erstellt. Ist das Attribut "countEntriesDetail" gesetzt, wird die Anzahl jedes einzelnen Readings zusätzlich ausgegeben.
....
averageValue, changeValue, countEntries, delEntries,delSeqDoublets, diffValue, exportToFile, fetchrows, maxValue, minValue, reduceLog, sumValue, syncStandby
Zitat von: DS_Starter am 09 November 2018, 15:20:03Was ist denn der Unterschied zu
ich möchte euch darüber informieren, dass im contrib Verzeichnis eine neue Version von DbRep liegt
in der ich einen Befehl zur Datenbankbereinigung doppelter (bzw. mehrfacher) Datensätze implementiert habe.
* delDoublets [adviceDelete | delete] - zeigt bzw. löscht doppelte / mehrfach vorkommende Datensätze. Dazu wird Timestamp, Device,Reading und Value ausgewertet.
set DbLogRep delSeqDoublets delete
Zitat
Was ist denn der Unterschied zu
Code: [Auswählen]
set DbLogRep delSeqDoublets delete
set Rep_FillCurr_fhem tableCurrentPurge
set Rep_FillCurr_fhem tableCurrentFillup
defmod Rep_FillCurr_fhem DbRep DBLogging
attr Rep_FillCurr_fhem DbLogExclude .*
attr Rep_FillCurr_fhem alias [current] Tabelle erneuern FHEM DB
attr Rep_FillCurr_fhem allowDeletion 1
attr Rep_FillCurr_fhem devStateIcon connected:10px-kreis-gruen .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep_FillCurr_fhem event-on-update-reading state,--DELETED_ROWS_CURRENT--
attr Rep_FillCurr_fhem group DB Current Table - Management
attr Rep_FillCurr_fhem icon database
attr Rep_FillCurr_fhem room Logging
attr Rep_FillCurr_fhem showproctime 1
attr Rep_FillCurr_fhem timeDiffToNow d:30
attr Rep_FillCurr_fhem verbose 3
setstate Rep_FillCurr_fhem done
setstate Rep_FillCurr_fhem 2018-12-10 08:52:02 background_processing_time 3.6404
setstate Rep_FillCurr_fhem 2018-12-10 08:52:02 number_lines_inserted 140
setstate Rep_FillCurr_fhem 2018-12-10 08:52:02 sql_processing_time 3.6066
setstate Rep_FillCurr_fhem 2018-12-10 08:52:02 state done
ZitatNur die Device und Readings werden in die current geschrieben.Es liegt kein Fehler vor. Works as designed.
Wo liegt mein Fehler?
defmod n_DbLogExclude notify global:DEFINED.* attr $EVTPART1 DbLogExclude .*
attr n_DbLogExclude DbLogExclude .*
attr n_DbLogExclude alias Für neue Geräte dbExclude setzen
attr n_DbLogExclude group Logging
attr n_DbLogExclude icon database
attr n_DbLogExclude room Logging
ZitatHatte ich allerdings geschrieben dass die current mit Device/Readings-Kombinationen aufgefüllt wird. Kommt vielleicht nicht so deutlich raus, ich besser nach ...
Mich wunderte eben nur das geschriebene im Wiki etwas und verwirrte.
Das die current für SVG Auswahl grundsätzlich nur die Readings/Device benötigt, wusste ich nicht.
ZitatStellt mir eben aber gerade die Frage, für was dann die Funktion der current Bereinigung ... :-[Naja, dafür gibt es zwei Überlegungen.
2018.12.27 18:10:01.849 3: DbRep test - WARNING - old process 8806 will be killed now to start a new BlockingCall
2018.12.27 18:10:01.866 1: DbRep test -> BlockingCall DbRep_getInitData pid:8806 Timeout: process terminated
2018.12.27 18:10:01.928 3: DbRep test - get initial structure information of database "fhem", remaining attempts: 3
2018.12.27 18:10:01.930 3: DbRep test - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2018.12.27 18:10:02.047 3: DbRep test - WARNING - old process 8855 will be killed now to start a new BlockingCall
2018.12.27 18:10:02.048 1: DbRep test -> BlockingCall DbRep_getInitData pid:8855 Timeout: process terminated
2018.12.27 18:10:02.121 3: DbRep test - get initial structure information of database "fhem", remaining attempts: 2
2018.12.27 18:10:02.123 3: DbRep test - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
Internals:
CFGFN
DATABASE fhem
DEF logdb
LASTCMD countEntries current
MODEL Client
NAME test
NOTIFYDEV global,test
NR 83087
NTFY_ORDER 50-test
ROLE Client
STATE disconnected
TYPE DbRep
UTF8 1
VERSION 8.9.6
HELPER:
DBLOGDEVICE logdb
IDRETRIES 1
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
RUNNING_PID:
abortFn DbRep_getInitDataAborted
arg test|countEntries|current|DbRep_Main
bc_pid 3588
finishFn DbRep_getInitDataDone
fn DbRep_getInitData
loglevel 5
pid 8856
telnet telnetPort_127.0.0.1_58680
timeout 120
abortArg:
READINGS:
2018-12-27 18:10:02 errortext Timeout: process terminated
2018-12-27 18:10:02 state disconnected
dbloghash:
COLUMNS field length used for Device: 64, Type: 64, Event: 0, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db_fhem.conf
DEF ./db_fhem.conf .*:.*
MODE asynchronous
MODEL MYSQL
NAME logdb
NR 307
NTFY_ORDER 50-logdb
PID 654
REGEXP .*:.*
STATE connected
TYPE DbLog
UTF8 1
VERSION 3.13.0
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 0
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
READINGS:
2018-12-27 18:11:48 CacheUsage 12
2018-12-27 18:11:42 NextSync 2018-12-27 18:12:12 or if CacheUsage 100 reached
2018-01-30 17:16:35 lastCachefile ./log/cache_logdb_2018-01-25_03-37-17 import successful
2018-12-27 18:11:43 state connected
cache:
index 159920
Attributes:
verbose 5
Zitatrestart = shutdown restart von fhem?Ja, genau. Dann zieht das fastStart.
Zitatshowproctime im DbLog:No, das ist ok.
background_processing_time 0.1267
Ist das zuviel?
define Rep_HH_Tagesenergie_Corr DbRep DBLogging
attr Rep_HH_Tagesenergie_Corr timestamp_begin previous_day_begin
attr Rep_HH_Tagesenergie_Corr timestamp_end previous_day_end
attr Rep_HH_Tagesenergie_Corr executeAfterProc set Rep_HH_Tagesenergie_max maxValue writeToDB
define Rep_HH_Tagesenergie_max DbRep DBLogging
attr Rep_HH_Tagesenergie_max aggregation day
attr Rep_HH_Tagesenergie_max device HH_Tagesenergie
attr Rep_HH_Tagesenergie_max reading state
attr Rep_HH_Tagesenergie_max timestamp_begin previous_day_begin
attr Rep_HH_Tagesenergie_max timestamp_end previous_day_end
define Correct_Rep_HH_Tagesenergie_timestamp at *00:05:00 set Rep_HH_Tagesenergie_Corr sqlCmd UPDATE history SET timestamp = DATE_SUB(timestamp, INTERVAL (minute(timestamp)*60 + second(timestamp)+1) second) where TIMESTAMP >= §timestamp_end§ and device = 'HH_Tagesenergie' and value > '1.0'
Zitatsogar sonntags am Gerät?! :)Naja, gerade so mieses Wetter. Will heute aber noch ins Kino ;)
ZitatFührt dbrep vor dem executeAfterProc noch ein commit aus, so dass eine DB-Änderung für den nachfolgenden Befehl immer wirksam ist?Im Prinzip ja, implizit durch die finish/disconnect Befehle im Hintergrund wenn die session beendet wird.
Zitat
Wie kann ich mehrere Werte eines Devices aus dem DBLog in eine Dummydevice packen.
Ich habe ein Thermostat-Device (Netatmo) das beinhaltet die akt. Temperatur, die Solltemperatur und das aktuelle laufende Programm.
Nun möchte ich aber die Infos per DbRep auch in meiner anderen Fhem Instanz haben.
Zitat von: DS_Starter am 11 Februar 2019, 18:34:50
Hallo maci,
Ich muss zugeben, die Aufgabenstellung nicht wirklich verstanden zu haben. Ich versuche es mal mit meinen Worten.
Du hast ein Thermostat-Device (Netatmo), das beinhaltet die akt. Temperatur, die Solltemperatur und das aktuelle laufende Programm als Readings. Diese Readings werden in eine Datenbank geloggt.
Jetzt möchtest du diese Readings bzw. deren Werte mit DbRep aus der DB lesen und in ein Dummydevice packen.
Das Ganze soll auf einer anderen FHEM Instanz passieren.
Habe ich das so richtig wiedergegeben ?
Grüße
Heiko
set XXX sqlCmd xxx
2019-03-03 21:29:41 DbRep DbWolfStarts running
2019.03.03 21:29:41 4 : DbRep DbWolfStarts - -------- New selection ---------
2019.03.03 21:29:41 4 : DbRep DbWolfStarts - Command: delDoublets adviceDelete
2019.03.03 21:29:41 5 : DbRep DbWolfStarts - Timestamp begin epocheseconds: 1551640791
2019.03.03 21:29:41 4 : DbRep DbWolfStarts - Timestamp begin human readable: 2019-03-03 20:19:51
2019.03.03 21:29:41 5 : DbRep DbWolfStarts - Timestamp end epocheseconds: 1551644981
2019.03.03 21:29:41 4 : DbRep DbWolfStarts - Timestamp end human readable: 2019-03-03 21:29:41
2019.03.03 21:29:41 5 : DbRep DbWolfStarts - weekday of start for selection: So -> wdadd: 86400
2019.03.03 21:29:41 5 : DbRep DbWolfStarts - Daylight savings changed: 0 (on Mon Mar 4 20:19:51 2019)
2019.03.03 21:29:41 5 : DbRep DbWolfStarts - runtime_string: 2019-03-03, runtime_string_first: 2019-03-03 20:19:51, runtime_string_next: 2019-03-03 21:29:41
2019.03.03 21:29:41 4 : DbRep DbWolfStarts - Aggregation: day
2019.03.03 21:31:02 1 : DbRep DbWolfStarts -> BlockingCall deldoublets_DoParse pid:DEAD:970 Process died prematurely
2019-03-03 21:31:02 DbRep DbWolfStarts Process died prematurely
define DbLog DbLog ./db.conf .*:(temperature|humidity|Rain|gustSpeed|wind|Super|Diesel|Wolf|Wb_).*
setuuid DbLog 5c62fc7d-f33f-bf9c-5b32-c9c6bcfc41cb2980
attr DbLog DbLogExclude state
attr DbLog DbLogSelectionMode Exclude
attr DbLog DbLogType Current/History
attr DbLog asyncMode 1
attr DbLog disable 0
attr DbLog room logs
attr DbLog syncInterval 180
define DbWolfStarts DbRep DbLog
setuuid DbWolfStarts 5c673196-f33f-bf9c-1e09-481a8a7e44d80705
attr DbWolfStarts allowDeletion 1
attr DbWolfStarts device Wolf_betrd
attr DbWolfStarts room logs
attr DbWolfStarts showproctime 1
attr DbWolfStarts verbose 5
pi@rpi-3b:~ $ df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 13G 6,3G 5,6G 53% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 13M 452M 3% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p6 68M 23M 46M 33% /boot
tmpfs 93M 0 93M 0% /run/user/1000
/dev/mmcblk0p5 30M 398K 28M 2% /media/pi/SETTINGS
pi@rpi-3b:~ $ cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
pi@rpi-3b:~ $ free
total used free shared buff/cache available
Mem: 949448 161380 513812 18488 274256 717868
Swap: 102396 0 102396
pi@rpi-3b:~ $
2019.03.03 23:49:25 2: AttrTemplates: got 55 entries
2019.03.03 23:49:50 4: DbRep DbWolfStarts - -------- New selection ---------
2019.03.03 23:49:50 4: DbRep DbWolfStarts - Command: delDoublets adviceDelete
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Timestamp begin epocheseconds: 1551640791
2019.03.03 23:49:50 4: DbRep DbWolfStarts - Timestamp begin human readable: 2019-03-03 20:19:51
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Timestamp end epocheseconds: 1551653390
2019.03.03 23:49:50 4: DbRep DbWolfStarts - Timestamp end human readable: 2019-03-03 23:49:50
2019.03.03 23:49:50 5: DbRep DbWolfStarts - weekday of start for selection: So -> wdadd: 86400
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Daylight savings changed: 0 (on Sun Mar 3 21:19:51 2019)
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Daylight savings changed: 0 (on Sun Mar 3 22:19:51 2019)
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Daylight savings changed: 0 (on Sun Mar 3 23:19:51 2019)
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Daylight savings changed: 0 (on Mon Mar 4 00:19:51 2019)
2019.03.03 23:49:50 4: DbRep DbWolfStarts - Aggregation: hour
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Timestamp-Array:
2019-03-03_20#2019-03-03 20:19:51#2019-03-03 21 2019-03-03_21#2019-03-03 21#2019-03-03 22 2019-03-03_22#2019-03-03 22#2019-03-03 23 2019-03-03_23#2019-03-03 23#2019-03-03 23:49:50
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Devices for operation - included: Wolf_betrd , excluded:
2019.03.03 23:49:50 5: DbRep DbWolfStarts - Readings for operation - included: Wb_Aussentemp, excluded:
DBD::SQLite::db prepare_cached [b]failed: near "ASC": syntax error at ./FHEM/93_DbRep.pm line 4857[/b].
2019.03.03 23:49:59 1: DbRep DbWolfStarts -> BlockingCall deldoublets_DoParse pid:DEAD:2065 Process died prematurely
2019.03.03 23:29:00 3: DbLog Amilo - Creating Push-Handle to database SQLite:dbname=/opt/fhem/fhem.db with user
2019.03.03 23:29:00 3: DbLog Amilo - Push-Handle to db SQLite:dbname=/opt/fhem/fhem.db created
2019.03.03 23:29:28 3: DbRep Ami - Connectiontest to database SQLite:dbname=/opt/fhem/fhem.db with user
2019.03.03 23:29:28 3: DbRep Ami - Initial data information retrieved successfully - total time used: 0.001927 seconds
2019.03.03 23:29:28 3: DbRep Ami - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
DBD::SQLite::db prepare_cached failed: near "ASC": syntax error at ./FHEM/93_DbRep.pm line 4857.
2019.03.03 23:30:00 1: DbRep Ami -> BlockingCall deldoublets_DoParse pid:DEAD:15128 Process died prematurely
2019.03.03 23:39:38 4: DbRep Ami - -------- New selection ---------
2019.03.03 23:39:38 4: DbRep Ami - Command: delDoublets adviceDelete
2019.03.03 23:39:38 5: DbRep Ami - Timestamp begin epocheseconds: 1551650443
2019.03.03 23:39:38 4: DbRep Ami - Timestamp begin human readable: 2019-03-03 23:00:43
2019.03.03 23:39:38 5: DbRep Ami - Timestamp end epocheseconds: 1551652778
2019.03.03 23:39:38 4: DbRep Ami - Timestamp end human readable: 2019-03-03 23:39:38
2019.03.03 23:39:38 5: DbRep Ami - weekday of start for selection: So -> wdadd: 86400
2019.03.03 23:39:38 5: DbRep Ami - Daylight savings changed: 0 (on Mon Mar 4 00:00:43 2019)
2019.03.03 23:39:38 4: DbRep Ami - Aggregation: hour
2019.03.03 23:39:38 5: DbRep Ami - Timestamp-Array:
2019-03-03_23#2019-03-03 23:00:43#2019-03-03 23:39:38
2019.03.03 23:39:38 5: DbRep Ami - Devices for operation - included: sysmon , excluded:
2019.03.03 23:39:38 5: DbRep Ami - Readings for operation - included: cpu_freq, excluded:
DBD::SQLite::db prepare_cached [b]failed: near "ASC": syntax error at ./FHEM/93_DbRep.pm line 4857[/b].
2019.03.03 23:39:56 1: DbRep Ami -> BlockingCall deldoublets_DoParse pid:DEAD:15322 Process died prematurely
DumpFileCreated ./log/fhem_2019_03_13_10_04.sql.gzip 2019-03-14 07:15:26
DumpFileCreatedSize 113.38 MB 2019-03-14 07:15:26
DumpRowsCurrent 6632 2019-03-14 07:15:26
DumpRowsHistory 11346422 2019-03-14 07:15:26
background_processing_time 76264.9506 2019-03-14 07:15:26
state Database backup finished 2019-03-14 07:15:27
ZitatDas ist alles genau richtig. Insofern hast du die richtige Wahl getroffen.
Ich wollte eigentlich clientside nutzen, da dann das Backup über ein komplettes FHEM-Backup auf dem NAS gesichert wird.
So wie ich es aus der commandRef verstanden habe, wird das serverside Backup auch als .csv abgelegt und nicht als SQL.
Attributes:
aggregation day
allowDeletion 1
device LaCrosse_3E
dumpCompress 1
dumpMemlimit 500000000
dumpSpeed 4000000
group DBLog
reading temperature
room Energy,System
timestamp_begin current_day_begin
timestamp_end current_day_end
verbose 1
READINGS:
2019-03-14 10:54:35 DumpFileCreated ./log/fhem_2019_03_14_10_35.sql.gzip
2019-03-14 10:54:35 DumpFileCreatedSize 113.66 MB
2019-03-14 10:54:35 DumpFilesDeleted fhem_2019_03_13_10_04.sql.gzip
2019-03-14 10:54:35 DumpRowsCurrent 6651
2019-03-14 10:54:35 DumpRowsHistory 11360885
2019-03-14 10:54:35 background_processing_time 1124.5978
2019-03-14 10:54:35 state Database backup finished
define Rep_HH_Eingangsleistung_delete_older DbRep DBLogging
setuuid Rep_HH_Eingangsleistung_delete_older 5c9c935b-f33f-7c4f-2e23-094ad81859f7bee8
attr Rep_HH_Eingangsleistung_delete_older allowDeletion 1
attr Rep_HH_Eingangsleistung_delete_older device HH_Eingangsleistung
attr Rep_HH_Eingangsleistung_delete_older reading state
attr Rep_HH_Eingangsleistung_delete_older showproctime 1
attr Rep_HH_Eingangsleistung_delete_older timeOlderThan d:14
mysql> select distinct date(timestamp), device, reading from history where device = 'HH_Eingangsleistung' and reading = 'state';
+-----------------+---------------------+---------+
| date(timestamp) | device | reading |
+-----------------+---------------------+---------+
| 2019-03-02 | HH_Eingangsleistung | state |
| 2019-03-03 | HH_Eingangsleistung | state |
| 2019-03-04 | HH_Eingangsleistung | state |
| 2019-03-05 | HH_Eingangsleistung | state |
| 2019-03-06 | HH_Eingangsleistung | state |
| 2019-03-07 | HH_Eingangsleistung | state |
| 2019-03-08 | HH_Eingangsleistung | state |
| 2019-03-09 | HH_Eingangsleistung | state |
| 2019-03-10 | HH_Eingangsleistung | state |
| 2019-03-11 | HH_Eingangsleistung | state |
| 2019-03-12 | HH_Eingangsleistung | state |
| 2019-03-13 | HH_Eingangsleistung | state |
| 2019-03-14 | HH_Eingangsleistung | state |
| 2019-03-15 | HH_Eingangsleistung | state |
| 2019-03-16 | HH_Eingangsleistung | state |
| 2019-03-17 | HH_Eingangsleistung | state |
| 2019-03-18 | HH_Eingangsleistung | state |
| 2019-03-19 | HH_Eingangsleistung | state |
| 2019-03-20 | HH_Eingangsleistung | state |
| 2019-03-21 | HH_Eingangsleistung | state |
| 2019-03-22 | HH_Eingangsleistung | state |
| 2019-03-23 | HH_Eingangsleistung | state |
| 2019-03-24 | HH_Eingangsleistung | state |
| 2019-03-25 | HH_Eingangsleistung | state |
| 2019-03-26 | HH_Eingangsleistung | state |
| 2019-03-27 | HH_Eingangsleistung | state |
| 2019-03-28 | HH_Eingangsleistung | state |
+-----------------+---------------------+---------+
24 rows in set (45.43 sec)
2019.03.28 12:01:16 4: DbRep Rep_HH_Eingangsleistung_delete_older - SQL execute: delete FROM history where DEVICE = 'HH_Eingangsleistung' AND READING = 'state' AND TIMESTAMP >= '1970-01-01 01:00:00' AND TIMESTAMP <= '2019-03-02 12:01:15' ;
2019.03.28 15:08:48.470 4: DbRep Test - -------- New selection ---------
2019.03.28 15:08:48.471 4: DbRep Test - Command: delEntries
2019.03.28 15:08:48.472 4: DbRep Test - timeOlderThan - year: , day: 14, hour: , min: , sec:
2019.03.28 15:08:48.473 4: DbRep Test - Year 2016 is leap year
2019.03.28 15:08:48.473 4: DbRep Test - Timestamp begin human readable: 2016-04-10 07:00:00
2019.03.28 15:08:48.474 4: DbRep Test - Time difference to current time for calculating Timestamp end: 1213201 sec
2019.03.28 15:08:48.475 4: DbRep Test - Timestamp end human readable: 2019-03-14 14:08:47
2019.03.28 15:08:48.475 4: DbRep Test - Aggregation: no
2019.03.28 15:08:48.509 4: DbRep Test - SQL execute: delete FROM history where DEVICE = 'HH_Eingangsleistung' AND READING = 'state' AND TIMESTAMP >= '2016-04-10 07:00:00' AND TIMESTAMP <= '2019-03-14 14:08:47' ;
2019.03.28 15:08:48.605 3: DbRep Test - Entries of fhemtest.history deleted: HH_Eingangsleistung--state--0
Time difference to current time for calculating Timestamp end: 1213201 sec
Zitat von: DS_Starter am 26 Februar 2018, 23:51:54
Es werden alle Datensätze übertragen, die durch Timestamp-Attribute bzw. die Attribute "device", "reading" bestimmt sind.
Die Datensätze werden dabei in Zeitscheiben entsprechend der eingestellten Aggregation übertragen. Hat das Attribut "aggregation" den Wert "no" oder "month", werden die Datensätze automatisch in Tageszeitscheiben zur Standby-Datenbank übertragen. Quell- und Standby-Datenbank können unterschiedlichen Typs sein.
Die zur Steuerung der syncStandby Funktion relevanten Attribute sind:
aggregation : Einstellung der Zeitscheiben zur Übertragung (hour,day,week)
device : Übertragung nur von Datensätzen die <device> enthalten
reading : Übertragung nur von Datensätzen die <reading> enthalten
time.* : Attribute zur Zeitabgrenzung der zu übertragenden Datensätze.
LG,
Heiko
DBD::mysql::st execute failed: Incorrect datetime value: '2015-03-29 02:08:40' for column 'TIMESTAMP' at row 1 at ./FHEM/93_DbRep.pm line 10407.
ZitatWo muss ich ein "or die" setzen damit im Fehlerfall weiter geladen wird und ein Fehler im Log erscheint.Meinst du damit, dass die fehlerhaften Sätze einfach übersprungen werden (mit Log-Info) aber der Prozess weiterlaufen soll ?
ZitatDen Fehler habe ich gefunden. "Daylight saving time" sprich Sommerzeit.Ah, interessant. Heißt für mich Problem an sich gelöst ?
ZitatGibt das Modul im Erfolgsfall ein Event aus, in dem auch syncStandby vorkommt? Oder sehe ich irgend wo den Zeitpunkt der letzten erfolgreichen Syncronisierung?Ja, es gibt das Reading "number_lines_inserted_Standby", welches nach jedem erfolgreichen Sync aktualisiert wird. Daraus kannst du ja auch den jeweiligen Zeitpunkt ableiten (FHEM ReadingsTimestamp).
Zitatie müsste ich time.* setzen damit z. B. timestamp >= 2019-05-28 10:00:00 übertrage?Das wäre:
attr <Name> timestamp_begin 2019-05-28 10:00:00
ZitatDenke die Frage ist jetzt eher wie die ungültigen Daten geloggt wurden und was genau falsch ist.Gute Frage, ich sehe bei "Verzögerung ein paar Sätze zu nicht existierenden Zeiten geschrieben wurden, es geht nur um ein paar Sekunden (02:00:08)" -> 02:00:08 auch keinen unzulässigen Timestamp.
Geloggt wurde ja vom dblog Modul.
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2015-03-29 02:00:09', 'Wetter_Nuernberg', 'WEATHER', 'humidity: 86', 'humidity', '86', '%');
Zitat von: DS_Starter am 30 Mai 2019, 08:56:08
Wenn du Verbesserungen siehst, lass es mich gerne wissen.
Zitat- Wenn ich einen Lauf erneut starte weil der erste fehlerhaft war, wird ja wieder mit insert gearbeitet. Dazu würde ich ggf. einen unique-index anlegen. Dann gäbe es beim Einfügen aber einen Fehler der das Script auch wieder abbrechen würde.Du kannst einen Primary Index anlegen. Dieser wird berücksichtigt und es bricht nichts ab. Doppelte DS werden vermieden.
Zitat- Der "von - bis" Zeitraum als Parameter oder irgendwie dynamisch. Aktuell ist es ein Attribut. Dann muss ich immer Speichern wenn ich per Script was ändere. Wenn dynamisch könnte ich aus dem Reading das Datum extrahieren und dann als Start-Datum verwenden.Bislang kannst du z.B. mit timeDiffToNow = d:1 arbeiten, also beginne immer mit einem Tag in der Vergangenheit. Das ist dynamisch. Vllt. reicht das schon.
ZitatKönnte man die standby DB nicht als zweite DB anlegen?Im Prinzip ja. Allerdings war der asynchrone Mode ursprünglich nicht dazu gedacht einen Tag lang oder länger die Events im Cache zu halten (Fehlerfall ausgenommen). Mir ging es damals nur um Minuten und dabei dir DB von FHEM zu entkoppeln.
Fhem würde dann das bulk Update machen sobald die Db erreichbar ist und cachen wenn sie offline ist.
Zitat von: DS_Starter am 30 Mai 2019, 13:47:16Ich dachte wenn schon eine Warnung wegen Timestamp das Script stoppt dann erst recht ein Doppelter Eintrag. Damit ist Punkt ein erledigt.
Du kannst einen Primary Index anlegen. Dieser wird berücksichtigt und es bricht nichts ab. Doppelte DS werden vermieden.
Zitat von: DS_Starter am 30 Mai 2019, 13:47:16Ich sag mal, damit kann ich leben. Ich lege mir 2 DbRep-Devices mit unterschiedlichen Werten an. Du könntest die Doku etwas erweitern, du schreibst
Bislang kannst du z.B. mit timeDiffToNow = d:1 arbeiten, also beginne immer mit einem Tag in der Vergangenheit. Das ist dynamisch. Vllt. reicht das schon.
Die zur Steuerung der syncStandby Funktion relevanten Attribute sind:
aggregation : Einstellung der Zeitscheiben zur Übertragung (hour,day,week)
device : einschließen oder ausschließen von Datensätzen die <device> enthalten
reading : einschließen oder ausschließen von Datensätzen die <reading> enthalten
time.* : Attribute zur Zeitabgrenzung der zu übertragenden Datensätze.
valueFilter : ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet.
Zitat von: DS_Starter am 30 Mai 2019, 14:50:43bei mir wäre das sogar im Normalbetrieb so. Bin zum Teil die ganze Woche, ggf. sogar länger beruflich weg. Meine Updates Docker und OS mache ich automatisiert. Da wird auch mal Fhem einfach runtergefahren.
Nachteil wäre falls FHEM abstürzt der Verlust der ganzen Events.
Zitatch dachte die anderen Attribute werden hier nicht herangezogen da sie nicht gelistet waren. Das Modul ist sehr mächtig, hat viele Attribute und Funktionen. Vielleicht ist es besser eine 2-dim-Tabelle zu machen mit einem Kreuzchen welche Attribute wo verwendet werden. Wäre sicher auch für dich einfacher zu pflegen wenn du ein Attribut einführst oder eine Änderung machst.Oh ja danke dir. Ich checke das. Manchmal vergesse ich auch mal was . ;)
Zitatbei mir wäre das sogar im Normalbetrieb so. Bin zum Teil die ganze Woche, ggf. sogar länger beruflich weg. Meine Updates Docker und OS mache ich automatisiert. Da wird auch mal Fhem einfach runtergefahren.Einfach runterfahren tut nichts, da wird alles weggeschrieben. Mir ging es um einen harten Absturz.
Zitat von: DS_Starter am 30 Mai 2019, 15:05:49Könnte dieses wegschreiben dann nicht evtl zyklisch alle 5min gemacht werden?
Einfach runterfahren tut nichts, da wird alles weggeschrieben. Mir ging es um einen harten Absturz.
Zitat von: DS_Starter am 30 Mai 2019, 15:05:49Ich meinte die Aussage - Synology ist als Standby DB down da ich nicht zu Hause bin. Gleichzeitig würde Fhem geplant wegen Update restartet. Dann würde ich Sätze verlieren.
Einfach runterfahren tut nichts, da wird alles weggeschrieben. Mir ging es um einen harten Absturz.
Zitat von: Frank_Huber am 30 Mai 2019, 15:21:05beides ginge ... :)
Ist die Frage wie Heiko dieses "wegschreiben" gemeint hat.
Wegschreiben in die DB,
Oder wegschreiben in ein Temp file.
Im ersten Fall wären die Einträge weg.
Gesendet von meinem Doogee S60 mit Tapatalk
Zitat von: DS_Starter am 31 Mai 2019, 11:08:20
@kadettilac89, habe die commandRef bzgl. Attribute zu syncStandby ergänzt. Sollte ich noch etwas vergessen haben oder du noch weitere Infos dort hilfreich platziert sehen würdest, sag Bitte Bescheid.
mehrere time*-Attribute:
set <hm-device> deviceRename name-alt name-neu
set <dbrep-agent> deviceRename name-alt,name-neu
ZitatWirkt hier deviceRename wie bei Homematic, d.h. das Device inkl. der dazugehörenden Kanäle wird bearbeitet oder muss ich in DbRep dann doch jeden Kanal einzeln umbenennen?Vielleicht habe ich die Frage nicht richtig verstanden, aber deviceRename in DbRep ausgeführt wirkt IMMER nur auf die Datensätze innerhalb der DB und ändert nicht die Devicenamen im FHEM an sich.
...
2019-07-07 10:01:15;Statusdauer;240:45:26,1
2019-07-07 10:02:15;Statusdauer;240:46:26,1
2019-07-07 10:10:45;Statusdauer;240:54:56,6
2019-07-07 10:13:07;Statusdauer;0:01:27,4
2019-07-07 10:16:16;Statusdauer;0:04:36,3
...
...
2019-07-07 10:10:45;Statusdauer;240:54:56,6
2019-07-07 10:13:07;Statusdauer;0:01:27,4
...
Total: 986.02 MB, Used: 427.56 MB, 43.36 %, Free: 343.90 MB
attr Rep.Sysmon.UsedRam fetchValueFn { $VALUE =~ s/^.*Used:\s(.*)\sMB,.*/$1." MB"/e }
657.67 MB
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat von: DS_Starter am 08 November 2019, 16:39:15Ach, wenn ich im Büro bin hab ich das Forum immer nebenher offen. :-)
Na das ging ja fix :D
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - -------- New selection ---------
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - Command: delEntries
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - timeOlderThan - year: , day: 3, hour: , min: , sec:
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - startMonth: 11 endMonth: 10 lastleapyear: baseYear: 2019 diffdaylight:0 isdaylight:0
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - FullDay option: 1
2019.11.08 17:44:15 5: DbRep logdb_clean_3days - Timestamp begin epocheseconds: 1481842800
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - Timestamp begin human readable: 2016-12-16 00:00:00
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - Time difference to current time for calculating Timestamp end: 259201 sec
2019.11.08 17:44:15 5: DbRep logdb_clean_3days - Timestamp end epocheseconds: 1572994799
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - Timestamp end human readable: 2019-11-05 23:59:59
2019.11.08 17:44:15 5: DbRep logdb_clean_3days - weekday of start for selection: Fr -> wdadd: 259200
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - Aggregation: no
2019.11.08 17:44:15 5: DbRep logdb_clean_3days - IsTimeSet: 1, IsAggrSet: 0
2019.11.08 17:44:15 5: DbRep logdb_clean_3days - Devices for operation -
included (23): HM_Powermeter_1,HM_Powermeter_1_Pwr,HM_Powermeter_1_SenF,HM_Powermeter_1_SenI,HM_Powermeter_1_SenPwr,HM_Powermeter_1_SenU,HM_Powermeter_1_Sw,HM_Powermeter_2,HM_Powermeter_2_Pwr,HM_Powermeter_2_SenF,HM_Powermeter_2_SenI,HM_Powermeter_2_SenPwr,HM_Powermeter_2_SenU,HM_Powermeter_2_Sw,HM_Powermeter_3,HM_Powermeter_3_Pwr,HM_Powermeter_3_SenF,HM_Powermeter_3_SenI,HM_Powermeter_3_SenPwr,HM_Powermeter_3_SenU,HM_Powermeter_3_Sw,APC_USV,Stromzaehler
included with wildcard:
excluded (0):
excluded with wildcard:
2019.11.08 17:44:15 5: DbRep logdb_clean_3days - Readings for operation -
included (1): %
included with wildcard:
excluded (0):
excluded with wildcard:
2019.11.08 17:44:15 4: DbRep logdb_clean_3days - SQL execute: delete FROM history where ( DEVICE IN ('HM_Powermeter_1','HM_Powermeter_1_Pwr','HM_Powermeter_1_SenF','HM_Powermeter_1_SenI','HM_Powermeter_1_SenPwr','HM_Powermeter_1_SenU','HM_Powermeter_1_Sw','HM_Powermeter_2','HM_Powermeter_2_Pwr','HM_Powermeter_2_SenF','HM_Powermeter_2_SenI','HM_Powermeter_2_SenPwr','HM_Powermeter_2_SenU','HM_Powermeter_2_Sw','HM_Powermeter_3','HM_Powermeter_3_Pwr','HM_Powermeter_3_SenF','HM_Powermeter_3_SenI','HM_Powermeter_3_SenPwr','HM_Powermeter_3_SenU','HM_Powermeter_3_Sw','APC_USV','Stromzaehler') ) AND TIMESTAMP >= '2016-12-16 00:00:00' AND TIMESTAMP <= '2019-11-05 23:59:59' ;
2019.11.08 17:44:16 5: DbRep logdb_clean_3days - Number of deleted rows: 14105
2019.11.08 17:44:16 3: DbRep logdb_clean_3days - Entries of fhem.history deleted: HM_Powermeter_.//APC_USV/Stromzaehler--/--14105
Zitatfällt dir ein Grund ein, weshalb ich beim Setzen von:set DbRep adminCredentials root testJa, weil der Modulautor Mist gemacht hat. ;)
... immer folgende Fehlermeldung erhalte?:
Zitat
Leider kann ich dir keine passende Syntax zur Verfügung stellen, ich kenne mich leider mit Datenbanken nicht wirklich aus.
Vielleicht hilft dir das weiter:
https://www.dataqualityapps.de/know-how/123-postgresql-nach-dubletten-suchen.html
https://stackoverflow.com/questions/5170546/how-do-i-delete-a-fixed-number-of-rows-with-sorting-in-postgresql
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
define logdb.sync_daily DbRep logdb
setuuid logdb.sync_daily 5cfe4b71-f33f-c353-3373-1ae195c977a4b689
attr logdb.sync_daily aggregation day
attr logdb.sync_daily group Log
attr logdb.sync_daily room Technik
attr logdb.sync_daily timeDiffToNow d:2
define logdb.sync_weekly DbRep logdb
setuuid logdb.sync_weekly 5cfe4b71-f33f-c353-6026-7e7569a0d087caff
attr logdb.sync_weekly aggregation day
attr logdb.sync_weekly group Log
attr logdb.sync_weekly room Technik
attr logdb.sync_weekly timeDiffToNow d:10
define logdb.sync.timer at *00:15:00 {\
if( # Immer Montags\
($wday == 1)\
) \
{\
Log (1,"logdb.sync.timer: wday: ".$wday.", Wochen-Sync wird durchgeführt.");;\
fhem("set logdb.sync_weekly syncStandby archivedb");;\
} else {\
Log (1,"logdb.sync.timer: Tages-Sync wird durchgeführt.");;\
fhem("set logdb.sync_daily syncStandby archivedb");;\
};;\
\
}
setuuid logdb.sync.timer 5cfe4b71-f33f-c353-7d83-4d282dae45c78845
ZitatIch hatte die Funktion der Methode so verstanden, dass sie im konfigurierten Umfang und Fragmenten eine Datenbank zu einer anderen abgleicht und bereits kopierte Zeilen nicht ein zweites Mal kopiert.Nein, es werden die Datensätze , die durch die Zeit- ,Reading- ,Device- und auch valueFilter aus der Quelldatenbank in die Standby-Datenbank übertragen. Das passiert bei jedem Lauf.
drop table history;
CREATE TABLE `fhemtest`.`history` (TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(128), UNIT varchar(32));
ALTER TABLE `fhemtest`.`history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
2020.01.24 20:47:09.383 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 14930
2020.01.24 20:47:48.007 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 168164
2020.01.24 20:48:17.547 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 132427
2020.01.24 20:48:39.390 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 100402
2020.01.24 20:49:02.580 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 99906
2020.01.24 20:49:27.012 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 99685
2020.01.24 20:49:46.452 3: DbRep Rep.LogDB1.syncStandby - total lines transfered to standby database: 86970
2020.01.24 20:49:46.453 3: DbRep Rep.LogDB1.syncStandby - number of lines inserted into "LogStby": 20705
Zitat
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat von: DS_Starter am 23 Januar 2020, 22:59:19
Hallo Alfons, @all,
ich habe die überarbeitete Version bereitgestellt. delDoublets klappt nun auch für PostgreSQL.
Liegt in meinem contrib.
Download, komplett mit "" so im FHEMWEB ausführen:Code Auswählen"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Danach FHEM restarten.
Probiers mal bitte bei dir/euch aus. Bei mir waren die Tests alle positiv.
Grüße,
Heiko
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
ZitatIch dachte das die Funktion jedes Device/Reading Eigenständig betrachtet und den maxValue ermittelt.Der User gibt ja in den Attributen device/reading an welche Devices/Readings betrachtet werden sollen. Der User muss dafür Sorge tragen, dass die "richtigen" bearbeitet werden. Works as designed.
ZitatEine Begrenzung gibt es nicht und ich kann es momentan auch nicht nachvollziehen. Du müsstest mal verbose 4 einschalten und ein Log eines Laufs von delEntries posten. Möglichst ein List vom Device noch dazu.
Auch habe ich festgestellt, das bei einem delEntries Aufruf mit timeolderthan 30 Tagen nicht alle Werte bis in die Vergangenheit bearbeitet bzw. gelöscht werden. Es wird nur eine bestimmte Anzahl gelöscht. Gibt es da eine Begrenzung im Modul?
efmod DBLogging_DbRep_Cleaner3 DbRep DBLogging
attr DBLogging_DbRep_Cleaner3 aggregation day
attr DBLogging_DbRep_Cleaner3 alias Datenbank-Log Cleaner SeqDoublets (DbRep)
attr DBLogging_DbRep_Cleaner3 allowDeletion 1
attr DBLogging_DbRep_Cleaner3 comment Löschen von aufeinander folgenden identische Datensätzen.
attr DBLogging_DbRep_Cleaner3 devStateIcon .*connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr DBLogging_DbRep_Cleaner3 device cnKW271Brenner
attr DBLogging_DbRep_Cleaner3 group Logging
attr DBLogging_DbRep_Cleaner3 icon recycling
attr DBLogging_DbRep_Cleaner3 reading countsPerDay
attr DBLogging_DbRep_Cleaner3 room Logs
attr DBLogging_DbRep_Cleaner3 showproctime 1
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - -------- New selection ---------
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - Command: delEntries
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - timeOlderThan - year: , day: 90, hour: , min: , sec:
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - Year 2020 is leap year
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - startMonth: 9 endMonth: 10 lastleapyear: 2020 baseYear: 2019 diffdaylight:0 isdaylight:0
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - FullDay option: 0
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - Timestamp begin human readable: 2017-10-29 22:35:56
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - Time difference to current time for calculating Timestamp end: 7862401 sec
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - Timestamp end human readable: 2019-11-09 07:24:01
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - Aggregation: no
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - SQL execute: delete FROM history where ( DEVICE IN ('MAX_0f8852','MAX_0f8880','MAX_0f8983','MAX_0ffd00','MAX_10176e','MAX_1056a0','MAX_11b8a6','MAX_11b8a9','MAX_1483f9','MAX_16434e','MAX_1663b9','MAX_185056','Garage','Heizungsraum','WW_Ausgang','WW_Zirkulation','HK1_RL','HK1_VL','HK2_RL','HK2_VL','ESPEasy1','ESPEasy_esp1_SONOFF_TH10_clima','ESPEasy_esp1_SONOFF_TH10_output','xiaomiButton1','xiaomiButton2','xiaomiButton3','xiaomiTempSensor1','xiaomiTempSensor2','HM_4D1493_IEC_01','Shelly_DRHZ_N','Shelly_DRHZ_SW','Shelly_TeichPumpe') ) AND TIMESTAMP >= '2017-10-29 22:35:56' AND TIMESTAMP <= '2019-11-09 07:24:01' ;
2020.02.08 07:24:02 4: DbRep DBLogging_DbRep_Cleaner1 - execute command after delEntries: 'setstate IFTimeDBcleanFHEM -'
2020.02.08 07:24:02 3: DbRep DBLogging_DbRep_Cleaner1 - Entries of fhem.history deleted: MAX.//Garage/Heizungsraum/WW.//HK.//ESPEasy.//xiaomi.//HM_4D1493_IEC_01/Shelly./--/--0
defmod DBLogging_DbRep_Cleaner1 DbRep DBLogging
attr DBLogging_DbRep_Cleaner1 alias Datenbank-Log Cleaner (DbRep) (90d)
attr DBLogging_DbRep_Cleaner1 allowDeletion 1
attr DBLogging_DbRep_Cleaner1 comment Löschen von Einträgen welche älter als 90 Tage sind.
attr DBLogging_DbRep_Cleaner1 devStateIcon .*connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr DBLogging_DbRep_Cleaner1 device MAX.*,Garage,Heizungsraum,WW.*,HK.*,ESPEasy.*,xiaomi.*,HM_4D1493_IEC_01,Shelly.*
attr DBLogging_DbRep_Cleaner1 event-on-change-reading state
attr DBLogging_DbRep_Cleaner1 event-on-update-reading state
attr DBLogging_DbRep_Cleaner1 executeAfterProc setstate IFTimeDBcleanFHEM -
attr DBLogging_DbRep_Cleaner1 group Logging
attr DBLogging_DbRep_Cleaner1 icon recycling
attr DBLogging_DbRep_Cleaner1 room Logs
attr DBLogging_DbRep_Cleaner1 showproctime 1
attr DBLogging_DbRep_Cleaner1 timeOlderThan d:90
attr DBLogging_DbRep_Cleaner1 verbose 4
ZitatNach der Ausführung hat es noch ca. 1/2 Tag gedauert bis diese aus der DB verschwunden sind. Bin grad etwas verwirrt.Das wäre ich auch. :) Nach dem Löschen muss die DB noch einen Commit durchführen um die Einträge tatsächlich zu entfernen. Allerdings ist der Löschlauf in dieser Zeit noch im state "running" und noch nicht fertig. 1/2 Tag wäre aber auch extrem lang.
defmod DBLogging_DbRep_Calc2 DbRep DBLogging
attr DBLogging_DbRep_Calc2 aggregation day
attr DBLogging_DbRep_Calc2 alias Datenbank-Log Calc2 (DbRep) (Shrink) (90d)
attr DBLogging_DbRep_Calc2 allowDeletion 1
attr DBLogging_DbRep_Calc2 comment Ermittelt die täglichen Maximalwerte von Einträgen und entfernt die restlichen welche älter als 90 Tage sind.
attr DBLogging_DbRep_Calc2 devStateIcon .*connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr DBLogging_DbRep_Calc2 device cnKW271Brenner
attr DBLogging_DbRep_Calc2 event-on-change-reading state
attr DBLogging_DbRep_Calc2 event-on-update-reading state
attr DBLogging_DbRep_Calc2 group Logging
attr DBLogging_DbRep_Calc2 icon edit_settings
attr DBLogging_DbRep_Calc2 reading countsPerDay
attr DBLogging_DbRep_Calc2 room Logs
attr DBLogging_DbRep_Calc2 showproctime 1
attr DBLogging_DbRep_Calc2 timeOlderThan d:90
- device: myElectricityCalc
- reading: HM_4D1493_IEC_01_energyCounterValue_EnergyDay,HM_4D1493_IEC_01_energyCounterValue_EnergyMonth,HM_4D1493_IEC_01_energyCounterValue_EnergyYear,HM_4D1493_IEC_01_energyCounterValue_EnergyDayLast,HM_4D1493_IEC_01_energyCounterValue_EnergyMonthLast,HM_4D1493_IEC_01_energyCounterValue_EnergyYearLast,HM_4D1493_IEC_01_energyCounterValue_EnergyMeter
- aggregation: day
Zitat von: DS_Starter am 24 Januar 2020, 08:59:17
Guten Morgen Marcus,
das hast du nicht ganz richtig interpretiert.
Nein, es werden die Datensätze , die durch die Zeit- ,Reading- ,Device- und auch valueFilter aus der Quelldatenbank in die Standby-Datenbank übertragen. Das passiert bei jedem Lauf.
Der Nutzer muss also selbst darauf achten nichts doppelt zu schreiben. Aber das ist reativ einfach.
Eine nicht ganz so elegante Methode ist, das at immer auf den Beginn eines Tages also 00:00:00 zu setzen und im DbRep Device timeDiffToNow d:1 zu setzen. Das würde ein doppeltes Schreiben verhindern.
Aber diese Methode hat Nachteile, weil diese Nahtlosigkeit nicht garantiert werden kann wenn mal ein System nicht da ist oder andere Umstände.
Deswegen ist es am effektivsten, in der Standby-Datenbank die history-Tabelle mit einem primary Key aufzubauen. Dann verhindert die DB von sich aus doppelte Einträge und du kannst dein Verfahren so lassen wie du es engstellt hast.
Du hast doch eine MySQL als Archiv wenn ich mich nicht irre. Dann dropst du am Besten deine history Tabelle in der Standby nochmal und erstellst sie neu mit einem primary Key so:Code Auswählen
drop table history;
CREATE TABLE `fhemtest`.`history` (TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(128), UNIT varchar(32));
ALTER TABLE `fhemtest`.`history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
Dann kannst du neu Syncen und den Lauf so oft wiederholen wie du willst, die Zeiträume können sich dabei überlappen. Alles kein Problem. Die DB verhindert dass doppelte Einträge entstehen.
Wenn ich Zeit finde, erstelle ich auch mal einen Wiki-Beitrag dazu.
Probiers mal aus ...
LG,
Heiko
delDoublets
beholfen, das funktioniert ganz gut. Bei einem zusammengesetzten Schlüssel hatte ich Bedenken, dass bei iner Schlüsselverletzung die ganze Transaktion fehlschlägt, und ich das irgendwie überwachen muss ::)ZitatBei einem zusammengesetzten Schlüssel hatte ich Bedenken, dass bei iner Schlüsselverletzung die ganze Transaktion fehlschlägt, und ich das irgendwie überwachen mussBrauchst keine Bedenken haben. Genau diese Möglichkeit habe ich im Modul berücksichtigt.
Zitat von: DS_Starter am 06 März 2020, 16:28:24
Würde dir das reichen ?
set <name> index recreate_Report_Idx
set rep.myFHEMdb index recreate_Report_Idx
kommen nur die folgenden Zeilen im Log:
2020.03.10 19:43:27 3: DbRep rep.myFHEMdb - ################################################################
2020.03.10 19:43:27 3: DbRep rep.myFHEMdb - ### New Index operation ###
2020.03.10 19:43:27 3: DbRep rep.myFHEMdb - ################################################################
2020.03.10 19:43:27 3: DbRep rep.myFHEMdb - Command: index recreate_Report_Idx
2020.03.10 19:43:27 2: DbRep rep.myFHEMdb - ERROR - adminCredentials not set. Use "set rep.myFHEMdb adminCredentials" first.
2020.03.10 19:43:27 2: DbRep rep.myFHEMdb - ERROR - admin credentials are needed for database access, but can't use it
Internals:
DATABASE myFHEMdb
DEF myFHEMdb
FUUID 5e67dee9-f33f-e100-c079-e1841c04d7584c99
FVERSION 93_DbRep.pm:v8.32.2-s21329/2020-03-01
LASTCMD index recreate_Report_Idx
MODEL Client
NAME rep.myFHEMdb
NOTIFYDEV global,rep.myFHEMdb
NR 17
NTFY_ORDER 50-rep.myFHEMdb
ROLE Client
STATE error
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE myFHEMdb
GRANTS DELETE,INSERT,USAGE,UPDATE,SELECT
IDRETRIES 3
MINTS 2020-03-10 17:03:15
PACKAGE main
VERSION 8.32.2
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
background_processing_time:
myFHEMdb:
TIME 1583865617.58589
VALUE 0.0040
errortext:
myFHEMdb:
TIME 1583865807.34897
VALUE Can't use admin credentials for database access, see logfile !
index_state:
myFHEMdb:
TIME 1583865617.58589
VALUE Index Report_Idx doesn't exist. Please create the index by "set rep.myFHEMdb index recreate_Report_Idx" command !
sql_processing_time:
myFHEMdb:
TIME 1583865617.58589
VALUE 0.0023
state:
myFHEMdb:
TIME 1583865807.35082
VALUE error
OLDREADINGS:
READINGS:
2020-03-10 19:43:27 errortext Can't use admin credentials for database access, see logfile !
2020-03-10 19:43:27 state error
Attributes:
allowDeletion 1
device KG.Flur.Thermostat,KG.Werkzeug.Thermostat
expimpfile /opt/fhem/backup/exp_myFHEMdb.sql
icon time_note
reading measured-temp
room Technik->DbLog
showproctime 1
timestamp_begin 2019-11-01 00:00:00
timestamp_end 2019-11-01 10:44:00
verbose 4
Zitat
Der verwendete Datenbank-Nutzer benötigt das ALTER, CREATE und INDEX Privileg.
set <name> adminCredentials <User> <Passwort>
MySQL [fhem]> SELECT TIMESTAMP,DEVICE,READING,VALUE,LAG(VALUE) OVER w AS 'DELTA' FROM history WINDOW w AS (ORDER BY TIMESTAMP) where DEVICE = 'PV_Anlage_1' AND TIMESTAMP > "2020-03-14_00:00:00";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'w AS 'DELTA' FROM history WINDOW w AS (ORDER BY TIMESTAMP) where DEVICE = 'PV_Anla' at line 1
mysql> SELECT
t, val,
LAG(val) OVER w AS 'lag',
LEAD(val) OVER w AS 'lead',
val - LAG(val) OVER w AS 'lag diff',
val - LEAD(val) OVER w AS 'lead diff'
FROM series
WINDOW w AS (ORDER BY t);
+----------+------+------+------+----------+-----------+
| t | val | lag | lead | lag diff | lead diff |
+----------+------+------+------+----------+-----------+
| 12:00:00 | 100 | NULL | 125 | NULL | -25 |
| 13:00:00 | 125 | 100 | 132 | 25 | -7 |
| 14:00:00 | 132 | 125 | 145 | 7 | -13 |
| 15:00:00 | 145 | 132 | 140 | 13 | 5 |
| 16:00:00 | 140 | 145 | 150 | -5 | -10 |
| 17:00:00 | 150 | 140 | 200 | 10 | -50 |
| 18:00:00 | 200 | 150 | NULL | 50 | NULL |
+----------+------+------+------+----------+-----------+
SELECT TIMESTAMP,DEVICE,READING,VALUE,LAG(VALUE) OVER (ORDER BY TIMESTAMP) AS DELTA FROM history where DEVICE = "MySTP_5000" AND TIMESTAMP > "2020-03-14 00:00:00";
MySQL [fhem]> select version();
+-----------------+
| version() |
+-----------------+
| 5.5.60-0+deb7u1 |
+-----------------+
root@raspberrypi:/# apt-get install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
mysql-server is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
root@raspberrypi:/#
ZitatWelches MySQL oder Maria Image verwendet Ihr? Am liebsten waere mir ein Docker Container, weil man ja nicht alles selber machen kann :-)Ich selbst benutze Docker im DB Umfeld nicht sondern verwende die Pakete auf meiner Synology und greife remote darauf zu.
ZitatJa, passt.
Einen Dump mit DBRep habe ich schon getestet, das wird sicher der schnellste weg sein.
Zitat von: DS_Starter am 08 November 2019, 16:25:35
in meinem contrib liegt die Version 8.29.0.
In dieser Version habe ich wie versprochen ein Feature zur FullDay-Erweiterung eingebaut, welches hier https://forum.fhem.de/index.php/topic,104710.msg986236.html#msg986236 requestet/besprochen wurde.
Zitat von: ch.eick am 16 März 2020, 11:12:08
Wie wäre ein DBRep Device pro Anforderung?
Zitat
Ich habe ja dann schon pro automatisiertes Bereinigung ein at (oder ähnliches). Dann ein zusätzliches RepDevice, dann steigt die Anzahl unnötig hoch ?
ZitatNun muss ich jedesmal die Attribute ändern und wehe ich vertippe mich hier mal oder vergesse d:7 aufd:60 zu ändern vor dem Löschen.... Dann ist eine Menge wegNaja, so ist die Philosophie der DbRep-Anwendung nicht gedacht.
Zitat von: DS_Starter am 16 März 2020, 18:53:35
Naja, so ist die Philosophie der DbRep-Anwendung nicht gedacht.
ZitatSo könnte ich mir speziell bei den Funktionen delEntries und reduceLog einen Einbau/Erweiterung von optionalen Angaben vorstellen. Allerdings kann es nicht den kompletten Umfang der möglichen Zeitabgrenzungen, die DbRep bietet, umfassen.Ich weiss nicht welchen vollständigen Umfang Du meinst. Aber ich für meinen Teil, wäre für meine regelmäßigen NICHT automatisierten Reinigungsaktionen vollkommen zufrieden, wenn ich bei beiden bestimmten kann welches Reading und welcher Zeitraum. Das waren für mich persönlich bisher die beiden wichtigsten Funktionen. Sicherlich kann das Ding noch mehr aber bsw. del(seq)Doublets kann man auch wunderbar automatisch einsetzen, WENN man es eh in eine Abfrage setzen kann :)
Es kann maximal eine einfache Angabe der zu berücksichtigenden +/- Tage sein, sonst wird es zu kompliziert.
Ich schaue mir das mal an
2020.03.17 10:44:50 2: DbRep DatenbankReport - user "" doesn't have rights "INDEX" and "ALTER" as needed - try use adminCredentials automatically !
2020.03.17 10:44:50 2: DbRep DatenbankReport - ERROR - adminCredentials not set. Use "set DatenbankReport adminCredentials" first.
2020.03.17 10:44:50 2: DbRep DatenbankReport - ERROR - admin credentials are needed for database operation, but are not set or can't read it
2020.03.17 10:51:35 3: DbRep DatenbankReport - ################################################################
2020.03.17 10:51:35 3: DbRep DatenbankReport - ### New Index operation ###
2020.03.17 10:51:35 3: DbRep DatenbankReport - ################################################################
2020.03.17 10:51:35 3: DbRep DatenbankReport - Command: index recreate_Report_Idx
2020.03.17 10:51:35 2: DbRep DatenbankReport - user "" doesn't have rights "INDEX" and "ALTER" as needed - try use adminCredentials automatically !
2020.03.17 10:51:35 2: DbRep DatenbankReport - ERROR - adminCredentials not set. Use "set DatenbankReport adminCredentials" first.
2020.03.17 10:51:35 2: DbRep DatenbankReport - ERROR - admin credentials are needed for database operation, but are not set or can't read it
ZitatMuss ich zwingend eine user und passwort vergeben um das Modul nutzen zu können?Nein, braucht SQLite ohnehin nicht.
defmod Rep.Einspeisung.Strom.Jahr DbRep DBLOG
attr Rep.Einspeisung.Strom.Jahr aggregation no
attr Rep.Einspeisung.Strom.Jahr devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.Einspeisung.Strom.Jahr device SMA_Energy_Meter
attr Rep.Einspeisung.Strom.Jahr diffAccept 2300
attr Rep.Einspeisung.Strom.Jahr event-on-update-reading state
attr Rep.Einspeisung.Strom.Jahr group Berechnungen Solar
attr Rep.Einspeisung.Strom.Jahr reading Einspeisung_WirkP_Zaehler_Diff
attr Rep.Einspeisung.Strom.Jahr room System
attr Rep.Einspeisung.Strom.Jahr showproctime 1
attr Rep.Einspeisung.Strom.Jahr timeout 180
attr Rep.Einspeisung.Strom.Jahr timestamp_begin current_year_begin
attr Rep.Einspeisung.Strom.Jahr timestamp_end current_year_end
attr Rep.Einspeisung.Strom.Jahr userExitFn setDumEnergy .*:.*
attr Rep.Einspeisung.Strom.Jahr verbose 2
ZitatIdealerweise gäbe es eine Funktion, die einen Wert direkt in ein anderes Reading schreibt - also den Umweg über das Notify aus dem Wiki spart.Was soll ich sagen ... die Anforderung gab es schon mal und steht auf meiner ToDo ... Habs aber immer wieder nach hinten geschoben ::) Jetzt bekommt das Feature wieder etwas Rückenwind.
Zitat von: DS_Starter am 17 März 2020, 11:35:44
HI,
Nein, braucht SQLite ohnehin nicht.
Diese Logs sind irreführend und ich hatte sie in der aktuellen Version eliminiert.
Update DbRep bitte mal (aktuell auf 8.32.4-s21429/2020-03-15). Dann sollte das passen.
LG,
Heiko
Zitat von: DS_Starter am 17 März 2020, 16:48:53
Ich könnte mit vorstellen zusätzlich zu der Option writeToDB eine weitere Option writeToDBSingle (z.B.) anzubieten die generell nur einen Point schreibt.
Überlege aber grad noch ob sich evtl. schon mit den jetzt eingebauten Mitteln dieses Verhalten erreichen lässt ...
Zitat von: ritter_runkel am 17 März 2020, 19:30:56
Idealerweise gäbe es eine Funktion, die einen Wert direkt in ein anderes Reading schreibt - also den Umweg über das Notify aus dem Wiki spart.
Für mich würde das Sinn machen ;-)
help dbrep
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
ZitatCorona machte vermutlich möglich - vielen Dank für die Funktion "writeToDBSingle"Wenn ich ehrlich bin, habe ich gerade jetzt mehr Stress als sonst. Es müssen in der Situation Wege gefunden und organisiert werden um den Betrieb stabil zu halten, sodass der Kunde (fast) nichts merkt. Ich arbeite an den Modulen meist bis (sehr) spät Abends um etwas zu bauen und zu testen.
Zitat von: DS_Starter am 18 März 2020, 22:01:55
Hallo miteinander,
ich habe einiges abgearbeitet und eine neue Version zum Test bereitgestellt.
Neu ist:
SET @device = 'Heizung';
SELECT t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
FROM history t1
INNER JOIN
(select max(TIMESTAMP) AS TIMESTAMP,DEVICE,READING
from history
where DEVICE = @device and
TIMESTAMP > NOW() - INTERVAL 1 DAY
group by READING) x
ON x.TIMESTAMP = t1.TIMESTAMP AND
x.DEVICE = t1.DEVICE AND
x.READING = t1.READING;
z.B.
MySQL [fhem]> SET @device = 'Heizung';
Query OK, 0 rows affected (0.001 sec)
MySQL [fhem]> SELECT t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
-> FROM history t1
-> INNER JOIN
-> (select max(TIMESTAMP) AS TIMESTAMP,DEVICE,READING
-> from history
-> where DEVICE = @device and
-> TIMESTAMP > NOW() - INTERVAL 1 DAY
-> group by READING) x
-> ON x.TIMESTAMP = t1.TIMESTAMP AND
-> x.DEVICE = t1.DEVICE AND
-> x.READING = t1.READING;
+---------------------+---------+---------------------------+-------------------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+---------+---------------------------+-------------------+
| 2020-03-19 19:21:15 | Heizung | ambientTemperature | 12.4 |
| 2020-03-19 19:16:15 | Heizung | averageAmbientTemperature | 11.5 |
| 2020-03-19 06:56:14 | Heizung | counterHeatQHeating | 6978.9 |
| 2020-03-19 12:01:14 | Heizung | counterHeatQPool | 992.8 |
| 2020-03-19 12:01:14 | Heizung | counterHeatQTotal | 12897.0 |
| 2020-03-19 11:56:14 | Heizung | flowDispersion | 10.4 |
| 2020-03-19 19:21:15 | Heizung | flowTemperature | 24.5 |
| 2020-03-19 19:16:15 | Heizung | heatingBufferTemperature | 27.1 |
| 2020-03-19 19:06:15 | Heizung | heatingSystemCircPump | off |
| 2020-03-19 19:21:15 | Heizung | heatSourceIN | 16.5 |
| 2020-03-19 12:01:14 | Heizung | heatSourceMotor | off |
| 2020-03-19 18:36:15 | Heizung | hotWaterCircPumpExtern | off |
| 2020-03-19 19:01:15 | Heizung | hotWaterTemperature | 59.4 |
| 2020-03-19 12:21:14 | Heizung | hotWaterTemperatureTarget | 50.0 |
| 2020-03-19 12:06:14 | Heizung | opStateHeatPump1 | Wärmepumpe steht |
| 2020-03-19 19:21:15 | Heizung | opStateHeatPump2 | seit 07:23:21 |
| 2020-03-19 12:06:14 | Heizung | opStateHeatPump3 | Keine Anforderung |
| 2020-03-19 14:01:15 | Heizung | opStateHotWater | Temp. OK |
| 2020-03-19 19:16:15 | Heizung | returnTemperature | 27.1 |
| 2020-03-19 19:06:15 | Heizung | returnTemperatureExtern | 28.7 |
| 2020-03-19 19:01:15 | Heizung | returnTemperatureHeating | 27.4 |
| 2020-03-19 19:16:15 | Heizung | returnTemperatureTarget | 24.1 |
| 2020-03-19 12:21:14 | Heizung | SWTin_PV-Eigenverbrauch | 0 |
+---------------------+---------+---------------------------+-------------------+
23 rows in set (0.132 sec)
MySQL [fhem]> SET @device = 'PV_Anlage_1';
Query OK, 0 rows affected (0.001 sec)
MySQL [fhem]> SELECT t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
-> FROM history t1
-> INNER JOIN
-> (select max(TIMESTAMP) AS TIMESTAMP,DEVICE,READING
-> from history
-> where DEVICE = @device and
-> TIMESTAMP > NOW() - INTERVAL 1 DAY
-> group by READING) x
-> ON x.TIMESTAMP = t1.TIMESTAMP AND
-> x.DEVICE = t1.DEVICE AND
-> x.READING = t1.READING;
+---------------------+-------------+-------------------------------------------------------+------------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-------------+-------------------------------------------------------+------------+
| 2020-03-19 19:26:20 | PV_Anlage_1 | Actual_battery_charge_-minus_or_discharge_-plus_Power | 401 |
| 2020-03-19 19:15:21 | PV_Anlage_1 | Actual_battery_charge_usable_Power | 7347 |
| 2020-03-19 19:15:21 | PV_Anlage_1 | Act_state_of_charge | 92.00 |
| 2020-03-19 19:25:22 | PV_Anlage_1 | Battery_temperature | 24.10 |
| 2020-03-19 19:26:16 | PV_Anlage_1 | Daily_yield | 36913.14 |
| 2020-03-19 19:26:14 | PV_Anlage_1 | Home_own_consumption_from_battery | 367.83 |
| 2020-03-19 19:26:18 | PV_Anlage_1 | Home_own_consumption_from_grid | 3.00 |
| 2020-03-19 19:26:15 | PV_Anlage_1 | Home_own_consumption_from_PV | 0.17 |
| 2020-03-19 00:02:15 | PV_Anlage_1 | Inverter_state | 6 |
| 2020-03-19 19:26:20 | PV_Anlage_1 | Monthly_yield | 385511.69 |
| 2020-03-19 19:26:14 | PV_Anlage_1 | Power_DC1 | -0.12 |
| 2020-03-19 19:21:17 | PV_Anlage_1 | Power_DC2 | -0.11 |
| 2020-03-19 19:26:20 | PV_Anlage_1 | Power_DC_Sum | -0.23 |
| 2020-03-19 19:26:20 | PV_Anlage_1 | Total_DC_Power | 401.50 |
| 2020-03-19 19:26:20 | PV_Anlage_1 | Total_DC_Power_Max | 400.6228 |
| 2020-03-19 19:00:22 | PV_Anlage_1 | Total_PV_Power_reserve | 0 |
| 2020-03-19 19:26:13 | PV_Anlage_1 | Total_yield | 1400978.38 |
| 2020-03-19 19:26:20 | PV_Anlage_1 | Voltage_DC1 | 18.83 |
| 2020-03-19 19:26:22 | PV_Anlage_1 | Voltage_DC2 | 9.61 |
| 2020-03-19 19:26:18 | PV_Anlage_1 | Yearly_yield | 952188.25 |
+---------------------+-------------+-------------------------------------------------------+------------+
26 rows in set (0.214 sec)
ZitatIch habe mir da mal SQL ueberlegt und frage mich nun wohin damitNaja, es gibt doch im DbRep das "set ... sqlSpecial".
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
2020-03-19 23:42:41 Global global ATTR SQL_Rep timeDiffToNow 3600
2020-03-19 23:42:42 HP1000 Wetterstation wind_speed: 0.4
2020-03-19 23:42:44 DbRep SQL_Rep running
2020-03-19 23:42:44 DbRep SQL_Rep 2020-03-19__/__wemoszaehler_OG_current_5min__AVGAM__no_aggregation: 9.8150
2020-03-19 23:42:44 DbRep SQL_Rep done
2020-03-19 23:43:02 Global global ATTR SQL_Rep timeDiffToNow 86400
2020-03-19 23:43:09 DbRep SQL_Rep running
2020-03-19 23:43:09 DbRep SQL_Rep 2020-03-19__/__wemoszaehler_OG_current_5min__AVGAM__no_aggregation: 4.7490
Internals:
DATABASE testsystem_fhem
DEF SQL_Log
FUUID 5e6bf086-f33f-8d79-ce6c-1037df4f23ecb31c
FVERSION 93_DbRep.pm:v8.32.4-s21429/2020-03-15
LASTCMD averageValue display
MODEL Client
NAME SQL_Rep
NOTIFYDEV global,SQL_Rep
NR 40
NTFY_ORDER 50-SQL_Rep
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE SQL_Log
GRANTS TRIGGER,REPLICATION SLAVE,EXECUTE,CREATE,DROP,CREATE TEMPORARY TABLES,EVENT,PROCESS,DELETE,REFERENCES,INDEX,RELOAD,INSERT,REPLICATION CLIENT,SHOW VIEW,CREATE VIEW,LOCK TABLES,ALTER ROUTINE,FILE,SELECT,CREATE ROUTINE,ALTER,UPDATE
IDRETRIES 3
MINTS 2020-01-26 00:00:00
PACKAGE main
SQLHIST
VERSION 8.32.4
CV:
aggregation no
aggsec 1
destr 2020-03-19
dsstr 2020-03-19
epoch_seconds_end 1584658549
mestr 03
msstr 03
testr 23:55:49
tsstr 01:09:09
wdadd 345600
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
REDUCELOG:
SQL_Rep
reduceLog
52:53
average
INCLUDE=Nebenzaehler:wemoszaehler_EG_current_5min
OLDREADINGS:
READINGS:
2020-03-19 23:55:49 2020-03-19__/__wemoszaehler_OG_current_5min__AVGAM__no_aggregation 4.7837
2020-03-19 23:55:49 state done
Attributes:
allowDeletion 1
reading wemoszaehler_OG_current_5min
room DB Log_Rep,
timeDiffToNow 86400
verbose 3
Zitat von: DS_Starter am 19 März 2020, 21:54:19
* der Spezial SQL von Christian ist eingebaut. Aufruf mit
set <name> sqlSpecial recentReadingsOfDevice
ZitatVerstehe ich die Doku und entsprechende Einstellungen richtig, dass in meinem Fall der Durchschnitt für den Zeitraum aktuelleZeit-3600(bzw 86400)sek -> BIS aktuelleZeit berechnet wird ?
ZitatOFF TOPIC:
Meine Idee wäre dann 1-7 Tage mit ungefilterten Werten arbeiten (anzeigen)
Der 5 und 30 Minuten Schnitt wird "live" von der DB erzeugt
Livedaten werden alle 7-x Tage mit Reduce Log dann auf Stunden Schnitt verringert und die 5-30 Minuten Schnittwerte sind ja immernoch vorhanden
ZitatWow, damit hatte ich jetzt nicht gerechnet, ich hatte gerade mal eine Stunde ueber etwas nachgedacht und schon scheint es zu einer interessanten Abfrage geworden zu sein.
Zitat von: DS_Starter am 20 März 2020, 09:37:57
@Andreas ... freut mich dass deine Test auch erfolgreich waren und wow ... herzlichen Dank! War überrascht und freue mich natürlich sehr über die Anerkennung ! :D
MySQL [fhem]> SET @diff=0;
Query OK, 0 rows affected (0.001 sec)
MySQL [fhem]> SET @delta=NULL;
Query OK, 0 rows affected (0.001 sec)
MySQL [fhem]> SELECT t1.TIMESTAMP,t1.READING,t1.VALUE,t1.DIFF,t1.DELTA
-> FROM
-> (
-> SELECT TIMESTAMP,READING,VALUE,
-> cast((VALUE-@diff) AS DECIMAL(3,1)) AS DIFF,
-> @diff:=VALUE AS curr_V,
-> TIMESTAMPDIFF(MINUTE,@delta,TIMESTAMP) AS DELTA,
-> @delta:=TIMESTAMP AS curr_T
-> FROM history
-> WHERE DEVICE = 'Heizung' AND
-> READING = 'hotWaterTemperature' AND
-> TIMESTAMP >= NOW() - INTERVAL 1 DAY
-> ORDER BY TIMESTAMP
-> ) t1;
+---------------------+---------------------+-------+------+-------+
| TIMESTAMP | READING | VALUE | DIFF | DELTA |
+---------------------+---------------------+-------+------+-------+
| 2020-03-19 15:11:15 | hotWaterTemperature | 60.7 | 60.7 | NULL |
| 2020-03-19 15:16:15 | hotWaterTemperature | 60.9 | 0.2 | 5 |
| 2020-03-19 15:21:15 | hotWaterTemperature | 60.7 | -0.2 | 5 |
| 2020-03-19 16:16:15 | hotWaterTemperature | 60.6 | -0.1 | 55 |
| 2020-03-19 16:21:15 | hotWaterTemperature | 60.7 | 0.1 | 5 |
| 2020-03-19 16:26:15 | hotWaterTemperature | 60.6 | -0.1 | 5 |
| 2020-03-19 17:21:15 | hotWaterTemperature | 60.4 | -0.2 | 55 |
| 2020-03-19 18:11:15 | hotWaterTemperature | 60.0 | -0.4 | 50 |
| 2020-03-19 18:35:20 | hotWaterTemperature | 59.9 | -0.1 | 24 |
| 2020-03-19 18:41:15 | hotWaterTemperature | 59.7 | -0.2 | 5 |
| 2020-03-19 18:46:15 | hotWaterTemperature | 59.5 | -0.2 | 5 |
| 2020-03-19 19:01:15 | hotWaterTemperature | 59.4 | -0.1 | 15 |
| 2020-03-19 19:31:15 | hotWaterTemperature | 59.2 | -0.2 | 30 |
| 2020-03-19 19:56:21 | hotWaterTemperature | 59.0 | -0.2 | 25 |
| 2020-03-19 20:16:21 | hotWaterTemperature | 58.9 | -0.1 | 20 |
| 2020-03-19 20:21:21 | hotWaterTemperature | 59.0 | 0.1 | 5 |
| 2020-03-19 20:26:21 | hotWaterTemperature | 58.9 | -0.1 | 5 |
| 2020-03-19 20:46:24 | hotWaterTemperature | 58.7 | -0.2 | 20 |
| 2020-03-19 21:11:24 | hotWaterTemperature | 58.5 | -0.2 | 25 |
| 2020-03-19 21:16:24 | hotWaterTemperature | 58.7 | 0.2 | 5 |
| 2020-03-19 21:21:24 | hotWaterTemperature | 58.5 | -0.2 | 5 |
| 2020-03-19 21:41:24 | hotWaterTemperature | 58.4 | -0.1 | 20 |
| 2020-03-19 21:46:24 | hotWaterTemperature | 58.5 | 0.1 | 5 |
| 2020-03-19 21:51:24 | hotWaterTemperature | 58.4 | -0.1 | 5 |
| 2020-03-19 22:11:24 | hotWaterTemperature | 58.2 | -0.2 | 20 |
| 2020-03-19 22:35:20 | hotWaterTemperature | 58.0 | -0.2 | 23 |
| 2020-03-19 22:36:24 | hotWaterTemperature | 57.9 | -0.1 | 1 |
| 2020-03-19 22:41:25 | hotWaterTemperature | 57.7 | -0.2 | 5 |
| 2020-03-19 22:51:24 | hotWaterTemperature | 57.6 | -0.1 | 9 |
| 2020-03-19 23:10:00 | hotWaterTemperature | 57.4 | -0.2 | 18 |
| 2020-03-19 23:16:24 | hotWaterTemperature | 57.2 | -0.2 | 6 |
| 2020-03-19 23:21:24 | hotWaterTemperature | 56.9 | -0.3 | 5 |
| 2020-03-19 23:31:24 | hotWaterTemperature | 56.8 | -0.1 | 10 |
| 2020-03-19 23:36:24 | hotWaterTemperature | 56.9 | 0.1 | 5 |
| 2020-03-19 23:41:24 | hotWaterTemperature | 56.8 | -0.1 | 5 |
| 2020-03-20 00:01:24 | hotWaterTemperature | 56.6 | -0.2 | 20 |
| 2020-03-20 00:26:24 | hotWaterTemperature | 56.5 | -0.1 | 25 |
| 2020-03-20 00:46:24 | hotWaterTemperature | 56.3 | -0.2 | 20 |
| 2020-03-20 01:06:25 | hotWaterTemperature | 56.1 | -0.2 | 20 |
| 2020-03-20 01:26:25 | hotWaterTemperature | 56.0 | -0.1 | 20 |
| 2020-03-20 01:56:25 | hotWaterTemperature | 55.8 | -0.2 | 30 |
| 2020-03-20 02:16:25 | hotWaterTemperature | 55.7 | -0.1 | 20 |
| 2020-03-20 02:36:25 | hotWaterTemperature | 55.5 | -0.2 | 20 |
| 2020-03-20 03:01:25 | hotWaterTemperature | 55.4 | -0.1 | 25 |
| 2020-03-20 03:36:25 | hotWaterTemperature | 55.2 | -0.2 | 35 |
| 2020-03-20 03:51:25 | hotWaterTemperature | 55.1 | -0.1 | 15 |
| 2020-03-20 04:11:25 | hotWaterTemperature | 54.9 | -0.2 | 20 |
| 2020-03-20 04:41:25 | hotWaterTemperature | 54.8 | -0.1 | 30 |
| 2020-03-20 05:06:25 | hotWaterTemperature | 54.6 | -0.2 | 25 |
| 2020-03-20 05:26:25 | hotWaterTemperature | 54.5 | -0.1 | 20 |
| 2020-03-20 05:30:20 | hotWaterTemperature | 54.3 | -0.2 | 3 |
| 2020-03-20 05:36:25 | hotWaterTemperature | 53.9 | -0.4 | 6 |
| 2020-03-20 05:41:25 | hotWaterTemperature | 53.7 | -0.2 | 5 |
| 2020-03-20 05:56:25 | hotWaterTemperature | 53.6 | -0.1 | 15 |
| 2020-03-20 06:00:20 | hotWaterTemperature | 53.4 | -0.2 | 3 |
| 2020-03-20 06:01:25 | hotWaterTemperature | 53.3 | -0.1 | 1 |
| 2020-03-20 06:06:25 | hotWaterTemperature | 52.9 | -0.4 | 5 |
| 2020-03-20 06:11:25 | hotWaterTemperature | 52.7 | -0.2 | 5 |
| 2020-03-20 06:21:25 | hotWaterTemperature | 52.6 | -0.1 | 10 |
| 2020-03-20 06:31:25 | hotWaterTemperature | 52.4 | -0.2 | 10 |
| 2020-03-20 06:46:25 | hotWaterTemperature | 52.3 | -0.1 | 15 |
| 2020-03-20 06:56:25 | hotWaterTemperature | 52.2 | -0.1 | 10 |
| 2020-03-20 07:11:25 | hotWaterTemperature | 52.0 | -0.2 | 15 |
| 2020-03-20 07:26:25 | hotWaterTemperature | 51.9 | -0.1 | 15 |
| 2020-03-20 07:41:25 | hotWaterTemperature | 51.7 | -0.2 | 15 |
| 2020-03-20 07:56:25 | hotWaterTemperature | 51.6 | -0.1 | 15 |
| 2020-03-20 08:05:20 | hotWaterTemperature | 51.3 | -0.3 | 8 |
| 2020-03-20 08:06:25 | hotWaterTemperature | 51.2 | -0.1 | 1 |
| 2020-03-20 08:11:25 | hotWaterTemperature | 50.8 | -0.4 | 5 |
| 2020-03-20 08:16:25 | hotWaterTemperature | 50.7 | -0.1 | 5 |
| 2020-03-20 08:21:25 | hotWaterTemperature | 50.5 | -0.2 | 5 |
| 2020-03-20 08:35:20 | hotWaterTemperature | 50.2 | -0.3 | 13 |
| 2020-03-20 08:36:25 | hotWaterTemperature | 50.1 | -0.1 | 1 |
| 2020-03-20 08:41:25 | hotWaterTemperature | 49.7 | -0.4 | 5 |
| 2020-03-20 08:46:25 | hotWaterTemperature | 49.4 | -0.3 | 5 |
| 2020-03-20 09:06:25 | hotWaterTemperature | 49.3 | -0.1 | 20 |
| 2020-03-20 09:11:25 | hotWaterTemperature | 49.4 | 0.1 | 5 |
| 2020-03-20 09:16:25 | hotWaterTemperature | 49.3 | -0.1 | 5 |
| 2020-03-20 09:36:25 | hotWaterTemperature | 49.2 | -0.1 | 20 |
| 2020-03-20 09:56:26 | hotWaterTemperature | 49.0 | -0.2 | 20 |
| 2020-03-20 10:06:26 | hotWaterTemperature | 48.9 | -0.1 | 10 |
| 2020-03-20 10:11:26 | hotWaterTemperature | 48.5 | -0.4 | 5 |
| 2020-03-20 10:16:26 | hotWaterTemperature | 45.4 | -3.1 | 5 |
| 2020-03-20 10:21:26 | hotWaterTemperature | 43.6 | -1.8 | 5 |
| 2020-03-20 10:26:26 | hotWaterTemperature | 44.1 | 0.5 | 5 |
| 2020-03-20 10:31:26 | hotWaterTemperature | 45.5 | 1.4 | 5 |
| 2020-03-20 10:36:26 | hotWaterTemperature | 47.5 | 2.0 | 5 |
| 2020-03-20 10:41:26 | hotWaterTemperature | 49.7 | 2.2 | 5 |
| 2020-03-20 10:46:26 | hotWaterTemperature | 51.6 | 1.9 | 5 |
| 2020-03-20 10:51:26 | hotWaterTemperature | 53.4 | 1.8 | 5 |
| 2020-03-20 10:56:26 | hotWaterTemperature | 54.9 | 1.5 | 5 |
| 2020-03-20 11:01:26 | hotWaterTemperature | 56.5 | 1.6 | 5 |
| 2020-03-20 11:06:26 | hotWaterTemperature | 58.0 | 1.5 | 5 |
| 2020-03-20 11:11:26 | hotWaterTemperature | 59.5 | 1.5 | 5 |
| 2020-03-20 11:16:26 | hotWaterTemperature | 60.7 | 1.2 | 5 |
| 2020-03-20 11:21:26 | hotWaterTemperature | 61.1 | 0.4 | 5 |
| 2020-03-20 11:41:26 | hotWaterTemperature | 61.3 | 0.2 | 20 |
| 2020-03-20 11:56:26 | hotWaterTemperature | 61.1 | -0.2 | 15 |
| 2020-03-20 12:01:26 | hotWaterTemperature | 61.3 | 0.2 | 5 |
| 2020-03-20 13:06:26 | hotWaterTemperature | 61.1 | -0.2 | 65 |
| 2020-03-20 14:51:26 | hotWaterTemperature | 60.9 | -0.2 | 105 |
| 2020-03-20 15:21:26 | hotWaterTemperature | 60.7 | -0.2 | 30 |
+---------------------+---------------------+-------+------+-------+
102 rows in set (0.017 sec)
Zitat von: DS_Starter am 20 März 2020, 16:55:22
nicht in dieser Form. Bestimmt wieder super brauchbar, cool und danke Christian 8)
Zitat
ich bräuchte einen sprechenden Namen für diesen select in der sqlSpecial DropDown-Liste. Hast du eine Idee dafür ?
Ich denk morgen wieder ;-)
set DBRep reduceLog 120:150 average INCLUDE=read_OG_SZ_conditions:Humidity
2020.03.21 10:44:31.071 3: DbRep DBRep - ################################################################
2020.03.21 10:44:31.072 3: DbRep DBRep - ### new reduceLog run ###
2020.03.21 10:44:31.073 3: DbRep DBRep - ################################################################
2020.03.21 10:44:31.114 4: DbRep DBRep - -------- New selection ---------
2020.03.21 10:44:31.114 4: DbRep DBRep - Command: reduceLog
2020.03.21 10:44:31.116 4: DbRep DBRep - Timestamp begin human readable: not set
2020.03.21 10:44:31.116 4: DbRep DBRep - Timestamp end human readable: not set
Month '-1' out of range 0..11 at ./FHEM/93_DbRep.pm line 2086.
Zitat von: DS_Starter am 21 März 2020, 12:27:02
böse Falle denke ich. Kann es sein dass du keines der time.*-Attribute gesetzt hast ?
Also timeDiffToNow usw. ....
Attributes:
DbLogExclude .*
allowDeletion 1
group FileLog
icon own-log@darkgrey
room System->Log & Web
[b] timeDiffToNow d:155
timeOlderThan d:150[/b]
verbose 4
2020.03.21 12:42:03.182 4 : DbRep DBRep - -------- New selection ---------
2020.03.21 12:42:03.182 4 : DbRep DBRep - Command: reduceLog
2020.03.21 12:42:03.185 4 : DbRep DBRep - timeDiffToNow - year: , day: 150, hour: , min: , sec:
2020.03.21 12:42:03.185 4 : DbRep DBRep - Year 2020 is leap year
2020.03.21 12:42:03.186 4 : DbRep DBRep - startMonth: 9 endMonth: 2 lastleapyear: 2020 baseYear: 2019 diffdaylight:1 isdaylight:0
2020.03.21 12:42:03.187 4 : DbRep DBRep - timeOlderThan - year: 0, day: 120, hour: 0, min: 0, sec: 0
2020.03.21 12:42:03.188 4 : DbRep DBRep - Year 2020 is leap year
2020.03.21 12:42:03.189 4 : DbRep DBRep - startMonth: 8 endMonth: 10 lastleapyear: 2020 baseYear: 2019 diffdaylight:0 isdaylight:0
2020.03.21 12:42:03.189 4 : DbRep DBRep - FullDay option: 0
2020.03.21 12:42:03.190 4 : DbRep DBRep - Time difference to current time for calculating Timestamp begin: 13050001 sec
2020.03.21 12:42:03.191 4 : DbRep DBRep - Timestamp begin human readable: 2019-10-22 12:42:02
2020.03.21 12:42:03.192 4 : DbRep DBRep - Time difference to current time for calculating Timestamp end: 10454401 sec
2020.03.21 12:42:03.192 4 : DbRep DBRep - Timestamp end human readable: 2019-11-21 12:42:02
2020-03-21 12:42:03.263 DbRep DBRep reduceLog database is running - be patient and see Logfile !
Zitatjetzt bin ich verwirrt ???)das war doch Sinn der Sache, wenn ich ....reduceLog 120:150... eingebe, oder ?Das glaube ich dir, dass du jetzt verwirrt bist, sorry ???
Zitat von: DS_Starter am 21 März 2020, 12:53:58
Es gibt nur innerhalb des Programmablaufs eine Logik die mit den time.*-Attributen arbeitet. Die 120:150 übertseuern die Attribute wie gewollt, soweit so gut. Nur wenn keine Zeitattribute gesetzt sind, gibt auch nichts zu übersteuern ... Rest kannst du dir denken ... ;)
Ich korrigiere das gerade ...
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Error - Wrong time limits. The <nn> (days newer than) option must be greater than the <no> (older than) one !
Internals:
DATABASE fhemdb
DEF logdb
FUUID 5c729a24-f33f-dfd6-1187-471cb684065376b3
FVERSION 93_DbRep.pm:v8.38.0-s21473/2020-03-21
LASTCMD delEntries 1000
MODEL Client
NAME dbrep.deleteoldentries
NOTIFYDEV global,dbrep.deleteoldentries
NR 210
NTFY_ORDER 50-dbrep.deleteoldentries
ROLE Client
STATE Error - Wrong time limits. The <nn> (days newer than) option must be greater than the <no> (older than) one !
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
GRANTS SELECT,INDEX,INSERT,CREATE,TRIGGER,EXECUTE,FILE,ALTER,UPDATE,SHOW VIEW,CREATE VIEW,CREATE TEMPORARY TABLES,DROP,DELETE,EVENT,CREATE ROUTINE,ALTER ROUTINE
IDRETRIES 3
MINTS 2018-07-26 21:55:41
PACKAGE main
SQLHIST
VERSION 8.38.0
CV:
aggregation no
aggsec 1
destr 2017-06-25
dsstr 2018-07-26
epoch_seconds_end 1498379517
mestr 06
msstr 07
testr 10:31:57
tsstr 21:55:41
wdadd 345600
yestr 2017
ysstr 2018
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
DELENTRIES:
dbrep.deleteoldentries
delEntries
1000
OLDREADINGS:
READINGS:
2020-03-22 10:31:58 state Error - Wrong time limits. The <nn> (days newer than) option must be greater than the <no> (older than) one !
Attributes:
alias DBRep Device zum Löschen alter Einträge
allowDeletion 1
event-on-update-reading state
icon security
room 92_Database
showproctime 1
timeOlderThan y:2
timeout 86400
set dbrep.deleteoldentries delEntries
set dbrep.deleteoldentries delEntries 1000
MINTS 2018-07-26 21:55:41
set dbrep.deleteoldentries delEntries 1000
set dbrep.deleteoldentries delEntries 1000:1010
timediffToNow y:3
Zitat von: DS_Starter am 22 März 2020, 12:04:15
ich vermute das Modul hat recht. :)
ZitatDein ältester Datensatz in der DB istCode AuswählenMINTS 2018-07-26 21:55:41
d.h. jünger als zwei Jahre. Dieser Timestamp wird implizit verwendet als timediffToNow (d.h. newer than) falls das Attribut timediffToNow nicht gesetzt ist (war schon immer so).
ZitatEbenfalls wird es funktionieren, wenn du zuätzlich
Code AuswählentimediffToNow y:3
setzt. Auch in diesem Fall ist die Forderung erfüllt.
Zitat von: flummy1978 am 20 März 2020, 00:23:12
Meine Idee wäre dann 1-7 Tage mit ungefilterten Werten arbeiten (anzeigen)
Der 5 und 30 Minuten Schnitt wird "live" von der DB erzeugt
Livedaten werden alle 7-x Tage mit Reduce Log dann auf Stunden Schnitt verringert und die 5-30 Minuten Schnittwerte sind ja immernoch vorhanden
Zitat von: DS_Starter am 27 März 2020, 09:04:09
die Anregung weitere Aggregationen bei reduceLog anzubieten gab es schon mal. Ich würde das auch gerne machen, war bisher aber an der dann doch hohen Komplexität gescheitert (oder war nicht zielstrebig genug ;) ).
Ich probiere mal was und melde mich wieder ...
8802 Log3 ($name, 4, "DbRep $name - UPDATE history SET TIMESTAMP=$updDate $updHour:30:00, EVENT='rl_av_h', VALUE=$average WHERE DEVICE=$hourHash->{$hourKey}->[1] AND READING=$hourHash->{$hourKey}->[3] AND TIMESTAMP=$hourHash->{$hourKey}->[0] AND VALUE=$hourHash->{$hourKey}->[4]->[0]");
"SELECT Avg( VALUE ) AS 'rl_av_h[m][s]' FROM `history` WHERE `TIMESTAMP` BETWEEN '2020-03-27 08:00:00.000000' AND '2020-03-27 08:15:00.000000' AND DEVICE ....... AND READING LIKE '%humidity%' " zu generieren ?
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat von: DS_Starter am 28 März 2020, 21:07:38(Für mich) absolut perfekt. Macht genau das was es tun soll inkl. richtigem Zeitpunkt. Aktuell läuft es automatisch mit einem at alle 10 Min aber auch die 60-90 Min Tests mit "display" Ausgabe waren erfolgreich :) *thumbsup*
ich habe eine neue DbRep Version zum Test in mein contrib geladen.
Die Funktionen sumValue und averageValue sind nun ergänzt um die Option writeToDBInTime.
Zitat von: DS_Starter am 16 März 2020, 11:38:10Das habe ich probiert und in dem DBRep Device, das den neuen Befehl alle 10 Min ausführen soll, ein
..... Allerdings kannst du das alles mit nur einem at Device antriggern. Stichwort heisst Chain mit den Attribut executeAfterProc.
ZitatDa du auf meine Vorschlag nicht eingegangen bist, geh ich mal davon aus, dass es vollkommener Blödsinn war was ich gefunden / mir gedacht habe? ::)Ganz und garnicht. Ich arbeite nur meinen Plan schrittweise ab. Das kommt noch dran. Momentan bin ich dabei die automatische Übertragung von Readings in andere Devices zu implementieren.
ZitatDummerweise führt er dann diesen Befehl nicht einmal aus, sondern ständig. Ich denke mal es liegt daran, dass ich das gleiche Device aufrufen wie das, das den Befehl "executeAfterProc" beinhaltet und mir damit ungewollt eine Endlosschleife bastele.Das ist richtig. Naja, ich dachte es ist relativ klar dass man sich nicht immer selbst aufrufen sollte. ;) Im Wiki-Beispiel habe ich auch geschriebendass man 4 verschiedene DbReps anlegt/kopiert ... Aber ich hebe es nochmal hervor :)
ZitatFür mich dennoch immernoch sehr interessant: Gibt es eine Möglichkeit die Funktionen die Du dort nutzt (egal ob reduceLog, delEntries oder auch delSeqDoublets), irgendwie "hintenrum" (direkter Perl Befehl oder sonst etwas) mit entsprechenden Variablen zu übergeben,ohne dafür jedes mal ein neues DBRep Device zu nutzen ?Das kann so pauschal nicht beantwortet werden. Wenn es reines SQL ist, kannst du es einem Rep mit sqlCmd übergeben. Kann natürlich immer ein anderes Statement sein.
Zitat von: DS_Starter am 29 März 2020, 17:48:37:o Das erklärt einiges :-\ (Nein es ist sicherlich nicht schlecht - siehe Erklärung, aber für mich "Neuland")
Ich glaube ich habe über 100 Devices ...
2020.03.30 03:34:15.305 3: DbRep DBrep_Wetter_windgust - number of lines updated in "DBLogging": 1
2020.03.30 03:34:15.306 3: DbRep DBrep_Wetter_windgust - number of lines inserted into "DBLogging": 1
Internals:
DATABASE fhem
DEF myDbLog
FUUID 5c575e19-f33f-4fe4-eeb6-712d9409654163f4
FVERSION 93_DbRep.pm:v8.38.0-s21473/2020-03-21
LASTCMD exportToFile
MODEL Client
NAME myDbRep
NOTIFYDEV global,myDbRep
NR 506
NTFY_ORDER 50-myDbRep
ROLE Client
STATE done » ProcTime: sec
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE myDbLog
GRANTS CREATE ROUTINE,CREATE TEMPORARY TABLES,REFERENCES,CREATE VIEW,SHOW VIEW,USAGE,INDEX,EXECUTE,UPDATE,EVENT,TRIGGER,LOCK TABLES,ALTER,DROP,CREATE,SELECT,INSERT,DELETE,ALTER ROUTINE
IDRETRIES 3
MINTS 2014-06-09 09:32:12
PACKAGE main
VERSION 8.38.0
CV:
aggregation no
aggsec 1
destr 2020-03-30
dsstr 2020-03-30
epoch_seconds_end 1585557228
mestr 03
msstr 03
testr 10:33:48
tsstr 08:33:47
wdadd 604800
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2020-03-30 10:33:48 state done
Attributes:
device .*
dumpCompress 1
dumpDirLocal /opt/fhem/backup/db/
event-on-change-reading .*
expimpfile /opt/fhem/backup/db/%Y%m%d_%T.csv
group DB-Log
optimizeTablesBeforeDump 1
room Server
stateFormat { ReadingsVal($name,"state", undef) eq "running" ? "renaming" : ReadingsVal($name,"state", undef). " » ProcTime: ".ReadingsVal($name,"sql_processing_time", undef)." sec"}
timeDiffToNow h:2
2020.03.30 10:29:53.775 1: main::CallFn called by fhem.pl (757)
2020.03.30 10:29:53.775 1: main::telnet_Read called by fhem.pl (3772)
2020.03.30 10:29:53.775 1: main::AnalyzeCommandChain called by ./FHEM/98_telnet.pm (255)
2020.03.30 10:29:53.775 1: main::AnalyzeCommand called by fhem.pl (1100)
2020.03.30 10:29:53.775 1: main::AnalyzePerlCommand called by fhem.pl (1171)
2020.03.30 10:29:53.775 1: (eval) called by fhem.pl (1146)
2020.03.30 10:29:53.774 1: main::expfile_ParseDone called by (eval 66785) (1)
2020.03.30 10:29:53.774 1: main::readingsEndUpdate called by ./FHEM/93_DbRep.pm (5895)
2020.03.30 10:29:53.774 1: main::evalStateFormat called by fhem.pl (4748)
2020.03.30 10:29:53.774 1: (eval) called by fhem.pl (4645)
2020.03.30 10:29:53.774 1: main::__ANON__ called by (eval 66786) (1)
2020.03.30 10:29:53.774 1: stacktrace:
2020.03.30 10:29:53.774 1: eval: {expfile_ParseDone('myDbRep|568|0.01366,0.016039|0|.*|%|/opt/fhem/backup/db/20200330_10:29:53.csv')}
2020.03.30 10:29:53.774 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 66786) line 1.
Zitat von: DS_Starter am 30 März 2020, 11:20:42
@kadettilac89 ... Hmm, kannte ich noch nicht und kommt bei mir auch nicht. Habe eine Weile auf den Code geschaut und kam momentan noch nicht dahinter. Vermutung: du verwendest in deinem stateFormat eine Auswertung des Readings sql_processing_time, erzeugst es aber nicht. D.h. die angegebene Verknüpfung sollte auf jeden Fall eine Warnung werfen.
stateFormat { ReadingsVal($name,"state", "") eq "running" ? "renaming" : ReadingsVal($name,"state", ""). " » ProcTime: ".ReadingsVal($name,"sql_processing_time", "")." sec"}
Internals:
.FhemMetaInternals 1
DATABASE user_fhem
DEF DBLogging
FUUID 5e809fec-f33f-8d79-7131-84e8c885a567a522
FVERSION 93_DbRep.pm:v8.39.0-s21473/2020-03-21
LASTCMD averageValue writeToDBInTime
MODEL Client
NAME DBrep_Wetter_windgust
NOTIFYDEV global,DBrep_Wetter_windgust
NR 276
NTFY_ORDER 50-DBrep_Wetter_windgust
ROLE Client
STATE done
TYPE DbRep
UTF8 1
.attraggr:
.attrminint:
HELPER:
DBLOGDEVICE DBLogging
GRANTS CREATE TEMPORARY TABLES,RELOAD,ALTER ROUTINE,UPDATE,INSERT,SHOW VIEW,CREATE VIEW,DELETE,DROP,TRIGGER,REPLICATION CLIENT,REFERENCES,INDEX,REPLICATION SLAVE,CREATE,CREATE ROUTINE,LOCK TABLES,EXECUTE,PROCESS,SELECT,ALTER,EVENT,FILE
IDRETRIES 3
MINTS 2019-09-22 01:30:00
PACKAGE main
SQLHIST
VERSION 8.39.0
CV:
aggregation no
aggsec 1
destr 2020-03-30
dsstr 2020-03-30
epoch_seconds_end 1585570932
mestr 03
msstr 03
testr 14:22:12
tsstr 14:12:12
wdadd 604800
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2020-03-30 07:52:13 .associatedWith Wetterstation
2020-03-30 14:22:13 2020-03-30__Wetterstation__wind_gust__AVGAM__no_aggregation 8.0000
2020-03-30 14:22:13 db_lines_processed 2
2020-03-30 14:22:13 state done
Attributes:
DbLogExclude .*
allowDeletion 1
device Wetterstation
group FileLog
icon own-log@darkgrey
reading wind_gust
room System->Datenbank
timeDiffToNow m:10
timeOlderThan m:0
verbose 2
1. 2020-03-30 02:04:14 Wetterstation HP1000 calculated avgam_no_wind_gust 502790
2. 2020-03-30 02:34:14 Wetterstation HP1000 calculated avgam_no_wind_gust 0.0000 502823
2020.03.30 08:05:21.042 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 2130.
2020.03.30 08:05:21.043 1: stacktrace:
2020.03.30 08:05:21.043 1: main::__ANON__ called by ./FHEM/98_SVG.pm (2130)
2020.03.30 08:05:21.044 1: main::SVG_render called by ./FHEM/98_SVG.pm (1186)
2020.03.30 08:05:21.044 1: main::SVG_doShowLog called by ./FHEM/98_SVG.pm (258)
2020.03.30 08:05:21.044 1: main::SVG_FwFn called by ./FHEM/01_FHEMWEB.pm (2042)
2020.03.30 08:05:21.045 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (1159)
2020.03.30 08:05:21.045 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (590)
2020.03.30 08:05:21.045 1: main::FW_Read called by fhem.pl (3772)
2020.03.30 08:05:21.046 1: main::CallFn called by fhem.pl (757)
ZitatAuszug:Das ist gemein, je mehr Du einbaust umso mehr Möglichkeiten / Ideen kommen mir, wie ich SQL mehr Arbeit überlassen kann, statt FHEM ::) ;D Die Wildcards .* werden sicherlich viele erfreuen, die sich mit DBs nicht auskennen. Ich denke es ist auf jeden Fall eine große Erleichterung, weil man die "Schreibstruktur" aus den anderen Modulen,Attributen etc von FHEM behalten kann.
* autoForward - wenn aktiviert, werden die Ergebnisreadings einer Funktion in ein oder mehrere Devices übertragen.
Die Definition erfolgt in der Form:
{
"<source-reading> => "<dest.device> [=> <dest.-reading>]",
"<source-reading> => "<dest.device> [=> <dest.-reading>]",
...
}
ZitatEdit: @Andreas ... ich habe 126 DbRep-Devs. Habe mit jsonlist2 eine Übersicht erzeugt. Das ist ganz schön viel. Was interessiert dich daran bzw. wozu brauchst du das?Ich lerne gern von anderen, die etwas womit ich mich einigermaßen auskenne, bereits wesentlich besser / intensiver / strukturierter einsetzen als ich. Bedeutet: Zwingend brauchen, würde ich von Dir nichts direkt, aber mich würde die Struktur interessieren. Du hast ja mal geschrieben, dass Du gern mit Rohdaten arbeitest und diese dann gezielt filterst. Das macht in vielen Fällen durchaus Sinn, benötigt aber auch ein gewisses Vorgehen. Als Beispiel:
ZitatEin 0.000 wird wenn der berechnete/ermittelte Wert tatsächlich 0 ergibt, wohingegen leer geliefert wird wenn wegen fehlender Werte kein Ergebnis berechnet/ermittelt werden konnte.
Ich konnte noch nicht herausfinden, wann er den Wert LEER lässt und wann er eine 0.000 einfügt.
Zitat von: DS_Starter am 30 März 2020, 16:51:09Ich denke mit den PV-Daten kann ich dienen, ich werde mich mal dran setzen und versuchen das Beispiel zu adaptieren.
Bezüglich der Vorgehnsweise PV-Anlage... hattest du dir im Wiki schon mal das angeschaut:
https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschusseinspeisung ?
Ist zwar schon etwas älter und DbRep kann inzwischen noch mehr, aber dennoch ein guter Einstieg denke ich.
Zitat von: ch.eick am 31 März 2020, 13:18:50
DBrep zu finden, um die Berechnungen direkt aus der DB nutzen zu koennen.
Zitat von: flummy1978 am 31 März 2020, 15:15:22Alles gut, ich schreibe auch manchmal mit mir selber...
Ich habe keine PV Anlage ;D
ZitatIf you want write results back to database, attributes "device" and "reading" must be set. In that case "device" mustn't be a devspec and mustn't contain SQL-Wildcard (%). The "reading" to evaluate has to be a single reading and no list.
Zitatreading - Abgrenzung der DB-Selektionen auf ein bestimmtes oder mehrere Readings sowie exkludieren von Readings. Mehrere Readings werden als Komma separierte Liste angegeben. Es können SQL Wildcard (%) verwendet werden.
Wird dem Reading bzw. der Reading-Liste ein "EXCLUDE=" vorangestellt, werden diese Readings nicht inkludiert.
Beispiele:
attr <name> reading etotal
attr <name> reading et%
attr <name> reading etotal,etoday
attr <name> reading eto%,Einspeisung EXCLUDE=etoday
attr <name> reading etotal,etoday,Ein% EXCLUDE=%Wirkleistung
Internals:
.FhemMetaInternals 1
.triggerUsed 0
DATABASE user_fhem
DEF DBLogging
FUUID 5e809fec-f33f-8d79-7131-84e8c885a567a522
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD averageValue writeToDBInTime
MODEL Client
NAME DBrep_Wetter_windgust
NOTIFYDEV global,DBrep_Wetter_windgust
NR 269
NTFY_ORDER 50-DBrep_Wetter_windgust
ROLE Client
STATE done
TYPE DbRep
UTF8 1
.attraggr:
.attrminint:
HELPER:
DBLOGDEVICE DBLogging
GRANTS INSERT,DROP,UPDATE,LOCK TABLES,CREATE TEMPORARY TABLES,EVENT,REPLICATION CLIENT,REPLICATION SLAVE,SHOW VIEW,ALTER ROUTINE,ALTER,FILE,RELOAD,EXECUTE,CREATE,DELETE,INDEX,REFERENCES,CREATE ROUTINE,PROCESS,CREATE VIEW,SELECT,TRIGGER
IDRETRIES 3
MINTS 2019-09-22 01:30:00
PACKAGE main
SQLHIST
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-04-28
dsstr 2020-04-28
epoch_seconds_end 1588078598
mestr 04
msstr 04
testr 14:56:38
tsstr 14:46:38
wdadd 518400
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2020-04-27 20:41:08 .associatedWith Wetterstation
2020-04-28 14:56:39 2020-04-28__Wetterstation__wind_gust__AVGAM__no_aggregation -
2020-04-28 14:56:39 db_lines_processed 0
2020-04-28 14:56:39 state done
Attributes:
DbLogExclude .*
alias Windspitzen Schnitt errechnen
allowDeletion 1
device Wetterstation
group Automatische DB Bereinigung
icon own-log@darkgrey
reading wind_gust,luminosity
room System->Datenbank
timeDiffToNow m:10
timeOlderThan m:0
verbose 2
ZitatBedeutet das zwangsläufig, dass es bei dieser Abfrage keine Möglichkeit gibt mehrere Readings eines Devices auf einen Schlag zu bearbeiten, oder hab ich da nen kleinen Bug gefunden, anstatt das Feature zu nutzen ?Da muss ich selbst auch erstmal eine Weile drüber sinnieren :) .. melde mich.
Zitat von: DS_Starter am 28 April 2020, 15:51:35
Da muss ich selbst auch erstmal eine Weile drüber sinnieren :) .. melde mich.
ZitatAlso das ist kein Bug (hoffentlich bist du jetzt nicht enttäuscht :D ), sondern ich habe es absichtlich so beschränkt.
Bedeutet das zwangsläufig, dass es bei dieser Abfrage keine Möglichkeit gibt mehrere Readings eines Devices auf einen Schlag zu bearbeiten, oder hab ich da nen kleinen Bug gefunden, anstatt das Feature zu nutzen ?
Zitat von: DS_Starter am 30 April 2020, 17:12:56readingNameMap wäre in der Tat eine Möglichkeit ...
Bezüglich Reading ist es sogar einfach. Hier kann ich den User verpflichten in solchen Fällen zwangsweise das Attribut readingNameMap zu setzen. Schwieriger ist es beim Devicenamen wenn mehrere Devices bzw. Namen mit Wildcards
verwendet werden.
Wenn man also das Problem des eindeutigen Devicenamens organisatorisch gelöst bekommt, könnte man diese Begrenzungen beseitigen.
Werde es mal auf meine ToDo setzen , bin aber auch für Ideen offen... :)
Zitat von: DS_Starter am 01 Mai 2020, 20:01:08
Vermutlich ist es aber garnicht das was du möchtest. Sondern ich vermute du willst eine Liste von Devices und Readings angeben deren Werte in einem Lauf ermittelt, aber im Ergebnis getrennt voneinander berechnet werden. Das wäre nicht möglich und mit getrennten DbReps zu machen.
Device | Reading |
Wetterstation | wind_gust |
Wetterstation | luminosity |
Hauptzaehler | Schnitt_30min |
NEbenzaehler | Schnitt_30min |
usw | usf |
ZitatIrgendwie befürchte ich gerade dass der Raum mit meinen Datenbankdevices grad droht zu überfüllen ::)Da ist immer noch Luft :D
attr TYPE=DbRep fastStart 1
Zitat von: DS_Starter am 01 Mai 2020, 21:08:40
Da ist immer noch Luft :DCode Auswählenattr TYPE=DbRep fastStart 1
Dadurch kontaktieren die Devices nicht die DB beim FHEM Start, sondern erst wenn sie das erste Mal eine Aktion ausführen.
ZitatSehr sehr guter (Performence) Hinweis ... aber dann mal so als Idee... wäre das nicht grundsätzlich gut das als Standard zu machen ? Und nur wenn man es unbedingt will (wobei sich da für mich kein wirklicher Grund erschließt) dann fastStart 0 setzen zu müssen ?Ja, habe ich auch schon dran gedacht. Werde ich wohl machen wenn ich mal wieder am Modul arbeite.
defmod Libelium_DbLog DbLog ./db.conf .*:.*
setstate Libelium_DbLog connected
setstate Libelium_DbLog 2020-05-03 17:02:32 state connected
%dbconfig= (
connection => "mysql:database=database;host=db;port=3306",
user => "user",
password => "password",
);
defmod Libelium_Db DbRep Libelium_DbLog
attr Libelium_Db verbose 5
setstate Libelium_Db disconnected
setstate Libelium_Db 2020-05-03 16:53:33 errortext DBI connect('database=database;;host=192.168.1.171;;port=3306','user',...) failed: Unknown database 'database' at ./FHEM/93_DbRep.pm line 1841.\
setstate Libelium_Db 2020-05-03 16:53:33 state disconnected
failed: Unknown database 'database'
ZitatMir scheint ich hätte gemäss Vorgaben alle Perl Module installiert. Ich habe auch user und password über adminCredentials eingegeben.Damit hat es ganz sicher nichts zu tun. Dann kämen ganz andere Fehler.
ZitatWhat ? :) Wenn "history" und "current" fehlen, sollte DbLog aber auch Probleme haben. Weniger mit dem connect an sich, wohl aber beim Logging. Das gilt auch für DbRep beim Zugriff auf die Tabellen. Die Connect-Infos werden direkt aus dem angegebenen DbLog-Device gezogen.
Kann es damit zu tun haben dass die MySQL Datenbank extern angelegt wurde und die Tabellen "history" und "current" fehlen, dafür aber eine Tabelle mit einer anderen Bezeichnung vorhanden ist?
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf .*:.*
FUUID 5eaeca15-f33f-8d74-606d-aa6c4b8136403502
FVERSION 93_DbLog.pm:v4.9.12-s21801/2020-04-29
MODE synchronous
MODEL MYSQL
NAME Libelium_DbLog
NR 191
NTFY_ORDER 50-Libelium_DbLog
PID 1083
REGEXP .*:.*
STATE connected
TYPE DbLog
UTF8 0
dbconn mysql:database=meshliumDB;host=192.168.1.171;port=3306
dbuser root
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
PACKAGE main
READINGCOL 64
TC current
TH history
TYPECOL 64
UNITCOL 32
VALUECOL 128
VERSION 4.9.12
Helper:
DBLOG:
state:
Libelium_DbLog:
TIME 1588535549.30821
VALUE connected
READINGS:
2020-05-03 21:52:29 state connected
Attributes:
Result of version check
Used Perl version: 5.26.1
Used DBI (Database independent interface) version: 1.643
Used DBD (Database driver) version mysql: 4.046
Used DbLog version: 4.9.12.
Your local DbLog module is up to date.
Recommendation: No update of DbLog is needed.
Result of configuration read check
Connection parameter store type: file
Connection parameter: Connection -> mysql:database=meshliumDB;host=192.168.1.171;port=3306, User -> root, Password -> read o.k.
Result of connection check
Connection to database was not successful.
Recommendation: Plese check logfile for further information.
MySQL [MeshliumDB]> show tables;
+----------------------+
| Tables_in_MeshliumDB |
+----------------------+
| bluetoothData |
| currentSensors |
| encryptionData |
| gpsData |
| last_data |
| meshlium |
| sensorParser |
| sensors |
| tokens |
| users |
| waspmote |
| wifiScan |
| zigbeeData |
+----------------------+
2020.05.05 17:00:33 2: DbLog Libelium_DbLog -> Error table history - DBD::mysql::st execute_array failed: Table 'MeshliumDB.history' doesn't exist [err was 1146 now 2000000000]
SqlResultRow_01
ID|ID_WASP|ID_SECRET|FRAME_TYPE|FRAME_NUMBER|SENSOR|VALUE|TIMESTAMP|SYNC|RAW|PARSER_TYPE
2020-05-05 17:22:55
SqlResultRow_02
1|sur001|403470039|128|72|TCB|16.37|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_03
2|sur001|403470039|128|72|HUMB|85.8|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_04
3|sur001|403470039|128|72|SOILT|15.83|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_05
4|sur001|403470039|128|72|UV|26.78|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_06
5|sur001|403470039|128|72|TCC|14.31|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_07
6|sur001|403470039|128|72|SOIL|5524.86|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_08
7|sur001|403470039|128|72|LW|0.000|2020-05-05 17:13:38|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_09
8|sur002|403470039|128|73|IN_TEMP|17.00|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_10
9|sur002|403470039|128|73|BAT|98|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_11
10|sur002|403470039|128|73|GMT|54|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_12
11|sur002|403470039|128|73|RSSI|85|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_13
12|sur002|403470039|128|73|RAM|73|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_14
13|sur002|403470039|128|73|STR|0|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
SqlResultRow_15
14|sur002|403470039|128|73|RAD|4.180645|2020-05-05 17:14:03|0|noraw|1
2020-05-05 17:22:55
sqlCmd
SELECT * FROM sensorParser WHERE id_wasp LIKE 'sur00_'
2020-05-05 17:22:55
sqlResultNumRows
14
2020-05-05 17:22:55
state
done
2020-05-05 17:22:55
ZitatOffenbar möchte ich etwas was man mit der Kombination DbLog und DbRep gar nicht tun kann, nämlich mit FHEM eine Tabelle aus einer MySql Datenbank auslesen, welche weder "history" noch "current" heisst?!Das ist richtig. Aktuell müssen die Tabellen genau so heißen. Allerdings hatte ich bereits angefangen, eigene Tabellennamen zu ermöglichen. Das ist aber noch nicht fertig umgesetzt und ist noch bisschen Zukunftsmusik.
ZitatAber immerhin: mit dem set Befehl "sqlCmd SELECT * FROM sensorParser WHERE id_wasp LIKE 'sur00_'" kriege ich schon mal die Werte meiner Sensoren als Readings dargestellt:...sqlCmd ist "frei". Da kannst du quasi alles mit machen und auch andere Tabellen auswerten sofern der User die Rechte hat.
Meine Frage wäre nun ob man wie man den Befehl sqlCmd regelmässig ausführen lassen kann?
sqlCmd SELECT * FROM sensorParser WHERE id_wasp LIKE 'sur00_'
define At.DbRep.LogDB.FindNaDevs at +*72:00:00 set Rep.LogDB.FindNaDevs sqlCmd select device, count(*) from history group by DEVICE
attr At.DbRep.LogDB.FindNaDevs icon clock
attr At.DbRep.LogDB.FindNaDevs room Datenbank->Produktiv
define At.DbRep.LogDB.FindNaDevs at +*72:00:00 set Rep.LogDB.FindNaDevs sqlCmd SELECT * FROM sensorParser WHERE id_wasp LIKE 'sur00_'
attr At.DbRep.LogDB.FindNaDevs icon clock
attr At.DbRep.LogDB.FindNaDevs room Datenbank->Produktiv
ZitatDie SyncDB kann nur im gleichen Pfad liegen oder es ist z.B. auf dem NAS eine weitere DB-Instanz nötig (Client)!?Die SyncDB kann irgendwo liegen, also auch auf einem NAS oder bei AWS zB.
set DbRep_Source syncStandby DbLog_Standby
ZitatFür das NAS etc. brauche ich, soweit mein Verständnis, einen Mariadb-Client oder einen weiteren Mariadb-Server. Dafür dürfte der Router zu schwach sein!?Router würde ich komplett ausschließen für MariaDB-Server. Falls das überhaupt geht handelt man sich mM nach nur Schwierigkeiten ein.
ZitatWenn ich nun auf dem Raspi mit Mariadb die SyncDB anlege, liegt diese auf dem gleichen USB-Stick oder kann ich ein zweites datadir angeben?Verschiedene datadir geht nicht in einer my.cnf. Das ist ja die Konfiguration für den einen vorhandenen MaraDB Server.
2020.05.06 13:19:03 3: At.DbRep.LogDB.FindNaDevs: Please define Rep.LogDB.FindNaDevs first
ZitatMuss ich das zusätzlich definieren oder gibt es da einen Schreibfehler?Naja, das war ja nur ein Beispiel ;) Du must natürlich dein eigenes DbRep-Device statt "Rep.LogDB.FindNaDevs" eintragen welches du für das sqlCmd verwenden willst.
ZitatAch ja und - wie kann ich die andauernd wiederkehrende Fehlermeldung im DbLog betreffend den fehlenden Tables unterbinden?verbose 0 im DbLog sollte helfen oder du könntest das DbLog-Device überhaupt mit disable = 1 deaktivieren. Du kannst eh nichts loggen und brauchst das Device nur für die Definition des DbRep.
SqlResultRow_121 120|sur001|403470039|128|42|TCB|15.99|2020-05-06 13:59:16|0|noraw|1 2020-05-06 14:48:43
TCB 15.99
Internals:
.FhemMetaInternals 1
CFGFN
DATABASE user_fhem
DEF DBLogging
FUUID 5eb2a8fc-f33f-8d79-0d07-0169629de19e3382
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD syncStandby DBLoggingMonnestation
MODEL Client
NAME DbRep_syncStandby_LiveDB
NOTIFYDEV global,DbRep_syncStandby_LiveDB
NR 153824
NTFY_ORDER 50-DBLogging_Monnestation_syncStandby
ROLE Client
STATE error : SQL-Zeit:
TYPE DbRep
UTF8 1
.attraggr:
.attreour:
state
.attrminint:
HELPER:
DBLOGDEVICE DBLogging
GRANTS INDEX,CREATE ROUTINE,TRIGGER,DELETE,REPLICATION CLIENT,RELOAD,SHUTDOWN,ALTER,CREATE USER,INSERT,PROCESS,SHOW VIEW,EXECUTE,SHOW DATABASES,SELECT,ALTER ROUTINE,UPDATE,REPLICATION SLAVE,LOCK TABLES,CREATE VIEW,CREATE TEMPORARY TABLES,REFERENCES,FILE,DROP,EVENT,CREATE
IDRETRIES 3
MINTS 2019-09-22 01:30:00
PACKAGE main
SQLHIST
VERSION 8.40.0
CV:
aggregation day
aggsec 86400
destr 2020-05-06
dsstr 2020-05-01
epoch_seconds_end 1588770211
mestr 05
msstr 05
testr 15:03:31
tsstr 15:03:31
wdadd 259200
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
DBLogging:
TIME 1588766972.09021
VALUE initialized
OLDREADINGS:
READINGS:
2020-05-06 15:04:35 errortext DBD::mysql::st execute failed: Incorrect datetime value: ' ' for column `fhem_DB_LIVE`.`history`.`TIMESTAMP` at row 1 at ./FHEM/93_DbRep.pm line 11322.
2020-05-06 15:04:35 state error
Attributes:
DbLogExclude .*
aggregation no
event-on-update-reading state
fastStart 1
group FileLog
icon own-log
role Client
room System->Datenbank
showproctime 1
stateFormat { (ReadingsVal($name,"state", ""))." : SQL-Zeit: ".(ReadingsVal($name,"sql_processing_time", "")) }
timeDiffToNow d:5
verbose 4
2020.05.06 15:04:27.277 3: DbRep DbRep_syncStandby_LiveDB - total lines transfered to standby database: 11084
2020.05.06 15:04:27.278 3: DbRep DbRep_syncStandby_LiveDB - number of lines inserted into "DBLoggingMonnestation": 11084
2020.05.06 15:04:27.293 4: DbRep DbRep_syncStandby_LiveDB - SQL execute: SELECT TIMESTAMP,DEVICE,TYPE,EVENT,READING,VALUE,UNIT FROM history where TIMESTAMP >= '2020-05-06' AND TIMESTAMP <= '2020-05-06 15:03:31' ;
2020.05.06 15:04:34.440 1: PERL WARNING: Use of uninitialized value $date in concatenation (.) or string at ./FHEM/93_DbRep.pm line 11312.
2020.05.06 15:04:34.440 1: stacktrace:
2020.05.06 15:04:34.441 1: main::__ANON__ called by ./FHEM/93_DbRep.pm (11312)
2020.05.06 15:04:34.441 1: main::DbRep_WriteToDB called by ./FHEM/93_DbRep.pm (8566)
2020.05.06 15:04:34.441 1: main::DbRep_syncStandby called by FHEM/Blocking.pm (194)
2020.05.06 15:04:34.442 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2020.05.06 15:04:34.442 1: main::BlockingCall called by ./FHEM/93_DbRep.pm (2134)
2020.05.06 15:04:34.442 1: main::DbRep_Main called by ./FHEM/93_DbRep.pm (976)
2020.05.06 15:04:34.442 1: main::DbRep_Set called by fhem.pl (3772)
2020.05.06 15:04:34.443 1: main::CallFn called by fhem.pl (1900)
2020.05.06 15:04:34.443 1: main::DoSet called by fhem.pl (1932)
2020.05.06 15:04:34.443 1: main::CommandSet called by fhem.pl (1243)
2020.05.06 15:04:34.443 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2709)
2020.05.06 15:04:34.444 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (981)
2020.05.06 15:04:34.444 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (590)
2020.05.06 15:04:34.444 1: main::FW_Read called by fhem.pl (3777)
2020.05.06 15:04:34.444 1: main::CallFn called by fhem.pl (753)
2020.05.06 15:04:34.445 1: PERL WARNING: Use of uninitialized value $time in concatenation (.) or string at ./FHEM/93_DbRep.pm line 11312.
2020.05.06 15:04:34.445 1: stacktrace:
2020.05.06 15:04:34.445 1: main::__ANON__ called by ./FHEM/93_DbRep.pm (11312)
2020.05.06 15:04:34.446 1: main::DbRep_WriteToDB called by ./FHEM/93_DbRep.pm (8566)
2020.05.06 15:04:34.446 1: main::DbRep_syncStandby called by FHEM/Blocking.pm (194)
2020.05.06 15:04:34.446 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2020.05.06 15:04:34.446 1: main::BlockingCall called by ./FHEM/93_DbRep.pm (2134)
2020.05.06 15:04:34.447 1: main::DbRep_Main called by ./FHEM/93_DbRep.pm (976)
2020.05.06 15:04:34.447 1: main::DbRep_Set called by fhem.pl (3772)
2020.05.06 15:04:34.447 1: main::CallFn called by fhem.pl (1900)
2020.05.06 15:04:34.448 1: main::DoSet called by fhem.pl (1932)
2020.05.06 15:04:34.448 1: main::CommandSet called by fhem.pl (1243)
2020.05.06 15:04:34.448 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2709)
2020.05.06 15:04:34.448 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (981)
2020.05.06 15:04:34.449 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (590)
2020.05.06 15:04:34.449 1: main::FW_Read called by fhem.pl (3777)
2020.05.06 15:04:34.449 1: main::CallFn called by fhem.pl (753)
2020.05.06 15:04:34.450 2: DbRep DbRep_syncStandby_LiveDB - DBD::mysql::st execute failed: Incorrect datetime value: ' ' for column `fhem_DB_LIVE`.`history`.`TIMESTAMP` at row 1 at ./FHEM/93_DbRep.pm line 11322.
2020.05.06 15:04:34.991 2: DbRep DbRep_syncStandby_LiveDB - DBD::mysql::st execute failed: Incorrect datetime value: ' ' for column `fhem_DB_LIVE`.`history`.`TIMESTAMP` at row 1 at ./FHEM/93_DbRep.pm line 11322.
2020.05.06 15:04:35.027 4: DbRep DbRep_syncStandby_LiveDB -> BlockingCall change_Done finished
2020-05-05 23:59:49 read_OG_SZ_conditions READINGSPROXY Humidity: 50.4 Humidity 50.4 94065
2020-05-05 23:59:49 read_OG_SZ_conditions READINGSPROXY Humidity: 50.4 Humidity 50.4 44323
Zitat von: DS_Starter am 06 Mai 2020, 15:32:40Genau das war mein Ansatz ..
- das erste Problem kommt sicherlich daher dass du in deiner Quell-DB Datensätze ohne gültiges Datum hast, must du suchen und rausschmeißen
- das zweite Problem umgeht man am Besten indem man die Tabellen in der SyncDB mit einem primary Key anlegt. Steht direkt gleich zu Beginn des Kapitels im Wiki beschrieben -> https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Inhalte_einer_prim.C3.A4ren_Datenbank_in_eine_andere_Standby-Datenbank_.C3.BCbertragen_.28syncStandby.29
2020.05.06 16:52:00.813 1: PERL WARNING: Use of uninitialized value $date in concatenation (.) or string at ./FHEM/93_DbRep.pm line 11312.
2020.05.06 16:52:00.814 1: stacktrace:
2020.05.06 16:52:00.820 1: main::__ANON__ called by ./FHEM/93_DbRep.pm (11312)
2020.05.06 16:52:00.820 1: main::DbRep_WriteToDB called by ./FHEM/93_DbRep.pm (8566)
2020.05.06 16:52:00.821 1: main::DbRep_syncStandby called by FHEM/Blocking.pm (194)
2020.05.06 16:52:00.821 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2020.05.06 16:52:00.821 1: main::BlockingCall called by ./FHEM/93_DbRep.pm (2134)
2020.05.06 16:52:00.822 1: main::DbRep_Main called by ./FHEM/93_DbRep.pm (976)
2020.05.06 16:52:00.822 1: main::DbRep_Set called by fhem.pl (3772)
2020.05.06 16:52:00.823 1: main::CallFn called by fhem.pl (1900)
2020.05.06 16:52:00.823 1: main::DoSet called by fhem.pl (1932)
2020.05.06 16:52:00.823 1: main::CommandSet called by fhem.pl (1243)
2020.05.06 16:52:00.824 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2709)
2020.05.06 16:52:00.824 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (981)
2020.05.06 16:52:00.824 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (590)
2020.05.06 16:52:00.825 1: main::FW_Read called by fhem.pl (3777)
2020.05.06 16:52:00.825 1: main::CallFn called by fhem.pl (753)
2020.05.06 16:52:00.826 1: PERL WARNING: Use of uninitialized value $time in concatenation (.) or string at ./FHEM/93_DbRep.pm line 11312.
2020.05.06 16:52:00.826 1: stacktrace:
2020.05.06 16:52:00.826 1: main::__ANON__ called by ./FHEM/93_DbRep.pm (11312)
2020.05.06 16:52:00.827 1: main::DbRep_WriteToDB called by ./FHEM/93_DbRep.pm (8566)
2020.05.06 16:52:00.827 1: main::DbRep_syncStandby called by FHEM/Blocking.pm (194)
2020.05.06 16:52:00.828 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2020.05.06 16:52:00.828 1: main::BlockingCall called by ./FHEM/93_DbRep.pm (2134)
2020.05.06 16:52:00.828 1: main::DbRep_Main called by ./FHEM/93_DbRep.pm (976)
2020.05.06 16:52:00.829 1: main::DbRep_Set called by fhem.pl (3772)
2020.05.06 16:52:00.829 1: main::CallFn called by fhem.pl (1900)
2020.05.06 16:52:00.829 1: main::DoSet called by fhem.pl (1932)
2020.05.06 16:52:00.830 1: main::CommandSet called by fhem.pl (1243)
2020.05.06 16:52:00.830 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2709)
2020.05.06 16:52:00.831 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (981)
2020.05.06 16:52:00.831 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (590)
2020.05.06 16:52:00.831 1: main::FW_Read called by fhem.pl (3777)
2020.05.06 16:52:00.832 1: main::CallFn called by fhem.pl (753)
2020.05.06 16:52:02.736 3: DbRep DbRep_syncStandby_LiveDB - total lines transfered to standby database: 7781
2020.05.06 16:52:02.737 3: DbRep DbRep_syncStandby_LiveDB - number of lines inserted into "DBLoggingMonnestation": 354
Zitat... da ist jahrelanges Entwickeln eingeflossen ....Das merkt man sofort ... Schönes Fachwissen super umgesetzt :)
Wenn ich mit Rasenmähen fertig bin kann ich weiter mit dir und Andreas fachsimpeln.
ZitatWobei .... 300 davon übernimmt der (Määäääh)Robbi .. das hält sich also in GrenzenDas wird bei mir immer Handarbeit bleiben ... wegen der Bewegung ;) Sonst sonst man tatsächlich nur noch vor der Kiste, ohne Witz. Außerdem stehe ich mittlerweile den Dingern wegen dem Naturschutz etwas ablehnend gegenüber. Viele Kleintiere wie z.B. Igel fallen diesen Geräten zum Opfer. Vielleicht auch weil die Besitzer sie nicht richtig handhaben, mag sein :-\.
ZitatAber es löscht immernoch keine Einträge richtig ? D.h. Einträge die gesynct wurden und später in der QuellDB gelöscht werden, werden dann in der ZielDB nicht mehr aktualisiert oder ?Ja, du hast recht, müßte eigentlich copyStandby heißen. Es würde den Eintrag nicht löschen.
defmod Libelium_Db DbRep Libelium_DbLog
attr Libelium_Db userattr reading01Name reading01Regex
attr Libelium_Db allowDeletion 1
attr Libelium_Db reading01Name air_temperature
attr Libelium_Db reading01Regex (?s)HUMB\|([0-9.]+)
attr Libelium_Db sqlResultFormat json
attr Libelium_Db timeOlderThan 900
setstate Libelium_Db done
setstate Libelium_Db 2020-05-06 21:18:43 SqlResult {"001":"ID|ID_WASP|ID_SECRET|FRAME_TYPE|FRAME_NUMBER|SENSOR|VALUE|TIMESTAMP|SYNC|RAW|PARSER_TYPE","002":"1|sur001|403470039|128|22|TCB|13.22|2020-05-06
12:07:43|0|noraw|1","003":"2|sur001|403470039|128|22|HUMB|86.7|2020-05-06
12:07:43|0|noraw|1","004":"3|sur001|403470039|128|22|SOILT|14.60|2020-05-06
12:07:43|0|noraw|1","005":"4|sur001|403470039|128|22|UV|32.27|2020-05-06
12:07:43|0|noraw|1","006":"5|sur001|403470039|128|22|TCC|12.00|2020-05-06
12:07:43|0|noraw|1","007":"6|sur001|403470039|128|22|SOIL|5571.03|2020-05-06
12:07:43|0|noraw|1","008":"7|sur001|403470039|128|22|LW|0.000|2020-05-06
... etc ...
21:13:25|0|noraw|1","585":"584|sur002|403470039|128|121|GMT|54|2020-05-06
21:13:25|0|noraw|1","586":"585|sur002|403470039|128|121|RSSI|52|2020-05-06
21:13:25|0|noraw|1","587":"586|sur002|403470039|128|121|RAM|40|2020-05-06
21:13:25|0|noraw|1","588":"587|sur002|403470039|128|121|STR|0|2020-05-06
21:13:25|0|noraw|1","589":"588|sur002|403470039|128|121|RAD|4.180645|2020-05-06
21:13:25|0|noraw|1"}
setstate Libelium_Db 2020-05-06 21:18:43 sqlCmd SELECT * FROM sensorParser WHERE id_wasp LIKE 'sur00_'
setstate Libelium_Db 2020-05-06 21:18:43 sqlResultNumRows 588
setstate Libelium_Db 2020-05-06 21:18:43 state done
ZitatMuss ich da was anders machen?Ja, mal die CommandRef zum sqlCmd lesen. ;)
Zitat von: DS_Starter am 06 Mai 2020, 16:58:15Ich (und bin mir sicher einige andere auch) hätte da vermutlich nichts dagegen, wenn Du da mal wieder Lust zu basteln hättest. Ich weiss nicht wie andere das DB Log ansich einsetzen, aber durch meine anderen Beiträge hier merkt man, dass ich zu den leuten gehöre die in 1-2 Jahren nicht in ihre DB schauen wollen und feststellen OooOOoo die DB hat 10 GB OooOOoo jetzt weiß ich auch warum das Ding immer langsamer wurde, in den letzten Wochen / Monaten.
Ja, du hast recht, müßte eigentlich copyStandby heißen. Es würde den Eintrag nicht löschen.
Sollte ursprünglich ein richtiges Sync werden, ist aber "nur" ein kopieren geworden und nun scheue ich mich den Set Befehl umzubenennen. Vielleicht baue ich es ja auch noch aus ... wer weiß. :)
Zitat von: DS_Starter am 06 Mai 2020, 16:58:15Ich hab hier noch so viel Handarbeit drum herum, da bin ich echt froh, dass ich das nicht zwingend machen muss. Körperlich betonter Job und n "selber-Kernsanierer-Haus", verlangt einem schon viel ab, aber dennoch kann ich irgendwo auch Deine Skepsis nachvollziehen. Das liegt in der Tat (oftmals) an der falschen Handhabe, weil man sie bei bestimmtem Wetter / Jahreszeit einfach mal weglassen muss. Dann hat man es nicht verhindert, aber schon minimiert.
Das wird bei mir immer Handarbeit bleiben ... wegen der Bewegung ;) Sonst sonst man tatsächlich nur noch vor der Kiste, ohne Witz. Außerdem stehe ich mittlerweile den Dingern wegen dem Naturschutz etwas ablehnend gegenüber. Viele Kleintiere wie z.B. Igel fallen diesen Geräten zum Opfer. Vielleicht auch weil die Besitzer sie nicht richtig handhaben, mag sein :-\.
set Libelium_Db.Del delEntries 1:2
Error - Wrong time limits. The <nn> (days newer than) option must be greater than the <no> (older than) one !
defmod Libelium_Db.Del DbRep Libelium_DbLog
attr Libelium_Db.Del allowDeletion 1
attr Libelium_Db.Del comment löschen aller Einträge in Libelium_Db älter als 30 Minuten
attr Libelium_Db.Del devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Libelium_Db.Del event-on-update-reading state
attr Libelium_Db.Del room Datenbank->Produktiv
attr Libelium_Db.Del timeOlderThan 1800
setstate Libelium_Db.Del Error - Wrong time limits. The <nn> (days newer than) option must be greater than the <no> (older than) one !
setstate Libelium_Db.Del 2020-05-07 11:36:32 state Error - Wrong time limits. The <nn> (days newer than) option must be greater than the <no> (older than) one !
Zitat von: uwirt am 07 Mai 2020, 11:47:40Code Auswählen
set Libelium_Db.Del delEntries 1:2
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - -------- New selection ---------
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Command: delEntries
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - timeDiffToNow - year: , day: 2, hour: , min: , sec:
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Year 2020 is leap year
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - startMonth: 4 endMonth: 4 lastleapyear: baseYear: 2020 diffdaylight:1 isdaylight:1
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - timeOlderThan - year: 0, day: 1, hour: 0, min: 0, sec: 0
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Year 2020 is leap year
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - startMonth: 0 endMonth: 4 lastleapyear: 1 baseYear: 2020 diffdaylight:1 isdaylight:1
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - FullDay option: 0
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Time difference to current time for calculating Timestamp begin: 172801 sec
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Timestamp begin human readable: 2020-05-05 11:59:42
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Time difference to current time for calculating Timestamp end: 172801 sec
2020.05.07 11:59:43 4: DbRep Libelium_Db.Del - Timestamp end human readable: 2020-05-05 11:59:42
Zitat
2020.05.07 11:52:41.182 4 : DbRep DbRep_syncStandby_LiveDB - -------- New selection ---------
2020.05.07 11:52:41.182 4 : DbRep DbRep_syncStandby_LiveDB - Command: delEntries
2020.05.07 11:52:41.184 4 : DbRep DbRep_syncStandby_LiveDB - timeDiffToNow - year: , day: 251, hour: , min: , sec:
2020.05.07 11:52:41.185 4 : DbRep DbRep_syncStandby_LiveDB - Year 2020 is leap year
2020.05.07 11:52:41.185 4 : DbRep DbRep_syncStandby_LiveDB - startMonth: 7 endMonth: 4 lastleapyear: 2020 baseYear: 2019 diffdaylight:1 isdaylight:1
2020.05.07 11:52:41.186 4 : DbRep DbRep_syncStandby_LiveDB - timeOlderThan - year: 0, day: 250, hour: 0, min: 0, sec: 0
2020.05.07 11:52:41.187 4 : DbRep DbRep_syncStandby_LiveDB - Year 2020 is leap year
2020.05.07 11:52:41.187 4 : DbRep DbRep_syncStandby_LiveDB - startMonth: 8 endMonth: 7 lastleapyear: 2020 baseYear: 2019 diffdaylight:1 isdaylight:1
2020.05.07 11:52:41.188 4 : DbRep DbRep_syncStandby_LiveDB - FullDay option: 0
2020.05.07 11:52:41.188 4 : DbRep DbRep_syncStandby_LiveDB - Time difference to current time for calculating Timestamp begin: 21772801 sec
2020.05.07 11:52:41.189 4 : DbRep DbRep_syncStandby_LiveDB - Timestamp begin human readable: 2019-08-29 11:52:40
2020.05.07 11:52:41.189 4 : DbRep DbRep_syncStandby_LiveDB - Time difference to current time for calculating Timestamp end: 21686401 sec
2020.05.07 11:52:41.190 4 : DbRep DbRep_syncStandby_LiveDB - Timestamp end human readable: 2019-08-30 11:52:40
2020.05.07 11:52:41.422 3 : DbRep DbRep_syncStandby_LiveDB - Entries of user_fhem.history deleted: /--/--0
ZitatIch denke mal Du hast das schon korrekt und nicht als irgendwie Kritik verstanden ;)Wie kommst du denn darauf, wieso sollte ich ?
ZitatKann ich dann das entsprechende sqlCmd von einem anderen "at" aus auf dieselbe DbRep loslassen oder muss ich pro "at" ein eigenes DbRep erstellen?Technisch geht sowohl als auch. Ich empfehle für jede Aufgabe ein separates Device. Vor allem wenn man diverse Attribute gesetzt hat um zum Beispiel in deinem Fall die Ausgabe von sqlCmd zu formatieren.
ZitatDas geht alles in einem DbRep Device.
Es wird allerdings hier OT. Deswegen kopiere dir mal bitte das Rep.STP5000.Erzeugung.Monat auf ein anderes, zum Beispiel Rep.Report.
Und stelle dann ein List davon in den DbRep Thread oder mache wegen mir auch einen neuen auf. Dann schauen wir uns das am späten Nachmittag gemeinsam an. Bin grad etwas beschäftigt. ;)
Wenn du allein schon mal schauen willst, fetchrows istvdas Stichwort für DbRep.
LG,
Heiko
2020-05-17_20-57-41__1__SMA_Wechselrichter__etotal 455.958 2020-05-18 13:07:09
2020-05-18_04-55-24__1__SMA_Wechselrichter__etotal 4294967.295 2020-05-18 13:07:09
2020-05-18_05-28-56__1__SMA_Wechselrichter__etotal 455.958 2020-05-18 13:07:09
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec26a8e-f33f-cd72-b513-8c4f195609a12cf4
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD fetchrows history
MODEL Client
NAME Rep.Report
NOTIFYDEV global,Rep.Report
NR 33412
NTFY_ORDER 50-Rep.Report
ROLE Client
STATE <html>done - Warning: present rows exceed specified limit, adjust attribute <a href='https://fhem.de/commandref_DE.html#limit' target='_blank'>limit</a></html>
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-31
dsstr 2020-05-01
epoch_seconds_end 1590962399
mestr 05
msstr 05
testr 23:59:59
tsstr 00:00:00
wdadd 259200
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589800029.40616
VALUE <html>done - Warning
OLDREADINGS:
READINGS:
2020-05-18 13:07:09 2020-05-17_09-58-04__1__SMA_Wechselrichter__etotal 421.511
2020-05-18 13:07:09 2020-05-17_09-59-05__1__SMA_Wechselrichter__etotal 421.587
2020-05-18 13:07:09 2020-05-17_10-00-06__1__SMA_Wechselrichter__etotal 421.663
2020-05-18 13:07:09 2020-05-17_10-01-07__1__SMA_Wechselrichter__etotal 421.739
2020-05-18 13:07:09 2020-05-17_10-02-08__1__SMA_Wechselrichter__etotal 421.816
2020-05-18 13:07:09 2020-05-17_10-03-09__1__SMA_Wechselrichter__etotal 421.893
2020-05-18 13:07:09 2020-05-17_10-04-10__1__SMA_Wechselrichter__etotal 421.97
2020-05-18 13:07:09 2020-05-17_10-05-11__1__SMA_Wechselrichter__etotal 422.047
2020-05-18 13:07:09 2020-05-17_10-06-12__1__SMA_Wechselrichter__etotal 422.124
2020-05-18 13:07:09 2020-05-17_10-07-13__1__SMA_Wechselrichter__etotal 422.202
2020-05-18 13:07:09 2020-05-17_10-08-14__1__SMA_Wechselrichter__etotal 422.28
2020-05-18 13:07:09 2020-05-17_10-09-15__1__SMA_Wechselrichter__etotal 422.358
2020-05-18 13:07:09 2020-05-17_10-10-16__1__SMA_Wechselrichter__etotal 422.435
2020-05-18 13:07:09 2020-05-17_10-11-17__1__SMA_Wechselrichter__etotal 422.514
2020-05-18 13:07:09 2020-05-17_10-12-18__1__SMA_Wechselrichter__etotal 422.593
2020-05-18 13:07:09 2020-05-17_10-13-19__1__SMA_Wechselrichter__etotal 422.672
2020-05-18 13:07:09 2020-05-17_10-14-20__1__SMA_Wechselrichter__etotal 422.751
2020-05-18 13:07:09 2020-05-17_10-15-21__1__SMA_Wechselrichter__etotal 422.831
2020-05-18 13:07:09 2020-05-17_10-16-22__1__SMA_Wechselrichter__etotal 422.911
2020-05-18 13:07:09 2020-05-17_10-17-23__1__SMA_Wechselrichter__etotal 422.991
2020-05-18 13:07:09 2020-05-17_10-18-23__1__SMA_Wechselrichter__etotal 423.069
2020-05-18 13:07:09 2020-05-17_10-19-24__1__SMA_Wechselrichter__etotal 423.15
2020-05-18 13:07:09 2020-05-17_10-20-25__1__SMA_Wechselrichter__etotal 423.229
2020-05-18 13:07:09 2020-05-17_10-21-26__1__SMA_Wechselrichter__etotal 423.31
2020-05-18 13:07:09 2020-05-17_10-23-28__1__SMA_Wechselrichter__etotal 423.473
2020-05-18 13:07:09 2020-05-17_10-24-29__1__SMA_Wechselrichter__etotal 423.555
2020-05-18 13:07:09 2020-05-17_10-26-31__1__SMA_Wechselrichter__etotal 423.719
2020-05-18 13:07:09 2020-05-17_10-27-32__1__SMA_Wechselrichter__etotal 423.801
2020-05-18 13:07:09 2020-05-17_10-28-33__1__SMA_Wechselrichter__etotal 423.883
2020-05-18 13:07:09 2020-05-17_10-32-37__1__SMA_Wechselrichter__etotal 424.212
2020-05-18 13:07:09 2020-05-17_10-33-38__1__SMA_Wechselrichter__etotal 424.295
2020-05-18 13:07:09 2020-05-17_10-34-39__1__SMA_Wechselrichter__etotal 424.379
2020-05-18 13:07:09 2020-05-17_10-35-40__1__SMA_Wechselrichter__etotal 424.462
2020-05-18 13:07:09 2020-05-17_10-36-41__1__SMA_Wechselrichter__etotal 424.545
2020-05-18 13:07:09 2020-05-17_10-37-42__1__SMA_Wechselrichter__etotal 424.629
2020-05-18 13:07:09 2020-05-17_10-38-43__1__SMA_Wechselrichter__etotal 424.713
2020-05-18 13:07:09 2020-05-17_10-39-44__1__SMA_Wechselrichter__etotal 424.797
2020-05-18 13:07:09 2020-05-17_10-40-45__1__SMA_Wechselrichter__etotal 424.882
2020-05-18 13:07:09 2020-05-17_10-41-46__1__SMA_Wechselrichter__etotal 424.966
2020-05-18 13:07:09 2020-05-17_10-42-47__1__SMA_Wechselrichter__etotal 425.05
2020-05-18 13:07:09 2020-05-17_10-43-48__1__SMA_Wechselrichter__etotal 425.134
2020-05-18 13:07:09 2020-05-17_10-44-49__1__SMA_Wechselrichter__etotal 425.219
2020-05-18 13:07:09 2020-05-17_10-45-50__1__SMA_Wechselrichter__etotal 425.305
2020-05-18 13:07:09 2020-05-17_10-46-51__1__SMA_Wechselrichter__etotal 425.39
2020-05-18 13:07:09 2020-05-17_10-47-52__1__SMA_Wechselrichter__etotal 425.476
2020-05-18 13:07:09 2020-05-17_10-48-53__1__SMA_Wechselrichter__etotal 425.561
2020-05-18 13:07:09 2020-05-17_10-49-54__1__SMA_Wechselrichter__etotal 425.647
2020-05-18 13:07:09 2020-05-17_10-50-55__1__SMA_Wechselrichter__etotal 425.733
2020-05-18 13:07:09 2020-05-17_10-51-56__1__SMA_Wechselrichter__etotal 425.819
2020-05-18 13:07:09 2020-05-17_10-52-56__1__SMA_Wechselrichter__etotal 425.906
2020-05-18 13:07:09 2020-05-17_10-53-57__1__SMA_Wechselrichter__etotal 425.992
2020-05-18 13:07:09 2020-05-17_10-54-58__1__SMA_Wechselrichter__etotal 426.078
2020-05-18 13:07:09 2020-05-17_10-55-59__1__SMA_Wechselrichter__etotal 426.165
2020-05-18 13:07:09 2020-05-17_10-57-00__1__SMA_Wechselrichter__etotal 426.251
2020-05-18 13:07:09 2020-05-17_10-58-01__1__SMA_Wechselrichter__etotal 426.338
2020-05-18 13:07:09 2020-05-17_10-59-02__1__SMA_Wechselrichter__etotal 426.425
2020-05-18 13:07:09 2020-05-17_11-00-03__1__SMA_Wechselrichter__etotal 426.512
2020-05-18 13:07:09 2020-05-17_11-01-04__1__SMA_Wechselrichter__etotal 426.6
2020-05-18 13:07:09 2020-05-17_11-02-05__1__SMA_Wechselrichter__etotal 426.688
2020-05-18 13:07:09 2020-05-17_11-04-07__1__SMA_Wechselrichter__etotal 426.863
2020-05-18 13:07:09 2020-05-17_11-06-09__1__SMA_Wechselrichter__etotal 427.04
2020-05-18 13:07:09 2020-05-17_11-07-10__1__SMA_Wechselrichter__etotal 427.129
2020-05-18 13:07:09 2020-05-17_11-08-11__1__SMA_Wechselrichter__etotal 427.218
2020-05-18 13:07:09 2020-05-17_11-09-12__1__SMA_Wechselrichter__etotal 427.308
2020-05-18 13:07:09 2020-05-17_11-10-13__1__SMA_Wechselrichter__etotal 427.397
2020-05-18 13:07:09 2020-05-17_11-11-14__1__SMA_Wechselrichter__etotal 427.486
2020-05-18 13:07:09 2020-05-17_11-12-16__1__SMA_Wechselrichter__etotal 427.575
2020-05-18 13:07:09 2020-05-17_11-13-16__1__SMA_Wechselrichter__etotal 427.664
2020-05-18 13:07:09 2020-05-17_11-14-17__1__SMA_Wechselrichter__etotal 427.752
2020-05-18 13:07:09 2020-05-17_11-15-18__1__SMA_Wechselrichter__etotal 427.841
2020-05-18 13:07:09 2020-05-17_11-16-19__1__SMA_Wechselrichter__etotal 427.931
2020-05-18 13:07:09 2020-05-17_11-17-20__1__SMA_Wechselrichter__etotal 428.02
2020-05-18 13:07:09 2020-05-17_11-18-21__1__SMA_Wechselrichter__etotal 428.109
2020-05-18 13:07:09 2020-05-17_11-19-22__1__SMA_Wechselrichter__etotal 428.199
2020-05-18 13:07:09 2020-05-17_11-20-23__1__SMA_Wechselrichter__etotal 428.29
2020-05-18 13:07:09 2020-05-17_11-21-24__1__SMA_Wechselrichter__etotal 428.381
2020-05-18 13:07:09 2020-05-17_11-22-25__1__SMA_Wechselrichter__etotal 428.471
2020-05-18 13:07:09 2020-05-17_11-23-26__1__SMA_Wechselrichter__etotal 428.563
2020-05-18 13:07:09 2020-05-17_11-24-27__1__SMA_Wechselrichter__etotal 428.655
2020-05-18 13:07:09 2020-05-17_11-25-28__1__SMA_Wechselrichter__etotal 428.746
2020-05-18 13:07:09 2020-05-17_11-26-29__1__SMA_Wechselrichter__etotal 428.837
2020-05-18 13:07:09 background_processing_time 0.0247
2020-05-18 13:07:09 number_fetched_rows 1000
2020-05-18 13:07:09 sql_processing_time 0.0216
2020-05-18 13:07:09 state <html>done - Warning: present rows exceed specified limit, adjust attribute <a href='https://fhem.de/commandref_DE.html#limit' target='_blank'>limit</a></html>
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_month_begin
timestamp_end current_month_end
userExitFn setDumEnergy .*:.*
verbose 3
timestamp_begin 2020-05-18 04:55:24
timestamp_end 2020-05-18 04:55:24
attr <name> allowDeletion 1
set <name> delEntries
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec26a8e-f33f-cd72-b513-8c4f195609a12cf4
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD fetchrows history
MODEL Client
NAME Rep.Report
NOTIFYDEV global,Rep.Report
NR 33412
NTFY_ORDER 50-Rep.Report
ROLE Client
STATE done
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-14
dsstr 2020-03-24
epoch_seconds_end 1589468429.79918
mestr 05
msstr 03
testr 17:00:29
tsstr 17:00:29
wdadd 518400
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
DELENTRIES:
Rep.Report
delEntries
2020-05-18
04:55:24
Helper:
DBLOG:
state:
logdb:
TIME 1589814030.85593
VALUE done
OLDREADINGS:
READINGS:
2020-05-18 17:00:30 2020-05-14_16-50-55__1__SMA_Wechselrichter__etotal 325.952
2020-05-18 17:00:30 2020-05-14_16-51-56__1__SMA_Wechselrichter__etotal 325.985
2020-05-18 17:00:30 2020-05-14_16-52-57__1__SMA_Wechselrichter__etotal 326.032
2020-05-18 17:00:30 2020-05-14_16-53-58__1__SMA_Wechselrichter__etotal 326.079
2020-05-18 17:00:30 2020-05-14_16-54-59__1__SMA_Wechselrichter__etotal 326.124
2020-05-18 17:00:30 2020-05-14_16-56-00__1__SMA_Wechselrichter__etotal 326.168
2020-05-18 17:00:30 2020-05-14_16-58-02__1__SMA_Wechselrichter__etotal 326.252
2020-05-18 17:00:30 2020-05-14_16-59-03__1__SMA_Wechselrichter__etotal 326.278
2020-05-18 17:00:30 2020-05-14_17-00-04__1__SMA_Wechselrichter__etotal 326.303
2020-05-18 17:00:30 background_processing_time 0.0028
2020-05-18 17:00:30 number_fetched_rows 9
2020-05-18 17:00:30 sql_processing_time 0.0003
2020-05-18 17:00:30 state done
Attributes:
aggregation no
allowDeletion 0
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin 2020-05-18 04:55:24
timestamp_end 2020-05-18 04:55:24
userExitFn setDumEnergy .*:.*
verbose 3
timeDiffToNow d:1
2020.05.18 16:50:29.425 3: DbRep Rep.Report - Entries of /opt/fhem/fhem.db.history deleted: SMA_Wechselrichter--etotal--2451
Zitatdas mache ich alles in fhem?Verstehe die Frage nicht, was meinst du ?
ZitatDu meinst das DbRep das ich kopiert hatte?Das spielt keine Rolle.
Nicht die eigentlichen Rep.SMAEM....
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec2c4f7-f33f-cd72-91f5-f58c6964ed304ce0
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD
MODEL Client
NAME Rep.SQLite.Backup
NOTIFYDEV global,Rep.SQLite.Backup
NR 40732
NTFY_ORDER 50-Rep.SQLite.Backup
ROLE Client
STATE connected
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589822742.84872
VALUE connected
OLDREADINGS:
READINGS:
2020-05-18 19:25:42 background_processing_time 0.0021
2020-05-18 19:25:42 index_state Index Report_Idx exists
2020-05-18 19:25:42 sql_processing_time 0.0009
2020-05-18 19:25:42 state connected
Attributes:
aggregation no
allowDeletion 0
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
event-on-update-reading state
room Photovoltaik
showproctime 1
userExitFn setDumEnergy .*:.*
verbose 3
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec2c4f7-f33f-cd72-91f5-f58c6964ed304ce0
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD dumpSQLite
MODEL Client
NAME Rep.SQLite.Backup
NOTIFYDEV global,Rep.SQLite.Backup
NR 40732
NTFY_ORDER 50-Rep.SQLite.Backup
ROLE Client
STATE Warning - dump finished, but command message after dump appeared
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
VERSION 8.40.0
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589825103.96432
VALUE Warning - dump finished, but command message after dump appeared
OLDREADINGS:
READINGS:
2020-05-18 20:05:03 DumpFileCreated ./log/fhem_2020_05_18_20_05.sqlitebkp
2020-05-18 20:05:03 DumpFileCreatedSize 452.95 MB
2020-05-18 20:05:03 DumpRowsCurrent n.a.
2020-05-18 20:05:03 DumpRowsHistory n.a.
2020-05-18 20:05:03 afterdump_message Reopen executed.
2020-05-18 20:05:03 background_processing_time 14.3588
2020-05-18 20:05:03 state Warning - dump finished, but command message after dump appeared
Attributes:
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
event-on-update-reading state
executeAfterProc set logdb reopen
executeBeforeProc set logdb reopen 3600
optimizeTablesBeforeDump 1
room Photovoltaik
showproctime 1
verbose 3
2020.05.18 20:04:49.523 3: DbRep Rep.SQLite.Backup - ################################################################
2020.05.18 20:04:49.524 3: DbRep Rep.SQLite.Backup - ### New SQLite dump ###
2020.05.18 20:04:49.524 3: DbRep Rep.SQLite.Backup - ################################################################
2020.05.18 20:04:49.524 3: DbRep Rep.SQLite.Backup - execute command before dump: 'set logdb reopen 3600'
2020.05.18 20:04:49.596 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem/fhem.db before optimize (MB): 479
2020.05.18 20:04:49.596 3: DbRep Rep.SQLite.Backup - VACUUM database /opt/fhem/fhem.db....
2020.05.18 20:05:00.501 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem/fhem.db after optimize (MB): 453
2020.05.18 20:05:00.502 3: DbRep Rep.SQLite.Backup - Starting dump of database 'fhem.db'
2020.05.18 20:05:03.940 3: DbRep Rep.SQLite.Backup - Size of backupfile: 452.95 MB
2020.05.18 20:05:03.942 3: DbRep Rep.SQLite.Backup - Finished backup of database fhem - total time used (hh:mm:ss): 00:00:14
2020.05.18 20:05:03.956 2: DbRep Rep.SQLite.Backup - command message after dump: "Reopen executed."
2020.05.18 20:05:03.966 3: DbRep Rep.SQLite.Backup - Database dump finished successfully.
ZitatKann das bleiben od. soll ich das wieder ändern?Kann so bleiben. Sollte sogar.
tar -tzf <Archiv>.tar.gz | grep fhem.db
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf .*:.*
FUUID 5eb961f7-f33f-cd72-b3f6-f6ca8383a8350f4c
FVERSION 93_DbLog.pm:v4.9.12-s21801/2020-04-29
MODE asynchronous
MODEL SQLITE
NAME logdb
NR 423
NTFY_ORDER 50-logdb
PID 32441
REGEXP .*:.*
STATE connected
TYPE DbLog
dbconn SQLite:dbname=/opt/fhem/fhem.db
dbuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
PACKAGE main
READINGCOL 64
TC current
TH history
TYPECOL 64
UNITCOL 32
VALUECOL 128
VERSION 4.9.12
Helper:
DBLOG:
state:
logdb:
TIME 1589825089.56124
VALUE closed until 21:04:49 (3600 seconds)
READINGS:
2020-05-18 20:27:52 CacheUsage 92
2020-05-18 20:27:36 NextSync 2020-05-18 20:28:06 or if CacheUsage 500 reached
2020-05-18 20:27:36 state connected
Attributes:
asyncMode 1
Zitatsollte hier eigentlich noch etwas angepasst werden?
Result of version check
Used Perl version: 5.26.1
Used DBI (Database independent interface) version: 1.64
Used DBD (Database driver) version SQLite: 1.56
Used DbLog version: 4.9.12.
Your local DbLog module is up to date.
Recommendation: No update of DbLog is needed.
Result of configuration read check
Connection parameter store type: file
Connection parameter: Connection -> SQLite:dbname=/opt/fhem/fhem.db, User -> , Password -> read o.k.
Result of connection check
Connection to database /opt/fhem/fhem.db successfully done.
Recommendation: settings o.k.
Result of encoding check
Encoding used by DB /opt/fhem/fhem.db: UTF-8
Recommendation: This is only an information about text encoding used by the main database.
Result of logmode check
Logmode of DbLog-device logdb is: asynchronous
Recommendation: settings o.k.
Result of insert mode check
Insert mode of DbLog-device logdb is: Array
Recommendation: Setting attribute "bulkInsert" to "1" may result a higher write performance in most cases. Feel free to try this mode.
Result of plot generation method check
WARNING - at least one of your FHEMWEB devices has attribute "plotfork = 1" and/or attribute "plotEmbed = 2" not set.
WEB: plotfork=0 / plotEmbed=0
WEBphone: plotfork=0 / plotEmbed=0
WEBtablet: plotfork=0 / plotEmbed=0
Recommendation: You should set attribute "plotfork = 1" and "plotEmbed = 2" in relevant devices. If these attributes are not set, blocking situations may occure when creating plots. Note: Your system must have sufficient memory to handle parallel running Perl processes. See also global attribute "blockingCallMax".
Result of table 'history' check
Column width set in DB history: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Column width used by logdb: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: settings o.k.
Result of table 'current' check
Column width set in DB current: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Column width used by logdb: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: settings o.k.
Result of check 'Search_Idx' availability
Index 'Search_Idx' exists and contains recommended fields 'DEVICE', 'READING', 'TIMESTAMP'.
Recommendation: settings o.k.
Result of check 'Report_Idx' availability for DbRep-devices
Index 'Report_Idx' exists and contains recommended fields 'TIMESTAMP', 'READING'.
Recommendation: settings o.k.
ZitatIch denke wir versuchen Morgen weiter unser Glück.Können wir machen.
ZitatWas ist mit den bestehenden Warnungen?Welche sind das nochmal genau ?
ZitatFalls man es nicht wieder herstellen kann, wie bekomme ich die Warnungen von Rep.STP5000.Erzeugung.Monat + Rep.STP5000.Erzeugung.Jahr wieder weg?
ZitatDatenbank ist ja wohl futsch.Das wissen wir erst wenn die Daten aus der alten DB nicht mehr rausgelesen werden können.
ZitatFalls man es nicht wieder herstellen kann, wie bekomme ich die Warnungen von Rep.STP5000.Erzeugung.Monat + Rep.STP5000.Erzeugung.Jahr wieder weg?Ja weiß ich ... nur welche Warnungen sind das ? Die Diff - Warnungen ?
ZitatAlle Daten in der Datenbank löschen und ab Morgen neu?NEIN !
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5eb97981-f33f-cd72-5c15-46c14b9754c5f0b3
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD diffValue
MODEL Client
NAME Rep.STP5000.Erzeugung.Monat
NOTIFYDEV global,Rep.STP5000.Erzeugung.Monat
NR 428
NTFY_ORDER 50-Rep.STP5000.Erzeugung.Monat
ROLE Client
STATE Warning
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-31
dsstr 2020-05-01
epoch_seconds_end 1590962399
mestr 05
msstr 05
testr 23:59:59
tsstr 00:00:00
wdadd 259200
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589869866.34035
VALUE Warning
OLDREADINGS:
READINGS:
2020-05-19 08:31:06 2020-05-19_08-31-01__SMA_Wechselrichter__etotal__DIFF__no_aggregation 174.9610
2020-05-19 08:31:06 background_processing_time 0.0754
2020-05-19 08:31:06 diff_overrun_limit_20 2020-05-17 20:57:41 0.0010 -> 2020-05-18 04:55:24 4294511.3370 ||
2020-05-19 08:31:06 sql_processing_time 0.0480
2020-05-19 08:31:06 state Warning
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_month_begin
timestamp_end current_month_end
userExitFn setDumEnergy .*:.*
verbose 2
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5eba3f24-f33f-cd72-2148-2952d1c6b3d2b651
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD diffValue
MODEL Client
NAME Rep.STP5000.Erzeugung.Jahr
NOTIFYDEV global,Rep.STP5000.Erzeugung.Jahr
NR 434
NTFY_ORDER 50-Rep.STP5000.Erzeugung.Jahr
ROLE Client
STATE Warning
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-12-31
dsstr 2020-01-01
epoch_seconds_end 1609455599
mestr 12
msstr 01
testr 23:59:59
tsstr 00:00:00
wdadd 432000
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589830033.7351
VALUE Warning
OLDREADINGS:
READINGS:
2020-05-18 21:27:13 2020-05-18_20-53-47__SMA_Wechselrichter__etotal__DIFF__no_aggregation 171.8660
2020-05-18 21:27:13 background_processing_time 0.0705
2020-05-18 21:27:13 diff_overrun_limit_20 2020-05-17 20:57:41 0.0010 -> 2020-05-18 04:55:24 4294511.3370 ||
2020-05-18 21:27:13 sql_processing_time 0.0434
2020-05-18 21:27:13 state Warning
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_year_begin
timestamp_end current_year_end
userExitFn setDumEnergy .*:.*
verbose 2
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5eba3f24-f33f-cd72-2148-2952d1c6b3d2b651
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD fetchrows history
MODEL Client
NAME Rep.STP5000.Erzeugung.Jahr
NOTIFYDEV global,Rep.STP5000.Erzeugung.Jahr
NR 434
NTFY_ORDER 50-Rep.STP5000.Erzeugung.Jahr
ROLE Client
STATE <html>done - Warning: present rows exceed specified limit, adjust attribute <a href='https://fhem.de/commandref_DE.html#limit' target='_blank'>limit</a></html>
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-12-31
dsstr 2020-01-01
epoch_seconds_end 1609455599
mestr 12
msstr 01
testr 23:59:59
tsstr 00:00:00
wdadd 432000
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589871727.31775
VALUE <html>done - Warning
OLDREADINGS:
READINGS:
2020-05-19 09:02:07 2020-05-17_20-39-23__1__SMA_Wechselrichter__etotal 455.947
2020-05-19 09:02:07 2020-05-17_20-40-24__1__SMA_Wechselrichter__etotal 455.948
2020-05-19 09:02:07 2020-05-17_20-41-25__1__SMA_Wechselrichter__etotal 455.949
2020-05-19 09:02:07 2020-05-17_20-43-27__1__SMA_Wechselrichter__etotal 455.95
2020-05-19 09:02:07 2020-05-17_20-45-29__1__SMA_Wechselrichter__etotal 455.952
2020-05-19 09:02:07 2020-05-17_20-46-30__1__SMA_Wechselrichter__etotal 455.953
2020-05-19 09:02:07 2020-05-17_20-48-32__1__SMA_Wechselrichter__etotal 455.954
2020-05-19 09:02:07 2020-05-17_20-49-33__1__SMA_Wechselrichter__etotal 455.955
2020-05-19 09:02:07 2020-05-17_20-51-35__1__SMA_Wechselrichter__etotal 455.956
2020-05-19 09:02:07 2020-05-17_20-53-37__1__SMA_Wechselrichter__etotal 455.957
2020-05-19 09:02:07 2020-05-17_20-57-41__1__SMA_Wechselrichter__etotal 455.958
2020-05-19 09:02:07 2020-05-18_04-55-24__1__SMA_Wechselrichter__etotal 4294967.295
2020-05-19 09:02:07 2020-05-18_05-28-56__1__SMA_Wechselrichter__etotal 455.958
2020-05-19 09:02:07 2020-05-18_05-58-24__1__SMA_Wechselrichter__etotal 455.959
2020-05-19 09:02:07 2020-05-18_05-59-25__1__SMA_Wechselrichter__etotal 455.96
2020-05-19 09:02:07 2020-05-18_06-00-26__1__SMA_Wechselrichter__etotal 455.961
2020-05-19 09:02:07 2020-05-18_06-01-27__1__SMA_Wechselrichter__etotal 455.962
2020-05-19 09:02:07 2020-05-18_06-02-28__1__SMA_Wechselrichter__etotal 455.963
.
.
.
2020-05-19 09:02:07 2020-05-19_08-58-28__1__SMA_Wechselrichter__etotal 502.37
2020-05-19 09:02:07 2020-05-19_08-59-29__1__SMA_Wechselrichter__etotal 502.429
2020-05-19 09:02:07 2020-05-19_09-00-29__1__SMA_Wechselrichter__etotal 502.489
2020-05-19 09:02:07 2020-05-19_09-01-30__1__SMA_Wechselrichter__etotal 502.548
2020-05-19 09:02:07 background_processing_time 0.0170
2020-05-19 09:02:07 number_fetched_rows 1000
2020-05-19 09:02:07 sql_processing_time 0.0147
2020-05-19 09:02:07 state <html>done - Warning: present rows exceed specified limit, adjust attribute <a href='https://fhem.de/commandref_DE.html#limit' target='_blank'>limit</a></html>
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_year_begin
timestamp_end current_year_end
userExitFn setDumEnergy .*:.*
verbose 2
sudo mkdir /opt/temp
sudo chmod 777 /opt/temp # das ist nur temporär, wir löschen hinterher wieder alles
tar -zxvf test.tar.gz -O opt/fhem.db > /opt/temp/fhemold.db
tar -zxvf test.tar.gz -O opt/fhem.db-shm > /opt/temp/fhemold.db-shm
tar -zxvf test.tar.gz -O opt/fhem.db-wal > /opt/temp/fhemold.db-wal
%dbconfig= (
connection => "SQLite:dbname=/opt/temp/fhemold.db",
user => "",
password => ""
);
define tempSQLITE DbLog ./oldsqlite.conf aaaaaa:bbbbbbbb
define Rep.tempSQLITE DbRep tempSQLITE
attr Rep.tempSQLITE expimpfile export.csv
set Rep.tempSQLITE exportToFile
dieter@intelnuc:/opt/fhem/backup$ tar -zxvf FHEM-20200517_080519.tar.gz -O opt/fhem.db > /opt/temp/fhemold.db
tar: opt/fhem.db: Not found in archive
tar: Exiting with failure status due to previous errors
dieter@intelnuc:/opt/fhem/backup$
dieter@intelnuc:/opt/fhem/backup$ tar -tzf FHEM-20200517_080519.tar.gz | grep fhem.db
./fhem.db
./fhem.db-shm
./fhem.db-wal
tar -zxvf test.tar.gz -O ./fhem.db > /opt/temp/fhemold.db
tar -zxvf test.tar.gz -O ./fhem.db-shm > /opt/temp/fhemold.db-shm
tar -zxvf test.tar.gz -O ./fhem.db-wal > /opt/temp/fhemold.db-wal
tar -zxvf FHEM-20200517_080519.tar.gz -O ./fhem.db > /opt/temp/fhemold.db
tar -zxvf FHEM-20200517_080519.tar.gz -O ./fhem.db-shm > /opt/temp/fhemold.db-shm
tar -zxvf FHEM-20200517_080519.tar.gz -O ./fhem.db-wal > /opt/temp/fhemold.db-wal
ZitatWow ... nach kurzer "Denkpause" war der Status "connected". :)
Kurz ein fetchrows angetestet ... Freude, DB war zugreifbar.
attr Rep.tempSQLITE DbRep expimpfile export.csv
attr Rep.tempSQLITE expimpfile export.csv
attr Rep.SQLite.Backup expimpfile export.csv
set Rep.SQLite.Backup importFromFile
2020.05.19 16:54:10.909 3: DbRep Rep.SQLite.Backup - ################################################################
2020.05.19 16:54:10.910 3: DbRep Rep.SQLite.Backup - ### New SQLite dump ###
2020.05.19 16:54:10.910 3: DbRep Rep.SQLite.Backup - ################################################################
2020.05.19 16:54:10.910 3: DbRep Rep.SQLite.Backup - execute command before dump: 'set logdb reopen 3600'
2020.05.19 16:54:11.015 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem/fhem.db before optimize (MB): 522
2020.05.19 16:54:11.016 3: DbRep Rep.SQLite.Backup - VACUUM database /opt/fhem/fhem.db....
2020.05.19 16:54:22.541 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem/fhem.db after optimize (MB): 513
2020.05.19 16:54:22.542 3: DbRep Rep.SQLite.Backup - Starting dump of database 'fhem.db'
2020.05.19 16:54:26.570 3: DbRep Rep.SQLite.Backup - Size of backupfile: 512.74 MB
2020.05.19 16:54:26.573 3: DbRep Rep.SQLite.Backup - Finished backup of database fhem - total time used (hh:mm:ss): 00:00:15
2020.05.19 16:54:26.588 2: DbRep Rep.SQLite.Backup - command message after dump: "Reopen executed."
2020.05.19 16:54:26.600 3: DbRep Rep.SQLite.Backup - Database dump finished successfully.
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec2c4f7-f33f-cd72-91f5-f58c6964ed304ce0
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD dumpSQLite
MODEL Client
NAME Rep.SQLite.Backup
NOTIFYDEV global,Rep.SQLite.Backup
NR 40732
NTFY_ORDER 50-Rep.SQLite.Backup
ROLE Client
STATE Warning - dump finished, but command message after dump appeared
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
VERSION 8.40.0
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589900066.59703
VALUE Warning - dump finished, but command message after dump appeared
OLDREADINGS:
READINGS:
2020-05-19 16:54:26 DumpFileCreated ./log/fhem_2020_05_19_16_54.sqlitebkp
2020-05-19 16:54:26 DumpFileCreatedSize 512.74 MB
2020-05-19 16:54:26 DumpRowsCurrent n.a.
2020-05-19 16:54:26 DumpRowsHistory n.a.
2020-05-19 16:54:26 afterdump_message Reopen executed.
2020-05-19 16:54:26 background_processing_time 15.5753
2020-05-19 16:54:26 state Warning - dump finished, but command message after dump appeared
Attributes:
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
dumpDirLocal ./log
dumpFilesKeep 3
event-on-update-reading state
executeAfterProc set logdb reopen
executeBeforeProc set logdb reopen 3600
expimpfile export.csv
fastStart 1
optimizeTablesBeforeDump 1
room Photovoltaik
showproctime 1
verbose 3
ZitatWoher weiß das DbRep Rep.SQLite.Backup welche Datei bzw. wo sie liegt?
2020.05.19 17:16:15.421 3: DbRep Rep.SQLite.Backup - ################################################################
2020.05.19 17:16:15.421 3: DbRep Rep.SQLite.Backup - ### New SQLite dump ###
2020.05.19 17:16:15.421 3: DbRep Rep.SQLite.Backup - ################################################################
2020.05.19 17:16:15.421 3: DbRep Rep.SQLite.Backup - execute command before dump: 'set logdb reopen 3600'
2020.05.19 17:16:15.511 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem/fhem.db before optimize (MB): 868
2020.05.19 17:16:15.511 3: DbRep Rep.SQLite.Backup - VACUUM database /opt/fhem/fhem.db....
2020.05.19 17:16:35.614 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem/fhem.db after optimize (MB): 853
2020.05.19 17:16:35.615 3: DbRep Rep.SQLite.Backup - Starting dump of database 'fhem.db'
2020.05.19 17:16:42.952 3: DbRep Rep.SQLite.Backup - Size of backupfile: 852.34 MB
2020.05.19 17:16:42.954 3: DbRep Rep.SQLite.Backup - Deleting old dumpfile 'fhem_2020_05_18_20_05.sqlitebkp'
2020.05.19 17:16:42.956 3: DbRep Rep.SQLite.Backup - Finished backup of database fhem - total time used (hh:mm:ss): 00:00:27
2020.05.19 17:16:42.973 2: DbRep Rep.SQLite.Backup - command message after dump: "Reopen executed."
2020.05.19 17:16:43.006 3: DbRep Rep.SQLite.Backup - Database dump finished successfully.
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec26a8e-f33f-cd72-b513-8c4f195609a12cf4
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD fetchrows history
MODEL Client
NAME Rep.Report
NOTIFYDEV global,Rep.Report
NR 33412
NTFY_ORDER 50-Rep.Report
ROLE Client
STATE done
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-15
dsstr 2020-03-25
epoch_seconds_end 1589525914.87634
mestr 05
msstr 03
testr 08:58:34
tsstr 08:58:34
wdadd 432000
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
DELENTRIES:
Rep.Report
delEntries
2020-05-18
04:55:24
Helper:
DBLOG:
state:
logdb:
TIME 1589871515.9789
VALUE done
OLDREADINGS:
READINGS:
2020-05-19 08:58:35 2020-05-14_16-50-55__1__SMA_Wechselrichter__etotal 325.952
2020-05-19 08:58:35 2020-05-14_16-51-56__1__SMA_Wechselrichter__etotal 325.985
2020-05-19 08:58:35 2020-05-14_16-52-57__1__SMA_Wechselrichter__etotal 326.032
2020-05-19 08:58:35 2020-05-14_16-53-58__1__SMA_Wechselrichter__etotal 326.079
2020-05-19 08:58:35 2020-05-14_16-54-59__1__SMA_Wechselrichter__etotal 326.124
2020-05-19 08:58:35 2020-05-14_16-56-00__1__SMA_Wechselrichter__etotal 326.168
.
.
.
2020-05-19 08:58:35 2020-05-15_08-54-28__1__SMA_Wechselrichter__etotal 331.904
2020-05-19 08:58:35 2020-05-15_08-55-29__1__SMA_Wechselrichter__etotal 331.917
2020-05-19 08:58:35 2020-05-15_08-56-30__1__SMA_Wechselrichter__etotal 331.929
2020-05-19 08:58:35 2020-05-15_08-57-31__1__SMA_Wechselrichter__etotal 331.943
2020-05-19 08:58:35 2020-05-15_08-58-32__1__SMA_Wechselrichter__etotal 331.961
2020-05-19 08:58:35 background_processing_time 0.0135
2020-05-19 08:58:35 number_fetched_rows 334
2020-05-19 08:58:35 sql_processing_time 0.0109
2020-05-19 08:58:35 state done
Attributes:
aggregation no
allowDeletion 0
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_month_begin
timestamp_end current_month_end
userExitFn setDumEnergy .*:.*
verbose 3
CFGFN
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5ec26a8e-f33f-cd72-b513-8c4f195609a12cf4
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD fetchrows history
MODEL Client
NAME Rep.Report
NOTIFYDEV global,Rep.Report
NR 33412
NTFY_ORDER 50-Rep.Report
ROLE Client
STATE <html>done - Warning: present rows exceed specified limit, adjust attribute <a href='https://fhem.de/commandref_DE.html#limit' target='_blank'>limit</a></html>
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-15
dsstr 2020-03-25
epoch_seconds_end 1589559193.7198
mestr 05
msstr 03
testr 18:13:13
tsstr 18:13:13
wdadd 432000
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
DELENTRIES:
Rep.Report
delEntries
2020-05-18
04:55:24
Helper:
DBLOG:
state:
logdb:
TIME 1589904794.84027
VALUE <html>done - Warning
OLDREADINGS:
READINGS:
2020-05-19 18:13:14 2020-05-15_09-21-54__1__SMA_Wechselrichter__etotal 332.546
2020-05-19 18:13:14 2020-05-15_09-21-54__2__SMA_Wechselrichter__etotal 332.546
2020-05-19 18:13:14 2020-05-15_09-22-56__1__SMA_Wechselrichter__etotal 332.593
2020-05-19 18:13:14 2020-05-15_09-22-56__2__SMA_Wechselrichter__etotal 332.593
2020-05-19 18:13:14 2020-05-15_09-24-57__1__SMA_Wechselrichter__etotal 332.748
2020-05-19 18:13:14 2020-05-15_09-24-57__2__SMA_Wechselrichter__etotal 332.748
2020-05-19 18:13:14 2020-05-15_09-26-59__1__SMA_Wechselrichter__etotal 332.892
2020-05-19 18:13:14 2020-05-15_09-26-59__2__SMA_Wechselrichter__etotal 332.892
2020-05-19 18:13:14 2020-05-15_09-28-00__1__SMA_Wechselrichter__etotal 332.961
2020-05-19 18:13:14 2020-05-15_09-28-00__2__SMA_Wechselrichter__etotal 332.961
2020-05-19 18:13:14 2020-05-15_09-29-01__1__SMA_Wechselrichter__etotal 333.001
2020-05-19 18:13:14 2020-05-15_09-29-01__2__SMA_Wechselrichter__etotal 333.001
2020-05-19 18:13:14 2020-05-15_09-30-02__1__SMA_Wechselrichter__etotal 333.048
2020-05-19 18:13:14 2020-05-15_09-30-02__2__SMA_Wechselrichter__etotal 333.048
2020-05-19 18:13:14 2020-05-15_09-31-03__1__SMA_Wechselrichter__etotal 333.104
2020-05-19 18:13:14 2020-05-15_09-31-03__2__SMA_Wechselrichter__etotal 333.104
.
.
.
2020-05-19 18:13:14 2020-05-15_18-09-25__1__SMA_Wechselrichter__etotal 367.983
2020-05-19 18:13:14 2020-05-15_18-09-25__2__SMA_Wechselrichter__etotal 367.983
2020-05-19 18:13:14 2020-05-15_18-10-26__1__SMA_Wechselrichter__etotal 367.991
2020-05-19 18:13:14 2020-05-15_18-10-26__2__SMA_Wechselrichter__etotal 367.991
2020-05-19 18:13:14 2020-05-15_18-11-27__1__SMA_Wechselrichter__etotal 367.999
2020-05-19 18:13:14 2020-05-15_18-11-27__2__SMA_Wechselrichter__etotal 367.999
2020-05-19 18:13:14 2020-05-15_18-12-28__1__SMA_Wechselrichter__etotal 368.007
2020-05-19 18:13:14 2020-05-15_18-12-28__2__SMA_Wechselrichter__etotal 368.007
2020-05-19 18:13:14 background_processing_time 0.0242
2020-05-19 18:13:14 number_fetched_rows 1000
2020-05-19 18:13:14 sql_processing_time 0.0213
2020-05-19 18:13:14 state <html>done - Warning: present rows exceed specified limit, adjust attribute <a href='https://fhem.de/commandref_DE.html#limit' target='_blank'>limit</a></html>
Attributes:
aggregation no
allowDeletion 0
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin 2020-05-18 00:00:00
timestamp_end 2020-05-18 05:00:00
verbose 3
DELENTRIES:
Rep.Report
delEntries
2020-05-18
04:55:24
set Rep.Report sqlCmd select * from history where DEVICE='SMA_Wechselrichter' and READING='etotal' and VALUE='4294967.295';
READINGS:
2020-05-19 18:34:57 SqlResultRow_1 TIMESTAMP|DEVICE|TYPE|EVENT|READING|VALUE|UNIT
2020-05-19 18:34:57 SqlResultRow_2 2020-05-18 04:55:24|SMA_Wechselrichter|SMAINVERTER|etotal: 4294967.295|etotal|4294967.295|
2020-05-19 18:34:57 background_processing_time 0.0248
2020-05-19 18:34:57 sqlCmd select * from history where DEVICE='SMA_Wechselrichter' and READING='etotal' and VALUE='4294967.295';
2020-05-19 18:34:57 sqlResultNumRows 1
2020-05-19 18:34:57 sql_processing_time 0.0236
2020-05-19 18:34:57 state done
set Rep.Report sqlCmd delete from history where DEVICE='SMA_Wechselrichter' and READING='etotal' and VALUE='4294967.295';
READINGS:
2020-05-19 18:40:44 SqlResultRow_1 1
2020-05-19 18:40:44 background_processing_time 0.0282
2020-05-19 18:40:44 sqlCmd delete from history where DEVICE='SMA_Wechselrichter' and READING='etotal' and VALUE='4294967.295';
2020-05-19 18:40:44 sqlResultNumRows 1
2020-05-19 18:40:44 sql_processing_time 0.0269
2020-05-19 18:40:44 state done
READINGS:
2020-05-19 18:43:58 AutarkyQuote 100
2020-05-19 18:33:03 AutarkyQuoteDay 65
2020-05-19 18:42:19 AutarkyQuoteMonth 220
2020-05-19 18:42:49 AutarkyQuoteYear 220
2020-05-19 18:43:57 GridConsumption 0.0
2020-05-19 18:33:03 GridConsumptionDay 3.2
2020-05-19 18:42:19 GridConsumptionMonth 63.0
2020-05-19 18:42:49 GridConsumptionYear 63.0
2020-05-19 18:43:57 GridFeedIn 49.6
2020-05-19 18:33:02 GridFeedInDay 34.5
2020-05-19 18:42:19 GridFeedInMonth 440.7
2020-05-19 18:42:49 GridFeedInYear 440.7
2020-05-19 18:43:58 PV 294.0
2020-05-19 18:33:02 PVDay 40.4
2020-05-19 18:42:18 PVMonth 325.1
2020-05-19 18:42:48 PVYear 325.1
2020-05-19 18:43:58 SelfConsumptionQuote 83
2020-05-19 18:33:03 SelfConsumptionQuoteDay 15
2020-05-19 18:42:19 SelfConsumptionQuoteMonth -36
2020-05-19 18:42:49 SelfConsumptionQuoteYear -36
2020-05-19 18:43:58 TotalConsumption 244.4
2020-05-19 18:33:03 TotalConsumptionDay 9.1
2020-05-19 18:42:19 TotalConsumptionMonth -52.6
2020-05-19 18:42:49 TotalConsumptionYear -52.6
READINGS:
2020-05-20 06:06:32 AutarkyQuote 20
2020-05-19 23:30:42 AutarkyQuoteDay 56
2020-05-20 06:05:42 AutarkyQuoteMonth 236
2020-05-19 20:15:00 AutarkyQuoteYear 222
2020-05-20 06:06:32 GridConsumption 245.8
2020-05-20 06:00:42 GridConsumptionDay 1.7
2020-05-20 06:05:42 GridConsumptionMonth 66.4
2020-05-19 20:15:00 GridConsumptionYear 63.4
2020-05-20 06:06:32 GridFeedIn 0.0
2020-05-20 06:00:42 GridFeedInDay 0
2020-05-20 06:05:42 GridFeedInMonth 440.7
2020-05-19 20:15:00 GridFeedInYear 440.7
2020-05-20 06:06:32 PV 63.0
2020-05-20 06:00:42 PVDay 0
2020-05-20 06:05:42 PVMonth 325.5
2020-05-19 20:15:00 PVYear 325.5
2020-05-20 06:06:32 SelfConsumptionQuote 100
2020-05-19 23:30:42 SelfConsumptionQuoteDay 15
2020-05-20 06:05:42 SelfConsumptionQuoteMonth -35
2020-05-19 20:15:00 SelfConsumptionQuoteYear -35
2020-05-20 06:06:32 TotalConsumption 308.8
2020-05-20 06:00:42 TotalConsumptionDay 1.7
2020-05-20 06:05:42 TotalConsumptionMonth -48.8
2020-05-19 20:15:00 TotalConsumptionYear -51.8
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5eb9790a-f33f-cd72-259f-ccd2fe26eab837c6
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD sumValue
MODEL Client
NAME Rep.SMAEM.Einspeisung.Monat
NOTIFYDEV global,Rep.SMAEM.Einspeisung.Monat
NR 427
NTFY_ORDER 50-Rep.SMAEM.Einspeisung.Monat
ROLE Client
STATE done
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
SQLHIST
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-31
dsstr 2020-05-01
epoch_seconds_end 1590962399
mestr 05
msstr 05
testr 23:59:59
tsstr 00:00:00
wdadd 259200
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589955942.62236
VALUE done
OLDREADINGS:
READINGS:
2020-05-20 08:25:42 2020-05-01__SMA_Zaehler__Einspeisung_WirkP_Zaehler_Diff__SUM__no_aggregation 441.4257
2020-05-20 08:25:42 background_processing_time 0.0505
2020-05-20 08:25:42 sql_processing_time 0.0495
2020-05-20 08:25:42 state done
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Zaehler
event-on-update-reading state
reading Einspeisung_WirkP_Zaehler_Diff
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_month_begin
timestamp_end current_month_end
userExitFn setDumEnergy .*:.*
verbose 2
DATABASE /opt/fhem/fhem.db
DEF logdb
FUUID 5eb97981-f33f-cd72-5c15-46c14b9754c5f0b3
FVERSION 93_DbRep.pm:v8.40.0-s21546/2020-03-30
LASTCMD diffValue
MODEL Client
NAME Rep.STP5000.Erzeugung.Monat
NOTIFYDEV global,Rep.STP5000.Erzeugung.Monat
NR 428
NTFY_ORDER 50-Rep.STP5000.Erzeugung.Monat
ROLE Client
STATE done
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
MINTS 2020-04-13 21:54:39
PACKAGE main
SQLHIST
UEFN_REGEXP .*:.*
USEREXITFN setDumEnergy
VERSION 8.40.0
CV:
aggregation no
aggsec 1
destr 2020-05-31
dsstr 2020-05-01
epoch_seconds_end 1590962399
mestr 05
msstr 05
testr 23:59:59
tsstr 00:00:00
wdadd 259200
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1589955942.54029
VALUE done
OLDREADINGS:
READINGS:
2020-05-20 08:25:42 2020-05-20_08-24-46__SMA_Wechselrichter__etotal__DIFF__no_aggregation 326.9490
2020-05-20 08:25:42 background_processing_time 0.1381
2020-05-20 08:25:42 sql_processing_time 0.0739
2020-05-20 08:25:42 state done
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading etotal
room Photovoltaik
showproctime 1
timeout 180
timestamp_begin current_month_begin
timestamp_end current_month_end
userExitFn setDumEnergy .*:.*
verbose 2
READINGS:
2020-05-20 09:18:56 background_processing_time 0.0019
2020-05-20 09:18:56 sql_processing_time 0.0007
2020-05-20 09:18:56 state done
2020-05-20 09:18:56 timestamp_oldest_dataset 2020-04-13 21:54:39
READINGS:
2020-05-20 09:20:07 background_processing_time 0.0019
2020-05-20 09:20:07 sql_processing_time 0.0008
2020-05-20 09:20:07 state done
2020-05-20 09:20:07 timestamp_oldest_dataset 2020-04-13 21:54:39
Zitatsorry, musste zwischendrin tatsächlich noch was arbeitengeht mir auch so ;)
ZitatGenau das wolte ich checken ob dort alles drin ist, oder vllt. nur SMA_Energymeter oder der WR.
Daraus die ersten ca. 500 Zeilen????
Da ist doch der ganze log von fhem enthalten???
ZitatSollte man das Loggen nicht besser nur auf Einspeisung und Erzeugung usw. beschränken?Kommt drauf an was du sonst noch auswertest. Ich logge auch andere Dinge die ich benötige und grenze diese Dinge in den DbReps über die attribute device, reading ab. Teilweise nutze ich auch separate Datenbanken, z.B. für Events die ich über Log2Syslog als Collector von anderen Nicht-FHEM Devices (z.B. WLAN Access Points) sammle.
SET @begin_time='2020-06-02 12:30:00';SET @end_time='2020-06-02 18:00:00';
SET @device='shelly02';SET @reading='energy_0';
SELECT TIMESTAMP,READING,round(VALUE/1000,0) AS VALUE
FROM (
(SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP >= @begin_time and TIMESTAMP <= @end_time ORDER BY TIMESTAMP LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP >= @begin_time and TIMESTAMP <= @end_time ORDER BY TIMESTAMP DESC LIMIT 1)
) AS X1;
+---------------------+----------+-------+
| TIMESTAMP | READING | VALUE |
+---------------------+----------+-------+
| 2020-06-02 12:31:01 | energy_0 | 69 |
| 2020-06-02 16:31:05 | energy_0 | 73 |
+---------------------+----------+-------+
SET @begin_time='2020-06-02 12:30:00';SET @end_time='2020-06-02 18:00:00';
SET @device='shelly02';SET @reading='energy_0';
SELECT TIMESTAMP,READING,round(sum(VALUE)/1000,0) AS VALUE
FROM (
(SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP >= @begin_time and TIMESTAMP <= @end_time ORDER BY TIMESTAMP DESC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,(VALUE * -1) AS VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP >= @begin_time and TIMESTAMP <= @end_time ORDER BY TIMESTAMP LIMIT 1)
) AS X1;
+---------------------+----------+-------+
| TIMESTAMP | READING | VALUE |
+---------------------+----------+-------+
| 2020-06-02 16:31:05 | energy_0 | 4 |
+---------------------+----------+-------+
round(sum(VALUE)/1000,0) AS VALUE
Zitat von: DS_Starter am 05 Juni 2020, 09:42:43Ich war schon fleissig, koenntest Du mal nachschauen, ob es so okay ist?
Das Beispiel von Christian ist dort schonmal abgelegt.
Zitat von: DS_Starter am 05 Juni 2020, 13:48:33Ich habe es gekuerzt, wenn es noch kuerzer werden soll, dann muss ich auch die Anmerkungen mit der Erklaerung raus nehmen.
Einzige Anmerkung: Die Ergebnistabelle für die Beispiele würde ich auf ein paar Zeilen einkürzen. Die lange Tabelle stört nur und der Nachnutzer hat keinen Mehrwert wenn er _ALLE_ Ergebniszeilen lesen muss.
Zitat von: flummy1978 am 05 Juni 2020, 15:40:42Ich bedanke mich dehmuetig fuer das Lob...
Ich weiss nicht ob ICH es richtig verstanden habe... aber kleine Anmerkung von mir und für diejenigen die hier nicht den Zusammenhang dieser Befehle gelesen haben: Ggf wäre es von Vorteil auch das entsprechende DbRep Device auch einmal zu posten bzw ein Beispiel zu bringen.... Wenn der SQL Befehl in FHEM eingesetzt werden soll (und kann) muss man auch verstehen, wie es dort eingesetzt werden kann.
Aber ansosnten kann ich nur loben ... sieht wirklich SUPER aus. Alleine die Übersichtlichkeit in den Befehlen finde ich persönlich MEGA. Durch die Zeilenumbrüche kann man jeden einzelnen Befehl erkennen. Dadurch ist es für Anfänger (oder wenig erfahrene wie mich) leichter den Befehl nachzuvollziehen, wie er zusammen gesetzt wird und daraus lernen. Zu guter Letzt: Wenn man einen Befehlteil nicht kennt, kann man diesen besser rausfiltern und entsprechend danach suchen.... daher: wie immer, alle vorhandenen Daumen hoch :)
fhem@raspberrypi:~$ mysql -h [IP-Adresse] --port 3306 --database fhem -u fhemuser -p
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 42516
Server version: 5.5.60-0+deb7u1 (Debian)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [fhem]>
Internals:
DATABASE fhem
DEF logdb
FUUID 5d855dda-f33f-69d4-59da-2c00db9bd37e3d8c
FVERSION 93_DbRep.pm:v8.40.1-s21965/2020-05-18
LASTCMD averageValue writeToDB
MODEL Client
NAME Report.Wetter
NOTIFYDEV global,Report.Wetter
NR 171
NTFY_ORDER 50-Report.Wetter
ROLE Client
STATE done
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE logdb
GRANTS SELECT,USAGE,UPDATE,INSERT,DELETE
IDRETRIES 3
MINTS 2018-10-06 11:45:06
PACKAGE main
SQLHIST
VERSION 8.40.1
CV:
aggregation day
aggsec 86400
destr 2020-06-26
dsstr 2020-06-01
epoch_seconds_end 1593187199
mestr 06
msstr 06
testr 23:59:59
tsstr 00:00:00
wdadd
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
logdb:
TIME 1593222219.24083
VALUE done
OLDREADINGS:
READINGS:
2020-06-27 09:43:39 2020-06-01__Luftquali__temperature__AVGDMGWS__2020-06-01 16.1
2020-06-27 09:43:39 2020-06-02__Luftquali__temperature__AVGDMGWS__2020-06-02 18.4
2020-06-27 09:43:39 2020-06-03__Luftquali__temperature__AVGDMGWS__2020-06-03 insufficient values
2020-06-27 09:43:39 2020-06-04__Luftquali__temperature__AVGDMGWS__2020-06-04 16.8
2020-06-27 09:43:39 2020-06-05__Luftquali__temperature__AVGDMGWS__2020-06-05 19.5
2020-06-27 09:43:39 2020-06-06__Luftquali__temperature__AVGDMGWS__2020-06-06 21.8
2020-06-27 09:43:39 2020-06-07__Luftquali__temperature__AVGDMGWS__2020-06-07 25.3
2020-06-27 09:43:39 2020-06-08__Luftquali__temperature__AVGDMGWS__2020-06-08 28.8
2020-06-27 09:43:39 2020-06-09__Luftquali__temperature__AVGDMGWS__2020-06-09 24.5
2020-06-27 09:43:39 2020-06-10__Luftquali__temperature__AVGDMGWS__2020-06-10 21.3
2020-06-27 09:43:39 2020-06-11__Luftquali__temperature__AVGDMGWS__2020-06-11 21.3
2020-06-27 09:43:39 2020-06-12__Luftquali__temperature__AVGDMGWS__2020-06-12 25.1
2020-06-27 09:43:39 2020-06-13__Luftquali__temperature__AVGDMGWS__2020-06-13 24.4
2020-06-27 09:43:39 2020-06-14__Luftquali__temperature__AVGDMGWS__2020-06-14 20.8
2020-06-27 09:43:39 2020-06-15__Luftquali__temperature__AVGDMGWS__2020-06-15 19.5
2020-06-27 09:43:39 2020-06-16__Luftquali__temperature__AVGDMGWS__2020-06-16 24.5
2020-06-27 09:43:39 2020-06-17__Luftquali__temperature__AVGDMGWS__2020-06-17 25.9
2020-06-27 09:43:39 2020-06-18__Luftquali__temperature__AVGDMGWS__2020-06-18 22.9
2020-06-27 09:43:39 2020-06-19__Luftquali__temperature__AVGDMGWS__2020-06-19 23.4
2020-06-27 09:43:39 2020-06-20__Luftquali__temperature__AVGDMGWS__2020-06-20 insufficient values
2020-06-27 09:43:39 2020-06-21__Luftquali__temperature__AVGDMGWS__2020-06-21 23.1
2020-06-27 09:43:39 2020-06-22__Luftquali__temperature__AVGDMGWS__2020-06-22 insufficient values
2020-06-27 09:43:39 2020-06-23__Luftquali__temperature__AVGDMGWS__2020-06-23 insufficient values
2020-06-27 09:43:39 2020-06-24__Luftquali__temperature__AVGDMGWS__2020-06-24 insufficient values
2020-06-27 09:43:39 2020-06-25__Luftquali__temperature__AVGDMGWS__2020-06-25 insufficient values
2020-06-27 09:43:39 2020-06-26__Luftquali__temperature__AVGDMGWS__2020-06-26 insufficient values
2020-06-27 09:43:39 background_processing_time 2.2513
2020-06-27 09:43:39 db_lines_processed 38
2020-06-27 09:43:39 sql_processing_time 2.2298
2020-06-27 09:43:39 state done
Attributes:
aggregation day
allowDeletion 1
averageCalcForm avgDailyMeanGWS
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device Luftquali
event-on-update-reading state
group DB
icon security
reading temperature
room Datenbank
showproctime 1
sortby 33
timestamp_begin current_month_begin
timestamp_end previous_day_end
verbose 5
berechnet die Tagesmitteltemperatur entsprechend den Vorschriften des deutschen Wetterdienstes (siehe "get <name> versionNotes 2").
Diese Variante verwendet automatisch die Aggregation "day".
Ab dem 01.04.2001 wurde der Standard wie folgt geändert:
* Berechnung der Tagesmittel aus 24 Stundenwerten
* Wenn mehr als 3 Stundenwerte fehlen -> Berechnung aus den 4 Hauptterminen (00, 06, 12, 18 UTC)
* Bezugszeit für einen Tag i.d.R. 23:51 UTC des Vortages bis 23:50 UTC
2020-06-27 13:29:48 2020-06-25__Dum.Energy__AutarkyQuote__AVGDMGWS__2020-06-25 52.3
2020-06-27 13:29:48 2020-06-26__Dum.Energy__AutarkyQuote__AVGDMGWS__2020-06-26 51.6
2020-06-27 13:29:48 2020-06-27__Dum.Energy__AutarkyQuote__AVGDMGWS__2020-06-27 insufficient values - execute get Rep.CPU versionNotes 2 for further information
SET @device = 'Dum.Energy';SET @reading='PVMonth';
SELECT TIMESTAMP,READING, VALUE
FROM (
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 0 month) AND LAST_DAY(NOW() - interval 0 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 1 month) AND LAST_DAY(NOW() - interval 1 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 2 month) AND LAST_DAY(NOW() - interval 2 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 3 month) AND LAST_DAY(NOW() - interval 3 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 4 month) AND LAST_DAY(NOW() - interval 4 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 5 month) AND LAST_DAY(NOW() - interval 5 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 6 month) AND LAST_DAY(NOW() - interval 6 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 7 month) AND LAST_DAY(NOW() - interval 7 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 8 month) AND LAST_DAY(NOW() - interval 8 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 9 month) AND LAST_DAY(NOW() - interval 9 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 10 month) AND LAST_DAY(NOW() - interval 10 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
UNION ALL
(SELECT TIMESTAMP,READING,VALUE FROM (SELECT TIMESTAMP,READING,VALUE FROM history WHERE DEVICE = @device AND READING = @reading AND TIMESTAMP BETWEEN LAST_DAY(NOW() - interval 11 month) AND LAST_DAY(NOW() - interval 11 month) + interval 1 day ORDER BY TIMESTAMP DESC LIMIT 2) AS X1 ORDER BY TIMESTAMP ASC LIMIT 1)
) AS X1 ORDER BY TIMESTAMP;
+---------------------+---------+--------+
| TIMESTAMP | READING | VALUE |
+---------------------+---------+--------+
| 2020-04-30 23:00:00 | PVMonth | 563.77 |
| 2020-05-31 23:00:00 | PVMonth | 511.61 |
| 2020-06-30 19:00:00 | PVMonth | 465.54 |
+---------------------+---------+--------+
Internals:
DATABASE fhem
DEF LogDB
FUUID 5e57f222-f33f-61a8-e514-be207ebe812c1bee
FVERSION 93_DbRep.pm:v8.40.2-s22287/2020-06-27
...
MODEL Client
NAME LogDBRep
NOTIFYDEV global,LogDBRep
NR 420
NTFY_ORDER 50-LogDBRep
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS ALL PRIVILEGES,USAGE
IDRETRIES 3
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST
VERSION 8.40.2
CV:
aggregation no
aggsec 1
destr 2020-06-30
dsstr 2020-06-30
epoch_seconds_end 1593554399
mestr 06
msstr 06
testr 23:59:59
tsstr 00:00:00
wdadd 518400
yestr 2020
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2020-06-30 19:33:16 SqlResultRow_1 TIMESTAMP|READING|VALUE
2020-06-30 19:33:16 SqlResultRow_2 2020-04-30 00:00:00|PVMonth|545.34
2020-06-30 19:33:16 SqlResultRow_3 2020-05-31 00:00:00|PVMonth|492.22
2020-06-30 19:33:16 SqlResultRow_4 2020-06-30 00:00:00|PVMonth|451.55
2020-06-30 19:33:16 sqlCmd ...Mein Select...
2020-06-30 19:33:16 sqlResultNumRows 3
2020-06-30 19:33:16 state done
Attributes:
DbLogExclude .*
allowDeletion 0
set <> maxValue display
aggregation = month
set <> maxValue writeToDB
Attributes:
aggregation month
device Dum.Energy
reading PVMonth
timestamp_begin current_year_begin
timestamp_end current_day_end
READINGS:
2020-07-01 11:05:02 2020-01-01__Dum.Energy__PVMonth__MAX__2020-01 0.0000
2020-07-01 11:05:02 2020-02-01__Dum.Energy__PVMonth__MAX__2020-02 0.0000
2020-07-01 11:05:02 2020-03-01__Dum.Energy__PVMonth__MAX__2020-03 0.0000
2020-07-01 11:05:02 2020-04-30_23-00-00__Dum.Energy__PVMonth__MAX__2020-04 563.7700
2020-07-01 11:05:02 2020-05-01_00-00-00__Dum.Energy__PVMonth__MAX__2020-05 564.1500
2020-07-01 11:05:02 2020-06-01_00-00-00__Dum.Energy__PVMonth__MAX__2020-06 512.1700
2020-07-01 11:05:02 2020-07-01_00-00-00__Dum.Energy__PVMonth__MAX__2020-07 467.5600
# Created by FHEM/98_SVG.pm, 2020-07-01 13:57:43
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'PV_Bilanz'
set ytics
set y2tics
set grid
set ylabel ""
set y2label ""
#LogDB Dum.Energy:max_month_PVMonth::
plot "<IN>" using 1:2 axes x1y2 title 'PVMonth' ls l2 lw 1 with bars
ZitatDie Krönung wäre natürlich, wenn man die Beschriftung under den bar verschieben könnte, aber so reicht es auch :-)Kannst du ja mal im SVG Forum nachfragen. Ich bin da nicht so der Experte der Feinheiten vom SVG.
Zitat von: DS_Starter am 01 Juli 2020, 14:21:57Waere es da nicht besser das von Dir verwendete SQL, das den Monatswert ermittelt, zu dokumentieren?
es wäre trotzdem schön wenn du dein Statement wieder im Wiki einbringen würdes. Man kann davon eigene Übungen ableiten. 8)
Zitat von: DS_Starter am 01 Juli 2020, 14:31:24Dokumentation im Code war schon immer geil :-)
Naja, das sieht man ja wenn man verbose 4, respective 5, einschaltet ;)
2020-07-14 19:14:17 2020-07-14_05-00-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 19:14:17 2020-07-14_05-00-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0518
2020-07-14 19:14:17 2020-07-14_05-41-30__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0031
2020-07-14 19:14:17 2020-07-14_05-41-32__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2383
Zitat
Doppelter Datensatz mit ...Diff_1
Zitat von: ch.eick am 15 Juli 2020, 11:12:43
Ich überlege mal mit, kann aber etwas dauern.
Als erstes würde ich das Abfrageintervall schon mal verlängern :-)
Gruß Christian
Zitat von: DS_Starter am 15 Juli 2020, 11:17:36
Danke fürs Mitdenken Christian :)
Die Aussage
ist nicht ganz korrekt.. Die Werte sind different, bei doppelten DS wären sie identisch.
Deswegen reduziert sich die Aufgabe DS zeitlich in einem bestimmten kleinen Intervall zu identifizieren und den späteren von beiden zu löschen.
- aggregieren auf Minuten Basis
- Es werden neue Eintraege geschrieben z.B. 2020-06-30_23-59-00__SMA_Zaehler__Bezug_WirkP_Zaehler__MAX__2020-06-.......
- Loeschen aller alten Eintraege in dem Zeitraum von timestamp_begin bis timestamp_end
- Umbenennen der neuen Eintraege auf den reading Namen der urspruenglichen readings
2020-07-14 20:20:28 2020-07-14_04-37-54__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-38-54__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-39-55__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-40-56__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-41-57__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-42-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0063
2020-07-14 20:20:28 2020-07-14_04-43-59__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0250
2020-07-14 20:20:28 2020-07-14_04-45-00__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-46-01__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-47-02__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-48-03__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-49-04__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-49-04__2__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-50-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-50-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0047
2020-07-14 20:20:28 2020-07-14_04-51-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0094
2020-07-14 20:20:28 2020-07-14_04-52-08__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-52-44__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0141
2020-07-14 20:20:28 2020-07-14_04-53-11__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0189
2020-07-14 20:20:28 2020-07-14_04-54-11__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-54-12__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0237
2020-07-14 20:20:28 2020-07-14_04-55-13__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0283
2020-07-14 20:20:28 2020-07-14_04-56-14__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_04-56-26__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0330
2020-07-14 20:20:28 2020-07-14_04-57-17__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0377
2020-07-14 20:20:28 2020-07-14_04-58-19__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_04-58-19__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0424
2020-07-14 20:20:28 2020-07-14_04-59-21__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0470
2020-07-14 20:20:28 2020-07-14_04-59-21__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0047
2020-07-14 20:20:28 2020-07-14_05-00-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_05-00-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0518
2020-07-14 20:20:28 2020-07-14_05-01-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0564
2020-07-14 20:20:28 2020-07-14_05-02-23__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0046
2020-07-14 20:20:28 2020-07-14_05-03-08__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0612
2020-07-14 20:20:28 2020-07-14_05-03-55__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0659
2020-07-14 20:20:28 2020-07-14_05-04-40__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0704
2020-07-14 20:20:28 2020-07-14_05-05-41__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0054
2020-07-14 20:20:28 2020-07-14_05-05-50__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0749
2020-07-14 20:20:28 2020-07-14_05-06-31__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0793
2020-07-14 20:20:28 2020-07-14_05-07-32__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0057
2020-07-14 20:20:28 2020-07-14_05-07-32__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0849
2020-07-14 20:20:28 2020-07-14_05-08-33__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0063
2020-07-14 20:20:28 2020-07-14_05-08-34__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0914
2020-07-14 20:20:28 2020-07-14_05-09-36__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0063
2020-07-14 20:20:28 2020-07-14_05-09-45__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0976
2020-07-14 20:20:28 2020-07-14_05-10-39__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1037
2020-07-14 20:20:28 2020-07-14_05-11-39__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0058
2020-07-14 20:20:28 2020-07-14_05-11-39__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.1095
2020-07-14 20:20:28 2020-07-14_05-12-41__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1143
2020-07-14 20:20:28 2020-07-14_05-12-41__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0049
2020-07-14 20:20:28 2020-07-14_05-13-42__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_05-13-46__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1190
2020-07-14 20:20:28 2020-07-14_05-14-45__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1237
2020-07-14 20:20:28 2020-07-14_05-15-46__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0050
2020-07-14 20:20:28 2020-07-14_05-16-46__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1332
2020-07-14 20:20:28 2020-07-14_05-17-47__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_05-17-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1382
2020-07-14 20:20:28 2020-07-14_05-18-53__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0049
2020-07-14 20:20:28 2020-07-14_05-19-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1429
2020-07-14 20:20:28 2020-07-14_05-20-19__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1477
2020-07-14 20:20:28 2020-07-14_05-20-57__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1524
2020-07-14 20:20:28 2020-07-14_05-21-56__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1571
2020-07-14 20:20:28 2020-07-14_05-22-57__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0047
2020-07-14 20:20:28 2020-07-14_05-23-59__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1618
2020-07-14 20:20:28 2020-07-14_05-23-59__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0047
2020-07-14 20:20:28 2020-07-14_05-24-48__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1666
2020-07-14 20:20:28 2020-07-14_05-25-49__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0074
2020-07-14 20:20:28 2020-07-14_05-26-05__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1749
2020-07-14 20:20:28 2020-07-14_05-27-07__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0038
2020-07-14 20:20:28 2020-07-14_05-28-08__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0034
2020-07-14 20:20:28 2020-07-14_05-28-08__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.1820
2020-07-14 20:20:28 2020-07-14_05-29-10__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0034
2020-07-14 20:20:28 2020-07-14_05-29-10__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.1854
2020-07-14 20:20:28 2020-07-14_05-30-11__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1905
2020-07-14 20:20:28 2020-07-14_05-31-13__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0051
2020-07-14 20:20:28 2020-07-14_05-31-23__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.1955
2020-07-14 20:20:28 2020-07-14_05-32-15__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2006
2020-07-14 20:20:28 2020-07-14_05-33-16__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0051
2020-07-14 20:20:28 2020-07-14_05-33-16__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.2056
2020-07-14 20:20:28 2020-07-14_05-34-18__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0050
2020-07-14 20:20:28 2020-07-14_05-34-25__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2106
2020-07-14 20:20:28 2020-07-14_05-35-27__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0056
2020-07-14 20:20:28 2020-07-14_05-35-35__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2155
2020-07-14 20:20:28 2020-07-14_05-36-37__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0062
2020-07-14 20:20:28 2020-07-14_05-36-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2203
2020-07-14 20:20:28 2020-07-14_05-37-23__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2251
2020-07-14 20:20:28 2020-07-14_05-38-24__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0036
2020-07-14 20:20:28 2020-07-14_05-39-26__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2288
2020-07-14 20:20:28 2020-07-14_05-39-26__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0032
2020-07-14 20:20:28 2020-07-14_05-39-28__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2320
2020-07-14 20:20:28 2020-07-14_05-40-29__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2351
2020-07-14 20:20:28 2020-07-14_05-41-30__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0031
2020-07-14 20:20:28 2020-07-14_05-41-32__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2383
2020-07-14 20:20:28 2020-07-14_05-42-33__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2414
2020-07-14 20:20:28 2020-07-14_05-42-33__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0031
2020-07-14 20:20:28 2020-07-14_05-43-36__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0034
2020-07-14 20:20:28 2020-07-14_05-44-14__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2447
2020-07-14 20:20:28 2020-07-14_05-45-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2484
2020-07-14 20:20:28 2020-07-14_05-45-53__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2518
2020-07-14 20:20:28 2020-07-14_05-46-55__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0040
2020-07-14 20:20:28 2020-07-14_05-47-27__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2549
2020-07-14 20:20:28 2020-07-14_05-48-29__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0057
2020-07-14 20:20:28 2020-07-14_05-48-41__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2612
2020-07-14 20:20:28 2020-07-14_05-49-43__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0026
2020-07-14 20:20:28 2020-07-14_05-49-43__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.2637
2020-07-14 20:20:28 2020-07-14_05-50-44__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0032
2020-07-14 20:20:28 2020-07-14_05-50-44__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.2669
2020-07-14 20:20:28 2020-07-14_05-51-44__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0028
2020-07-14 20:20:28 2020-07-14_05-52-40__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2698
2020-07-14 20:20:28 2020-07-14_05-52-45__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2721
2020-07-14 20:20:28 2020-07-14_05-53-46__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2744
2020-07-14 20:20:28 2020-07-14_05-54-49__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0023
2020-07-14 20:20:28 2020-07-14_05-54-49__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.2767
2020-07-14 20:20:28 2020-07-14_05-55-49__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0022
2020-07-14 20:20:28 2020-07-14_05-56-48__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2789
2020-07-14 20:20:28 2020-07-14_05-57-02__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2811
2020-07-14 20:20:28 2020-07-14_05-57-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2832
2020-07-14 20:20:28 2020-07-14_05-58-53__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2854
2020-07-14 20:20:28 2020-07-14_05-59-54__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0020
2020-07-14 20:20:28 2020-07-14_05-59-57__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2875
2020-07-14 20:20:28 2020-07-14_06-00-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0042
2020-07-14 20:20:28 2020-07-14_06-00-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.2915
2020-07-14 20:20:28 2020-07-14_06-02-00__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0041
2020-07-14 20:20:28 2020-07-14_06-02-12__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2957
2020-07-14 20:20:28 2020-07-14_06-03-00__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.2983
2020-07-14 20:20:28 2020-07-14_06-04-03__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0086
2020-07-14 20:20:28 2020-07-14_06-04-03__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.3066
2020-07-14 20:20:28 2020-07-14_06-05-03__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0051
2020-07-14 20:20:28 2020-07-14_06-06-03__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3164
2020-07-14 20:20:28 2020-07-14_06-07-04__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0042
2020-07-14 20:20:28 2020-07-14_06-07-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3207
2020-07-14 20:20:28 2020-07-14_06-08-07__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3252
2020-07-14 20:20:28 2020-07-14_06-09-08__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3327
2020-07-14 20:20:28 2020-07-14_06-10-09__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0114
2020-07-14 20:20:28 2020-07-14_06-10-11__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3442
2020-07-14 20:20:28 2020-07-14_06-11-13__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0094
2020-07-14 20:20:28 2020-07-14_06-12-10__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3533
2020-07-14 20:20:28 2020-07-14_06-13-12__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0115
2020-07-14 20:20:28 2020-07-14_06-13-15__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3650
2020-07-14 20:20:28 2020-07-14_06-14-15__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3684
2020-07-14 20:20:28 2020-07-14_06-15-16__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0034
2020-07-14 20:20:28 2020-07-14_06-15-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3719
2020-07-14 20:20:28 2020-07-14_06-16-21__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.3979
2020-07-14 20:20:28 2020-07-14_06-17-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0262
2020-07-14 20:20:28 2020-07-14_06-18-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4349
2020-07-14 20:20:28 2020-07-14_06-19-23__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0252
2020-07-14 20:20:28 2020-07-14_06-20-25__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0058
2020-07-14 20:20:28 2020-07-14_06-21-27__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0053
2020-07-14 20:20:28 2020-07-14_06-21-38__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4713
2020-07-14 20:20:28 2020-07-14_06-22-39__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0051
2020-07-14 20:20:28 2020-07-14_06-22-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4759
2020-07-14 20:20:28 2020-07-14_06-23-59__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0045
2020-07-14 20:20:28 2020-07-14_06-24-03__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4790
2020-07-14 20:20:28 2020-07-14_06-24-34__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4821
2020-07-14 20:20:28 2020-07-14_06-25-35__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0031
2020-07-14 20:20:28 2020-07-14_06-26-04__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4851
2020-07-14 20:20:28 2020-07-14_06-27-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0048
2020-07-14 20:20:28 2020-07-14_06-27-47__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4915
2020-07-14 20:20:28 2020-07-14_06-28-48__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0027
2020-07-14 20:20:28 2020-07-14_06-28-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4939
2020-07-14 20:20:28 2020-07-14_06-30-00__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0028
2020-07-14 20:20:28 2020-07-14_06-30-05__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.4960
2020-07-14 20:20:28 2020-07-14_06-31-07__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0030
2020-07-14 20:20:28 2020-07-14_06-31-43__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5002
2020-07-14 20:20:28 2020-07-14_06-32-44__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0021
2020-07-14 20:20:28 2020-07-14_06-32-46__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5023
2020-07-14 20:20:28 2020-07-14_06-33-47__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0021
2020-07-14 20:20:28 2020-07-14_06-33-47__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5043
2020-07-14 20:20:28 2020-07-14_06-34-50__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0019
2020-07-14 20:20:28 2020-07-14_06-35-50__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5080
2020-07-14 20:20:28 2020-07-14_06-36-51__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0018
2020-07-14 20:20:28 2020-07-14_06-36-51__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5098
2020-07-14 20:20:28 2020-07-14_06-37-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0019
2020-07-14 20:20:28 2020-07-14_06-37-52__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5116
2020-07-14 20:20:28 2020-07-14_06-38-53__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0019
2020-07-14 20:20:28 2020-07-14_06-38-53__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5136
2020-07-14 20:20:28 2020-07-14_06-39-55__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0021
2020-07-14 20:20:28 2020-07-14_06-40-57__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0020
2020-07-14 20:20:28 2020-07-14_06-40-57__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5177
2020-07-14 20:20:28 2020-07-14_06-41-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0018
2020-07-14 20:20:28 2020-07-14_06-41-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5195
2020-07-14 20:20:28 2020-07-14_06-42-59__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0016
2020-07-14 20:20:28 2020-07-14_06-44-00__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0014
2020-07-14 20:20:28 2020-07-14_06-44-00__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5224
2020-07-14 20:20:28 2020-07-14_06-45-01__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5237
2020-07-14 20:20:28 2020-07-14_06-46-02__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0014
2020-07-14 20:20:28 2020-07-14_06-46-04__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5251
2020-07-14 20:20:28 2020-07-14_06-47-06__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0009
2020-07-14 20:20:28 2020-07-14_06-47-14__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5260
2020-07-14 20:20:28 2020-07-14_06-48-10__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5267
2020-07-14 20:20:28 2020-07-14_06-49-11__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0008
2020-07-14 20:20:28 2020-07-14_06-49-48__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5275
2020-07-14 20:20:28 2020-07-14_06-50-12__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5282
2020-07-14 20:20:28 2020-07-14_06-51-15__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0006
2020-07-14 20:20:28 2020-07-14_06-52-16__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0122
2020-07-14 20:20:28 2020-07-14_06-53-18__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0141
2020-07-14 20:20:28 2020-07-14_06-53-58__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5550
2020-07-14 20:20:28 2020-07-14_06-54-17__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5567
2020-07-14 20:20:28 2020-07-14_06-55-19__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0012
2020-07-14 20:20:28 2020-07-14_06-55-19__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5579
2020-07-14 20:20:28 2020-07-14_06-56-19__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5583
2020-07-14 20:20:28 2020-07-14_06-57-21__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0
2020-07-14 20:20:28 2020-07-14_06-57-21__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5583
2020-07-14 20:20:28 2020-07-14_06-58-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.5583
2020-07-14 20:20:28 2020-07-14_06-58-22__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.0001
2020-07-14 20:20:28 2020-07-14_06-59-24__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0001
2020-07-14 20:20:28 2020-07-14_06-59-24__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff_1 0.5584
2020-07-14 20:20:28 2020-07-14_07-00-26__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0
2020-07-14 20:20:28 2020-07-14_07-03-47__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0.0002
2020-07-14 20:20:28 2020-07-14_07-04-48__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0
2020-07-14 20:20:28 2020-07-14_07-05-48__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0
2020-07-14 20:20:28 2020-07-14_07-06-49__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0
2020-07-14 20:20:28 2020-07-14_07-07-50__1__SMA_Zaehler__Bezug_WirkP_Zaehler_Diff 0
Zitat von: dk3572 am 15 Juli 2020, 14:17:06Das sieht fuer mich aus, wie eine DBRep ausgabe??? Ich wuerde gerne die original Eintraege aus der DB sehen.
Ich hoffe das ist das was du wolltest ???
select * from history
where DEVICE = 'SMA_Zaehler' AND READING = 'Bezug_WirkP_Zaehler_Diff' AND
TIMESTAMP >= '2020-07-14 04:37:54' and TIMESTAMP < '2020-07-14 07:07:50'
ORDER BY TIMESTAMP
Zitat von: dk3572 am 15 Juli 2020, 15:09:23
Das weiß ich leider nicht wie das funktioniert. :-[
Falls du mir die nötigen Schritte zeigst, kann ich das gerne liefern.
ZitatIch denke, da ist ein bekanntes Verhalten, fuer dass es bereits eine Umgehung gibt. Das koenntest Du in dem anderen SMAEM thread mal posten und somit die Ursache der DB Eintraege beseitigen.
diffAccept
legt fest, bis zu welchem Schwellenwert eine berechnete positive Werte-Differenz
zwischen zwei unmittelbar aufeinander folgenden Zählerwerten (Readings mit *_Diff) akzeptiert werden
soll (Standard ist 10).
Damit werden eventuell fehlerhafte Differenzen mit einem unverhältnismäßig hohen Differenzwert von der Berechnung
ausgeschlossen und der Messzyklus verworfen.
fhem@raspberrypi:~$ mysql -h <IP-Adresse der Datenbank> --port 3306 --database fhem -u <Username aus der Konfiguration> -p
Enter password:
Server version: 5.5.60-0+deb7u1 (Debian)
MySQL [fhem]> select * from history where DEVICE = 'StromZaehler_Heizung' AND READING = 'SMAEM1901401955_Saldo_Wirkleistung_Zaehler' AND TIMESTAMP >= '2020-07-14 04:37:54' and TIMESTAMP < '2020-07-15 07:07:50' ORDER BY TIMESTAMP;
+---------------------+----------------------+-------+-----------------------------------------------------+--------------------------------------------+---------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+----------------------+-------+-----------------------------------------------------+--------------------------------------------+---------+------+
| 2020-07-14 06:02:02 | StromZaehler_Heizung | SMAEM | SMAEM1901401955_Saldo_Wirkleistung_Zaehler: -2166.7 | SMAEM1901401955_Saldo_Wirkleistung_Zaehler | -2166.7 | kWh |
| 2020-07-14 07:41:42 | StromZaehler_Heizung | SMAEM | SMAEM1901401955_Saldo_Wirkleistung_Zaehler: -2166.8 | SMAEM1901401955_Saldo_Wirkleistung_Zaehler | -2166.8 | kWh |
| 2020-07-14 08:58:59 | StromZaehler_Heizung | SMAEM | SMAEM1901401955_Saldo_Wirkleistung_Zaehler: -2166.9 | SMAEM1901401955_Saldo_Wirkleistung_Zaehler | -2166.9 | kWh |
snip...
| 2020-07-15 06:25:53 | StromZaehler_Heizung | SMAEM | SMAEM1901401955_Saldo_Wirkleistung_Zaehler: -2169.8 | SMAEM1901401955_Saldo_Wirkleistung_Zaehler | -2169.8 | kWh |
+---------------------+----------------------+-------+-----------------------------------------------------+--------------------------------------------+---------+------+
32 rows in set (0.024 sec)
MySQL [fhem]>
Zitat von: ch.eick am 15 Juli 2020, 15:06:41Code Auswählen
select * from history
where DEVICE = SMA_Zaehler AND READING = Bezug_WirkP_Zaehler_Diff AND
TIMESTAMP >= '2020-07-14 04:37:54' and TIMESTAMP < '2020-07-14 07:07:50'
ORDER BY TIMESTAMP
Zitat von: dk3572 am 15 Juli 2020, 16:23:47Ich habe den vorherigen Post noch mal mit einem Beispiel editiert.
Ich konnte mich hierdurch anmelden: sudo sqlite3 /opt/fhem/fhem.db
select * from history where DEVICE = 'SMA_Zaehler' AND READING = 'Bezug_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2020-07-14 04:37:54' and TIMESTAMP < '2020-07-15 07:07:50' ORDER BY TIMESTAMP;
Zitat von: dk3572 am 15 Juli 2020, 17:01:27Da muss der Tabellenname der sqlite Datenbank rein.
Error: no such table: history
Zitat von: ch.eick am 15 Juli 2020, 17:08:31
Da muss der Tabellenname der sqlite Datenbank rein.
Zitat von: dk3572 am 15 Juli 2020, 17:12:39
sorry, wo muss welcher Name rein?
MySQL [fhem]> SELECT table_schema "DB Name",
-> Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
-> FROM information_schema.tables
-> GROUP BY table_schema;
+--------------------+---------------+
| DB Name | DB Size in MB |
+--------------------+---------------+
| fhem | 2816.7 |
| information_schema | 0.0 |
+--------------------+---------------+
MySQL [fhem]> SHOW TABLES;
+----------------+
| Tables_in_fhem |
+----------------+
| current |
| history |
+----------------+
Zitat von: dk3572 am 15 Juli 2020, 17:34:14
und mich eben mit sudo sqlite3 /opt/fhem/fhem.db angemeldet.
There are a few steps to see the tables in an SQLite database:
List the tables in your database:
.tables
List how the table looks:
.schema tablename
Print the entire table: <<<< Achtung, nicht mit der ganzen history !!!!
SELECT * FROM tablename; <<<<< hier waere dann mein Vorschlag einzusetzen
Zitat von: DS_Starter am 15 Juli 2020, 18:08:47
Ich weiß von füher dass die DB bei dk3572 falsch ist. Muss sein
Bin schon wiede weg ... ;)
2020-07-14 04:37:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:38:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:39:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:40:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:41:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:42:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0063|Bezug_WirkP_Zaehler_Diff|0.0063|
2020-07-14 04:43:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0250|Bezug_WirkP_Zaehler_Diff|0.0250|
2020-07-14 04:45:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:46:01|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:47:02|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:48:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:49:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:49:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:50:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:50:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:51:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0094|Bezug_WirkP_Zaehler_Diff|0.0094|
2020-07-14 04:52:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:52:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0141|Bezug_WirkP_Zaehler_Diff|0.0141|
2020-07-14 04:53:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0189|Bezug_WirkP_Zaehler_Diff|0.0189|
2020-07-14 04:54:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:54:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0237|Bezug_WirkP_Zaehler_Diff|0.0237|
2020-07-14 04:55:13|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0283|Bezug_WirkP_Zaehler_Diff|0.0283|
2020-07-14 04:56:14|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:56:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0330|Bezug_WirkP_Zaehler_Diff|0.0330|
2020-07-14 04:57:17|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0377|Bezug_WirkP_Zaehler_Diff|0.0377|
2020-07-14 04:58:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0424|Bezug_WirkP_Zaehler_Diff|0.0424|
2020-07-14 04:58:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:59:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:59:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0470|Bezug_WirkP_Zaehler_Diff|0.0470|
2020-07-14 05:00:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0518|Bezug_WirkP_Zaehler_Diff|0.0518|
2020-07-14 05:00:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 05:01:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0564|Bezug_WirkP_Zaehler_Diff|0.0564|
2020-07-14 05:02:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0046|Bezug_WirkP_Zaehler_Diff|0.0046|
2020-07-14 05:03:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0612|Bezug_WirkP_Zaehler_Diff|0.0612|
2020-07-14 05:03:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0659|Bezug_WirkP_Zaehler_Diff|0.0659|
2020-07-14 05:04:40|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0704|Bezug_WirkP_Zaehler_Diff|0.0704|
2020-07-14 05:05:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0054|Bezug_WirkP_Zaehler_Diff|0.0054|
2020-07-14 05:05:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0749|Bezug_WirkP_Zaehler_Diff|0.0749|
2020-07-14 05:06:31|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0793|Bezug_WirkP_Zaehler_Diff|0.0793|
2020-07-14 05:07:32|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0849|Bezug_WirkP_Zaehler_Diff|0.0849|
2020-07-14 05:07:32|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0057|Bezug_WirkP_Zaehler_Diff|0.0057|
2020-07-14 05:08:33|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0063|Bezug_WirkP_Zaehler_Diff|0.0063|
2020-07-14 05:08:34|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0914|Bezug_WirkP_Zaehler_Diff|0.0914|
2020-07-14 05:09:36|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0063|Bezug_WirkP_Zaehler_Diff|0.0063|
2020-07-14 05:09:45|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0976|Bezug_WirkP_Zaehler_Diff|0.0976|
2020-07-14 05:10:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1037|Bezug_WirkP_Zaehler_Diff|0.1037|
2020-07-14 05:11:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1095|Bezug_WirkP_Zaehler_Diff|0.1095|
2020-07-14 05:11:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0058|Bezug_WirkP_Zaehler_Diff|0.0058|
2020-07-14 05:12:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0049|Bezug_WirkP_Zaehler_Diff|0.0049|
2020-07-14 05:12:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1143|Bezug_WirkP_Zaehler_Diff|0.1143|
2020-07-14 05:13:42|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 05:13:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1190|Bezug_WirkP_Zaehler_Diff|0.1190|
2020-07-14 05:14:45|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1237|Bezug_WirkP_Zaehler_Diff|0.1237|
2020-07-14 05:15:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0050|Bezug_WirkP_Zaehler_Diff|0.0050|
2020-07-14 05:16:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1332|Bezug_WirkP_Zaehler_Diff|0.1332|
2020-07-14 05:17:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 05:17:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1382|Bezug_WirkP_Zaehler_Diff|0.1382|
2020-07-14 05:18:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0049|Bezug_WirkP_Zaehler_Diff|0.0049|
2020-07-14 05:19:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1429|Bezug_WirkP_Zaehler_Diff|0.1429|
2020-07-14 05:20:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1477|Bezug_WirkP_Zaehler_Diff|0.1477|
2020-07-14 05:20:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1524|Bezug_WirkP_Zaehler_Diff|0.1524|
2020-07-14 05:21:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1571|Bezug_WirkP_Zaehler_Diff|0.1571|
2020-07-14 05:22:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 05:23:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 05:23:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1618|Bezug_WirkP_Zaehler_Diff|0.1618|
2020-07-14 05:24:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1666|Bezug_WirkP_Zaehler_Diff|0.1666|
2020-07-14 05:25:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0074|Bezug_WirkP_Zaehler_Diff|0.0074|
2020-07-14 05:26:05|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1749|Bezug_WirkP_Zaehler_Diff|0.1749|
2020-07-14 05:27:07|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0038|Bezug_WirkP_Zaehler_Diff|0.0038|
2020-07-14 05:28:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1820|Bezug_WirkP_Zaehler_Diff|0.1820|
2020-07-14 05:28:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0034|Bezug_WirkP_Zaehler_Diff|0.0034|
2020-07-14 05:29:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1854|Bezug_WirkP_Zaehler_Diff|0.1854|
2020-07-14 05:29:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0034|Bezug_WirkP_Zaehler_Diff|0.0034|
2020-07-14 05:30:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1905|Bezug_WirkP_Zaehler_Diff|0.1905|
2020-07-14 05:31:13|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0051|Bezug_WirkP_Zaehler_Diff|0.0051|
2020-07-14 05:31:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.1955|Bezug_WirkP_Zaehler_Diff|0.1955|
2020-07-14 05:32:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2006|Bezug_WirkP_Zaehler_Diff|0.2006|
2020-07-14 05:33:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2056|Bezug_WirkP_Zaehler_Diff|0.2056|
2020-07-14 05:33:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0051|Bezug_WirkP_Zaehler_Diff|0.0051|
2020-07-14 05:34:18|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0050|Bezug_WirkP_Zaehler_Diff|0.0050|
2020-07-14 05:34:25|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2106|Bezug_WirkP_Zaehler_Diff|0.2106|
2020-07-14 05:35:27|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0056|Bezug_WirkP_Zaehler_Diff|0.0056|
2020-07-14 05:35:35|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2155|Bezug_WirkP_Zaehler_Diff|0.2155|
2020-07-14 05:36:37|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0062|Bezug_WirkP_Zaehler_Diff|0.0062|
2020-07-14 05:36:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2203|Bezug_WirkP_Zaehler_Diff|0.2203|
2020-07-14 05:37:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2251|Bezug_WirkP_Zaehler_Diff|0.2251|
2020-07-14 05:38:24|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0036|Bezug_WirkP_Zaehler_Diff|0.0036|
2020-07-14 05:39:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0032|Bezug_WirkP_Zaehler_Diff|0.0032|
2020-07-14 05:39:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2288|Bezug_WirkP_Zaehler_Diff|0.2288|
2020-07-14 05:39:28|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2320|Bezug_WirkP_Zaehler_Diff|0.2320|
2020-07-14 05:40:29|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2351|Bezug_WirkP_Zaehler_Diff|0.2351|
2020-07-14 05:41:30|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0031|Bezug_WirkP_Zaehler_Diff|0.0031|
2020-07-14 05:41:32|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2383|Bezug_WirkP_Zaehler_Diff|0.2383|
2020-07-14 05:42:33|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0031|Bezug_WirkP_Zaehler_Diff|0.0031|
2020-07-14 05:42:33|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2414|Bezug_WirkP_Zaehler_Diff|0.2414|
2020-07-14 05:43:36|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0034|Bezug_WirkP_Zaehler_Diff|0.0034|
2020-07-14 05:44:14|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2447|Bezug_WirkP_Zaehler_Diff|0.2447|
2020-07-14 05:45:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2484|Bezug_WirkP_Zaehler_Diff|0.2484|
2020-07-14 05:45:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2518|Bezug_WirkP_Zaehler_Diff|0.2518|
2020-07-14 05:46:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0040|Bezug_WirkP_Zaehler_Diff|0.0040|
2020-07-14 05:47:27|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2549|Bezug_WirkP_Zaehler_Diff|0.2549|
2020-07-14 05:48:29|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0057|Bezug_WirkP_Zaehler_Diff|0.0057|
2020-07-14 05:48:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2612|Bezug_WirkP_Zaehler_Diff|0.2612|
2020-07-14 05:49:43|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2637|Bezug_WirkP_Zaehler_Diff|0.2637|
2020-07-14 05:49:43|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0026|Bezug_WirkP_Zaehler_Diff|0.0026|
2020-07-14 05:50:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2669|Bezug_WirkP_Zaehler_Diff|0.2669|
2020-07-14 05:50:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0032|Bezug_WirkP_Zaehler_Diff|0.0032|
2020-07-14 05:51:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0028|Bezug_WirkP_Zaehler_Diff|0.0028|
2020-07-14 05:52:40|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2698|Bezug_WirkP_Zaehler_Diff|0.2698|
2020-07-14 05:52:45|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2721|Bezug_WirkP_Zaehler_Diff|0.2721|
2020-07-14 05:53:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2744|Bezug_WirkP_Zaehler_Diff|0.2744|
2020-07-14 05:54:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2767|Bezug_WirkP_Zaehler_Diff|0.2767|
2020-07-14 05:54:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0023|Bezug_WirkP_Zaehler_Diff|0.0023|
2020-07-14 05:55:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0022|Bezug_WirkP_Zaehler_Diff|0.0022|
2020-07-14 05:56:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2789|Bezug_WirkP_Zaehler_Diff|0.2789|
2020-07-14 05:57:02|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2811|Bezug_WirkP_Zaehler_Diff|0.2811|
2020-07-14 05:57:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2832|Bezug_WirkP_Zaehler_Diff|0.2832|
2020-07-14 05:58:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2854|Bezug_WirkP_Zaehler_Diff|0.2854|
2020-07-14 05:59:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0020|Bezug_WirkP_Zaehler_Diff|0.0020|
2020-07-14 05:59:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2875|Bezug_WirkP_Zaehler_Diff|0.2875|
2020-07-14 06:00:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2915|Bezug_WirkP_Zaehler_Diff|0.2915|
2020-07-14 06:00:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0042|Bezug_WirkP_Zaehler_Diff|0.0042|
2020-07-14 06:02:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0041|Bezug_WirkP_Zaehler_Diff|0.0041|
2020-07-14 06:02:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2957|Bezug_WirkP_Zaehler_Diff|0.2957|
2020-07-14 06:03:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.2983|Bezug_WirkP_Zaehler_Diff|0.2983|
2020-07-14 06:04:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3066|Bezug_WirkP_Zaehler_Diff|0.3066|
2020-07-14 06:04:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0086|Bezug_WirkP_Zaehler_Diff|0.0086|
2020-07-14 06:05:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0051|Bezug_WirkP_Zaehler_Diff|0.0051|
2020-07-14 06:06:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3164|Bezug_WirkP_Zaehler_Diff|0.3164|
2020-07-14 06:07:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0042|Bezug_WirkP_Zaehler_Diff|0.0042|
2020-07-14 06:07:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3207|Bezug_WirkP_Zaehler_Diff|0.3207|
2020-07-14 06:08:07|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3252|Bezug_WirkP_Zaehler_Diff|0.3252|
2020-07-14 06:09:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3327|Bezug_WirkP_Zaehler_Diff|0.3327|
2020-07-14 06:10:09|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0114|Bezug_WirkP_Zaehler_Diff|0.0114|
2020-07-14 06:10:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3442|Bezug_WirkP_Zaehler_Diff|0.3442|
2020-07-14 06:11:13|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0094|Bezug_WirkP_Zaehler_Diff|0.0094|
2020-07-14 06:12:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3533|Bezug_WirkP_Zaehler_Diff|0.3533|
2020-07-14 06:13:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0115|Bezug_WirkP_Zaehler_Diff|0.0115|
2020-07-14 06:13:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3650|Bezug_WirkP_Zaehler_Diff|0.3650|
2020-07-14 06:14:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3684|Bezug_WirkP_Zaehler_Diff|0.3684|
2020-07-14 06:15:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0034|Bezug_WirkP_Zaehler_Diff|0.0034|
2020-07-14 06:15:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3719|Bezug_WirkP_Zaehler_Diff|0.3719|
2020-07-14 06:16:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.3979|Bezug_WirkP_Zaehler_Diff|0.3979|
2020-07-14 06:17:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0262|Bezug_WirkP_Zaehler_Diff|0.0262|
2020-07-14 06:18:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4349|Bezug_WirkP_Zaehler_Diff|0.4349|
2020-07-14 06:19:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0252|Bezug_WirkP_Zaehler_Diff|0.0252|
2020-07-14 06:20:25|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0058|Bezug_WirkP_Zaehler_Diff|0.0058|
2020-07-14 06:21:27|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0053|Bezug_WirkP_Zaehler_Diff|0.0053|
2020-07-14 06:21:38|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4713|Bezug_WirkP_Zaehler_Diff|0.4713|
2020-07-14 06:22:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0051|Bezug_WirkP_Zaehler_Diff|0.0051|
2020-07-14 06:22:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4759|Bezug_WirkP_Zaehler_Diff|0.4759|
2020-07-14 06:23:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0045|Bezug_WirkP_Zaehler_Diff|0.0045|
2020-07-14 06:24:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4790|Bezug_WirkP_Zaehler_Diff|0.4790|
2020-07-14 06:24:34|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4821|Bezug_WirkP_Zaehler_Diff|0.4821|
2020-07-14 06:25:35|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0031|Bezug_WirkP_Zaehler_Diff|0.0031|
2020-07-14 06:26:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4851|Bezug_WirkP_Zaehler_Diff|0.4851|
2020-07-14 06:27:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 06:27:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4915|Bezug_WirkP_Zaehler_Diff|0.4915|
2020-07-14 06:28:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0027|Bezug_WirkP_Zaehler_Diff|0.0027|
2020-07-14 06:28:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4939|Bezug_WirkP_Zaehler_Diff|0.4939|
2020-07-14 06:30:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0028|Bezug_WirkP_Zaehler_Diff|0.0028|
2020-07-14 06:30:05|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.4960|Bezug_WirkP_Zaehler_Diff|0.4960|
2020-07-14 06:31:07|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0030|Bezug_WirkP_Zaehler_Diff|0.0030|
2020-07-14 06:31:43|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5002|Bezug_WirkP_Zaehler_Diff|0.5002|
2020-07-14 06:32:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0021|Bezug_WirkP_Zaehler_Diff|0.0021|
2020-07-14 06:32:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5023|Bezug_WirkP_Zaehler_Diff|0.5023|
2020-07-14 06:33:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5043|Bezug_WirkP_Zaehler_Diff|0.5043|
2020-07-14 06:33:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0021|Bezug_WirkP_Zaehler_Diff|0.0021|
2020-07-14 06:34:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0019|Bezug_WirkP_Zaehler_Diff|0.0019|
2020-07-14 06:35:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5080|Bezug_WirkP_Zaehler_Diff|0.5080|
2020-07-14 06:36:51|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5098|Bezug_WirkP_Zaehler_Diff|0.5098|
2020-07-14 06:36:51|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0018|Bezug_WirkP_Zaehler_Diff|0.0018|
2020-07-14 06:37:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5116|Bezug_WirkP_Zaehler_Diff|0.5116|
2020-07-14 06:37:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0019|Bezug_WirkP_Zaehler_Diff|0.0019|
2020-07-14 06:38:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5136|Bezug_WirkP_Zaehler_Diff|0.5136|
2020-07-14 06:38:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0019|Bezug_WirkP_Zaehler_Diff|0.0019|
2020-07-14 06:39:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0021|Bezug_WirkP_Zaehler_Diff|0.0021|
2020-07-14 06:40:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5177|Bezug_WirkP_Zaehler_Diff|0.5177|
2020-07-14 06:40:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0020|Bezug_WirkP_Zaehler_Diff|0.0020|
2020-07-14 06:41:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5195|Bezug_WirkP_Zaehler_Diff|0.5195|
2020-07-14 06:41:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0018|Bezug_WirkP_Zaehler_Diff|0.0018|
2020-07-14 06:42:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0016|Bezug_WirkP_Zaehler_Diff|0.0016|
2020-07-14 06:44:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5224|Bezug_WirkP_Zaehler_Diff|0.5224|
2020-07-14 06:44:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0014|Bezug_WirkP_Zaehler_Diff|0.0014|
2020-07-14 06:45:01|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5237|Bezug_WirkP_Zaehler_Diff|0.5237|
2020-07-14 06:46:02|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0014|Bezug_WirkP_Zaehler_Diff|0.0014|
2020-07-14 06:46:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5251|Bezug_WirkP_Zaehler_Diff|0.5251|
2020-07-14 06:47:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0009|Bezug_WirkP_Zaehler_Diff|0.0009|
2020-07-14 06:47:14|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5260|Bezug_WirkP_Zaehler_Diff|0.5260|
2020-07-14 06:48:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5267|Bezug_WirkP_Zaehler_Diff|0.5267|
2020-07-14 06:49:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0008|Bezug_WirkP_Zaehler_Diff|0.0008|
2020-07-14 06:49:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5275|Bezug_WirkP_Zaehler_Diff|0.5275|
2020-07-14 06:50:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5282|Bezug_WirkP_Zaehler_Diff|0.5282|
2020-07-14 06:51:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0006|Bezug_WirkP_Zaehler_Diff|0.0006|
2020-07-14 06:52:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0122|Bezug_WirkP_Zaehler_Diff|0.0122|
2020-07-14 06:53:18|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0141|Bezug_WirkP_Zaehler_Diff|0.0141|
2020-07-14 06:53:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5550|Bezug_WirkP_Zaehler_Diff|0.5550|
2020-07-14 06:54:17|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5567|Bezug_WirkP_Zaehler_Diff|0.5567|
2020-07-14 06:55:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5579|Bezug_WirkP_Zaehler_Diff|0.5579|
2020-07-14 06:55:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0012|Bezug_WirkP_Zaehler_Diff|0.0012|
2020-07-14 06:56:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5583|Bezug_WirkP_Zaehler_Diff|0.5583|
2020-07-14 06:57:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5583|Bezug_WirkP_Zaehler_Diff|0.5583|
2020-07-14 06:57:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 06:58:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0001|Bezug_WirkP_Zaehler_Diff|0.0001|
2020-07-14 06:58:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5583|Bezug_WirkP_Zaehler_Diff|0.5583|
2020-07-14 06:59:24|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.5584|Bezug_WirkP_Zaehler_Diff|0.5584|
2020-07-14 06:59:24|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0001|Bezug_WirkP_Zaehler_Diff|0.0001|
2020-07-14 07:00:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:03:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0002|Bezug_WirkP_Zaehler_Diff|0.0002|
2020-07-14 07:04:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:05:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:06:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:07:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:08:51|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:09:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:10:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:11:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:12:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:13:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:14:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:15:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:16:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:18:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:19:01|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:20:02|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:21:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:22:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:23:05|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:24:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:25:07|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:26:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:27:09|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:28:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:29:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:30:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:31:13|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:32:14|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:33:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:34:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:35:17|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:36:18|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:37:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:38:20|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:39:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:40:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:41:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:42:24|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:43:25|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:44:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:45:27|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:46:28|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:47:29|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:48:30|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:49:31|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:50:32|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:51:33|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:52:34|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:53:35|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:54:36|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:55:37|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:56:38|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:57:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0001|Bezug_WirkP_Zaehler_Diff|0.0001|
2020-07-14 07:58:40|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 07:59:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:00:42|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:01:43|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:02:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:03:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:04:45|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:05:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:06:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:07:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:08:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:09:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0013|Bezug_WirkP_Zaehler_Diff|0.0013|
2020-07-14 08:10:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0014|Bezug_WirkP_Zaehler_Diff|0.0014|
2020-07-14 08:11:51|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0006|Bezug_WirkP_Zaehler_Diff|0.0006|
2020-07-14 08:12:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:13:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:14:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:15:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:16:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:17:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:18:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:19:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:21:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:22:01|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:23:02|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:24:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:25:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:26:05|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:27:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:28:07|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:29:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:30:09|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:31:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:32:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:33:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:34:13|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:35:14|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:36:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:37:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:38:17|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:39:18|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:40:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:41:20|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:42:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:43:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:44:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:45:24|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:46:25|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:47:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:48:27|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:49:28|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:50:29|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:51:30|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:52:31|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:53:32|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:54:33|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:55:34|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:56:35|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:57:36|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:58:37|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 08:59:38|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:00:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:01:40|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:02:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:03:42|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:04:43|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:05:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:06:45|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:07:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:08:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:09:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:10:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:11:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:12:51|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:13:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:14:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:15:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:16:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:17:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:18:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:19:57|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:20:58|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:21:59|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:23:00|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:24:01|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:25:02|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:26:03|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:27:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:28:05|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:29:06|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:30:07|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:31:08|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:32:09|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:33:10|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:34:11|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:35:12|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:36:13|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:37:14|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:38:15|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:39:16|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:40:17|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:41:18|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:42:19|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:43:20|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:44:21|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:45:22|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:46:23|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:47:24|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:48:25|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:49:26|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:50:27|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:51:28|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:52:29|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:53:30|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:54:31|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:55:32|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:56:33|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:57:34|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:58:35|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 09:59:36|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:00:37|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:01:38|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:02:39|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:03:40|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:04:41|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:05:42|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:06:43|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:07:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:08:44|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:09:45|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:10:46|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:11:47|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:12:48|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:13:49|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:14:50|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:15:51|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:16:52|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:17:53|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
2020-07-14 10:18:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0|Bezug_WirkP_Zaehler_Diff|0|
Zitat von: ch.eick am 15 Juli 2020, 18:34:07
Boa, Du erschlaegst uns, mach bitte code tags um das Listing ;-)
Wenn das Listing zu lang ist, wird es unten abgeschnitte, also auch einkuerzen!
2020-07-14 04:38:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:39:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:40:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
snip...
2020-07-14 04:49:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:49:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
Zitat von: dk3572 am 15 Juli 2020, 18:38:42
Gibt es einen Trick?
Zitat von: ch.eick am 15 Juli 2020, 18:48:47
- Also, ich wuerde im SMAEM Device mal event-on-update umsetzen und nur die gewuenschten Readings angeben.
- Hier kommt wohl wirklich ein Event in sehr kurzer Folge. Der Timestamp geht ja nur bis in den Sekundenbereich und es kann ja trotzdem noch Millisekunden spaeter ein weiterer Eintrag kommen.
Das muesstest Du im SMAEM Thread klaeren lassen. Eventuell hilft mein Kommentar von weiter vorne.
Mit event-on-change-reading sollte dieser Eintrag aber trotzdem nicht kommen, das waere aber nicht die Ursache.Code Auswählen
2020-07-14 04:38:54|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:39:55|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
2020-07-14 04:40:56|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0048|Bezug_WirkP_Zaehler_Diff|0.0048|
snip...
2020-07-14 04:49:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
2020-07-14 04:49:04|SMA_Zaehler|SMAEM|Bezug_WirkP_Zaehler_Diff: 0.0047|Bezug_WirkP_Zaehler_Diff|0.0047|
Bitte pruef auch nochmal, ob Du wirklich den Intervall auf 60 Sek stehen hast. Das passt nicht wirklich immer.
Im fhem event monitor kannst Du das dann auch mal beobachten.
Dann solltest Du auch mal ueberlegen, ob Du diese Eintraege wirklich loggen moechtest??? Laut Doku wird das wohl fuer ein wiederaufsetzen nach Stromausfall benoetigt, Aber dann eher im Device und nicht in der Datenbank.
FD 31
FUUID 5eb01954-f33f-cd72-1fef-9e8d3e186772924e
FVERSION 77_SMAEM.pm:v4.2.0-s21706/2020-04-16
GRIDIN_SUM_3006949425 1827.5633
GRIDOUT_SUM_3006949425 336.8228
INTERVAL 60
LASTUPDATE_3006949425 15.07.2020 / 19:08:28
MODEL HM 2.0 >= 2.03.4.R
NAME SMA_Zaehler
NR 385
STATE <font color="Yellow"><b>Einspeisung: 317.9 W </b></font>
TYPE SMAEM
HELPER:
ALLSERIALS 3006949425
FAULTEDCYCLES 0
LASTUPDATE_3006949425 1594832908.89565
PACKAGE main
STARTTIME 1594793027.0873
VERSION 4.2.0
Helper:
DBLOG:
Bezug_WirkP_Kosten_Diff:
logdb:
TIME 1594832908.91522
VALUE 0.0000
Bezug_WirkP_Zaehler_Diff:
logdb:
TIME 1594832908.91522
VALUE 0
Einspeisung_WirkP_Verguet_Diff:
logdb:
TIME 1594832908.91522
VALUE 0.0631
Einspeisung_WirkP_Zaehler_Diff:
logdb:
TIME 1594832908.91522
VALUE 0.0055
READINGS:
2020-07-15 19:08:28 Bezug_Blindleistung 0.0
2020-07-15 19:08:28 Bezug_Blindleistung_Zaehler 13.6
2020-07-15 19:08:28 Bezug_Scheinleistung 0.0
2020-07-15 19:08:28 Bezug_Scheinleistung_Zaehler 578.6
2020-07-15 19:08:28 Bezug_WirkP_Kosten_Diff 0.0000
2020-07-15 19:08:28 Bezug_WirkP_Zaehler_Diff 0
2020-07-15 19:08:28 Bezug_Wirkleistung 0.0
2020-07-15 19:08:28 Bezug_Wirkleistung_Zaehler 336.8228
2020-07-15 19:08:28 CosPhi 0.622
2020-07-15 19:08:28 Einspeisung_Blindleistung 400.6
2020-07-15 19:08:28 Einspeisung_Blindleistung_Zaehler 586.4
2020-07-15 19:08:28 Einspeisung_Scheinleistung 511.4
2020-07-15 19:08:28 Einspeisung_Scheinleistung_Zaehler 1871.6
2020-07-15 19:08:28 Einspeisung_WirkP_Verguet_Diff 0.0631
2020-07-15 19:08:28 Einspeisung_WirkP_Zaehler_Diff 0.0055
2020-07-15 19:08:28 Einspeisung_Wirkleistung 317.9
2020-07-15 19:08:28 Einspeisung_Wirkleistung_Zaehler 1827.5633
2020-07-15 19:08:28 GridFreq 49.968
2020-07-15 19:08:28 L1_Bezug_Blindleistung 0.0
2020-07-15 19:08:28 L1_Bezug_Blindleistung_Zaehler 6.3
2020-07-15 19:08:28 L1_Bezug_Scheinleistung 0.0
2020-07-15 19:08:28 L1_Bezug_Scheinleistung_Zaehler 143.6
2020-07-15 19:08:28 L1_Bezug_Wirkleistung 0.0
2020-07-15 19:08:28 L1_Bezug_Wirkleistung_Zaehler 92.3
2020-07-15 19:08:28 L1_CosPhi 0.972
2020-07-15 19:08:28 L1_Einspeisung_Blindleistung 36.3
2020-07-15 19:08:28 L1_Einspeisung_Blindleistung_Zaehler 93.1
2020-07-15 19:08:28 L1_Einspeisung_Scheinleistung 153.4
2020-07-15 19:08:28 L1_Einspeisung_Scheinleistung_Zaehler 674.1
2020-07-15 19:08:28 L1_Einspeisung_Wirkleistung 149.0
2020-07-15 19:08:28 L1_Einspeisung_Wirkleistung_Zaehler 670.4
2020-07-15 19:08:28 L1_Saldo_Wirkleistung 149.0
2020-07-15 19:08:28 L1_Saldo_Wirkleistung_Zaehler 578.1
2020-07-15 19:08:28 L1_Spannung 233.7
2020-07-15 19:08:28 L1_Strom 0.68
2020-07-15 19:08:28 L2_Bezug_Blindleistung 0.0
2020-07-15 19:08:28 L2_Bezug_Blindleistung_Zaehler 18.8
2020-07-15 19:08:28 L2_Bezug_Scheinleistung 0.0
2020-07-15 19:08:28 L2_Bezug_Scheinleistung_Zaehler 173.3
2020-07-15 19:08:28 L2_Bezug_Wirkleistung 0.0
2020-07-15 19:08:28 L2_Bezug_Wirkleistung_Zaehler 80.2
2020-07-15 19:08:28 L2_CosPhi 0.736
2020-07-15 19:08:28 L2_Einspeisung_Blindleistung 144.9
2020-07-15 19:08:28 L2_Einspeisung_Blindleistung_Zaehler 195.0
2020-07-15 19:08:28 L2_Einspeisung_Scheinleistung 214.0
2020-07-15 19:08:28 L2_Einspeisung_Scheinleistung_Zaehler 680.2
2020-07-15 19:08:28 L2_Einspeisung_Wirkleistung 157.5
2020-07-15 19:08:28 L2_Einspeisung_Wirkleistung_Zaehler 656.1
2020-07-15 19:08:28 L2_Saldo_Wirkleistung 157.5
2020-07-15 19:08:28 L2_Saldo_Wirkleistung_Zaehler 575.9
2020-07-15 19:08:28 L2_Spannung 233.9
2020-07-15 19:08:28 L2_Strom 0.94
2020-07-15 19:08:28 L3_Bezug_Blindleistung 0.0
2020-07-15 19:08:28 L3_Bezug_Blindleistung_Zaehler 10.8
2020-07-15 19:08:28 L3_Bezug_Scheinleistung 0.0
2020-07-15 19:08:28 L3_Bezug_Scheinleistung_Zaehler 331.8
2020-07-15 19:08:28 L3_Bezug_Wirkleistung 0.0
2020-07-15 19:08:28 L3_Bezug_Wirkleistung_Zaehler 213.0
2020-07-15 19:08:28 L3_CosPhi 0.052
2020-07-15 19:08:28 L3_Einspeisung_Blindleistung 219.4
2020-07-15 19:08:28 L3_Einspeisung_Blindleistung_Zaehler 320.5
2020-07-15 19:08:28 L3_Einspeisung_Scheinleistung 219.7
2020-07-15 19:08:28 L3_Einspeisung_Scheinleistung_Zaehler 582.4
2020-07-15 19:08:28 L3_Einspeisung_Wirkleistung 11.4
2020-07-15 19:08:28 L3_Einspeisung_Wirkleistung_Zaehler 549.8
2020-07-15 19:08:28 L3_Saldo_Wirkleistung 11.4
2020-07-15 19:08:28 L3_Saldo_Wirkleistung_Zaehler 336.7
2020-07-15 19:08:28 L3_Spannung 232.8
2020-07-15 19:08:28 L3_Strom 1.27
2020-07-15 19:08:28 OBISnewItems none
2020-07-15 19:08:28 SUSyID 372
2020-07-15 19:08:28 Saldo_Wirkleistung 317.9
2020-07-15 19:08:28 Saldo_Wirkleistung_Zaehler 1490.7
2020-07-15 19:08:28 SerialNumber 3006949425
2020-07-15 19:08:28 SoftwareVersion 2.03.05.R
2020-07-15 19:08:28 state 317.9
Attributes:
DbLogExclude .*
DbLogInclude Bezug_WirkP_Zaehler_Diff,Bezug_WirkP_Kosten_Diff,Einspeisung_WirkP_Zaehler_Diff,Einspeisung_WirkP_Verguet_Diff
alias SMA Zähler
disableSernoInReading 1
event-min-interval state:120
event-on-update-reading state,Saldo_Wirkleistung,Bezug_WirkP_Zaehler_Diff,Einspeisung_WirkP_Zaehler_Diff,Einspeisung_WirkP_Verguet_Diff,Bezug_WirkP_Kosten_Diff,Bezug_Wirkleistung,Einspeisung_Wirkleistung,Bezug_Wirkleistung_Zaehler,Einspeisung_Wirkleistung_Zaehler
feedinPrice 11.47
icon measure_power
interval 60
powerCost 26.67
room Photovoltaik
stateFormat { my $Wert = ReadingsNum($name,"state",0);
my $string = ' ';
if ($Wert > 0) {
$string = sprintf("Einspeisung: %.1f W ",$Wert);
}
elsif ($Wert <= 0) {
$string = sprintf("Bezug: %.1f W ",$Wert);
}
if ($Wert > 1 && $Wert < 2000) {
return '<font color="Yellow"><b>' . $string . '</b></font>'}
elsif ($Wert >= 2000 && $Wert < 4000 ) {
return '<font color="Cyan"> <b>' . $string . '</b></font>'}
elsif ($Wert >= 4000) {
return '<font color="Lime"><b>' . $string . '</b></font>'}
elsif ($Wert <= 0) {
return '<font color="White"><b>' . $string . '</b></font>'}
else {return $string }
}
timeout 90
verbose 3
Zitat von: dk3572 am 15 Juli 2020, 19:11:48
wie bereits erwähnt hatte ich mich bei der Einrichtung an Heiko´s wiki gehalten.
Dort ist der Intervall auf 60.
event-on-update und nur die gewuenschten Readings sind eingestellt.Code Auswählen
Attributes:
DbLogInclude Bezug_WirkP_Zaehler_Diff,Bezug_WirkP_Kosten_Diff,Einspeisung_WirkP_Zaehler_Diff,Einspeisung_WirkP_Verguet_Diff
- aggregieren auf Minuten Basis
- Es werden neue Eintraege geschrieben z.B. 2020-06-30_23-59-00__SMA_Zaehler__Bezug_WirkP_Zaehler__MAX__2020-06-.......
- Loeschen aller alten Eintraege in dem Zeitraum von timestamp_begin bis timestamp_end
- Umbenennen der neuen Eintraege auf den reading Namen der urspruenglichen readings
Zitat von: ch.eick am 15 Juli 2020, 19:48:21
Zum entfernen der ueberschuessigen Log Eintraege hatte ich ja bereits meine Idee geposted. Ansonsten faellt mir da jetzt auch nichts mehr ein.
Zitat von: dk3572 am 15 Juli 2020, 19:58:23
Die Idee hast du vermutlich geposted, aber mir als Laie nicht verraten wie ich es anstelle ;)
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat von: DS_Starter am 23 Juli 2020, 00:09:40Und ich danke Heiko mal wieder fuer die Anerkennung :-)
ich habe in einer neuen DbRep-Version den Lösungsvorschlag von Christian aus dem Beitrag #1246 umgesetzt
und eine aggregation "minute" eingebaut.
Damit sollte das Bereinigungsproblem von dk3572 recht elegant lösbar sein.
Internals:
COMMAND attr DBReporting_LaCrosse device FBDECT_fbahahttp_08761_0044555;
attr DBReporting_LaCrosse reading power;
attr DBReporting_LaCrosse aggregation day;
attr DBReporting_LaCrosse timestamp_begin previous_day_begin;
attr DBReporting_LaCrosse timestamp_end previous_day_end;
set DBReporting_LaCrosse averageValue writeToDB
DEF *00:06:00 attr DBReporting_LaCrosse device FBDECT_fbahahttp_08761_0044555;
attr DBReporting_LaCrosse reading power;
attr DBReporting_LaCrosse aggregation day;
attr DBReporting_LaCrosse timestamp_begin previous_day_begin;
attr DBReporting_LaCrosse timestamp_end previous_day_end;
set DBReporting_LaCrosse averageValue writeToDB
FUUID xxxxxx
NAME at.Energy.Tag.Kuehlschrank
NR 528
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 00:06:00
TIMESPEC 00:06:00
TRIGGERTIME 1597788360
TRIGGERTIME_FMT 2020-08-19 00:06:00
TYPE at
.attraggr:
.attrminint:
READINGS:
2020-08-18 00:06:00 state Next: 00:06:00
Attributes:
DbLogExclude .*
room Energy
"2020-08-17 00:00:01" "FBDECT_fbahahttp_08761_0044555" "FBDECT" "calculated" "avgam_day_power" "40.1753" \N
"2020-08-17 23:59:59" "FBDECT_fbahahttp_08761_0044555" "FBDECT" "calculated" "avgam_day_power" "40.1753" \N
SELECT VALUE FROM history WHERE DEVICE='PV_Anlage_1' and READING='Solar_Calculation_fc1' and TIMESTAMP = '2020-09-03 12:00:00';
4421
Zitat von: DS_Starter am 03 September 2020, 11:43:52Hmm, dann kann ich auch mit einem sqlCmd arbeiten und muss halt das reading abwarten.
momentan nicht, zumindest nicht ohne selbst einiges zu programmieren.
Ich könnte aber ein sqlBlockingCmd implementieren mit dem man das machen könnte.
Wie der Name schon sagt würde FHEM blockieren falls die DB nicht antwortet. Deswegen passiert in DbRep alles asynchron bis auf wenige, benannte Ausnahmen.
DbReadingsVal("<name>","<device:reading>","<timestamp>","<default>")
Zitat von: DS_Starter am 03 September 2020, 12:28:12Das pass jedoch zu dem was ich gerade benötige.
Ja, DbReadingsVal hatte ich bereits implementiert. Ist auch blockierend !
Das gibt es als FHEM Kommando und auch als aufrufbare Funktion aus einem Script heraus. Das letztere wäre dann wohl die Möglichkeit deiner Wahl.
Ist aber kein freies SQL Kommando welches man gestalten kann wie man will.
dbReadingsVal LogDBRep_select_PV_Forecast PV_Anlage_1:Solar_Calculation_fc1 2020-09-03_12:00:00 0
4421
Zitat
Zu dem "blockierend", es wäre natürlich toll, wenn es da eine Timeout gerade in den beiden Funktionen geben würde.
Zitat von: DS_Starter am 03 September 2020, 23:53:18
Der Timeout kann wie üblich mit dem Attribut "timeout" eingestellt werden.
Übrigens hatte ich bereits mit dem "get <> dbValue" eine Variante eingebaut mit der man SQL Befehle synchron (also blockierend) ausgeführt werden können.
Ich muss also meine Aussage weiter oben revidieren... alles schon vorhanden. :D
# MySQL läuft
{my $timestamp = POSIX::strftime("%Y-%m-%d 12:00:00",localtime(time));;DbReadingsVal("LogDBRep_select_PV_Forecast","PV_Anlage_1:Solar_Calculation_fc0",$timestamp,0);;}
3753
# MySQL gestoppt
{my $timestamp = POSIX::strftime("%Y-%m-%d 12:00:00",localtime(time));;DbReadingsVal("LogDBRep_select_PV_Forecast","PV_Anlage_1:Solar_Calculation_fc0",$timestamp,0);;}
DBI connect('database=fhem;host=192.168.178.40;port=3306','fhemuser',...) failed: Can't connect to MySQL server on '192.168.178.40' (115) at ./FHEM/93_DbRep.pm line 11534.
Zitat von: DS_Starter am 04 September 2020, 11:04:59Du bist der Beste ;-)
jo, passt so. Was wolltest du jetzt sagen ? :)
Zitat von: DS_Starter am 04 September 2020, 11:10:34Ich laufe so optimiert, da habe ich keine Langläufer :-) Ich behalte es im Kopf und teste es, wenn ich mal was habe, was über 1 Sekunde läuft.
Aber du müsstest mal zum Test timeout auf z.B. 5 Sekunden stellen und eine länger laufende SQL mit dbReadingsVal absetzen. Dann muß/sollte der Timeout zuschlagen.
ZitatIch laufe so optimiert, da habe ich keine Langläufer :-)Das ist natürlich dramatisch 8)
2020.09.04 14:29:50.666 1: Rep.CPU - WARNING - the command "dbValue" is deprecated and will be removed soon. Please use "sqlCmdBlocking" instead.
set <name> reduceLog <no>[:<nn>] [average[=day]] [exclude=device1:reading1,device2:reading2,...]
Reduziert historische Datensätze, die älter sind als <no> Tage und (optional) neuer sind als <nn> Tage auf einen Eintrag (den ersten) pro Stunde je Device & Reading.
MySQL [fhem]> SELECT TIMESTAMP,DEVICE,READING,VALUE FROM history WHERE DEVICE='PV_Anlage_1_API' And READING='Statistic_GridFeedInDay' AND TIMESTAMP LIKE '2020-10-21%' order BY TIMESTAMP DESC;
+---------------------+-----------------+-------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-----------------+-------------------------+-------+
| 2020-10-21 23:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
| 2020-10-21 22:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
| 2020-10-21 21:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
snip ...
| 2020-10-21 02:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 0.00 |
| 2020-10-21 01:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 0.00 |
| 2020-10-21 00:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 0.00 |
+---------------------+-----------------+-------------------------+-------+
24 rows in set (2.623 sec)
## Und den möchte ich behalten
MySQL [fhem]> SELECT TIMESTAMP,DEVICE,READING,VALUE FROM history WHERE DEVICE='PV_Anlage_1_API' And READING='Statistic_GridFeedInDay' AND TIMESTAMP LIKE '2020-10-21%' order BY TIMESTAMP DESC limit 1;
+---------------------+-----------------+-------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-----------------+-------------------------+-------+
| 2020-10-21 23:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
+---------------------+-----------------+-------------------------+-------+
1 row in set (0.003 sec)
SET @device = 'PV_Anlage_1_API'; SET @reading = 'Statistic_GridFeedInDay'; SET @startdate = '2020-10-21';
SELECT t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
FROM history t1
INNER JOIN
(SELECT TIMESTAMP,DEVICE,READING,VALUE
FROM history
WHERE DEVICE = @device AND
READING = @reading AND
TIMESTAMP > @startdate AND
TIMESTAMP < DATE_ADD(@startdate,INTERVAL 1 DAY)
ORDER BY TIMESTAMP DESC LIMIT 1
) x
ON x.TIMESTAMP != t1.TIMESTAMP AND
x.DEVICE = t1.DEVICE AND
x.READING = t1.READING
WHERE t1.DEVICE = @device AND
t1.READING = @reading AND
t1.TIMESTAMP > @startdate AND
t1.TIMESTAMP < DATE_ADD(@startdate,INTERVAL 1 DAY)
ORDER BY TIMESTAMP;
## Da kommt jetzt alles raus, das gelöscht werden soll. Somit braucht man das Select nun nur noch in ein DELETE umzuschreiben
+---------------------+-----------------+-------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-----------------+-------------------------+-------+
| 2020-10-21 00:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 0.00 |
| 2020-10-21 01:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 0.00 |
snip...
| 2020-10-21 21:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
| 2020-10-21 22:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
+---------------------+-----------------+-------------------------+-------+
## das ist genau bis '2020-10-21 22:57:00' und somit fehlt nur der Eintrag der bleibt
SELECT TIMESTAMP,DEVICE,READING,VALUE FROM history WHERE DEVICE=@device And READING=@reading AND TIMESTAMP LIKE @timelike ORDER BY TIMESTAMP DESC LIMIT 1;
+---------------------+-----------------+-------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-----------------+-------------------------+-------+
| 2020-10-21 23:57:00 | PV_Anlage_1_API | Statistic_GridFeedInDay | 39.38 |
+---------------------+-----------------+-------------------------+-------+
| 2020-09-13 19:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 161360.0000 |
| 2020-09-20 18:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 147630.0000 |
| 2020-09-27 17:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 74480.0000 |
| 2020-09-30 19:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 28230.0000 | <<<<< erster Lauf mit timestamp_end = previous_month_end
| 2020-10-04 19:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 47480.0000 |
| 2020-10-11 16:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 8760.0000 |
| 2020-10-18 14:05:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 450.0000 |
| 2020-10-22 17:57:00 | PV_Anlage_1_API | diff_week_Statistic_GridFeedInYear | 612.8400 | <<<<< zweiter Lauf mit ohne timestamp_end
+---------------------+-----------------+------------------------------------+-------------+
defmod LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week DbRep LogDB
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week DbLogExclude .*
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week aggregation week
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week allowDeletion 0
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week device PV_Anlage_1_API
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week diffAccept 15000
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week reading Statistic_GridFeedInYear
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week room Strom->Energie,System
attr LogDBRep_Statistic_EnergyFeedInGrid_Month_diff_Week timestamp_begin current_year_begin
Zitat
Hierbei geht es mir um einen Zähler, der den ganzen Tag ansteigt. Um das aufzuräumen können später alle Einträge bis auf den letzten gelöscht werden.
Die nächsten Schritte wären dann beim Monatszähler die jeweiligen Wochen zu behalten und
beim Jahreszähler die jeweiligen Monate.
set <> maxValue deleteOther
Zitat von: DS_Starter am 22 Oktober 2020, 19:26:49Das erzeugt aber einen weiteren Eintrag mit einem generierten Namen :-)
Also wenn es sich um einen stetig steigenden Zähler handelt, kannst du einfach mit maxValue und dem Zusatz "deleteOther" arbeiten.
Konkret könnte es so aussehen, dass du die Zeitattribute auf current_Day_begin bzw. current_Day_end stellst und aggregation = day + device, reading. Danach:Code Auswählen
set <> maxValue deleteOther
Übrig bleibt der höchte (=letzte) Wert des Tages.
Das gleiche kannst du machen mit current_week_begin und aggregation=week oder current_month_begin und aggregation = month usw.
ZitatDa solltest Du Dich bitte gegebenenfalls vorher melden, damit Du auch aktuelles hast. Ich denke die Zeit für das Wiki finde ich auch noch.
Dein SQL übernehme ich gerne wieder mit ins Wiki. Irgendwann werde ich mich mal wieder intensiver mit DbRep befassen und SQL-specials einbauen. ;)
ZitatImmer wieder gerne...
Über deine zweite Frage denke ich mal nach ....
ZitatDenke nicht, das wäre bei writeToDB der Fall ;)
Das erzeugt aber einen weiteren Eintrag mit einem generierten Namen :-)
ZitatMache ich gerne, dauert auch noch etwas weil ich momentan ein neues Modul für die Integration der Synology File Station erstelle.
Da solltest Du Dich bitte gegebenenfalls vorher melden, damit Du auch aktuelles hast. Ich denke die Zeit für das Wiki finde ich auch noch.
Zitat von: DS_Starter am 22 Oktober 2020, 19:49:08Tja, da soll es ja hin :-) oder halt alle anderen löschen, das SQL ist fast fertig, muss aber noch getestet werden.
Denke nicht, das wäre bei writeToDB der Fall ;)
ZitatTja, da soll es ja hin :-) oder halt alle anderen löschenNaja ich hatte es so verstanden dass du eigentlich nur den höchsten = letzten Wert einfach nur behalten wolltest und alle anderen im Bewertungszeitraum löschen. Egal, viele Wege führen nach Rom :-)
Zitat von: DS_Starter am 22 Oktober 2020, 20:25:26Das ist schon richtig, wenn man jedoch wieder einen neuen reading Namen erzeugt, muss man den auch wieder in den Plot bringen.
Naja ich hatte es so verstanden dass du eigentlich nur den höchsten = letzten Wert einfach nur behalten wolltest und alle anderen im Bewertungszeitraum löschen. Egal, viele Wege führen nach Rom :-)
ZitatDas ist schon richtig, wenn man jedoch wieder einen neuen reading Namen erzeugt, muss man den auch wieder in den Plot bringen.Aber in dem oben beschriebenen Verfahren wird doch kein neuer Readingnamen erzeugt. Es bleibt nur der letzte = höchste Wert in der Reihe erhalten und alle anderen gelöscht. Der original Readingname bleibt dabei erhalten.
Zitat von: DS_Starter am 22 Oktober 2020, 21:20:28Hier fehlte noch die Bestätigung und es ist genau wie Heiko sagte.
Wenn ich writeToDB verwende wird also ein neues reading erzeugt.
Wenn ich nur den maxValue verwende und gleichzeitig deleteOther, wird dann alles bis auf den Max Wert gelöscht. Das hört sich dann nach meinem Wunsch an.
select TIMESTAMP,DEVICE,READING,VALUE from history where DEVICE = 'Thermostat_WO' AND TIMESTAMP>'2020-08-10' AND TIMESTAMP<'2020-09-13' order by TIMESTAMP limit 100;
+---------------------+---------------+-----------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+---------------+-----------+-------+
| 2020-08-12 19:56:23 | Thermostat_WO | room-temp | 28.0 |
| 2020-08-21 22:18:01 | Thermostat_WO | room-temp | 26.5 |
| 2020-08-29 21:26:10 | Thermostat_WO | room-temp | 24.5 |
| 2020-09-05 18:19:50 | Thermostat_WO | room-temp | 24.0 |
| 2020-09-12 21:16:02 | Thermostat_WO | room-temp | 25.0 |
+---------------------+---------------+-----------+-------+
ZitatGenau :D
Wenn ich writeToDB verwende wird also ein neues reading erzeugt.
Wenn ich nur den maxValue verwende und gleichzeitig deleteOther, wird dann alles bis auf den Max Wert gelöscht.
Zitat von: awex102 am 26 Oktober 2020, 17:36:27
Jetzt bin ich auf das Thema Grünlandtemperatursumme gestoßen und möchte das Thema gerne als Anregung in die Roadmap geben.
Es werden die positiven Tagesmitteltemperaturen addiert, bis sie 200 erreichen. Negative Tagesmitteltemperaturen werden verworfen. Zusätzlich wird ein ein Faktor pro Monat erstellt:
Aus Wikipedia: Es werden ab Jahresbeginn alle positiven Tagesmittel erfasst. Im Januar wird mit dem Faktor 0,5 multipliziert, im Februar mit dem Faktor 0,75, und ab März geht dann der ,,volle" Tageswert (mal Faktor 1) in die Rechnung ein.
Die GTS gibt in der Agrarwirtschaft den Zeitpunkt an, ab dem Pflanzen zu wachsen beginnen.
Was ich mir sehr gut in Kombi mit deiner Tagesmitteltemperatur - Berechnung vorstellen könnte, ist die Berechnung des GTS pro Jahr.
Z.B. ein get, das den tagesaktuellen Wert der Grünlandtemperatursumme zurückgibt. Bei GTS >= 200 gibt das reading keine neuen Werte aus, bleibt also stehen und man kann den Stichtagtag ablesen bzw. darauf in fhem reagieren und notify oder doif nutzen um z.B. eine Notification ans Handy zu senden. Und im nächsten Jahr von vorne.
Die Berechnung der Tagesmitteltemperaturen muss nach den Vorgaben des DWD erfolgen.
## vor der Korrektur
+---------------------+-----------------+-------------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-----------------+-------------------------------+-------+
| 2020-09-01 23:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 16910 |
| 2020-09-02 00:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 17340 | <<< das ist viel zu hoch
| 2020-09-02 01:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 220 |
+---------------------+-----------------+-------------------------------+-------+
## die Vorbereitung
+---------------------+---------------------+-----------------+-------------------------------+-------+
| TIMESTAMP_new | TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+---------------------+-----------------+-------------------------------+-------+
| 2020-09-01 23:59:00 | 2020-09-02 00:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 17340 |
| 2020-09-02 23:59:00 | 2020-09-03 00:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 16490 |
+---------------------+---------------------+-----------------+-------------------------------+-------+
## nach der Korrektur
+---------------------+-----------------+-------------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+-----------------+-------------------------------+-------+
| 2020-09-01 23:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 16910 |
| 2020-09-01 23:59:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 17340 |
| 2020-09-02 01:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 220 |
+---------------------+-----------------+-------------------------------+-------+
## Für welches DEVICE und READING soll es gelten
SET @device='PV_Anlage_1_API';SET @reading='Statistic_EnergyHomePvSum_Day';
## welcher Zeitraum soll überprüft werden
SET @interval=NOW() - INTERVAL 12 Month;
## Diese Variablen müssen vor jedem Lauf zurück gesetzt werden
SET @diff=0;SET @temp=0;
SELECT TIMESTAMPADD(MINUTE,23*60+59,DATE(DATE_SUB(t1.TIMESTAMP, INTERVAL 1 DAY))) AS TIMESTAMP_new,
t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
FROM
(
SELECT TIMESTAMP,DEVICE,READING,VALUE,
if(@diff = 0,NULL, @temp:=cast((VALUE-@diff) AS DECIMAL(6,2))),
if(@temp <= 0,NULL, @temp) AS DIFF,
@diff:=VALUE AS curr_V
FROM history
WHERE TIMESTAMP >= @interval
AND DEVICE = @device
AND READING = @reading
AND (TIMESTAMP LIKE '% 23:%' OR
TIMESTAMP LIKE '% 00:%')
ORDER BY TIMESTAMP
) t1
WHERE TIMESTAMP NOT LIKE '% 23:%'
AND DIFF IS NOT NULL ;
## Für welches DEVICE und READING soll es gelten
SET @device='PV_Anlage_1_API';SET @reading='Statistic_EnergyHomePvSum_Day';
## welcher Zeitraum soll bearbeitet werden
SET @interval=NOW() - INTERVAL 12 Month;
## Diese Variablen müssen vor jedem Lauf zurück gesetzt werden
SET @diff=0;SET @temp=0;
UPDATE history AS dest,
(
SELECT TIMESTAMPADD(MINUTE,23*60+59,DATE(DATE_SUB(t1.TIMESTAMP, INTERVAL 1 DAY))) AS TIMESTAMP_new,
t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
FROM
(
SELECT TIMESTAMP,DEVICE,READING,VALUE,
if(@diff = 0,NULL, @temp:=cast((VALUE-@diff) AS DECIMAL(6,2))),
if(@temp <= 0,NULL, @temp) AS DIFF,
@diff:=VALUE AS curr_V
FROM history
WHERE TIMESTAMP >= @interval
AND DEVICE = @device
AND READING = @reading
AND (TIMESTAMP LIKE '% 23:%' OR
TIMESTAMP LIKE '% 00:%')
ORDER BY TIMESTAMP
) t1
WHERE TIMESTAMP NOT LIKE '% 23:%'
AND DIFF IS NOT NULL
) AS src
SET dest.TIMESTAMP = src.TIMESTAMP_new,
dest.DEVICE = src.DEVICE,
dest.READING = src.READING,
dest.VALUE = src.VALUE
WHERE dest.TIMESTAMP = src.TIMESTAMP AND
dest.DEVICE = src.DEVICE AND
dest.READING = src.READING AND
dest.VALUE = src.VALUE ;
defmod Rep.Temp.greenland DbRep LogDB
attr Rep.Temp.greenland averageCalcForm avgDailyMeanGWSwithGTS
attr Rep.Temp.greenland devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.Temp.greenland device MyWetter
attr Rep.Temp.greenland fastStart 1
attr Rep.Temp.greenland reading temperature
attr Rep.Temp.greenland room DbLog
attr Rep.Temp.greenland showproctime 1
attr Rep.Temp.greenland timestamp_begin current_year_begin
attr Rep.Temp.greenland timestamp_end 2020-03-01 00:00:00
attr Rep.Temp.greenland verbose 3
READINGS:
2020-11-08 20:07:24 2020-01-01__MyWetter__temperature__AVGDMGWS__2020-01-01 1.5
2020-11-08 20:07:24 2020-01-01__MyWetter__temperature__GrasslandTemperatureSum 0.8
2020-11-08 20:07:24 2020-01-02__MyWetter__temperature__AVGDMGWS__2020-01-02 1.0
2020-11-08 20:07:24 2020-01-02__MyWetter__temperature__GrasslandTemperatureSum 1.3
2020-11-08 20:07:24 2020-01-03__MyWetter__temperature__AVGDMGWS__2020-01-03 5.2
2020-11-08 20:07:24 2020-01-03__MyWetter__temperature__GrasslandTemperatureSum 3.9
2020-11-08 20:07:24 2020-01-04__MyWetter__temperature__AVGDMGWS__2020-01-04 4.2
2020-11-08 20:07:24 2020-01-04__MyWetter__temperature__GrasslandTemperatureSum 6.0
2020-11-08 20:07:24 2020-01-05__MyWetter__temperature__AVGDMGWS__2020-01-05 2.8
2020-11-08 20:07:24 2020-01-05__MyWetter__temperature__GrasslandTemperatureSum 7.4
2020-11-08 20:07:24 2020-01-06__MyWetter__temperature__AVGDMGWS__2020-01-06 3.5
2020-11-08 20:07:24 2020-01-06__MyWetter__temperature__GrasslandTemperatureSum 9.1
2020-11-08 20:07:24 2020-01-07__MyWetter__temperature__AVGDMGWS__2020-01-07 2.5
2020-11-08 20:07:24 2020-01-07__MyWetter__temperature__GrasslandTemperatureSum 10.4
2020-11-08 20:07:24 2020-01-08__MyWetter__temperature__AVGDMGWS__2020-01-08 5.5
2020-11-08 20:07:24 2020-01-08__MyWetter__temperature__GrasslandTemperatureSum 13.2
2020-11-08 20:07:24 2020-01-09__MyWetter__temperature__AVGDMGWS__2020-01-09 8.3
2020-11-08 20:07:24 2020-01-09__MyWetter__temperature__GrasslandTemperatureSum 17.4
2020-11-08 20:07:24 2020-01-10__MyWetter__temperature__AVGDMGWS__2020-01-10 8.8
2020-11-08 20:07:24 2020-01-10__MyWetter__temperature__GrasslandTemperatureSum 21.8
2020-11-08 20:07:24 2020-01-11__MyWetter__temperature__AVGDMGWS__2020-01-11 4.1
2020-11-08 20:07:24 2020-01-11__MyWetter__temperature__GrasslandTemperatureSum 23.8
2020-11-08 20:07:24 2020-01-12__MyWetter__temperature__AVGDMGWS__2020-01-12 3.0
2020-11-08 20:07:24 2020-01-12__MyWetter__temperature__GrasslandTemperatureSum 25.3
2020-11-08 20:07:24 2020-01-13__MyWetter__temperature__AVGDMGWS__2020-01-13 4.7
2020-11-08 20:07:24 2020-01-13__MyWetter__temperature__GrasslandTemperatureSum 27.7
2020-11-08 20:07:24 2020-01-14__MyWetter__temperature__AVGDMGWS__2020-01-14 7.5
2020-11-08 20:07:24 2020-01-14__MyWetter__temperature__GrasslandTemperatureSum 31.5
2020-11-08 20:07:24 2020-01-15__MyWetter__temperature__AVGDMGWS__2020-01-15 10.3
2020-11-08 20:07:24 2020-01-15__MyWetter__temperature__GrasslandTemperatureSum 36.6
2020-11-08 20:07:24 2020-01-16__MyWetter__temperature__AVGDMGWS__2020-01-16 8.0
2020-11-08 20:07:24 2020-01-16__MyWetter__temperature__GrasslandTemperatureSum 40.6
2020-11-08 20:07:24 2020-01-17__MyWetter__temperature__AVGDMGWS__2020-01-17 4.9
2020-11-08 20:07:24 2020-01-17__MyWetter__temperature__GrasslandTemperatureSum 43.1
2020-11-08 20:07:24 2020-01-18__MyWetter__temperature__AVGDMGWS__2020-01-18 5.3
2020-11-08 20:07:24 2020-01-18__MyWetter__temperature__GrasslandTemperatureSum 45.7
2020-11-08 20:07:24 2020-01-19__MyWetter__temperature__AVGDMGWS__2020-01-19 3.0
2020-11-08 20:07:24 2020-01-19__MyWetter__temperature__GrasslandTemperatureSum 47.2
2020-11-08 20:07:24 2020-01-20__MyWetter__temperature__AVGDMGWS__2020-01-20 2.2
2020-11-08 20:07:24 2020-01-20__MyWetter__temperature__GrasslandTemperatureSum 48.4
2020-11-08 20:07:24 2020-01-21__MyWetter__temperature__AVGDMGWS__2020-01-21 0.5
2020-11-08 20:07:24 2020-01-21__MyWetter__temperature__GrasslandTemperatureSum 48.6
2020-11-08 20:07:24 2020-01-22__MyWetter__temperature__AVGDMGWS__2020-01-22 0.4
2020-11-08 20:07:24 2020-01-22__MyWetter__temperature__GrasslandTemperatureSum 48.8
2020-11-08 20:07:24 2020-01-23__MyWetter__temperature__AVGDMGWS__2020-01-23 2.0
2020-11-08 20:07:24 2020-01-23__MyWetter__temperature__GrasslandTemperatureSum 49.8
2020-11-08 20:07:24 2020-01-24__MyWetter__temperature__AVGDMGWS__2020-01-24 -0.2
2020-11-08 20:07:24 2020-01-25__MyWetter__temperature__AVGDMGWS__2020-01-25 -0.1
2020-11-08 20:07:24 2020-01-26__MyWetter__temperature__AVGDMGWS__2020-01-26 0.9
2020-11-08 20:07:24 2020-01-26__MyWetter__temperature__GrasslandTemperatureSum 50.2
2020-11-08 20:07:24 2020-01-27__MyWetter__temperature__AVGDMGWS__2020-01-27 5.1
2020-11-08 20:07:24 2020-01-27__MyWetter__temperature__GrasslandTemperatureSum 52.8
2020-11-08 20:07:24 2020-01-28__MyWetter__temperature__AVGDMGWS__2020-01-28 5.2
2020-11-08 20:07:24 2020-01-28__MyWetter__temperature__GrasslandTemperatureSum 55.4
2020-11-08 20:07:24 2020-01-29__MyWetter__temperature__AVGDMGWS__2020-01-29 3.8
2020-11-08 20:07:24 2020-01-29__MyWetter__temperature__GrasslandTemperatureSum 57.3
2020-11-08 20:07:24 2020-01-30__MyWetter__temperature__AVGDMGWS__2020-01-30 5.7
2020-11-08 20:07:24 2020-01-30__MyWetter__temperature__GrasslandTemperatureSum 60.1
2020-11-08 20:07:24 2020-01-31__MyWetter__temperature__AVGDMGWS__2020-01-31 11.1
2020-11-08 20:07:24 2020-01-31__MyWetter__temperature__GrasslandTemperatureSum 65.7
2020-11-08 20:07:24 2020-02-01__MyWetter__temperature__AVGDMGWS__2020-02-01 11.1
2020-11-08 20:07:24 2020-02-01__MyWetter__temperature__GrasslandTemperatureSum 74.0
2020-11-08 20:07:24 2020-02-02__MyWetter__temperature__AVGDMGWS__2020-02-02 7.7
2020-11-08 20:07:24 2020-02-02__MyWetter__temperature__GrasslandTemperatureSum 79.8
2020-11-08 20:07:24 2020-02-03__MyWetter__temperature__AVGDMGWS__2020-02-03 8.9
2020-11-08 20:07:24 2020-02-03__MyWetter__temperature__GrasslandTemperatureSum 86.5
2020-11-08 20:07:24 2020-02-04__MyWetter__temperature__AVGDMGWS__2020-02-04 4.8
2020-11-08 20:07:24 2020-02-04__MyWetter__temperature__GrasslandTemperatureSum 90.1
2020-11-08 20:07:24 2020-02-05__MyWetter__temperature__AVGDMGWS__2020-02-05 2.9
2020-11-08 20:07:24 2020-02-05__MyWetter__temperature__GrasslandTemperatureSum 92.3
2020-11-08 20:07:24 2020-02-06__MyWetter__temperature__AVGDMGWS__2020-02-06 2.8
2020-11-08 20:07:24 2020-02-06__MyWetter__temperature__GrasslandTemperatureSum 94.4
2020-11-08 20:07:24 2020-02-07__MyWetter__temperature__AVGDMGWS__2020-02-07 4.4
2020-11-08 20:07:24 2020-02-07__MyWetter__temperature__GrasslandTemperatureSum 97.7
2020-11-08 20:07:24 2020-02-08__MyWetter__temperature__AVGDMGWS__2020-02-08 4.2
2020-11-08 20:07:24 2020-02-08__MyWetter__temperature__GrasslandTemperatureSum 100.9
2020-11-08 20:07:24 2020-02-09__MyWetter__temperature__AVGDMGWS__2020-02-09 9.2
2020-11-08 20:07:24 2020-02-09__MyWetter__temperature__GrasslandTemperatureSum 107.8
2020-11-08 20:07:24 2020-02-10__MyWetter__temperature__AVGDMGWS__2020-02-10 7.7
2020-11-08 20:07:24 2020-02-10__MyWetter__temperature__GrasslandTemperatureSum 113.6
2020-11-08 20:07:24 2020-02-11__MyWetter__temperature__AVGDMGWS__2020-02-11 4.3
2020-11-08 20:07:24 2020-02-11__MyWetter__temperature__GrasslandTemperatureSum 116.8
2020-11-08 20:07:24 2020-02-12__MyWetter__temperature__AVGDMGWS__2020-02-12 4.0
2020-11-08 20:07:24 2020-02-12__MyWetter__temperature__GrasslandTemperatureSum 119.8
2020-11-08 20:07:24 2020-02-13__MyWetter__temperature__AVGDMGWS__2020-02-13 3.6
2020-11-08 20:07:24 2020-02-13__MyWetter__temperature__GrasslandTemperatureSum 122.5
2020-11-08 20:07:24 2020-02-14__MyWetter__temperature__AVGDMGWS__2020-02-14 5.6
2020-11-08 20:07:24 2020-02-14__MyWetter__temperature__GrasslandTemperatureSum 126.7
2020-11-08 20:07:24 2020-02-15__MyWetter__temperature__AVGDMGWS__2020-02-15 6.3
2020-11-08 20:07:24 2020-02-15__MyWetter__temperature__GrasslandTemperatureSum 131.4
2020-11-08 20:07:24 2020-02-16__MyWetter__temperature__AVGDMGWS__2020-02-16 12.3
2020-11-08 20:07:24 2020-02-16__MyWetter__temperature__GrasslandTemperatureSum 140.7
2020-11-08 20:07:24 2020-02-17__MyWetter__temperature__AVGDMGWS__2020-02-17 9.8
2020-11-08 20:07:24 2020-02-17__MyWetter__temperature__GrasslandTemperatureSum 148.0
2020-11-08 20:07:24 2020-02-18__MyWetter__temperature__AVGDMGWS__2020-02-18 7.0
2020-11-08 20:07:24 2020-02-18__MyWetter__temperature__GrasslandTemperatureSum 153.3
2020-11-08 20:07:24 2020-02-19__MyWetter__temperature__AVGDMGWS__2020-02-19 5.5
2020-11-08 20:07:24 2020-02-19__MyWetter__temperature__GrasslandTemperatureSum 157.4
2020-11-08 20:07:24 2020-02-20__MyWetter__temperature__AVGDMGWS__2020-02-20 5.2
2020-11-08 20:07:24 2020-02-20__MyWetter__temperature__GrasslandTemperatureSum 161.3
2020-11-08 20:07:24 2020-02-21__MyWetter__temperature__AVGDMGWS__2020-02-21 6.0
2020-11-08 20:07:24 2020-02-21__MyWetter__temperature__GrasslandTemperatureSum 165.8
2020-11-08 20:07:24 2020-02-22__MyWetter__temperature__AVGDMGWS__2020-02-22 8.5
2020-11-08 20:07:24 2020-02-22__MyWetter__temperature__GrasslandTemperatureSum 172.2
2020-11-08 20:07:24 2020-02-23__MyWetter__temperature__AVGDMGWS__2020-02-23 9.5
2020-11-08 20:07:24 2020-02-23__MyWetter__temperature__GrasslandTemperatureSum 179.3
2020-11-08 20:07:24 2020-02-24__MyWetter__temperature__AVGDMGWS__2020-02-24 5.7
2020-11-08 20:07:24 2020-02-24__MyWetter__temperature__GrasslandTemperatureSum 183.6
2020-11-08 20:07:24 2020-02-25__MyWetter__temperature__AVGDMGWS__2020-02-25 8.9
2020-11-08 20:07:24 2020-02-25__MyWetter__temperature__GrasslandTemperatureSum 190.3
2020-11-08 20:07:24 2020-02-26__MyWetter__temperature__AVGDMGWS__2020-02-26 3.5
2020-11-08 20:07:24 2020-02-26__MyWetter__temperature__GrasslandTemperatureSum 192.9
2020-11-08 20:07:24 2020-02-27__MyWetter__temperature__AVGDMGWS__2020-02-27 3.2
2020-11-08 20:07:24 2020-02-27__MyWetter__temperature__GrasslandTemperatureSum 195.3
2020-11-08 20:07:24 2020-02-28__MyWetter__temperature__AVGDMGWS__2020-02-28 3.2
2020-11-08 20:07:24 2020-02-28__MyWetter__temperature__GrasslandTemperatureSum 197.7
2020-11-08 20:07:24 2020-02-29__MyWetter__temperature__AVGDMGWS__2020-02-29 7.2
2020-11-08 20:07:24 2020-02-29__MyWetter__temperature__GrasslandTemperatureSum 203.1
2020-11-08 20:07:24 2020-03-01__MyWetter__temperature__AVGDMGWS__2020-03-01 7.1
2020-11-08 20:07:24 2020-03-01__MyWetter__temperature__GrasslandTemperatureSum 210.2
2020-11-08 20:07:24 background_processing_time 36.3184
2020-11-08 20:07:24 sql_processing_time 36.3164
2020-11-08 20:07:24 state done
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-01__MyWetter__temperature__GrasslandTemperatureSum: 0.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-02__MyWetter__temperature__GrasslandTemperatureSum: 1.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-03__MyWetter__temperature__GrasslandTemperatureSum: 3.9
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-04__MyWetter__temperature__GrasslandTemperatureSum: 6.0
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-05__MyWetter__temperature__GrasslandTemperatureSum: 7.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-06__MyWetter__temperature__GrasslandTemperatureSum: 9.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-07__MyWetter__temperature__GrasslandTemperatureSum: 10.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-08__MyWetter__temperature__GrasslandTemperatureSum: 13.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-09__MyWetter__temperature__GrasslandTemperatureSum: 17.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-10__MyWetter__temperature__GrasslandTemperatureSum: 21.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-11__MyWetter__temperature__GrasslandTemperatureSum: 23.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-12__MyWetter__temperature__GrasslandTemperatureSum: 25.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-13__MyWetter__temperature__GrasslandTemperatureSum: 27.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-14__MyWetter__temperature__GrasslandTemperatureSum: 31.5
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-15__MyWetter__temperature__GrasslandTemperatureSum: 36.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-16__MyWetter__temperature__GrasslandTemperatureSum: 40.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-17__MyWetter__temperature__GrasslandTemperatureSum: 43.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-18__MyWetter__temperature__GrasslandTemperatureSum: 45.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-19__MyWetter__temperature__GrasslandTemperatureSum: 47.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-20__MyWetter__temperature__GrasslandTemperatureSum: 48.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-21__MyWetter__temperature__GrasslandTemperatureSum: 48.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-22__MyWetter__temperature__GrasslandTemperatureSum: 48.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-23__MyWetter__temperature__GrasslandTemperatureSum: 49.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-26__MyWetter__temperature__GrasslandTemperatureSum: 50.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-27__MyWetter__temperature__GrasslandTemperatureSum: 52.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-28__MyWetter__temperature__GrasslandTemperatureSum: 55.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-29__MyWetter__temperature__GrasslandTemperatureSum: 57.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-30__MyWetter__temperature__GrasslandTemperatureSum: 60.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-31__MyWetter__temperature__GrasslandTemperatureSum: 65.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-01__MyWetter__temperature__GrasslandTemperatureSum: 74.0
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-02__MyWetter__temperature__GrasslandTemperatureSum: 79.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-03__MyWetter__temperature__GrasslandTemperatureSum: 86.5
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-04__MyWetter__temperature__GrasslandTemperatureSum: 90.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-05__MyWetter__temperature__GrasslandTemperatureSum: 92.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-06__MyWetter__temperature__GrasslandTemperatureSum: 94.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-07__MyWetter__temperature__GrasslandTemperatureSum: 97.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-08__MyWetter__temperature__GrasslandTemperatureSum: 100.9
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-09__MyWetter__temperature__GrasslandTemperatureSum: 107.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-10__MyWetter__temperature__GrasslandTemperatureSum: 113.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-11__MyWetter__temperature__GrasslandTemperatureSum: 116.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-12__MyWetter__temperature__GrasslandTemperatureSum: 119.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-13__MyWetter__temperature__GrasslandTemperatureSum: 122.5
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-14__MyWetter__temperature__GrasslandTemperatureSum: 126.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-15__MyWetter__temperature__GrasslandTemperatureSum: 131.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-16__MyWetter__temperature__GrasslandTemperatureSum: 140.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-17__MyWetter__temperature__GrasslandTemperatureSum: 148.0
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-18__MyWetter__temperature__GrasslandTemperatureSum: 153.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-19__MyWetter__temperature__GrasslandTemperatureSum: 157.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-20__MyWetter__temperature__GrasslandTemperatureSum: 161.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-21__MyWetter__temperature__GrasslandTemperatureSum: 165.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-22__MyWetter__temperature__GrasslandTemperatureSum: 172.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-23__MyWetter__temperature__GrasslandTemperatureSum: 179.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-24__MyWetter__temperature__GrasslandTemperatureSum: 183.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-25__MyWetter__temperature__GrasslandTemperatureSum: 190.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-26__MyWetter__temperature__GrasslandTemperatureSum: 192.9
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-27__MyWetter__temperature__GrasslandTemperatureSum: 195.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-28__MyWetter__temperature__GrasslandTemperatureSum: 197.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-29__MyWetter__temperature__GrasslandTemperatureSum: 203.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-03-01__MyWetter__temperature__GrasslandTemperatureSum: 210.2
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
timeDiffToNow y:1
Zitat von: DS_Starter am 10 November 2020, 13:35:59Leider war ich Dumm und experimentierfreudig :-(
wenn du alles haben willst, brauchst du die time.* Attr zur Abgrenzung nicht setzen.
Jetzt hast du schon soviel übertragen. Dann machst du noch eine weiteren Lauf wenn der fertig ist mit timeOlderThan.
Damit der RAM nicht strapaziert wird, kannst du Attribut "aggregation" benutzen. Aber hast du sicher gelesen.
aggregation no
timeDiffToNow y:1
Zitat von: DS_Starter am 10 November 2020, 14:06:41
Einfach nur
timeOlderThan y:1
damit alle Daten älter als ein Jahr übertragen werden die im vorherigen Lauf ausgegrenzt hast.
Wenn du im Ziel einen PK angelegt hast, kannst du den Zeitraum auch etwas überlappen lassen ohne das doppelte DS entstehen. Kennst du ja.
ZitatÜbrigens habe ich bei DbRep kein next_day_begin oder end gefunden.Richtig, gibts bisher nicht. Das wäre ein Featurerequest. ;)
ZitatIch werde immer gewandter in Datenbanken ;-)Das ist gut. Dann kannst du mir mit ausgebufften SQLs unter die Arme greifen. Ehrlich.
Zitat von: DS_Starter am 10 November 2020, 14:18:37Request, request,request :-)
Richtig, gibts bisher nicht. Das wäre ein Featurerequest. ;)
ZitatWas fehlt Dir denn?
Das ist gut. Dann kannst du mir mit ausgebufften SQLs unter die Arme greifen. Ehrlich.
Ich habe kaum noch Zeit und Muße dazu.
Zitat von: DS_Starter am 10 November 2020, 14:29:32Ich versuche immer nur Basis Funktionalitäten zu verwenden und anders DBs habe ich noch nicht verwendet.
Allerdings immer dran denken es muss auch für SQLite und Postgre laufen, nicht nur MySQL Brille. :)
SELECT
TIMESTAMP, COUNT(TIMESTAMP),
DEVICE, COUNT(DEVICE),
READING, COUNT(READING)
FROM history
GROUP BY
TIMESTAMP,
DEVICE,
READING
HAVING COUNT(TIMESTAMP)>1
AND COUNT(DEVICE)>1
AND COUNT(READING)>1;
+---------------------+------------------+----------------------+---------------+------------------------------------+----------------+
| TIMESTAMP | COUNT(TIMESTAMP) | DEVICE | COUNT(DEVICE) | READING | COUNT(READING) |
+---------------------+------------------+----------------------+---------------+------------------------------------+----------------+
| 2020-03-11 08:54:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
| 2020-03-11 11:36:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
| 2020-03-11 12:48:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_PV | 2 |
| 2020-03-11 13:00:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
| 2020-03-11 14:06:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
| 2020-03-11 14:18:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
| 2020-03-12 11:06:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
| 2020-03-12 11:06:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_PV | 2 |
| 2020-03-12 12:18:00 | 2 | PV_Anlage_1 | 2 | Home_own_consumption_from_battery | 2 |
snip...
# Dann diese Einträge löschen, oder zumindest einen davon
# und schon sollte die erstellung des Primary key durchlaufen
ALTER TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
MySQL [fhem]> ALTER TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
ERROR 1062 (23000): Duplicate entry '2020-11-10 19:03:42-KU_S_Fenster-state' for key 'PRIMARY'
MySQL [fhem]> delete from history where DEVICE='KU_S_Fenster' and READING='state' and TIMESTAMP = '2020-11-10 19:03:42';
Query OK, 3 rows affected (0.029 sec)
ZitatWas soll ich denn morgen für Attribute für den letzten Sync setzen, damit die Nacht noch dazu kommt? Mir fehlt momentan die Konzentration ein wenig.Da du einen PK gesetzt hast, brauchst du dir nicht so viel Gedanken über eine Time-Überschneidung zu machen.
ZitatUnd wie wäre der Weg zur Umschaltung auf die neue DB dann am einfachsten.Kommt darauf an, wie du mit DbLog arbeitest. Am einfachsten übernimmst du den Regex im DEF des alten DbLog und loggst erstmal parallel.
ZitatOh, Du bist noch wach.Aber gleich nicht mehr :)
ZitatKann das sein, dass das Logging parallel in beide Datenbanken geht?Ja klar. Ich habe auf meinem Testsystem vllt. 6 parallele DB's ... MySQL, SQLite und Postgre um die Ergebnisse vergleichen zu können bei der Entwicklung.
Zitat von: DS_Starter am 15 November 2020, 09:35:19Hallo Heiko,
in meinem contrib liegt die Version 8.42.0.
Dort gibt es nun die Möglichkeit next_day_begin und next_day_end zu spezifizieren.
Mal für mein Verständnis.... wozu braucht man die Auswertung der DB für den kommenden Tag. Dafür gibt es i.A. noch keine Werte in der DB oder fügst du sie mit irgendeiner Routine vorher ein ?
Zitat von: DS_Starter am 15 November 2020, 10:51:33Beim SMA hatte ich auch mal gespickt :-)
Danke für die Erläuterung. Habs verstanden. ;)
Vielleicht kann ich sowas auch für das Modul SMAPortal implementieren, da dieses Modul ebenfalls bei entsprechender Parametrisierung Prognosedaten liefert. Hat aber noch niemand diesen Wunsch geäußert es loggen zu wollen.
Zitatdie Angabe der Tabelle.
1. Anlegen der DB und Tabellen
wie in diesem Link hinterlegt, erfolgt die Erstellung mit den Befehlen für MySQL:
...
ALTER TABLE `fhemtest`.`history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
...
SELECT sum(VALUE) AS 'Solar_calculation_fc1_tomorrow' FROM history WHERE DEVICE = 'PV_Anlage_1' AND READING = 'Solar_Calculation_fc1' AND TIMESTAMP > DATE_ADD(DATE(now()),INTERVAL 1 DAY) AND TIMESTAMP < DATE_ADD(DATE(now()),INTERVAL 2 DAY);
+--------------------------------+
| Solar_calculation_fc1_tomorrow |
+--------------------------------+
| 9288 |
+--------------------------------+
## man kann auch den Header auf leer setzen ;-)
## Im DbRep ist aber immer SqlResultRow_1 fest für die Überschriften gesetzt, aber das ist sicherlich mySQL spezifisch :-)
SELECT sum(VALUE) AS '' FROM history WHERE DEVICE = 'PV_Anlage_1' AND READING = 'Solar_Calculation_fc1' AND TIMESTAMP > DATE_ADD(DATE(now()),INTERVAL 1 DAY) AND TIMESTAMP < DATE_ADD(DATE(now()),INTERVAL 2 DAY);
+------+
| |
+------+
| 9288 |
+------+
SqlResultRow_1 SOLAR_CALCULATION_FC1_TOMORROW
SqlResultRow_2 9288
readingNameMap Solar_calculation_fc1_tomorrow
SqlResultRow_1 Solar_calculation_fc1_tomorrow
SqlResultRow_2 9288
Solar_calculation_fc1_tomorrow_1 9288
readingNameMap Solar_calculation_fc1_tomorrow
ZitatUnd es wird brutal der Spaltenname in Großbuchstaben umgewandelt, was nicht aus dem SQL kommt.Das hab ich im Code so hinterlegt, damit man die Überschriften leicht als solche erkennt. Der Header wird übrigens auch bei mehrspaltigen Ausgaben ausgegeben sofern diese geliefert werden, z.B. bei get <> procInfo.
Zitat von: DS_Starter am 20 November 2020, 18:45:39Vielen dank für die super schnelle Antwort. Ich hatte dann nochmal gesucht und den anderen Thread gefunden.
Edit: Uuuups, wo ist die Frage hin ? ;)
select * from history where DEVICE='PV_Anlage_1_API' and READING='Statistic_EnergyHomePvSum_Day' and TIMESTAMP >= '2020-11-20 18:00:00';
+---------------------+-----------------+---------+-------+-------------------------------+---------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+-----------------+---------+-------+-------------------------------+---------+------+
| 2020-11-20 18:57:04 | PV_Anlage_1_API | HTTPMOD | | Statistic_EnergyHomePvSum_Day | 4320.29 | |
+---------------------+-----------------+---------+-------+-------------------------------+---------+------+
UPDATE history
SET EVENT = NULL
WHERE EVENT is not null;
Zitat von: DS_Starter am 20 November 2020, 19:05:01Dieser Weg hat hervorragend funktioniert und die Datenbank um 45% verkleinert.
ALTER TABLE history DROP COLUMN EVENT
und danach wieder anlegen.
Kommt darauf an wie groß die DB ist wegen der Laufzeit.
Zitat von: DS_Starter am 01 Dezember 2020, 22:29:27Das check ich mal morgen, danke.
https://github.com/JackGruber/docker_phpmyadmin
phpMyAdmin:
image: jackgruber/phpmyadmin
restart: always
ports:
- '8081:80'
links:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
depends_on:
- "mysql"
Zitat von: DS_Starter am 15 Dezember 2020, 15:31:39Ja und nun isset wech :-) ich kann Zaubern :-)
weder noch ... bei mir ist sie vorhanden.
Zitat von: DS_Starter am 15 Dezember 2020, 16:36:59
Na du kannst Sachen machen. :)
Vllt. mal Browsercache leeren.
2020.12.15 14:02:50.616 1: UPD FHEM/01_FHEMWEB.pm
EDIT: Kann es das eventuell sein
Code: [Auswählen]
2020.12.15 14:02:50.616 1: UPD FHEM/01_FHEMWEB.pm
Zitat von: DS_Starter am 15 Dezember 2020, 17:54:28Sehr dubios, ich habe auch mal das style sheet geändert, aber die Auswahl ist einfach weg.
Nein. Habe gerade komplett upgedated und läuft absolut korrekt.
Zitat von: DS_Starter am 15 Dezember 2020, 18:21:42Hab jetzt auch den RPI restarted, es bleibt einfach weg. Auch vom Handy oder Tablet ist es einfach weg.
Diese Oberfläche wird ja durch Javascript (fhemweb.js) gestaltet.
Hast du mal einen anderen Browser verwendet ? Oder deinen PC/Laptop restartet ?
Zitat von: DS_Starter am 15 Dezember 2020, 19:18:49Ich habe noch mehr getestet, wenn man auf room geht, erscheint normaler weise ein Popup Fenster, das ist auch weg.
Puh ... da fällt mir grad nix mehr ein ...
Zitat von: DS_Starter am 15 Dezember 2020, 19:27:51Mache ich gerade, danke.
Frag doch mal im FHEMWEB Forum ...
READINGS:
2021-01-02 14:21:11 2021-01-01__Solar_Monatsenergieertrag_calc__no_aggregation -
2021-01-02 14:21:11 background_processing_time 0.0067
2021-01-02 14:21:11 sql_processing_time 0.0026
2021-01-02 14:21:11 state done
Attributes:
aggregation no
device Tagesgesamtenergieertrag_Solar
reading state
readingNameMap Solar_Monatsenergieertrag_calc
showproctime 1
timestamp_begin current_month_begin
timestamp_end previous_day_end
MariaDB [fhem]> select * from history where device = 'Tagesgesamtenergieertrag_Solar' and timestamp >= '2021-01-01 00:00:00';
+---------------------+--------------------------------+-------+----------+---------+-------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+--------------------------------+-------+----------+---------+-------+------+
| 2021-01-01 23:59:59 | Tagesgesamtenergieertrag_Solar | DUMMY | state: 0 | state | 0 | |
+---------------------+--------------------------------+-------+----------+---------+-------+------+
MariaDB [fhem]> select sum(value) from history where device = 'Solar_Monatsenergieertrag' and timestamp >= '2021-01-01 00:00:00';
+------------+
| sum(value) |
+------------+
| 0 |
+------------+
1 row in set (0.001 sec)
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
writeToDBSingle : writes only one value with the time stamp XX:XX:59 at the end of an evaluation period
attr aggregation day
die Werte jeden Tag um 23:59:59 in die Datenbank und nicht nur am datum timestamp_end.
LASTCMD
SELECT DATE,
READING,
cast(avg(VALUE) AS DECIMAL(6,2)) AS AVG,
WEEKDAY
FROM
(
SELECT DATE_FORMAT(TIMESTAMP, '%Y-%m-%d') AS DATE,
READING,max(VALUE) AS VALUE,
weekday(TIMESTAMP) AS WEEKDAY
FROM history
WHERE DEVICE = §device§
AND READING = §reading§
AND TIMESTAMP >= §timestamp_begin§
AND TIMESTAMP <= §timestamp_end§
GROUP BY DATE
) t1
GROUP BY WEEKDAY;
errortext DBD::mysql::st execute failed: Unknown column '§device§' in 'where clause' at ./FHEM/93_DbRep.pm line 6414.
Beispiele:
attr <name> device TYPE=DbRep
attr <name> device MySTP_5000
attr <name> device SMA.*,MySTP.*
attr <name> device SMA_Energymeter,MySTP_5000
attr <name> device %5000
attr <name> device TYPE=SSCam EXCLUDE=SDS1_SVS
attr <name> device TYPE=SSCam,TYPE=ESPEasy EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=TYPE=SSCam
Zitat von: DS_Starter am 30 Januar 2021, 11:53:07Okay, das würde dann zu einem SQL Error führen.
momentan kann man über sqlCmd nur auf §timestamp_begin§, §timestamp_end§ zugreifen, aber nicht §device§, §reading§ zugreifen.
Im Prinzip kann man diese Möglichkeit auch relativ einfach einbauen. Ich habe das bisher vermieden weil es für die Attribute device, reading vielfältige Eingabemöglichkeiten gibt die im ungünstigen Fall in einem sqlCmd zu Fehlern führen können.
Eingabemöglichkeiten wären zum Beispiel:Code Auswählen
Beispiele:
attr <name> device TYPE=DbRep
attr <name> device MySTP_5000
attr <name> device SMA.*,MySTP.*
attr <name> device SMA_Energymeter,MySTP_5000
attr <name> device %5000
attr <name> device TYPE=SSCam EXCLUDE=SDS1_SVS
attr <name> device TYPE=SSCam,TYPE=ESPEasy EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=TYPE=SSCam
Für das Attr reading sieht es ähnlich aus.
Ich denke du weißt was ich meine.
Wäre es denn dir sehr wichtig einen solchen Zugriff zu haben ?
ZitatdelEntries [<no>[:<nn>]] - löscht alle oder die durch die Attribute device und/oder reading definierten Datenbankeinträge. Die Eingrenzung über Timestamps erfolgt folgendermaßen:...
"timeOlderThan" gesetzt -> gelöscht werden DB-Einträge älter als aktuelle Zeit minus "timeOlderThan"
Internals:
DATABASE fhem
DEF DbLog
FUUID 5e244bd9-f33f-1115-8e73-a46a39d31299868e
FVERSION 93_DbRep.pm:v8.42.3-s23462/2021-01-03
LASTCMD delEntries
MODEL Client
NAME DbLogRep
NOTIFYDEV global,DbLogRep
NR 33
NTFY_ORDER 50-DbLogRep
ROLE Client
STATE done
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE DbLog
GRANTS INSERT,ALL PRIVILEGES,UPDATE,DELETE,SELECT
IDRETRIES 2
MINTS 2020-07-04 17:41:39
PACKAGE main
SQLHIST
VERSION 8.42.3
CV:
aggregation no
aggsec 1
destr 2021-01-31
dsstr 2020-12-12
epoch_seconds_end 1612079258
mestr 01
msstr 12
testr 08:47:38
tsstr 08:47:37
wdadd 172800
yestr 2021
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2021-01-31 08:47:41 /--/----DELETED_ROWS_HISTORY-- 33310
2021-01-31 08:47:41 state done
Attributes:
allowDeletion 1
group intern
timeDiffToNow d:50
Zitatich habe jetzt die 92 Seiten nicht gelesen ...Commandref sollte reichen :)
ZitatEs werden aber anscheinend nur die aktuell letzten 50 Tage gelöscht. Was mache ich da falsch?Du hast das Attr timeDiffToNow d:50 statt timeOlderThan gesetzt. Richtig wäre timeOlderThan d:50.
Attributes:
allowDeletion 1
fastStart 1
reading EXCLUDE=.*work.*
room System->Logging
showproctime 1
sqlCmdHistoryLength 50
timeout 864000
timestamp_begin previous_year_begin
Zitat| 8742 | fhemuser | localhost | fhem | Query | 0 | query end | delete FROM history where TIMESTAMP = '2020-03-04 00:00:38' AND DEVICE = 'D_WMZ_Heizung_main' AND READING = 'work' AND VALUE = '8.16'
Internals:
DATABASE fhem
DEF logdb
FUUID 6015d946-f33f-4040-6784-2b12d3e3044ec15f
FVERSION 93_DbRep.pm:v8.42.3-s23462/2021-01-03
LASTCMD delDoublets delete
MODEL Client
NAME repdb_delDoublets
NOTIFYDEV global,repdb_delDoublets
NR 565
NTFY_ORDER 50-repdb_delDoublets
ROLE Client
STATE error
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE logdb
GRANTS USAGE,SELECT,DELETE,UPDATE,INSERT
IDRETRIES 2
MINTS 2014-03-26 22:59:59
PACKAGE main
SQLHIST
VERSION 8.42.3
CV:
aggregation day
aggsec 86400
destr 2021-02-02
dsstr 2020-01-01
epoch_seconds_end 1612304892
mestr 02
msstr 01
testr 23:28:12
tsstr 00:00:00
wdadd 432000
yestr 2021
ysstr 2020
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2021-02-03 09:47:55 errortext DBD::mysql::st execute failed: Lost connection to MySQL server during query at ./FHEM/93_DbRep.pm line 5540.
2021-02-03 09:47:55 state error
Attributes:
allowDeletion 1
fastStart 1
reading EXCLUDE=.*work.*
room System->Logging
showproctime 1
sqlCmdHistoryLength 50
timeout 864000
timestamp_begin previous_year_begin
Zitat von: abc2006 am 03 Februar 2021, 13:00:51Du kannst aus der Sicherung, die Du davor gemacht hast die Einträge einzeln wiederherstellen, ohne die gesamte Sicherung zurück zu spielen.
tjaaa... das war dämlich von mir.
Mal sehen, was ich retten kann...
Zitat von: abc2006 am 03 Februar 2021, 14:17:46Du hast ja mit einer Maske gelöscht und es laufen jetzt ja von den Devices weiter Daten rein.
Tja, das birgt das generelle Problem bei großen Datenmengen. Ich weiss nicht genau, was alles gelöscht wurde, und müsste jetzt quasi die gesamte Sicherung einspielen, und dann nochmal ein delDoublets machen. Da hat meine Datenbank ein paar Tage zu tun.
Einen PK habe ich leider noch nicht.
Ich habe ein paar kurze Tests gemacht und die wichtigsten Daten scheinen noch da zu sein.
Ich arbeite mich gerade in syncStandby ein und werde eine zweite Datenbank mit den wichtigeren Sachen anlegen. Was mir dabei auffällt (aber vielleicht gibts da ja auch schon eine Lösung), dass ich ja dann einen Workaround brauche, wenn ich an den Übergang von alten zu aktuellen Daten (die dann ja in einer anderen DB sind) komme.
PS: vielleicht könnte man im ConfigCheck anzeigen, ob und welcher PK genutzt wird.
define atdbRepBad3 at *00:40 set dbRepBad3 averageValue writeToDB
attr atdbRepBad3 room DbLog
attr atdbRepBad3 verbose 1
attr atdbRepBad3 webCmd execNow
attr atdbRepBad3 widgetOverride execNow
setstate atdbRepBad3 Next: 00:40:00
setstate atdbRepBad3 2021-02-08 00:40:00 state Next: 00:40:00
defmod dbRepBad3 DbRep mySQLDB
attr dbRepBad3 aggregation month
attr dbRepBad3 allowDeletion 1
attr dbRepBad3 devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr dbRepBad3 device HzgThermostatBad
attr dbRepBad3 event-on-update-reading state
attr dbRepBad3 reading measured-temp
attr dbRepBad3 room DbLog,LogFiles,System
attr dbRepBad3 timestamp_begin previous_year_begin
attr dbRepBad3 timestamp_end previous_day_end
attr dbRepBad3 verbose 1
setstate dbRepBad3 done
setstate dbRepBad3 2020-12-17 22:28:27 .associatedWith HzgThermostatBad
setstate dbRepBad3 2021-02-08 09:09:14 2020-01-01__HzgThermostatBad__measured-temp__AVGAM__2020-01 23.1718
setstate dbRepBad3 2021-02-08 09:09:14 2020-02-01__HzgThermostatBad__measured-temp__AVGAM__2020-02 23.0269
setstate dbRepBad3 2021-02-08 09:09:14 2020-03-01__HzgThermostatBad__measured-temp__AVGAM__2020-03 23.0446
setstate dbRepBad3 2021-02-08 09:09:14 2020-04-01__HzgThermostatBad__measured-temp__AVGAM__2020-04 22.9332
setstate dbRepBad3 2021-02-08 09:09:14 2020-05-01__HzgThermostatBad__measured-temp__AVGAM__2020-05 22.3761
setstate dbRepBad3 2021-02-08 09:09:14 2020-06-01__HzgThermostatBad__measured-temp__AVGAM__2020-06 22.9846
setstate dbRepBad3 2021-02-08 09:09:14 2020-07-01__HzgThermostatBad__measured-temp__AVGAM__2020-07 22.5617
setstate dbRepBad3 2021-02-08 09:09:14 2020-08-01__HzgThermostatBad__measured-temp__AVGAM__2020-08 23.0202
setstate dbRepBad3 2021-02-08 09:09:14 2020-09-01__HzgThermostatBad__measured-temp__AVGAM__2020-09 22.4993
setstate dbRepBad3 2021-02-08 09:09:14 2020-10-01__HzgThermostatBad__measured-temp__AVGAM__2020-10 22.9706
setstate dbRepBad3 2021-02-08 09:09:14 2020-11-01__HzgThermostatBad__measured-temp__AVGAM__2020-11 22.8690
setstate dbRepBad3 2021-02-08 09:09:14 2020-12-01__HzgThermostatBad__measured-temp__AVGAM__2020-12 23.3856
setstate dbRepBad3 2021-02-08 09:09:14 2021-01-01__HzgThermostatBad__measured-temp__AVGAM__2021-01 22.9356
setstate dbRepBad3 2021-02-08 09:09:14 2021-02-01__HzgThermostatBad__measured-temp__AVGAM__2021-02 23.2030
setstate dbRepBad3 2021-02-08 09:09:14 state done
set dbRepBad3 averageValue display
Zitat von: wowogiengen am 08 Februar 2021, 09:22:37Hallo Wolfgang,
zeigt mir ja auch nur die Monatswerte an...
Woher kommen dann die vielen "Zwischenwerte" für jeden Tag, die ich in der SQL-Datenbank auch sehe...
Zitat von: wowogiengen am 08 Februar 2021, 10:52:35Okay, das wäre dann meine beschriebene Variante, das DbRep nur einmal am Monatsanfang laufen zu lassen, um den Durchschnitt des letzten Monats zu berechnen.
Mir ist jetzt klar, wieso jeden Tag ein neuer Wert dazu kommt... das ist ja dann der Mittelwert des aktuellen Monats, aber nur bis "heute" eben...
In anderen Threads des Forums habe ich gelesen, wie ich mit einer if-Abfrage das at-Kommando so modifizieren kann, dass es nur noch am ersten des Monats triggert - wobei das bestimmt auch mit einem DoIf möglich wäre...
...
DOELSEIF
([01:07] and ($mday==1))
...
attr dbRepBad3 timestamp_begin previous_month_begin
attr dbRepBad3 timestamp_end previous_month_end
define atdbRepBad3 at *00:40 {if ((strftime "%d",localtime time) eq "01") {set dbRepBad3 averageValue writeToDB}}
attr atdbRepBad3 room DbLog
attr atdbRepBad3 verbose 1
attr atdbRepBad3 webCmd execNow
attr atdbRepBad3 widgetOverride execNow
setstate atdbRepBad3 Next: 00:40:00
setstate atdbRepBad3 2021-02-08 18:21:14 state Next: 00:40:00
define atdbRepBad1 at *00:00 set dbRepBad1 maxValue writeToDB
define atdbRepBuero1 at *01:00 set dbRepBuero1 maxValue writeToDB
define atdbRepSchlafzimmer1 at *02:00 set dbRepSchlafzimmer1 maxValue writeToDB
define atdbRepWohnzimmer1 at *03:00 set dbRepWohnzimmer1 maxValue writeToDB
define atdbRepBad2 at *00:20 set dbRepBad2 averageValue writeToDB
define atdbRepBuero2 at *01:20 set dbRepBuero2 averageValue writeToDB
define atdbRepSchlafzimmer2 at *02:20 set dbRepSchlafzimmer2 averageValue writeToDB
define atdbRepWohnzimmer2 at *03:20 set dbRepWohnzimmer2 averageValue writeToDB
define atdbRepBad3 at *00:40 {if ((strftime "%d",localtime time) eq "01") {set dbRepBad3 averageValue writeToDB}}
define atdbRepBuero3 at *00:40 {if ((strftime "%d",localtime time) eq "01") {set dbRepBuero3 averageValue writeToDB}}
define atdbRepSchlafzimmer3 at *00:40 {if ((strftime "%d",localtime time) eq "01") {set dbRepSchlafzimmer3 averageValue writeToDB}}
define atdbRepWohnzimmer3 at *00:40 {if ((strftime "%d",localtime time) eq "01") {set dbRepWohnzimmer3 averageValue writeToDB}}
define dbRepBad1 DbRep mySQLDB
attr dbRepBad1 aggregation day
attr dbRepBad1 allowDeletion 1
attr dbRepBad1 reading pulseTimePerDay
attr dbRepBad1 timestamp_begin previous_day_begin
attr dbRepBad1 timestamp_end previous_day_end
define dbRepBuero1 DbRep mySQLDB
attr dbRepBuero1 aggregation day
attr dbRepBuero1 allowDeletion 1
attr dbRepBuero1 reading pulseTimePerDay
attr dbRepBuero1 timestamp_begin previous_day_begin
attr dbRepBuero1 timestamp_end previous_day_end
define dbRepSchlafzimmer1 DbRep mySQLDB
attr dbRepSchlafzimmer1 aggregation day
attr dbRepSchlafzimmer1 allowDeletion 1
attr dbRepSchlafzimmer1 reading pulseTimePerDay
attr dbRepSchlafzimmer1 timestamp_begin previous_day_begin
attr dbRepSchlafzimmer1 timestamp_end previous_day_end
define dbRepWohnzimmer1 DbRep mySQLDB
attr dbRepWohnzimmer1 aggregation day
attr dbRepWohnzimmer1 allowDeletion 1
attr dbRepWohnzimmer1 reading pulseTimePerDay
attr dbRepWohnzimmer1 timestamp_begin previous_day_begin
attr dbRepWohnzimmer1 timestamp_end previous_day_end
define dbRepBad2 DbRep mySQLDB
attr dbRepBad2 aggregation day
attr dbRepBad2 allowDeletion 1
attr dbRepBad2 reading measured-temp
attr dbRepBad2 timestamp_begin previous_day_begin
attr dbRepBad2 timestamp_end previous_day_end
define dbRepBuero2 DbRep mySQLDB
attr dbRepBuero2 aggregation day
attr dbRepBuero2 allowDeletion 1
attr dbRepBuero2 reading measured-temp
attr dbRepBuero2 timestamp_begin previous_day_begin
attr dbRepBuero2 timestamp_end previous_day_end
define dbRepSchlafzimmer2 DbRep mySQLDB
attr dbRepSchlafzimmer2 aggregation day
attr dbRepSchlafzimmer2 allowDeletion 1
attr dbRepSchlafzimmer2 reading measured-temp
attr dbRepSchlafzimmer2 timestamp_begin previous_day_begin
attr dbRepSchlafzimmer2 timestamp_end previous_day_end
define dbRepWohnzimmer2 DbRep mySQLDB
attr dbRepWohnzimmer2 aggregation day
attr dbRepWohnzimmer2 allowDeletion 1
attr dbRepWohnzimmer2 reading measured-temp
attr dbRepWohnzimmer2 timestamp_begin current_year_begin
define dbRepBad3 DbRep mySQLDB
attr dbRepBad3 aggregation month
attr dbRepBad3 allowDeletion 1
attr dbRepBad3 reading measured-temp
attr dbRepBad3 timestamp_begin previous_month_begin
attr dbRepBad3 timestamp_end previous_month_end
define dbRepBuero3 DbRep mySQLDB
attr dbRepBuero3 aggregation month
attr dbRepBuero3 allowDeletion 1
attr dbRepBuero3 reading measured-temp
attr dbRepBuero3 timestamp_begin previous_month_begin
attr dbRepBuero3 timestamp_end previous_month_end
define dbRepSchlafzimmer3 DbRep mySQLDB
attr dbRepSchlafzimmer3 aggregation month
attr dbRepSchlafzimmer3 allowDeletion 1
attr dbRepSchlafzimmer3 reading measured-temp
attr dbRepSchlafzimmer3 timestamp_begin previous_month_begin
attr dbRepSchlafzimmer3 timestamp_end previous_month_end
define dbRepWohnzimmer3 DbRep mySQLDB
attr dbRepWohnzimmer3 aggregation month
attr dbRepWohnzimmer3 allowDeletion 1
attr dbRepWohnzimmer3 reading measured-temp
attr dbRepWohnzimmer3 timestamp_begin previous_month_begin
attr dbRepWohnzimmer3 timestamp_end previous_month_end
ZitatIch bin ein Freund von DOIF, somit könntest Du alles in ein DOIF, eventuell mit einem gewünschtem wait abarbeiten.
Kann man das nicht eleganter lösen, so dass man es auch einfacher warten kann?
Die at-Befehle kann ich auch nicht gleichzeitig ausführen lassen, da die dbRep sich gegenseitig sperren... der erste geht, und die nachfolgenden bekommen Fehler beim DB-Zugriff.
my $Solar_Correction_Faktor_fc0 = DbReadingsVal("LogDBRep_select_PV_Forecast","PV_1:fc0_Factor",sprintf("%4d-%02d-%02d_%02d:00:00",$year,$mon,$mday,$i),1) ;
SELECT * from history where DEVICE='PV_1' AND READING='fc0_Factor' AND TIMESTAMP > CURDATE();
+---------------------+--------+------+-------+------------+-------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+--------+------+-------+------------+-------+------+
| 2021-02-08 09:00:00 | PV_1 | NULL | NULL | fc0_Factor | 6.9 | NULL |
| 2021-02-08 10:00:00 | PV_1 | NULL | NULL | fc0_Factor | 5.0 | NULL |
| 2021-02-08 11:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.9 | NULL |
| 2021-02-08 12:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.9 | NULL |
| 2021-02-08 13:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.8 | NULL |
| 2021-02-08 14:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.9 | NULL |
| 2021-02-08 15:00:00 | PV_1 | NULL | NULL | fc0_Factor | 2.0 | NULL |
| 2021-02-08 16:00:00 | PV_1 | NULL | NULL | fc0_Factor | 2.0 | NULL |
+---------------------+--------+------+-------+------------+-------+------+
Internals:
DATABASE fhem
DEF LogDB
FUUID 5f50bc9b-f33f-61a8-e635-e249a4e08a2531c6
FVERSION 93_DbRep.pm:v8.42.3-s23462/2021-01-03
LASTCMD sqlCmdBlocking select value from (
( select *, TIMESTAMPDIFF(SECOND, '2021-02-08 19:00:00', timestamp) as diff from history
where device='PV_1' and reading='fc0_Factor' and timestamp >= '2021-02-08 19:00:00' order by timestamp asc limit 1
)
union
( select *, TIMESTAMPDIFF(SECOND, timestamp, '2021-02-08 19:00:00') as diff from history
where device='PV_1' and reading='fc0_Factor' and timestamp < '2021-02-08 19:00:00' order by timestamp desc limit 1
)
) x order by diff limit 1;
MODEL Client
NAME LogDBRep_select_PV_Forecast
NOTIFYDEV global,LogDBRep_select_PV_Forecast
NR 478
NTFY_ORDER 50-LogDBRep_select_PV_Forecast
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
IDRETRIES 3
PACKAGE main
SQLHIST
VERSION 8.42.3
OLDREADINGS:
READINGS:
2021-01-04 15:40:02 index_state Index Report_Idx exists
2021-02-08 22:49:51 state done
Attributes:
DbLogExclude .*
readingNameMap VALUE
room System
defmod LogDBRep_insert_PV_Forecast_correction DbRep LogDB
attr LogDBRep_insert_PV_Forecast_correction DbLogExclude .*
attr LogDBRep_insert_PV_Forecast_correction room System
attr LogDBRep_insert_PV_Forecast_correction sqlCmdVars SET @days:=3, @corr:=0.7, @diff:=0, @temp:=0, @device:='PV_1', @reading1:='Total_DC_Power_(sumOfAllPVInputs)', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;;
set LogDBRep_insert_PV_Forecast_correction sqlCmd INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(2,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT TIMESTAMP, date(TIMESTAMP) AS DATE, hour(TIMESTAMP) AS HOUR, DEVICE, READING, VALUE FROM history WHERE DEVICE = @device AND (READING = @reading1 OR READING = @reading2) AND TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND TIMESTAMP <= CURDATE() AND MINUTE(TIMESTAMP) = 0 AND VALUE >= 0 GROUP BY DATE,HOUR,READING )t1 )tx WHERE READING != @reading2 )t2 GROUP BY t2.HOUR )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
# Neuberechnung der stündlichen Autokorrektur Faktoren in der Datenbank. Das DbRep Device LogDBRep_insert_PV_Forecast_correction muss vorhanden sein.
# Achtung, beim SQL muss '@' mit '\@' maskiert werden.
CommandSet(undef, "LogDBRep_insert_PV_Forecast_correction sqlCmd ".sprintf("
INSERT INTO history
(TIMESTAMP,DEVICE,READING,VALUE)
SELECT
TIMESTAMP,DEVICE,READING,VALUE
FROM (
SELECT
DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,
t2.DEVICE,
\@readingname AS READING,
cast(if(avg(t2.FACTOR) > 1.6, 1.6,
avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE
FROM (
SELECT * FROM (
SELECT
t1.TIMESTAMP,
t1.HOUR,
t1.DEVICE,
t1.READING,
t1.VALUE,
if(\@diff = 0,NULL, \@temp:=cast((t1.VALUE-\@diff) AS DECIMAL(6,2))) AS DIFF,
cast((t1.VALUE/(t1.VALUE+(-1*\@temp))*\@corr) AS DECIMAL(2,1)) AS FACTOR,
\@diff:=t1.VALUE AS curr_V
FROM (
SELECT
TIMESTAMP,
date(TIMESTAMP) AS DATE,
hour(TIMESTAMP) AS HOUR,
DEVICE,
READING,
VALUE
FROM history
WHERE DEVICE = \@device
AND (READING = \@reading1 OR READING = \@reading2)
AND TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL \@days DAY)
AND TIMESTAMP <= CURDATE()
AND MINUTE(TIMESTAMP) = 0
AND VALUE >= 0
GROUP BY DATE,HOUR,READING
)t1
)tx
WHERE
READING != \@reading2
)t2
GROUP BY t2.HOUR
)t3
WHERE
t3.VALUE != 0
ON DUPLICATE KEY UPDATE
VALUE=t3.VALUE;
") # Ende sprintf()
); # Ende CommandSet()
SET @device='PV_1';
SET @reading1='Total_DC_Power_(sumOfAllPVInputs)';
SET @reading2='Solar_Calculation_fc0';
SET @readingname='Solar_Correction_Faktor_auto';
DELETE FROM history WHERE DEVICE=@device AND READING=@readingname AND TIMESTAMP >= CURDATE();
SET @diff=0;SET @temp=0;
INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE)
SELECT TIMESTAMP,DEVICE,READING,VALUE
FROM (
SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,
t2.DEVICE,
@readingname AS READING,
cast(if(avg(t2.FACTOR) > 1.6, 1,
avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE
FROM
(
SELECT t1.TIMESTAMP,
t1.HOUR,
t1.DEVICE,
t1.READING,
t1.VALUE,
if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,
cast((t1.VALUE/(t1.VALUE+(-1*@temp))*0.5) AS DECIMAL(2,1)) AS FACTOR,
@diff:=t1.VALUE AS curr_V
FROM
(
SELECT TIMESTAMP,
date(TIMESTAMP) AS DATE,
hour(TIMESTAMP) AS HOUR,
DEVICE,
READING,
VALUE
FROM history
WHERE
DEVICE = @device AND
(READING = @reading1 OR
READING = @reading2) AND
TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL 30 DAY) AND
TIMESTAMP < CURDATE() AND
TIMESTAMP LIKE '%:00:%' AND
VALUE >= 0
GROUP BY DATE,HOUR,READING
)t1
WHERE
READING != @reading2 AND
VALUE != 0
)t2
GROUP BY t2.HOUR
)t3
WHERE
t3.VALUE != 0;
SELECT * FROM history WHERE DEVICE=@device AND READING=@readingname AND TIMESTAMP >= CURDATE();
+---------------------+--------+------+-------+------------+-------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+--------+------+-------+------------+-------+------+
| 2021-02-09 08:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.1 | NULL |
| 2021-02-09 09:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.0 | NULL |
| 2021-02-09 10:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.0 | NULL |
| 2021-02-09 11:00:00 | PV_1 | NULL | NULL | fc0_Factor | 1.0 | NULL |
| 2021-02-09 12:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.7 | NULL |
| 2021-02-09 13:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.5 | NULL |
| 2021-02-09 14:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.5 | NULL |
| 2021-02-09 15:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.4 | NULL |
| 2021-02-09 16:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.2 | NULL |
| 2021-02-09 17:00:00 | PV_1 | NULL | NULL | fc0_Factor | 0.1 | NULL |
+---------------------+--------+------+-------+------------+-------+------+
Internals:
CFGFN
DATABASE fhem
DEF LogDB
FUUID 6022bc3d-f33f-61a8-b1e2-254f5e37a3bd4fbd
FVERSION 93_DbRep.pm:v8.42.3-s23462/2021-01-03
LASTCMD sqlCmd SET @device='PV_1'; SET @reading1='Total_DC_Power_(sumOfAllPVInputs)'; SET @reading2='Solar_Calculation_fc0'; SET @readingname='fc0_Factor'; SET @diff=0;SET @temp=0; DELETE from history where DEVICE=@device AND READING=@readingname AND TIMESTAMP >= CURDATE(); INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*0.5) AS DECIMAL(2,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT TIMESTAMP, date(TIMESTAMP) AS DATE, hour(TIMESTAMP) AS HOUR, DEVICE, READING, VALUE FROM history WHERE DEVICE = @device AND (READING = @reading1 OR READING = @reading2) AND TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL 30 DAY) AND TIMESTAMP < CURDATE() AND TIMESTAMP LIKE '%:00:%' AND VALUE >= 0 GROUP BY DATE,HOUR,READING )t1 WHERE READING != @reading2 AND VALUE != 0 )t2 GROUP BY t2.HOUR )t3 WHERE t3.VALUE != 0; SELECT * from history where DEVICE=@device AND READING=@readingname AND TIMESTAMP >= CURDATE();
MODEL Client
NAME LogDBRep_insert_PV_Forecast_correction
NOTIFYDEV global,LogDBRep_insert_PV_Forecast_correction
NR 148652
NTFY_ORDER 50-LogDBRep_insert_PV_Forecast_correction
ROLE Client
STATE error
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS USAGE,ALL PRIVILEGES
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST
VERSION 8.42.3
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
LogDB:
TIME 1612889149.94504
VALUE initialized
OLDREADINGS:
READINGS:
2021-02-09 17:52:40 errortext DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,RE' at line 1 at ./FHEM/93_DbRep.pm line 6414.
2021-02-09 17:52:40 state error
Attributes:
DbLogExclude .*
allowDeletion 1
room System
{ DbReadingsVal("LogDBRep_select_PV_Forecast","PV_1:Solar_Correction_Faktor_auto","2021-02-10_09:00:00",1) }
select * FROM history WHERE DEVICE=@device AND READING='Solar_Correction_Faktor_auto' AND TIMESTAMP >= CURDATE();
+---------------------+--------+------+-------+------------------------------+-------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+--------+------+-------+------------------------------+-------+------+
| 2021-02-10 08:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.1 | NULL |
| 2021-02-10 09:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 1.5 | NULL |
| 2021-02-10 10:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 1.0 | NULL |
| 2021-02-10 11:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 1.0 | NULL |
| 2021-02-10 12:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.7 | NULL |
| 2021-02-10 13:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.5 | NULL |
| 2021-02-10 14:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.5 | NULL |
| 2021-02-10 15:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.4 | NULL |
| 2021-02-10 16:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.2 | NULL |
| 2021-02-10 17:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.1 | NULL |
+---------------------+--------+------+-------+------------------------------+-------+------+
10 rows in set (0.026 sec)
{ DbReadingsVal("LogDBRep_select_PV_Forecast","PV_1:Solar_Correction_Faktor_auto","2021-02-10_09:00:00",1) }
==> 1.5
MySQL [fhem]> delete FROM history WHERE DEVICE=@device AND READING='Solar_Correction_Faktor_auto' AND TIMESTAMP >= CURDATE();
Query OK, 10 rows affected (0.036 sec)
MySQL [fhem]> select * FROM history WHERE DEVICE=@device AND READING='Solar_Correction_Faktor_auto' AND TIMESTAMP >= CURDATE();
Empty set (0.021 sec)
{ DbReadingsVal("LogDBRep_select_PV_Forecast","PV_1:Solar_Correction_Faktor_auto","2021-02-10_09:00:00",1) }
==> 0.1
select * FROM history WHERE DEVICE=@device AND READING='Solar_Correction_Faktor_auto' AND TIMESTAMP >= '2021-02-09' and TIMESTAMP < '2021-02-10';
+---------------------+--------+------+-------+------------------------------+-------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+--------+------+-------+------------------------------+-------+------+
...snip...
| 2021-02-09 17:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.1 | NULL |
+---------------------+--------+------+-------+------------------------------+-------+------+
select value from (
( select *, TIMESTAMPDIFF(SECOND, '2021-02-10 09:00:00', timestamp) as diff from history
where device='PV_1' and reading='Solar_Correction_Faktor_auto' and timestamp >= '2021-02-10 09:00:00' order by timestamp asc limit 1
)
union
( select *, TIMESTAMPDIFF(SECOND, timestamp, '2021-02-10 09:00:00') as diff from history
where device='PV_1' and reading='Solar_Correction_Faktor_auto' and timestamp < '2021-02-10 09:00:00' order by timestamp desc limit 1
)
) x order by diff limit 1;
+-------+
| value |
+-------+
| 0.1 |
+-------+
select *, TIMESTAMPDIFF(SECOND, timestamp, '2021-02-10 09:00:00') as diff from history
where device='PV_1' and reading='Solar_Correction_Faktor_auto' and timestamp < '2021-02-10 09:00:00' order by timestamp desc limit 1 ;
+---------------------+--------+------+-------+------------------------------+-------+------+-------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT | diff |
+---------------------+--------+------+-------+------------------------------+-------+------+-------+
| 2021-02-09 17:00:00 | PV_1 | NULL | NULL | Solar_Correction_Faktor_auto | 0.1 | NULL | 57600 |
+---------------------+--------+------+-------+------------------------------+-------+------+-------+
ZitatWenn ein Eintrag nicht vorhanden ist, soll 1 als Default kommen, jedoch wird 0.1 geliefert.Dann gibt es wahrscheinlich noch einen Wert in der zeitlichen "Nähe".
$Solar_Correction_Faktor_auto = CommandGet(undef, $logdbrep." sqlCmdBlocking SELECT VALUE FROM history WHERE DEVICE='".$logdevice."' AND READING='Solar_Correction_Faktor_auto' AND TIMESTAMP='2021-02-16 12:00:00';") ;
if($Solar_Correction_Faktor_auto eq "") { $Solar_Correction_Faktor_auto = 1; };
Zitat von: DS_Starter am 15 Februar 2021, 20:42:20Das war mir schon bekannt und ich habe direkt mal nachgesehen. Der letzte Eintrag war am Vortag, ich versuche es morgen nochmal nachzustellen.
Dann gibt es wahrscheinlich noch einen Wert in der zeitlichen "Nähe".
Commandref sagt dazu:
(*) Es wird der zeitlich zu <timestamp> passendste Readingwert zurück geliefert, falls kein Wert exakt zu dem angegebenen Zeitpunkt geloggt wurde.
Zitat von: kobi1980 am 25 Februar 2021, 10:54:39Über eine Timer das DbRep aufrufen :-)
Wie kann man das nun einstellen, dass der die Berechnung jeden Tag macht und für dieses Datum einen Wert ablegt?
Ziel ist es, das für jeden Tag die Grünladtemperatur in die Datenbank geschrieben werden soll, damit ich auch ein Plot daraus erstellen kann. Also die Entwicklung der Werte visualisieren.
Zitat von: kobi1980 am 25 Februar 2021, 10:54:39
Mit dem manuellen Befehl set Rep.Temp.greenland writetodb werden n verschiedene Readings geschrieben, die ich aber nicht auswerten kann.
attr Rep.Temp.greenland device <Dein Device Name>
set Rep.Temp.greenland sqlSpecial recentReadingsOfDevice
Zitat von: kobi1980 am 25 Februar 2021, 12:54:26Beschreibe bitte mal, wo genau das Problem ist? Eventuell meldet sich dann noch jemand zu Wort :-)
hmm.. klappt so leider nicht
readingNameMap GTS
alt: 2021-02-25 11:46:35 2021-02-24__WEEWX__Aussentemperatur__AVGDMGWS__2021-02-24 13.5
neu: 2021-02-25__GTS__2021-02-25
ZitatWieso denkst du dass die GrasslandTemperatureSum nicht richtig ermittelt wird ?
@Heiko warum wird die GrasslandTemperatureSum nicht richtig ermittelt?
Zitat von: kobi1980 am 25 Februar 2021, 12:04:56
2021-02-25 11:46:35 2021-02-15__WEEWX__Aussentemperatur__GrasslandTemperatureSum 0.0
2021-02-25 11:46:35 2021-02-16__WEEWX__Aussentemperatur__GrasslandTemperatureSum 1.8
2021-02-25 11:46:35 2021-02-17__WEEWX__Aussentemperatur__GrasslandTemperatureSum 5.9
2021-02-25 11:46:35 2021-02-18__WEEWX__Aussentemperatur__GrasslandTemperatureSum 11.5
2021-02-25 11:46:35 2021-02-19__WEEWX__Aussentemperatur__GrasslandTemperatureSum 16.2
2021-02-25 11:46:35 2021-02-20__WEEWX__Aussentemperatur__GrasslandTemperatureSum 22.6
2021-02-25 11:46:35 2021-02-21__WEEWX__Aussentemperatur__GrasslandTemperatureSum 30.3
2021-02-25 11:46:35 2021-02-22__WEEWX__Aussentemperatur__GrasslandTemperatureSum 38.1
2021-02-25 11:46:35 2021-02-23__WEEWX__Aussentemperatur__GrasslandTemperatureSum 46.8
2021-02-25 11:46:35 2021-02-24__WEEWX__Aussentemperatur__GrasslandTemperatureSum 56.9
Attributes:
averageCalcForm avgDailyMeanGWSwithGTS
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device WEEWX
fastStart 1
reading Aussentemperatur
showproctime 1
timestamp_begin previous_week_begin
timestamp_end previous_day_end
verbose 3
Zitatbei mit wird die Grünlandtemperatursumme täglich immer nur größer und hat bei "0" angefangen:Ja, so soll es auch sein. ;)
Zitat
Die Grünlandtemperatursumme (GTS) ist eine Spezialform der Wachstumsgradtage, die in der Agrarmeteorologie verwendet wird. Sie wird herangezogen, um in Mitteleuropa den Termin für das Einsetzen der Feldarbeit nach dem Winter zu bestimmen.
Es werden ab Jahresbeginn alle positiven Tagesmittel erfasst. Im Januar wird mit dem Faktor 0,5 multipliziert, im Februar mit dem Faktor 0,75, und ab März geht dann der ,,volle" Tageswert (mal Faktor 1) in die Rechnung ein.
Wird im Frühjahr die Summe von 200 überschritten, ist der nachhaltige Vegetationsbeginn erreicht. Hintergrund ist die Stickstoffaufnahme und -verarbeitung des Bodens, welcher von dieser Temperatursumme abhängig ist. In mittleren Breiten wird das meist im Laufe des März, an der Wende von Vorfrühling zu Mittfrühling erreicht.
(siehe auch Grünlandtemperatursumme in Wikipedia)
Das kannst du auch nachlesen mit "get <> versionNotes 5" bzw. bei https://de.wikipedia.org/wiki/Gr%C3%BCnlandtemperatursumme.
Zitat von: DS_Starter am 25 Februar 2021, 18:03:52
writeToDb kann in diesem Fall nicht verwendet weren, da es nur ein Zusatz zu avgDailyMeanGWS ist. Aber auch dafür gibt es eine Lösung. Aber das im zweiten Schritt.
2021-02-21__MyWetter__temperature__GrasslandTemperatureSum 69.8
ZitatJa, das ist so gewollt. Der nächstliegende Wert soll geliefert werden. Der Standardwert wird zurück gegeben, wenn es keinen Wert der angefragten Device/Reading Kombination in der DB gibt.
1.) Die Abfrage eines definierten Wertes, wenn dieser nicht in der Datenbank ist.
Dann wird ein Werte in der Nähe geliefert, der aber auch sehr weit zurück liegt, anstatt der Default Wert, der beim Abruf mitgeliefert wurde.
ZitatJa das kann sein. Muss ich schauen. Die sqlCmdVars hatte ich vor nicht allzu langer Zeit eingebaut, vllt. hab ich es vergessen dort nachzuziehen.
2.) Bei Abruf mit sqlCmdBlocking hat sqlCmdVars keine Wirkung.
Zitat von: DS_Starter am 25 Februar 2021, 22:39:26Danke für die Rückmeldung.
Ja, das ist so gewollt. Der nächstliegende Wert soll geliefert werden. Der Standardwert wird zurück gegeben, wenn es keinen Wert der angefragten Device/Reading Kombination in der DB gibt.
$Solar_Correction_Faktor_auto = CommandGet(undef, $logdbrep." sqlCmdBlocking SELECT VALUE FROM history WHERE DEVICE='".$logdevice."' AND READING='Solar_Correction_Faktor_auto' AND TIMESTAMP='".sprintf("%4d-%02d-%02d %02d:00:00",$year,$mon,$mday,$i)."';") ;
if($Solar_Correction_Faktor_auto eq "") { $Solar_Correction_Faktor_auto = 1; }; ## hier wird der Default gesetzt, wenn nichts zurück kommt.
Zitat von: DS_Starter am 27 Februar 2021, 09:33:01
Hallo kobi, @all,
im Wiki (https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Gr.C3.BCnlandtemperatursumme_ermitteln_und_in_SVG-Grafik_darstellen) habe ich eine Beitrag erstellt wie man die ermittelte Grünlandtemperatursumme in die Datenbank zurückspeichert und daraus dann eine SVG-Grafik erstellt.
Das Verfahren kann natürlich für andere, ähnlich gelagerte Aufgabenstellungen adaptiert werden.
Zitat von: kobi1980 am 28 Februar 2021, 00:41:44Das ist nicht verrückt, der Heiko kann was :-)
verrückt.. vielen Dank, es funktioniert!
Zitat von: DS_Starter am 27 Februar 2021, 09:33:01Es hat funktioniert. Ich habe es nun eingebaut und würde mich bei Problemen melden.
@Christian,in meinem contrib liegt eine neue DbRep-Version zum Testen. Das sqlCmdBlocking sollte nun ebenfalls das Attr sqlCmdVars berücksichtigen.Versuchs mal bitte.
ZitatDie sqlCmdHistory ist auch nur beim sqlCmd vorhanden. Würde das beim sqlCmdBlocking auch Sinn machen?Weiß nicht. sqlCmdBlocking ist eher für Ausführungen in einem Script gedacht und nicht für den Dialogbetrieb (wegen Blocking).
ZitatVersuch doch mal:
Mein SQL ist wie immer recht lang :-) könnte man das im sql[Cmd|CmdBlocking] eventuell mehrzeilig umbrechen?
attr <> widgetOverride sqlCmdBlocking:textField-long sqlCmd:textField-long
ZitatKann man beim sql[Cmd|CmdBlocking] auch kleine Skripte mit mehreren SQL Kommandos verarbeiten?Momentan dürfte es nicht gehen, aber wäre einbaubar.
Zitat von: DS_Starter am 28 Februar 2021, 10:39:16Das leuchtet ein, man könnte dann jedoch sehen, was als letztes so alles aufgerufen wurde und für Tests dieses dann wiederholen.
Weiß nicht. sqlCmdBlocking ist eher für Ausführungen in einem Script gedacht und nicht für den Dialogbetrieb (wegen Blocking).
ZitatJetzt ist es schon zum sqlCmdBlocking gerutscht :-) :-)
Versuch doch mal:Code Auswählen
attr <> widgetOverride sqlCmdBlocking:textField-long sqlCmd:textField-long
2021.02.27 14:00:00.120 3: DbRep LogDBRep_PV_Forecast_SQL - WARNING - old process 31994 will be killed now to start a new BlockingCall
2021.02.27 14:00:00.121 1: DbRep LogDBRep_PV_Forecast_SQL -> BlockingCall pid: Timeout: process terminated
2021.02.27 14:00:00.136 2: DbRep LogDBRep_PV_Forecast_SQL - Database command aborted due to "Timeout: process terminated"
2021.02.27 14:00:01.460 3: DbRep LogDBRep_PV_Forecast_SQL - Number of entries processed in db fhem: 11 by INSERT
Zitat von: DS_Starter am 28 Februar 2021, 11:58:28Okay, ich habe es behoben, danke.
Die Meldungen sind nicht so gut.
Es bedeutet folgendes. Du startest eine Aktivität und während die läuft (und noch nicht fertig ist) startest du mit dem gleichen Device wieder eine neue Aktion. Das Device bricht daraufhin seine laufende Aktivität ab was zu der Meldung führt "WARNING - old process 31994 will be killed now to start a new BlockingCall".
Da solltest du mal schauen wieso diese Überschneidungen auftreten und ggf. die Abläufe ändern oder verschiedene DbReps nutzen wenn möglich.
ZitatIch hatte ein sqlCmd abgesetzt und etwas später ein sqlCmdBlocking.Ah das ist interessant. Gut dass du das erwähnst. Diese beiden Kommandos können parallel laufen.
Zitat von: DS_Starter am 28 Februar 2021, 16:57:37Das sqlCmd war ein "DELETE" und das zweite ein "INSERT", die DB läuft mit cache.
ich habe mal den Code gecheckt und auch ausprobiert. Auch jetzt schon sind sqlCmd und sqlCmdBlocking voneinander entkoppelt.
D.h. die von dir erwähnten Meldungen müssen einen anderen Zusammenhang haben.
set RP.T.Aussen.MinMax averageValue writeTODBSingle
und habe den jeweiligen Tageswert sauber als Event "calculated" in der Datenbank.ZitatDas hat programmtechnische Ursachen. Die Berechnung des GTS über die CalcForm avgDailyMeanGWSwithGTS ist lediglich eine "Erweiterung" von avgDailyMeanGWS. Die Berechnung habe ich wegen eines Userwunsches später "aufgepfropft".
Mir ist es jedenfalls nicht gelungen, die Werte mit writeTODB oder writeTODBSingle in die Datenbank zu bekommen - über die userEXITFn geht es zwar, ist aber für mich verwirrend.
Zitat von: DS_Starter am 12 März 2021, 12:46:073 wäre ne gute Vorbereitung für 1 :-)
1. in der DB einen primarary Key anlegen. Der verhindert generell doppelte Datensätze. Im Nachhinein nicht einfach zu implementieren, deswegen eher für Neuanfang
2. Im DbLog das Attr valueFn benutzen und mit einer kleinen Perl-Routine nur den Wert des aktuellen Tages durchlassen (Stichwort $IGNORE)
3. einfach ein DbRep device benutzen und mit delDoublets regelmäßig evtl. doppelt vorkommende Datensätze löschen
Zitat von: ch.eick am 12 März 2021, 13:36:23Das habe ich beim Einlesen und Umsetzen auch gemerkt :-) und vermutlich war das auch der Hintersinn "Im Nachhinein nicht so einfach..."
3 wäre ne gute Vorbereitung für 1 :-)
defmod LogDBRep_delete_Statistic_Day_max_Day DbRep DBLogging
attr LogDBRep_delete_Statistic_Day_max_Day DbLogExclude .*
attr LogDBRep_delete_Statistic_Day_max_Day aggregation day
attr LogDBRep_delete_Statistic_Day_max_Day allowDeletion 1
attr LogDBRep_delete_Statistic_Day_max_Day device WR_Plenticore_API
attr LogDBRep_delete_Statistic_Day_max_Day group Delete_neu
attr LogDBRep_delete_Statistic_Day_max_Day reading *._Day
attr LogDBRep_delete_Statistic_Day_max_Day room Log
attr LogDBRep_delete_Statistic_Day_max_Day timestamp_begin previous_year_begin
attr LogDBRep_delete_Statistic_Day_max_Day timestamp_end previous_day_end
attr LogDBRep_delete_Statistic_Day_max_Day reading Statistic_Autarky_Day,Statistic_CO2Saving_Day,Statistic_EnergyChargeGrid_Day,Statistic_EnergyChargeInvIn_Day,Statistic_EnergyChargePv_Day,Statistic_EnergyDischargeGrid_Day,Statistic_EnergyDischarge_Day,Statistic_EnergyFeedInGrid_Day,Statistic_EnergyHomeBat_Day,Statistic_EnergyHomeGrid_Day,Statistic_EnergyHomePvSum_Day,Statistic_EnergyHomePv_Day,Statistic_EnergyHome_Day,Statistic_EnergyPv1_Day,Statistic_EnergyPv2_Day,Statistic_EnergyPv3_Day,Statistic_OwnConsumptionRate_Day,Statistic_TotalConsumption_Day,Statistic_Yield_Day,Statistic_Yield_NoBat_Day,
ZitatJa, maxValue betrachtet alle Datensätze die sich aus dem Einschluß/Ausschlauß des Attr reading ergeben und ermittelt aus all diesen Werten den max. Wert.
Das Resultat davon war, dass er gesamthaft nur ein Reading, welches auf *._Day geendet hat, behalten wurde.
Zitat von: DS_Starter am 27 März 2021, 12:17:10Ich könnte ja mal wieder ein SQL zusammenbauen :-)
Ja, maxValue betrachtet alle Datensätze die sich aus dem Einschluß/Ausschlauß des Attr reading ergeben und ermittelt aus all diesen Werten den max. Wert.
Du könntest in einem Script (at, DOIF,...) vor dem maxValue Lauf jeweils das Attr auf das gewünschte Reading setzen und nach Abschluß des Laufs die nächste Bereinigung starten. Ist nicht sehr schön.
Alternativ kopierst du deine DbRep-Definition x-mal und passt jeweils das Attr reading an. Je nach RAM Verfügbarkeit kannst du das maxValue mit einem Rutsch per at,DOIF etc. starten.
Weitere Möglichkeit wäre ein zugeschnittenes SQL zu entwerfen und per sqlCmd laufen zu lassen. Da muss man aber erstmal drüber nachdenken. :)
ZitatIch könnte ja mal wieder ein SQL zusammenbauen :-)Aber gerne doch Christian. :)
"wget -qO ./FHEM/93_DbLog.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbLog.pm"
Zitat von: DS_Starter am 29 März 2021, 22:46:10Da isser schon :-)
Aber gerne doch Christian. :)
===================
Hier definiert man ab welchem Tag es los geht und wieviel Tage bearbeitet werden sollen.
Die Einstellung gilt dann für die gesamte Session!
SET @device:='WR_1_API',@days:=1,@startdate:='2021-03-01';
===================
Dann das SELECT für den ersten Test, es wird alles angezeigt, was erhalten bleibt.
SELECT x1.TIMESTAMP,x1.DEVICE,x1.READING,x1.VALUE
FROM (SELECT max(TIMESTAMP) AS TIMESTAMP,
date(TIMESTAMP) AS DATE,
DEVICE,
READING,
max(cast(VALUE AS DECIMAL(6,2))) AS VALUE
FROM history
WHERE DEVICE = @device
AND READING IN ('Statistic_EnergyHomeBat_Day','Statistic_EnergyHomeGrid_Day','Statistic_EnergyHomePvSum_Day','Statistic_EnergyHome_Day','Statistic_TotalConsumption_Day')
AND TIMESTAMP > @startdate
AND TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY)
GROUP BY READING,DATE
) x1
===================
Jetzt kann man noch die Liste der zu löschenden Einträge sehen und diese bitte mal mit einem anderen SELECT vergleichen.
SELECT
t1.TIMESTAMP,
t1.DEVICE,
t1.READING,
t1.VALUE
FROM history t1
INNER JOIN
(
SELECT x1.TIMESTAMP,x1.DEVICE,x1.READING,x1.VALUE
FROM (SELECT
max(TIMESTAMP) AS TIMESTAMP,
date(TIMESTAMP) AS DATE,
DEVICE,
READING,
max(cast(VALUE AS DECIMAL(6,2))) AS VALUE
FROM history
WHERE DEVICE = @device
AND READING IN ('Statistic_EnergyHomeBat_Day','Statistic_EnergyHomeGrid_Day','Statistic_EnergyHomePvSum_Day','Statistic_EnergyHome_Day','Statistic_TotalConsumption_Day')
AND TIMESTAMP > @startdate
AND TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY)
GROUP BY READING,DATE
) x1
) x2
ON x2.TIMESTAMP != t1.TIMESTAMP
AND x2.DEVICE = t1.DEVICE
AND x2.READING = t1.READING
WHERE
t1.DEVICE = @device
AND t1.READING = x2.READING
AND t1.TIMESTAMP > @startdate
AND t1.TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY)
ORDER BY READING,TIMESTAMP;
===================
Wer mutig ist kann dann mal so löschen
DELETE t1
FROM history t1
INNER JOIN
(
SELECT x1.TIMESTAMP,x1.DEVICE,x1.READING,x1.VALUE
FROM (SELECT
max(TIMESTAMP) AS TIMESTAMP,
date(TIMESTAMP) AS DATE,
DEVICE,
READING,
max(cast(VALUE AS DECIMAL(6,2))) AS VALUE
FROM history
WHERE DEVICE = @device
AND READING IN ('Statistic_EnergyHomeBat_Day','Statistic_EnergyHomeGrid_Day','Statistic_EnergyHomePvSum_Day','Statistic_EnergyHome_Day','Statistic_TotalConsumption_Day')
AND TIMESTAMP > @startdate
AND TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY)
GROUP BY READING,DATE
) x1
) x2
ON x2.TIMESTAMP != t1.TIMESTAMP
AND x2.DEVICE = t1.DEVICE
AND x2.READING = t1.READING
WHERE
t1.DEVICE = @device
AND t1.READING = x2.READING
AND t1.TIMESTAMP > @startdate
AND t1.TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY)
;
===================
Und zum Schluss nochmal nachschauen...
SELECT x1.TIMESTAMP,x1.DEVICE,x1.READING,x1.VALUE
FROM (SELECT max(TIMESTAMP) AS TIMESTAMP,
date(TIMESTAMP) AS DATE,
DEVICE,
READING,
max(cast(VALUE AS DECIMAL(6,2))) AS VALUE
FROM history
WHERE DEVICE = @device
AND READING IN ('Statistic_EnergyHomeBat_Day','Statistic_EnergyHomeGrid_Day','Statistic_EnergyHomePvSum_Day','Statistic_EnergyHome_Day','Statistic_TotalConsumption_Day')
AND TIMESTAMP > @startdate
AND TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY)
GROUP BY READING,DATE
) x1;
===================
Oder auch gerne so...
SELECT TIMESTAMP,DEVICE,READING,VALUE
FROM history
WHERE DEVICE = @device
AND READING IN ('Statistic_EnergyHomeBat_Day','Statistic_EnergyHomeGrid_Day','Statistic_EnergyHomePvSum_Day','Statistic_EnergyHome_Day','Statistic_TotalConsumption_Day')
AND TIMESTAMP > @startdate
AND TIMESTAMP < DATE_ADD(@startdate,INTERVAL @days DAY);
2021.05.17 22:56:25.795 3: DbRep DBRep_Tst - ################################################################
2021.05.17 22:56:25.796 3: DbRep DBRep_Tst - ### new reduceLog run ###
2021.05.17 22:56:25.797 3: DbRep DBRep_Tst - ################################################################
2021.05.17 22:56:25.802 4: DbRep DBRep_Tst - -------- New selection ---------
2021.05.17 22:56:25.803 4: DbRep DBRep_Tst - Command: reduceLog
2021.05.17 22:56:25.806 4: DbRep DBRep_Tst - timeDiffToNow - year: , day: 48, hour: , min: , sec:
2021.05.17 22:56:25.807 4: DbRep DBRep_Tst - startMonth: 2 endMonth: 4 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:1
2021.05.17 22:56:25.807 4: DbRep DBRep_Tst - timeOlderThan - year: 0, day: 18, hour: 0, min: 0, sec: 0
2021.05.17 22:56:25.808 4: DbRep DBRep_Tst - startMonth: 2 endMonth: 3 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:1
2021.05.17 22:56:25.809 4: DbRep DBRep_Tst - FullDay option: 0
2021.05.17 22:56:25.810 4: DbRep DBRep_Tst - Time difference to current time for calculating Timestamp begin: 4147201 sec
2021.05.17 22:56:25.810 5: DbRep DBRep_Tst - Timestamp begin epocheseconds: 1617137784.8102
2021.05.17 22:56:25.811 4: DbRep DBRep_Tst - Timestamp begin human readable: 2021-03-30 22:56:24
2021.05.17 22:56:25.811 5: DbRep DBRep_Tst - Timestamp end epocheseconds: 1619729784.8117
2021.05.17 22:56:25.812 4: DbRep DBRep_Tst - Timestamp end human readable: 2021-04-29 22:56:24
2021.05.17 22:56:25.813 5: DbRep DBRep_Tst - weekday start for selection: Di -> wdadd: 518400
2021.05.17 22:56:25.980 5: DbRep DBRep_Tst -> Start DbLog_reduceLog
2021.05.17 22:56:25.999 5: DbRep DBRep_Tst - Devices for operation -
included (1): %
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 22:56:26.000 5: DbRep DBRep_Tst - Readings for operation -
included (1): %
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 22:56:26.001 5: DbRep DBRep_Tst - IsTimeSet: 1, IsAggrSet: 0
2021.05.17 22:56:26.002 4: DbRep DBRep_Tst - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history WHERE DEVICE like 'Jet' AND READING like 'E10' AND TIMESTAMP <= '2021-04-29 22:56:24' AND TIMESTAMP >= '2021-03-30 22:56:24' ORDER BY TIMESTAMP ASC
2021.05.17 22:56:26.002 3: DbRep DBRep_Tst - reduce data older than: 2021-04-29 22:56:24, newer than: 2021-03-30 22:56:24
2021.05.17 22:56:26.002 3: DbRep DBRep_Tst - reduceLog requested with options: AVERAGE=DAY, INCLUDE=Jet:E10
2021.05.17 22:56:26.038 3: DbRep DBRep_Tst - reduceLog deleting 11 records of day: 2021-03-31
2021.05.17 22:56:26.040 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 06:52:10) AND (VALUE=151.9)
2021.05.17 22:56:26.042 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 08:37:10) AND (VALUE=146.9)
2021.05.17 22:56:26.044 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 09:28:10) AND (VALUE=147.9)
2021.05.17 22:56:26.046 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 10:39:12) AND (VALUE=145.9)
2021.05.17 22:56:26.048 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 12:29:13) AND (VALUE=148.9)
2021.05.17 22:56:26.050 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:13:13) AND (VALUE=144.9)
2021.05.17 22:56:26.052 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:19:13) AND (VALUE=143.9)
2021.05.17 22:56:26.054 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 15:29:14) AND (VALUE=147.9)
2021.05.17 22:56:26.056 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:44:14) AND (VALUE=145.9)
2021.05.17 22:56:26.058 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:53:14) AND (VALUE=143.9)
2021.05.17 22:56:26.060 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 19:27:14) AND (VALUE=146.9)
2021.05.17 22:56:26.068 3: DbRep DBRep_Tst - reduceLog (hourly-average) updating 9 records of day: 2021-03-31
2021.05.17 22:56:26.069 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 06:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 06:01:09 AND VALUE=146.9
2021.05.17 22:56:26.073 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 08:30:00, EVENT='rl_av_h', VALUE=147.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 08:25:10 AND VALUE=147.9
2021.05.17 22:56:26.075 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 09:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 09:08:10 AND VALUE=143.9
2021.05.17 22:56:26.078 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 10:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 10:28:12 AND VALUE=147.9
2021.05.17 22:56:26.081 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 12:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 12:13:13 AND VALUE=144.9
2021.05.17 22:56:26.084 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 14:30:00, EVENT='rl_av_h', VALUE=145.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 14:03:13 AND VALUE=146.9
2021.05.17 22:56:26.087 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 15:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 15:19:14 AND VALUE=143.9
2021.05.17 22:56:26.089 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 16:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 16:29:14 AND VALUE=147.9
2021.05.17 22:56:26.092 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 19:30:00, EVENT='rl_av_h', VALUE=145.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 19:20:14 AND VALUE=143.9
...
2021.05.17 22:56:27.815 3: DbRep DBRep_Tst - reduceLog deleting 13 records of day: 2021-04-29
2021.05.17 22:56:27.817 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 06:52:26) AND (VALUE=151.9)
2021.05.17 22:56:27.819 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 08:24:27) AND (VALUE=144.9)
2021.05.17 22:56:27.821 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 09:27:28) AND (VALUE=149.9)
2021.05.17 22:56:27.823 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 10:39:29) AND (VALUE=148.9)
2021.05.17 22:56:27.826 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 11:20:29) AND (VALUE=144.9)
2021.05.17 22:56:27.828 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 12:28:30) AND (VALUE=148.9)
2021.05.17 22:56:27.830 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 13:40:31) AND (VALUE=147.9)
2021.05.17 22:56:27.832 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 14:10:31) AND (VALUE=143.9)
2021.05.17 22:56:27.834 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 15:28:32) AND (VALUE=147.9)
2021.05.17 22:56:27.836 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 16:53:33) AND (VALUE=145.9)
2021.05.17 22:56:27.838 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 17:28:33) AND (VALUE=145.9)
2021.05.17 22:56:27.840 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 18:34:34) AND (VALUE=140.9)
2021.05.17 22:56:27.842 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-29 18:49:34) AND (VALUE=139.9)
2021.05.17 22:56:27.850 3: DbRep DBRep_Tst - reduceLog (hourly-average) updating 12 records of day: 2021-04-29
2021.05.17 22:56:27.851 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 06:30:00, EVENT='rl_av_h', VALUE=150.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 06:18:25 AND VALUE=148.9
2021.05.17 22:56:27.854 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 08:30:00, EVENT='rl_av_h', VALUE=147.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 08:10:27 AND VALUE=149.9
2021.05.17 22:56:27.857 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 09:30:00, EVENT='rl_av_h', VALUE=147.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 09:24:28 AND VALUE=144.9
2021.05.17 22:56:27.859 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 10:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 10:27:28 AND VALUE=149.9
2021.05.17 22:56:27.862 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 11:30:00, EVENT='rl_av_h', VALUE=146.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 11:17:29 AND VALUE=147.9
2021.05.17 22:56:27.865 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 12:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 12:20:30 AND VALUE=144.9
2021.05.17 22:56:27.868 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 13:30:00, EVENT='rl_av_h', VALUE=148.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 13:28:31 AND VALUE=148.9
2021.05.17 22:56:27.871 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 14:30:00, EVENT='rl_av_h', VALUE=144.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 14:04:31 AND VALUE=145.9
2021.05.17 22:56:27.874 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 15:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 15:10:32 AND VALUE=143.9
2021.05.17 22:56:27.876 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 16:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 16:28:32 AND VALUE=147.9
2021.05.17 22:56:27.879 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 17:30:00, EVENT='rl_av_h', VALUE=144.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 17:04:33 AND VALUE=143.9
2021.05.17 22:56:27.882 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-04-29 18:30:00, EVENT='rl_av_h', VALUE=140.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-29 18:19:34 AND VALUE=141.9
2021.05.17 22:56:27.891 3: DbRep DBRep_Tst - reduceLog finished. Rows processed: 998, deleted: 277, updated: 245
2021.05.17 22:56:27.892 5: DbRep DBRep_Tst -> DbRep_reduceLogNbl finished
2021.05.17 23:14:33.911 3: DbRep DBRep_Tst - ################################################################
2021.05.17 23:14:33.911 3: DbRep DBRep_Tst - ### new reduceLog run ###
2021.05.17 23:14:33.912 3: DbRep DBRep_Tst - ################################################################
2021.05.17 23:14:33.916 4: DbRep DBRep_Tst - -------- New selection ---------
2021.05.17 23:14:33.916 4: DbRep DBRep_Tst - Command: reduceLog
2021.05.17 23:14:33.919 4: DbRep DBRep_Tst - timeDiffToNow - year: , day: 48, hour: , min: , sec:
2021.05.17 23:14:33.920 4: DbRep DBRep_Tst - startMonth: 2 endMonth: 4 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:1
2021.05.17 23:14:33.921 4: DbRep DBRep_Tst - timeOlderThan - year: 0, day: 18, hour: 0, min: 0, sec: 0
2021.05.17 23:14:33.922 4: DbRep DBRep_Tst - startMonth: 2 endMonth: 3 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:1
2021.05.17 23:14:33.922 4: DbRep DBRep_Tst - FullDay option: 0
2021.05.17 23:14:33.923 4: DbRep DBRep_Tst - Time difference to current time for calculating Timestamp begin: 4147201 sec
2021.05.17 23:14:33.923 5: DbRep DBRep_Tst - Timestamp begin epocheseconds: 1617138872.9233
2021.05.17 23:14:33.924 4: DbRep DBRep_Tst - Timestamp begin human readable: 2021-03-30 23:14:32
2021.05.17 23:14:33.924 4: DbRep DBRep_Tst - Time difference to current time for calculating Timestamp end: 1555201 sec
2021.05.17 23:14:33.925 5: DbRep DBRep_Tst - Timestamp end epocheseconds: 1619730872.92465
2021.05.17 23:14:33.925 4: DbRep DBRep_Tst - Timestamp end human readable: 2021-04-29 23:14:32
2021.05.17 23:14:33.926 5: DbRep DBRep_Tst - weekday start for selection: Di -> wdadd: 518400
2021.05.17 23:14:34.144 5: DbRep DBRep_Tst -> Start DbLog_reduceLog
2021.05.17 23:14:34.153 5: DbRep DBRep_Tst - Devices for operation -
included (1): Jet
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:14:34.154 5: DbRep DBRep_Tst - Readings for operation -
included (1): E10
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:14:34.155 5: DbRep DBRep_Tst - IsTimeSet: 1, IsAggrSet: 0
2021.05.17 23:14:34.156 5: DbRep DBRep_Tst - Devices for operation -
included (1): Jet
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:14:34.157 5: DbRep DBRep_Tst - Readings for operation -
included (1): E10
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:14:34.158 4: DbRep DBRep_Tst - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history where ( DEVICE = 'Jet' ) AND ( READING = 'E10' ) AND TIMESTAMP >= '2021-03-30 23:14:32' AND TIMESTAMP <= '2021-04-29 23:14:32' ORDER BY TIMESTAMP ASC;
2021.05.17 23:14:34.158 3: DbRep DBRep_Tst - reduce data older than: 2021-04-29 23:14:32, newer than: 2021-03-30 23:14:32
2021.05.17 23:14:34.158 3: DbRep DBRep_Tst - reduceLog requested with options: AVERAGE=DAY INCLUDE -> Devs: Jet Readings: E10
2021.05.17 23:14:34.225 3: DbRep DBRep_Tst - reduceLog deleting 11 records of day: 2021-03-31
2021.05.17 23:14:34.227 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 06:52:10) AND (VALUE=151.9)
2021.05.17 23:14:34.229 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 08:37:10) AND (VALUE=146.9)
2021.05.17 23:14:34.232 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 09:28:10) AND (VALUE=147.9)
2021.05.17 23:14:34.234 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 10:39:12) AND (VALUE=145.9)
2021.05.17 23:14:34.236 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 12:29:13) AND (VALUE=148.9)
2021.05.17 23:14:34.238 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:13:13) AND (VALUE=144.9)
2021.05.17 23:14:34.240 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:19:13) AND (VALUE=143.9)
2021.05.17 23:14:34.242 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 15:29:14) AND (VALUE=147.9)
2021.05.17 23:14:34.244 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:44:14) AND (VALUE=145.9)
2021.05.17 23:14:34.246 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:53:14) AND (VALUE=143.9)
2021.05.17 23:14:34.248 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 19:27:14) AND (VALUE=146.9)
2021.05.17 23:14:34.259 3: DbRep DBRep_Tst - reduceLog (hourly-average) updating 9 records of day: 2021-03-31
2021.05.17 23:14:34.260 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 06:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 06:01:09 AND VALUE=146.9
2021.05.17 23:14:34.263 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 08:30:00, EVENT='rl_av_h', VALUE=147.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 08:25:10 AND VALUE=147.9
2021.05.17 23:14:34.266 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 09:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 09:08:10 AND VALUE=143.9
2021.05.17 23:14:34.269 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 10:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 10:28:12 AND VALUE=147.9
2021.05.17 23:14:34.271 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 12:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 12:13:13 AND VALUE=144.9
2021.05.17 23:14:34.274 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 14:30:00, EVENT='rl_av_h', VALUE=145.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 14:03:13 AND VALUE=146.9
2021.05.17 23:14:34.277 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 15:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 15:19:14 AND VALUE=143.9
2021.05.17 23:14:34.280 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 16:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 16:29:14 AND VALUE=147.9
2021.05.17 23:14:34.283 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 19:30:00, EVENT='rl_av_h', VALUE=145.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 19:20:14 AND VALUE=143.9
2021.05.17 23:14:34.295 3: DbRep DBRep_Tst - reduceLog deleting 6 records of day: 2021-04-01
2021.05.17 23:14:34.296 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-01 06:53:22) AND (VALUE=151.9)
2021.05.17 23:14:34.299 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-01 09:28:24) AND (VALUE=151.9)
2021.05.17 23:23:31.731 3: DbRep DBRep_Tst - ################################################################
2021.05.17 23:23:31.731 3: DbRep DBRep_Tst - ### new reduceLog run ###
2021.05.17 23:23:31.732 3: DbRep DBRep_Tst - ################################################################
2021.05.17 23:23:31.737 4: DbRep DBRep_Tst - -------- New selection ---------
2021.05.17 23:23:31.738 4: DbRep DBRep_Tst - Command: reduceLog
2021.05.17 23:23:31.741 4: DbRep DBRep_Tst - FullDay option: 0
2021.05.17 23:23:31.742 5: DbRep DBRep_Tst - Timestamp begin epocheseconds: 1617134400
2021.05.17 23:23:31.743 4: DbRep DBRep_Tst - Timestamp begin human readable: 2021-03-30 22:00:00
2021.05.17 23:23:31.743 5: DbRep DBRep_Tst - Timestamp end epocheseconds: 1619640000
2021.05.17 23:23:31.744 4: DbRep DBRep_Tst - Timestamp end human readable: 2021-04-28 22:00:00
2021.05.17 23:23:31.745 5: DbRep DBRep_Tst - weekday start for selection: Di -> wdadd: 518400
2021.05.17 23:23:31.822 5: DbRep DBRep_Tst -> Start DbLog_reduceLog
2021.05.17 23:23:31.833 5: DbRep DBRep_Tst - Devices for operation -
included (1): Jet
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:23:31.834 5: DbRep DBRep_Tst - Readings for operation -
included (1): E10
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:23:31.836 5: DbRep DBRep_Tst - IsTimeSet: 1, IsAggrSet: 0
2021.05.17 23:23:31.838 5: DbRep DBRep_Tst - Devices for operation -
included (1): Jet
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:23:31.838 5: DbRep DBRep_Tst - Readings for operation -
included (1): E10
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.17 23:23:31.839 4: DbRep DBRep_Tst - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history where ( DEVICE = 'Jet' ) AND ( READING = 'E10' ) AND TIMESTAMP >= '2021-03-30 22:00:00' AND TIMESTAMP <= '2021-04-28 22:00:00' ORDER BY TIMESTAMP ASC;
2021.05.17 23:23:31.840 3: DbRep DBRep_Tst - reduce data older than: 2021-04-28 22:00:00, newer than: 2021-03-30 22:00:00
2021.05.17 23:23:31.841 3: DbRep DBRep_Tst - reduceLog requested with options: AVERAGE=DAY INCLUDE -> Devs: Jet Readings: E10
2021.05.17 23:23:31.908 3: DbRep DBRep_Tst - reduceLog deleting 11 records of day: 2021-03-31
2021.05.17 23:23:31.909 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 06:52:10) AND (VALUE=151.9)
2021.05.17 23:23:31.912 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 08:37:10) AND (VALUE=146.9)
2021.05.17 23:23:31.915 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 09:28:10) AND (VALUE=147.9)
2021.05.17 23:23:31.917 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 10:39:12) AND (VALUE=145.9)
2021.05.17 23:23:31.920 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 12:29:13) AND (VALUE=148.9)
2021.05.17 23:23:31.922 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:13:13) AND (VALUE=144.9)
2021.05.17 23:23:31.925 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:19:13) AND (VALUE=143.9)
2021.05.17 23:23:31.927 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 15:29:14) AND (VALUE=147.9)
2021.05.17 23:23:31.930 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:44:14) AND (VALUE=145.9)
2021.05.17 23:23:31.933 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:53:14) AND (VALUE=143.9)
2021.05.17 23:23:31.935 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 19:27:14) AND (VALUE=146.9)
2021.05.17 23:23:31.945 3: DbRep DBRep_Tst - reduceLog (hourly-average) updating 9 records of day: 2021-03-31
2021.05.17 23:23:31.947 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 06:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 06:01:09 AND VALUE=146.9
2021.05.17 23:23:31.950 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 08:30:00, EVENT='rl_av_h', VALUE=147.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 08:25:10 AND VALUE=147.9
2021.05.17 23:23:31.953 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 09:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 09:08:10 AND VALUE=143.9
2021.05.17 23:23:31.957 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 10:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 10:28:12 AND VALUE=147.9
2021.05.17 23:23:31.960 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 12:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 12:13:13 AND VALUE=144.9
2021.05.17 23:23:31.963 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 14:30:00, EVENT='rl_av_h', VALUE=145.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 14:03:13 AND VALUE=146.9
2021.05.17 23:23:31.966 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 15:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 15:19:14 AND VALUE=143.9
2021.05.17 23:23:31.968 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 16:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 16:29:14 AND VALUE=147.9
2021.05.17 23:23:31.972 4: DbRep DBRep_Tst - UPDATE history SET TIMESTAMP=2021-03-31 19:30:00, EVENT='rl_av_h', VALUE=145.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-31 19:20:14 AND VALUE=143.9
2021.05.17 23:23:31.984 3: DbRep DBRep_Tst - reduceLog deleting 6 records of day: 2021-04-01
2021.05.17 23:23:31.986 4: DbRep DBRep_Tst - DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-01 06:53:22) AND (VALUE=151.9)
2021.05.21 00:25:57.304 3: DbRep DBRep_reduPower - ################################################################
2021.05.21 00:25:57.305 3: DbRep DBRep_reduPower - ### new reduceLog run ###
2021.05.21 00:25:57.305 3: DbRep DBRep_reduPower - ################################################################
2021.05.21 00:25:57.310 4: DbRep DBRep_reduPower - -------- New selection ---------
2021.05.21 00:25:57.311 4: DbRep DBRep_reduPower - Command: reduceLog
2021.05.21 00:25:57.314 4: DbRep DBRep_reduPower - timeDiffToNow - year: , day: 16, hour: , min: , sec:
2021.05.21 00:25:57.315 4: DbRep DBRep_reduPower - startMonth: 4 endMonth: 4 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:1
2021.05.21 00:25:57.315 4: DbRep DBRep_reduPower - timeOlderThan - year: 0, day: 10, hour: 0, min: 0, sec: 0
2021.05.21 00:25:57.317 4: DbRep DBRep_reduPower - startMonth: 1 endMonth: 4 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:1
2021.05.21 00:25:57.317 4: DbRep DBRep_reduPower - FullDay option: 1
2021.05.21 00:25:57.318 4: DbRep DBRep_reduPower - Time difference to current time for calculating Timestamp begin: 1382401 sec
2021.05.21 00:25:57.319 5: DbRep DBRep_reduPower - Timestamp begin epocheseconds: 1620165600
2021.05.21 00:25:57.319 4: DbRep DBRep_reduPower - Timestamp begin human readable: 2021-05-05 00:00:00
2021.05.21 00:25:57.320 4: DbRep DBRep_reduPower - Time difference to current time for calculating Timestamp end: 864001 sec
2021.05.21 00:25:57.321 5: DbRep DBRep_reduPower - Timestamp end epocheseconds: 1620770399
2021.05.21 00:25:57.321 4: DbRep DBRep_reduPower - Timestamp end human readable: 2021-05-11 23:59:59
2021.05.21 00:25:57.323 5: DbRep DBRep_reduPower - weekday start for selection: Mi -> wdadd: 432000
2021.05.21 00:25:57.541 5: DbRep DBRep_reduPower -> Start DbLog_reduceLog
2021.05.21 00:25:57.558 5: DbRep DBRep_reduPower - Devices for operation -
included (1): shelly_plug_s_df2674
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.21 00:25:57.559 5: DbRep DBRep_reduPower - Readings for operation -
included (1): power
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.21 00:25:57.560 5: DbRep DBRep_reduPower - IsTimeSet: 1, IsAggrSet: 0
2021.05.21 00:25:57.567 5: DbRep DBRep_reduPower - Devices for operation -
included (1): shelly_plug_s_df2674
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.21 00:25:57.567 5: DbRep DBRep_reduPower - Readings for operation -
included (1): power
included with wildcard:
excluded (0):
excluded with wildcard:
2021.05.21 00:25:57.568 4: DbRep DBRep_reduPower - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history where ( DEVICE = 'shelly_plug_s_df2674' ) AND ( READING = 'power' ) AND TIMESTAMP >= '2021-05-05 00:00:00' AND TIMESTAMP <= '2021-05-11 23:59:59' ORDER BY TIMESTAMP ASC;
2021.05.21 00:25:57.569 3: DbRep DBRep_reduPower - reduce data older than: 2021-05-11 23:59:59, newer than: 2021-05-05 00:00:00
2021.05.21 00:25:57.569 3: DbRep DBRep_reduPower - reduceLog requested with options: AVERAGE=HOUR INCLUDE -> Devs: shelly_plug_s_df2674 Readings: power
2021.05.21 00:25:57.764 3: DbRep DBRep_reduPower - reduceLog deleting 257 records of day: 2021-05-05
2021.05.21 00:25:57.766 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 06:51:24) AND (VALUE=1.12)
2021.05.21 00:25:57.768 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 06:56:24) AND (VALUE=0.98)
2021.05.21 00:25:57.771 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 07:07:25) AND (VALUE=2.68)
2021.05.21 00:25:57.773 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 07:12:25) AND (VALUE=3.16)
2021.05.21 00:25:57.775 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 07:17:01) AND (VALUE=4.14)
....
....
2021.05.21 00:25:58.314 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 20:24:33) AND (VALUE=0.74)
2021.05.21 00:25:58.316 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-05 20:29:33) AND (VALUE=0.69)
2021.05.21 00:25:58.344 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 15 records of day: 2021-05-05
2021.05.21 00:25:58.345 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 06:30:00, EVENT='rl_av_h', VALUE=0.860 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 06:48:32 AND VALUE=0.48
2021.05.21 00:25:58.370 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 07:30:00, EVENT='rl_av_h', VALUE=4.747 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 07:01:15 AND VALUE=2.13
2021.05.21 00:25:58.376 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 08:30:00, EVENT='rl_av_h', VALUE=22.860 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 08:00:09 AND VALUE=13.59
2021.05.21 00:25:58.382 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 09:30:00, EVENT='rl_av_h', VALUE=38.230 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 09:00:03 AND VALUE=3.21
2021.05.21 00:25:58.391 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 10:30:00, EVENT='rl_av_h', VALUE=68.501 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 10:01:49 AND VALUE=2.18
2021.05.21 00:25:58.394 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 11:30:00, EVENT='rl_av_h', VALUE=148.714 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 11:00:25 AND VALUE=189.43
2021.05.21 00:25:58.397 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 12:30:00, EVENT='rl_av_h', VALUE=131.599 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 12:00:51 AND VALUE=50.67
2021.05.21 00:25:58.400 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 13:30:00, EVENT='rl_av_h', VALUE=109.276 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 13:01:06 AND VALUE=186.15
2021.05.21 00:25:58.403 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 14:30:00, EVENT='rl_av_h', VALUE=71.703 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 14:00:06 AND VALUE=145.84
2021.05.21 00:25:58.406 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 15:30:00, EVENT='rl_av_h', VALUE=97.882 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 15:01:42 AND VALUE=59.22
2021.05.21 00:25:58.409 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 16:30:00, EVENT='rl_av_h', VALUE=86.004 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 16:00:37 AND VALUE=201.8
2021.05.21 00:25:58.412 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 17:30:00, EVENT='rl_av_h', VALUE=42.370 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 17:00:25 AND VALUE=23.62
2021.05.21 00:25:58.415 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 18:30:00, EVENT='rl_av_h', VALUE=26.491 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 18:01:03 AND VALUE=19.95
2021.05.21 00:25:58.417 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 19:30:00, EVENT='rl_av_h', VALUE=10.182 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 19:02:37 AND VALUE=13.67
2021.05.21 00:25:58.420 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-05 20:30:00, EVENT='rl_av_h', VALUE=1.510 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-05 20:03:09 AND VALUE=2.32
.......
.......
2021.05.21 00:26:01.697 3: DbRep DBRep_reduPower - reduceLog deleting 223 records of day: 2021-05-11
2021.05.21 00:26:01.698 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:08:11) AND (VALUE=0.49)
2021.05.21 00:26:01.701 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:11:14) AND (VALUE=1.87)
2021.05.21 00:26:01.703 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:14:23) AND (VALUE=3.92)
2021.05.21 00:26:01.706 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:19:23) AND (VALUE=4.47)
2021.05.21 00:26:01.708 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:22:36) AND (VALUE=7.48)
2021.05.21 00:26:01.710 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:27:36) AND (VALUE=8.23)
2021.05.21 00:26:01.712 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:31:18) AND (VALUE=9.62)
2021.05.21 00:26:01.714 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:37:56) AND (VALUE=8.38)
2021.05.21 00:26:01.716 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:40:14) AND (VALUE=4.29)
2021.05.21 00:26:01.718 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:46:15) AND (VALUE=3.82)
2021.05.21 00:26:01.720 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:49:36) AND (VALUE=5.5)
2021.05.21 00:26:01.723 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:52:06) AND (VALUE=8.97)
2021.05.21 00:26:01.725 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:54:56) AND (VALUE=11.25)
2021.05.21 00:26:01.727 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:57:26) AND (VALUE=17.72)
2021.05.21 00:26:01.729 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 07:59:35) AND (VALUE=21.09)
2021.05.21 00:26:01.731 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:03:44) AND (VALUE=18.87)
2021.05.21 00:26:01.733 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:07:03) AND (VALUE=20.07)
2021.05.21 00:26:01.735 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:09:41) AND (VALUE=19.05)
2021.05.21 00:26:01.737 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:12:29) AND (VALUE=14.55)
2021.05.21 00:26:01.739 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:15:23) AND (VALUE=12.35)
2021.05.21 00:26:01.741 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:18:21) AND (VALUE=8.69)
2021.05.21 00:26:01.743 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:21:45) AND (VALUE=6.59)
2021.05.21 00:26:01.746 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:26:45) AND (VALUE=6.51)
2021.05.21 00:26:01.748 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:31:45) AND (VALUE=6.31)
2021.05.21 00:26:01.750 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:33:51) AND (VALUE=7.61)
2021.05.21 00:26:01.752 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:37:47) AND (VALUE=8.58)
2021.05.21 00:26:01.754 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:42:15) AND (VALUE=6.46)
2021.05.21 00:26:01.756 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:44:17) AND (VALUE=7.59)
2021.05.21 00:26:01.758 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:49:17) AND (VALUE=8.68)
2021.05.21 00:26:01.760 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:54:17) AND (VALUE=9.57)
2021.05.21 00:26:01.762 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 08:57:14) AND (VALUE=10.82)
2021.05.21 00:26:01.765 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:02:57) AND (VALUE=16.3)
2021.05.21 00:26:01.767 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:08:00) AND (VALUE=18.44)
2021.05.21 00:26:01.769 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:13:00) AND (VALUE=18.19)
2021.05.21 00:26:01.771 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:15:42) AND (VALUE=19.54)
2021.05.21 00:26:01.773 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:18:54) AND (VALUE=23.05)
2021.05.21 00:26:01.775 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:20:57) AND (VALUE=21.63)
2021.05.21 00:26:01.777 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:22:57) AND (VALUE=17.52)
2021.05.21 00:26:01.779 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:24:57) AND (VALUE=19.23)
2021.05.21 00:26:01.781 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:28:05) AND (VALUE=19.27)
2021.05.21 00:26:01.784 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:31:20) AND (VALUE=19.42)
2021.05.21 00:26:01.786 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:33:24) AND (VALUE=16.06)
2021.05.21 00:26:01.788 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:36:05) AND (VALUE=17.19)
2021.05.21 00:26:01.790 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:38:30) AND (VALUE=18.36)
2021.05.21 00:26:01.792 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:40:33) AND (VALUE=22.23)
2021.05.21 00:26:01.794 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:42:59) AND (VALUE=25.12)
2021.05.21 00:26:01.796 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:45:00) AND (VALUE=17.41)
2021.05.21 00:26:01.798 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:47:02) AND (VALUE=21.12)
2021.05.21 00:26:01.800 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:49:24) AND (VALUE=17.33)
2021.05.21 00:26:01.803 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:52:24) AND (VALUE=14.12)
2021.05.21 00:26:01.805 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:54:59) AND (VALUE=18.61)
2021.05.21 00:26:01.807 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 09:58:32) AND (VALUE=23.14)
2021.05.21 00:26:01.809 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:03:03) AND (VALUE=38.75)
2021.05.21 00:26:01.811 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:05:44) AND (VALUE=42.9)
2021.05.21 00:26:01.813 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:07:47) AND (VALUE=31.38)
2021.05.21 00:26:01.815 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:09:47) AND (VALUE=22.6)
2021.05.21 00:26:01.817 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:12:14) AND (VALUE=20.51)
2021.05.21 00:26:01.820 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:14:23) AND (VALUE=25.84)
2021.05.21 00:26:01.822 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:16:45) AND (VALUE=30.75)
2021.05.21 00:26:01.824 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:18:48) AND (VALUE=20.89)
2021.05.21 00:26:01.826 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:21:02) AND (VALUE=16.81)
2021.05.21 00:26:01.828 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:23:11) AND (VALUE=25.51)
2021.05.21 00:26:01.830 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:25:30) AND (VALUE=29.97)
2021.05.21 00:26:01.832 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:27:47) AND (VALUE=15.87)
2021.05.21 00:26:01.834 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:29:48) AND (VALUE=18.07)
2021.05.21 00:26:01.836 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:33:20) AND (VALUE=18.96)
2021.05.21 00:26:01.838 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:35:30) AND (VALUE=19.33)
2021.05.21 00:26:01.841 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:40:00) AND (VALUE=12.9)
2021.05.21 00:26:01.843 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:47:00) AND (VALUE=14.05)
2021.05.21 00:26:01.845 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:50:17) AND (VALUE=12.9)
2021.05.21 00:26:01.847 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:54:53) AND (VALUE=11.84)
2021.05.21 00:26:01.849 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 10:59:53) AND (VALUE=11.67)
2021.05.21 00:26:01.851 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:04:11) AND (VALUE=19.26)
2021.05.21 00:26:01.853 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:06:21) AND (VALUE=17.72)
2021.05.21 00:26:01.855 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:08:38) AND (VALUE=26.35)
2021.05.21 00:26:01.858 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:10:45) AND (VALUE=41.28)
2021.05.21 00:26:01.860 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:12:47) AND (VALUE=58.08)
2021.05.21 00:26:01.862 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:15:38) AND (VALUE=90.51)
2021.05.21 00:26:01.864 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:18:41) AND (VALUE=81.43)
2021.05.21 00:26:01.866 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:20:48) AND (VALUE=82.55)
2021.05.21 00:26:01.868 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:22:53) AND (VALUE=48.66)
2021.05.21 00:26:01.870 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:27:26) AND (VALUE=44.12)
2021.05.21 00:26:01.872 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:29:42) AND (VALUE=69.52)
2021.05.21 00:26:01.875 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:31:57) AND (VALUE=66.47)
2021.05.21 00:26:01.877 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:34:03) AND (VALUE=29.09)
2021.05.21 00:26:01.879 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:36:12) AND (VALUE=35.55)
2021.05.21 00:26:01.881 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:38:26) AND (VALUE=55.21)
2021.05.21 00:26:01.883 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:40:36) AND (VALUE=45.24)
2021.05.21 00:26:01.885 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:42:42) AND (VALUE=22.95)
2021.05.21 00:26:01.887 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:45:14) AND (VALUE=21.65)
2021.05.21 00:26:01.889 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:47:41) AND (VALUE=22.98)
2021.05.21 00:26:01.892 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:50:33) AND (VALUE=22)
2021.05.21 00:26:01.894 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:52:59) AND (VALUE=27.97)
2021.05.21 00:26:01.896 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:54:59) AND (VALUE=35.16)
2021.05.21 00:26:01.898 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 11:58:00) AND (VALUE=33.31)
2021.05.21 00:26:01.900 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:02:12) AND (VALUE=25.67)
2021.05.21 00:26:01.902 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:04:15) AND (VALUE=20.6)
2021.05.21 00:26:01.904 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:06:35) AND (VALUE=20.41)
2021.05.21 00:26:01.906 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:10:32) AND (VALUE=19.37)
2021.05.21 00:26:01.909 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:12:57) AND (VALUE=22.8)
2021.05.21 00:26:01.911 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2021-05-11 is: 100
2021.05.21 00:26:01.911 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:15:15) AND (VALUE=18.46)
2021.05.21 00:26:01.914 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:17:21) AND (VALUE=19.19)
2021.05.21 00:26:01.916 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:19:36) AND (VALUE=21.57)
2021.05.21 00:26:01.918 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:22:47) AND (VALUE=24.11)
2021.05.21 00:26:01.920 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:26:56) AND (VALUE=25.46)
2021.05.21 00:26:01.923 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:29:27) AND (VALUE=29.92)
2021.05.21 00:26:01.925 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:31:30) AND (VALUE=24.1)
2021.05.21 00:26:01.927 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:33:45) AND (VALUE=17.66)
2021.05.21 00:26:01.929 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:36:27) AND (VALUE=18.71)
2021.05.21 00:26:01.932 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:38:36) AND (VALUE=25.37)
2021.05.21 00:26:01.934 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:40:54) AND (VALUE=36.35)
2021.05.21 00:26:01.936 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:42:54) AND (VALUE=40.35)
2021.05.21 00:26:01.938 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:47:14) AND (VALUE=40.63)
2021.05.21 00:26:01.940 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:49:36) AND (VALUE=45.09)
2021.05.21 00:26:01.942 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:51:42) AND (VALUE=55.54)
2021.05.21 00:26:01.945 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:54:15) AND (VALUE=55.71)
2021.05.21 00:26:01.947 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 12:59:53) AND (VALUE=56.06)
2021.05.21 00:26:01.949 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:07:33) AND (VALUE=62.28)
2021.05.21 00:26:01.951 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:13:02) AND (VALUE=66.01)
2021.05.21 00:26:01.953 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:15:18) AND (VALUE=56.85)
2021.05.21 00:26:01.955 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:17:51) AND (VALUE=44.12)
2021.05.21 00:26:01.957 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:20:05) AND (VALUE=37.47)
2021.05.21 00:26:01.959 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:22:32) AND (VALUE=25.2)
2021.05.21 00:26:01.962 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:24:39) AND (VALUE=0)
2021.05.21 00:26:01.964 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:26:41) AND (VALUE=21.56)
2021.05.21 00:26:01.966 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:29:17) AND (VALUE=18.64)
2021.05.21 00:26:01.968 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:31:57) AND (VALUE=14.57)
2021.05.21 00:26:01.971 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:37:32) AND (VALUE=12.32)
2021.05.21 00:26:01.973 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:39:41) AND (VALUE=13.34)
2021.05.21 00:26:01.975 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:42:14) AND (VALUE=14.34)
2021.05.21 00:26:01.977 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:45:11) AND (VALUE=13.31)
2021.05.21 00:26:01.979 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:48:27) AND (VALUE=11.02)
2021.05.21 00:26:01.981 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:54:32) AND (VALUE=10.49)
2021.05.21 00:26:01.983 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 13:57:14) AND (VALUE=11.97)
2021.05.21 00:26:01.985 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:03:28) AND (VALUE=8.58)
2021.05.21 00:26:01.987 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:07:16) AND (VALUE=9.61)
2021.05.21 00:26:01.990 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:12:16) AND (VALUE=9.77)
2021.05.21 00:26:01.992 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:17:16) AND (VALUE=10.47)
2021.05.21 00:26:01.994 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:19:46) AND (VALUE=14.87)
2021.05.21 00:26:01.996 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:22:35) AND (VALUE=18.33)
2021.05.21 00:26:01.998 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:24:52) AND (VALUE=20.48)
2021.05.21 00:26:02.001 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:26:55) AND (VALUE=22.98)
2021.05.21 00:26:02.004 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:29:05) AND (VALUE=18.98)
2021.05.21 00:26:02.006 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:31:07) AND (VALUE=21.3)
2021.05.21 00:26:02.009 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:36:31) AND (VALUE=21.47)
2021.05.21 00:26:02.011 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:39:41) AND (VALUE=20.41)
2021.05.21 00:26:02.014 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:43:49) AND (VALUE=18.3)
2021.05.21 00:26:02.016 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:45:52) AND (VALUE=16.12)
2021.05.21 00:26:02.019 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:47:53) AND (VALUE=17.92)
2021.05.21 00:26:02.021 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:50:37) AND (VALUE=20.41)
2021.05.21 00:26:02.024 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:52:47) AND (VALUE=20.26)
2021.05.21 00:26:02.026 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:54:50) AND (VALUE=28.26)
2021.05.21 00:26:02.029 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 14:57:13) AND (VALUE=39.98)
2021.05.21 00:26:02.031 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:05:58) AND (VALUE=42.47)
2021.05.21 00:26:02.034 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:09:44) AND (VALUE=42.85)
2021.05.21 00:26:02.036 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:12:07) AND (VALUE=42.75)
2021.05.21 00:26:02.039 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:14:55) AND (VALUE=45.29)
2021.05.21 00:26:02.041 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:17:19) AND (VALUE=42.79)
2021.05.21 00:26:02.044 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:19:22) AND (VALUE=45.07)
2021.05.21 00:26:02.046 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:21:40) AND (VALUE=50.13)
2021.05.21 00:26:02.049 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:24:41) AND (VALUE=50.03)
2021.05.21 00:26:02.051 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:27:05) AND (VALUE=42.41)
2021.05.21 00:26:02.054 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:30:41) AND (VALUE=47.47)
2021.05.21 00:26:02.056 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:33:19) AND (VALUE=40.79)
2021.05.21 00:26:02.059 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:35:23) AND (VALUE=31.16)
2021.05.21 00:26:02.061 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:37:59) AND (VALUE=31.18)
2021.05.21 00:26:02.064 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:40:10) AND (VALUE=34.92)
2021.05.21 00:26:02.066 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:42:05) AND (VALUE=34.87)
2021.05.21 00:26:02.069 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:44:28) AND (VALUE=27.98)
2021.05.21 00:26:02.072 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:46:55) AND (VALUE=20.29)
2021.05.21 00:26:02.074 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 15:49:31) AND (VALUE=21.07)
2021.05.21 00:26:02.077 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:17:17) AND (VALUE=22.35)
2021.05.21 00:26:02.079 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:19:19) AND (VALUE=20.85)
2021.05.21 00:26:02.082 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:21:20) AND (VALUE=22.46)
2021.05.21 00:26:02.084 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:23:20) AND (VALUE=22.69)
2021.05.21 00:26:02.087 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:25:23) AND (VALUE=17.52)
2021.05.21 00:26:02.089 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:27:44) AND (VALUE=20.34)
2021.05.21 00:26:02.092 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:31:08) AND (VALUE=17.25)
2021.05.21 00:26:02.094 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:33:13) AND (VALUE=16.16)
2021.05.21 00:26:02.097 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:35:28) AND (VALUE=14.03)
2021.05.21 00:26:02.099 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:39:31) AND (VALUE=11.73)
2021.05.21 00:26:02.102 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:41:49) AND (VALUE=12.76)
2021.05.21 00:26:02.104 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:44:13) AND (VALUE=13.77)
2021.05.21 00:26:02.106 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:47:55) AND (VALUE=12.7)
2021.05.21 00:26:02.108 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:51:04) AND (VALUE=10.59)
2021.05.21 00:26:02.110 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:53:11) AND (VALUE=11.76)
2021.05.21 00:26:02.113 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:55:43) AND (VALUE=14.79)
2021.05.21 00:26:02.115 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 16:58:07) AND (VALUE=15.97)
2021.05.21 00:26:02.117 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:05:46) AND (VALUE=17)
2021.05.21 00:26:02.119 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:08:34) AND (VALUE=14.84)
2021.05.21 00:26:02.122 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:11:05) AND (VALUE=12.77)
2021.05.21 00:26:02.124 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:13:35) AND (VALUE=11.6)
2021.05.21 00:26:02.126 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:18:35) AND (VALUE=11.25)
2021.05.21 00:26:02.128 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:21:19) AND (VALUE=8.65)
2021.05.21 00:26:02.130 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:25:46) AND (VALUE=7.62)
2021.05.21 00:26:02.132 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:30:46) AND (VALUE=7.42)
2021.05.21 00:26:02.134 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:35:46) AND (VALUE=6.76)
2021.05.21 00:26:02.136 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:38:29) AND (VALUE=5.49)
2021.05.21 00:26:02.138 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:41:16) AND (VALUE=4.49)
2021.05.21 00:26:02.141 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:45:50) AND (VALUE=3.45)
2021.05.21 00:26:02.143 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2021-05-11 is: 200
2021.05.21 00:26:02.143 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:50:50) AND (VALUE=3.26)
2021.05.21 00:26:02.145 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 17:55:50) AND (VALUE=3.37)
2021.05.21 00:26:02.147 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:05:50) AND (VALUE=2.94)
2021.05.21 00:26:02.149 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:09:32) AND (VALUE=2.36)
2021.05.21 00:26:02.152 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:14:32) AND (VALUE=2.68)
2021.05.21 00:26:02.154 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:19:32) AND (VALUE=2.12)
2021.05.21 00:26:02.156 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:24:32) AND (VALUE=2.21)
2021.05.21 00:26:02.158 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:29:32) AND (VALUE=2.4)
2021.05.21 00:26:02.160 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:34:32) AND (VALUE=2.99)
2021.05.21 00:26:02.162 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:41:04) AND (VALUE=2.94)
2021.05.21 00:26:02.164 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:44:28) AND (VALUE=2.37)
2021.05.21 00:26:02.166 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:49:28) AND (VALUE=2.13)
2021.05.21 00:26:02.168 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:54:28) AND (VALUE=1.84)
2021.05.21 00:26:02.170 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 18:59:28) AND (VALUE=1.77)
2021.05.21 00:26:02.173 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:11:20) AND (VALUE=1.1)
2021.05.21 00:26:02.175 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:16:20) AND (VALUE=0.99)
2021.05.21 00:26:02.177 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:21:20) AND (VALUE=0.57)
2021.05.21 00:26:02.179 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:24:30) AND (VALUE=0)
2021.05.21 00:26:02.181 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:29:30) AND (VALUE=0.55)
2021.05.21 00:26:02.183 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:34:30) AND (VALUE=0.72)
2021.05.21 00:26:02.185 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:39:30) AND (VALUE=0.45)
2021.05.21 00:26:02.187 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:44:30) AND (VALUE=0.55)
2021.05.21 00:26:02.189 4: DbRep DBRep_reduPower - DELETE FROM history WHERE (DEVICE=shelly_plug_s_df2674) AND (READING=power) AND (TIMESTAMP=2021-05-11 19:49:30) AND (VALUE=0)
2021.05.21 00:26:02.201 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 13 records of day: 2021-05-11
2021.05.21 00:26:02.202 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 07:30:00, EVENT='rl_av_h', VALUE=7.340 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 07:03:11 AND VALUE=0.34
2021.05.21 00:26:02.206 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 08:30:00, EVENT='rl_av_h', VALUE=11.101 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 08:01:42 AND VALUE=16.42
2021.05.21 00:26:02.209 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 09:30:00, EVENT='rl_av_h', VALUE=18.977 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 09:00:00 AND VALUE=14.21
2021.05.21 00:26:02.214 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 10:30:00, EVENT='rl_av_h', VALUE=22.318 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 10:00:51 AND VALUE=27.18
2021.05.21 00:26:02.218 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 11:30:00, EVENT='rl_av_h', VALUE=42.126 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 11:02:09 AND VALUE=13.97
2021.05.21 00:26:02.223 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 12:30:00, EVENT='rl_av_h', VALUE=30.138 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 12:00:12 AND VALUE=30.05
2021.05.21 00:26:02.227 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 13:30:00, EVENT='rl_av_h', VALUE=27.147 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 13:04:53 AND VALUE=55.16
2021.05.21 00:26:02.232 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 14:30:00, EVENT='rl_av_h', VALUE=18.297 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 14:00:34 AND VALUE=7.44
2021.05.21 00:26:02.236 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 15:30:00, EVENT='rl_av_h', VALUE=38.738 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 15:03:19 AND VALUE=42.51
2021.05.21 00:26:02.240 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 16:30:00, EVENT='rl_av_h', VALUE=16.607 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 16:14:08 AND VALUE=21.2
2021.05.21 00:26:02.243 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 17:30:00, EVENT='rl_av_h', VALUE=8.999 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 17:00:34 AND VALUE=17.01
2021.05.21 00:26:02.246 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 18:30:00, EVENT='rl_av_h', VALUE=2.468 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 18:00:50 AND VALUE=3.33
2021.05.21 00:26:02.249 4: DbRep DBRep_reduPower - UPDATE history SET TIMESTAMP=2021-05-11 19:30:00, EVENT='rl_av_h', VALUE=0.631 WHERE DEVICE=shelly_plug_s_df2674 AND READING=power AND TIMESTAMP=2021-05-11 19:06:20 AND VALUE=1.38
2021.05.21 00:26:02.259 3: DbRep DBRep_reduPower - reduceLog finished. Rows processed: 1793, deleted: 1688, updated: 101
2021.05.21 00:26:02.260 5: DbRep DBRep_reduPower -> DbRep_reduceLogNbl finished
"TIMESTAMP" "DEVICE" "TYPE" "EVENT" "READING" "VALUE" "UNIT"
"2021-05-11 20:14:30" "shelly_plug_s_df2674" "SHELLY" "power: 0" "power" "0" ""
"2021-05-11 20:09:30" "shelly_plug_s_df2674" "SHELLY" "power: 0.38" "power" "0.38" ""
"2021-05-11 20:04:30" "shelly_plug_s_df2674" "SHELLY" "power: 0.55" "power" "0.55" ""
"2021-05-11 19:30:00" "shelly_plug_s_df2674" "SHELLY" "rl_av_h" "power" "0.631" ""
"2021-05-11 18:30:00" "shelly_plug_s_df2674" "SHELLY" "rl_av_h" "power" "2.468" ""
2021.05.17 20:17:24.140 5: DbLog DBTest -> Start DbLog_reduceLogNbl
2021.05.17 20:17:24.153 3: DbLog DBTest: reduceLogNbl requested with DAYS=18:48, INCLUDE=Jet:E10
2021.05.17 20:17:24.153 4: DbLog DBTest -> AutoCommit mode: ON, Transaction mode: ON
2021.05.17 20:17:24.198 3: DbLog DBTest: reduceLogNbl deleting 8 records of day: 2021-03-30
2021.05.17 20:17:24.199 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 10:33:54) AND (VALUE=147.9)
2021.05.17 20:17:24.202 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 10:44:54) AND (VALUE=145.9)
2021.05.17 20:17:24.205 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 11:57:54) AND (VALUE=140.9)
2021.05.17 20:17:24.207 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 13:38:56) AND (VALUE=143.9)
2021.05.17 20:17:24.210 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 14:43:56) AND (VALUE=139.9)
2021.05.17 20:17:24.212 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 16:38:58) AND (VALUE=141.9)
2021.05.17 20:17:24.215 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 17:51:09) AND (VALUE=143.9)
2021.05.17 20:17:24.218 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 19:28:06) AND (VALUE=142.9)
2021.05.17 20:17:24.230 3: DbLog DBTest: reduceLogNbl deleting 11 records of day: 2021-03-31
2021.05.17 20:17:24.232 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 06:52:10) AND (VALUE=151.9)
2021.05.17 20:17:24.234 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 08:37:10) AND (VALUE=146.9)
2021.05.17 20:17:24.236 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 09:28:10) AND (VALUE=147.9)
2021.05.17 20:17:24.238 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 10:39:12) AND (VALUE=145.9)
2021.05.17 20:17:24.241 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 12:29:13) AND (VALUE=148.9)
2021.05.17 20:17:24.243 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:13:13) AND (VALUE=144.9)
2021.05.17 20:17:24.245 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 14:19:13) AND (VALUE=143.9)
2021.05.17 20:17:24.247 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 15:29:14) AND (VALUE=147.9)
2021.05.17 20:17:24.249 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:44:14) AND (VALUE=145.9)
2021.05.17 20:17:24.251 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 16:53:14) AND (VALUE=143.9)
2021.05.17 20:17:24.253 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-31 19:27:14) AND (VALUE=146.9)
.....
31.03 bis 26.04 ok und daher aus dem Log genommen
.....
2021.05.17 20:17:25.025 3: DbLog DBTest: reduceLogNbl deleting 13 records of day: 2021-04-27
2021.05.17 20:17:25.026 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 09:26:53) AND (VALUE=153.9)
2021.05.17 20:17:25.028 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 10:44:54) AND (VALUE=148.9)
2021.05.17 20:17:25.031 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 11:08:54) AND (VALUE=144.9)
2021.05.17 20:17:25.033 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 12:27:55) AND (VALUE=148.9)
2021.05.17 20:17:25.035 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 13:39:56) AND (VALUE=147.9)
2021.05.17 20:17:25.037 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 14:16:56) AND (VALUE=146.9)
2021.05.17 20:17:25.038 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 14:18:56) AND (VALUE=144.9)
2021.05.17 20:17:25.040 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 15:28:57) AND (VALUE=148.9)
2021.05.17 20:17:25.042 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 16:38:58) AND (VALUE=146.9)
2021.05.17 20:17:25.044 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 17:17:58) AND (VALUE=143.9)
2021.05.17 20:17:25.046 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 17:26:58) AND (VALUE=146.9)
2021.05.17 20:17:25.048 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 19:28:00) AND (VALUE=145.9)
2021.05.17 20:17:25.050 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 22:52:02) AND (VALUE=147.9)
2021.05.17 20:17:25.061 3: DbLog DBTest: reduceLogNbl deleting 9 records of day: 2021-04-28
2021.05.17 20:17:25.062 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 06:53:08) AND (VALUE=151.9)
2021.05.17 20:17:25.065 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 08:34:10) AND (VALUE=149.9)
2021.05.17 20:17:25.067 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 11:24:11) AND (VALUE=147.9)
2021.05.17 20:17:25.069 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 12:28:12) AND (VALUE=151.9)
2021.05.17 20:17:25.071 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 13:38:13) AND (VALUE=147.9)
2021.05.17 20:17:25.073 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 14:59:14) AND (VALUE=143.9)
2021.05.17 20:17:25.075 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 16:48:15) AND (VALUE=145.9)
2021.05.17 20:17:25.077 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 17:29:15) AND (VALUE=146.9)
2021.05.17 20:17:25.079 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 19:28:17) AND (VALUE=142.9)
2021.05.17 20:17:25.086 3: DbLog DBTest: reduceLogNbl finished. Rows processed: 992, deleted: 271, time: 0.95sec
2021.05.17 20:17:25.087 5: DbLog DBTest -> DbLog_reduceLogNbl finished
-------------------------------------------------------------------------------------------------
Daten:
"2021-04-28 23:53:20";"Jet";"HTTPMOD";"E10: 145.9 Cent";"E10";"145.9";"Cent"
"2021-04-28 22:53:19";"Jet";"HTTPMOD";"E10: 145.9 Cent";"E10";"145.9";"Cent" => nicht gelöscht nok
"2021-04-28 22:24:19";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent"
"2021-04-28 21:24:18";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent"
"2021-04-28 20:24:18";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent"
"2021-04-28 19:28:17";"Jet";"HTTPMOD";"E10: 142.9 Cent";"E10";"142.9";"Cent" => gelöscht ok
"2021-04-28 19:19:17";"Jet";"HTTPMOD";"E10: 139.9 Cent";"E10";"139.9";"Cent"
"2021-04-28 18:19:16";"Jet";"HTTPMOD";"E10: 139.9 Cent";"E10";"139.9";"Cent"
"2021-04-28 17:29:15";"Jet";"HTTPMOD";"E10: 146.9 Cent";"E10";"146.9";"Cent" => gelöscht ok
"2021-04-28 17:09:15";"Jet";"HTTPMOD";"E10: 144.9 Cent";"E10";"144.9";"Cent"
2021.05.17 20:38:55.034 5: DbLog DBTest -> Start DbLog_reduceLogNbl
2021.05.17 20:38:55.044 3: DbLog DBTest: reduceLogNbl requested with DAYS=18:48, AVERAGE=HOUR, INCLUDE=Jet:E10
2021.05.17 20:38:55.045 4: DbLog DBTest -> AutoCommit mode: ON, Transaction mode: ON
2021.05.17 20:38:55.088 3: DbLog DBTest: reduceLogNbl deleting 8 records of day: 2021-03-30
2021.05.17 20:38:55.090 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 10:33:54) AND (VALUE=147.9)
2021.05.17 20:38:55.093 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 10:44:54) AND (VALUE=145.9)
2021.05.17 20:38:55.095 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 11:57:54) AND (VALUE=140.9)
2021.05.17 20:38:55.098 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 13:38:56) AND (VALUE=143.9)
2021.05.17 20:38:55.101 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 14:43:56) AND (VALUE=139.9)
2021.05.17 20:38:55.103 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 16:38:58) AND (VALUE=141.9)
2021.05.17 20:38:55.105 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 17:51:09) AND (VALUE=143.9)
2021.05.17 20:38:55.107 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 19:28:06) AND (VALUE=142.9)
2021.05.17 20:38:55.117 3: DbLog DBTest: reduceLogNbl (hourly-average) updating 7 records of day: 2021-03-30
2021.05.17 20:38:55.118 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 10:30:00, EVENT='rl_av_h', VALUE=149.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 10:26:54 AND VALUE=153.9
2021.05.17 20:38:55.121 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 11:30:00, EVENT='rl_av_h', VALUE=142.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 11:17:54 AND VALUE=144.9
2021.05.17 20:38:55.124 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 13:30:00, EVENT='rl_av_h', VALUE=144.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 13:26:55 AND VALUE=144.9
2021.05.17 20:38:55.128 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 14:30:00, EVENT='rl_av_h', VALUE=141.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 14:38:56 AND VALUE=143.9
2021.05.17 20:38:55.131 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 16:30:00, EVENT='rl_av_h', VALUE=142.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 16:26:58 AND VALUE=143.9
2021.05.17 20:38:55.134 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 17:30:00, EVENT='rl_av_h', VALUE=143.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 17:27:59 AND VALUE=143.9
2021.05.17 20:38:55.138 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 19:30:00, EVENT='rl_av_h', VALUE=141.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 19:20:06 AND VALUE=139.9
....
31.03 bis 26.04 ok und daher aus dem Log genommen
....
2021.05.17 20:38:56.838 3: DbLog DBTest: reduceLogNbl deleting 13 records of day: 2021-04-27
2021.05.17 20:38:56.840 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 09:26:53) AND (VALUE=153.9)
2021.05.17 20:38:56.843 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 10:44:54) AND (VALUE=148.9)
2021.05.17 20:38:56.845 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 11:08:54) AND (VALUE=144.9)
2021.05.17 20:38:56.847 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 12:27:55) AND (VALUE=148.9)
2021.05.17 20:38:56.849 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 13:39:56) AND (VALUE=147.9)
2021.05.17 20:38:56.851 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 14:16:56) AND (VALUE=146.9)
2021.05.17 20:38:56.853 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 14:18:56) AND (VALUE=144.9)
2021.05.17 20:38:56.855 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 15:28:57) AND (VALUE=148.9)
2021.05.17 20:38:56.857 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 16:38:58) AND (VALUE=146.9)
2021.05.17 20:38:56.859 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 17:17:58) AND (VALUE=143.9)
2021.05.17 20:38:56.861 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 17:26:58) AND (VALUE=146.9)
2021.05.17 20:38:56.863 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 19:28:00) AND (VALUE=145.9)
2021.05.17 20:38:56.865 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 22:52:02) AND (VALUE=147.9)
2021.05.17 20:38:56.873 3: DbLog DBTest: reduceLogNbl (hourly-average) updating 11 records of day: 2021-04-27
2021.05.17 20:38:56.874 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 09:30:00, EVENT='rl_av_h', VALUE=151.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 09:24:53 AND VALUE=148.9
2021.05.17 20:38:56.877 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 10:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 10:18:53 AND VALUE=149.9
2021.05.17 20:38:56.880 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 11:30:00, EVENT='rl_av_h', VALUE=146.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 11:05:54 AND VALUE=147.9
2021.05.17 20:38:56.883 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 12:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 12:08:55 AND VALUE=144.9
2021.05.17 20:38:56.886 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 13:30:00, EVENT='rl_av_h', VALUE=148.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 13:27:55 AND VALUE=148.9
2021.05.17 20:38:56.888 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 14:30:00, EVENT='rl_av_h', VALUE=145.567 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 14:08:56 AND VALUE=144.9
2021.05.17 20:38:56.891 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 15:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 15:18:57 AND VALUE=144.9
2021.05.17 20:38:56.894 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 16:30:00, EVENT='rl_av_h', VALUE=147.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 16:28:57 AND VALUE=148.9
2021.05.17 20:38:56.897 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 17:30:00, EVENT='rl_av_h', VALUE=145.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 17:01:58 AND VALUE=144.9
2021.05.17 20:38:56.899 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 19:30:00, EVENT='rl_av_h', VALUE=144.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 19:18:59 AND VALUE=142.9
2021.05.17 20:38:56.902 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 22:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 22:03:02 AND VALUE=143.9
2021.05.17 20:38:56.914 3: DbLog DBTest: reduceLogNbl deleting 9 records of day: 2021-04-28
2021.05.17 20:38:56.916 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 06:53:08) AND (VALUE=151.9)
2021.05.17 20:38:56.918 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 08:34:10) AND (VALUE=149.9)
2021.05.17 20:38:56.921 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 11:24:11) AND (VALUE=147.9)
2021.05.17 20:38:56.923 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 12:28:12) AND (VALUE=151.9)
2021.05.17 20:38:56.925 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 13:38:13) AND (VALUE=147.9)
2021.05.17 20:38:56.927 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 14:59:14) AND (VALUE=143.9)
2021.05.17 20:38:56.928 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 16:48:15) AND (VALUE=145.9)
2021.05.17 20:38:56.931 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 17:29:15) AND (VALUE=146.9)
2021.05.17 20:38:56.933 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 19:28:17) AND (VALUE=142.9)
2021.05.17 20:38:56.940 3: DbLog DBTest: reduceLogNbl (hourly-average) updating 10 records of day: 2021-04-28
2021.05.17 20:38:56.941 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 06:30:00, EVENT='rl_av_h', VALUE=150.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 06:01:08 AND VALUE=149.9
2021.05.17 20:38:56.944 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 08:30:00, EVENT='rl_av_h', VALUE=150.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 08:25:09 AND VALUE=150.9
2021.05.17 20:38:56.947 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 11:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 11:19:11 AND VALUE=150.9
2021.05.17 20:38:56.950 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 12:30:00, EVENT='rl_av_h', VALUE=149.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 12:24:12 AND VALUE=147.9
2021.05.17 20:38:56.953 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 13:30:00, EVENT='rl_av_h', VALUE=148.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 13:19:13 AND VALUE=149.9
2021.05.17 20:38:56.956 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 14:30:00, EVENT='rl_av_h', VALUE=144.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 14:09:13 AND VALUE=144.9
2021.05.17 20:38:56.959 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 16:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 16:29:15 AND VALUE=147.9
2021.05.17 20:38:56.961 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 17:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 17:09:15 AND VALUE=144.9
2021.05.17 20:38:56.964 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 19:30:00, EVENT='rl_av_h', VALUE=141.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 19:19:17 AND VALUE=139.9
2021.05.17 20:38:56.967 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 22:30:00, EVENT='rl_av_h', VALUE=143.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 22:24:19 AND VALUE=141.9
2021.05.17 20:38:56.976 3: DbLog DBTest: reduceLogNbl finished. Rows processed: 992, deleted: 271, updated: 240, time: 1.94sec
2021.05.17 20:38:56.977 5: DbLog DBTest -> DbLog_reduceLogNbl finished
-------------------------------------------------------------------------------------------------
Daten:
"2021-04-28 23:53:20";"Jet";"HTTPMOD";"E10: 145.9 Cent";"E10";"145.9";"Cent" => unverändert ok
"2021-04-28 22:53:19";"Jet";"HTTPMOD";"E10: 145.9 Cent";"E10";"145.9";"Cent" => nicht gelöscht nok
"2021-04-28 22:24:19";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent" => Update Mittelwert ok
"2021-04-28 21:24:18";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent" => unverändert ok
"2021-04-28 20:24:18";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent" => unverändert ok
"2021-04-28 19:28:17";"Jet";"HTTPMOD";"E10: 142.9 Cent";"E10";"142.9";"Cent" => gelöscht ok
"2021-04-28 19:19:17";"Jet";"HTTPMOD";"E10: 139.9 Cent";"E10";"139.9";"Cent" => Update Mittelwert ok
"2021-04-28 18:19:16";"Jet";"HTTPMOD";"E10: 139.9 Cent";"E10";"139.9";"Cent" => unverändert ok
"2021-04-28 17:29:15";"Jet";"HTTPMOD";"E10: 146.9 Cent";"E10";"146.9";"Cent" => gelöscht ok
"2021-04-28 17:09:15";"Jet";"HTTPMOD";"E10: 144.9 Cent";"E10";"144.9";"Cent" => Update Mittelwert ok
2021.05.17 20:58:30.474 5: DbLog DBTest -> Start DbLog_reduceLogNbl
2021.05.17 20:58:30.484 3: DbLog DBTest: reduceLogNbl requested with DAYS=18:48, AVERAGE=DAY, INCLUDE=Jet:E10
2021.05.17 20:58:30.485 4: DbLog DBTest -> AutoCommit mode: ON, Transaction mode: ON
2021.05.17 20:58:30.523 3: DbLog DBTest: reduceLogNbl deleting 8 records of day: 2021-03-30
2021.05.17 20:58:30.525 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 10:33:54) AND (VALUE=147.9)
2021.05.17 20:58:30.528 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 10:44:54) AND (VALUE=145.9)
2021.05.17 20:58:30.530 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 11:57:54) AND (VALUE=140.9)
2021.05.17 20:58:30.532 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 13:38:56) AND (VALUE=143.9)
2021.05.17 20:58:30.535 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 14:43:56) AND (VALUE=139.9)
2021.05.17 20:58:30.537 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 16:38:58) AND (VALUE=141.9)
2021.05.17 20:58:30.539 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 17:51:09) AND (VALUE=143.9)
2021.05.17 20:58:30.542 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 19:28:06) AND (VALUE=142.9)
2021.05.17 20:58:30.554 3: DbLog DBTest: reduceLogNbl (hourly-average) updating 7 records of day: 2021-03-30
2021.05.17 20:58:30.556 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 10:30:00, EVENT='rl_av_h', VALUE=149.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 10:26:54 AND VALUE=153.9
2021.05.17 20:58:30.560 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 11:30:00, EVENT='rl_av_h', VALUE=142.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 11:17:54 AND VALUE=144.9
2021.05.17 20:58:30.563 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 13:30:00, EVENT='rl_av_h', VALUE=144.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 13:26:55 AND VALUE=144.9
2021.05.17 20:58:30.567 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 14:30:00, EVENT='rl_av_h', VALUE=141.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 14:38:56 AND VALUE=143.9
2021.05.17 20:58:30.570 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 16:30:00, EVENT='rl_av_h', VALUE=142.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 16:26:58 AND VALUE=143.9
2021.05.17 20:58:30.573 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 17:30:00, EVENT='rl_av_h', VALUE=143.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 17:27:59 AND VALUE=143.9
2021.05.17 20:58:30.576 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 19:30:00, EVENT='rl_av_h', VALUE=141.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-03-30 19:20:06 AND VALUE=139.9
2021.05.17 20:58:30.587 3: DbLog DBTest: reduceLogNbl (daily-average) updating 1, deleting 23 records of day: 2021-03-30
2021.05.17 20:58:30.588 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 00:26:45'
2021.05.17 20:58:30.591 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 01:26:46'
2021.05.17 20:58:30.593 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 02:26:47'
2021.05.17 20:58:30.595 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 03:26:48'
2021.05.17 20:58:30.597 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 04:26:48'
2021.05.17 20:58:30.598 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 05:26:49'
2021.05.17 20:58:30.600 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 06:26:50'
2021.05.17 20:58:30.602 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 07:26:51'
2021.05.17 20:58:30.604 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 08:26:51'
2021.05.17 20:58:30.606 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 09:26:52'
2021.05.17 20:58:30.608 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 10:30:00'
2021.05.17 20:58:30.610 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 11:30:00'
2021.05.17 20:58:30.612 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 12:26:55'
2021.05.17 20:58:30.614 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 13:30:00'
2021.05.17 20:58:30.616 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 14:30:00'
2021.05.17 20:58:30.618 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 15:26:57'
2021.05.17 20:58:30.620 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 16:30:00'
2021.05.17 20:58:30.622 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 17:30:00'
2021.05.17 20:58:30.624 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 18:20:06'
2021.05.17 20:58:30.625 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 19:30:00'
2021.05.17 20:58:30.627 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 20:24:06'
2021.05.17 20:58:30.629 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 21:24:07'
2021.05.17 20:58:30.631 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-03-30 22:24:07'
2021.05.17 20:58:30.633 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-03-30 12:00:00, EVENT='rl_av_d', VALUE=147.247 WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-03-30 23:24:07)
...
31.03 bis 26.04 ok und daher aus dem Log genommen
...
2021.05.17 20:58:34.119 3: DbLog DBTest: reduceLogNbl deleting 13 records of day: 2021-04-27
2021.05.17 20:58:34.121 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 09:26:53) AND (VALUE=153.9)
2021.05.17 20:58:34.123 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 10:44:54) AND (VALUE=148.9)
2021.05.17 20:58:34.126 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 11:08:54) AND (VALUE=144.9)
2021.05.17 20:58:34.128 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 12:27:55) AND (VALUE=148.9)
2021.05.17 20:58:34.130 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 13:39:56) AND (VALUE=147.9)
2021.05.17 20:58:34.132 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 14:16:56) AND (VALUE=146.9)
2021.05.17 20:58:34.134 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 14:18:56) AND (VALUE=144.9)
2021.05.17 20:58:34.136 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 15:28:57) AND (VALUE=148.9)
2021.05.17 20:58:34.138 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 16:38:58) AND (VALUE=146.9)
2021.05.17 20:58:34.140 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 17:17:58) AND (VALUE=143.9)
2021.05.17 20:58:34.142 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 17:26:58) AND (VALUE=146.9)
2021.05.17 20:58:34.144 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 19:28:00) AND (VALUE=145.9)
2021.05.17 20:58:34.147 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 22:52:02) AND (VALUE=147.9)
2021.05.17 20:58:34.158 3: DbLog DBTest: reduceLogNbl (hourly-average) updating 11 records of day: 2021-04-27
2021.05.17 20:58:34.160 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 09:30:00, EVENT='rl_av_h', VALUE=151.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 09:24:53 AND VALUE=148.9
2021.05.17 20:58:34.163 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 10:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 10:18:53 AND VALUE=149.9
2021.05.17 20:58:34.166 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 11:30:00, EVENT='rl_av_h', VALUE=146.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 11:05:54 AND VALUE=147.9
2021.05.17 20:58:34.169 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 12:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 12:08:55 AND VALUE=144.9
2021.05.17 20:58:34.172 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 13:30:00, EVENT='rl_av_h', VALUE=148.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 13:27:55 AND VALUE=148.9
2021.05.17 20:58:34.176 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 14:30:00, EVENT='rl_av_h', VALUE=145.567 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 14:08:56 AND VALUE=144.9
2021.05.17 20:58:34.179 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 15:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 15:18:57 AND VALUE=144.9
2021.05.17 20:58:34.182 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 16:30:00, EVENT='rl_av_h', VALUE=147.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 16:28:57 AND VALUE=148.9
2021.05.17 20:58:34.185 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 17:30:00, EVENT='rl_av_h', VALUE=145.233 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 17:01:58 AND VALUE=144.9
2021.05.17 20:58:34.189 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 19:30:00, EVENT='rl_av_h', VALUE=144.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 19:18:59 AND VALUE=142.9
2021.05.17 20:58:34.192 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 22:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-27 22:03:02 AND VALUE=143.9
2021.05.17 20:58:34.203 3: DbLog DBTest: reduceLogNbl (daily-average) updating 1, deleting 23 records of day: 2021-04-27
2021.05.17 20:58:34.204 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 00:52:46'
2021.05.17 20:58:34.206 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 01:52:47'
2021.05.17 20:58:34.209 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 02:52:47'
2021.05.17 20:58:34.211 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 03:52:48'
2021.05.17 20:58:34.214 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 04:52:49'
2021.05.17 20:58:34.216 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 05:52:50'
2021.05.17 20:58:34.218 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 06:52:51'
2021.05.17 20:58:34.221 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 07:24:51'
2021.05.17 20:58:34.223 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 08:24:52'
2021.05.17 20:58:34.226 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 09:30:00'
2021.05.17 20:58:34.228 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 10:30:00'
2021.05.17 20:58:34.231 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 11:30:00'
2021.05.17 20:58:34.233 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 12:30:00'
2021.05.17 20:58:34.235 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 13:30:00'
2021.05.17 20:58:34.238 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 14:30:00'
2021.05.17 20:58:34.240 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 15:30:00'
2021.05.17 20:58:34.242 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 16:30:00'
2021.05.17 20:58:34.245 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 17:30:00'
2021.05.17 20:58:34.247 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 18:18:59'
2021.05.17 20:58:34.250 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 19:30:00'
2021.05.17 20:58:34.252 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 20:28:01'
2021.05.17 20:58:34.255 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 21:03:01'
2021.05.17 20:58:34.257 5: DbLog DBTest: DELETE FROM history WHERE DEVICE='Jet' AND READING='E10' AND TIMESTAMP='2021-04-27 22:30:00'
2021.05.17 20:58:34.259 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-27 12:00:00, EVENT='rl_av_d', VALUE=147.546 WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-27 23:52:03)
2021.05.17 20:58:34.273 3: DbLog DBTest: reduceLogNbl deleting 9 records of day: 2021-04-28
2021.05.17 20:58:34.276 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 06:53:08) AND (VALUE=151.9)
2021.05.17 20:58:34.280 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 08:34:10) AND (VALUE=149.9)
2021.05.17 20:58:34.282 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 11:24:11) AND (VALUE=147.9)
2021.05.17 20:58:34.285 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 12:28:12) AND (VALUE=151.9)
2021.05.17 20:58:34.287 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 13:38:13) AND (VALUE=147.9)
2021.05.17 20:58:34.289 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 14:59:14) AND (VALUE=143.9)
2021.05.17 20:58:34.292 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 16:48:15) AND (VALUE=145.9)
2021.05.17 20:58:34.294 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 17:29:15) AND (VALUE=146.9)
2021.05.17 20:58:34.296 4: DbLog DBTest: DELETE FROM history WHERE (DEVICE=Jet) AND (READING=E10) AND (TIMESTAMP=2021-04-28 19:28:17) AND (VALUE=142.9)
2021.05.17 20:58:34.307 3: DbLog DBTest: reduceLogNbl (hourly-average) updating 10 records of day: 2021-04-28
2021.05.17 20:58:34.308 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 06:30:00, EVENT='rl_av_h', VALUE=150.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 06:01:08 AND VALUE=149.9
2021.05.17 20:58:34.312 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 08:30:00, EVENT='rl_av_h', VALUE=150.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 08:25:09 AND VALUE=150.9
2021.05.17 20:58:34.315 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 11:30:00, EVENT='rl_av_h', VALUE=149.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 11:19:11 AND VALUE=150.9
2021.05.17 20:58:34.318 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 12:30:00, EVENT='rl_av_h', VALUE=149.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 12:24:12 AND VALUE=147.9
2021.05.17 20:58:34.322 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 13:30:00, EVENT='rl_av_h', VALUE=148.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 13:19:13 AND VALUE=149.9
2021.05.17 20:58:34.325 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 14:30:00, EVENT='rl_av_h', VALUE=144.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 14:09:13 AND VALUE=144.9
2021.05.17 20:58:34.328 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 16:30:00, EVENT='rl_av_h', VALUE=146.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 16:29:15 AND VALUE=147.9
2021.05.17 20:58:34.331 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 17:30:00, EVENT='rl_av_h', VALUE=145.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 17:09:15 AND VALUE=144.9
2021.05.17 20:58:34.335 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 19:30:00, EVENT='rl_av_h', VALUE=141.400 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 19:19:17 AND VALUE=139.9
2021.05.17 20:58:34.338 4: DbLog DBTest: UPDATE history SET TIMESTAMP=2021-04-28 22:30:00, EVENT='rl_av_h', VALUE=143.900 WHERE DEVICE=Jet AND READING=E10 AND TIMESTAMP=2021-04-28 22:24:19 AND VALUE=141.9
2021.05.17 20:58:34.347 3: DbLog DBTest: reduceLogNbl finished. Rows processed: 992, deleted: 938, updated: 269, time: 3.87sec
2021.05.17 20:58:34.348 5: DbLog DBTest -> DbLog_reduceLogNbl finished
-------------------------------------------------------------------------------------------------
Daten:
"2021-04-28 23:53:20";"Jet";"HTTPMOD";"E10: 145.9 Cent";"E10";"145.9";"Cent" => unverändert ok
"2021-04-28 22:53:19";"Jet";"HTTPMOD";"E10: 145.9 Cent";"E10";"145.9";"Cent" => nicht gelöscht nok
"2021-04-28 22:24:19";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent" => Update Mittelwert ok
"2021-04-28 21:24:18";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent" => unverändert ok
"2021-04-28 20:24:18";"Jet";"HTTPMOD";"E10: 141.9 Cent";"E10";"141.9";"Cent" => unverändert ok
"2021-04-28 19:28:17";"Jet";"HTTPMOD";"E10: 142.9 Cent";"E10";"142.9";"Cent" => gelöscht ok
"2021-04-28 19:19:17";"Jet";"HTTPMOD";"E10: 139.9 Cent";"E10";"139.9";"Cent" => Update Mittelwert ok
"2021-04-28 18:19:16";"Jet";"HTTPMOD";"E10: 139.9 Cent";"E10";"139.9";"Cent" => unverändert ok
"2021-04-28 17:29:15";"Jet";"HTTPMOD";"E10: 146.9 Cent";"E10";"146.9";"Cent" => gelöscht ok
"2021-04-28 17:09:15";"Jet";"HTTPMOD";"E10: 144.9 Cent";"E10";"144.9";"Cent" => Update Mittelwert ok
Final kein Tagesmittelwert gebildet; es ist wie bei Test#2 unsauber bei den stündlichen Werten am Ende
defmod at.Energy.Tag.BZRadio at *00:11:00 attr DBReporting_LaCrosse device FBDECT_fbahahttp_08761_0060122;;\
attr DBReporting_LaCrosse reading power;;\
attr DBReporting_LaCrosse aggregation day;;\
attr DBReporting_LaCrosse timestamp_begin previous_day_begin;;\
attr DBReporting_LaCrosse timestamp_end previous_day_end;;\
set DBReporting_LaCrosse averageValue writeToDBSingle\
attr at.Energy.Tag.BZRadio DbLogExclude .*
attr at.Energy.Tag.BZRadio group Berechnung
attr at.Energy.Tag.BZRadio room System
setstate at.Energy.Tag.BZRadio Next: 00:11:00
setstate at.Energy.Tag.BZRadio 2021-07-16 00:11:00 state Next: 00:11:00
2021.07.15 06:39:59 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 3
2021.07.15 06:39:59 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.x.x;port=xxx with user xxx
2021.07.15 06:39:59 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.15 06:39:59 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0056 seconds
2021.07.15 06:41:00 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:750 will be killed now to start a new operation
2021.07.15 06:41:00 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 2
2021.07.15 06:41:00 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.x.x;port=xxx with user xxx
2021.07.15 06:41:00 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.15 06:41:00 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0140 seconds
ZitatEs ist fraglich dass sich die Meldung "WARNING - running process DEAD:750 will be killed now to start a new operation" auf den vorangegangenen "get initial structure information" bezieht.
warum wird der Prozess gekillt, obwohl er doch eigentlich nach 0.0056 s abgeschlossen war
Es werden leider auch keine Werte berechnen und in die DB eingetragen...
Zitat von: RalfRog am 29 Mai 2021, 12:38:26Hi...
Damit der Zusammenhang erhalten bleibt hier die Test#1 bis 3 am DBLog ....
Zitat von: DS_Starter am 16 Juli 2021, 12:29:31
Ich vermute vielmehr du verwendest mehrere at um zeitgleich bzw. mit zu kurzen Zeitabständen ein und dasselbe DbRep-Device anzustarten um MIN/MAX/AVG zu berechnen ?
2021.07.16 00:01:00 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:795 will be killed now to start a new operation
2021.07.16 00:01:00 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 1
2021.07.16 00:01:00 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.16 00:01:00 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.16 00:01:00 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0053 seconds
2021.07.16 00:02:00 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:23144 will be killed now to start a new operation
2021.07.16 00:02:00 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 0
2021.07.16 00:03:00 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:23144 will be killed now to start a new operation
2021.07.16 00:03:00 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 3
2021.07.16 00:03:00 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.16 00:03:00 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.16 00:03:00 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0051 seconds
2021.07.16 00:04:04 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:23179 will be killed now to start a new operation
2021.07.16 00:04:04 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 2
2021.07.16 00:04:04 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.16 00:04:04 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.16 00:04:04 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0043 seconds
2021.07.16 17:37:19 3: DbRep DBReporting_LaCrosse - WARNING - running process will be killed now to start a new operation
2021.07.16 17:37:19 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 3
2021.07.16 17:37:19 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.16 17:37:19 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.16 17:37:19 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0070 seconds
2021.07.17 07:36:06 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:53461 will be killed now to start a new operation
2021.07.17 07:36:06 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 3
2021.07.17 07:36:06 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.17 07:36:06 4: DbRep DBReporting_LaCrosse - database user for operation: xxx
2021.07.17 07:36:06 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.17 07:36:06 4: DbRep DBReporting_LaCrosse - all grants: SHOW VIEW,DROP,SELECT,EVENT,LOCK TABLES,CREATE VIEW,UPDATE,EXECUTE,ALTER ROUTINE,CREATE ROUTINE,CREATE,REFERENCES,INSERT,ALTER,DELETE,INDEX,USAGE,CREATE TEMPORARY TABLES,TRIGGER
2021.07.17 07:36:06 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0123 seconds
2021.07.17 08:17:15.187 4: DbRep Rep.CPU - database user for operation: fhemtest
2021.07.17 08:17:15.190 3: DbRep Rep.CPU - Index Report_Idx exists. Check ok
2021.07.17 08:17:15.192 4: DbRep Rep.CPU - all grants: DELETE,FILE,INDEX,INSERT,PROCESS,SELECT,UPDATE
2021.07.17 08:17:15.192 3: DbRep Rep.CPU - Initial data information retrieved successfully - total time used: 0.0075 seconds
2021.07.17 08:17:15.236 3: DbRep Rep.CPU - Connectiontest to db mysql:database=fhemtest;host=192.168.2.44;port=3306 successful
2021.07.17 08:17:15.248 4: DbRep Rep.CPU - -------- New selection ---------
2021.07.17 08:17:15.249 4: DbRep Rep.CPU - Command: countEntries history
2021.07.17 08:17:15.249 4: DbRep Rep.CPU - Timestamp begin human readable: not set
2021.07.17 08:17:15.250 4: DbRep Rep.CPU - Timestamp end human readable: not set
2021.07.17 08:17:15.250 4: DbRep Rep.CPU - Aggregation: no
2021.07.17 08:17:15.272 5: DbRep Rep.CPU - IsTimeSet: 0, IsAggrSet: 0
2021.07.17 08:17:15.274 5: DbRep Rep.CPU - Timestamp-Array:
....
2021.07.17 10:40:32 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:1127 will be killed now to start a new operation
2021.07.17 10:40:32 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 3
2021.07.17 10:40:32 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.17 10:40:32 5: DbRep DBReporting_LaCrosse - start getInitData with PID "1153"
2021.07.17 10:40:32 4: DbRep DBReporting_LaCrosse - database user for operation: xxx
2021.07.17 10:40:32 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.17 10:40:32 4: DbRep DBReporting_LaCrosse - all grants: REFERENCES,CREATE,ALTER ROUTINE,EVENT,DROP,SELECT,LOCK TABLES,EXECUTE,DELETE,CREATE ROUTINE,INSERT,INDEX,SHOW VIEW,CREATE VIEW,USAGE,TRIGGER,CREATE TEMPORARY TABLES,UPDATE,ALTER
2021.07.17 10:40:32 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0042 seconds
2021.07.17 10:41:05 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:1153 will be killed now to start a new operation
2021.07.17 10:41:05 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 2
2021.07.17 10:41:05 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.17 10:41:05 5: DbRep DBReporting_LaCrosse - start getInitData with PID "1167"
2021.07.17 10:41:05 4: DbRep DBReporting_LaCrosse - database user for operation: xxx
2021.07.17 10:41:05 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.17 10:41:05 4: DbRep DBReporting_LaCrosse - all grants: REFERENCES,CREATE,EVENT,DROP,ALTER ROUTINE,SELECT,LOCK TABLES,EXECUTE,CREATE ROUTINE,DELETE,INSERT,INDEX,SHOW VIEW,CREATE VIEW,USAGE,CREATE TEMPORARY TABLES,TRIGGER,UPDATE,ALTER
2021.07.17 10:41:05 3: DbRep DBReporting_LaCrosse - Initial data information retrieved successfully - total time used: 0.0044 seconds
ZitatJa, das ist normal in diesem Fall. Für FHEM/das Modul läuft der Prozess ja noch weil er sich bisher nicht zurück gemeldet hatte.
laut HTOP werden diese Prozesse (hier der PID 1153 und aktuell der PID 1167) jedoch sofort wieder beendet und werden trotzdem beim nächsten Start mit "...will be Killed..." angezeigt.
Pid:3012 Fn:PRESENCE_DoLocalPingScan Arg:Klaus_WLAN_Device_2|192.168.2.162|0|4 Timeout:60 ConnectedVia:telnetPort_127.0.0.1_56316
Pid:3014 Fn:PRESENCE_DoLocalPingScan Arg:Baerbel_WLAN_Device_2|192.168.2.168|0|4 Timeout:60 ConnectedVia:telnetPort_127.0.0.1_56322
Zitat von: supergrobi am 17 Juli 2021, 12:09:25
BlockingInfo liefert folgendes:Code AuswählenPid:3012 Fn:PRESENCE_DoLocalPingScan Arg:Klaus_WLAN_Device_2|192.168.2.162|0|4 Timeout:60 ConnectedVia:telnetPort_127.0.0.1_56316
Pid:3014 Fn:PRESENCE_DoLocalPingScan Arg:Baerbel_WLAN_Device_2|192.168.2.168|0|4 Timeout:60 ConnectedVia:telnetPort_127.0.0.1_56322
aber ich stecke da echt nicht so tief drin, dass ich das in Verbindung bringen könnte ::)
Internals:
CONNECTS 844
DEF 7072 global
FD 5
FUUID 5e2be9c4-f33f-2f94-3190-22b543cce14dcacc
NAME telnetPort
NR 4
PORT 7072
STATE Initialized
TYPE telnet
.attraggr:
.attrminint:
READINGS:
2021-07-17 10:30:15 state Initialized
Attributes:
defmod telnetPort telnet 7072 global
setstate telnetPort 2021-07-17 10:30:15 state Initialized
allowed_WEB
allowed_WEBphone
allowed_WEBtablet
state done - No BlockingCall processes running 2021-07-17 13:58:52
2021.07.18 11:02:23 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:27233 will be killed now to start a new operation
2021.07.18 11:02:23 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 2
2021.07.18 11:02:23 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.18 11:02:23 5: DbRep DBReporting_LaCrosse - start BlockingCall with PID "27244"
2021.07.18 11:02:23 4: DbRep DBReporting_LaCrosse - database user for operation: xxx
2021.07.18 11:02:23 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.18 11:02:23 4: DbRep DBReporting_LaCrosse - all grants: LOCK TABLES,UPDATE,SHOW VIEW,TRIGGER,EXECUTE,DROP,CREATE ROUTINE,INSERT,ALTER ROUTINE,REFERENCES,CREATE VIEW,EVENT,CREATE,ALTER,USAGE,SELECT,CREATE TEMPORARY TABLES,DELETE,INDEX
2021.07.18 11:02:23 5: DbRep DBReporting_LaCrosse - minimum timestamp found in database: 2017-07-14 21:30:00
2021.07.18 11:02:23 5: DbRep DBReporting_LaCrosse - return summary string: DBReporting_LaCrosse|MjAxNy0wNy0xNCAyMTozMDowMA==|0.002449,0.005128|0|minValue|writeToDB
|DbRep_Main|SW5kZXggUmVwb3J0X0lkeCBleGlzdHM=|TE9DSyBUQUJMRVMsVVBEQVRFLFNIT1cgVklFVyxUUklHR0VSLEVYRUNVVEUsRFJPUCxDUkVBVEUgUk9VVElORSxJTlNFUlQsQUxURVIgUk9VVElORSxSRUZFUkVOQ0VTLENSRUFURSBWSUVXLEVWRU5ULENSRUFURSxBTFRFUixVU0FHRSxTRUxFQ1QsQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsREVMRVRFLElOREVY
Zitat von: DS_Starter am 18 Juli 2021, 12:09:29
Moin,
eine Frage zu dem Log. Bricht die Zeile im Original auch nach writeToDB um oder ist das nur bei der Anzeige im Forum so ?
1 *00:01:00 attr DBReporting_LaCrosse device LaCrosse_3E;
2 attr DBReporting_LaCrosse reading temperature;
3 attr DBReporting_LaCrosse aggregation day;
4 attr DBReporting_LaCrosse timestamp_begin previous_day_begin;
5 attr DBReporting_LaCrosse timestamp_end previous_day_end;
6 set DBReporting_LaCrosse minValue writeToDB
7
Zitat von: DS_Starter am 18 Juli 2021, 12:29:07
Heiße Spur ... dann weiß ich wahrscheinlich um die Ursache. Werde später ein Testversion bereitstellen.
Gehe jetzt erstmal in die Sonne. :D
Zitat von: DS_Starter am 18 Juli 2021, 12:34:21
Hast vlt. Ein Enter eingefügt ?
2021.07.18 12:42:19 3: DbRep DBReporting_LaCrosse - WARNING - running process DEAD:27244 will be killed now to start a new operation
2021.07.18 12:42:19 3: DbRep DBReporting_LaCrosse - get initial structure information of database "fhem", remaining attempts: 1
2021.07.18 12:42:19 3: DbRep DBReporting_LaCrosse - Connectiontest to database mysql:database=fhem;host=192.168.xxx.xxx;port=xxx with user xxx
2021.07.18 12:42:19 5: DbRep DBReporting_LaCrosse - start BlockingCall with PID "29185"
2021.07.18 12:42:19 4: DbRep DBReporting_LaCrosse - database user for operation: xxx
2021.07.18 12:42:19 3: DbRep DBReporting_LaCrosse - Index Report_Idx exists. Check ok
2021.07.18 12:42:19 4: DbRep DBReporting_LaCrosse - all grants: INSERT,ALTER ROUTINE,LOCK TABLES,UPDATE,SHOW VIEW,TRIGGER,EXECUTE,CREATE ROUTINE,DROP,DELETE,CREATE TEMPORARY TABLES,INDEX,CREATE,EVENT,CREATE VIEW,REFERENCES,USAGE,ALTER,SELECT
2021.07.18 12:42:19 5: DbRep DBReporting_LaCrosse - minimum timestamp found in database: 2017-07-14 21:30:00
2021.07.18 12:42:19 5: DbRep DBReporting_LaCrosse - return summary string: DBReporting_LaCrosse|MjAxNy0wNy0xNCAyMTozMDowMA==|0.002151,0.005018|0|minValue|writeToDB|DbRep_Main|SW5kZXggUmVwb3J0X0lkeCBleGlzdHM=|SU5TRVJULEFMVEVSIFJPVVRJTkUsTE9DSyBUQUJMRVMsVVBEQVRFLFNIT1cgVklFVyxUUklHR0VSLEVYRUNVVEUsQ1JFQVRFIFJPVVRJTkUsRFJPUCxERUxFVEUsQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsSU5ERVgsQ1JFQVRFLEVWRU5ULENSRUFURSBWSUVXLFJFRkVSRU5DRVMsVVNBR0UsQUxURVIsU0VMRUNU
2021.07.18 12:42:20 3: DbRep DBReporting_LaCrosse - Initial data information retrieved - total time used: 0.0050 seconds
2021.07.18 12:42:20 3: DbRep DBReporting_LaCrosse - Connectiontest to db mysql:database=fhem;host=192.168.xxx.xxx;port=xxx successful
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - getInitData finished PID "29185"
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - -------- New selection ---------
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - Command: minValue writeToDB
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - FullDay option: 0
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Timestamp begin epocheseconds: 1626472800
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - Timestamp begin human readable: 2021-07-17 00:00:00
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Timestamp end epocheseconds: 1626559199
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - Timestamp end human readable: 2021-07-17 23:59:59
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - weekday start for selection: Sa -> wdadd: 172800
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Daylight savings changed: 0 (on Sun Jul 18 00:00:00 2021)
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - runtime_string: 2021-07-17, runtime_string_first: 2021-07-17 00:00:00, runtime_string_next: 2021-07-17 23:59:59
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - Aggregation: day
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - start BlockingCall with PID "29186"
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - IsTimeSet: 1, IsAggrSet: 1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Timestamp-Array:
2021-07-17#2021-07-17 00:00:00#2021-07-17 23:59:59
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Devices for operation -
included (1): LaCrosse_3E
included with wildcard:
excluded (0):
excluded with wildcard:
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Readings for operation -
included (1): temperature
included with wildcard:
excluded (0):
excluded with wildcard:
2021.07.18 12:42:20 4: DbRep DBReporting_LaCrosse - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'LaCrosse_3E' ) AND ( READING = 'temperature' ) AND TIMESTAMP >= '2021-07-17 00:00:00' AND TIMESTAMP <= '2021-07-17 23:59:59' ORDER BY TIMESTAMP;
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse -> raw data of row_array result:
MjAyMS0wNy0xNw== 17.9 2021-07-17 00:00:03!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.8 2021-07-17 00:05:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.8 2021-07-17 00:10:07!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.8 2021-07-17 00:15:14!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 00:20:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.8 2021-07-17 00:25:17!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 00:30:19!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 00:35:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 00:40:27!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 00:45:29!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 00:50:30!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 00:55:32!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:00:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:05:36!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:10:42!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:15:53!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:20:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:26:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:31:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:36:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.5 2021-07-17 01:41:23!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:49:43!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 01:54:50!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 01:59:50!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 02:04:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 02:09:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 02:14:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 02:19:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 02:25:09!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 02:30:10!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 02:35:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 02:40:18!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 02:45:24!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 02:50:26!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 02:55:32!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 03:00:38!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 03:05:44!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 03:10:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:15:56!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:20:57!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:26:07!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:31:07!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:39:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:44:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:49:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 03:54:55!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:00:11!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:05:13!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:10:14!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:15:21!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:20:27!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:25:33!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:30:39!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:35:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:40:47!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:45:49!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:51:01!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 04:56:12!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:01:12!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:06:13!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:11:29!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:16:29!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:24:49!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:29:57!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:34:57!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:39:57!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:44:58!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:50:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 05:55:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:00:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:05:22!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:10:28!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:15:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:20:40!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:25:46!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:30:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:35:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:40:55!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 06:46:03!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 06:51:03!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 06:56:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:01:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:06:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:14:53!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:20:00!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:25:18!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:30:19!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:35:24!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:40:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:45:27!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:50:33!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 07:55:39!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:00:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:05:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:10:59!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:16:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:21:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:26:18!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:31:19!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:36:35!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:44:56!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:50:04!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 08:55:21!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:00:22!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:05:30!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:10:36!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:15:42!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:20:43!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:25:49!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 09:30:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:35:57!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:41:03!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:46:08!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 09:51:19!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.1 2021-07-17 09:56:20!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 10:00:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 10:05:31!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 10:10:35!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 10:15:47!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 10:20:47!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 10:25:50!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 10:30:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 10:35:55!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.2 2021-07-17 10:41:04!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 10:46:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.3 2021-07-17 10:51:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 10:56:31!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 11:01:32!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.5 2021-07-17 11:06:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.5 2021-07-17 11:11:35!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 11:16:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 11:21:59!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.4 2021-07-17 11:27:01!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.5 2021-07-17 11:32:03!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.5 2021-07-17 11:37:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 11:42:07!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 11:47:12!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.6 2021-07-17 11:52:14!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 11:57:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 12:02:18!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 12:07:24!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.7 2021-07-17 12:12:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.8 2021-07-17 12:17:27!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 12:22:29!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 12:27:31!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 12:32:40!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 12:37:43!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 12:42:49!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 12:47:50!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 12:52:56!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 12:58:02!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 13:03:04!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 13:08:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 13:13:08!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 13:18:09!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 13:23:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 13:28:21!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.2 2021-07-17 13:33:27!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 13:38:29!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 13:43:35!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 13:48:37!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 13:53:39!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 13:58:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:03:46!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:08:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.3 2021-07-17 14:13:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.3 2021-07-17 14:19:00!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.3 2021-07-17 14:24:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:29:08!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:34:14!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:39:28!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:44:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:49:35!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:54:38!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 14:59:44!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 15:04:50!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 15:09:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 15:14:53!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:19:59!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:25:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:30:11!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:35:17!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:40:19!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:45:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 15:50:31!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 15:55:37!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:00:43!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:05:45!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:10:47!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:15:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:20:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:26:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:31:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 16:36:08!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.6 2021-07-17 16:41:13!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:46:20!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.5 2021-07-17 16:51:43!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 16:57:00!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:02:08!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:07:10!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:12:12!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:17:13!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:22:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:27:21!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:32:23!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:37:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.4 2021-07-17 17:42:31!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.3 2021-07-17 17:47:32!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.3 2021-07-17 17:52:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.2 2021-07-17 17:57:36!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.2 2021-07-17 18:02:42!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.2 2021-07-17 18:07:48!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.2 2021-07-17 18:12:48!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:17:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:22:53!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:27:59!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:33:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:38:07!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:43:09!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:48:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 18:53:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 18:58:22!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:03:28!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:08:36!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:13:40!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:18:46!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:23:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:28:58!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:34:00!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18.1 2021-07-17 19:39:02!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:44:04!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:49:05!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:54:07!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 19:59:13!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:04:15!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:09:21!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:14:27!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:19:33!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:24:35!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:29:41!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:34:47!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:39:53!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:44:59!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:50:00!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 20:55:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:00:08!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:05:10!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:10:17!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:15:22!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:20:28!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:25:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:30:40!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:35:46!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:40:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:45:58!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:51:04!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 21:56:16!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:01:17!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:06:22!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:11:28!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:16:34!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:21:51!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:26:52!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:31:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:36:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:42:12!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:47:14!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:52:20!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 18 2021-07-17 22:57:26!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:02:28!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:07:30!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:12:36!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:17:42!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:22:48!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:27:54!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:33:00!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:38:06!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:43:12!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:48:13!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:53:19!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59 MjAyMS0wNy0xNw== 17.9 2021-07-17 23:58:25!_ESC_!2021-07-17 00:00:00|2021-07-17 23:59:59
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-00-03, VALUE: 17.9
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-05-06, VALUE: 17.8
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-10-07, VALUE: 17.8
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-15-14, VALUE: 17.8
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-20-16, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-25-17, VALUE: 17.8
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-30-19, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-35-25, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-40-27, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-45-29, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-50-30, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_00-55-32, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-00-34, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-05-36, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-10-42, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-15-53, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-20-54, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-26-05, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-31-05, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-36-06, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-41-23, VALUE: 17.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-49-43, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-54-50, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_01-59-50, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-04-51, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-09-51, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-14-51, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-19-51, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-25-09, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-30-10, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-35-16, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-40-18, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-45-24, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-50-26, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_02-55-32, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-00-38, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-05-44, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-10-52, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-15-56, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-20-57, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-26-07, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-31-07, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-39-45, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-44-45, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-49-52, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_03-54-55, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-00-11, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-05-13, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-10-14, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-15-21, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-20-27, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-25-33, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-30-39, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-35-45, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-40-47, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-45-49, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-51-01, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_04-56-12, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-01-12, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-06-13, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-11-29, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-16-29, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-24-49, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-29-57, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-34-57, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-39-57, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-44-58, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-50-15, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_05-55-15, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-00-16, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-05-22, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-10-28, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-15-34, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-20-40, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-25-46, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-30-52, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-35-54, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-40-55, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-46-03, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-51-03, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_06-56-05, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-01-15, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-06-15, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-14-53, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-20-00, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-25-18, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-30-19, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-35-24, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-40-25, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-45-27, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-50-33, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_07-55-39, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-00-45, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-05-51, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-10-59, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-16-05, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-21-15, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-26-18, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-31-19, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-36-35, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-44-56, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-50-04, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_08-55-21, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-00-22, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-05-30, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-10-36, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-15-42, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-20-43, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-25-49, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-30-51, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-35-57, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-41-03, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-46-08, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-51-19, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_09-56-20, VALUE: 17.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-00-25, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-05-31, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-10-35, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-15-47, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-20-47, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-25-50, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-30-45, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-35-55, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-41-04, VALUE: 17.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-46-05, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-51-15, VALUE: 17.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_10-56-31, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-01-32, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-06-34, VALUE: 17.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-11-35, VALUE: 17.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-16-52, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-21-59, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-27-01, VALUE: 17.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-32-03, VALUE: 17.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-37-05, VALUE: 17.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-42-07, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-47-12, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-52-14, VALUE: 17.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_11-57-16, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-02-18, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-07-24, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-12-25, VALUE: 17.7
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-17-27, VALUE: 17.8
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-22-29, VALUE: 17.9
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-27-31, VALUE: 17.9
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-32-40, VALUE: 17.9
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-37-43, VALUE: 17.9
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-42-49, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-47-50, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-52-56, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_12-58-02, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-03-04, VALUE: 17.9
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-08-06, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-13-08, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-18-09, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-23-16, VALUE: 18
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-28-21, VALUE: 18.1
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-33-27, VALUE: 18.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-38-29, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-43-35, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-48-37, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-53-39, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_13-58-45, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-03-46, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-08-52, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-13-54, VALUE: 18.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-19-00, VALUE: 18.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-24-06, VALUE: 18.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-29-08, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-34-14, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-39-28, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-44-34, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-49-35, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-54-38, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_14-59-44, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-04-50, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-09-52, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-14-53, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-19-59, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-25-05, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-30-11, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-35-17, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-40-19, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-45-25, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-50-31, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_15-55-37, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-00-43, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-05-45, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-10-47, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-15-54, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-20-54, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-26-05, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-31-06, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-36-08, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-41-13, VALUE: 18.6
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-46-20, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-51-43, VALUE: 18.5
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_16-57-00, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-02-08, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-07-10, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-12-12, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-17-13, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-22-15, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-27-21, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-32-23, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-37-25, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-42-31, VALUE: 18.4
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-47-32, VALUE: 18.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-52-34, VALUE: 18.3
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_17-57-36, VALUE: 18.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_18-02-42, VALUE: 18.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_18-07-48, VALUE: 18.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, READING: temperature, TIMESTAMP: 2021-07-17_18-12-48, VALUE: 18.2
2021.07.18 12:42:20 5: DbRep DBReporting_LaCrosse - Runtimestring: 2021-07-17, DEVICE: LaCrosse_3E, R
MySQL [fhem]> SELECT table_schema "DB Name",
-> Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
-> FROM information_schema.tables
-> GROUP BY table_schema;
+--------------------+---------------+
| DB Name | DB Size in MB |
+--------------------+---------------+
| fhem | 4385.0 |
| information_schema | 0.0 |
+--------------------+---------------+
###################################################
## Jahres Statistik vom Wechselrichter für das Finanzamt Formular
##
SELECT * FROM
(SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE
FROM history
WHERE DEVICE = 'WR_1_API'
AND READING LIKE 'Statistic_%Year'
AND READING NOT LIKE '%Autarky%'
AND READING NOT LIKE '%Rate%'
AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d')
AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d')
ORDER BY TIMESTAMP DESC
) AS x1 GROUP BY x1.READING ;
+---------------------+---------------------------------+-------+
| TIMESTAMP | READING | VALUE |
+---------------------+---------------------------------+-------+
| 2020-12-31 14:57:03 | Statistic_EnergyFeedInGrid_Year | 5200 |
| 2020-12-31 14:57:03 | Statistic_EnergyHomeBat_Year | 1435 |
| 2020-12-31 14:57:03 | Statistic_EnergyHomeGrid_Year | 2386 |
| 2020-12-31 14:57:03 | Statistic_EnergyHomePvSum_Year | 4765 |
| 2020-12-31 14:57:03 | Statistic_EnergyHomePv_Year | 3330 |
| 2020-12-31 14:57:03 | Statistic_EnergyHome_Year | 7149 |
| 2020-12-31 14:57:03 | Statistic_TotalConsumption_Year | 7152 |
| 2020-12-31 14:57:03 | Statistic_Yield_NoBat_Year | 8530 |
| 2020-12-31 14:57:03 | Statistic_Yield_Year | 9965 |
+---------------------+---------------------------------+-------+
SqlResultRow_1 TIMESTAMP|READING|VALUE
SqlResultRow_2 2020-12-31 14:57:03|Statistic_EnergyFeedInGrid_Year|5200
SqlResultRow_3 2020-12-31 14:57:03|Statistic_EnergyHomeBat_Year|1435
SqlResultRow_4 2020-12-31 14:57:03|Statistic_EnergyHomeGrid_Year|2386
SqlResultRow_5 2020-12-31 14:57:03|Statistic_EnergyHomePvSum_Year|4765
SqlResultRow_6 2020-12-31 14:57:03|Statistic_EnergyHomePv_Year|3330
SqlResultRow_7 2020-12-31 14:57:03|Statistic_EnergyHome_Year|7149
SqlResultRow_8 2020-12-31 14:57:03|Statistic_TotalConsumption_Year|7152
SqlResultRow_9 2020-12-31 14:57:03|Statistic_Yield_NoBat_Year|8530
SqlResultRow_10 2020-12-31 14:57:03|Statistic_Yield_Year|9965
ZitatIch glaube ich hatte auch schon mal gefragt, ob man bei zweispaltigem Output nicht direkt die erste Spalte als reading Namen und die Zweite als Wert im Device setzen kann.Das habe ich nicht vorgesehen. Grund ist vor allem dass mann mit SQL allerhand "Spielchen" treiben kann, so zum Beispiel im Ergebnis das Reading umbennenn. Dadurch wäre es nicht mehr FHEM konform und würde wieder eine Fehlerbehandlung nach sich ziehen. Denk du weißt was ich meine.
ZitatDu könnest mit dem Attr userExitFn die Ergebnisse in eine eigene Funktion umleiten, aufspalten und eigene Readings im DbRep Device oder Dummy etc. setzen wie du es willst. Beispiel für userExitFn habe ich m.W. im Wiki.
Hättest Du eventuell Code, mit dem ich das hin bekomme?
ZitatKann ich aus dem sqlCmd direkt auf die interne Variablen Steuerung verweisen?Auf die Zeitsteuerung ja (steht in ComRef).
attr <name> reading eto%,Einspeisung EXCLUDE=etoday
attr <name> reading etotal,etoday,Ein% EXCLUDE=%Wirkleistung
attr <name> device TYPE=SSCam EXCLUDE=SDS1_SVS
attr <name> device TYPE=SSCam,TYPE=ESPEasy EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=TYPE=SSCam
Zitat von: DS_Starter am 22 September 2021, 17:34:17Das mit reading und device hatte ich gesehen und gehofft dort einfach meine Filter rein zu bekommen.
Du könnest mit dem Attr userExitFn die Ergebnisse in eine eigene Funktion umleiten, aufspalten und eigene Readings im DbRep Device oder Dummy etc. setzen wie du es willst. Beispiel für userExitFn habe ich m.W. im Wiki.
Auf die Zeitsteuerung ja (steht in ComRef).
Auf reading/device nicht weil die Attribute zB. auch so gesetzt werden können:Code Auswählen
attr <name> reading eto%,Einspeisung EXCLUDE=etoday
attr <name> reading etotal,etoday,Ein% EXCLUDE=%Wirkleistung
attr <name> device TYPE=SSCam EXCLUDE=SDS1_SVS
attr <name> device TYPE=SSCam,TYPE=ESPEasy EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=SDS1_SVS
attr <name> device EXCLUDE=TYPE=SSCam
Um diese Methoden in ein beliebig aussehendes SQL zu übernehmen muß man wieder viel prüfen bzw. einschränken.
Oder einfach den User auf Fehler laufen lassen, dann könnte man es einfach zulassen. ;)
Zitat von: DS_Starter am 22 September 2021, 17:46:51Man sollte als user ja auch sein SQL durchaus mal testen. Ich bekomme ja auch so SQL Fehler, wenn ich im sqlCmd was falsches rein schreibe.
Naja wie gesagt, ich könnte einfach reading bzw. device als Platzhalter im SQL vorsehen und blind 1:1 übernehmen was im Attr steht. Wenn der User das Attr nicht passend zu seinen SQL definiert läuft das Ding eben auf Error.
Eigentlich auch nicht sooo schlimm wenn ich darüber nachdenke.
Könnte ich eigentlich recht schnell einbauen mal so leichtsinnig dahin gesagt ;)
Zitat von: DS_Starter am 22 September 2021, 20:58:02Moin Heiko,
Ich habe eine Testversion in mein contrib gestellt.
Wenn im sqlCmd die Platzhalter §device§ bzw. §reading§ vorhanden sind, werden an dieser Stelle die Attributwerte von device, reading eingesetzt.
SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=§device§ AND §reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING ;
Internals:
CFGFN
DATABASE fhem
DEF LogDB
FUUID 614b0a08-f33f-61a8-f1e8-10ef59dfe90ba545
FVERSION 93_DbRep.pm:v8.42.9-s24929/2021-09-06
LASTCMD sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE='WR_1_API' AND READING LIKE 'Statistic_%Year' AND READING NOT LIKE '%Autarky%' AND READING NOT LIKE '%Rate%' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING ;
MODEL Client
NAME LogDBRep_Statistic_previous_Year
NOTIFYDEV global,LogDBRep_Statistic_previous_Year
NR 77178
NTFY_ORDER 50-LogDBRep_Statistic_previous_Year
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS USAGE,ALL PRIVILEGES
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST
VERSION 8.42.9
CV:
aggregation no
aggsec 1
destr 2020-12-31
dsstr 2019-04-03
epoch_seconds_end 1609455599
mestr 12
msstr 04
testr 23:59:59
tsstr 00:23:42
wdadd 432000
yestr 2020
ysstr 2019
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
LogDB:
TIME 1632307720.54312
VALUE initialized
OLDREADINGS:
READINGS:
2021-09-23 07:49:23 SqlResultRow_1 TIMESTAMP|READING|VALUE
2021-09-23 07:49:23 SqlResultRow_10 2020-12-31 14:57:03|Statistic_Yield_Year|9965
2021-09-23 07:49:23 SqlResultRow_2 2020-12-31 14:57:03|Statistic_EnergyFeedInGrid_Year|5200
2021-09-23 07:49:23 SqlResultRow_3 2020-12-31 14:57:03|Statistic_EnergyHomeBat_Year|1435
2021-09-23 07:49:23 SqlResultRow_4 2020-12-31 14:57:03|Statistic_EnergyHomeGrid_Year|2386
2021-09-23 07:49:23 SqlResultRow_5 2020-12-31 14:57:03|Statistic_EnergyHomePvSum_Year|4765
2021-09-23 07:49:23 SqlResultRow_6 2020-12-31 14:57:03|Statistic_EnergyHomePv_Year|3330
2021-09-23 07:49:23 SqlResultRow_7 2020-12-31 14:57:03|Statistic_EnergyHome_Year|7149
2021-09-23 07:49:23 SqlResultRow_8 2020-12-31 14:57:03|Statistic_TotalConsumption_Year|7152
2021-09-23 07:49:23 SqlResultRow_9 2020-12-31 14:57:03|Statistic_Yield_NoBat_Year|8530
2021-09-23 07:49:23 sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE='WR_1_API' AND READING LIKE 'Statistic_%Year' AND READING NOT LIKE '%Autarky%' AND READING NOT LIKE '%Rate%' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING ;
2021-09-23 07:49:23 sqlResultNumRows 9
2021-09-23 07:49:23 state done
Attributes:
DbLogExclude .*
allowDeletion 0
comment Version 2021.09.23 07:48
device WR_1_API
reading Statistic_%Year EXCLUDE=%Autarky%,%Rate%
room Strom->Energie,System
Zitat von: DS_Starter am 23 September 2021, 08:09:14Okay, dann kommt das mit in mein Scheduling Device :-)
Die variablen werden natürlich ersetzt. Das sqlCmd muss man einfach neu reinkopieren. Bei Skripten ist das eh kein Problem.
Zitat von: DS_Starter am 24 September 2021, 23:09:57Leider nein
Hallo Christian,
hast im Statement den gekennzeichneten Teil vergessen:
SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=§device§ AND READING=§reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING;
Damit läuft es.
Internals:
DATABASE fhem
DEF LogDB
FUUID 614b0a08-f33f-61a8-f1e8-10ef59dfe90ba545
FVERSION 93_DbRep.pm:v8.43.0-s24929/2021-09-06
LASTCMD sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=§device§ AND READING=§reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING
MODEL Client
NAME LogDBRep_Statistic_previous_Year
NOTIFYDEV global,LogDBRep_Statistic_previous_Year
NR 541
NTFY_ORDER 50-LogDBRep_Statistic_previous_Year
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS USAGE,ALL PRIVILEGES
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST
UEFN_REGEXP .*:.*
USEREXITFN splitReading
VERSION 8.43.0
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2021-09-25 10:33:55 SqlResultRow_1 TIMESTAMP|READING|VALUE
2021-09-25 10:33:55 sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=§device§ AND READING=§reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING
2021-09-25 10:33:55 sqlResultNumRows 0
2021-09-25 10:33:55 state done
Attributes:
DbLogExclude .*
allowDeletion 0
comment Version 2021.09.23 15:00
device WR_1_API
reading Statistic_%Year EXCLUDE=%Autarky%,%Rate%
room System
userExitFn splitReading .*:.*
verbose 3
2021.09.25 10:42:32.913 4: DbRep Rep.LogDB - -------- New selection ---------
2021.09.25 10:42:32.914 4: DbRep Rep.LogDB - Command: sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=§device§ AND READING=§reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING;
2021.09.25 10:42:32.917 4: DbRep Rep.LogDB - FullDay option: 0
2021.09.25 10:42:32.917 4: DbRep Rep.LogDB - Timestamp begin human readable: 2021-01-01 00:00:00
2021.09.25 10:42:32.918 4: DbRep Rep.LogDB - Timestamp end human readable: 2021-09-24 23:59:59
2021.09.25 10:42:32.935 4: DbRep Rep.LogDB - adminCredentials successfully read from file
2021.09.25 10:42:32.939 4: DbRep Rep.LogDB - database user for operation: root
2021.09.25 10:42:32.940 4: DbRep Rep.LogDB - SQL execute: SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE='MyWetter' AND READING='temperature' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING;
2021.09.25 10:42:32.979 4: DbRep Rep.LogDB - SQL result: 2020-12-31 00:02:59 temperature 0
2021.09.25 10:45:15.062 4: DbRep LogDBRep_Statistic_previous_Year - -------- New selection ---------
2021.09.25 10:45:15.062 4: DbRep LogDBRep_Statistic_previous_Year - Command: sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=\u00a7device\u00a7 AND READING=\u00a7reading\u00a7 AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING
2021.09.25 10:45:15.062 4: DbRep LogDBRep_Statistic_previous_Year - Timestamp begin human readable: not set
2021.09.25 10:45:15.062 4: DbRep LogDBRep_Statistic_previous_Year - Timestamp end human readable: not set
2021.09.25 10:45:15.085 5: DbRep LogDBRep_Statistic_previous_Year - start BlockingCall with PID "17956"
2021.09.25 10:45:15.140 4: DbRep LogDBRep_Statistic_previous_Year - database user for operation: fhemuser
2021.09.25 10:45:15.141 4: DbRep LogDBRep_Statistic_previous_Year - SQL execute: SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE='WR_1_API' AND READING='Statistic_%Year EXCLUDE=%Autarky%,%Rate%' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING;
2021.09.25 10:45:15.164 5: DbRep LogDBRep_Statistic_previous_Year - BlockingCall finished PID "17956"
2021.09.25 10:45:15.164 5: DbRep LogDBRep_Statistic_previous_Year - SQL result decoded: TIMESTAMP|READING|VALUE
...WHERE DEVICE=§device§ AND §reading§ AND...
...WHERE DEVICE='WR_1_API' AND READING LIKE 'Statistic_%Year' AND READING NOT LIKE '%Autarky%' AND READING NOT LIKE '%Rate%' AND...
Statistic_%Year EXCLUDE=%Autarky%,%Rate%
Zitat von: DS_Starter am 25 September 2021, 11:22:23Was mich jedoch wundert ist, dass es bereits in FVERSION 93_DbRep.pm:v8.42.9-s24929/2021-09-06 funktioniert hat.
Dein reading-Attr:
Code Auswählen
Statistic_%Year EXCLUDE=%Autarky%,%Rate%
kann in dem Kontext nicht klappen weil reading mit §reading§ im sqlCmd 1:1 übernommen wird.
In festgelegten sql Commands löse ich EXCLUDE= im Modul entsprechend auf um die SQL zu gestalten. Aber in der freien sqlCmd geht das nicht. Hier hat der user die Gewalt über das was er ausführen möchte und muß die SQL entsprechend bauen.
Die Platzhalter können hier nur eine kleine Hilfe zur Verallgemeinerung sein.
ZitatWas mich jedoch wundert ist, dass es bereits in FVERSION 93_DbRep.pm:v8.42.9-s24929/2021-09-06 funktioniert hat.Schwer vorstellbar weil es bei der V noch keine Platzhalter/Ersetzungen von §device§, §reading§ gab.
Zitat von: DS_Starter am 25 September 2021, 12:07:47Sehr merkwürdig, da ich das list Device ja geposted hatte.
Schwer vorstellbar weil es bei der V noch keine Platzhalter/Ersetzungen von §device§, §reading§ gab.
Who knows ... Magie .... ;)
# Allow inplace replacement of keywords for timings (use time attribute syntax), device, reading
$sql =~ s/§timestamp_begin§/'$runtime_string_first'/g;
$sql =~ s/§timestamp_end§/'$runtime_string_next'/g;
## ch.eick patch ########################################
# $sql =~ s/§device§/'$device'/xg if ($device);
# $sql =~ s/§reading§/'$reading'/xg if ($reading);
if ($reading) {
$reading = DbRep_createCommonSql($hash,undef,undef,$reading,undef,undef,undef);
$reading =~ s/AND 1 \;//ig;
$sql =~ s/§reading§/$reading/ig;
}
if ($device) {
$device = DbRep_createCommonSql($hash,undef,$device,undef,undef,undef,undef);
$device =~ s/AND 1 \;//ig;
$sql =~ s/§device§/$device§/ig;
}
#########################################################
2021.09.25 14:43:38.946 4: DbRep LogDBRep_Statistic_previous_Year - -------- New selection ---------
2021.09.25 14:43:38.946 4: DbRep LogDBRep_Statistic_previous_Year - Command: sqlCmd SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE \u00a7device\u00a7 AND \u00a7reading\u00a7 AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING
2021.09.25 14:43:38.946 4: DbRep LogDBRep_Statistic_previous_Year - Timestamp begin human readable: not set
2021.09.25 14:43:38.946 4: DbRep LogDBRep_Statistic_previous_Year - Timestamp end human readable: not set
2021.09.25 14:43:38.968 5: DbRep LogDBRep_Statistic_previous_Year - start BlockingCall with PID "32497"
2021.09.25 14:43:39.015 4: DbRep LogDBRep_Statistic_previous_Year - database user for operation: fhemuser
2021.09.25 14:43:39.019 1: PERL WARNING: Use of uninitialized value $device in pattern match (m//) at ./FHEM/93_DbRep.pm line 9870.
2021.09.25 14:43:39.020 1: PERL WARNING: Use of uninitialized value $idevice in split at ./FHEM/93_DbRep.pm line 9896.
2021.09.25 14:43:39.020 5: DbRep LogDBRep_Statistic_previous_Year - Devices for operation -
included (0):
included with wildcard:
excluded (0):
excluded with wildcard:
2021.09.25 14:43:39.023 5: DbRep LogDBRep_Statistic_previous_Year - Readings for operation -
included (0):
included with wildcard: Statistic_%Year
excluded (0):
excluded with wildcard: %Autarky%,%Rate%
2021.09.25 14:43:39.024 1: PERL WARNING: Use of uninitialized value $selspec in concatenation (.) or string at ./FHEM/93_DbRep.pm line 9561.
2021.09.25 14:43:39.025 1: PERL WARNING: Use of uninitialized value $addon in concatenation (.) or string at ./FHEM/93_DbRep.pm line 9636.
2021.09.25 14:43:39.026 5: DbRep LogDBRep_Statistic_previous_Year - Devices for operation -
included (1): WR_1_API
included with wildcard:
excluded (0):
excluded with wildcard:
2021.09.25 14:43:39.026 1: PERL WARNING: Use of uninitialized value $reading in substitution (s///) at ./FHEM/93_DbRep.pm line 9973.
2021.09.25 14:43:39.027 1: PERL WARNING: Use of uninitialized value $reading in pattern match (m//) at ./FHEM/93_DbRep.pm line 9975.
2021.09.25 14:43:39.027 1: PERL WARNING: Use of uninitialized value $ireading in split at ./FHEM/93_DbRep.pm line 9996.
2021.09.25 14:43:39.028 5: DbRep LogDBRep_Statistic_previous_Year - Readings for operation -
included (0):
included with wildcard:
excluded (0):
excluded with wildcard:
2021.09.25 14:43:39.029 4: DbRep LogDBRep_Statistic_previous_Year - SQL execute: SELECT * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE ( DEVICE = 'WR_1_API' ) AND ( READING LIKE 'Statistic_%Year' ) AND READING NOT LIKE '%Autarky%' AND READING NOT LIKE '%Rate%' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') ORDER BY TIMESTAMP DESC ) AS x1 GROUP BY x1.READING;
2021.09.25 14:43:39.081 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_EnergyFeedInGrid_Year 5200
2021.09.25 14:43:39.081 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_EnergyHomeBat_Year 1435
2021.09.25 14:43:39.082 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_EnergyHomeGrid_Year 2386
2021.09.25 14:43:39.082 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_EnergyHomePvSum_Year 4765
2021.09.25 14:43:39.082 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_EnergyHomePv_Year 3330
2021.09.25 14:43:39.082 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_EnergyHome_Year 7149
2021.09.25 14:43:39.082 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_TotalConsumption_Year 7152
2021.09.25 14:43:39.082 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_Yield_NoBat_Year 8530
2021.09.25 14:43:39.083 4: DbRep LogDBRep_Statistic_previous_Year - SQL result: 2020-12-31 14:57:03 Statistic_Yield_Year 9965
2021.09.25 14:43:39.097 5: DbRep LogDBRep_Statistic_previous_Year - BlockingCall finished PID "32497"
2021.09.25 14:43:39.098 5: DbRep LogDBRep_Statistic_previous_Year - SQL result decoded: TIMESTAMP|READING|VALUE\u00a72020-12-31 14:57:03|Statistic_EnergyFeedInGrid_Year|5200\u00a72020-12-31 14:57:03|Statistic_EnergyHomeBat_Year|1435\u00a72020-12-31 14:57:03|Statistic_EnergyHomeGrid_Year|2386\u00a72020-12-31 14:57:03|Statistic_EnergyHomePvSum_Year|4765\u00a72020-12-31 14:57:03|Statistic_EnergyHomePv_Year|3330\u00a72020-12-31 14:57:03|Statistic_EnergyHome_Year|7149\u00a72020-12-31 14:57:03|Statistic_TotalConsumption_Year|7152\u00a72020-12-31 14:57:03|Statistic_Yield_NoBat_Year|8530\u00a72020-12-31 14:57:03|Statistic_Yield_Year|9965
ZitatIch habe mal in den Code geschaut, wäre es denkbar die Funktion DbRep_createCommonSql() zu verwenden, om den §reading§ Syntax zu übertragen?Ja, wäre evtl. möglich. Muß ich aber noch überlegen ob man sich damit keine Baustelle aufmacht.
ZitatIch habe die Bescnränkung der Zeichenanzahl entfernt. Das stammte noch aus der Zeit als man in device, reading nur einen einzigen Wert eintragen konnte. Hat sich inzwischen überlebt.
Da §reading§ von der Länge limitiert ist kann ich es dann so leider nicht verwenden. Ich wollte es natürlich dem Syntax vom Attribut reading angepasst nutzen.
Zitat von: DS_Starter am 25 September 2021, 20:13:12Okay,
Ja, wäre evtl. möglich. Muß ich aber noch überlegen ob man sich damit keine Baustelle aufmacht.
Ich habe die Bescnränkung der Zeichenanzahl entfernt. Das stammte noch aus der Zeit als man in device, reading nur einen einzigen Wert eintragen konnte. Hat sich inzwischen überlebt.
Ist ins contrib geladen.
z.B.
reduceLogNbl 90 average=day include=<device>:<reading>
setstate KS300 2021-10-05 18:12:16 temperature 14.8
setstate KS300 2021-10-05 00:10:00 MAXTemp 15.3000
setstate KS300 2021-10-05 00:10:01 MINTemp 11.7000
defmod MinMaxTemp DbRep logdb
attr MinMaxTemp allowDeletion 1
attr MinMaxTemp autoForward {\
".*MAX.*" => "KS300 => MAXTemp", \
".*MIN.*" => "KS300 => MINTemp",\
}
attr MinMaxTemp device KS300
attr MinMaxTemp fastStart 1
attr MinMaxTemp limit 300
attr MinMaxTemp reading temperature
attr MinMaxTemp room System->DbLog
attr MinMaxTemp showproctime 1
attr MinMaxTemp timestamp_begin previous_day_begin
attr MinMaxTemp timestamp_end previous_day_end
attr MinMaxTemp verbose 1
Zitat
2021.10.31 09:43:56.874 4: DbRep Rep.SSCam - -------- New selection ---------
2021.10.31 09:43:56.874 4: DbRep Rep.SSCam - Command: countEntries history
2021.10.31 09:43:56.875 4: DbRep Rep.SSCam - timeDiffToNow - year: , day: 10, hour: , min: , sec:
2021.10.31 09:43:56.875 4: DbRep Rep.SSCam - startMonth: 9 endMonth: 9 lastleapyear: baseYear: 2021 diffdaylight:1 isdaylight:0
2021.10.31 09:43:56.876 4: DbRep Rep.SSCam - FullDay option: 0
2021.10.31 09:43:56.876 4: DbRep Rep.SSCam - Time difference to current time for calculating Timestamp begin: 867601 sec
2021.10.31 09:43:56.877 4: DbRep Rep.SSCam - Timestamp begin human readable: 2021-10-21 09:43:55
2021.10.31 09:43:56.877 4: DbRep Rep.SSCam - Timestamp end human readable: 2021-10-31 09:43:56
2021.10.31 09:43:56.878 4: DbRep Rep.SSCam - Aggregation: no
2021.10.31 09:43:56.952 4: DbRep Rep.SSCam - SQL execute: SELECT COUNT(*) FROM history where ( DEVICE = 'SMA_Energymeter' ) AND TIMESTAMP >= '2021-10-21 09:43:55' AND TIMESTAMP <= '2021-10-31 09:43:56' ;
2021.11.02 17:48:24 4: DbRep dbdel_Handy - -------- New selection ---------
2021.11.02 17:48:24 4: DbRep dbdel_Handy - Command: countEntries history
2021.11.02 17:48:24 4: DbRep dbdel_Handy - Timestamp begin human readable: not set
2021.11.02 17:48:24 4: DbRep dbdel_Handy - Timestamp end human readable: not set
2021.11.02 17:48:24 4: DbRep dbdel_Handy - Aggregation: no
2021.11.02 17:48:25 4: DbRep dbdel_Handy - SQL execute: SELECT COUNT(*) FROM history where 1 ;
ZitatWeil das ein Fehler ist und der Logik geschuldet ist was FHEM zurückgibt wenn es den in TYPE= angegebenen devspec nicht gibt.
Aber warum ist dann die select-Abfrage so ... where = 1 ? Weil das Device nicht gefunden wird? so muss es natürlich alle Datensätze anzeigen.
Könnte man das noch abfangen?
Zitat von: DS_Starter am 21 November 2021, 13:24:50
Hallo Bernd, @all,
ich habe deinen Request umgesetzt und ein neues Attr zur Einstellung der Nachkommastellen eingebaut:
numDecimalPlaces- Legt die Anzahl der Nachkommastellen bei Readings mit numerischen Ergebnissen fest.
Ausgenommen sind Ergebnisse aus userspezifischen Abfragen (sqlCmd).
(default: 4)
Zitatc) Alle Werte die älter sind als 365d löschen.
allowDeletion = 1
timeOlderThan = d:365
Zitatb) Alle Werte die älter sind als 180d auf einen täglichen Mittelwert um 12:00 Uhr reduzieren.
allowDeletion = 1
timeOlderThan = d:180
(timeDiffToNow = d:365 - optional)
Zitata) Alle Werte die jünger als 30d sind, auf einen stündlichen Mittelwert um xx:30 Uhr reduzieren.
allowDeletion = 1
timeDiffToNow = d:30
Zitat von: DS_Starter am 03 Dezember 2021, 22:31:10
ja, das sollte machbar sein.
Übliche Praxis ist für jede Aufgabe ein separates DbRep zu erstellen, zu parametrisieren und regelmäßig ausführen lassen.
Ich nehme immer ein bereits existierendes Devices, kopiere es und passe es dann an.
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat
Offen ist noch, dass bei average die letzte Stunde nicht auf den Halbstundenwert reduziert wird und bei average=day der letzte
Tag nicht auf den 12:00 Wert reduziert wird. Aber da bin ich dran.
Zitat von: DS_Starter am 03 Dezember 2021, 22:31:10
Mit dem Befehl "set ... reduceLog average=day" werden die Daten älter als 180 Tage auf einen Tagesmittelwert reduziert.
Wenn du das optionale timeDiffToNow ebenfalls setzt, werden Daten älter als 180 und nicht älter als 365 Tage bearbeitet.
Sollen Device/Readings ausgeklammert werden, ergänzt du den Befehl mit "EXCLUDE=device1:reading1,device2:reading2,...".
EXCLUDE=Device:Reading1, Device:Reading2 INCLUDE=Device:.*
attr ... device Device
set ... reduceLog average=day EXCLUDE=Device:Reading1,Device:Reading2
attr ... device Device
attr ... reading EXCLUDE=Reading1,Reading2
set ... reduceLog average=day
set <name> reduceLog 174:180 average EXCLUDE=SMA_Energymeter:Bezug_Wirkleistung,DumDev:Energy INCLUDE=%:%
Zitat von: DS_Starter am 07 Dezember 2021, 00:14:25
Nun werden auch direkt bei der Kommandozeilenangabe von reduceLog gleichzeitig angegebene EXCLUDE / INCLUDE Optionen berücksichtigt:
So ist der Aufruf ebenfalls möglich um alle Device/Reading Kombinationen außer SMA_Energymeter:Bezug_Wirkleistung und DumDev:Energy zu bearbeiten:Code Auswählen
set <name> reduceLog 174:180 average EXCLUDE=SMA_Energymeter:Bezug_Wirkleistung,DumDev:Energy INCLUDE=%:%
EXCLUDE=%_Radiato%:%
Zitat von: Sailor am 07 Dezember 2021, 12:22:27Hallo Sailer,
Verstehe ich das richtig, das "%" ersetzt das ".*" an beliebiger Stelle?
BR_RadiatorL
BR_RadiatorR
GR_Radiator
KT_Radiator
TR_RadiatorL
TR_RadiatorR
CR_Radiator
werden mitCode AuswählenEXCLUDE=%_Radiato%:%
abgefangen?
Zitat von: ch.eick am 07 Dezember 2021, 12:31:38
ja, das % ist für ein beliebiges Zeichen bei der SQL Abfrage in einer Datenbank.
READINGS:
2021-12-08 23:14:58 background_processing_time 0.0858
2021-12-08 23:14:58 dbEncoding UTF8
2021-12-08 23:14:58 indexState Index Report_Idx exists
2021-12-08 23:14:58 sql_processing_time 0.0815
2021-12-08 23:14:58 state done
2021-12-08 23:14:58 timestamp_oldest_dataset 2017-06-02 15:30:00
2021-12-08 23:14:58 userRights INSERT,SELECT,UPDATE,FILE,SHOW VIEW,INDEX,DELETE,PROCESS
Zitat von: DS_Starter am 03 Dezember 2021, 22:31:10
ja, das sollte machbar sein.
Übliche Praxis ist für jede Aufgabe ein separates DbRep zu erstellen, zu parametrisieren und regelmäßig ausführen lassen.
*01:00:00 {
my $FileSize = int((-s "/home/fhem/fhemDb/fhem.db")/(1024*1024));
fhem("setreading myDbLog DbFileSize " . $FileSize);
### Delete all values older than 365 days
fhem("set DbRepArchive_365d delEntries EXCLUDE=CH_GasCalculator:CH_GasCounter_counters.A_EnergyMonthLast,CH_GasCalculator:CH_GasCounter_counters.A_EnergyMeter,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMonthLast,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMeter,myDbLog:DbFileSize");
### Create daily average value for all values older than 180 days
fhem("set DbRepArchive_180d reduceLog average=day EXCLUDE=CH_GasCalculator:CH_GasCounter_counters.A_EnergyMonthLast,CH_GasCalculator:CH_GasCounter_counters.A_EnergyMeter,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMonthLast,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMeter INCLUDE=%_Thermosta%:%,%_Radiato%:%,CH_Pressure%:%,CH_Speedtest:download,CH_Speedtest:upload,CH_Speedtest:ping,sysmon:%,myKm200:%,CH_GasCalculator:%,CH_WaterCalculator:%,CH_ElectricityCalculator:%");
### Create hourly average value for all values older than 30 days
fhem("set DbRepArchive_030d reduceLog average EXCLUDE=CH_GasCalculator:CH_GasCounter_counters.A_EnergyMonthLast,CH_GasCalculator:CH_GasCounter_counters.A_EnergyMeter,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMonthLast,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMeter INCLUDE=%_Thermosta%:%,%_Radiato%:%,CH_Pressure%:%,CH_Speedtest:download,CH_Speedtest:upload,CH_Speedtest:ping,sysmon:%,myKm200:%,CH_GasCalculator:%,CH_WaterCalculator:%,CH_ElectricityCalculator:%");
### Shrink database
fhem("set DbRepBasic Vaccuum");
my $FileSize = int((-s "/home/fhem/fhemDb/fhem.db")/(1024*1024));
fhem("setreading myDbLog DbFileSize " . $FileSize);
}
Internals:
DATABASE /home/fhem/fhemDb/fhem.db
DEF myDbLog
FUUID 61ae23b0-f33f-02bc-d155-41d99a832a462b73
FVERSION 93_DbRep.pm:v8.46.1-s25321/2021-12-07
LASTCMD
MODEL Client
NAME DbRepArchive_030d
NOTIFYDEV global,DbRepArchive_030d
NR 3489
NTFY_ORDER 50-DbRepArchive_030d
ROLE Client
STATE connected » ProcTime: 0.0020 sec
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE myDbLog
IDRETRIES 3
MINTS 2021-12-06 15:55:13
PACKAGE main
SQLHIST
VERSION 8.46.1
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2021-12-08 15:15:37 background_processing_time 0.0044
2021-12-08 15:15:37 index_state Index Report_Idx exists
2021-12-08 15:15:37 sql_processing_time 0.0020
2021-12-08 15:15:37 state connected
Attributes:
DbLogExclude .*
allowDeletion 1
devStateIcon connected.*:10px-kreis-gelb disconnect.*:10px-kreis-rot done.*:10px-kreis-gruen connected:10px-kreis-gruen
fastStart 0
group DbLog
role Client
room System
showproctime 1
stateFormat {ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeDiffToNow d:30
timeout 86400
Internals:
DATABASE /home/fhem/fhemDb/fhem.db
DEF myDbLog
FUUID 61ae247f-f33f-02bc-fd78-8f2cb9f61fd91343
FVERSION 93_DbRep.pm:v8.46.1-s25321/2021-12-07
LASTCMD
MODEL Client
NAME DbRepArchive_180d
NOTIFYDEV global,DbRepArchive_180d
NR 3490
NTFY_ORDER 50-DbRepArchive_180d
ROLE Client
STATE connected » ProcTime: 0.0024 sec
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE myDbLog
IDRETRIES 3
MINTS 2021-12-06 15:55:13
PACKAGE main
SQLHIST
VERSION 8.46.1
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2021-12-08 15:15:36 background_processing_time 0.0048
2021-12-08 15:15:36 index_state Index Report_Idx exists
2021-12-08 15:15:36 sql_processing_time 0.0024
2021-12-08 15:15:36 state connected
Attributes:
DbLogExclude .*
allowDeletion 1
devStateIcon connected.*:10px-kreis-gelb disconnect.*:10px-kreis-rot done.*:10px-kreis-gruen connected:10px-kreis-gruen
fastStart 0
group DbLog
role Client
room System
showproctime 1
stateFormat {ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeDiffToNow d:365 - 180
timeOlderThan 180
timeout 86400
Internals:
DATABASE /home/fhem/fhemDb/fhem.db
DEF myDbLog
FUUID 61ae252e-f33f-02bc-f22a-d79e2ad17ab37d95
FVERSION 93_DbRep.pm:v8.46.1-s25321/2021-12-07
LASTCMD
MODEL Client
NAME DbRepArchive_365d
NOTIFYDEV global,DbRepArchive_365d
NR 3491
NTFY_ORDER 50-DbRepArchive_365d
ROLE Client
STATE connected » ProcTime: 0.0044 sec
TYPE DbRep
UTF8 0
HELPER:
DBLOGDEVICE myDbLog
IDRETRIES 3
MINTS 2021-12-06 15:55:13
PACKAGE main
SQLHIST
VERSION 8.46.1
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2021-12-06 16:09:28 /--/----DELETED_ROWS_HISTORY-- 7143447
2021-12-08 15:15:54 background_processing_time 0.0087
2021-12-08 15:15:54 index_state Index Report_Idx exists
2021-12-08 15:15:54 sql_processing_time 0.0044
2021-12-08 15:15:54 state connected
Attributes:
DbLogExclude .*
allowDeletion 1
devStateIcon connected.*:10px-kreis-gelb disconnect.*:10px-kreis-rot done.*:10px-kreis-gruen connected:10px-kreis-gruen
fastStart 0
group DbLog
role Client
room System
showproctime 1
stateFormat {ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeOlderThan 365
timeout 86400
Zitat
Internals:
DATABASE /home/fhem/fhemDb/fhem.db
DEF myDbLog
FUUID 61ae252e-f33f-02bc-f22a-d79e2ad17ab37d95
FVERSION 93_DbRep.pm:v8.46.1-s25321/2021-12-07
LASTCMD
MODEL Client
NAME DbRepArchive_365d
NOTIFYDEV global,DbRepArchive_365d
NR 3491
NTFY_ORDER 50-DbRepArchive_365d
ROLE Client
STATE connected » ProcTime: 0.0044 sec
TYPE DbRep
UTF8 0
Attributes:
DbLogExclude .*
allowDeletion 1
devStateIcon connected.*:10px-kreis-gelb disconnect.*:10px-kreis-rot done.*:10px-kreis-gruen connected:10px-kreis-gruen
fastStart 0
group DbLog
role Client
room System
showproctime 1
stateFormat {ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeOlderThan d:365
timeout 86400
executeAfterProc set DbRepArchive_180d reduceLog average=day EXCLUDE=CH_GasCalculator:CH_GasCounter_counters.A_EnergyMonthLast,CH_GasCalculator:CH_GasCounter_counters.A_EnergyMeter,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMonthLast,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMeter
device EXCLUDE=CH_GasCalculator,CH_GasCalculator,CH_ElectricityCalculator,CH_ElectricityCalculator,myDbLog
readings: EXCLUDE=CH_GasCounter_counters.A_EnergyMonthLast,CH_GasCounter_counters.A_EnergyMeter,CH_ElectricityCounter_IEC_01_energyCalc_EnergyMonthLast,CH_ElectricityCounter_IEC_01_energyCalc_EnergyMeter,DbFileSize
Zitat
Internals:
DATABASE /home/fhem/fhemDb/fhem.db
DEF myDbLog
FUUID 61ae247f-f33f-02bc-fd78-8f2cb9f61fd91343
FVERSION 93_DbRep.pm:v8.46.1-s25321/2021-12-07
LASTCMD
MODEL Client
NAME DbRepArchive_180d
NOTIFYDEV global,DbRepArchive_180d
NR 3490
NTFY_ORDER 50-DbRepArchive_180d
ROLE Client
STATE connected » ProcTime: 0.0024 sec
TYPE DbRep
UTF8 0
Attributes:
DbLogExclude .*
allowDeletion 1
devStateIcon connected.*:10px-kreis-gelb disconnect.*:10px-kreis-rot done.*:10px-kreis-gruen connected:10px-kreis-gruen
fastStart 0
group DbLog
role Client
room System
showproctime 1
stateFormat {ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeDiffToNow d:365
timeOlderThan d:180
timeout 86400
executeAfterProc set DbRepArchive_030d reduceLog average EXCLUDE=CH_GasCalculator:CH_GasCounter_counters.A_EnergyMonthLast,CH_GasCalculator:CH_GasCounter_counters.A_EnergyMeter,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMonthLast,CH_ElectricityCalculator:CH_ElectricityCounter_IEC_01_energyCalc_EnergyMeter
device %_Thermosta,%_Radiato%,CH_Pressure%,CH_Speedtest,sysmon,myKm200,CH_GasCalculator,CH_WaterCalculator,CH_ElectricityCalculator
Zitat
Internals:
DATABASE /home/fhem/fhemDb/fhem.db
DEF myDbLog
FUUID 61ae23b0-f33f-02bc-d155-41d99a832a462b73
FVERSION 93_DbRep.pm:v8.46.1-s25321/2021-12-07
LASTCMD
MODEL Client
NAME DbRepArchive_030d
NOTIFYDEV global,DbRepArchive_030d
NR 3489
NTFY_ORDER 50-DbRepArchive_030d
ROLE Client
STATE connected » ProcTime: 0.0020 sec
TYPE DbRep
UTF8 0
Attributes:
DbLogExclude .*
allowDeletion 1
devStateIcon connected.*:10px-kreis-gelb disconnect.*:10px-kreis-rot done.*:10px-kreis-gruen connected:10px-kreis-gruen
fastStart 0
group DbLog
role Client
room System
showproctime 1
stateFormat {ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
timeDiffToNow d:30
timeout 86400
executeAfterProc set DbRepBasic Vaccuum
device %_Thermosta%,%_Radiato%,CH_Pressure,CH_Speedtest,sysmon,myKm200,CH_GasCalculator,CH_WaterCalculator,CH_ElectricityCalculator
*01:00:00 {
my $FileSize = int((-s "/home/fhem/fhemDb/fhem.db")/(1024*1024));
fhem("setreading myDbLog DbFileSize " . $FileSize);
### Delete all values older than 365 days
fhem("set DbRepArchive_365d delEntries");
}
ZitatIm set reduceLog der DbLog selber steckt der Fehler aber noch drin?Ja. Ich bin mir auch unsicher ob/wie ihn dort mit vertretbaren Aufwand bereinigen kann.
Internals:
CFGFN
DATABASE fhem
DEF LogDB
FUUID 61d43f05-f33f-61a8-ae1e-d125add1076a72f1
FVERSION 93_DbRep.pm:v8.43.0-s24929/2021-09-06
LASTCMD sqlCmd SELECT * FROM ( SELECT TIMESTAMP, CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year','')) AS READING, VALUE FROM ( SELECT
< snip >
MODEL Client
NAME LogDBRep_Statistic_previous_Quarter
NOTIFYDEV global,LogDBRep_Statistic_previous_Quarter
NR 27404
NTFY_ORDER 50-LogDBRep_Statistic_previous_Quarter
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS USAGE,ALL PRIVILEGES
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST
UEFN_REGEXP .*:.*
USEREXITFN splitReading
VERSION 8.43.0
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
LogDB:
TIME 1641299717.09238
VALUE initialized
OLDREADINGS:
READINGS:
2021-06-30 23:59:00 Q2_Statistic_EnergyHomeBat 676
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyHome 1623
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyHomeFeedInGrid 4797
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyHomeGrid 16
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyHomePv 1186
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyHomePvSum 1607
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyPv1 2019
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyPv2 1614
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyPv4 1260
2021-09-30 23:59:00 Q3_SW_Statistic_EnergyPv5 1797
2021-09-30 23:59:00 Q3_SW_Statistic_TotalConsumption 1623
2021-09-30 23:59:00 Q3_SW_Statistic_Yield 6404
2021-09-30 23:59:00 Q3_SW_Statistic_Yield_NoBat 5983
2021-09-30 23:59:00 Q3_Statistic_EnergyHomeBat 421
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyHome 2583
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyHomeFeedInGrid 511
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyHomeGrid 1378
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyHomePv 875
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyHomePvSum 1205
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyPv1 510
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyPv2 422
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyPv4 330
2021-12-31 23:59:00 Q4_SW_Statistic_EnergyPv5 551
2021-12-31 23:59:00 Q4_SW_Statistic_TotalConsumption 2583
2021-12-31 23:59:00 Q4_SW_Statistic_Yield 1716
2021-12-31 23:59:00 Q4_SW_Statistic_Yield_NoBat 1386
2021-12-31 23:59:00 Q4_Statistic_EnergyHomeBat 330
2022-01-05 19:24:23 SqlResultRow_01 TIMESTAMP|READING|VALUE
2022-01-05 19:24:23 SqlResultRow_02 2021-12-31 23:59:00|Q4_|previous <<<<<<<<<<<<< das fehlt
2022-01-05 19:24:23 SqlResultRow_03 2021-12-31 23:59:00|Q4_Statistic_EnergyHomeBat|330
2022-01-05 19:24:23 SqlResultRow_04 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyHome|2583
2022-01-05 19:24:23 SqlResultRow_05 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyHomeFeedInGrid|511
2022-01-05 19:24:23 SqlResultRow_06 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyHomeGrid|1378
2022-01-05 19:24:23 SqlResultRow_07 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyHomePv|875
2022-01-05 19:24:23 SqlResultRow_08 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyHomePvSum|1205
2022-01-05 19:24:23 SqlResultRow_09 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyPv1|510
2022-01-05 19:24:23 SqlResultRow_10 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyPv2|422
2022-01-05 19:24:23 SqlResultRow_11 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyPv4|330
2022-01-05 19:24:23 SqlResultRow_12 2021-12-31 23:59:00|Q4_SW_Statistic_EnergyPv5|551
2022-01-05 19:24:23 SqlResultRow_13 2021-12-31 23:59:00|Q4_SW_Statistic_TotalConsumption|2583
2022-01-05 19:24:23 SqlResultRow_14 2021-12-31 23:59:00|Q4_SW_Statistic_Yield_NoBat|1386
2022-01-05 19:24:23 SqlResultRow_15 2021-12-31 23:59:00|Q4_SW_Statistic_Yield|1716
2022-01-05 19:24:23 SqlResultRow_16 2021-09-30 23:59:00|Q3_| <<<<<<<<<<<<<
2022-01-05 19:24:23 SqlResultRow_17 2021-09-30 23:59:00|Q3_Statistic_EnergyHomeBat|421
2022-01-05 19:24:23 SqlResultRow_18 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyHome|1623
2022-01-05 19:24:23 SqlResultRow_19 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyHomeFeedInGrid|4797
2022-01-05 19:24:23 SqlResultRow_20 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyHomeGrid|16
2022-01-05 19:24:23 SqlResultRow_21 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyHomePv|1186
2022-01-05 19:24:23 SqlResultRow_22 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyHomePvSum|1607
2022-01-05 19:24:23 SqlResultRow_23 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyPv1|2019
2022-01-05 19:24:23 SqlResultRow_24 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyPv2|1614
2022-01-05 19:24:23 SqlResultRow_25 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyPv4|1260
2022-01-05 19:24:23 SqlResultRow_26 2021-09-30 23:59:00|Q3_SW_Statistic_EnergyPv5|1797
2022-01-05 19:24:23 SqlResultRow_27 2021-09-30 23:59:00|Q3_SW_Statistic_TotalConsumption|1623
2022-01-05 19:24:23 SqlResultRow_28 2021-09-30 23:59:00|Q3_SW_Statistic_Yield_NoBat|5983
2022-01-05 19:24:23 SqlResultRow_29 2021-09-30 23:59:00|Q3_SW_Statistic_Yield|6404
2022-01-05 19:24:23 SqlResultRow_30 2021-06-30 23:59:00|Q2_| <<<<<<<<<<<<<
2022-01-05 19:24:23 SqlResultRow_31 2021-06-30 23:59:00|Q2_Statistic_EnergyHomeBat|393 Die doppelten sind noch ein Fehler in der Datenbank
2022-01-05 19:24:23 SqlResultRow_32 2021-06-30 23:59:00|Q2_Statistic_EnergyHomeBat|676
2022-01-05 19:24:23 SqlResultRow_33 2021-03-31 23:59:00|Q1_| <<<<<<<<<<<<<
2022-01-05 19:24:23 SqlResultRow_34 2021-03-31 23:59:00|Q1_Statistic_EnergyHomeBat|-1152 <<<<<<<<<<<<<
2022-01-05 19:24:23 SqlResultRow_35 2021-03-31 23:59:00|Q1_Statistic_EnergyHomeBat|-1435 <<<<<<<<<<<<<
2022-01-05 19:24:23 sqlCmd SELECT * FROM ( SELECT TIMESTAMP, CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year','')) AS READING, VALUE < snip >
2022-01-05 19:24:23 sqlResultNumRows 34
2022-01-05 19:24:23 state done
Attributes:
DbLogExclude .*
allowDeletion 0
comment Version 2022.01.04 14:00
room System
sqlCmdVars SET @offset:= ( CASE WHEN MONTH(CURRENT_DATE) IN (1,4,7,10) THEN @offset:=0 WHEN MONTH(CURRENT_DATE) IN (2,5,8,11) THEN @offset:=1 ELSE @offset:=2 END );
userExitFn splitReading .*:.*
verbose 0
Zitat von: DS_Starter am 05 Januar 2022, 20:51:24Ich vermute es ist etwas mit " userExitFn splitReading .*:.* " nicht okay.
mir ist nicht klar wie ich dir jetzt helfen könnte ?
Das wird erkannt und als reading angelegt
2022-01-05 19:24:23 SqlResultRow_03 2021-12-31 23:59:00|Q4_Statistic_EnergyHomeBat|330
Und diese werden nicht als reading angelegt
2022-01-05 19:24:23 SqlResultRow_02 2021-12-31 23:59:00|Q4_|previous
2022-01-05 19:24:23 SqlResultRow_16 2021-09-30 23:59:00|Q3_|
2022-01-05 19:24:23 SqlResultRow_30 2021-06-30 23:59:00|Q2_|
2022-01-05 19:24:23 SqlResultRow_33 2021-03-31 23:59:00|Q1_|
2022-01-05 19:24:23 SqlResultRow_35 2021-03-31 23:59:00|Q1_Statistic_EnergyHomeBat|-1435
Zitat
Ich vermute es ist etwas mit " userExitFn splitReading .*:.* " nicht okay.
Zitat von: DS_Starter am 05 Januar 2022, 22:43:52Ich hatte gerade den Post vorher noch editiert.
Wie sieht denn deine Funktion splitReading aus ?
< snip >
## ch.eick patch ########################################
# $sql =~ s/§device§/'$device'/xg if ($device); ## das hattest Du bereits rein genommen
# $sql =~ s/§reading§/'$reading'/xg if ($reading);
if ($reading) {
$reading = DbRep_createCommonSql($hash,undef,undef,$reading,undef,undef,undef);
$reading =~ s/AND 1 \;//ig;
$sql =~ s/§reading§/$reading/ig;
}
if ($device) {
$device = DbRep_createCommonSql($hash,undef,$device,undef,undef,undef,undef);
$device =~ s/AND 1 \;//ig;
$sql =~ s/§device§/$device/ig;
}
###################################################
< snip >
device WR_1_API
reading Statistic_%Year EXCLUDE=%Autarky%,%Rate%
2022.01.08 17:04:17.353 1: PERL WARNING: Use of uninitialized value $device in pattern match (m//) at ./FHEM/93_DbRep.pm line 9861.
2022.01.08 17:04:17.354 1: PERL WARNING: Use of uninitialized value $idevice in split at ./FHEM/93_DbRep.pm line 9887.
2022.01.08 17:04:17.355 1: PERL WARNING: Use of uninitialized value $selspec in concatenation (.) or string at ./FHEM/93_DbRep.pm line 9552.
2022.01.08 17:04:17.356 1: PERL WARNING: Use of uninitialized value $addon in concatenation (.) or string at ./FHEM/93_DbRep.pm line 9627.
2022.01.08 17:04:17.356 1: PERL WARNING: Use of uninitialized value $reading in substitution (s///) at ./FHEM/93_DbRep.pm line 9964.
2022.01.08 17:04:17.357 1: PERL WARNING: Use of uninitialized value $reading in pattern match (m//) at ./FHEM/93_DbRep.pm line 9966.
2022.01.08 17:04:17.357 1: PERL WARNING: Use of uninitialized value $ireading in split at ./FHEM/93_DbRep.pm line 9987.
Zitat von: DS_Starter am 08 Januar 2022, 17:15:07Super, das würde mich freuen, dann könnte ich den SQL Code etwas portabler bezüglich der Device und Reading Namen gestalten.
Hallo Christian,
ja schaue ich mir gerne mit an.
Bin momentan sowieso dabei den Code in DbRep zu überarbeiten. Wer FHEM regelmäßig updated, hat es vllt. schon bemerkt dass DbRep oft im Update mit dabei ist. Es ist aber nur refactoring, weswegen es für den User keine Änderungen gibt.
Es sei denn ich baue mal Mist. ;)
Vllt. morgen schon ....
select DEVICE, READING, count(*) from history where §device§ AND §reading§ AND TIMESTAMP >= §timestamp_begin§ group by DEVICE, READING
Zitat von: DS_Starter am 09 Januar 2022, 15:05:49Okay, ich teste das dann morgen mal.
Hallo Christian,
ich habe die Erweiterung eingearbeitet.
Die Version habe ich zum Test in mein contrib geladen.
Durch diese Änderung wird die Verwendung der Platzhalter §device§ und §reading§ etwas modifiziert.
Die Auflösung erfolgt komplex, d.h. man verwendet nicht mehr DEVICE=§device§, sondern nur §device§.
An dem Beispiel wird es deutlich:Code Auswählen
select DEVICE, READING, count(*) from history where §device§ AND §reading§ AND TIMESTAMP >= §timestamp_begin§ group by DEVICE, READING
Teste die Version bitte. Es wäre sicherlich hilfreich wenn die Version ggf. auch von deinen Mitstreitern im Projekt bzw. auch mit
komplexen SQL außerhalb deines WR-Projektes getestet wird. Du hast ja immer viele SQL's auf Lager.
Wenn alles klaapen sollte (ich habe keine Fehler bei mir festgestellt) finalisiere ich die Version und passe auch noch die cref für
sqlCmd an.
LG,
Heiko
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat von: DS_Starter am 09 Januar 2022, 15:28:42Hallo Heiko,Code Auswählen
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
PS: Habe noch eine Warnung zu doppelter "my" Deklaration beseitigt. Einfach nochmal ziehen.
Zitat von: DS_Starter am 10 Januar 2022, 10:42:27Ich denke nicht, dass von den Mitstreiter etwas kommen wird ;-)
Danke für die Rückmeldung Christian.
Ich nehme mir noch ein paar weitere Überarbeitungen vor. Wenn von deiner Seite (oder deiner Mitstreiter im Projekt) keine weiteren Infos kommen werde ich die Version im Laufe der Woche einchecken.
Zitat von: DS_Starter am 10 Januar 2022, 10:52:42Heiko, Du bist super :-)
Ja kann ich machen. Werde die comref für sqlCmd anpassen und dann hast du/ihr morgen früh ein offizielles update vorliegen.
ZitatMomentan nicht. Könnte mir vorstellen die Technik an dieser Stelle neu zu schreiben um z.B. in einem Programm so auf ein SQL zugreifen zu können: SQL = $sqlhist->{<Nummer>}. Wenn es das ist was du meinst.
Kann man beim sqlcmd Aufruf das letzte Kommand aus der Kommandowiederholung auch als "Pointer" angeben?
ZitatIch denke das geht nicht, weil es im FHEMWEB nicht vorgesehen ist Argumente von set/get Kommandos direkt formatiert anzuzeigen. Geht nur indirekt mit den FHEM Widgets, aber nicht aus einer set-Liste.
Wenn DbRep ein SELCT ausgeführt hat wird es als Bandwurm abgelegt, könnte man das auch formatiert belassen, damit man es im Eingabe Editor besser lesen kann?
Zitat von: DS_Starter am 14 Januar 2022, 13:10:45Hallo Heiko,
Hi Christian,
ja, habe dein Monster im anderen Thread schon gesehen.
Momentan nicht. Könnte mir vorstellen die Technik an dieser Stelle neu zu schreiben um z.B. in einem Programm so auf ein SQL zugreifen zu können: SQL = $sqlhist->{<Nummer>}. Wenn es das ist was du meinst.
ZitatHab ich nicht ... nur blöd formatiert gehabt. :)
Und das mit dem formatierten SQL hast Du einfach überlesen, was ich gut verstehn kann.
Zitat von: DS_Starter am 14 Januar 2022, 13:28:28Super danke für die Info, also wäre es ne menge unnötiger Mehraufwand.
Hab ich nicht ... nur blöd formatiert gehabt. :)
Habs oben geändert
4 => SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d');
SET @FOLDER = '/sds1/backup/';
SET @PREFIX = 'export';
SET @EXT = '.csv';
SET @CMD = CONCAT(" SELECT *
FROM `fhemtest`.`history`
WHERE `DEVICE`='SMA_Energymeter' AND TIMESTAMP > DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY)
INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,"'
FIELDS ENCLOSED BY '\"'
TERMINATED BY ';;'
ESCAPED BY '\"'","
LINES TERMINATED BY '\r\n';;
");
PREPARE statement FROM @CMD;
EXECUTE statement;
3 => select DEVICE,count(*) from history where TIMESTAMP >= §timestamp_begin§ group by DEVICE;
2 => SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d'); SET @FOLDER = '/sds1/backup/'; SET @PREFIX = 'export'; SET @EXT = '.csv'; SET @CMD = CONCAT(" SELECT * FROM `fhemtest`.`history` WHERE `DEVICE`='SMA_Energymeter' AND TIMESTAMP > DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY) INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,"' FIELDS ENCLOSED BY '\"' TERMINATED BY ';;' ESCAPED BY '\"'"," LINES TERMINATED BY '\r\n';; "); PREPARE statement FROM @CMD; EXECUTE statement;
1 => select count(*) from current;
set ... sqlCmd ckey:4
Zitat von: DS_Starter am 16 Januar 2022, 20:38:37Bei dem Rausschieben würde ich jetzt aber auch interpretieren, dass sich die Nummerierung bei einem zusätzlichen sqlcmd auch verschiebt.
Nun bleibt die Zuordung Key-> Statement auch bei einem Restart erhalten.
Damit zeigt die Adressierung mit
set ... sqlCmd ckey:X
immer auf das gleiche Statement. Zumindest solange die History nicht gepurged wird oder wegen Überschreitung von sqlCmdHistoryLength aus dem Cache rausgeschoben wird.
-> contrib
Internals:
DATABASE fhem
DEF LogDB
FUUID 5f3a5796-f33f-61a8-e1ac-2438b1322f15e59a
FVERSION 93_DbRep.pm:v8.46.12-s25411/2022-01-02
LASTCMD sqlCmd SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0;
MODEL Client
NAME LogDBRep_PV_Forecast_SQL
NOTIFYDEV global,LogDBRep_PV_Forecast_SQL
NR 432
NTFY_ORDER 50-LogDBRep_PV_Forecast_SQL
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS USAGE,ALL PRIVILEGES
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,t2.DEVICE,@readingname AS READING,cast(if(avg(t2.FACTOR) > 1.6,1.6,avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP,t1.HOUR,t1.DEVICE,t1.READING,t1.VALUE,if(@diff = 0,NULL,@temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR,@diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP,date(h.TIMESTAMP) AS DATE,hour(h.TIMESTAMP) AS HOUR,h.DEVICE,h.READING,h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 order by TIMESTAMP;,SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,t2.DEVICE,@readingname AS READING,cast(if(avg(t2.FACTOR) > 1.6,1.6,avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP,t1.HOUR,t1.DEVICE,t1.READING,t1.VALUE,if(@diff = 0,NULL,@temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR,@diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP,date(h.TIMESTAMP) AS DATE,hour(h.TIMESTAMP) AS HOUR,h.DEVICE,h.READING,h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0;,SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,t2.DEVICE,@readingname AS READING,cast(if(avg(t2.FACTOR) > 1.6,1.6,avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP,t1.HOUR,t1.DEVICE,t1.READING,t1.VALUE,if(@diff = 0,NULL,@temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR,@diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP,date(h.TIMESTAMP) AS DATE,hour(h.TIMESTAMP) AS HOUR,h.DEVICE,h.READING,h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ;,select * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=@device AND READING LIKE 'Statistic_%Year' AND READING NOT LIKE '%Autarky%' and READING NOT LIKE '%Rate%' AND TIMESTAMP>STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP<STR_TO_DATE(CONCAT(YEAR(CURDATE()),'-01-01'),'%Y-%m-%d') order by TIMESTAMP desc limit 15 ) AS x1 GROUP BY x1.READING ;,DELETE FROM history WHERE DEVICE='PV_1' AND READING='Solar_Calculation_fc0' AND TIMESTAMP>='2021-02-28 07:00:00'
VERSION 8.46.12
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2022-01-27 20:01:59 SqlResultRow_01 TIMESTAMP|DEVICE|READING|VALUE
2022-01-27 20:01:59 SqlResultRow_02 2022-01-27 09:00:00|WR_1|Solar_Correction_Faktor_auto|1.6
2022-01-27 20:01:59 SqlResultRow_03 2022-01-27 10:00:00|WR_1|Solar_Correction_Faktor_auto|1.6
2022-01-27 20:01:59 SqlResultRow_04 2022-01-27 11:00:00|WR_1|Solar_Correction_Faktor_auto|1.4
2022-01-27 20:01:59 SqlResultRow_05 2022-01-27 12:00:00|WR_1|Solar_Correction_Faktor_auto|0.9
2022-01-27 20:01:59 SqlResultRow_06 2022-01-27 13:00:00|WR_1|Solar_Correction_Faktor_auto|0.8
2022-01-27 20:01:59 SqlResultRow_07 2022-01-27 14:00:00|WR_1|Solar_Correction_Faktor_auto|0.7
2022-01-27 20:01:59 SqlResultRow_08 2022-01-27 15:00:00|WR_1|Solar_Correction_Faktor_auto|0.6
2022-01-27 20:01:59 SqlResultRow_09 2022-01-27 16:00:00|WR_1|Solar_Correction_Faktor_auto|0.3
2022-01-27 20:01:59 SqlResultRow_10 2022-01-27 17:00:00|WR_1|Solar_Correction_Faktor_auto|0.1
2022-01-27 20:01:59 SqlResultRow_11 2022-01-27 08:00:00|WR_1|Solar_Correction_Faktor_auto|0.2
2022-01-27 20:01:59 sqlCmd SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0;
2022-01-27 20:01:59 sqlResultNumRows 10
2022-01-27 20:01:59 state done
Attributes:
DbLogExclude .*
allowDeletion 1
room System
sqlCmdHistoryLength 5
sqlCmdVars SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
Internals:
DATABASE fhem
DEF LogDB
FUUID 5f3a5796-f33f-61a8-e1ac-2438b1322f15e59a
FVERSION 93_DbRep.pm:v8.46.12-s25411/2022-01-02
LASTCMD sqlCmd INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
MODEL Client
NAME LogDBRep_PV_Forecast_SQL
NOTIFYDEV global,LogDBRep_PV_Forecast_SQL
NR 432
NTFY_ORDER 50-LogDBRep_PV_Forecast_SQL
ROLE Client
STATE error
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
GRANTS USAGE,ALL PRIVILEGES
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
SQLHIST SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,t2.DEVICE,@readingname AS READING,cast(if(avg(t2.FACTOR) > 1.6,1.6,avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP,t1.HOUR,t1.DEVICE,t1.READING,t1.VALUE,if(@diff = 0,NULL,@temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR,@diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP,date(h.TIMESTAMP) AS DATE,hour(h.TIMESTAMP) AS HOUR,h.DEVICE,h.READING,h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 order by TIMESTAMP;,SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,t2.DEVICE,@readingname AS READING,cast(if(avg(t2.FACTOR) > 1.6,1.6,avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP,t1.HOUR,t1.DEVICE,t1.READING,t1.VALUE,if(@diff = 0,NULL,@temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR,@diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP,date(h.TIMESTAMP) AS DATE,hour(h.TIMESTAMP) AS HOUR,h.DEVICE,h.READING,h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0;,SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,t2.DEVICE,@readingname AS READING,cast(if(avg(t2.FACTOR) > 1.6,1.6,avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP,t1.HOUR,t1.DEVICE,t1.READING,t1.VALUE,if(@diff = 0,NULL,@temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR,@diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP,date(h.TIMESTAMP) AS DATE,hour(h.TIMESTAMP) AS HOUR,h.DEVICE,h.READING,h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ;,select * FROM (SELECT TIMESTAMP,READING,cast(VALUE/1000 AS decimal(6)) AS VALUE FROM history WHERE DEVICE=@device AND READING LIKE 'Statistic_%Year' AND READING NOT LIKE '%Autarky%' and READING NOT LIKE '%Rate%' AND TIMESTAMP>STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP<STR_TO_DATE(CONCAT(YEAR(CURDATE()),'-01-01'),'%Y-%m-%d') order by TIMESTAMP desc limit 15 ) AS x1 GROUP BY x1.READING ;,DELETE FROM history WHERE DEVICE='PV_1' AND READING='Solar_Calculation_fc0' AND TIMESTAMP>='2021-02-28 07:00:00'
VERSION 8.46.12
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2022-01-27 20:06:24 errortext DBD::mysql::st execute failed: Division by 0 at ./FHEM/93_DbRep.pm line 10576.
2022-01-27 20:06:24 state error
Attributes:
DbLogExclude .*
allowDeletion 1
room System
sqlCmdHistoryLength 5
sqlCmdVars SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
2022.01.27 20:13:18.101 4: DbRep Rep.LogDB - -------- New selection ---------
2022.01.27 20:13:18.102 4: DbRep Rep.LogDB - Command: sqlCmd INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.01.27 20:13:18.103 4: DbRep Rep.LogDB - FullDay option: 0
2022.01.27 20:13:18.103 4: DbRep Rep.LogDB - Timestamp begin human readable: 2022-01-01 00:00:00
2022.01.27 20:13:18.104 4: DbRep Rep.LogDB - Timestamp end human readable: 2022-01-26 23:59:59
2022.01.27 20:13:18.308 4: DbRep Rep.LogDB - adminCredentials successfully read from file
2022.01.27 20:13:18.310 4: DbRep Rep.LogDB - Database connect - user: root, UTF-8 option set: yes
2022.01.27 20:13:18.312 4: DbRep Rep.LogDB - SQL execute: INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.01.27 20:13:18.316 4: DbRep Rep.LogDB - data autocommitted
2022.01.27 20:13:18.317 3: DbRep Rep.LogDB - Number of entries processed in db fhemtest: 0 by INSERT
Zitat von: DS_Starter am 27 Januar 2022, 20:17:37Okay, danke,
Hallo Christian,
ich habe beide SQLs jetzt mal rauskopiert und bei mir ausgeführt.
Laufen fehlerfrei durch. Zwar ohne Wert, aber syntaktisch ok.Code Auswählen
2022.01.27 20:13:18.101 4: DbRep Rep.LogDB - -------- New selection ---------
2022.01.27 20:13:18.102 4: DbRep Rep.LogDB - Command: sqlCmd INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.01.27 20:13:18.103 4: DbRep Rep.LogDB - FullDay option: 0
2022.01.27 20:13:18.103 4: DbRep Rep.LogDB - Timestamp begin human readable: 2022-01-01 00:00:00
2022.01.27 20:13:18.104 4: DbRep Rep.LogDB - Timestamp end human readable: 2022-01-26 23:59:59
2022.01.27 20:13:18.308 4: DbRep Rep.LogDB - adminCredentials successfully read from file
2022.01.27 20:13:18.310 4: DbRep Rep.LogDB - Database connect - user: root, UTF-8 option set: yes
2022.01.27 20:13:18.312 4: DbRep Rep.LogDB - SQL execute: INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1)) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.01.27 20:13:18.316 4: DbRep Rep.LogDB - data autocommitted
2022.01.27 20:13:18.317 3: DbRep Rep.LogDB - Number of entries processed in db fhemtest: 0 by INSERT
Grüße,
Heiko
Zitat von: DS_Starter am 27 Januar 2022, 20:45:01Bin wieder on Track :-)
Aktuell sind wir schon bei dieser eingecheckten Version:
93_DbRep.pm:v8.47.0-s25492/2022-01-17
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
2022.01.30 13:17:24 3: DbRep repdb - ################################################################
2022.01.30 13:17:24 3: DbRep repdb - ### New database clientSide dump ###
2022.01.30 13:17:24 3: DbRep repdb - ################################################################
2022.01.30 13:17:24 3: DbRep repdb - Starting dump of database 'fhem'
2022.01.30 13:17:24 4: DbRep repdb - Database connect - user: fhem, UTF-8 option set: yes
2022.01.30 13:17:24 4: DbRep repdb - SQL execute: SELECT VERSION()
2022.01.30 13:17:24 3: DbRep repdb - Characterset of collection and backup file set to utf8.
2022.01.30 13:17:24 3: DbRep repdb - Searching for tables inside database fhem....
2022.01.30 13:17:24 4: DbRep repdb - SQL execute: SHOW TABLE STATUS FROM `fhem`
2022.01.30 13:17:24 4: DbRep repdb - SQL execute: SELECT count(*) FROM `current`
2022.01.30 13:17:24 4: DbRep repdb - SQL execute: SELECT count(*) FROM `history`
2022.01.30 13:17:33 3: DbRep repdb - Found 2 tables with 6401083 records.
2022.01.30 13:17:33 3: DbRep repdb - Dumping table current (Type InnoDB):
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SHOW CREATE TABLE `current`
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SHOW FIELDS FROM `current`
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SELECT * FROM `current` LIMIT 0,5000;
2022.01.30 13:17:33 3: DbRep repdb - 212 records inserted (size of backupfile: 38.10 KB)
2022.01.30 13:17:33 3: DbRep repdb - Dumping table history (Type InnoDB):
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SHOW CREATE TABLE `history`
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SHOW FIELDS FROM `history`
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 0,5000;
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 5000,5000;
2022.01.30 13:18:15 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 10000,5000;
2022.01.30 13:19:31 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 15000,5000;
2022.01.30 13:21:17 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 20000,5000;
2022.01.30 13:23:33 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 25000,5000;
2022.01.30 13:26:19 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 30000,5000;
2022.01.30 13:29:36 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 35000,5000;
2022.01.30 13:33:22 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 40000,5000;
2022.01.30 13:37:39 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 45000,5000;
2022.01.30 13:42:25 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 50000,5000;
2022.01.30 13:47:42 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 55000,5000;
2022.01.30 13:53:29 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 60000,5000;
Internals:
DATABASE fhem
DEF logdb
FUUID 5c52f431-f33f-e11d-c0b2-f1dc4dfa79b37156
FVERSION 93_DbRep.pm:v8.47.0-s25492/2022-01-17
LASTCMD dumpMySQL clientSide
MODEL Client
NAME repdb
NOTIFYDEV global,repdb
NR 436
NTFY_ORDER 50-repdb
ROLE Client
STATE clientSide Dump is running - be patient and see Logfile !
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
PACKAGE main
VERSION 8.47.0
RUNNING_BACKUP_CLIENT:
abortFn DbRep_DumpAborted
bc_pid 150
finishFn DbRep_DumpDone
fn DbRep_mysql_DumpClientSide
loglevel 5
pid 5340
telnet telnetForBlockingFn_1643544554_127.0.0.1_56806
timeout 86400
abortArg:
arg:
name repdb
table history
hash:
OLDREADINGS:
READINGS:
2022-01-30 13:17:24 state clientSide Dump is running - be patient and see Logfile !
Attributes:
DbLogExclude .*
DbLogInclude DumpRowsHistory
aggregation hour
allowDeletion 1
dumpDirLocal backup
dumpMemlimit 500000000
dumpSpeed 5000
event-on-update-reading state,DumpRowsHistory
group DbLog
room Technik->Funktionen
seqDoubletsVariance 0.15
showTableInfo %history%,%current%
timeDiffToNow d:70
timeOlderThan d:62
verbose 4
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 0,5000;
2022.01.30 13:17:33 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 5000,5000;
2022.01.30 13:18:15 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 10000,5000;
2022.01.30 13:19:31 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 15000,5000;
2022.01.30 13:21:17 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 20000,5000;
2022.01.30 13:23:33 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 25000,5000;
2022.01.30 13:26:19 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 30000,5000;
2022.01.30 13:29:36 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 35000,5000;
2022.01.30 13:33:22 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 40000,5000;
2022.01.30 13:37:39 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 45000,5000;
2022.01.30 13:42:25 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 50000,5000;
2022.01.30 13:47:42 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 55000,5000;
2022.01.30 13:53:29 4: DbRep repdb - SQL execute: SELECT * FROM `history` LIMIT 60000,5000;
Internals:
DATABASE fhem
DEF logdb
FUUID 5c52f431-f33f-e11d-c0b2-f1dc4dfa79b37156
FVERSION 93_DbRep.pm:v8.48.0-s25492/2022-01-17
LASTCMD dumpMySQL clientSide
MODEL Client
NAME repdb
NOTIFYDEV global,repdb
NR 436
NTFY_ORDER 50-repdb
ROLE Client
STATE clientSide Dump is running - be patient and see Logfile !
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
PACKAGE main
VERSION 8.48.0
RUNNING_BACKUP_CLIENT:
abortFn DbRep_DumpAborted
bc_pid 131
finishFn DbRep_DumpDone
fn DbRep_mysql_DumpClientSide
loglevel 5
pid 17168
telnet telnetForBlockingFn_1643555196_127.0.0.1_58616
timeout 86400
abortArg:
arg:
name repdb
table history
hash:
READINGS:
2022-01-30 16:12:56 state clientSide Dump is running - be patient and see Logfile !
Attributes:
DbLogExclude .*
DbLogInclude DumpRowsHistory
aggregation hour
allowDeletion 1
dumpDirLocal backup
dumpMemlimit 50000000
dumpSpeed 50000
event-on-update-reading state,DumpRowsHistory
group DbLog
room Technik->Funktionen
seqDoubletsVariance 0.15
showTableInfo %history%,%current%
timeDiffToNow d:70
timeOlderThan d:62
verbose 4
Zitat von: oelkanne am 05 Februar 2022, 11:44:36Hey,
Hallo,
Habe gerade begonnen mich mit DbRep zu beschäftigen, um meine Datenbank etwas zu schrumpfen.
Sachen wie:
set mylogdb_service reduceLogNbl 7:9 average INCLUDE=%:AM2301_%
set mylogdb_service reduceLogNbl 7:9 average INCLUDE=%:F_%
set mylogdb_service reduceLogNbl 7:9 average INCLUDE=%:temperature
...
funktionieren. Um die Datenbank mit einen Befehl zu shrinken wollte ich nun EXCLUDE nutzen.
set mylogdb_service reduceLogNbl 7:9 average EXCLUDE=%:desiredTemperature,%:POWER%,%:Shutter%,Shelly%:relay%,Shelly%:light%,Handy_%:pres_true,D1_mini_1:Power_Power_curr
Hier werden jedoch Readings desiredTemperature, Shutter1Position, .. nicht excludiert.
Sind bei EXCLUDE evtl. nur Wildcards im Device erlaubt und nicht im Reading?
Zitat
Sind bei EXCLUDE evtl. nur Wildcards im Device erlaubt und nicht im Reading?
Oder kommt evtl. DbRep nicht mit dem Unterstrich in Device und reading klar?
TIMESTAMP DEVICE TYPE EVENT 1 READING VALUE UNIT 2022-01-30 02:30:00 Karin_Thermostat MAX rl_av_h desiredTemperature 19.000 \xB0C 2022-01-30 02:30:00 Ruheraum_Thermostat MAX rl_av_h desiredTemperature 14.750 \xB0C 2022-01-30 07:30:00 Waschkueche_Steller MAX rl_av_h desiredTemperature 16.000 \xB0C 2022-01-30 07:30:00 Waschkueche_Wandthermostat MAX rl_av_h desiredTemperature 16.000 \xB0C TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT 2022-01-30 07:30:00 MiniTiger4gang_1b MQTT2_DEVICE rl_av_h Shutter2_Position 52.684 2022-01-30 07:30:00 MiniTiger4gang_2b MQTT2_DEVICE rl_av_h Shutter2_Position 53.250 2022-01-30 10:30:00 MiniTiger4gang_3b MQTT2_DEVICE rl_av_h Shutter2_Position 52.842 2022-01-30 17:30:00 MiniTiger4gang_1b MQTT2_DEVICE rl_av_h Shutter2_Position 46.900 2022-01-30 17:30:00 MiniTiger4gang_2b MQTT2_DEVICE rl_av_h Shutter2_Position 48.750 2022-01-30 17:30:00 MiniTiger4gang_3b MQTT2_DEVICE rl_av_h Shutter2_Position 45.600 2022-01-31 07:30:00 MiniTiger4gang_1b MQTT2_DEVICE rl_av_h Shutter2_Position 54.250 2022-01-31 07:30:00 MiniTiger4gang_2b MQTT2_DEVICE rl_av_h Shutter2_Position 54.400 2022-01-31 10:30:00 MiniTiger4gang_3b MQTT2_DEVICE rl_av_h Shutter2_Position 54.200 2022-01-31 18:30:00 MiniTiger4gang_1b MQTT2_DEVICE rl_av_h Shutter2_Position 45.600 2022-01-31 18:30:00 MiniTiger4gang_2b MQTT2_DEVICE rl_av_h Shutter2_Position 46.850 2022-01-31 18:30:00 MiniTiger4gang_3b MQTT2_DEVICE rl_av_h Shutter2_Position 46.000 2022-01-30 07:30:00 Tuya_CS02_2 MQTT2_DEVICE rl_av_h Shutter1_Position 51.300 2022-01-30 07:30:00 Teepao_1 MQTT2_DEVICE rl_av_h Shutter1_Position 51.220 2022-01-30 07:30:00 MiniTiger4gang_1a MQTT2_DEVICE rl_av_h Shutter1_Position 52.417 2022-01-30 07:30:00 MiniTiger4gang_3a MQTT2_DEVICE rl_av_h Shutter1_Position 53.700 2022-01-30 07:30:00 MiniTiger4gang_2a MQTT2_DEVICE rl_av_h Shutter1_Position 53.750 2022-01-30 07:30:00 Teepao_2 MQTT2_DEVICE rl_av_h Shutter1_Position 28.462 2022-01-30 17:30:00 MiniTiger4gang_1a MQTT2_DEVICE rl_av_h Shutter1_Position 47.280 |
reduceLog [<no>[:<nn>]] [average[=day]] [EXCLUDE=device1:reading1,device2:reading2,...] [INCLUDE=device:reading]
reduceLog [<no>[:<nn>]] [average[=day]]
2022.02.14 13:32:36.034 2: DbRep LogDBRep_PV_Forecast_SQL - DBD::mysql::st execute failed: Out of range value for column '(null)' at row 1 at ./FHEM/93_DbRep.pm line 12969.
+---------------------+--------+------------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+--------+------------------------------+-------+
| 2022-02-14 08:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.6 |
| 2022-02-14 09:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.6 |
| 2022-02-14 10:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.6 |
| 2022-02-14 11:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.2 |
| 2022-02-14 12:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.0 |
| 2022-02-14 13:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.9 |
| 2022-02-14 14:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.7 |
| 2022-02-14 15:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.6 |
| 2022-02-14 16:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.6 |
| 2022-02-14 17:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.2 |
+---------------------+--------+------------------------------+-------+
10 rows in set, 3 warnings (0.15 sec)
Zitat von: DS_Starter am 14 Februar 2022, 13:45:49
wie sieht denn das SQL aus ?
SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
INSERT INTO history
(TIMESTAMP,DEVICE,READING,VALUE)
SELECT
TIMESTAMP,DEVICE,READING,VALUE
FROM (
SELECT
DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP,
t2.DEVICE,
@readingname AS READING,
cast(if(avg(t2.FACTOR) > 1.6, 1.6,
avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE
FROM (
SELECT * FROM (
SELECT
t1.TIMESTAMP,
t1.HOUR,
t1.DEVICE,
t1.READING,
t1.VALUE,
if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF,
if(((t1.VALUE+(-1*@temp))*@corr)=0,0, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1))) AS FACTOR,
@diff:=t1.VALUE AS curr_V
FROM (
SELECT
h.TIMESTAMP,
date(h.TIMESTAMP) AS DATE,
hour(h.TIMESTAMP) AS HOUR,
h.DEVICE,
h.READING,
h.VALUE
FROM history AS h
WHERE h.DEVICE = @device
AND (h.READING = @reading1 OR h.READING = @reading2)
AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY)
AND h.TIMESTAMP <= CURDATE()
AND MINUTE(h.TIMESTAMP) = 0
AND h.VALUE >= 0
GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP
)t1
)tx
WHERE READING != @reading2
AND HOUR > 6
)t2
GROUP BY t2.HOUR,t2.DEVICE
)t3
WHERE
t3.VALUE != 0
ON DUPLICATE KEY UPDATE
VALUE=t3.VALUE;
2022.02.14 14:03:06.594 4: DbRep Report - -------- New selection ---------
2022.02.14 14:03:06.595 4: DbRep Report - Command: sqlCmd SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ; INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, if(((t1.VALUE+(-1*@temp))*@corr)=0,0, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1))) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.02.14 14:03:06.596 4: DbRep Report - timeDiffToNow - year: , day: 2, hour: , min: , sec:
2022.02.14 14:03:06.596 4: DbRep Report - startMonth: 1 endMonth: 1 lastleapyear: 0 baseYear: 2022 diffdaylight:0 isdaylight:0
2022.02.14 14:03:06.597 4: DbRep Report - FullDay option: 0
2022.02.14 14:03:06.597 4: DbRep Report - Time difference to current time for calculating Timestamp begin: 172801 sec
2022.02.14 14:03:06.597 4: DbRep Report - Timestamp begin human readable: 2022-02-12 14:03:05
2022.02.14 14:03:06.598 4: DbRep Report - Timestamp end human readable: 2022-02-14 14:03:06
2022.02.14 14:03:06.625 4: DbRep Report - adminCredentials successfully read from file
2022.02.14 14:03:06.627 4: DbRep Report - Database connect - user: root, UTF-8 option set: yes
2022.02.14 14:03:06.629 4: DbRep Report - Set SQL session variable: SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
2022.02.14 14:03:06.632 4: DbRep Report - SQL execute: INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, if(((t1.VALUE+(-1*@temp))*@corr)=0,0, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1))) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.02.14 14:03:06.642 4: DbRep Report - data autocommitted
2022.02.14 14:03:06.643 3: DbRep Report - Number of entries processed in db fhemtest: 0 by INSERT
Zitat von: DS_Starter am 14 Februar 2022, 14:09:03Wer? Ich? :-)
... Monster ;)
Zitat von: DS_Starter am 14 Februar 2022, 14:54:02Ja, denn der weitere Programm Ablauf greift auf die frisch eingetragenen Daten zu.
:)
Gute Frage ...
Aber die Stelle ./FHEM/93_DbRep.pm line 12969 deutet darauf hin dass du sqlCmdBlocking benutzt und nicht sqlCmd. Kann das sein ?
Zitat von: DS_Starter am 14 Februar 2022, 15:22:04Hmm, wenn keine SQL Meldung kommt sehe ich auch nicht wo es harkt.
Auch das hab ich gerade gestestet, auch ohne Befund. Hmm ...
2022.02.14 15:21:12.949 4: DbRep Report - -------- New selection ---------
2022.02.14 15:21:12.950 4: DbRep Report - Command: sqlCmdBlocking
2022.02.14 15:21:12.950 4: DbRep Report - SQL execute: SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ; INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, if(((t1.VALUE+(-1*@temp))*@corr)=0,0, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1))) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.02.14 15:21:12.951 4: DbRep Report - Set SQL session variables: SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
2022.02.14 15:21:12.958 4: DbRep Report - Number of entries processed in db fhemtest: 0 by INSERT
Zitat von: DS_Starter am 14 Februar 2022, 15:40:22
Nö, kommt nichts. Hier nochmal das Log:Code Auswählen
2022.02.14 15:21:12.949 4: DbRep Report - -------- New selection ---------
2022.02.14 15:21:12.950 4: DbRep Report - Command: sqlCmdBlocking
2022.02.14 15:21:12.950 4: DbRep Report - SQL execute: SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ; INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) SELECT TIMESTAMP,DEVICE,READING,VALUE FROM ( SELECT DATE_ADD(CURDATE(),INTERVAL t2.HOUR HOUR) AS TIMESTAMP, t2.DEVICE, @readingname AS READING, cast(if(avg(t2.FACTOR) > 1.6, 1.6, avg(t2.FACTOR) ) AS DECIMAL(2,1)) AS VALUE FROM ( SELECT * FROM ( SELECT t1.TIMESTAMP, t1.HOUR, t1.DEVICE, t1.READING, t1.VALUE, if(@diff = 0,NULL, @temp:=cast((t1.VALUE-@diff) AS DECIMAL(6,2))) AS DIFF, if(((t1.VALUE+(-1*@temp))*@corr)=0,0, cast((t1.VALUE/(t1.VALUE+(-1*@temp))*@corr) AS DECIMAL(4,1))) AS FACTOR, @diff:=t1.VALUE AS curr_V FROM ( SELECT h.TIMESTAMP, date(h.TIMESTAMP) AS DATE, hour(h.TIMESTAMP) AS HOUR, h.DEVICE, h.READING, h.VALUE FROM history AS h WHERE h.DEVICE = @device AND (h.READING = @reading1 OR h.READING = @reading2) AND h.TIMESTAMP >= DATE_SUB(DATE(now()),INTERVAL @days DAY) AND h.TIMESTAMP <= CURDATE() AND MINUTE(h.TIMESTAMP) = 0 AND h.VALUE >= 0 GROUP BY DATE,HOUR,h.READING,h.DEVICE,h.TIMESTAMP )t1 )tx WHERE READING != @reading2 AND HOUR > 6 )t2 GROUP BY t2.HOUR,t2.DEVICE )t3 WHERE t3.VALUE != 0 ON DUPLICATE KEY UPDATE VALUE=t3.VALUE;
2022.02.14 15:21:12.951 4: DbRep Report - Set SQL session variables: SET @days:=30, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
2022.02.14 15:21:12.958 4: DbRep Report - Number of entries processed in db fhemtest: 0 by INSERT
Das ist kein SQL Fehler oder sonst etwas was angemeckert wird.
Aber vielleicht ist es das Insert "INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE)". Wenn z.B. das Feld TIMESTAMP evtl. leer gesetzt werden soll, käme m.M. nach so ein Fehler oder aber du willst einen Wert setzen in einem nicht definierten Feld, also z.B. "INSERT INTO history (TIMESTAMP,DEVICE,READING,VALUE) .... (2022-02-14 00:00:00,bla,blubb,40,irgendwas)"
+---------------------+--------+------------------------------+-------+
| TIMESTAMP | DEVICE | READING | VALUE |
+---------------------+--------+------------------------------+-------+
| 2022-02-14 08:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.6 |
| 2022-02-14 09:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.6 |
| 2022-02-14 10:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.6 |
| 2022-02-14 11:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.2 |
| 2022-02-14 12:00:00 | WR_1 | Solar_Correction_Faktor_auto | 1.0 |
| 2022-02-14 13:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.9 |
| 2022-02-14 14:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.7 |
| 2022-02-14 15:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.6 |
| 2022-02-14 16:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.6 |
| 2022-02-14 17:00:00 | WR_1 | Solar_Correction_Faktor_auto | 0.2 |
+---------------------+--------+------------------------------+-------+
Zitat von: DS_Starter am 15 Februar 2022, 09:35:50Vielen Dank, da bin auch bereits dran.
Schau mal, ich habe hier etwas dazu gefunden: https://stackoverflow.com/questions/19121106/out-of-range-value-for-column-null-at-row-1
Sieht mir ähnlich zu deinem Fall aus.
Zitat von: DS_Starter am 15 Februar 2022, 10:53:18Ich bin dem ganzen nun auf der Spur, auch in der Datenbank kommt diese Meldung ;-(
Wir setzen in Perl/dem Modul natürlich noch die entsprechenden Perl Bibliotheken DBI/DBD für den Datenbankzugriff ein. Möglicherweise ergeben sich daraus bestimmte Abweichungen von einer Ausführung in einem normalen SQL-Client.
PERL WARNING: Use of uninitialized value $ku in multiplication (*) at ./FHEM/93_DbRep.pm line 9400.
my ($kd,$ku) = 1;
my ($kd,$ku) = (1,1);
PERL WARNING: Argument "off" isn't numeric in numeric le (<=) at ./FHEM/93_DbRep.pm line 6008.
2022.04.10 21:26:37.317 3: DbRep logdb_rep - number records identified to delete by "delDoublets adviceDelete": 1305480
2022.04.11 02:13:35.327 2: DbRep logdb_rep - DBD::mysql::st execute failed: Lost connection to MySQL server during query at ./FHEM/93_DbRep.pm line 5841.
ZitatVariance 0 ist der Standard. Deswegen macht es wenig Sinn 0 zu setzen. 0.0 geht durch weil ich die Perl Standard sub "looks_like_number" zur Prüfung verwende und die Routine 0 offensichtlich nicht als Ziffer akzeptiert. Vllt. setze ich die Eigabe 0 einfach nach 0.0 um, aber wie gesagt eigentlich Unsinn.
Außerdem ist mir aufgefallen, dass man keine Variance von "0" setzen kann (was wahrscheinlich sinnfrei ist, weil das ja quasi der Default ist, richtig?) - sehr wohl aber eine von 0.0
ZitatDa kann das Modul nix für. ;)
DBD::mysql::st execute failed: Lost connection to MySQL server during query
ZitatDas prüfe ich mal bei Gelegenheit.
Zuletzt noch eine Frage zu DbLog selbst: Dort kann man ja Devices und Types ausschliessen. Interessant wäre jetzt noch ein ROOM= - dann könnte ich z.B. meinen AUTOCREATE room ausschliessen in dem sich Dank rfxtrx433 massig Sensoren von Nachbarn tummeln.
ZitatAlso das funktioniert bereits jetzt im DbLog. Das Attr excludeDevs können Devspec (http://fhemtest.myds.me:8083/fhem/docs/commandref_DE.html#devspec) angegeben werden.
Zuletzt noch eine Frage zu DbLog selbst: Dort kann man ja Devices und Types ausschliessen. Interessant wäre jetzt noch ein ROOM= - dann könnte ich z.B. meinen AUTOCREATE room ausschliessen
room=Energie
2022.05.05 21:31:00.007 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 966.
2022.05.05 21:31:00.007 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.05 21:31:00.008 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 967.
2022.05.05 21:31:00.008 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.05 21:31:00.009 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 968.
2022.05.05 21:31:00.009 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.05 21:31:00.009 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 969.
2022.05.05 21:31:00.010 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.05 21:31:00.011 3: DbRep DBRepPow - get initial structure information of database "fhem", remaining attempts: 3
2022.05.05 21:31:00.012 3: DbRep DBRepPow - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2022.05.05 21:31:00.106 3: DbRep DBRepPow - Index Report_Idx exists. Check ok
2022.05.05 21:31:00.122 3: DbRep DBRepPow - Initial data information retrieved - total time used: 0.0278 seconds
2022.05.05 21:31:00.140 3: DbRep DBRepPow - Connectiontest to db mysql:database=fhem;host=localhost;port=3306 successful
TIMESTAMP;DEVICE;TYPE;EVENT;READING;VALUE;UNIT
2022-05-05 21:31:00;;manual;manual;;;
Korrekt kommt
TIMESTAMP;DEVICE;TYPE;EVENT;READING;VALUE;UNIT
2022-05-06 05:29:00;shelly_plug_s_df2674;manual;manual;power;0;
1) *05:29:00 { fhem("set DBRepPow insert $today,05:29:00,0") }
2) *21:31:00 { fhem("set DBRepPow insert $today,21:31:00,0") }
Internals:
DATABASE fhem
DEF DBLogging
FUUID 624f1c2e-f33f-a8ec-b32f-384b60f40596616e
FVERSION 93_DbRep.pm:v8.48.2-s25731/2022-02-22
LASTCMD insert 2022-05-06,21:31:00,0
MODEL Client
NAME DBRepPow
NOTIFYDEV global,DBRepPow
NR 492
NTFY_ORDER 50-DBRepPow
ROLE Client
STATE done
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE DBLogging
GRANTS DELETE,FILE,SELECT,INSERT,UPDATE
IDRETRIES 2
MINTS 2019-02-17 12:00:00
PACKAGE main
VERSION 8.48.2
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2022-05-06 15:10:20 data_inserted 2022-05-06 21:31:00, shelly_plug_s_df2674, manual, manual, power, 0,
2022-05-06 15:10:20 number_lines_inserted 1
2022-05-06 15:10:20 state done
Attributes:
comment set DBRep1 reduceLog average=day
device shelly_plug_s_df2674
reading power
room Dbase
useAdminCredentials 0
2022.05.05 21:31:00.007 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 966.
2022.05.05 21:31:00.007 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.05 21:31:00.008 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 967.
2022.05.05 21:31:00.008 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.05 21:31:00.009 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 968.
1) *05:29:00 { CommandSet(undef, "DBRepPow insert $today,05:29:00,0") }
2) *21:31:00 { CommandSet(undef, "DBRepPow insert $today,21:31:00,0") }
6. Mai 17:10 Uhr
Änderung des "at" auf --> *21:31:00 { CommandSet(undef, "DBRepPow insert $today,21:31:00,0") }
execNow auf das geänderte "at" führt zum korrekten Ergebnis (wie die andere Definition auch) ;)
6. Mai 17:16 Uhr
Kopie vom "at" erzeugt und die alte Definition nochmal 2 Minuten später
*21:33:00 { fhem("set DBRepPow insert $today,21:33:00,0") }
verbose 5 auf DBRep
6. Mai 23:50
Check: Datenbank korrekt befüllt
TIMESTAMP;DEVICE;TYPE;EVENT;READING;VALUE;UNIT
2022-05-06 21:33:00;shelly_plug_s_df2674;manual;manual;power;0;
2022-05-06 21:31:00;shelly_plug_s_df2674;manual;manual;power;0;
8. Mai
bisher Datenbank korrekt befüllt, keine PERL-Warnings
10. & 11. Mai
weiterhin Datenbank korrekt befüllt, keine PERL-Warnings
define SolarPower_0 at *05:29:00 { fhem("set DBRepPow insert $today,05:29:00,0") }
define SolarPower_0W at *21:31:00 { CommandSet(undef, "DBRepPow insert $today,21:31:00,0") }
define SolarPower_0Wneu at *21:33:00 { fhem("set DBRepPow insert $today,21:33:00,0") }
Zitat
Deutet der Log-Eintrag
eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
nicht eigentlich darauf hin, dass im Modul der Text korrekt an eval übergeben wurde?
$i_device = substr($i_device, 0, $hash->{HELPER}{DBREPCOL}{DEVICE});
$i_reading = substr($i_reading, 0, $hash->{HELPER}{DBREPCOL}{READING});
$i_value = substr($i_value, 0, $hash->{HELPER}{DBREPCOL}{VALUE});
$i_unit = substr($i_unit, 0, $hash->{HELPER}{DBREPCOL}{UNIT});
2022.05.12 21:31:00.013 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 967.
2022.05.12 21:31:00.014 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ [b]fhem("set DBRepPow insert $today,21:31:00,0")[/b] }
2022.05.12 21:31:00.015 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 968.
2022.05.12 21:31:00.016 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.12 21:31:00.017 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 969.
2022.05.12 21:31:00.018 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.12 21:31:00.019 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 970.
2022.05.12 21:31:00.020 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
2022.05.12 21:31:00.021 3: DbRep DBRepPow - get initial structure information of database "fhem", remaining attempts: 3
2022.05.12 21:31:00.023 3: DbRep DBRepPow - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2022.05.12 21:31:00.066 5: DbRep DBRepPow - start BlockingCall with PID "20285"
2022.05.12 21:31:00.114 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.12 21:31:00.127 4: DbRep DBRepPow - Oldest timestamp determined: 2019-02-17 12:00:00
2022.05.12 21:31:00.137 4: DbRep DBRepPow - Encoding of database determined: utf8
2022.05.12 21:31:00.141 3: DbRep DBRepPow - Index Report_Idx exists. Check ok
2022.05.12 21:31:00.144 4: DbRep DBRepPow - Grants determined: INSERT,SELECT,DELETE,FILE,UPDATE
2022.05.12 21:31:00.155 5: DbRep DBRepPow - getInitData finished PID "20285"
2022.05.12 21:31:00.156 3: DbRep DBRepPow - Initial data information retrieved - total time used: 0.0322 seconds
2022.05.12 21:31:00.174 3: DbRep DBRepPow - Connectiontest to db mysql:database=fhem;host=localhost;port=3306 successful
2022.05.12 21:31:00.184 4: DbRep DBRepPow - -------- New selection ---------
2022.05.12 21:31:00.185 4: DbRep DBRepPow - Command: insert 2022-05-12 21:31:00,,,,
2022.05.12 21:31:00.205 5: DbRep DBRepPow - BlockingCall with PID "20287" started
2022.05.12 21:31:00.245 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.12 21:31:00.313 5: DbRep DBRepPow -> Primary Key used in fhem.history: 1 (TIMESTAMP,DEVICE,READING)
2022.05.12 21:31:00.314 5: DbRep DBRepPow -> Primary Key used in fhem.current: 1 (DEVICE,READING)
2022.05.12 21:31:00.315 5: DbRep DBRepPow -> data to insert Timestamp: 2022-05-12 21:31:00, Device: , Type: manual, Event: manual, Reading: , Value: , Unit:
2022.05.12 21:31:00.315 4: DbRep DBRepPow - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.05.12 21:31:00.317 4: DbRep DBRepPow - begin transaction
2022.05.12 21:31:00.328 4: DbRep DBRepPow - transaction committed
2022.05.12 21:31:00.330 4: DbRep DBRepPow - Inserted into fhem.history: 2022-05-12 21:31:00, , manual, manual, , ,
2022.05.12 21:31:00.343 5: DbRep DBRepPow - BlockingCall PID "20287" finished
2022.05.12 22:35:05.793 4: DbRep DBRepPow - -------- New selection ---------
2022.05.12 22:35:05.794 4: DbRep DBRepPow - Command: insert 2022-05-12 21:31:00,shelly_plug_s_df2674,power,0,
2022.05.12 22:35:05.814 5: DbRep DBRepPow - BlockingCall with PID "23724" started
2022.05.12 22:35:05.855 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.12 22:35:05.929 5: DbRep DBRepPow -> Primary Key used in fhem.history: 1 (TIMESTAMP,DEVICE,READING)
2022.05.12 22:35:05.930 5: DbRep DBRepPow -> Primary Key used in fhem.current: 1 (DEVICE,READING)
2022.05.12 22:35:05.931 5: DbRep DBRepPow -> data to insert Timestamp: 2022-05-12 21:31:00, Device: shelly_plug_s_df2674, Type: manual, Event: manual, Reading: power, Value: 0, Unit:
2022.05.12 22:35:05.932 4: DbRep DBRepPow - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.05.12 22:35:05.934 4: DbRep DBRepPow - begin transaction
2022.05.12 22:35:05.944 4: DbRep DBRepPow - transaction committed
2022.05.12 22:35:05.945 4: DbRep DBRepPow - Inserted into fhem.history: 2022-05-12 21:31:00, shelly_plug_s_df2674, manual, manual, power, 0,
2022.05.12 22:35:05.960 5: DbRep DBRepPow - BlockingCall PID "23724" finished
Zitatdefine Test notify MYSENSOR_(2|3):(status(1|2|3|4)|status):on {my $t = {ReadingsTimestamp("$NAME","EVTPART0",'undef')}, my @T = split(/ /, $t), fhem("attr insertDB Device $NAME; attr insertDB Reading $EVTPART0; set insertDB insert $T[0],$T[1],off"}
Zitatdefine Test notify MYSENSOR_(2|3):(status(1|2|3|4)|status):on {my $t = {ReadingsTimestamp("$NAME","EVTPART0",'undef')}, my @T = split(/ /, $t), fhem("set insertDB insert $T[0],$T[1],off,$NAME,$EVTPART0"}
Zitat von: RalfRog am 11 Mai 2022, 12:17:13
......
21:31 Uhr
na super wieder die PERL Warning - ich halte es hier schon mal fest Zusammenfassung später in einer Antwort
.....
Log3 ($name, 5, "DbRep $name - all: $prop, dev: $i_device, reading: $i_reading, value: $i_value");
964 $hash->{LASTCMD} = $prop ? "$opt $prop" : "$opt";
965 Log3 ($name, 5, "DbRep $name - all: $prop, dev: $i_device, reading: $i_reading, value: $i_value"); # Zeile zum Debuggen da einige DB Eintraege verkorkst
966 if ($dbmodel ne 'SQLITE') { # Daten auf maximale Länge (entsprechend der Feldlänge in DbLog) beschneiden wenn nicht SQLite
967 $i_device = substr($i_device, 0, $hash->{HELPER}{DBREPCOL}{DEVICE});
968 $i_reading = substr($i_reading, 0, $hash->{HELPER}{DBREPCOL}{READING});
969 $i_value = substr($i_value, 0, $hash->{HELPER}{DBREPCOL}{VALUE});
970 $i_unit = substr($i_unit, 0, $hash->{HELPER}{DBREPCOL}{UNIT});
971 }
2022.05.13 21:31:00.010 5: DbRep DBRepPow - all: 2022-05-13,21:31:00,0, dev: shelly_plug_s_df2674, reading: power, value: 0
2022.05.13 21:31:00.024 4: DbRep DBRepPow - -------- New selection ---------
2022.05.13 21:31:00.024 4: DbRep DBRepPow - Command: insert 2022-05-13 21:31:00,shelly_plug_s_df2674,power,0,
2022.05.13 21:31:00.051 5: DbRep DBRepPow - BlockingCall with PID "12729" started
2022.05.13 21:31:00.097 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.13 21:31:00.171 5: DbRep DBRepPow -> Primary Key used in fhem.history: 1 (TIMESTAMP,DEVICE,READING)
2022.05.13 21:31:00.171 5: DbRep DBRepPow -> Primary Key used in fhem.current: 1 (DEVICE,READING)
2022.05.13 21:31:00.172 5: DbRep DBRepPow -> data to insert Timestamp: 2022-05-13 21:31:00, Device: shelly_plug_s_df2674, Type: manual, Event: manual, Reading: power, Value: 0, Unit:
2022.05.13 21:31:00.172 4: DbRep DBRepPow - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.05.13 21:31:00.174 4: DbRep DBRepPow - begin transaction
2022.05.13 21:31:00.180 4: DbRep DBRepPow - transaction committed
2022.05.13 21:31:00.181 4: DbRep DBRepPow - Inserted into fhem.history: 2022-05-13 21:31:00, shelly_plug_s_df2674, manual, manual, power, 0,
2022.05.13 21:31:00.191 5: DbRep DBRepPow - BlockingCall PID "12729" finished
2022.05.15 05:29:00.014 5: DbRep DBRepPow - all: 2022-05-15,05:29:00,0, dev: shelly_plug_s_df2674, reading: power, value: 0
2022.05.15 05:29:00.016 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 967.
2022.05.15 05:29:00.016 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,05:29:00,0") }
2022.05.15 05:29:00.017 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 968.
2022.05.15 05:29:00.018 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,05:29:00,0") }
2022.05.15 05:29:00.018 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 969.
2022.05.15 05:29:00.019 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,05:29:00,0") }
2022.05.15 05:29:00.019 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/93_DbRep.pm line 970.
2022.05.15 05:29:00.020 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,05:29:00,0") }
2022.05.15 05:29:00.021 3: DbRep DBRepPow - get initial structure information of database "fhem", remaining attempts: 3
2022.05.15 05:29:00.023 3: DbRep DBRepPow - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2022.05.15 05:29:00.059 5: DbRep DBRepPow - start BlockingCall with PID "3384"
2022.05.15 05:29:00.105 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.15 05:29:00.119 4: DbRep DBRepPow - Oldest timestamp determined: 2019-02-17 12:00:00
2022.05.15 05:29:00.131 4: DbRep DBRepPow - Encoding of database determined: utf8
2022.05.15 05:29:00.135 3: DbRep DBRepPow - Index Report_Idx exists. Check ok
2022.05.15 05:29:00.139 4: DbRep DBRepPow - Grants determined: SELECT,FILE,DELETE,INSERT,UPDATE
2022.05.15 05:29:00.152 5: DbRep DBRepPow - getInitData finished PID "3384"
2022.05.15 05:29:00.153 3: DbRep DBRepPow - Initial data information retrieved - total time used: 0.0364 seconds
2022.05.15 05:29:00.170 3: DbRep DBRepPow - Connectiontest to db mysql:database=fhem;host=localhost;port=3306 successful
2022.05.15 05:29:00.179 4: DbRep DBRepPow - -------- New selection ---------
2022.05.15 05:29:00.180 4: DbRep DBRepPow - Command: insert 2022-05-15 05:29:00,,,,
2022.05.15 05:29:00.198 5: DbRep DBRepPow - BlockingCall with PID "3386" started
2022.05.15 05:29:00.234 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.15 05:29:00.296 5: DbRep DBRepPow -> Primary Key used in fhem.history: 1 (TIMESTAMP,DEVICE,READING)
2022.05.15 05:29:00.297 5: DbRep DBRepPow -> Primary Key used in fhem.current: 1 (DEVICE,READING)
2022.05.15 05:29:00.297 5: DbRep DBRepPow -> data to insert Timestamp: 2022-05-15 05:29:00, Device: , Type: manual, Event: manual, Reading: , Value: , Unit:
2022.05.15 05:29:00.298 4: DbRep DBRepPow - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.05.15 05:29:00.299 4: DbRep DBRepPow - begin transaction
2022.05.15 05:29:00.305 4: DbRep DBRepPow - transaction committed
2022.05.15 05:29:00.307 4: DbRep DBRepPow - Inserted into fhem.history: 2022-05-15 05:29:00, , manual, manual, , ,
2022.05.15 05:29:00.318 5: DbRep DBRepPow - BlockingCall PID "3386" finished
ZitatDa hast völlig Recht. Aber ich habe vllt. eine Idee. Möglicherweise sind bestimmte Hash-Werte nicht gesetzt die aus DbLog übernommen werden. Das passiert beim ersten DB-Connect. Jetzt kann es sein, dass du das Device auch für andere Operationen verwendest. Dabei werden die Hash-Werte initial übernommen. Das würde die Unregelmäßigkeit des Fehlers erklären.
Ich lese im ersten Logeintrag um "05:29:00.014", dass die Variablen ($prop, $i_device, $i_reading, $i_value) Werte haben die gut aussehen ::)
Log3 ($name, 5, "DbRep $name - all: $prop, dev_colsize: $hash->{HELPER}{DBREPCOL}{DEVICE}), reading_colsize: $hash->{HELPER}{DBREPCOL}{READING}, value_colsize: $hash->{HELPER}{DBREPCOL}{VALUE}");
964 $hash->{LASTCMD} = $prop ? "$opt $prop" : "$opt";
965 Log3 ($name, 5, "DbRep $name - all: $prop, dev: $i_device, reading: $i_reading, value: $i_value"); # 2 Zeilen zum Debuggen da einige DB Eintraege verkorkst
966 Log3 ($name, 5, "DbRep $name - all: $prop, dev_colsize: $hash->{HELPER}{DBREPCOL}{DEVICE}), reading_colsize: $hash->{HELPER}{DBREPCOL}{READING}, value_colsize: $hash->{HELPER}{DBREPCOL}{VALUE}");
967 if ($dbmodel ne 'SQLITE') { # Daten auf maximale Länge (entsprechend der Feldl$
968 $i_device = substr($i_device, 0, $hash->{HELPER}{DBREPCOL}{DEVICE});
969 $i_reading = substr($i_reading, 0, $hash->{HELPER}{DBREPCOL}{READING});
970 $i_value = substr($i_value, 0, $hash->{HELPER}{DBREPCOL}{VALUE});
971 $i_unit = substr($i_unit, 0, $hash->{HELPER}{DBREPCOL}{UNIT});
972 }
2022.05.16 12:40:01.212 5: DbRep DBRepPow - all: 2022-05-16,21:31:00,0, dev: shelly_plug_s_df2674, reading: power, value: 0
2022.05.16 12:40:01.213 5: DbRep DBRepPow - all: 2022-05-16,21:31:00,0, dev_colsize: 64), reading_colsize: 64, value_colsize: 128
2022.05.16 12:40:01.227 4: DbRep DBRepPow - -------- New selection ---------
2022.05.16 12:40:01.228 4: DbRep DBRepPow - Command: insert 2022-05-16 21:31:00,shelly_plug_s_df2674,power,0,
2022.05.16 12:40:01.250 5: DbRep DBRepPow - BlockingCall with PID "14960" started
2022.05.16 12:40:01.519 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.16 12:40:01.587 5: DbRep DBRepPow -> Primary Key used in fhem.history: 1 (TIMESTAMP,DEVICE,READING)
2022.05.16 12:40:01.588 5: DbRep DBRepPow -> Primary Key used in fhem.current: 1 (DEVICE,READING)
2022.05.16 12:40:01.589 5: DbRep DBRepPow -> data to insert Timestamp: 2022-05-16 21:31:00, Device: shelly_plug_s_df2674, Type: manual, Event: manual, Reading: power, Value: 0, Unit:
2022.05.16 12:40:01.589 4: DbRep DBRepPow - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.05.16 12:40:01.592 4: DbRep DBRepPow - begin transaction
2022.05.16 12:40:01.604 4: DbRep DBRepPow - transaction committed
2022.05.16 12:40:01.607 4: DbRep DBRepPow - Inserted into fhem.history: 2022-05-16 21:31:00, shelly_plug_s_df2674, manual, manual, power, 0,
2022.05.16 12:40:01.665 5: DbRep DBRepPow - BlockingCall PID "14960" finished
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
Zitat von: DS_Starter am 16 Mai 2022, 15:40:22
.....
ich habe das insert Kommando intern umgebaut um die identifizierte potentielle Fehlerquelle zu beseitigen.
2022.05.16 21:31:00.012 5: DbRep DBRepPow - all: 2022-05-16,21:31:00,0, dev: shelly_plug_s_df2674, reading: power, value: 0
2022.05.16 21:31:00.013 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 966.
2022.05.16 21:31:00.014 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem("set DBRepPow insert $today,21:31:00,0") }
ZitatEigentlich nicht. ;) Da der "uninitialized value" Fehler nun bei dem Log3 Befehl auftritt bedeutet es dass die Hash Values tatsächlich nicht gesetzt sind. Wir können nun optimistisch sein dass die neue Version das Problem behebt.
Dein Vorschlag für die neue Logzeile ging leider schief.....
Zitat von: DS_Starter am 16 Mai 2022, 23:01:04Auch wieder wahr ;D
Eigentlich nicht. ;) Da der "uninitialized value" Fehler nun bei dem Log3 Befehl auftritt...
2022.05.17 05:29:00.012 3: DbRep DBRepPow - get initial structure information of database "fhem", remaining attempts: 3
2022.05.17 05:29:00.014 3: DbRep DBRepPow - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2022.05.17 05:29:00.055 5: DbRep DBRepPow - start BlockingCall with PID "11671"
2022.05.17 05:29:00.098 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.17 05:29:00.112 4: DbRep DBRepPow - Oldest timestamp determined: 2019-02-17 12:00:00
2022.05.17 05:29:00.122 4: DbRep DBRepPow - Encoding of database determined: utf8
2022.05.17 05:29:00.126 3: DbRep DBRepPow - Index Report_Idx exists. Check ok
2022.05.17 05:29:00.131 4: DbRep DBRepPow - Grants determined: DELETE,UPDATE,INSERT,SELECT,FILE
2022.05.17 05:29:00.143 5: DbRep DBRepPow - getInitData finished PID "11671"
2022.05.17 05:29:00.144 3: DbRep DBRepPow - Initial data information retrieved - total time used: 0.0343 seconds
2022.05.17 05:29:00.164 3: DbRep DBRepPow - Connectiontest to db mysql:database=fhem;host=localhost;port=3306 successful
2022.05.17 05:29:00.173 4: DbRep DBRepPow - -------- New selection ---------
2022.05.17 05:29:00.174 4: DbRep DBRepPow - Command: insert 2022-05-17 05:29:00,shelly_plug_s_df2674,power,0,
2022.05.17 05:29:00.194 5: DbRep DBRepPow - BlockingCall with PID "11673" started
2022.05.17 05:29:00.228 4: DbRep DBRepPow - Database connect - user: fhemuser, UTF-8 option set: yes
2022.05.17 05:29:00.286 5: DbRep DBRepPow -> Primary Key used in fhem.history: 1 (TIMESTAMP,DEVICE,READING)
2022.05.17 05:29:00.286 5: DbRep DBRepPow -> Primary Key used in fhem.current: 1 (DEVICE,READING)
2022.05.17 05:29:00.287 5: DbRep DBRepPow -> data to insert Timestamp: 2022-05-17 05:29:00, Device: shelly_plug_s_df2674, Type: manual, Event: manual, Reading: power, Value: 0, Unit:
2022.05.17 05:29:00.288 4: DbRep DBRepPow - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.05.17 05:29:00.289 4: DbRep DBRepPow - begin transaction
2022.05.17 05:29:00.296 4: DbRep DBRepPow - transaction committed
2022.05.17 05:29:00.297 4: DbRep DBRepPow - Inserted into fhem.history: 2022-05-17 05:29:00, shelly_plug_s_df2674, manual, manual, power, 0,
2022.05.17 05:29:00.308 5: DbRep DBRepPow - BlockingCall PID "11673" finished
Zitat von: RalfRog am 17 Mai 2022, 08:57:31
Mal sehen was Bernd zu berichten hat wenn er den "insert" verwendet.
Zitat von: DS_Starter am 17 Mai 2022, 12:50:36
@Bernd, solltest du bis Donnerstag Abend Ergebnisse haben, kann ich die neue Modulversion noch vor meinem Urlaub einchecken und per Update zur Verfügung stellen.
LG
setstate fetchROWs 2022-05-17 16:46:00 2022-05-17_16-43-47__1__MYSENSOR_3__status4 off
setstate fetchROWs 2022-05-17 16:46:00 2022-05-17_16-43-47__1__MYSENSOR_3__status4_1 on
defmod n_MYSENSOR_Plot notify MYSENSOR_(2|3):(status(1|2|3|4)|status):.on {my $e = chop($EVTPART0);; my $t = ReadingsTimestamp($NAME,$EVTPART0,'undef');; my @T = split(/ /, $t);; Log3 ('n_MYSENSOR_Plot', 1, "$NAME, $EVTPART0, $e, $t, $T[0], $T[1]");; fhem("set insertDB insert $T[0],$T[1],off,,$NAME,$EVTPART0")}
defmod insertDB DbRep logdb
attr insertDB allowDeletion 1
attr insertDB fastStart 1
attr insertDB room System->DbLog
attr insertDB showproctime 1
attr insertDB verbose 1
Zitat von: DS_Starter am 17 Mai 2022, 09:39:56
Danke Ralf für die Info. Sieht ja schon gut aus :)
set dbrep minValue display
reicht.{
".*MAX.*" => "KS300 => MAXTemp",
".*MIN.*" => "KS300 => MINTemp",
}
sub UserFunction {
my $name = shift; # der Name des DbRep-Devices
my $reading = shift; # der Namen des erstellen Readings
my $value = shift; # der Wert des Readings
my $hash = $defs{$name};
ZitatSeit Dezember letzten Jahres man direkt Code zur Ausführung bringen indem er in {..} eingeschlossen wird wie im Fall 2 der ComRef beschrieben.
Hat sich seit Ende letzten Jahres/Anfang diesen Jahres hier etwas beim Aufruf geändert?
ZitatDas war schon immer so, sofern man etwas angibt. D.h. mit
Lt. Commandref muss jetzt der RegEx matchen.
Heisst das, dass "userExitFn db_File_Cleanup state:done" nur exakt dannn aufgerufen wird wenn im DBRep der "state = state:done" ist?
userExitFn db_File_Cleanup (wäre identisch mit "db_File_Cleanup .*:.*")
userExitFn db_File_Cleanup state:done
ZitatDas ist richtig. Brauchst du nur wenn wenn man auf den $hash des DbRep-Devices ($name) zugreifen will/muss.
Was das "my $hash = $defs{$name}" macht muss ich in der Hash-Variablen bei Perl nochmal nachlesen ::) - ist aber vermutlich im Detail nur dann wichtig wenn man die Werte verwenden will.
Log3 $name, 1, "UserExitFn $name called - transfer parameter are Reading: $reading, Value: $value " ;
Zitat"erzwingen" ist hier das falsche Wort ! Erzwingen kannst du nichts, nur filtern sozusagen.
Somit könnte ich den Aufruf per "userExitFn db_File_Cleanup state:.*" erzwingen ...
Zitat
Zitat
Lt. Commandref muss jetzt der RegEx matchen.
Heisst das, dass "userExitFn db_File_Cleanup state:done" nur exakt dannn aufgerufen wird wenn im DBRep der "state = state:done" ist?
Das war schon immer so, sofern man etwas angibt. D.h. mit
2022.06.03 13:44:23.233 1: UserExitFn DBRep_BackupWoche called - mit transfer-Parameter Reading: state, Value: running
2022.06.03 13:44:23.234 3: Aufruf checken, wenns klappt weiter an der Funktion sub db_File_Cleanup arbeiten
2022.06.03 13:44:24.047 3: DbRep DBRep_BackupWoche - Number of exported datasets from fhem to file /opt/fhem/backup/db_back/week/fhem_history_since-prev-week_2022-22_5.csv: 4325
2022.06.03 13:44:24.061 1: UserExitFn DBRep_BackupWoche called - mit transfer-Parameter Reading: state, Value: done
2022.06.03 13:44:24.061 3: Aufruf checken, wenns klappt weiter an der Funktion sub db_File_Cleanup arbeiten
ZitatEs wird für jedes erstellte/aktualisierte Reading das Argument im Attribut userExitFn aufgerufen bzw. vorher geprüft ob eine angegebene Regex-Bedingung erfüllt ist.
Wird die in "userExitFn" definierte Routine während des Abarbeitung der DBRep mehrfach aufgeufen. In meinem Fall nun bei den beiden Statusänderungen running und done?
Internals:
DATABASE sensors
DEF logdb
FUUID 619363ed-f33f-22db-c36e-9f029177fb49c324
FVERSION 93_DbRep.pm:v8.49.0-s26054/2022-05-17
LASTCMD initial database connect stopped due to attribute 'fastStart'
MODEL Client
NAME logdbRep
NOTIFYDEV global,logdbRep
NR 15
NTFY_ORDER 50-logdbRep
ROLE Client
STATE initialized
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE logdb
IDRETRIES 3
PACKAGE main
VERSION 8.49.0
OLDREADINGS:
READINGS:
2022-06-08 11:59:31 background_processing_time 0.00
2022-06-08 11:59:31 reduceLogState reduceLog finished. Rows processed: 0, deleted: 0, updated: 0
2022-06-08 12:05:27 state initialized
Attributes:
device TYPE=SSCam
timeOlderThan d:120
verbose 5
2022.06.08 12:01:13 4: DbRep logdbRep - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history where ( DEVICE = '^^' ) AND TIMESTAMP >= '2021-11-15 00:00:00' AND TIMESTAMP <= '2022-02-09 00:59:59' ORDER BY TIMESTAMP ASC;
ZitatWird auch nicht auftauchen weil TYPE ein FHEM Schlüssel ist mit dem die DB nichts anfangen kann.
Hier das Log wo nirgends in der WHERE Klausel der TYPE auftaucht:
list TYPE=SSCam
ZitatDas geht schon, nur mußt du dann diese Geräte im Attr devices explizit benennen weil FHEM sie nicht ausflösen kann.
Damit erübrigt sich aber auch meine weitere Frage,
da es mir auch darum ging, dass DbRep im Zuge eines reduceLogs auch "fremde" (also nicht in FHEM bekannte) Geräte bzw. deren Datensätze berücksichtigt.
Zitat von: DS_Starter am 05 Dezember 2021, 21:12:32
Beitrag #1535
Offen ist noch, dass bei average die letzte Stunde nicht auf den Halbstundenwert reduziert wird und bei average=day der letzte
Tag nicht auf den 12:00 Wert reduziert wird. Aber da bin ich dran
--------------------------------------------------------------------
Beitrag #1536
Ist nun auch erledigt und die Version ins contrib geladen.
LG
TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT
2022-06-07 20:30:00 shelly_plug SHELLY rl_av_h power 0.890
2022-06-07 20:26:22 shelly_plug SHELLY power: 0 power 0
2022-06-07 20:21:22 shelly_plug SHELLY power: 0.34 power 0.34
2022-06-07 20:17:09 shelly_plug SHELLY power: 0.55 power 0.55
2022-06-07 20:12:09 shelly_plug SHELLY power: 0.63 power 0.63
2022-06-07 20:07:04 shelly_plug SHELLY power: 1.47 power 1.47
2022-06-07 19:30:00 shelly_plug SHELLY rl_av_h power 12.223
2022-06-07 18:30:00 shelly_plug SHELLY rl_av_h power 13.427
2022-06-14 21:31:00 shelly_plug_s_df2674 manual manual power 0
2022-06-14 21:14:31 shelly_plug_s_df2674 SHELLY power: 0 power 0
2022-06-14 21:12:15 shelly_plug_s_df2674 SHELLY power: 0.5 power 0.5
2022-06-14 21:07:15 shelly_plug_s_df2674 SHELLY power: 0.91 power 0.91
2022-06-14 21:04:23 shelly_plug_s_df2674 SHELLY power: 1.08 power 1.08
2022-06-14 21:02:15 shelly_plug_s_df2674 SHELLY power: 1.04 power 1.04
2022-06-14 20:30:00 shelly_plug_s_df2674 SHELLY rl_av_h power 2.816
2022-06-14 19:30:00 shelly_plug_s_df2674 SHELLY rl_av_h power 5.472
Internals:
DATABASE fhem
DEF DBLogging
FUUID 60a6d173-f33f-a8ec-3be0-2e7e866eb54ed451
FVERSION 93_DbRep.pm:v8.49.0-s25939/2022-04-09
LASTCMD reduceLog average
MODEL Client
NAME DBRep_reduPower
NOTIFYDEV global,DBRep_reduPower
NR 486
NTFY_ORDER 50-DBRep_reduPower
ROLE Client
STATE reduceLog of fhem finished
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE DBLogging
GRANTS UPDATE,FILE,DELETE,INSERT,SELECT
IDRETRIES 2
MINTS 2019-02-17 12:00:00
PACKAGE main
VERSION 8.49.0
CV:
aggregation no
aggsec 1
destr 2022-06-21
dsstr 2022-06-14
epoch_seconds_end 1655848799
mestr 06
msstr 06
testr 23:59:59
tsstr 00:00:00
wdadd 518400
yestr 2022
ysstr 2022
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2022-07-01 23:45:03 background_processing_time 3.40
2022-07-01 23:45:03 reduceLogState reduceLog finished. Rows processed: 1807, deleted: 1664, updated: 115
2022-07-01 23:45:03 state reduceLog of fhem finished
Attributes:
device shelly.*
executeAfterProc msg push -1 [DBRep_reduPower:state] fuer shelly:power
executeBeforeProc set DBLogging reopen 300
reading power
room Dbase
timeDiffToNow d:17 FullDay
timeOlderThan d:10 FullDay
useAdminCredentials 0
Internals:
COMMAND { fhem ("msg push -1 Start reduceDBlog") ;
if ($wday == 5) { fhem ("set DBRep_reduPower reduceLog average") }
elsif ($wday == 4) { fhem ("set DBRep_reduEnergy reduceLog") } }
DEF *23:45 { fhem ("msg push -1 Start reduceDBlog") ;
if ($wday == 5) { fhem ("set DBRep_reduPower reduceLog average") }
elsif ($wday == 4) { fhem ("set DBRep_reduEnergy reduceLog") } }
FUUID 60a6f4e0-f33f-a8ec-dc2e-bc1116a48f93ad37
FVERSION 90_at.pm:0.252480/2021-11-21
NAME ReduceDB_weekly
NR 488
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 23:45:00
TIMESPEC 23:45
TRIGGERTIME 1656798300
TRIGGERTIME_FMT 2022-07-02 23:45:00
TYPE at
READINGS:
2022-07-01 23:45:00 state Next: 23:45:00
Attributes:
comment Donnerstag und Freitag Datenbank für Shelly um 23:45 reduzieren (mit Device DBRep_reduEnergy und DBRep_reduPower)
room Dbase
TIMESTAMP;DEVICE;TYPE;EVENT;READING;VALUE;UNIT
2022-06-22 06:19:00;shelly_plug_s_df2674; SHELLY; power: 3.53; power; 3.53;
2022-06-22 06:14:00;shelly_plug_s_df2674; SHELLY; power: 3.44; power; 3.44;
2022-06-22 06:09:00;shelly_plug_s_df2674; SHELLY; power: 3.51; power; 3.51;
2022-06-22 06:04:00;shelly_plug_s_df2674; SHELLY; power: 3.2; power; 3.2;
2022-06-22 06:00:45;shelly_plug_s_df2674; SHELLY; power: 2.59; power; 2.59;
2022-06-22 05:55:44;shelly_plug_s_df2674; SHELLY; power: 1.87; power; 1.87;
2022-06-22 05:50:44;shelly_plug_s_df2674; SHELLY; power: 1.43; power; 1.43;
2022-06-22 05:45:44;shelly_plug_s_df2674; SHELLY; power: 1.03; power; 1.03;
2022-06-22 05:43:37;shelly_plug_s_df2674; SHELLY; power: 0.87; power; 0.87;
2022-06-22 05:39:55;shelly_plug_s_df2674; SHELLY; power: 0.57; power; 0.57;
2022-06-22 05:29:00;shelly_plug_s_df2674; manual; manual; power; 0;
2022-06-21 21:31:00;shelly_plug_s_df2674; manual; manual; power; 0;
2022-06-21 20:49:07;shelly_plug_s_df2674; SHELLY; power: 0; power; 0;
2022-06-21 20:44:58;shelly_plug_s_df2674; SHELLY; power: 1.2; power; 1.2;
2022-06-21 20:39:58;shelly_plug_s_df2674; SHELLY; power: 2.57; power; 2.57;
2022-06-21 20:34:58;shelly_plug_s_df2674; SHELLY; power: 2.49; power; 2.49;
2022-06-21 20:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 1.605;
2022-06-21 20:29:58;shelly_plug_s_df2674; SHELLY; power: 2.12; power; 2.12;
2022-06-21 20:26:20;shelly_plug_s_df2674; SHELLY; power: 1.48; power; 1.48;
2022-06-21 20:21:20;shelly_plug_s_df2674; SHELLY; power: 1.41; power; 1.41;
2022-06-21 20:16:20;shelly_plug_s_df2674; SHELLY; power: 0.97; power; 0.97;
2022-06-21 20:09:40;shelly_plug_s_df2674; SHELLY; power: 1.68; power; 1.68;
2022-06-21 19:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 8.699;
2022-06-21 18:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 22.230;
2022-06-21 17:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 40.975;
2022-06-21 16:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 81.578;
2022-06-21 15:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 109.965;
2022-06-21 14:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 171.117;
2022-06-21 13:30:00;shelly_plug_s_df2674; SHELLY; rl_av_h; power; 133.009;
2022.07.01 23:45:00.106 3: DbRep DBRep_reduPower - ################################################################
2022.07.01 23:45:00.107 3: DbRep DBRep_reduPower - ### new reduceLog run ###
2022.07.01 23:45:00.107 3: DbRep DBRep_reduPower - ################################################################
2022.07.01 23:45:00.139 3: DbRep DBRep_reduPower - execute command before reduceLog: 'set DBLogging reopen 300'
2022.07.01 23:45:00.145 2: DbLog DBLogging: Connection closed until 23:50:00 (300 seconds).
2022.07.01 23:45:00.289 3: DbRep DBRep_reduPower - reduce data older than: 2022-06-22 00:59:59 (logical corrected), newer than: 2022-06-14 00:00:00
2022.07.01 23:45:00.290 3: DbRep DBRep_reduPower - reduceLog requested with options:
AVERAGE=HOUR
INCLUDE -> Devs: shelly_plug_s_df2674 Readings: power
2022.07.01 23:45:00.460 3: DbRep DBRep_reduPower - reduceLog deleting 5 records of day: 2022-06-14
2022.07.01 23:45:00.476 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 1 records of day: 2022-06-14
2022.07.01 23:45:00.517 3: DbRep DBRep_reduPower - reduceLog deleting 190 records of day: 2022-06-15
2022.07.01 23:45:00.679 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-15 is: 100
2022.07.01 23:45:00.814 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 17 records of day: 2022-06-15
2022.07.01 23:45:00.892 3: DbRep DBRep_reduPower - reduceLog deleting 193 records of day: 2022-06-16
2022.07.01 23:45:01.042 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-16 is: 100
2022.07.01 23:45:01.178 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 17 records of day: 2022-06-16
2022.07.01 23:45:01.277 3: DbRep DBRep_reduPower - reduceLog deleting 265 records of day: 2022-06-17
2022.07.01 23:45:01.409 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-17 is: 100
2022.07.01 23:45:01.587 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-17 is: 200
2022.07.01 23:45:01.694 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 17 records of day: 2022-06-17
2022.07.01 23:45:01.774 3: DbRep DBRep_reduPower - reduceLog deleting 169 records of day: 2022-06-18
2022.07.01 23:45:01.934 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-18 is: 100
2022.07.01 23:45:02.041 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 16 records of day: 2022-06-18
2022.07.01 23:45:02.131 3: DbRep DBRep_reduPower - reduceLog deleting 297 records of day: 2022-06-19
2022.07.01 23:45:02.274 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-19 is: 100
2022.07.01 23:45:02.416 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-19 is: 200
2022.07.01 23:45:02.581 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 16 records of day: 2022-06-19
2022.07.01 23:45:02.681 3: DbRep DBRep_reduPower - reduceLog deleting 264 records of day: 2022-06-20
2022.07.01 23:45:02.823 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-20 is: 100
2022.07.01 23:45:02.967 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-20 is: 200
2022.07.01 23:45:03.071 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 15 records of day: 2022-06-20
2022.07.01 23:45:03.161 3: DbRep DBRep_reduPower - reduceLog deleting 281 records of day: 2022-06-21
2022.07.01 23:45:03.303 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-21 is: 100
2022.07.01 23:45:03.439 3: DbRep DBRep_reduPower - reduceLog deletion progress of day: 2022-06-21 is: 200
2022.07.01 23:45:03.564 3: DbRep DBRep_reduPower - reduceLog (hourly-average) updating 16 records of day: 2022-06-21
2022.07.01 23:45:03.628 3: DbRep DBRep_reduPower - reduceLog finished. Rows processed: 1807, deleted: 1664, updated: 115
2022.07.01 23:45:03.698 3: msg globalMsg: ID=1656711903.6422.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='reduceLog database is running - be patient and see Logfile ! fuer shelly:power'
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
max
max=day
...
min : numerische Werte werden auf den Minimalwert pro Stunde je Device & Reading reduziert, sonst wie ohne mode
min=day : numerische Werte werden auf den Minimalwert pro Tag je Device & Reading reduziert, sonst wie ohne mode
Die FullDay-Option (es werden immer volle Tage selektiert) wird impliziert verwendet.
...
sum : numerische Werte werden auf die Summe pro Stunde je Device & Reading reduziert, sonst wie ohne mode
sum=day : numerische Werte werden auf die Summe pro Tag je Device & Reading reduziert, sonst wie ohne mode
Die FullDay-Option (es werden immer volle Tage selektiert) wird impliziert verwendet.
Zitat von: RalfRog am 25 Juni 2022, 19:58:10
Heute Nacht wurde bei der Bereinigung die letzte Stunde nicht auf den Halbstundenwert reduziert und die regulären Datenbankeinträge sind noch da.
......
Zitat von: DS_Starter am 22 August 2022, 22:05:10
Neue Version mit überarbeiteten reduceLog ist eingecheckt und morgen früh im Update.
LG
TIMESTAMP; DEVICE; TYPE; EVENT; READING;VALUE;UNIT
2022-08-17 07:26:14;shelly_plug_s_df2674;SHELLY;power: 3.3; power;3.3;
2022-08-17 07:21:14;shelly_plug_s_df2674;SHELLY;power: 2.82;power;2.82;
2022-08-17 07:16:16;shelly_plug_s_df2674;SHELLY;power: 1.62;power;1.62;
2022-08-17 07:13:45;shelly_plug_s_df2674;SHELLY;power: 1.04;power;1.04;
2022-08-17 07:08:45;shelly_plug_s_df2674;SHELLY;power: 0.75;power;0.75;
2022-08-17 05:29:00;shelly_plug_s_df2674;manual;manual; power;0;
2022-08-16 21:31:00;shelly_plug_s_df2674;manual;manual; power;0;
2022-08-16 20:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;0.2300;
2022-08-16 19:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;3.6157;
2022-08-16 18:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;12.2937;
2022-08-16 17:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;28.8400;
2022-08-16 16:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;91.1250;
2022-08-16 15:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;139.9095;
2022-08-16 14:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;121.1065;
2022-08-16 13:30:00;shelly_plug_s_df2674;SHELLY;rl_av_h; power;159.1086;
ZitatFVERSION 93_DbRep.pm:v8.49.0-s25939/2022-04-09Fhem bringe ich noch auf den aktuellen Stand, denke aber nicht, dass das hilft, da meine erstes Insert-Notify einwandfrei funktioniert.
defmod n_Zisterne_Plot notify Zisternenpumpe:power:.* {if ($EVTPART1 > 50 && ReadingsVal('Zisternenpumpe','plot',0) == 0) {my $e = $EVTPART0;; chop $e;; my $t = ReadingsTimestamp($NAME,$e,'undef');; my @T = split(/ /, $t);; Debug("$T[0],$T[1],$NAME,$e");; return fhem("setreading Zisternenpumpe plot 1;; set insertDB insert $T[0],$T[1],0,,$NAME,$e");;} elsif ($EVTPART1 < 50 && ReadingsVal('Zisternenpumpe','plot',1) == 1) {return fhem 'setreading Zisternenpumpe plot 0';;}}
2022.09.03 17:00:13 1: DEBUG>2022-09-03,17:00:13,Zisternenpumpe,power
2022.09.03 17:00:13 1: DbRep insertDB -> BlockingCall DbRep_insert pid:6878 Timeout: process terminated
2022.09.03 17:00:13 1: DbRep insertDB -> BlockingCall DbRep_insert pid:6879 Timeout: process terminated
2022.09.03 17:03:14 1: DbRep insertDB -> BlockingCall DbRep_insert pid:6964 Timeout: process terminated
2022.09.03 17:06:15 1: DbRep insertDB -> BlockingCall DbRep_insert pid:7058 Timeout: process terminated
2022.09.03 10:34:12 5: Triggering n_Zisterne_Plot
2022.09.03 10:34:12 4: n_Zisterne_Plot exec {if ($EVTPART1 > 50 && ReadingsVal('Zisternenpumpe','plot',0) == 0) {my $e = $EVTPART0;; chop $e;; my $t = ReadingsTimestamp($NAME,$e,'undef');; my @T = split(/ /, $t);; Debug("$T[0],$T[1],$NAME,$e");; return fhem("setreading Zisternenpumpe plot 1;; set insertDB insert $T[0],$T[1],0,,$NAME,$e");;} elsif ($EVTPART1 < 50 && ReadingsVal('Zisternenpumpe','plot',1) == 1) {return fhem 'setreading Zisternenpumpe plot 0';;}}
2022.09.03 10:34:12 1: DEBUG>2022-09-03,10:34:12,Zisternenpumpe,power
2022.09.03 10:34:12 1: DbRep insertDB -> BlockingCall DbRep_insert pid:27242 Timeout: process terminated
2022.09.03 10:34:12 1: DbRep insertDB -> BlockingCall DbRep_insert pid:27243 Timeout: process terminated
trigger Zisternenpumpe power: 60
absetze, funktioniert es.Zitat2022-09-03_17:34:23 0
2022-09-03_17:34:55 60
Zitat2022.09.03 17:34:55 1: DEBUG>2022-09-03,17:34:23,Zisternenpumpe,power
DbRep <name> - BlockingCall with PID "..." started
Zitat von: DS_Starter am 04 September 2022, 09:42:59
Moin Bernd,
es ist also so dass dein notify funktioniert wie es soll wenn du den event per trigger auslöst, richtig ?
Und du setzt eigentlich immer nur "0" in der DB, auch richtig ?
Zitat
In deinen Logangaben vermisse ich grundsätzlich den Start der Aktion mit "-------- New selection ---------" Ausgabe mit verbose 4.
Gibt es den nicht
ZitatEigentlich nur, dass Power eher bei 300 (296.4 o.ä.) ist.
Was ist der Unterschied zwischen dem Trigger und dem normalen Event ?
ZitatMache ich aber erst heute Mittag...
Du kannst in deinem Debug mal den kompletten Event mit $EVENT aufnehmen und ausdrucken lassen.
Zitat
Es müsste mit verbose 5 auch die MeldungCode Auswählen
DbRep <name> - BlockingCall with PID "..." started
erscheinen. Sehe ich auch nicht in deinem Auszug.
Checke das bitte nochmal.
Verbose von DbRep ist doch von Global verbose unabhängig, bzw. wird bevorzugt, richtig?
Zitat von: DS_Starter am 04 September 2022, 10:46:35
Ok. Dann kannst du im Dbrep erhöhen auf 2, 3, 4 oder 5. Sonst nimmt DbRep auch den global eingestellten Wert (1 bei dir).
Zitat2022-09-04_11:35:53 0.3
2022-09-04_12:07:01 0.3
2022-09-04_12:37:13 0.3
2022-09-04_13:08:22 0
2022-09-04_13:08:22 0.4
2022-09-04_13:38:32 0
2022-09-04_14:09:42 0.3
Zitat
2022-09-04_14:52:56 0.3
2022-09-04_14:54:56 0
2022-09-04_14:54:56 299.3
2022-09-04_14:55:56 0
Zitat2022.09.04 13:08:22 1: DEBUG>2022-09-04,13:08:22,Zisternenpumpe,power,event = power: 0.4
2022.09.04 13:08:22 3: DbRep insertDB - get initial structure information of database "fhem", remaining attempts: 3
2022.09.04 13:08:22 3: DbRep insertDB - Connectiontest to database mysql:database=fhem;host=localhost;port=xxxx with user xxx
2022.09.04 13:08:22 5: DbRep insertDB - start BlockingCall with PID "12705"
2022.09.04 13:08:22 4: DbRep insertDB - Database connect - user: xxx, UTF-8 option set: yes
2022.09.04 13:08:22 4: DbRep insertDB - Oldest timestamp determined: 2018-03-31 22:56:30
2022.09.04 13:08:22 4: DbRep insertDB - Encoding of database determined: utf8
2022.09.04 13:08:22 3: DbRep insertDB - Index Report_Idx exists. Check ok
2022.09.04 13:08:22 4: DbRep insertDB - Grants determined: USAGE
2022.09.04 13:08:22 5: DbRep insertDB - getInitData finished PID "12705"
2022.09.04 13:08:22 3: DbRep insertDB - Initial data information retrieved - total time used: 0.0144 seconds
2022.09.04 13:08:22 3: DbRep insertDB - Connectiontest to db mysql:database=fhem;host=localhost;port=3306 successful
2022.09.04 13:08:22 4: DbRep insertDB - -------- New selection ---------
2022.09.04 13:08:22 4: DbRep insertDB - Command: insert 2022-09-04 13:08:22,Zisternenpumpe,power,0,
2022.09.04 13:08:23 5: DbRep insertDB - BlockingCall with PID "12706" started
2022.09.04 13:08:23 4: DbRep insertDB - Database connect - user: xxx, UTF-8 option set: yes
2022.09.04 13:08:23 5: DbRep insertDB -> Primary Key used in fhem.history: 0 (none)
2022.09.04 13:08:23 5: DbRep insertDB -> Primary Key used in fhem.current: 0 (none)
2022.09.04 13:08:23 5: DbRep insertDB -> data to insert Timestamp: 2022-09-04 13:08:22, Device: Zisternenpumpe, Type: manual, Event: manual, Reading: power, Value: 0, Unit:
2022.09.04 13:08:23 4: DbRep insertDB - SQL prepare: INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.09.04 13:08:23 4: DbRep insertDB - begin transaction
2022.09.04 13:08:23 4: DbRep insertDB - transaction committed
2022.09.04 13:08:23 4: DbRep insertDB - Inserted into fhem.history: 2022-09-04 13:08:22, Zisternenpumpe, manual, manual, power, 0,
2022.09.04 13:08:23 5: DbRep insertDB - BlockingCall PID "12706" finished
2022.09.04 14:54:56 1: DEBUG>2022-09-04,14:54:56,Zisternenpumpe,power,event = power: 299.3
2022.09.04 14:54:56 4: DbRep insertDB - -------- New selection ---------
2022.09.04 14:54:56 4: DbRep insertDB - Command: insert 2022-09-04 14:54:56,Zisternenpumpe,power,0,
2022.09.04 14:54:56 5: DbRep insertDB - BlockingCall with PID "16068" started
2022.09.04 14:54:56 4: DbRep insertDB - Database connect - user: xxx, UTF-8 option set: yes
2022.09.04 14:54:56 5: DbRep insertDB -> Primary Key used in fhem.history: 0 (none)
2022.09.04 14:54:56 5: DbRep insertDB -> Primary Key used in fhem.current: 0 (none)
2022.09.04 14:54:56 5: DbRep insertDB -> data to insert Timestamp: 2022-09-04 14:54:56, Device: Zisternenpumpe, Type: manual, Event: manual, Reading: power, Value: 0, Unit:
2022.09.04 14:54:56 4: DbRep insertDB - SQL prepare: INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2022.09.04 14:54:56 4: DbRep insertDB - begin transaction
2022.09.04 14:54:56 4: DbRep insertDB - transaction committed
2022.09.04 14:54:56 4: DbRep insertDB - Inserted into fhem.history: 2022-09-04 14:54:56, Zisternenpumpe, manual, manual, power, 0,
2022.09.04 14:54:56 5: DbRep insertDB - BlockingCall PID "16068" finished
ZitatEher unwahrscheinlich. Das ist m.M. nach eine grundsätzliche Problematik.
Lag es doch an der älteren Version von DbRep?? Fhem ist seit gestern aktuell. Oder Fhem hat einfach einen Neustart benötigt!?
2022.09.04 13:08:23 5: DbRep insertDB - BlockingCall with PID "12706" started
2022.09.03 17:00:13 1: DbRep insertDB -> BlockingCall DbRep_insert pid:12706 Timeout: process terminated
Zitat von: frober am 04 September 2022, 18:09:17
Das könnte passen, da das andere notify (Mysensors) beim Start der Pumpe ( unter bestimmten Bedingungen) parallel auch anspricht (spülen des Filtersiebs der Zisterne).
Dann lege ich eine Kopie vom DbRep an. :)
set .... diffValue writeToDB
defmod WP.Verbrauch.Mon DbRep thomasDbLog
attr WP.Verbrauch.Mon aggregation month
attr WP.Verbrauch.Mon comment Abgegrenzter Stromverbrauch Wärmepumpe
attr WP.Verbrauch.Mon device HAR.Counter
attr WP.Verbrauch.Mon reading consumption
attr WP.Verbrauch.Mon room Sensoren
attr WP.Verbrauch.Mon diffValue writeToDB
führt leider zu einer Fehlermeldung.ZitatSchau doch dafür mal im SVG Forum vorbei. Ich will nicht sagen es ginge nicht, habe aber addhoc keinen Vorschlag.
Hast Du vielleicht noch einen Tipp, wie ich da stattdessen die Summe des Monats anzeiegn lassen kann? Oder gerne auch dauerhaft einblenden im Diagramm.
ZitatZwei Devices ist absolut ok und war von mir vom Design her auch so gedacht. Wenn man beide Funktionen (Verbrauch, Erzeugung) vom selben DbRep erzeugen lassen will geht das zwar auch, man muß sich aber genau überlegen wie man das zeitlich steuert. Durch die asynchrone Arbeitsweise dürfen sich beide Aufgaben zeitlich nicht überschneiden usw.
Ist das so ok, wenn ich zwei Werte ermitteln möchte zwei Devices anzulegen, oder wäre es gecshickter diese beiden Werte (Verbrauch, Erzeugung) in ein DBREP Device zusammenzufassen.
2022.10.12 10:28:42.894 3: DbRep LogDBRep - ################################################################
2022.10.12 10:28:42.895 3: DbRep LogDBRep - ### New optimize table / vacuum execution ###
2022.10.12 10:28:42.895 3: DbRep LogDBRep - ################################################################
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Estimate of fhem before optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Optimizing tables
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Optimizing table `current` (INNODB). It may take a while ...
2022.10.12 10:28:43.434 3: DbRep LogDBRep - Table 1 `current` optimized successfully.
2022.10.12 10:28:43.434 3: DbRep LogDBRep - Optimizing table `history` (INNODB). It may take a while ...
2022.10.12 12:21:45.724 3: DbRep LogDBRep - Table 2 `history` optimized successfully.
2022.10.12 12:21:45.724 3: DbRep LogDBRep - 2 tables have been optimized.
2022.10.12 12:21:45.827 3: DbRep LogDBRep - Estimate of fhem after optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
2022.10.12 12:21:45.828 3: DbRep LogDBRep - Optimize tables of fhem finished - total time (hh:mm:ss): 01:53:02
2022.10.12 12:21:45.842 3: DbRep LogDBRep - Optimize tables finished successfully.
2022.10.12 14:16:25.524 3: DbRep Rep.LogMariaVM.Test - ################################################################
2022.10.12 14:16:25.524 3: DbRep Rep.LogMariaVM.Test - ### New optimize table / vacuum execution ###
2022.10.12 14:16:25.525 3: DbRep Rep.LogMariaVM.Test - ################################################################
2022.10.12 14:16:25.566 4: DbRep Rep.LogMariaVM.Test - Database connect - user: fhemtest, UTF-8 option set: yes
2022.10.12 14:16:25.586 3: DbRep Rep.LogMariaVM.Test - Estimate of fhemtest before optimize (MB): Data size: 3070.75, Index size: 2951.36, Space free: 7, Overhead: 150.59
....
2022.10.12 14:43:59.122 3: DbRep Rep.LogMariaVM.Test - Estimate of fhemtest after optimize (MB): Data size: 2787.05, Index size: 2654, Space free: 0, Overhead: 150.59
READINGS:
2022-10-12 14:43:59 SizeDbBegin_MB Data size: 3070.75, Index size: 2951.36, Space free: 7, Overhead: 150.59
2022-10-12 14:43:59 SizeDbEnd_MB Data size: 2787.05, Index size: 2654, Space free: 0, Overhead: 150.59
2022-10-12 14:43:59 background_processing_time 1653.5576
2022-10-12 14:43:59 state optimize tables finished
Zitat von: DS_Starter am 12 Oktober 2022, 15:10:10Okay, dem nach war bei mir nichts zu optimieren :-)
die Ergebnisse zu Anfang und Endgröße stehen doch im Log. Hier einer meiner Test MySQL:
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Estimate of fhem before optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
2022.10.12 12:21:45.827 3: DbRep LogDBRep - Estimate of fhem after optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
ZitatJa das stimmt.
aktuell geht 1 Stunde oder 1 Tag wenn ich es richtig verstanden habe?
ZitatSag mal ja ohne es vorher genau gecheckt zu haben.
Wäre die Implementierung von 1 Min einfacher umsetzbar?
| 2022-12-04 23:54:36 | 17705.911 | 0.013999999999214197 | 17705.911 | 0 |
| 2022-12-04 23:55:37 | 17705.923 | 0.011999999998806743 | 17705.923 | 0 |
| 2022-12-04 23:56:37 | 17705.935 | 0.012000000002444722 | 17705.935 | 0 |
| 2022-12-04 23:57:36 | 17705.946 | 0.010999999998603016 | 17705.946 | 0 |
| 2022-12-04 23:58:37 | 17705.958 | 0.011999999998806743 | 17705.958 | 0 |
| 2022-12-04 23:59:37 | 17705.970 | 0.012000000002444722 | 17705.970 | 0 |
MjAyMi0xMi0wNA== 2022-12-04 23:53:36 17705.897 0
MjAyMi0xMi0wNA== 2022-12-04 23:54:36 17705.911 0
MjAyMi0xMi0wNA== 2022-12-04 23:55:37 17705.923 0
MjAyMi0xMi0wNA== 2022-12-04 23:56:37 17705.935 0
MjAyMi0xMi0wNA== 2022-12-04 23:57:36 17705.946 0
MjAyMi0xMi0wNA== 2022-12-04 23:58:37 17705.958 0
MjAyMi0xMi0wNA== 2022-12-04 23:59:37 17705.970 0
define logdb.aggregation DbLog ./modified/db.conf logdb.*
attr logdb.aggregation DbLogType Current/History
attr logdb.aggregation asyncMode 1
attr logdb.aggregation bulkInsert 1
attr logdb.aggregation cacheEvents 2
attr logdb.aggregation dbSchema fhem_aggregation
define logdb.weekly.Strom.Haus DbRep logdb.aggregation
attr logdb.weekly.Strom.Haus aggregation day
attr logdb.weekly.Strom.Haus allowDeletion 1
attr logdb.weekly.Strom.Haus device MQTT2_Z_HAUS
attr logdb.weekly.Strom.Haus reading MT681_Total_in
attr logdb.weekly.Strom.Haus showproctime 1
attr logdb.weekly.Strom.Haus timestamp_begin previous_week_begin
attr logdb.weekly.Strom.Haus timestamp_end previous_week_end
Zitat von: DS_Starter am 08 Dezember 2022, 12:58:28Ach Du schmeichelst mir jetzt aber wieder :-) :-)
Deine SQLs sind immer eine Freude .... wie Weihnachten. :D
Mache doch einen Eintrag im DbRep Wiki. Ich habe eine Abschnitt für hilfreiche SQL angefangen.
Dann geht das Know How nicht verloren und wer Anregungen sucht ....
Internals:
DATABASE fhem
DEF LogDB
FUUID 614b0a08-f33f-61a8-f1e8-10ef59dfe90ba545
FVERSION 93_DbRep.pm:v8.49.0-s26054/2022-05-17
LASTCMD initial database connect stopped due to attribute 'fastStart'
MODEL Client
NAME LogDBRep_Statistic_previous_Year
NOTIFYDEV global,LogDBRep_Statistic_previous_Year
NR 424
NTFY_ORDER 50-LogDBRep_Statistic_previous_Year
ROLE Client
STATE initialized
TYPE DbRep
UTF8 1
HELPER:
DBLOGDEVICE LogDB
IDRETRIES 3
PACKAGE main
VERSION 8.49.0
READINGS:
2021-12-31 23:57:03 SW_Statistic_Autarky_Year 68
2021-12-31 23:57:03 SW_Statistic_EnergyHomeFeedInGrid_Year 11294
2021-12-31 23:57:03 SW_Statistic_EnergyHomeGrid_Year 2616
2021-12-31 23:57:03 SW_Statistic_EnergyHomePvSum_Year 5598
2021-12-31 23:57:03 SW_Statistic_EnergyHomePv_Year 4171
2021-12-31 23:57:03 SW_Statistic_EnergyHome_Year 8214
2021-12-31 23:57:03 SW_Statistic_OwnConsumptionRate_Year 33
2021-12-31 23:57:03 SW_Statistic_TotalConsumption_Year 8214
2021-12-31 23:57:03 SW_Statistic_Yield_Year 16892
2022-01-11 15:19:26 SqlResultRow_01 TIMESTAMP|READING|VALUE
2022-01-11 15:19:26 SqlResultRow_02 2021-12-31 23:57:03|Statistic_EnergyHomeBat_Year|1427
2022-01-11 15:19:26 SqlResultRow_03 2021-12-31 23:57:03|SW_Statistic_Autarky_Year|68
2022-01-11 15:19:26 SqlResultRow_04 2021-12-31 23:57:03|SW_Statistic_EnergyHome_Year|8214
2022-01-11 15:19:26 SqlResultRow_05 2021-12-31 23:57:03|SW_Statistic_EnergyHomeFeedInGrid_Year|11294
2022-01-11 15:19:26 SqlResultRow_06 2021-12-31 23:57:03|SW_Statistic_EnergyHomeGrid_Year|2616
2022-01-11 15:19:26 SqlResultRow_07 2021-12-31 23:57:03|SW_Statistic_EnergyHomePv_Year|4171
2022-01-11 15:19:26 SqlResultRow_08 2021-12-31 23:57:03|SW_Statistic_EnergyHomePvSum_Year|5598
2022-01-11 15:19:26 SqlResultRow_09 2021-12-31 23:57:03|SW_Statistic_OwnConsumptionRate_Year|33
2022-01-11 15:19:26 SqlResultRow_10 2021-12-31 23:57:03|SW_Statistic_TotalConsumption_Year|8214
2022-01-11 15:19:26 SqlResultRow_11 2021-12-31 23:57:03|SW_Statistic_Yield_Year|16892
2022-01-11 15:19:26 SqlResultRow_12 2021-12-29 14:35:50|lp_1_kWhCounter_Year|466
2021-12-31 23:57:03 Statistic_EnergyHomeBat_Year 1427
2021-12-29 14:35:50 lp_1_kWhCounter_Year 466
2022-01-11 15:19:26 sqlCmd SELECT * FROM ( SELECT h.TIMESTAMP, h.READING, IF (h.READING LIKE '%Rate%' OR h.READING LIKE '%Autarky%',h.VALUE ,cast(h.VALUE/1000 AS decimal(6)) ) AS VALUE FROM history h INNER JOIN ( SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history WHERE §device§ AND §reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-31'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') GROUP BY READING ) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING ) x2 UNION ALL SELECT h.TIMESTAMP, h.READING, h.VALUE FROM history h INNER JOIN ( SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history WHERE DEVICE = 'WB_1' AND READING LIKE 'lp_%_kWhCounter_Year' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1,'-12-01'),'%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()) ,'-01-01'),'%Y-%m-%d') GROUP BY READING ) x2 ON h.TIMESTAMP = x2.TIMESTAMP AND h.READING = x2.READING ;
2022-01-11 15:19:26 sqlResultNumRows 11
2022-11-06 17:27:08 state initialized
Attributes:
DbLogExclude .*
allowDeletion 0
comment Version 2022.01.11 11:00
device WR_1_API
reading SW_Statistic%_Year,Statistic_EnergyHomeBat_Year EXCLUDE=%NoBat%,%EnergyPv%
room System
userExitFn splitReading .*:.*
verbose 0
Zitat von: DS_Starter am 08 Dezember 2022, 13:33:25Na da haste mal wieder schön die formatierte Anzeige von sqlCmd umdribbelt :-) :-)
Na ich kenne dich ja schon ein bisschen ... ;)
Auch das wäre sicher eine hilfreiche Anregung für Nachnutzer.
Da bietet sich an eine extra Wiki Seite zu erstellen und im DbRep Abschnitt für die SQLs einen Link dorthin zu setzen.
Wieder etwas Mehrwert für DB User ...
SELECT X.HOUR, cast(X.generator_P AS decimal(7,2)) AS generator_P, cast(X.Home_Consumption AS decimal(7,2)) AS Home_Consumption, cast(X.PV_after_Home_Consumtion AS decimal(7,2)) AS PV_after_Home_Consumtion, cast(X.consumer_P AS decimal(7,2)) AS consumer_P, if(consumer_P+PV_after_Home_Consumtion <= 0,cast(round(abs(consumer_P+PV_after_Home_Consumtion),2) AS decimal(7,2)),0) AS from_Grid, if(round(consumer_P+PV_after_Home_Consumtion,2) <= 0,round(abs(PV_after_Home_Consumtion*100/consumer_P),0),100) AS Percent FROM ( SELECT X1.HOUR, generator_P, round(Home_Consumtion_P+consumer_P,2) AS Home_Consumption, if(Home_Consumtion_P+consumer_P-generator_P < 0,round(abs(Home_Consumtion_P+consumer_P-generator_P),2),0) AS PV_after_Home_Consumtion, consumer_P FROM ( SELECT hour(TIMESTAMP) AS HOUR, round(avg(value),2) AS consumer_P FROM history WHERE TIMESTAMP > §timestamp_begin§ and TIMESTAMP < DATE_ADD(§timestamp_begin§,INTERVAL 1 DAY) AND §device§ AND §reading§ GROUP BY 1 ) X1 JOIN ( SELECT hour(TIMESTAMP) AS HOUR, round(avg(value),2) AS generator_P FROM history WHERE TIMESTAMP > §timestamp_begin§ AND TIMESTAMP < DATE_ADD(§timestamp_begin§,INTERVAL 1 DAY) AND DEVICE = @generator AND READING = @generator_P AND VALUE > 10 GROUP BY 1 ) X2 JOIN ( SELECT hour(TIMESTAMP) AS HOUR, round(avg(value),2) AS Home_Consumtion_P FROM history WHERE TIMESTAMP > §timestamp_begin§ and TIMESTAMP < DATE_ADD(§timestamp_begin§,INTERVAL 1 DAY) AND DEVICE = @generator AND READING = @Home_Consumtion_P AND VALUE > 10 GROUP BY 1 ) X3 ON X1.HOUR = X2.HOUR AND X1.HOUR = X3.HOUR ) X;
SELECT X.HOUR,
cast(X.generator_P AS decimal(7, 2)) AS generator_P,
cast(X.Home_Consumption AS decimal(7, 2)) AS Home_Consumption,
cast(X.PV_after_Home_Consumtion AS decimal(7, 2)) AS PV_after_Home_Consumtion,
cast(X.consumer_P AS decimal(7, 2)) AS consumer_P,
if(consumer_P+PV_after_Home_Consumtion <= 0, cast(round(abs(consumer_P+PV_after_Home_Consumtion), 2) AS decimal(7, 2)), 0) AS from_Grid,
if(round(consumer_P+PV_after_Home_Consumtion, 2) <= 0, round(abs(PV_after_Home_Consumtion*100/consumer_P), 0), 100) AS Percent
FROM
(SELECT X1.HOUR,
generator_P,
round(Home_Consumtion_P+consumer_P, 2) AS Home_Consumption,
if(Home_Consumtion_P+consumer_P-generator_P < 0, round(abs(Home_Consumtion_P+consumer_P-generator_P), 2), 0) AS PV_after_Home_Consumtion,
consumer_P
FROM
(SELECT hour(TIMESTAMP) AS HOUR,
round(avg(value), 2) AS consumer_P
FROM history
WHERE TIMESTAMP > §timestamp_begin§
AND TIMESTAMP < DATE_ADD(§timestamp_begin§,INTERVAL 1 DAY)
AND §device§
AND §reading§
GROUP BY 1) X1
JOIN
(SELECT hour(TIMESTAMP) AS HOUR,
round(avg(value), 2) AS generator_P
FROM history
WHERE TIMESTAMP > §timestamp_begin§
AND TIMESTAMP < DATE_ADD(§timestamp_begin§,INTERVAL 1 DAY)
AND DEVICE = @generator
AND READING = @generator_P
AND VALUE > 10
GROUP BY 1) X2
JOIN
(SELECT hour(TIMESTAMP) AS HOUR,
round(avg(value), 2) AS Home_Consumtion_P
FROM history
WHERE TIMESTAMP > §timestamp_begin§
AND TIMESTAMP < DATE_ADD(§timestamp_begin§,INTERVAL 1 DAY)
AND DEVICE = @generator
AND READING = @Home_Consumtion_P
AND VALUE > 10
GROUP BY 1) X3 ON X1.HOUR = X2.HOUR
AND X1.HOUR = X3.HOUR) X;
defmod LogDBRep_Statistic_Heating_PV_usage DbRep LogDB
attr LogDBRep_Statistic_Heating_PV_usage DbLogExclude .*
attr LogDBRep_Statistic_Heating_PV_usage allowDeletion 0
attr LogDBRep_Statistic_Heating_PV_usage comment Version 2022.12.10 12:00
attr LogDBRep_Statistic_Heating_PV_usage device StromZaehler_Heizung
attr LogDBRep_Statistic_Heating_PV_usage reading SMAEM1901401955_Saldo_Wirkleistung
attr LogDBRep_Statistic_Heating_PV_usage room System
attr LogDBRep_Statistic_Heating_PV_usage sqlCmdVars SET @generator:='WR_1', @generator_P:='SW_Total_AC_Active_P', @Home_Consumtion_P:='SW_Home_own_consumption';;
attr LogDBRep_Statistic_Heating_PV_usage timestamp_begin current_day_begin
attr LogDBRep_Statistic_Heating_PV_usage verbose 0
Cannot load module DbRep
define DBLogging_DbRep DbRep DBLogging
2022.12.14 08:11:38 0: Time::HiRes::ualarm(): unimplemented in this platform at ./FHEM/93_DbRep.pm line 45.
BEGIN failed--compilation aborted at ./FHEM/93_DbRep.pm line 45.
2022.12.14 08:21:13 4: WEB_127.0.0.1_54382 POST /fhem&fw_id=885&room=Server&fwcsrf=csrf_476589676604730&cmd=define+DBLogging_DbRep+DbRep+DBLogging; BUFLEN:0
2022.12.14 08:21:13 5: Cmd: >define DBLogging_DbRep DbRep DBLogging<
2022.12.14 08:21:13 5: Loading ./FHEM/93_DbRep.pm
2022.12.14 08:21:13 1: reload: Error:Modul 93_DbRep deactivated:
Time::HiRes::ualarm(): unimplemented in this platform at ./FHEM/93_DbRep.pm line 45.
BEGIN failed--compilation aborted at ./FHEM/93_DbRep.pm line 45.
2022.12.14 08:21:13 0: Time::HiRes::ualarm(): unimplemented in this platform at ./FHEM/93_DbRep.pm line 45.
BEGIN failed--compilation aborted at ./FHEM/93_DbRep.pm line 45.
2022.12.14 08:21:13 4: WEB: /fhem&fw_id=885&room=Server&fwcsrf=csrf_476589676604730&cmd=define+DBLogging_DbRep+DbRep+DBLogging / RL:1721 / text/html; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate
....
The fact that ualarm() isn't supported has nothing to do with the precision
but more with the fact that alarm() doesn't really work on Windows. It
doesn't interrupt C code or system calls but waits until Perl polls
a messageloop to see if a timer has expired.
Zitat von: DS_Starter am 20 Dezember 2022, 20:21:16Okay, das kann ich verstehen :-(
das "Problem" bei solchen Batchverarbeitungen ist, dass das Modul keine Ahnung hat was denn nun eigentlich das Ergebnis ist woraus Readings gebildet werden sollen. Die Rückgabe des Selects, bei mehreren ... welches Select ? oder vllt. doch nur die Anzahl der upgedateteten Datensätze oder was sonst ?
ZitatDamit würde DbRep schon fast zu einer SQL Terminal Session erweitert werden. Eine Auslagerung als "DbTerm" um den Modul Code zu verschlanken wäre ja auch denkbar,
Deswegen ist so etwas nicht umgesetzt.
Man könnte versuchen ein Splitting über die keywords select, update, etc. vorzunehmen und die entstandenen SQL's der Reihe nach abzuarbeiten. Ohne Ergebnisse oder Readings zurückzugeben.
Das wäre eine neue Implementierung die es noch nicht gibt.
ZitatGlaube ich aktuell nicht. Wäre aber implementierbar wenn ich weiß wie man per DBI an eine Prozedur rankommt.
1) Was ich noch nicht probiert habe wäre eine SQL Procedur aufzurufen. Würde das im sqlCmd gehen?
ZitatAktuell nicht. Aber ich glaube das könnte ich implementieren.
2) Komme ich durch die usrExitFn irgendwie an das sqlCmd, um es durch die weiter vorne beschriebene sqlformat.org wieder zu reformatieren?
Zitat von: DS_Starter am 21 Dezember 2022, 08:59:54Hallo Heiko,ZitatGlaube ich aktuell nicht. Wäre aber implementierbar wenn ich weiß wie man per DBI an eine Prozedur rankommt.
1) Was ich noch nicht probiert habe wäre eine SQL Procedur aufzurufen. Würde das im sqlCmd gehen?
Evtl. über eines der oben verlinkten Zusatzmodule.
defmod LogDBRep_PV_prognose DbRep LogDB
attr LogDBRep_PV_prognose DbLogExclude .*
attr LogDBRep_PV_prognose allowDeletion 0
attr LogDBRep_PV_prognose comment Version 2022.12.21 11:00
attr LogDBRep_PV_prognose room System
attr LogDBRep_PV_prognose verbose 0
setstate LogDBRep_PV_prognose done
setstate LogDBRep_PV_prognose 2022-12-21 11:45:55 SqlResultRow_1 5839
setstate LogDBRep_PV_prognose 2022-12-21 11:45:55 sqlCmd call dwd_load(12);;
setstate LogDBRep_PV_prognose 2022-12-21 11:45:55 sqlResultNumRows 5839
setstate LogDBRep_PV_prognose 2022-12-21 11:45:55 state done
Zitat
Dieses Modul bietet eine bequeme Möglichkeit, Stored Procedures von Perl aus aufzurufen, indem es Wrapper-Subroutinen erstellt, die die erforderlichen SQL-Anweisungen erzeugen, Parameter binden und die Abfrage ausführen.
Obwohl die Schnittstelle dieses Moduls datenbankunabhängig ist, werden derzeit nur Oracle und PostgreSQL unterstützt.
....
Das Modul soll eine extrem einfache Schnittstelle zu den gängigsten Formen von gespeicherten Prozeduren bieten. Es wird nicht in der Lage sein, sehr komplexe Fälle zu behandeln. Das ist nicht das Ziel, wenn es 90% der handgeschriebenen SQL- und Bind-Aufrufe eliminieren kann, bin ich zufrieden.
Zitat von: DS_Starter am 21 Dezember 2022, 12:03:25Wie gesagt, ein call einer Procedur geht auch jetzt schon, nur die Rückmeldung wird nicht in einem reading geliefert.
Es gibt ein Modul DBIx::ProcedureCall -> https://metacpan.org/pod/DBIx::ProcedureCall
Kann den Use Case jetzt nicht übersehen, aber in der Erläuterung zum Modul steht:
Zitat von: DS_Starter am 21 Dezember 2022, 12:50:45Puh,
Probiere mal die V 8.50.8 aus meinem contrib.
Internals:
CFGFN
DATABASE fhem
DEF LogDB
FUUID 63a1d5db-f33f-61a8-a5da-bba48bb7336b3fec
FVERSION 93_DbRep.pm:v1.1.1-s26865/2022-12-21
LASTCMD sqlCmd call dwd_load(curdate());
MODEL Client
NAME LogDBRep_PV_prognose
NOTIFYDEV global,LogDBRep_PV_prognose
NR 741431
NTFY_ORDER 50-LogDBRep_PV_prognose
ROLE Client
STATE done
TYPE DbRep
UTF8 1
eventCount 24
HELPER:
DBLOGDEVICE LogDB
GRANTS ALL PRIVILEGES,USAGE
IDRETRIES 2
MINTS 2019-04-03 00:23:42
PACKAGE main
VERSION 8.50.5
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
LogDB:
TIME 1671550427.75645
VALUE initialized
OLDREADINGS:
READINGS:
2022-12-21 13:23:08 SqlResultRow_0001 MYDATETIME|MYTIMESTAMP|YEAR|MONTH|DAY|HOUR|TTT|DD|VV|N|NEFF|R101|RRS1C|SUND|RAD1H|SUND1|SUNAZ|SUNALT|YIELD|FORECAST|FORECAST1|FORECAST2|FORECAST3|FORECAST4|FORECAST5
2022-12-21 13:23:08 SqlResultRow_0002 2021-11-21 06:00:00|1637474400|2021|11|21|6|0|0|0|0|0|0|0|0|0|0|101.7|-16.3|0|0|0|0|0|0|0
2022-12-21 13:23:08 SqlResultRow_0003 2021-11-21 07:00:00|1637478000|2021|11|21|7|0|0|0|0|0|0|0|0|0|0|112.6|-7.1|0|0|0|0|0|0|0
< snip >
2022-12-21 13:23:08 SqlResultRow_1449 2022-12-21 13:00:00|1671627600|2022|12|21|13|9.2|204|10400|92|92|204|0|0|270|60|190.4|16.1|45|0|0|0|0|0|0
2022-12-21 13:23:08 sqlCmd call dwd_load(curdate());
2022-12-21 13:23:08 sqlResultNumRows 1448
2022-12-21 13:23:08 state done
Attributes:
DbLogExclude .*
allowDeletion 0
comment Version 2022.12.21 12:00
room System
verbose 0
Zitat von: DS_Starter am 21 Dezember 2022, 13:26:36Musst Du eigentlich nicht arbeiten, weil Du meistens so schnell bist? :-)
:D ... sonst wären es eben 5839 Zeilen
Zitat von: DS_Starter am 21 Dezember 2022, 13:31:49Ich habe noch auf die Schnelle eine Bremse für das Anzeigen eingebaut [show|none] als Parameter
Mittagspause ... und es war nur eine kleine Änderung.
Manchmal geht das ;)
Probiere noch ein bisschen. Heute Abend würde ich die V ins Repo laden wenn es soweit passt.
call dwd_load(curdate(),'none');
Zitat von: DS_Starter am 21 Dezember 2022, 13:42:39Na klar, ab jetzt (https://forum.fhem.de/index.php/topic,130588.0.html)
Ich glaube ich muß mich mal wieder mit DbRep befassen wenn ich mit der DbLog V 5 durch bin (verfolgst du wahrscheinlich auch).
--### Mittelwertbildung, Variante 3
--### Bei dieser Variante wird beim gewichteten Mitteln der Wert am Ende des Mittelungsintervalls auf beide Intervall verteilt.
--### Der Wert wird gemäß dem zeitlichen Anteil an den beiden Intervallen aufgeteilt.
--### Mögliche Werte für @sortformat: minute, qhour, hour, qday, day, week, month, qyear, year
SET @sortformat="hour", @weighted="yes", @device = "E_Zaehler", @reading = "power", @start = "2022-10-29 00:00:00", @end = "2022-10-29 05:00:00";
SELECT
avgtim,
CASE @weighted
WHEN "yes" THEN CAST((SUM(val * weight)/SUM(weight)) AS DECIMAL(12,4))
ELSE CAST(sum(val) / count(val) AS DECIMAL(12,4))
END AS avrg
FROM (
SELECT
tim,
avgtim,
CASE @sortformat WHEN "week"
THEN date_format(tim, "%Y-%u 00:00:00")
ELSE avgtim
END AS grouptim,
CASE
WHEN avgtim!=preavgtim THEN to_seconds(nexttim)-to_seconds(avgtim)
WHEN avgtim!=nextavgtim THEN to_seconds(nextavgtim)-to_seconds(tim)
ELSE to_seconds(nexttim)-to_seconds(tim)
END AS weight,
CASE
WHEN avgtim!=preavgtim THEN
CASE @weighted WHEN "yes"
THEN CASE WHEN avgtim!=nextavgtim
THEN (preval*(to_seconds(tim)-to_seconds(avgtim)) + val*(to_seconds(nextavgtim)-to_seconds(tim)))/(to_seconds(nextavgtim)-to_seconds(avgtim))
ELSE (preval*(to_seconds(tim)-to_seconds(avgtim)) + val*(to_seconds(nexttim)-to_seconds(tim)))/(to_seconds(nexttim)-to_seconds(avgtim))
END
ELSE val
END
ELSE val
END AS val
FROM (
SELECT
tim,
nexttim,
val,
preval,
avgtim,
LAG(avgtim) OVER (ORDER BY tim) AS preavgtim,
LEAD(avgtim) OVER (ORDER BY tim) AS nextavgtim
FROM (
SELECT
timestamp AS tim,
LEAD(timestamp) OVER (ORDER BY timestamp) AS nexttim,
value AS val,
LAG(value) OVER (ORDER BY timestamp) AS preval,
CASE @sortformat
WHEN "minute" THEN date_format(timestamp, "%Y-%m-%d %H:%i:00")
WHEN "qhour" THEN concat(date_format(timestamp, "%Y-%m-%d %H:"),LPAD(15*(date_format(timestamp,"%i") div 15),2,"0"),":00")
WHEN "hour" THEN date_format(timestamp, "%Y-%m-%d %H:00:00")
WHEN "qday" THEN concat(date_format(timestamp, "%Y-%m-%d "),LPAD(6*(date_format(timestamp, "%H") div 6),2,"0"),":00:00")
WHEN "day" THEN date_format(timestamp, "%Y-%m-%d 00:00:00")
WHEN "week" THEN date_format(timestamp, "%Y-%m-%d 00:00:00")
WHEN "month" THEN date_format(timestamp, "%Y-%m-01 00:00:00")
WHEN "qyear" THEN concat(date_format(timestamp, "%Y-"),LPAD(3*(date_format(timestamp, "%m") div 3),2,"0"),"-01 00:00:00")
ELSE date_format(timestamp, "%Y-01-01 00:00:00")
END AS avgtim
FROM
history WHERE TIMESTAMP BETWEEN @start AND @end AND DEVICE LIKE @device AND READING LIKE @reading ORDER BY timestamp
) select3
) select2
) select1 GROUP BY grouptim
--#########################
--###
--### Mittelwertbildung bei Unterteilung des Zeitraums @start...@end in '@count' Teilintervalle:
--###
--#########################
SET @weighted="yes", @device = "E_Zaehler", @reading = "power", @start = "2022-10-29 00:00:00", @end = "2022-10-29 05:00:00", @count = 5;
SELECT
tim,
CASE
WHEN @weighted="yes" THEN
CAST(sum(val * (to_seconds(nexttim)-to_seconds(tim))) / sum((to_seconds(nexttim)-to_seconds(tim))) AS DECIMAL(12,4))
ELSE CAST(sum(val) / count(val) AS DECIMAL(12,4))
END AS avrg
FROM (
SELECT
timestamp as tim,
value as val,
LEAD(timestamp) over (order by timestamp) nexttim,
truncate(@count * (to_seconds(timestamp)-to_seconds(@start)) / (to_seconds(@end)-to_seconds(@start)),0)/@count as avgtim
FROM
history WHERE TIMESTAMP BETWEEN @start AND @end AND DEVICE LIKE @device AND READING LIKE @reading
) select1 group by avgtim
Zitat von: DS_Starter am 28 Dezember 2022, 21:28:56Ist geschehen, siehe hier (https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Gewichtete_Mittelwerte_von_Zeitreihen_.28MySQL.29)
Könntest du einen Beitrag in diesem Wiki-Artikel (https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#gewichtete_Mittelwerte_von_Zeitreihen_.28MySQL.29) hinterlegen ?
defmod SQL_Format HTTPMOD none 0
attr SQL_Format DbLogExclude .*
attr SQL_Format comment Version 2023.01.02 12:00
attr SQL_Format enableCookies 1
attr SQL_Format room System
attr SQL_Format set01Data reindent=1&sql=$val
attr SQL_Format set01ExtractAllJSON 1
attr SQL_Format set01Method POST
attr SQL_Format set01Name 01_SQL_Format
attr SQL_Format set01ParseResponse 1
attr SQL_Format set01TextArg 1
attr SQL_Format set01URL https://sqlformat.org/api/v1/format
attr SQL_Format showBody 0
attr SQL_Format showError 1
attr SQL_Format verbose 0
set SQL_Format 01_SQL_Format SELECT * FROM (SELECT h.TIMESTAMP, h.READING, IF (h.READING LIKE '%Rate%' OR h.READING LIKE '%Autarky%', h.VALUE, cast(h.VALUE/1000 AS decimal(6))) AS VALUE FROM history h INNER JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE §device§ AND §reading§ AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1, '-12-31'), '%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-01-01'), '%Y-%m-%d') GROUP BY READING) x1 USING(TIMESTAMP,READING)) WR_1_API UNION ALL SELECT h.TIMESTAMP, concat('WB_0_', h.READING) AS READING, h.VALUE FROM history h INNER JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE DEVICE = 'WB_0' AND READING LIKE 'lp_%_kWhCounter_Year' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1, '-12-01'), '%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-01-01'), '%Y-%m-%d') GROUP BY READING) WB_1 USING(TIMESTAMP,READING) UNION ALL SELECT h.TIMESTAMP, concat('WB_1_', h.READING) AS READING, h.VALUE FROM history h INNER JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE DEVICE = 'WB_1' AND READING LIKE 'lp_%_kWhCounter_Year' AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1, '-12-01'), '%Y-%m-%d') AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-01-01'), '%Y-%m-%d') GROUP BY READING) WB_1 USING(TIMESTAMP,READING)
SELECT *
FROM
(SELECT h.TIMESTAMP,
h.READING,
IF (h.READING LIKE '%Rate%'
OR h.READING LIKE '%Autarky%',
h.VALUE,
cast(h.VALUE/1000 AS decimal(6))) AS VALUE
FROM history h
INNER JOIN
(SELECT max(TIMESTAMP) AS TIMESTAMP,
READING
FROM history
WHERE §device§
AND §reading§
AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1, '-12-31'), '%Y-%m-%d')
AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-01-01'), '%Y-%m-%d')
GROUP BY READING) x1 USING(TIMESTAMP,READING)) WR_1_API
UNION ALL
SELECT h.TIMESTAMP,
concat('WB_0_', h.READING) AS READING,
h.VALUE
FROM history h
INNER JOIN
(SELECT max(TIMESTAMP) AS TIMESTAMP,
READING
FROM history
WHERE DEVICE = 'WB_0'
AND READING LIKE 'lp_%_kWhCounter_Year'
AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1, '-12-01'), '%Y-%m-%d')
AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-01-01'), '%Y-%m-%d')
GROUP BY READING) WB_1 USING(TIMESTAMP,READING)
UNION ALL
SELECT h.TIMESTAMP,
concat('WB_1_', h.READING) AS READING,
h.VALUE
FROM history h
INNER JOIN
(SELECT max(TIMESTAMP) AS TIMESTAMP,
READING
FROM history
WHERE DEVICE = 'WB_1'
AND READING LIKE 'lp_%_kWhCounter_Year'
AND TIMESTAMP > STR_TO_DATE(CONCAT(YEAR(CURDATE())-1, '-12-01'), '%Y-%m-%d')
AND TIMESTAMP < STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-01-01'), '%Y-%m-%d')
GROUP BY READING) WB_1 USING(TIMESTAMP,READING)
Zitat von: DS_Starter am 02 Januar 2023, 12:41:11Ich denke, wir sind ein tolles team ;-)
Funktioniert 8)
attr LogDBRep_Statistic_previous_Year userReadings SQL_Format:sqlCmd.* { CommandSet(undef, "SQL_Format 01_SQL_Format ".ReadingsVal('$NAME','sqlCmd','null')); ReadingsVal('SQL_Format','result','null')}
Zitat
EDIT: Das klappt noch nicht, da es asyncron ist :-( und somit das vorherige Ergebnis geholt wird.
Eventuell könnte da noch jemand helfen.
{
if ($READING eq "sqlCmd") {
CommandSet(undef, "SQL_Format 01_SQL_Format ".ReadingsVal($NAME, $READING, 'null'));
my $ret = ReadingsVal('SQL_Format', 'result', 'null');
my $hash = $defs{$NAME};
readingsBulkUpdate ($hash, 'SQL_Format', $ret);
}
}
Zitat von: DS_Starter am 02 Januar 2023, 14:15:31
userExitFn benutzen:Code Auswählen
{
if ($READING eq "sqlCmd") {
CommandSet(undef, "SQL_Format 01_SQL_Format ".ReadingsVal($NAME, $READING, 'null'));
my $ret = ReadingsVal('SQL_Format', 'result', 'null');
my $hash = $defs{$NAME};
readingsBulkUpdate ($hash, 'SQL_Format', $ret);
}
}
attr LogDBRep_Statistic_previous_Year userReadings SQL_Format:sqlCmd.* { CommandSet(undef, "SQL_Format ".$NAME." ".ReadingsVal("$NAME","sqlCmd","null"));"waiting on SQL_Format"}
defmod SQL_Format HTTPMOD none 0
attr SQL_Format DbLogExclude .*
attr SQL_Format comment Version 2023.01.02 14:00
attr SQL_Format enableCookies 1
attr SQL_Format room System
attr SQL_Format set01Data reindent=1&sql=$val
attr SQL_Format set01ExtractAllJSON 1
attr SQL_Format set01Method POST
attr SQL_Format set01Name LogDBRep_Statistic_previous_Year
attr SQL_Format set01OExpr CommandSetReading(undef, "LogDBRep_Statistic_previous_Year SQL_Format ".$val);;$val
attr SQL_Format set01ParseResponse 1
attr SQL_Format set01TextArg 1
attr SQL_Format set01URL https://sqlformat.org/api/v1/format
attr SQL_Format showBody 0
attr SQL_Format showError 1
attr SQL_Format verbose 0
SET \@diff=0;
SET \@delta=NULL;
SELECT t1.TIM....
Zitat von: DS_Starter am 03 Januar 2023, 10:55:04Hallo Heiko,
Jetzt klappt die Online Formatierung auch mit komplexen, zusammengesetzten Statements.
Liegt in contrib zum Test.
sqlCmdVars SET @days:=7, @corr:=0.7, @diff:=0, @temp:=0, @device:='WR_1', @reading1:='SW_Total_DC_P_sumOfAllPVInputs', @reading2:='Solar_Calculation_fc0', @readingname:='Solar_Correction_Faktor_auto' ;
ZitatJa, ist auch richtig so bzw. du hast recht.
Ich war bisher immer davon ausgegangen, dass man ein SQL Stement ins sqlCmd packen kann.
SET @diff=0;
SET @delta=NULL;
SELECT t1.TIMESTAMP,
t1.READING,
t1.VALUE,
t1.DIFF,
t1.TIME_DELTA
FROM
(SELECT TIMESTAMP,READING,
VALUE,
cast((VALUE-@diff) AS DECIMAL(12, 4)) AS DIFF, @diff:=VALUE AS curr_V, TIMESTAMPDIFF(MINUTE, @delta,TIMESTAMP) AS TIME_DELTA, @delta:=TIMESTAMP AS curr_T
FROM history
WHERE §device§
AND §reading§
AND TIMESTAMP >= §timestamp_begin§
AND TIMESTAMP <= §timestamp_end§
ORDER BY TIMESTAMP) t1;
Zitat von: DS_Starter am 03 Januar 2023, 10:55:04Da habe ich Dich jetzt aber ganz schön angeschoben :-) :-) Ist schon schön, wenn es lesbarer wird.
Jetzt klappt die Online Formatierung auch mit komplexen, zusammengesetzten Statements.
Liegt in contrib zum Test.
Zitat von: DS_Starter am 03 Januar 2023, 11:12:53Da gibt es wohl auch noch eine split Funktion, ich hatte mir nur den quick win angeschaut und war sehr begeistert.
Ja, ist auch richtig so bzw. du hast recht.
Aber soetwas geht schon über sqlCmd:
< snip >
Meine Antwort "Jetzt klappt die Online Formatierung auch mit komplexen, zusammengesetzten Statements." bezog sich lediglich auf die Online Formatierung mit dem Formatter-Dienst.
ZitatJa, im Prinzip. Intern passiert im Detail ein bisschen mehr. Betrifft auch sqlCmdHistory und sqlSpecial.
Hast Du es dann jetzt intern direkt bevor das Statement wieder ins sqlCmd geschrieben wird formatiert?
ZitatGibt es, aber die nehme ich nicht. Die bringt keine so schöne Formatierung zurück wie "format".
Da gibt es wohl auch noch eine split Funktion
SELECT concat(x1.DATE, " ", LPAD(x1.HOUR, 2, 0), ":00:00") AS TIMESTAMP,
x1.DATE,
x1.HOUR AS HOUR,
h.READING,
h.VALUE,
@diff:=0,@delta:=NULL <<<< also als zusätzliche Spalte in einer Tabelle
FROM history h
< snip >
SET @a=1, @b=2; SELECT * FROM current
"SET @a=1; SET @b=2; SELECT * FROM current"
Zitat von: alkazaa am 03 Januar 2023, 16:14:47Das machen wir eigentlich genau so, wenn man aber mal einen Überblich im DbRep haben möchte ist das SQL Statement halt schlecht zu lesen.
Moin, und ein nachträgliches Happy New Year.
Es ist ja toll, was hier alles an SQL-Feuerwerk abgebrannt wird. Obwohl ich selbst lieber mit dem Syntax-highlighting von notepad++ arbeite und zu FHEM mit CTRL-C und -V hin- und her springe.
Ich habe aber noch ein anderes Problem: Da ich keine Ahnung habe, wie ich auf das Resultat des nonBlocking sqlCmd in einem externen Modul (konkret: 99_fronthemUtils.pm) zugreifen kann, benutze ich sqlCmdBlocking.
Und das kann nur Queries mit einem ";"
Das geht also z.B.:Code AuswählenSET @a=1, @b=2; SELECT * FROM current
Und das geht nicht:Code Auswählen"SET @a=1; SET @b=2; SELECT * FROM current"
In sqlCmd geht beides
Zitat von: ch.eick am 03 Januar 2023, 16:38:23Ja, es funktioniert. (Hab erst jetzt die Contrib Version geladen)
Eigentlich sollte es aber wie hier angesprochen funktionieren. (https://forum.fhem.de/index.php/topic,53584.msg1255248.html#msg1255248)
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'val*(to_seconds(nextavgtim)-to_seconds(tim)))/ (to_seconds(nextavgtim)-to_sec...' at line 1 at ./FHEM/93_DbRep.pm line 10880.
CASE
WHEN avgtim!=preavgtim THEN CASE @weighted
WHEN "yes" THEN CASE
WHEN avgtim!=nextavgtim THEN (preval*(to_seconds(tim)-to_seconds(avgtim)) val*(to_seconds(nextavgtim)-to_seconds(tim)))/ (to_seconds(nextavgtim)-to_seconds(avgtim))
ELSE (preval*(to_seconds(tim)-to_seconds(avgtim)) val*(to_seconds(nexttim)-to_seconds(tim)))/ (to_seconds(nexttim)-to_seconds(avgtim))
END
ELSE val
END
ELSE val
END AS val
CASE
WHEN avgtim!=preavgtim THEN CASE @weighted
WHEN "yes" THEN CASE
WHEN avgtim!=nextavgtim THEN (preval*(to_seconds(tim)-to_seconds(avgtim)) + val*(to_seconds(nextavgtim)-to_seconds(tim)))/ (to_seconds(nextavgtim)-to_seconds(avgtim))
ELSE (preval*(to_seconds(tim)-to_seconds(avgtim)) + val*(to_seconds(nexttim)-to_seconds(tim)))/ (to_seconds(nexttim)-to_seconds(avgtim))
END
ELSE val
END
ELSE val
END AS val
Zitat
Die 'manuelle' Formatierung auf sqlformat.org liefert an dieser Stelle das korrekte Ergebnis ohne die + Zeichen vor val zu verschlucken:
ZitatIch habe sqlCmdBlocking wohl etwas vernachlässigt.
Ich habe aber noch ein anderes Problem: Da ich keine Ahnung habe, wie ich auf das Resultat des nonBlocking sqlCmd in einem externen Modul (konkret: 99_fronthemUtils.pm) zugreifen kann, benutze ich sqlCmdBlocking.
Und das kann nur Queries mit einem ";"
....
ZitatchangeValue - ändert den gespeicherten Wert eines Readings. Ist die Selektion auf bestimmte Device/Reading-Kombinationen durch die Attribute device bzw. reading beschränkt, werden sie genauso berücksichtigt wie gesetzte Zeitgrenzen (Attribute time.*).
Fehlen diese Beschränkungen, wird die gesamte Datenbank durchsucht und der angegebene Wert geändert.
Syntax:
set <name> changeValue old="<alter String>" new="<neuer String>"
"String" kann sein:
<alter String> :
ein einfacher String mit/ohne Leerzeichen, z.B. "OL 12"
ein String mit Verwendung von SQL-Wildcard, z.B. "%OL%"
<neuer String> :
ein einfacher String mit/ohne Leerzeichen, z.B. "12 kWh"
Perl Code eingeschlossen in {"..."} inkl. Quotes, z.B. {"($VALUE,$UNIT) = split(" ",$VALUE)"}
Dem Perl-Ausdruck werden die Variablen $VALUE und $UNIT übergeben. Sie können innerhalb
des Perl-Code geändert werden. Der zurückgebene Wert von $VALUE und $UNIT wird in dem Feld
VALUE bzw. UNIT des Datensatzes gespeichert.
Beispiele:
set <name> changeValue "OL","12 OL"
# der alte Feldwert "OL" wird in "12 OL" geändert.
set <name> changeValue "%OL%","12 OL"
# enthält das Feld VALUE den Teilstring "OL", wird es in "12 OL" geändert.
....usw.
2023.01.05 17:59:21.438 4: DbRep DBRep2_MT - -------- New selection ---------
2023.01.05 17:59:21.439 4: DbRep DBRep2_MT - Command: averageValue display
2023.01.05 17:59:21.441 4: DbRep DBRep2_MT - FullDay option: 0
2023.01.05 17:59:21.442 4: DbRep DBRep2_MT - Timestamp begin human readable: 2022-06-16 00:00:00
2023.01.05 17:59:21.443 4: DbRep DBRep2_MT - Timestamp end human readable: 2022-06-16 23:59:59
2023.01.05 17:59:21.456 4: DbRep DBRep2_MT - Aggregation: hour
2023.01.05 17:59:21.704 4: DbRep DBRep2_MT - Database connect - user: fhemuser, UTF-8 option set: yes
2023.01.05 17:59:21.712 4: DbRep DBRep2_MT - averageValue calculation sceme: avgTimeWeightMean
2023.01.05 17:59:21.722 2: DbRep DBRep2_MT -
2023.01.05 17:58:13.976 4: DbRep DBRep2_MT - -------- New selection ---------
2023.01.05 17:58:13.977 4: DbRep DBRep2_MT - Command: averageValue display
2023.01.05 17:58:13.979 4: DbRep DBRep2_MT - FullDay option: 0
2023.01.05 17:58:13.980 4: DbRep DBRep2_MT - Timestamp begin human readable: 2022-06-16 00:00:00
2023.01.05 17:58:13.981 4: DbRep DBRep2_MT - Timestamp end human readable: 2022-06-16 23:59:59
2023.01.05 17:58:13.993 4: DbRep DBRep2_MT - Aggregation: hour
2023.01.05 17:58:14.215 4: DbRep DBRep2_MT - Database connect - user: fhemuser, UTF-8 option set: yes
2023.01.05 17:58:14.224 4: DbRep DBRep2_MT - averageValue calculation sceme: avgArithmeticMean
2023.01.05 17:58:14.227 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 00:00:00' AND TIMESTAMP < '2022-06-16 01' ;
2023.01.05 17:58:14.233 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 01' AND TIMESTAMP < '2022-06-16 02' ;
2023.01.05 17:58:14.239 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 02' AND TIMESTAMP < '2022-06-16 03' ;
2023.01.05 17:58:14.245 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 03' AND TIMESTAMP < '2022-06-16 04' ;
2023.01.05 17:58:14.251 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 04' AND TIMESTAMP < '2022-06-16 05' ;
2023.01.05 17:58:14.257 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 05' AND TIMESTAMP < '2022-06-16 06' ;
2023.01.05 17:58:14.263 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 06' AND TIMESTAMP < '2022-06-16 07' ;
2023.01.05 17:58:14.269 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 07' AND TIMESTAMP < '2022-06-16 08' ;
2023.01.05 17:58:14.275 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 08' AND TIMESTAMP < '2022-06-16 09' ;
2023.01.05 17:58:14.280 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 09' AND TIMESTAMP < '2022-06-16 10' ;
2023.01.05 17:58:14.285 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 10' AND TIMESTAMP < '2022-06-16 11' ;
2023.01.05 17:58:14.291 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 11' AND TIMESTAMP < '2022-06-16 12' ;
2023.01.05 17:58:14.295 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 12' AND TIMESTAMP < '2022-06-16 13' ;
2023.01.05 17:58:14.301 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 13' AND TIMESTAMP < '2022-06-16 14' ;
2023.01.05 17:58:14.306 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 14' AND TIMESTAMP < '2022-06-16 15' ;
2023.01.05 17:58:14.310 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 15' AND TIMESTAMP < '2022-06-16 16' ;
2023.01.05 17:58:14.315 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 16' AND TIMESTAMP < '2022-06-16 17' ;
2023.01.05 17:58:14.320 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 17' AND TIMESTAMP < '2022-06-16 18' ;
2023.01.05 17:58:14.325 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 18' AND TIMESTAMP < '2022-06-16 19' ;
2023.01.05 17:58:14.330 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 19' AND TIMESTAMP < '2022-06-16 20' ;
2023.01.05 17:58:14.335 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 20' AND TIMESTAMP < '2022-06-16 21' ;
2023.01.05 17:58:14.339 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 21' AND TIMESTAMP < '2022-06-16 22' ;
2023.01.05 17:58:14.344 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 22' AND TIMESTAMP < '2022-06-16 23' ;
2023.01.05 17:58:14.349 4: DbRep DBRep2_MT - SQL execute: SELECT AVG(VALUE) FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 23' AND TIMESTAMP <= '2022-06-16 23:59:59' ;
2023.01.05 18:23:41.452 4: DbRep Rep.CPU - -------- New selection ---------
2023.01.05 18:23:41.452 4: DbRep Rep.CPU - Command: averageValue display
2023.01.05 18:23:41.453 4: DbRep Rep.CPU - timeDiffToNow - year: , day: , hour: 4, min: , sec:
2023.01.05 18:23:41.453 4: DbRep Rep.CPU - startMonth: 0 endMonth: 0 lastleapyear: 0 baseYear: 2023 diffdaylight:0 isdaylight:0
2023.01.05 18:23:41.454 4: DbRep Rep.CPU - FullDay option: 0
2023.01.05 18:23:41.454 4: DbRep Rep.CPU - Time difference to current time for calculating Timestamp begin: 14401 sec
2023.01.05 18:23:41.455 5: DbRep Rep.CPU - Timestamp begin epocheseconds: 1672925020.45493
2023.01.05 18:23:41.455 4: DbRep Rep.CPU - Timestamp begin human readable: 2023-01-05 14:23:40
2023.01.05 18:23:41.456 5: DbRep Rep.CPU - Timestamp end epocheseconds: 1672939421
2023.01.05 18:23:41.456 4: DbRep Rep.CPU - Timestamp end human readable: 2023-01-05 18:23:41
...........
2023.01.05 18:23:41.460 4: DbRep Rep.CPU - Aggregation: hour
2023.01.05 18:23:41.470 5: DbRep Rep.CPU - BlockingCall with PID "13694" started
2023.01.05 18:23:41.479 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2023.01.05 18:23:41.482 4: DbRep Rep.CPU - averageValue calculation sceme: avgTimeWeightMean
............
............
............
2023.01.05 18:23:41.490 4: DbRep Rep.CPU - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 14:23:40' AND TIMESTAMP < '2023-01-05 15' ORDER BY TIMESTAMP ASC;
2023.01.05 18:23:41.492 5: DbRep Rep.CPU - data element: 2023-01-05 14:25:12_ESC_0.0
2023.01.05 18:23:41.493 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.493 5: DbRep Rep.CPU - data element: 2023-01-05 14:26:13_ESC_0.0
2023.01.05 18:23:41.494 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.494 5: DbRep Rep.CPU - data element: 2023-01-05 14:27:14_ESC_0.0
2023.01.05 18:23:41.494 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.495 5: DbRep Rep.CPU - data element: 2023-01-05 14:28:15_ESC_0.0
2023.01.05 18:23:41.495 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.496 5: DbRep Rep.CPU - data element: 2023-01-05 14:29:16_ESC_0.0
2023.01.05 18:23:41.496 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.496 5: DbRep Rep.CPU - data element: 2023-01-05 14:30:17_ESC_0.0
2023.01.05 18:23:41.497 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.497 5: DbRep Rep.CPU - data element: 2023-01-05 14:31:18_ESC_0.0
2023.01.05 18:23:41.497 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.498 5: DbRep Rep.CPU - data element: 2023-01-05 14:32:19_ESC_0.0
2023.01.05 18:23:41.498 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.499 5: DbRep Rep.CPU - data element: 2023-01-05 14:33:20_ESC_0.0
2023.01.05 18:23:41.499 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.499 5: DbRep Rep.CPU - data element: 2023-01-05 14:34:21_ESC_0.0
2023.01.05 18:23:41.500 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.500 5: DbRep Rep.CPU - data element: 2023-01-05 14:35:22_ESC_0.0
2023.01.05 18:23:41.501 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 0.0, twm: 0
2023.01.05 18:23:41.501 5: DbRep Rep.CPU - data element: 2023-01-05 14:36:23_ESC_1920.2
2023.01.05 18:23:41.501 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1920.2, twm: 54.9142991092358
2023.01.05 18:23:41.502 5: DbRep Rep.CPU - data element: 2023-01-05 14:37:24_ESC_331.8
2023.01.05 18:23:41.502 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 331.8, twm: 9.48888888888889
2023.01.05 18:23:41.503 5: DbRep Rep.CPU - data element: 2023-01-05 14:38:25_ESC_1885.3
2023.01.05 18:23:41.503 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1885.3, twm: 53.9162212845757
2023.01.05 18:23:41.503 5: DbRep Rep.CPU - data element: 2023-01-05 14:39:26_ESC_1849.5
2023.01.05 18:23:41.504 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1849.5, twm: 52.8924050632911
2023.01.05 18:23:41.504 5: DbRep Rep.CPU - data element: 2023-01-05 14:40:27_ESC_1833.4
2023.01.05 18:23:41.505 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1833.4, twm: 52.4319737458978
2023.01.05 18:23:41.505 5: DbRep Rep.CPU - data element: 2023-01-05 14:41:28_ESC_1550.3
2023.01.05 18:23:41.505 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1550.3, twm: 44.3358180965776
2023.01.05 18:23:41.506 5: DbRep Rep.CPU - data element: 2023-01-05 14:42:29_ESC_1880.8
2023.01.05 18:23:41.506 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1880.8, twm: 53.7875293014534
2023.01.05 18:23:41.507 5: DbRep Rep.CPU - data element: 2023-01-05 14:43:30_ESC_1809.1
2023.01.05 18:23:41.507 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1809.1, twm: 51.737037037037
2023.01.05 18:23:41.507 5: DbRep Rep.CPU - data element: 2023-01-05 14:44:30_ESC_1061.8
2023.01.05 18:23:41.508 5: DbRep Rep.CPU - time sum: 2133, delta time: 60, value: 1061.8, twm: 29.8677918424754
2023.01.05 18:23:41.508 5: DbRep Rep.CPU - data element: 2023-01-05 14:45:31_ESC_1612.3
2023.01.05 18:23:41.509 5: DbRep Rep.CPU - time sum: 2133, delta time: 61, value: 1612.3, twm: 46.108907641819
.........
2022-06-16_00__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_00 - 2023-01-05 17:46:12 0 Werte
2022-06-16_01__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_01 82 2023-01-05 17:46:12 4 Werte
2022-06-16_02__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_02 83 2023-01-05 17:46:12 8 Werte
2022-06-16_03__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_03 83 2023-01-05 17:46:12 6 Werte
2022-06-16_04__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_04 83 2023-01-05 17:46:12 8 Werte
2022-06-16_05__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_05 83 2023-01-05 17:46:12 ....
2022-06-16_06__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_06 83 2023-01-05 17:46:12
2022-06-16_07__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_07 83 2023-01-05 17:46:12
2022-06-16_08__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_08 82 2023-01-05 17:46:12
2022-06-16_09__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_09 80 2023-01-05 17:46:12
2022-06-16_10__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_10 67 2023-01-05 17:46:12
2022-06-16_11__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_11 - 2023-01-05 17:46:12
2022-06-16_12__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_12 54 2023-01-05 17:46:12
2022-06-16_13__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_13 - 2023-01-05 17:46:12
2022-06-16_14__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_14 - 2023-01-05 17:46:12
2022-06-16_15__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_15 - 2023-01-05 17:46:12
2022-06-16_16__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_16 - 2023-01-05 17:46:12
2022-06-16_17__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_17 - 2023-01-05 17:46:12
2022-06-16_18__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_18 677 2023-01-05 17:46:12
2022-06-16_19__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_19 - 2023-01-05 17:46:12
2022-06-16_20__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_20 - 2023-01-05 17:46:12
2022-06-16_21__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_21 - 2023-01-05 17:46:12
2022-06-16_22__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_22 - 2023-01-05 17:46:12
2022-06-16_23__MQTT2_ESP_2__MT691_power__AVGAM__2022-06-16_23 - 2023-01-05 17:46:12
state done
ZitatJa, genau.
Wenn nur ein Teil der Intervalle zwei oder mehr Messpunkte hat, läuft das dann korrekt durch (nur für die Intervalle mit weniger MPs nicht)?
2023.01.05 19:26:34.176 4: DbRep DBRep2_MT - -------- New selection ---------
2023.01.05 19:26:34.177 4: DbRep DBRep2_MT - Command: averageValue display
2023.01.05 19:26:34.179 4: DbRep DBRep2_MT - FullDay option: 0
2023.01.05 19:26:34.180 5: DbRep DBRep2_MT - Timestamp begin epocheseconds: 1655334300
2023.01.05 19:26:34.180 4: DbRep DBRep2_MT - Timestamp begin human readable: 2022-06-16 01:05:00
2023.01.05 19:26:34.181 5: DbRep DBRep2_MT - Timestamp end epocheseconds: 1655348340
2023.01.05 19:26:34.181 4: DbRep DBRep2_MT - Timestamp end human readable: 2022-06-16 04:59:00
2023.01.05 19:26:34.182 5: DbRep DBRep2_MT - weekday start for selection: Do -> wdadd: 345600
2023.01.05 19:26:34.183 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 01:05:00 2022" to "Thu Jun 16 02:05:00 2022")
2023.01.05 19:26:34.184 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 02:05:00 2022" to "Thu Jun 16 03:05:00 2022")
2023.01.05 19:26:34.185 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 03:05:00 2022" to "Thu Jun 16 04:05:00 2022")
2023.01.05 19:26:34.186 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 04:05:00 2022" to "Thu Jun 16 05:05:00 2022")
2023.01.05 19:26:34.187 4: DbRep DBRep2_MT - Aggregation: hour
2023.01.05 19:26:34.213 5: DbRep DBRep2_MT - BlockingCall with PID "1755" started
2023.01.05 19:26:34.420 4: DbRep DBRep2_MT - Database connect - user: fhemuser, UTF-8 option set: yes
2023.01.05 19:26:34.428 4: DbRep DBRep2_MT - averageValue calculation sceme: avgTimeWeightMean
2023.01.05 19:26:34.429 5: DbRep DBRep2_MT - IsTimeSet: 1, IsAggrSet: 1
2023.01.05 19:26:34.430 5: DbRep DBRep2_MT - Timestamp-Array:
2022-06-16_01#2022-06-16 01:05:00#2022-06-16 02 2022-06-16_02#2022-06-16 02#2022-06-16 03 2022-06-16_03#2022-06-16 03#2022-06-16 04 2022-06-16_04#2022-06-16 04#2022-06-16 04:59:00
2023.01.05 19:26:34.431 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.432 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.433 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.434 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.444 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.445 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.446 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 01:05:00' AND TIMESTAMP < '2022-06-16 02' ORDER BY TIMESTAMP ASC;
2023.01.05 19:26:34.451 5: DbRep DBRep2_MT - data element: 2022-06-16 01:44:05_ESC_83
2023.01.05 19:26:34.451 5: DbRep DBRep2_MT - time sum: 1200, delta time: 600, value: 83, twm: 41.5
2023.01.05 19:26:34.452 5: DbRep DBRep2_MT - data element: 2022-06-16 01:49:05_ESC_82
2023.01.05 19:26:34.452 5: DbRep DBRep2_MT - time sum: 1200, delta time: 300, value: 82, twm: 20.5
2023.01.05 19:26:34.453 5: DbRep DBRep2_MT - data element: 2022-06-16 01:54:05_ESC_83
2023.01.05 19:26:34.453 5: DbRep DBRep2_MT - time sum: 1200, delta time: 300, value: 83, twm: 20.75
2023.01.05 19:26:34.455 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.455 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.456 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.457 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.465 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.466 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.466 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 02' AND TIMESTAMP < '2022-06-16 03' ORDER BY TIMESTAMP ASC;
2023.01.05 19:26:34.471 5: DbRep DBRep2_MT - data element: 2022-06-16 02:24:05_ESC_83
2023.01.05 19:26:34.472 5: DbRep DBRep2_MT - time sum: 3300, delta time: 1200, value: 83, twm: 30.1818181818182
2023.01.05 19:26:34.472 5: DbRep DBRep2_MT - data element: 2022-06-16 02:29:05_ESC_82
2023.01.05 19:26:34.473 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:26:34.473 5: DbRep DBRep2_MT - data element: 2022-06-16 02:34:05_ESC_83
2023.01.05 19:26:34.474 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:26:34.475 5: DbRep DBRep2_MT - data element: 2022-06-16 02:39:05_ESC_82
2023.01.05 19:26:34.475 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:26:34.476 5: DbRep DBRep2_MT - data element: 2022-06-16 02:44:05_ESC_83
2023.01.05 19:26:34.476 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:26:34.477 5: DbRep DBRep2_MT - data element: 2022-06-16 02:54:05_ESC_82
2023.01.05 19:26:34.477 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 82, twm: 14.9090909090909
2023.01.05 19:26:34.478 5: DbRep DBRep2_MT - data element: 2022-06-16 02:59:05_ESC_84
2023.01.05 19:26:34.478 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 84, twm: 7.63636363636364
2023.01.05 19:26:34.479 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.480 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.480 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.481 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.489 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.490 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.490 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 03' AND TIMESTAMP < '2022-06-16 04' ORDER BY TIMESTAMP ASC;
2023.01.05 19:26:34.495 5: DbRep DBRep2_MT - data element: 2022-06-16 03:24:05_ESC_82
2023.01.05 19:26:34.496 5: DbRep DBRep2_MT - time sum: 3300, delta time: 1200, value: 82, twm: 29.8181818181818
2023.01.05 19:26:34.496 5: DbRep DBRep2_MT - data element: 2022-06-16 03:29:05_ESC_83
2023.01.05 19:26:34.497 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:26:34.497 5: DbRep DBRep2_MT - data element: 2022-06-16 03:34:05_ESC_82
2023.01.05 19:26:34.498 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:26:34.498 5: DbRep DBRep2_MT - data element: 2022-06-16 03:44:05_ESC_83
2023.01.05 19:26:34.499 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 83, twm: 15.0909090909091
2023.01.05 19:26:34.499 5: DbRep DBRep2_MT - data element: 2022-06-16 03:59:05_ESC_84
2023.01.05 19:26:34.500 5: DbRep DBRep2_MT - time sum: 3300, delta time: 900, value: 84, twm: 22.9090909090909
2023.01.05 19:26:34.501 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.501 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.502 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.503 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.512 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.513 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:26:34.514 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 04' AND TIMESTAMP <= '2022-06-16 04:59:00' ORDER BY TIMESTAMP ASC;
2023.01.05 19:26:34.520 5: DbRep DBRep2_MT - data element: 2022-06-16 04:24:05_ESC_82
2023.01.05 19:26:34.521 5: DbRep DBRep2_MT - time sum: 2701, delta time: 900, value: 82, twm: 27.3232136245835
2023.01.05 19:26:34.522 5: DbRep DBRep2_MT - data element: 2022-06-16 04:29:05_ESC_84
2023.01.05 19:26:34.522 5: DbRep DBRep2_MT - time sum: 2701, delta time: 300, value: 84, twm: 9.32987782302851
2023.01.05 19:26:34.523 5: DbRep DBRep2_MT - data element: 2022-06-16 04:39:06_ESC_83
2023.01.05 19:26:34.523 5: DbRep DBRep2_MT - time sum: 2701, delta time: 601, value: 83, twm: 18.4683450573862
2023.01.05 19:26:34.524 5: DbRep DBRep2_MT - data element: 2022-06-16 04:44:06_ESC_84
2023.01.05 19:26:34.525 5: DbRep DBRep2_MT - time sum: 2701, delta time: 300, value: 84, twm: 9.32987782302851
2023.01.05 19:26:34.526 5: DbRep DBRep2_MT - data element: 2022-06-16 04:49:06_ESC_82
2023.01.05 19:26:34.526 5: DbRep DBRep2_MT - time sum: 2701, delta time: 300, value: 82, twm: 9.10773787486116
2023.01.05 19:26:34.527 5: DbRep DBRep2_MT - data element: 2022-06-16 04:54:06_ESC_85
2023.01.05 19:26:34.527 5: DbRep DBRep2_MT - time sum: 2701, delta time: 300, value: 85, twm: 9.44094779711218
2023.01.05 19:26:34.551 5: DbRep DBRep2_MT - BlockingCall PID "1755" finished
2023.01.05 19:23:34.035 4: DbRep DBRep2_MT - -------- New selection ---------
2023.01.05 19:23:34.036 4: DbRep DBRep2_MT - Command: averageValue display
2023.01.05 19:23:34.038 4: DbRep DBRep2_MT - FullDay option: 0
2023.01.05 19:23:34.039 5: DbRep DBRep2_MT - Timestamp begin epocheseconds: 1655334600
2023.01.05 19:23:34.039 4: DbRep DBRep2_MT - Timestamp begin human readable: 2022-06-16 01:10:00
2023.01.05 19:23:34.040 5: DbRep DBRep2_MT - Timestamp end epocheseconds: 1655416799
2023.01.05 19:23:34.040 4: DbRep DBRep2_MT - Timestamp end human readable: 2022-06-16 23:59:59
2023.01.05 19:23:34.041 5: DbRep DBRep2_MT - weekday start for selection: Do -> wdadd: 345600
2023.01.05 19:23:34.042 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 01:10:00 2022" to "Thu Jun 16 02:10:00 2022")
2023.01.05 19:23:34.043 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 02:10:00 2022" to "Thu Jun 16 03:10:00 2022")
2023.01.05 19:23:34.043 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 03:10:00 2022" to "Thu Jun 16 04:10:00 2022")
2023.01.05 19:23:34.044 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 04:10:00 2022" to "Thu Jun 16 05:10:00 2022")
2023.01.05 19:23:34.045 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 05:10:00 2022" to "Thu Jun 16 06:10:00 2022")
2023.01.05 19:23:34.046 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 06:10:00 2022" to "Thu Jun 16 07:10:00 2022")
2023.01.05 19:23:34.047 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 07:10:00 2022" to "Thu Jun 16 08:10:00 2022")
2023.01.05 19:23:34.047 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 08:10:00 2022" to "Thu Jun 16 09:10:00 2022")
2023.01.05 19:23:34.048 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 09:10:00 2022" to "Thu Jun 16 10:10:00 2022")
2023.01.05 19:23:34.049 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 10:10:00 2022" to "Thu Jun 16 11:10:00 2022")
2023.01.05 19:23:34.050 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 11:10:00 2022" to "Thu Jun 16 12:10:00 2022")
2023.01.05 19:23:34.050 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 12:10:00 2022" to "Thu Jun 16 13:10:00 2022")
2023.01.05 19:23:34.051 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 13:10:00 2022" to "Thu Jun 16 14:10:00 2022")
2023.01.05 19:23:34.052 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 14:10:00 2022" to "Thu Jun 16 15:10:00 2022")
2023.01.05 19:23:34.053 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 15:10:00 2022" to "Thu Jun 16 16:10:00 2022")
2023.01.05 19:23:34.053 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 16:10:00 2022" to "Thu Jun 16 17:10:00 2022")
2023.01.05 19:23:34.054 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 17:10:00 2022" to "Thu Jun 16 18:10:00 2022")
2023.01.05 19:23:34.055 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 18:10:00 2022" to "Thu Jun 16 19:10:00 2022")
2023.01.05 19:23:34.056 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 19:10:00 2022" to "Thu Jun 16 20:10:00 2022")
2023.01.05 19:23:34.057 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 20:10:00 2022" to "Thu Jun 16 21:10:00 2022")
2023.01.05 19:23:34.058 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 21:10:00 2022" to "Thu Jun 16 22:10:00 2022")
2023.01.05 19:23:34.058 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 22:10:00 2022" to "Thu Jun 16 23:10:00 2022")
2023.01.05 19:23:34.059 5: DbRep DBRep2_MT - Daylight savings changed: 0 (from "Thu Jun 16 23:10:00 2022" to "Fri Jun 17 00:10:00 2022")
2023.01.05 19:23:34.060 4: DbRep DBRep2_MT - Aggregation: hour
2023.01.05 19:23:34.087 5: DbRep DBRep2_MT - BlockingCall with PID "1640" started
2023.01.05 19:23:34.294 4: DbRep DBRep2_MT - Database connect - user: fhemuser, UTF-8 option set: yes
2023.01.05 19:23:34.304 4: DbRep DBRep2_MT - averageValue calculation sceme: avgTimeWeightMean
2023.01.05 19:23:34.305 5: DbRep DBRep2_MT - IsTimeSet: 1, IsAggrSet: 1
2023.01.05 19:23:34.307 5: DbRep DBRep2_MT - Timestamp-Array:
2022-06-16_01#2022-06-16 01:10:00#2022-06-16 02 2022-06-16_02#2022-06-16 02#2022-06-16 03 2022-06-16_03#2022-06-16 03#2022-06-16 04 2022-06-16_04#2022-06-16 04#2022-06-16 05 2022-06-16_05#2022-06-16 05#2022-06-16 06 2022-06-16_06#2022-06-16 06#2022-06-16 07 2022-06-16_07#2022-06-16 07#2022-06-16 08 2022-06-16_08#2022-06-16 08#2022-06-16 09 2022-06-16_09#2022-06-16 09#2022-06-16 10 2022-06-16_10#2022-06-16 10#2022-06-16 11 2022-06-16_11#2022-06-16 11#2022-06-16 12 2022-06-16_12#2022-06-16 12#2022-06-16 13 2022-06-16_13#2022-06-16 13#2022-06-16 14 2022-06-16_14#2022-06-16 14#2022-06-16 15 2022-06-16_15#2022-06-16 15#2022-06-16 16 2022-06-16_16#2022-06-16 16#2022-06-16 17 2022-06-16_17#2022-06-16 17#2022-06-16 18 2022-06-16_18#2022-06-16 18#2022-06-16 19 2022-06-16_19#2022-06-16 19#2022-06-16 20 2022-06-16_20#2022-06-16 20#2022-06-16 21 2022-06-16_21#2022-06-16 21#2022-06-16 22 2022-06-16_22#2022-06-16 22#2022-06-16 23 2022-06-16_23#2022-06-16 23#2022-06-16 23:59:59
2023.01.05 19:23:34.308 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.309 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.310 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.310 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.320 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.321 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.322 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 01:10:00' AND TIMESTAMP < '2022-06-16 02' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.327 5: DbRep DBRep2_MT - data element: 2022-06-16 01:44:05_ESC_83
2023.01.05 19:23:34.327 5: DbRep DBRep2_MT - time sum: 1200, delta time: 600, value: 83, twm: 41.5
2023.01.05 19:23:34.328 5: DbRep DBRep2_MT - data element: 2022-06-16 01:49:05_ESC_82
2023.01.05 19:23:34.328 5: DbRep DBRep2_MT - time sum: 1200, delta time: 300, value: 82, twm: 20.5
2023.01.05 19:23:34.329 5: DbRep DBRep2_MT - data element: 2022-06-16 01:54:05_ESC_83
2023.01.05 19:23:34.329 5: DbRep DBRep2_MT - time sum: 1200, delta time: 300, value: 83, twm: 20.75
2023.01.05 19:23:34.330 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.331 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.332 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.332 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.340 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.341 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.342 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 02' AND TIMESTAMP < '2022-06-16 03' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.347 5: DbRep DBRep2_MT - data element: 2022-06-16 02:24:05_ESC_83
2023.01.05 19:23:34.347 5: DbRep DBRep2_MT - time sum: 3300, delta time: 1200, value: 83, twm: 30.1818181818182
2023.01.05 19:23:34.348 5: DbRep DBRep2_MT - data element: 2022-06-16 02:29:05_ESC_82
2023.01.05 19:23:34.348 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.349 5: DbRep DBRep2_MT - data element: 2022-06-16 02:34:05_ESC_83
2023.01.05 19:23:34.349 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.350 5: DbRep DBRep2_MT - data element: 2022-06-16 02:39:05_ESC_82
2023.01.05 19:23:34.350 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.351 5: DbRep DBRep2_MT - data element: 2022-06-16 02:44:05_ESC_83
2023.01.05 19:23:34.351 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.352 5: DbRep DBRep2_MT - data element: 2022-06-16 02:54:05_ESC_82
2023.01.05 19:23:34.352 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 82, twm: 14.9090909090909
2023.01.05 19:23:34.353 5: DbRep DBRep2_MT - data element: 2022-06-16 02:59:05_ESC_84
2023.01.05 19:23:34.353 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 84, twm: 7.63636363636364
2023.01.05 19:23:34.354 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.355 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.355 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.356 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.364 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.365 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.365 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 03' AND TIMESTAMP < '2022-06-16 04' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.370 5: DbRep DBRep2_MT - data element: 2022-06-16 03:24:05_ESC_82
2023.01.05 19:23:34.371 5: DbRep DBRep2_MT - time sum: 3300, delta time: 1200, value: 82, twm: 29.8181818181818
2023.01.05 19:23:34.372 5: DbRep DBRep2_MT - data element: 2022-06-16 03:29:05_ESC_83
2023.01.05 19:23:34.372 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.373 5: DbRep DBRep2_MT - data element: 2022-06-16 03:34:05_ESC_82
2023.01.05 19:23:34.374 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.375 5: DbRep DBRep2_MT - data element: 2022-06-16 03:44:05_ESC_83
2023.01.05 19:23:34.375 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 83, twm: 15.0909090909091
2023.01.05 19:23:34.376 5: DbRep DBRep2_MT - data element: 2022-06-16 03:59:05_ESC_84
2023.01.05 19:23:34.377 5: DbRep DBRep2_MT - time sum: 3300, delta time: 900, value: 84, twm: 22.9090909090909
2023.01.05 19:23:34.378 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.379 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.380 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.380 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.389 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.390 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.391 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 04' AND TIMESTAMP < '2022-06-16 05' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.396 5: DbRep DBRep2_MT - data element: 2022-06-16 04:24:05_ESC_82
2023.01.05 19:23:34.396 5: DbRep DBRep2_MT - time sum: 3001, delta time: 900, value: 82, twm: 24.5918027324225
2023.01.05 19:23:34.397 5: DbRep DBRep2_MT - data element: 2022-06-16 04:29:05_ESC_84
2023.01.05 19:23:34.398 5: DbRep DBRep2_MT - time sum: 3001, delta time: 300, value: 84, twm: 8.39720093302233
2023.01.05 19:23:34.398 5: DbRep DBRep2_MT - data element: 2022-06-16 04:39:06_ESC_83
2023.01.05 19:23:34.399 5: DbRep DBRep2_MT - time sum: 3001, delta time: 601, value: 83, twm: 16.622125958014
2023.01.05 19:23:34.400 5: DbRep DBRep2_MT - data element: 2022-06-16 04:44:06_ESC_84
2023.01.05 19:23:34.400 5: DbRep DBRep2_MT - time sum: 3001, delta time: 300, value: 84, twm: 8.39720093302233
2023.01.05 19:23:34.401 5: DbRep DBRep2_MT - data element: 2022-06-16 04:49:06_ESC_82
2023.01.05 19:23:34.402 5: DbRep DBRep2_MT - time sum: 3001, delta time: 300, value: 82, twm: 8.19726757747418
2023.01.05 19:23:34.402 5: DbRep DBRep2_MT - data element: 2022-06-16 04:54:06_ESC_85
2023.01.05 19:23:34.403 5: DbRep DBRep2_MT - time sum: 3001, delta time: 300, value: 85, twm: 8.4971676107964
2023.01.05 19:23:34.404 5: DbRep DBRep2_MT - data element: 2022-06-16 04:59:06_ESC_83
2023.01.05 19:23:34.404 5: DbRep DBRep2_MT - time sum: 3001, delta time: 300, value: 83, twm: 8.29723425524825
2023.01.05 19:23:34.405 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.406 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.407 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.407 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.416 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.417 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.418 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 05' AND TIMESTAMP < '2022-06-16 06' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.423 5: DbRep DBRep2_MT - data element: 2022-06-16 05:14:06_ESC_83
2023.01.05 19:23:34.423 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 83, twm: 15.0909090909091
2023.01.05 19:23:34.425 5: DbRep DBRep2_MT - data element: 2022-06-16 05:19:06_ESC_84
2023.01.05 19:23:34.425 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 84, twm: 7.63636363636364
2023.01.05 19:23:34.426 5: DbRep DBRep2_MT - data element: 2022-06-16 05:29:06_ESC_85
2023.01.05 19:23:34.426 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 85, twm: 15.4545454545455
2023.01.05 19:23:34.427 5: DbRep DBRep2_MT - data element: 2022-06-16 05:34:06_ESC_83
2023.01.05 19:23:34.427 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.428 5: DbRep DBRep2_MT - data element: 2022-06-16 05:39:06_ESC_82
2023.01.05 19:23:34.428 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.429 5: DbRep DBRep2_MT - data element: 2022-06-16 05:44:06_ESC_83
2023.01.05 19:23:34.429 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.430 5: DbRep DBRep2_MT - data element: 2022-06-16 05:54:06_ESC_84
2023.01.05 19:23:34.430 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 84, twm: 15.2727272727273
2023.01.05 19:23:34.430 5: DbRep DBRep2_MT - data element: 2022-06-16 05:59:06_ESC_82
2023.01.05 19:23:34.431 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.432 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.432 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.433 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.434 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.441 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.442 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.443 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 06' AND TIMESTAMP < '2022-06-16 07' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.447 5: DbRep DBRep2_MT - data element: 2022-06-16 06:09:06_ESC_84
2023.01.05 19:23:34.448 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 84, twm: 8.4
2023.01.05 19:23:34.449 5: DbRep DBRep2_MT - data element: 2022-06-16 06:14:06_ESC_81
2023.01.05 19:23:34.449 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 81, twm: 8.1
2023.01.05 19:23:34.450 5: DbRep DBRep2_MT - data element: 2022-06-16 06:19:06_ESC_82
2023.01.05 19:23:34.450 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 82, twm: 8.2
2023.01.05 19:23:34.451 5: DbRep DBRep2_MT - data element: 2022-06-16 06:24:06_ESC_86
2023.01.05 19:23:34.451 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 86, twm: 8.6
2023.01.05 19:23:34.452 5: DbRep DBRep2_MT - data element: 2022-06-16 06:29:06_ESC_84
2023.01.05 19:23:34.452 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 84, twm: 8.4
2023.01.05 19:23:34.453 5: DbRep DBRep2_MT - data element: 2022-06-16 06:34:06_ESC_83
2023.01.05 19:23:34.453 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 83, twm: 8.3
2023.01.05 19:23:34.454 5: DbRep DBRep2_MT - data element: 2022-06-16 06:49:06_ESC_84
2023.01.05 19:23:34.454 5: DbRep DBRep2_MT - time sum: 3000, delta time: 900, value: 84, twm: 25.2
2023.01.05 19:23:34.455 5: DbRep DBRep2_MT - data element: 2022-06-16 06:54:06_ESC_83
2023.01.05 19:23:34.455 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 83, twm: 8.3
2023.01.05 19:23:34.456 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.457 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.458 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.458 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.466 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.467 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.467 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 07' AND TIMESTAMP < '2022-06-16 08' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.472 5: DbRep DBRep2_MT - data element: 2022-06-16 07:09:06_ESC_85
2023.01.05 19:23:34.473 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 85, twm: 7.72727272727273
2023.01.05 19:23:34.473 5: DbRep DBRep2_MT - data element: 2022-06-16 07:14:06_ESC_82
2023.01.05 19:23:34.474 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.475 5: DbRep DBRep2_MT - data element: 2022-06-16 07:19:06_ESC_83
2023.01.05 19:23:34.475 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.476 5: DbRep DBRep2_MT - data element: 2022-06-16 07:34:06_ESC_84
2023.01.05 19:23:34.477 5: DbRep DBRep2_MT - time sum: 3300, delta time: 900, value: 84, twm: 22.9090909090909
2023.01.05 19:23:34.478 5: DbRep DBRep2_MT - data element: 2022-06-16 07:39:06_ESC_83
2023.01.05 19:23:34.478 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 83, twm: 7.54545454545455
2023.01.05 19:23:34.479 5: DbRep DBRep2_MT - data element: 2022-06-16 07:44:06_ESC_82
2023.01.05 19:23:34.480 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 82, twm: 7.45454545454546
2023.01.05 19:23:34.481 5: DbRep DBRep2_MT - data element: 2022-06-16 07:54:06_ESC_84
2023.01.05 19:23:34.482 5: DbRep DBRep2_MT - time sum: 3300, delta time: 600, value: 84, twm: 15.2727272727273
2023.01.05 19:23:34.483 5: DbRep DBRep2_MT - data element: 2022-06-16 07:59:06_ESC_81
2023.01.05 19:23:34.484 5: DbRep DBRep2_MT - time sum: 3300, delta time: 300, value: 81, twm: 7.36363636363636
2023.01.05 19:23:34.486 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.487 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.488 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.488 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.497 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.498 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.498 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 08' AND TIMESTAMP < '2022-06-16 09' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.503 5: DbRep DBRep2_MT - data element: 2022-06-16 08:09:06_ESC_82
2023.01.05 19:23:34.503 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 82, twm: 8.2
2023.01.05 19:23:34.504 5: DbRep DBRep2_MT - data element: 2022-06-16 08:19:06_ESC_81
2023.01.05 19:23:34.505 5: DbRep DBRep2_MT - time sum: 3000, delta time: 600, value: 81, twm: 16.2
2023.01.05 19:23:34.505 5: DbRep DBRep2_MT - data element: 2022-06-16 08:24:06_ESC_82
2023.01.05 19:23:34.506 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 82, twm: 8.2
2023.01.05 19:23:34.506 5: DbRep DBRep2_MT - data element: 2022-06-16 08:49:06_ESC_81
2023.01.05 19:23:34.507 5: DbRep DBRep2_MT - time sum: 3000, delta time: 1500, value: 81, twm: 40.5
2023.01.05 19:23:34.507 5: DbRep DBRep2_MT - data element: 2022-06-16 08:54:06_ESC_82
2023.01.05 19:23:34.508 5: DbRep DBRep2_MT - time sum: 3000, delta time: 300, value: 82, twm: 8.2
2023.01.05 19:23:34.508 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.509 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.510 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.510 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.518 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.519 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.520 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 09' AND TIMESTAMP < '2022-06-16 10' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.524 5: DbRep DBRep2_MT - data element: 2022-06-16 09:24:06_ESC_82
2023.01.05 19:23:34.525 5: DbRep DBRep2_MT - time sum: 2700, delta time: 600, value: 82, twm: 18.2222222222222
2023.01.05 19:23:34.526 5: DbRep DBRep2_MT - data element: 2022-06-16 09:29:06_ESC_79
2023.01.05 19:23:34.526 5: DbRep DBRep2_MT - time sum: 2700, delta time: 300, value: 79, twm: 8.77777777777778
2023.01.05 19:23:34.527 5: DbRep DBRep2_MT - data element: 2022-06-16 09:34:06_ESC_82
2023.01.05 19:23:34.527 5: DbRep DBRep2_MT - time sum: 2700, delta time: 300, value: 82, twm: 9.11111111111111
2023.01.05 19:23:34.528 5: DbRep DBRep2_MT - data element: 2022-06-16 09:39:06_ESC_79
2023.01.05 19:23:34.528 5: DbRep DBRep2_MT - time sum: 2700, delta time: 300, value: 79, twm: 8.77777777777778
2023.01.05 19:23:34.528 5: DbRep DBRep2_MT - data element: 2022-06-16 09:44:06_ESC_80
2023.01.05 19:23:34.529 5: DbRep DBRep2_MT - time sum: 2700, delta time: 300, value: 80, twm: 8.88888888888889
2023.01.05 19:23:34.529 5: DbRep DBRep2_MT - data element: 2022-06-16 09:49:06_ESC_81
2023.01.05 19:23:34.530 5: DbRep DBRep2_MT - time sum: 2700, delta time: 300, value: 81, twm: 9
2023.01.05 19:23:34.530 5: DbRep DBRep2_MT - data element: 2022-06-16 09:59:06_ESC_80
2023.01.05 19:23:34.531 5: DbRep DBRep2_MT - time sum: 2700, delta time: 600, value: 80, twm: 17.7777777777778
2023.01.05 19:23:34.532 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.532 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.533 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.534 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.542 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.542 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.543 4: DbRep DBRep2_MT - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'MQTT2_ESP_2' ) AND ( READING = 'MT691_power' ) AND TIMESTAMP >= '2022-06-16 10' AND TIMESTAMP < '2022-06-16 11' ORDER BY TIMESTAMP ASC;
2023.01.05 19:23:34.548 5: DbRep DBRep2_MT - data element: 2022-06-16 10:09:06_ESC_82
2023.01.05 19:23:34.548 5: DbRep DBRep2_MT - time sum: 1500, delta time: 300, value: 82, twm: 16.4
2023.01.05 19:23:34.549 5: DbRep DBRep2_MT - data element: 2022-06-16 10:14:06_ESC_80
2023.01.05 19:23:34.549 5: DbRep DBRep2_MT - time sum: 1500, delta time: 300, value: 80, twm: 16
2023.01.05 19:23:34.550 5: DbRep DBRep2_MT - data element: 2022-06-16 10:19:06_ESC_81
2023.01.05 19:23:34.550 5: DbRep DBRep2_MT - time sum: 1500, delta time: 300, value: 81, twm: 16.2
2023.01.05 19:23:34.551 5: DbRep DBRep2_MT - data element: 2022-06-16 10:24:06_ESC_80
2023.01.05 19:23:34.551 5: DbRep DBRep2_MT - time sum: 1500, delta time: 300, value: 80, twm: 16
2023.01.05 19:23:34.552 5: DbRep DBRep2_MT - data element: 2022-06-16 10:29:06_ESC_0
2023.01.05 19:23:34.552 5: DbRep DBRep2_MT - time sum: 1500, delta time: 300, value: 0, twm: 0
2023.01.05 19:23:34.553 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.554 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.554 5: DbRep DBRep2_MT - Devices for operation -
included (1): MQTT2_ESP_2
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.555 5: DbRep DBRep2_MT - Readings for operation -
included (1): MT691_power
included with wildcard:
excluded (0):
excluded with wildcard:
2023.01.05 19:23:34.561 2: DbRep DBRep2_MT -
2023.01.05 19:23:34.569 5: DbRep DBRep2_MT - BlockingCall PID "1640" finished
Zitat von: DS_Starter am 06 Januar 2023, 00:00:18Moin Heiko,
Ich warte mal noch bis morgen Abend, dann würde ich den Stand ins Repo bringen.
SET @sortformat="hour",
@weighted="yes",
@device = "E_Zaehler",
@reading = "power",
@start = "2022-10-29 00:00:00",
@end = "2022-10-29 05:00:00";
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '( ORDER BY tim) AS preavgtim, LEAD(avgtim) OVER ( ORDER BY tim) AS nextavgtim FR' at line 1 at ./FHEM/93_DbRep.pm line 11100.
Zitat von: alkazaa am 06 Januar 2023, 09:24:47Ich verwende direkt das Oracle MySQL im Docker Container, das ist teilweise noch restriktiver, dafür aber immer aktueller.
Klar, macht Sinn. Die Vielfalt der SQL-Dialekte hatte ich nicht auf dem Schirm
-Franz
Zitat von: DS_Starter am 06 Januar 2023, 08:00:27
...
SQLite kann es so nicht. Habe diverse Varianten mit temporären Tabellen im Netz eruiert.
Meine MariaDB kann auch den Code aus dem Wiki nicht verarbeiten. Es kommt der Fehler:Code Auswählen
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '( ORDER BY tim) AS preavgtim, LEAD(avgtim) OVER ( ORDER BY tim) AS nextavgtim FR' at line 1 at ./FHEM/93_DbRep.pm line 11100.
Zitat von: RalfRog am 06 Januar 2023, 11:21:07Moin Ralf,
Bei den SQL-Statements (wie im Wiki) wäre ich völlig verloren (geht schon beim ausführen per CMD oder so im Modul los).
attr <dein DbRep-device> sqlCmdVars SET @sortformat="hour", @weighted="yes", @device="E_Zaehler", @reading="power", @start = "2022-10-29 00:00:00", @end = "2022-10-29 05:00:00";
Zitat von: DS_Starter am 06 Januar 2023, 09:50:57
Ich habe noch einen kleinen Fehler korrigiert.
Weiterhin wird nun bei sqlCmd.../Blocking der formatierte SQL Code im Reading sqlCmd ausgegeben wenn das Statement fehlerhaft war.
Das erleichtert das Editieren und neu ausführen des Codes.
-> contrib
LG
Zitat von: RalfRog am 06 Januar 2023, 13:19:36
....
So weit so schön - im zweiten (oder auch dritten) Schritt müssen dann noch die Originaleinträge reduziert werden sowie (je nach Parameter) noch einer der beiden berechneten Werte am Anfang/Ende des Intervalls reduziert und zusätzlich ggfs. auch noch die neuen Namen in den Readings angepasst werden.
Dann ist (wenn es reicht, dass die Werte ungefähr den Trend zeigen) eventuell ein einfaches "reduceLog average" einfacher (auch hinsichtlich der Wartbarkeit des Konstrukts).
...
Zitat von: DS_Starter am 07 Januar 2023, 19:22:49
@all,
der aktuelle Entwicklungsstand ist eingecheckt und morgen früh im Update enthalten.
LG
Zitat von: DS_Starter am 11 Januar 2023, 18:20:18
Also .... DbRep macht das richtig. Aber ... DbLog schreibt den Device TYPE generell in Großbuchstaben in die DB.
Jetzt bin ich mit mir am hadern ob ich DbRep an DbLog anpasse oder DbLog ändere.
Ich tendiere zu ersterem. Die Auswirkungen das Verhalten von DbLog zu ändern kann ich nicht abschätzen. Vllt. haben sich User Auswertungen über den TYPE gebaut etc.
Zitat von: DS_Starter am 11 Januar 2023, 18:30:22
Mit einer Chain. Das hatte ich letztens hier beschrieben:
https://forum.fhem.de/index.php/topic,114815.msg1255834.html#msg1255834
(Wollte ich noch ins Wiki packen ... komme einfach zu nix :o )
Zitat
Ich hatte zunächst analog zu readingRename nach typeRename ;D geschaut
Zitat
Wollte ich noch ins Wiki packen ...
2023.01.11 22:22:53.001 4: DbRep DBRep_avgtim_total_power - -------- New selection ---------
2023.01.11 22:22:53.002 4: DbRep DBRep_avgtim_total_power - Command: averageValue writeToDBSingle
2023.01.11 22:22:53.005 4: DbRep DBRep_avgtim_total_power - FullDay option: 0
2023.01.11 22:22:53.006 4: DbRep DBRep_avgtim_total_power - Timestamp begin human readable: 2023-01-10 00:00:00
2023.01.11 22:22:53.007 4: DbRep DBRep_avgtim_total_power - Timestamp end human readable: 2023-01-10 23:59:59
2023.01.11 22:22:53.019 4: DbRep DBRep_avgtim_total_power - Aggregation: hour
2023.01.11 22:22:53.259 4: DbRep DBRep_avgtim_total_power - Database connect - user: fhemuser, UTF-8 option set: yes
2023.01.11 22:22:53.267 4: DbRep DBRep_avgtim_total_power - averageValue calculation sceme: avgTimeWeightMean
2023.01.11 22:22:53.281 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 00:00:00' AND TIMESTAMP < '2023-01-10 01' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.307 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 01' AND TIMESTAMP < '2023-01-10 02' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.332 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 02' AND TIMESTAMP < '2023-01-10 03' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.357 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 03' AND TIMESTAMP < '2023-01-10 04' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.386 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 04' AND TIMESTAMP < '2023-01-10 05' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.415 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 05' AND TIMESTAMP < '2023-01-10 06' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.441 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 06' AND TIMESTAMP < '2023-01-10 07' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.466 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 07' AND TIMESTAMP < '2023-01-10 08' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.497 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 08' AND TIMESTAMP < '2023-01-10 09' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.523 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 09' AND TIMESTAMP < '2023-01-10 10' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.548 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 10' AND TIMESTAMP < '2023-01-10 11' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.573 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 11' AND TIMESTAMP < '2023-01-10 12' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.598 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 12' AND TIMESTAMP < '2023-01-10 13' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.623 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 13' AND TIMESTAMP < '2023-01-10 14' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.647 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 14' AND TIMESTAMP < '2023-01-10 15' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.671 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 15' AND TIMESTAMP < '2023-01-10 16' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.696 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 16' AND TIMESTAMP < '2023-01-10 17' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.720 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 17' AND TIMESTAMP < '2023-01-10 18' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.745 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 18' AND TIMESTAMP < '2023-01-10 19' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.770 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 19' AND TIMESTAMP < '2023-01-10 20' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.793 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 20' AND TIMESTAMP < '2023-01-10 21' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.816 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 21' AND TIMESTAMP < '2023-01-10 22' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.839 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 22' AND TIMESTAMP < '2023-01-10 23' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.862 4: DbRep DBRep_avgtim_total_power - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'shelly_3em_haus' ) AND ( READING = 'total_power' ) AND TIMESTAMP >= '2023-01-10 23' AND TIMESTAMP <= '2023-01-10 23:59:59' ORDER BY TIMESTAMP ASC;
2023.01.11 22:22:53.942 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 00:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|222|, RESULT: 0E0
2023.01.11 22:22:53.945 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 00:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|222|, RESULT: 1
2023.01.11 22:22:53.957 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 01:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|124|, RESULT: 0E0
2023.01.11 22:22:53.992 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 01:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|124|, RESULT: 1
2023.01.11 22:22:54.011 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 02:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|89|, RESULT: 0E0
2023.01.11 22:22:54.021 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 02:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|89|, RESULT: 1
2023.01.11 22:22:54.029 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 03:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|111|, RESULT: 0E0
2023.01.11 22:22:54.031 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 03:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|111|, RESULT: 1
2023.01.11 22:22:54.035 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 04:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|102|, RESULT: 0E0
2023.01.11 22:22:54.037 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 04:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|102|, RESULT: 1
2023.01.11 22:22:54.040 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 05:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|101|, RESULT: 0E0
2023.01.11 22:22:54.042 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 05:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|101|, RESULT: 1
2023.01.11 22:22:54.046 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 06:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|123|, RESULT: 0E0
2023.01.11 22:22:54.048 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 06:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|123|, RESULT: 1
2023.01.11 22:22:54.052 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 07:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|403|, RESULT: 0E0
2023.01.11 22:22:54.054 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 07:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|403|, RESULT: 1
2023.01.11 22:22:54.058 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 08:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|608|, RESULT: 0E0
2023.01.11 22:22:54.060 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 08:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|608|, RESULT: 1
2023.01.11 22:22:54.063 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 09:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|74|, RESULT: 0E0
2023.01.11 22:22:54.065 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 09:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|74|, RESULT: 1
2023.01.11 22:22:54.069 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 10:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|95|, RESULT: 0E0
2023.01.11 22:22:54.071 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 10:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|95|, RESULT: 1
2023.01.11 22:22:54.075 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 11:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|71|, RESULT: 0E0
2023.01.11 22:22:54.077 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 11:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|71|, RESULT: 1
2023.01.11 22:22:54.080 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 12:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|121|, RESULT: 0E0
2023.01.11 22:22:54.082 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 12:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|121|, RESULT: 1
2023.01.11 22:22:54.086 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 13:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|74|, RESULT: 0E0
2023.01.11 22:22:54.088 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 13:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|74|, RESULT: 1
2023.01.11 22:22:54.092 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 14:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|239|, RESULT: 0E0
2023.01.11 22:22:54.094 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 14:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|239|, RESULT: 1
2023.01.11 22:22:54.098 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 15:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|164|, RESULT: 0E0
2023.01.11 22:22:54.100 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 15:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|164|, RESULT: 1
2023.01.11 22:22:54.104 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 16:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|321|, RESULT: 0E0
2023.01.11 22:22:54.106 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 16:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|321|, RESULT: 1
2023.01.11 22:22:54.109 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 17:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|297|, RESULT: 0E0
2023.01.11 22:22:54.111 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 17:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|297|, RESULT: 1
2023.01.11 22:22:54.115 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 18:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|262|, RESULT: 0E0
2023.01.11 22:22:54.117 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 18:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|262|, RESULT: 1
2023.01.11 22:22:54.121 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 19:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|220|, RESULT: 0E0
2023.01.11 22:22:54.123 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 19:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|220|, RESULT: 1
2023.01.11 22:22:54.127 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 20:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|414|, RESULT: 0E0
2023.01.11 22:22:54.129 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 20:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|414|, RESULT: 1
2023.01.11 22:22:54.132 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 21:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|262|, RESULT: 0E0
2023.01.11 22:22:54.134 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 21:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|262|, RESULT: 1
2023.01.11 22:22:54.139 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-10 22:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|260|, RESULT: 0E0
2023.01.11 22:22:54.141 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-10 22:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|260|, RESULT: 1
2023.01.11 22:22:54.144 4: DbRep DBRep_avgtim_total_power - UPDATE history: 2023-01-09 23:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|202|, RESULT: 0E0
2023.01.11 22:22:54.146 4: DbRep DBRep_avgtim_total_power - INSERT history: 2023-01-09 23:59:59|shelly_3em_haus|Shelly|calculated|avgtwm_hour_total_power|202|, RESULT: 1
2023.01.11 22:22:54.154 3: DbRep DBRep_avgtim_total_power - number of lines updated in "DBLogging": 0
2023.01.11 22:22:54.155 3: DbRep DBRep_avgtim_total_power - number of lines inserted into "DBLogging": 24
2023.01.11 22:22:54.172 4: DbRep DBRep_avgtim_total_power - execute command after averageValue: 'msg push -1 [DBRep_avgtim_total_power:state] taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:total_power MT691_power'
2023.01.11 22:22:54.372 3: msg globalMsg: ID=1673472174.17602.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='running taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:total_power MT691_power'
2023-01-10_00__shelly_3em_haus__total_power__AVGTWM__2023-01-10_00 222 2023-01-11 22:49:52
2023-01-10_01__shelly_3em_haus__total_power__AVGTWM__2023-01-10_01 124 2023-01-11 22:49:52
2023-01-10_02__shelly_3em_haus__total_power__AVGTWM__2023-01-10_02 89 2023-01-11 22:49:52
2023-01-10_03__shelly_3em_haus__total_power__AVGTWM__2023-01-10_03 111 2023-01-11 22:49:52
2023-01-10_04__shelly_3em_haus__total_power__AVGTWM__2023-01-10_04 102 2023-01-11 22:49:52
2023-01-10_05__shelly_3em_haus__total_power__AVGTWM__2023-01-10_05 101 2023-01-11 22:49:52
2023-01-10_06__shelly_3em_haus__total_power__AVGTWM__2023-01-10_06 123 2023-01-11 22:49:52
2023-01-10_07__shelly_3em_haus__total_power__AVGTWM__2023-01-10_07 403 2023-01-11 22:49:52
2023-01-10_08__shelly_3em_haus__total_power__AVGTWM__2023-01-10_08 608 2023-01-11 22:49:52
2023-01-10_09__shelly_3em_haus__total_power__AVGTWM__2023-01-10_09 74 2023-01-11 22:49:52
2023-01-10_10__shelly_3em_haus__total_power__AVGTWM__2023-01-10_10 95 2023-01-11 22:49:52
2023-01-10_11__shelly_3em_haus__total_power__AVGTWM__2023-01-10_11 71 2023-01-11 22:49:52
2023-01-10_12__shelly_3em_haus__total_power__AVGTWM__2023-01-10_12 121 2023-01-11 22:49:52
2023-01-10_13__shelly_3em_haus__total_power__AVGTWM__2023-01-10_13 74 2023-01-11 22:49:52
2023-01-10_14__shelly_3em_haus__total_power__AVGTWM__2023-01-10_14 239 2023-01-11 22:49:52
2023-01-10_15__shelly_3em_haus__total_power__AVGTWM__2023-01-10_15 164 2023-01-11 22:49:52
2023-01-10_16__shelly_3em_haus__total_power__AVGTWM__2023-01-10_16 321 2023-01-11 22:49:52
2023-01-10_17__shelly_3em_haus__total_power__AVGTWM__2023-01-10_17 297 2023-01-11 22:49:52
2023-01-10_18__shelly_3em_haus__total_power__AVGTWM__2023-01-10_18 262 2023-01-11 22:49:52
2023-01-10_19__shelly_3em_haus__total_power__AVGTWM__2023-01-10_19 220 2023-01-11 22:49:52
2023-01-10_20__shelly_3em_haus__total_power__AVGTWM__2023-01-10_20 414 2023-01-11 22:49:52
2023-01-10_21__shelly_3em_haus__total_power__AVGTWM__2023-01-10_21 262 2023-01-11 22:49:52
2023-01-10_22__shelly_3em_haus__total_power__AVGTWM__2023-01-10_22 260 2023-01-11 22:49:52
2023-01-10_23__shelly_3em_haus__total_power__AVGTWM__2023-01-10_23 202 2023-01-11 22:49:52
state done 2023-01-11 22:49:52
Datenbank Display
2023-01-09 23:59:59;avgtwm_hour_total_power;202;
2023-01-10 00:59:59;avgtwm_hour_total_power;222; total_power__AVGTWM__2023-01-10_00 222
2023-01-10 01:59:59;avgtwm_hour_total_power;124; total_power__AVGTWM__2023-01-10_01 124
2023-01-10 02:59:59;avgtwm_hour_total_power;89;\ total_power__AVGTWM__2023-01-10_02 89
2023-01-10 03:59:59;avgtwm_hour_total_power;111; total_power__AVGTWM__2023-01-10_03 111
2023-01-10 04:59:59;avgtwm_hour_total_power;102; total_power__AVGTWM__2023-01-10_04 102
2023-01-10 05:59:59;avgtwm_hour_total_power;101; total_power__AVGTWM__2023-01-10_05 101
2023-01-10 06:59:59;avgtwm_hour_total_power;123; total_power__AVGTWM__2023-01-10_06 123
2023-01-10 07:59:59;avgtwm_hour_total_power;403; total_power__AVGTWM__2023-01-10_07 403
2023-01-10 08:59:59;avgtwm_hour_total_power;608; total_power__AVGTWM__2023-01-10_08 608
2023-01-10 09:59:59;avgtwm_hour_total_power;74;\ total_power__AVGTWM__2023-01-10_09 74
2023-01-10 10:59:59;avgtwm_hour_total_power;95;\ total_power__AVGTWM__2023-01-10_10 95
2023-01-10 11:59:59;avgtwm_hour_total_power;71;\ total_power__AVGTWM__2023-01-10_11 71
2023-01-10 12:59:59;avgtwm_hour_total_power;121; total_power__AVGTWM__2023-01-10_12 121
2023-01-10 13:59:59;avgtwm_hour_total_power;74;\ total_power__AVGTWM__2023-01-10_13 74
2023-01-10 14:59:59;avgtwm_hour_total_power;239; total_power__AVGTWM__2023-01-10_14 239
2023-01-10 15:59:59;avgtwm_hour_total_power;164; total_power__AVGTWM__2023-01-10_15 164
2023-01-10 16:59:59;avgtwm_hour_total_power;321; total_power__AVGTWM__2023-01-10_16 321
2023-01-10 17:59:59;avgtwm_hour_total_power;297; total_power__AVGTWM__2023-01-10_17 297
2023-01-10 18:59:59;avgtwm_hour_total_power;262; total_power__AVGTWM__2023-01-10_18 262
2023-01-10 19:59:59;avgtwm_hour_total_power;220; total_power__AVGTWM__2023-01-10_19 220
2023-01-10 20:59:59;avgtwm_hour_total_power;414; total_power__AVGTWM__2023-01-10_20 414
2023-01-10 21:59:59;avgtwm_hour_total_power;262; total_power__AVGTWM__2023-01-10_21 262
2023-01-10 22:59:59;avgtwm_hour_total_power;260; total_power__AVGTWM__2023-01-10_22 260
total_power__AVGTWM__2023-01-10_23 202
TIMESTAMP VALUE
2023-01-08 00:11:01 0.289
2023-01-08 00:12:36 0.284
2023-01-08 00:14:12 0.336
2023-01-08 00:15:45 0.479
2023-01-08 00:17:22 0.272
2023-01-08 00:20:32 0.503
2023-01-08 00:22:04 0.496
2023-01-08 00:25:15 0.488
Readings
2023-01-08_00-09__E_Zaehler__power__AVGTWM__2023-01-08_00_09 - 2023-01-12 13:18:18
2023-01-08_00-10__E_Zaehler__power__AVGTWM__2023-01-08_00_10 - 2023-01-12 13:18:18
2023-01-08_00-11__E_Zaehler__power__AVGTWM__2023-01-08_00_11 0.0000 2023-01-12 13:18:18
2023-01-08_00-12__E_Zaehler__power__AVGTWM__2023-01-08_00_12 0.0000 2023-01-12 13:18:18
2023-01-08_00-13__E_Zaehler__power__AVGTWM__2023-01-08_00_13 - 2023-01-12 13:18:18
2023-01-08_00-14__E_Zaehler__power__AVGTWM__2023-01-08_00_14 0.0000 2023-01-12 13:18:18
2023-01-08_00-15__E_Zaehler__power__AVGTWM__2023-01-08_00_15 0.0000 2023-01-12 13:18:18
2023-01-08_00-16__E_Zaehler__power__AVGTWM__2023-01-08_00_16 - 2023-01-12 13:18:18
2023-01-08_00-17__E_Zaehler__power__AVGTWM__2023-01-08_00_17 0.0000 2023-01-12 13:18:18
2023-01-08_00-18__E_Zaehler__power__AVGTWM__2023-01-08_00_18 - 2023-01-12 13:18:18
2023-01-08_00-19__E_Zaehler__power__AVGTWM__2023-01-08_00_19 - 2023-01-12 13:18:18
2023-01-08_00-20__E_Zaehler__power__AVGTWM__2023-01-08_00_20 0.0000 2023-01-12 13:18:18
2023-01-08_00-21__E_Zaehler__power__AVGTWM__2023-01-08_00_21 - 2023-01-12 13:18:18
2023-01-08_00-22__E_Zaehler__power__AVGTWM__2023-01-08_00_22 0.0000 2023-01-12 13:18:18
2023-01-08_00-23__E_Zaehler__power__AVGTWM__2023-01-08_00_23 - 2023-01-12 13:18:18
2023-01-08_00-24__E_Zaehler__power__AVGTWM__2023-01-08_00_24 - 2023-01-12 13:18:18
2023-01-08_00-25__E_Zaehler__power__AVGTWM__2023-01-08_00_25 0.0000 2023-01-12 13:18:18
2023-01-08_00-26__E_Zaehler__power__AVGTWM__2023-01-08_00_26 - 2023-01-12 13:18:18
2023-01-08_00-27__E_Zaehler__power__AVGTWM__2023-01-08_00_27 - 2023-01-12 13:18:18
2023-01-08_00-28__E_Zaehler__power__AVGTWM__2023-01-08_00_28 - 2023-01-12 13:18:18
2023-01-08_00-29__E_Zaehler__power__AVGTWM__2023-01-08_00_29 - 2023-01-12 13:18:18
2023-01-08_00-30__E_Zaehler__power__AVGTWM__2023-01-08_00_30 - 2023-01-12 13:18:18
background_processing_time 0.1199 2023-01-12 13:18:18
sql_processing_time 0.1091 2023-01-12 13:18:18
state done 2023-01-12 13:18:18
Readings
2023-01-08_00-09__E_Zaehler__power__AVGTWM__2023-01-08_00_09 - 2023-01-12 13:11:33
2023-01-08_00-10__E_Zaehler__power__AVGTWM__2023-01-08_00_10 - 2023-01-12 13:11:33
2023-01-08_00-11__E_Zaehler__power__AVGTWM__2023-01-08_00_11 0.2890 2023-01-12 13:11:33
2023-01-08_00-12__E_Zaehler__power__AVGTWM__2023-01-08_00_12 0.2870 2023-01-12 13:11:33
2023-01-08_00-13__E_Zaehler__power__AVGTWM__2023-01-08_00_13 0.2840 2023-01-12 13:11:33
2023-01-08_00-14__E_Zaehler__power__AVGTWM__2023-01-08_00_14 0.3256 2023-01-12 13:11:33
2023-01-08_00-15__E_Zaehler__power__AVGTWM__2023-01-08_00_15 0.3718 2023-01-12 13:11:33
2023-01-08_00-16__E_Zaehler__power__AVGTWM__2023-01-08_00_16 0.4790 2023-01-12 13:11:33
2023-01-08_00-17__E_Zaehler__power__AVGTWM__2023-01-08_00_17 0.3479 2023-01-12 13:11:33
2023-01-08_00-18__E_Zaehler__power__AVGTWM__2023-01-08_00_18 0.2720 2023-01-12 13:11:33
2023-01-08_00-19__E_Zaehler__power__AVGTWM__2023-01-08_00_19 0.2720 2023-01-12 13:11:33
2023-01-08_00-20__E_Zaehler__power__AVGTWM__2023-01-08_00_20 0.3798 2023-01-12 13:11:33
2023-01-08_00-21__E_Zaehler__power__AVGTWM__2023-01-08_00_21 0.5030 2023-01-12 13:11:33
2023-01-08_00-22__E_Zaehler__power__AVGTWM__2023-01-08_00_22 0.4965 2023-01-12 13:11:33
2023-01-08_00-23__E_Zaehler__power__AVGTWM__2023-01-08_00_23 0.4960 2023-01-12 13:11:33
2023-01-08_00-24__E_Zaehler__power__AVGTWM__2023-01-08_00_24 0.4960 2023-01-12 13:11:33
2023-01-08_00-25__E_Zaehler__power__AVGTWM__2023-01-08_00_25 0.4900 2023-01-12 13:11:33
2023-01-08_00-26__E_Zaehler__power__AVGTWM__2023-01-08_00_26 0.4880 2023-01-12 13:11:33
2023-01-08_00-27__E_Zaehler__power__AVGTWM__2023-01-08_00_27 0.4880 2023-01-12 13:11:33
2023-01-08_00-28__E_Zaehler__power__AVGTWM__2023-01-08_00_28 0.4880 2023-01-12 13:11:33
2023-01-08_00-29__E_Zaehler__power__AVGTWM__2023-01-08_00_29 0.4880 2023-01-12 13:11:33
2023-01-08_00-30__E_Zaehler__power__AVGTWM__2023-01-08_00_30 0.0000 2023-01-12 13:11:33
background_processing_time 0.1567 2023-01-12 13:11:33
sql_processing_time 0.1446 2023-01-12 13:11:33
state done 2023-01-12 13:11:3
Zitat von: alkazaa am 12 Januar 2023, 13:44:07
....
Hier mal das Ergebnis für den extremen Fall, dass nur etwa jedes 2. Intervall einen Datenpunkt enthält:
Die Originaldaten:Code AuswählenTIMESTAMP VALUE
2023-01-08 00:11:01 0.289
2023-01-08 00:12:36 0.284
............
Ergebnis mit der alten Mittelung:Code AuswählenReadings
2023-01-08_00-09__E_Zaehler__power__AVGTWM__2023-01-08_00_09 - 2023-01-12 13:18:18
2023-01-08_00-10__E_Zaehler__power__AVGTWM__2023-01-08_00_10 - 2023-01-12 13:18:18
............
Ergebnis mit der neuen Mittelung:Code AuswählenReadings
2023-01-08_00-09__E_Zaehler__power__AVGTWM__2023-01-08_00_09 - 2023-01-12 13:11:33
2023-01-08_00-10__E_Zaehler__power__AVGTWM__2023-01-08_00_10 - 2023-01-12 13:11:33
.........
....
Zitat von: RalfRog am 12 Januar 2023, 17:06:49
Die neue Mittelung verstehe ich auch nicht so ganz (liegt vermutlich am Fehlverständnis von Datenpunkt, Mittelungsintervall & zeitliche Grenzen (BIN)) bzw. es entsteht nicht das, was ich erwarten würde (wenn das Intervall eine Miunte ist). Am Anfang / Mitte komme ich glaube ich soweit mit.
Z.B. die Minuten 26-29 sind ohne Werte - trotzdem ist das AVG-Ergebnis der Wert von Minute 25. Müsste das nicht zumindest kleiner werden - bzw. ab wann gilt denn 0?
Zitat von: DS_Starter am 12 Januar 2023, 21:02:29
...
Testet es mal bitte dagegen.
...
Zitat von: alkazaa am 12 Januar 2023, 19:06:27
...
Des weiteren: die gemessenen Originalwerte in FHEM gelten ja immer so lange, bis eine neue Messung neue Information liefert. Entweder weil man nicht oft genug misst, oder weil sich man [00:00 bis 29:59] wählt, taucht auch die irritierende 0 am Ende nicht mehr auf.
Und natürlich ist das ganze Beispiel hier zwar anwendungsfremd, aber es lässt sich halt "zu Fuss" rechnerisch überprüfen (ohne höhere Mathematik, nur mit Grundrechenarten ;) ).
...
Zitat von: RalfRog am 12 Januar 2023, 22:47:53
Ich probier es aus. Muss mir nur morgen ne Datenlücke suchen, da ich gestern relativ viel zu Fuß gemacht und 23:45 meine Chain zum ersten Mal läuft ;D
2023.01.12 23:32:03.067 3: WARNING: DBLogging attribute bulkInsert was renamed to insertMode
2023.01.12 23:32:03.070 1: PERL WARNING: Use of uninitialized value $cm in split at ./FHEM/93_DbLog.pm line 6931.
2023.01.12 23:32:03.072 1: PERL WARNING: Use of uninitialized value $ac in pattern match (m//) at ./FHEM/93_DbLog.pm line 6933.
2023.01.12 23:32:03.073 1: PERL WARNING: Use of uninitialized value $ta in pattern match (m//) at ./FHEM/93_DbLog.pm line 6937.
2023.01.12 23:32:03.084 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/93_DbLog.pm line 7065.
2023.01.12 23:32:03.086 1: PERL WARNING: Use of uninitialized value $history in concatenation (.) or string at ./FHEM/93_DbLog.pm line 7065.
2023.01.12 23:32:03.087 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/93_DbLog.pm line 7066.
2023.01.12 23:32:03.088 1: PERL WARNING: Use of uninitialized value $current in concatenation (.) or string at ./FHEM/93_DbLog.pm line 7066.
2023.01.12 23:32:13.936 2: DbRep DBRep2_MT - ERROR - DBD::mysql::st execute failed: called with 6 bind variables when 7 are needed at ./FHEM/93_DbRep.pm line 11221.
2023.01.13 00:06:32.031 2: DbLog DBLogging - Subprocess >22099< initialized ... ready for non-blocking operation
2023.01.13 00:06:32.047 3: WARNING: DBLogging attribute bulkInsert was renamed to insertMode
2023.01.13 00:06:34.589 2: DbLog DBTest - Subprocess >22100< initialized ... ready for non-blocking operation
2023.01.13 00:07:47.442 3: DbLog DBLogging - DB connection parameters are initialized in the SubProcess
2023.01.13 00:07:47.479 3: DbLog DBTest - DB connection parameters are initialized in the SubProcess
2023.01.13 00:07:47.524 3: DbLog DBTest - DB connection parameters are stored in SubProcess
2023.01.13 00:07:47.675 3: DbLog DBLogging - DB connection parameters are stored in SubProcess
2023.01.13 00:08:17.548 3: DbLog DBLogging - SubProcess connected to fhem
ZitatDa ist eines der Felder für die DB "undefined". Vermutlich ist bei dir eines der Felder ausgeblendet (Attr col... im DbLog) oder aber beim Rückschreiben "undef". Aber egal, dass muss ich abfangen und die Schreibfunktion nochmal ändern. Mache ich nachher gleich.
2023.01.12 23:32:13.936 2: DbRep DBRep2_MT - ERROR - DBD::mysql::st execute failed: called with 6 bind variables when 7 are needed at ./FHEM/93_DbRep.pm line 11221.
ZitatKlare Antwort ... es kommt darauf an.
Generell: Reicht der Reload?
Zitat von: DS_Starter am 13 Januar 2023, 16:06:53
Wahrscheinlich werde ich die Version heute einchecken und mich morgen dann mal an den Patch von Franz heranmachen.
ZitatJa. Es beachtet die Grenzen der Selektion. D.h. wenn du 11:12:08 bis 23:21:16 selektierst, beachten der erste und letzte (neu geschriebene) Datensatz genau diese Zeitgrenzen und gehen mit XX:XX:01 nicht darunter oder mit XX:59:59 darüber.
Bei "aggregation = hour" kommt da meiner Ansicht nach kein großer Unterschied raus. Zeitbegrenzung 15:00:00 bis 20:59:59
Hab mal ein neues Beispiel angehängt.
Der erste Wert hat in meinem Beispiel (Screenshot) den Zeitstempel 15:00:00 statt 15:00:01.
War das so gedacht?
Zitat von: DS_Starter am 13 Januar 2023, 16:06:53
Wahrscheinlich werde ich die Version heute einchecken und mich morgen dann mal an den Patch von Franz heranmachen.
ZitatNein, ich wußte dass noch etwas kommt. :D
Ich hoffe, Du hast noch nicht angefangen
Zitat von: DS_Starter am 13 Januar 2023, 22:07:47Schönes Feature habs mal dank "alkazaa" zum Kurven vergleichen ausprobiert.
...
writeToDBSingleStart : schreibt nur einen Wert mit dem Zeitstempel XX:XX:01 am Beginn einer Auswertungsperiode
...
maxValue [display | writeToDB | deleteOther] - berechnet den Maximalwert des Datenbankfelds "VALUE" in den Zeitgrenzen .....
Die Auswertung enthält den Zeitstempel des ermittelten Maximumwertes innerhalb der Aggregation bzw. Zeitgrenzen. Im Reading wird der Zeitstempel des letzten Auftretens vom Maximalwert ausgegeben, falls dieser Wert im Intervall mehrfach erreicht wird
2023.01.16 22:38:56.720 4: DbRep Rep.CPU - -------- New selection ---------
2023.01.16 22:38:56.721 4: DbRep Rep.CPU - Command: maxValue writeToDB
2023.01.16 22:38:56.722 4: DbRep Rep.CPU - FullDay option: 0
2023.01.16 22:38:56.722 4: DbRep Rep.CPU - Timestamp begin human readable: 2023-01-05 11:12:08
2023.01.16 22:38:56.722 4: DbRep Rep.CPU - Timestamp end human readable: 2023-01-05 23:21:16
2023.01.16 22:38:56.723 4: DbRep Rep.CPU - Aggregation: hour
2023.01.16 22:38:56.745 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2023.01.16 22:38:56.756 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 11:12:08' AND TIMESTAMP < '2023-01-05 12' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.769 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 12' AND TIMESTAMP < '2023-01-05 13' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.771 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 13' AND TIMESTAMP < '2023-01-05 14' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.776 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 14' AND TIMESTAMP < '2023-01-05 15' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.779 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 15' AND TIMESTAMP < '2023-01-05 16' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.781 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 16' AND TIMESTAMP < '2023-01-05 17' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.785 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 17' AND TIMESTAMP < '2023-01-05 18' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.787 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 18' AND TIMESTAMP < '2023-01-05 19' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.790 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 19' AND TIMESTAMP < '2023-01-05 20' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.792 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 20' AND TIMESTAMP < '2023-01-05 21' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.794 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 21' AND TIMESTAMP < '2023-01-05 22' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.797 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 22' AND TIMESTAMP < '2023-01-05 23' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.799 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 23' AND TIMESTAMP <= '2023-01-05 23:21:16' ORDER BY TIMESTAMP;
2023.01.16 22:38:56.805 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2023.01.16 22:38:56.816 4: DbRep Rep.CPU - SQL prepare: INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2023.01.16 22:38:56.817 4: DbRep Rep.CPU - SQL prepare: UPDATE history SET TIMESTAMP=?, DEVICE=?, READING=?, TYPE=?, EVENT=?, VALUE=?, UNIT=? WHERE TIMESTAMP=? AND DEVICE=? AND READING=?
2023.01.16 22:38:56.818 4: DbRep Rep.CPU - SQL prepare: INSERT IGNORE INTO current (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2023.01.16 22:38:56.819 4: DbRep Rep.CPU - SQL prepare: UPDATE current SET TIMESTAMP=?, DEVICE=?, READING=?, TYPE=?, EVENT=?, VALUE=?, UNIT=? WHERE TIMESTAMP=? AND DEVICE=? AND READING=?
2023.01.16 22:38:56.820 4: DbRep Rep.CPU - begin transaction
2023.01.16 22:38:56.830 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 11:35:31|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|3492.1000|, RESULT: 0
2023.01.16 22:38:56.832 4: DbRep Rep.CPU - INSERT history: 2023-01-05 11:35:31|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|3492.1000|, RESULT: 1
2023.01.16 22:38:56.833 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 12:05:00|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|1507.3000|, RESULT: 0
2023.01.16 22:38:56.835 4: DbRep Rep.CPU - INSERT history: 2023-01-05 12:05:00|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|1507.3000|, RESULT: 1
2023.01.16 22:38:56.836 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 13:13:02|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|3297.1000|, RESULT: 0
2023.01.16 22:38:56.837 4: DbRep Rep.CPU - INSERT history: 2023-01-05 13:13:02|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|3297.1000|, RESULT: 1
2023.01.16 22:38:56.839 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 14:36:23|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|1920.2000|, RESULT: 0
2023.01.16 22:38:56.840 4: DbRep Rep.CPU - INSERT history: 2023-01-05 14:36:23|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|1920.2000|, RESULT: 1
2023.01.16 22:38:56.841 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 15:07:52|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|1399.2000|, RESULT: 0
2023.01.16 22:38:56.842 4: DbRep Rep.CPU - INSERT history: 2023-01-05 15:07:52|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|1399.2000|, RESULT: 1
2023.01.16 22:38:56.843 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 16:59:34|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.844 4: DbRep Rep.CPU - INSERT history: 2023-01-05 16:59:34|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.845 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 17:59:28|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.846 4: DbRep Rep.CPU - INSERT history: 2023-01-05 17:59:28|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.847 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 18:59:26|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.848 4: DbRep Rep.CPU - INSERT history: 2023-01-05 18:59:26|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.873 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 19:59:22|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.875 4: DbRep Rep.CPU - INSERT history: 2023-01-05 19:59:22|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.876 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 20:59:15|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.877 4: DbRep Rep.CPU - INSERT history: 2023-01-05 20:59:15|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.878 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 21:58:08|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.879 4: DbRep Rep.CPU - INSERT history: 2023-01-05 21:58:08|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.880 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 22:59:14|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.881 4: DbRep Rep.CPU - INSERT history: 2023-01-05 22:59:14|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.883 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 23:20:33|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:38:56.884 4: DbRep Rep.CPU - INSERT history: 2023-01-05 23:20:33|SMA_Energymeter|SMAEM||max_hour_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:38:56.886 4: DbRep Rep.CPU - transaction committed
2023.01.16 22:38:56.887 3: DbRep Rep.CPU - number of lines updated in >LogDB<: 0
2023.01.16 22:38:56.887 3: DbRep Rep.CPU - number of lines inserted into >LogDB<: 13
2023.01.16 22:40:54.607 4: DbRep Rep.CPU - -------- New selection ---------
2023.01.16 22:40:54.610 4: DbRep Rep.CPU - Command: minValue writeToDB
2023.01.16 22:40:54.611 4: DbRep Rep.CPU - FullDay option: 0
2023.01.16 22:40:54.611 4: DbRep Rep.CPU - Timestamp begin human readable: 2023-01-05 11:12:08
2023.01.16 22:40:54.612 4: DbRep Rep.CPU - Timestamp end human readable: 2023-01-05 23:21:16
2023.01.16 22:40:54.613 4: DbRep Rep.CPU - Aggregation: day
2023.01.16 22:40:54.632 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2023.01.16 22:40:54.637 4: DbRep Rep.CPU - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung' ) AND TIMESTAMP >= '2023-01-05 11:12:08' AND TIMESTAMP <= '2023-01-05 23:21:16' ORDER BY TIMESTAMP;
2023.01.16 22:40:54.651 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2023.01.16 22:40:54.660 4: DbRep Rep.CPU - SQL prepare: INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2023.01.16 22:40:54.660 4: DbRep Rep.CPU - SQL prepare: UPDATE history SET TIMESTAMP=?, DEVICE=?, READING=?, TYPE=?, EVENT=?, VALUE=?, UNIT=? WHERE TIMESTAMP=? AND DEVICE=? AND READING=?
2023.01.16 22:40:54.661 4: DbRep Rep.CPU - SQL prepare: INSERT IGNORE INTO current (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2023.01.16 22:40:54.662 4: DbRep Rep.CPU - SQL prepare: UPDATE current SET TIMESTAMP=?, DEVICE=?, READING=?, TYPE=?, EVENT=?, VALUE=?, UNIT=? WHERE TIMESTAMP=? AND DEVICE=? AND READING=?
2023.01.16 22:40:54.662 4: DbRep Rep.CPU - begin transaction
2023.01.16 22:40:54.663 4: DbRep Rep.CPU - UPDATE history: 2023-01-05 11:12:13|SMA_Energymeter|SMAEM||min_day_Einspeisung_Wirkleistung|0.0000|, RESULT: 0
2023.01.16 22:40:54.664 4: DbRep Rep.CPU - INSERT history: 2023-01-05 11:12:13|SMA_Energymeter|SMAEM||min_day_Einspeisung_Wirkleistung|0.0000|, RESULT: 1
2023.01.16 22:40:54.666 4: DbRep Rep.CPU - transaction committed
2023.01.16 22:40:54.667 3: DbRep Rep.CPU - number of lines updated in >LogDB<: 0
2023.01.16 22:40:54.667 3: DbRep Rep.CPU - number of lines inserted into >LogDB<: 1
Zitat von: DS_Starter am 16 Januar 2023, 22:45:59
...
Welche Aggregation hast du verwendet ?
ZitatDas wäre ein zu großer Umbau. Die Zeitstempel bei reduceLog sind ein Kompromiss und werde je nach Verfahren vorbelegt:
Aber mir würde auch der echte Zeitstempel gefallen.
Error:Modul 93_DbRep deactivated:
"evalDecodeJSON" is not exported by the FHEM::SynoModules::SMUtils module
if ($aval eq 'hour' || $aval eq 'minute') {
$time -= 3600; # um 1 Stunde zurückblicken
}
elsif ($aval eq 'day') {
$time -= 24 * 3600; # peek back by 1 day
}
elsif ($aval eq 'week') {
$time -= 3 * 24 * 3600; # peek back by 3 days
}
elsif ($aval eq 'month') {
$time -= 7 * 24 * 3600; # peek back by 1 week
}
else {
$time -= 30 * 24 * 3600; # peek back by 1 month
};
Zitat von: DS_Starter am 19 Januar 2023, 22:57:37Super, Vielen Dank!
ich habe die Zuarbeit von Franz leicht verändert eingearbeitet (Nutzung localtime, timelocal) und getestet.
Zitat von: DS_Starter am 19 Januar 2023, 22:57:37Genau, "gefühlte Empirie". Hab's aber geändert, sodass es weniger rätselhaft aussieht.
Die "Rückblicke" verstehe ich nicht ganz.
Warum gehst du bei "week" (nur) 3 Tage zurück, bei "month" (nur) 1 Woche und sonst einen Monat, wobei die Länge des Monats darauf ankommt von welchem Monat man ausgeht ?
Oder ist es eher eine empirische Wahl um einen Anfangswert mit einer gewissen Wahrscheinlichkeit zu ermitteln ?
2023.01.21 23:45:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 9626.
2023.01.21 23:45:19 3: eval: {DbRep_getInitDataDone('Rep.Reduce.Older7Davg||MjAyMi0wNi0xMCAyMjowMzozNQ==|0.690913,0.693636|reduceLog||DbRep_Main|SW5kZXggUmVwb3J0X0lkeCBkb2Vzbid0IGV4aXN0XXXXbGVhc2UgY3JlYXRlIHRoZSBpbmRleCBieSAic2V0IFJlcC5SZWR1Y2UuT2xkZXI3RGF2ZyBpbmRleCByZWNyZWF0ZV9SZXBvcnRfSWR4IiBjb21tYW5kICE=|VVBEQVRFLERFTEVURSxTRUxFQ1QsVVNBR0UsSU5TRVJU|dXRmOA==|dXRmOA==')}
Internals:
DATABASE fhem
DEF logdb
FUUID 63427754-f33f-4532-a08a-4cfd3fb05edc3e9e
FVERSION 93_DbRep.pm:v8.51.2-s27047/2023-01-13
LASTCMD reduceLog average=hour
MODEL Client
NAME Rep.Reduce.Older7Davg
NOTIFYDEV global,Rep.Reduce.Older7Davg
NR 675
NTFY_ORDER 50-Rep.Reduce.Older7Davg
ROLE Client
STATE reduceLog of fhem finished
TYPE DbRep
UTF8 1
eventCount 5
HELPER:
DBLOGDEVICE logdb
GRANTS UPDATE,DELETE,SELECT,USAGE,INSERT
IDRETRIES 2
MINTS 2022-06-10 22:03:35
PACKAGE main
VERSION 8.51.2
CV:
aggregation no
aggsec 1
destr 2023-01-14
dsstr 2022-06-10
epoch_seconds_end 1673736313.61569
mestr 01
msstr 06
testr 23:45:13
tsstr 22:03:35
wdadd 259200
yestr 2023
ysstr 2022
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 0
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
background_processing_time:
logdb:
TIME 1674341137.17217
VALUE 20.94
connectionEncoding:
logdb:
TIME 1674341114.59061
VALUE utf8
dbEncoding:
logdb:
TIME 1674341114.59061
VALUE utf8
indexState:
logdb:
TIME 1674341114.59061
VALUE Index Report_Idx doesn't exist. Please create the index by "set Rep.Reduce.Older7Davg index recreate_Report_Idx" command !
reduceLogState:
logdb:
TIME 1674341137.17217
VALUE reduceLog finished. Rows processed: 480587, deleted: 47338
state:
logdb:
TIME 1674341137.17217
VALUE reduceLog of fhem finished
timestamp_oldest_dataset:
logdb:
TIME 1674341114.59061
VALUE 2022-06-10 22:03:35
userRights:
logdb:
TIME 1674341114.59061
VALUE UPDATE,DELETE,SELECT,USAGE,INSERT
OLDREADINGS:
READINGS:
2023-01-21 23:45:37 background_processing_time 20.94
2023-01-21 23:45:37 reduceLogState reduceLog finished. Rows processed: 480587, deleted: 47338
2023-01-21 23:45:37 state reduceLog of fhem finished
Attributes:
allowDeletion 0
devStateIcon devStateIcon connected|initialized:10px-kreis-gelb .*disconnect:10px-kreis-rot .*finished:10px-kreis-gruen
executeAfterProc get Rep.Fhem.Size tableinfo
room 90 - System -> 96 - Server -> MariaDBLog
timeOlderThan d:7
verbose 1
2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
2023.01.22 15:24:38 3: DbRep Rep.Fhem.Size - get initial structure information of database "fhem", remaining attempts: 3
2023.01.22 15:24:38 3: DbRep Rep.Fhem.Size - Connectiontest to database mysql:database=fhem;host=192.168.1.99;port=3306 with user fhemuser
2023.01.22 15:24:39 3: DbRep Rep.Fhem.Size - WARNING - Index Report_Idx doesn't exist. Please create the index by "set Rep.Fhem.Size index recreate_Report_Idx" command !
2023.01.22 15:24:39 3: DbRep Rep.Fhem.Size - Initial data information retrieved - total time used: 0.6704 seconds
2023.01.22 15:24:39 3: DbRep Rep.Fhem.Size - Connectiontest to db mysql:database=fhem;host=192.168.1.99;port=3306 successful
jump to the top
ZitatDas readingNameMap soll dem User die Möglichkeit geben die entstehen Readingnamen bei Bedarf zu vereinheitlichen und ihnen einen sprechenden Namen bezüglich ihres Inhaltes zu geben.
Was ist eigentlich die Idee hinter dem Attribut readingNameMap?
READINGS:
2023-01-24 20:20:22 2023-01-01_15-52-49__Tageserzeugung_kWh__2023-01-01 4.5430
2023-01-24 20:20:22 2023-01-02_15-52-19__Tageserzeugung_kWh__2023-01-02 5.9120
2023-01-24 20:20:22 2023-01-03_16-13-32__Tageserzeugung_kWh__2023-01-03 17.0710
2023-01-24 20:20:22 2023-01-04_15-44-28__Tageserzeugung_kWh__2023-01-04 0.8900
2023-01-24 20:20:22 2023-01-05_15-54-51__Tageserzeugung_kWh__2023-01-05 4.8030
2023-01-24 20:20:22 2023-01-06_16-09-47__Tageserzeugung_kWh__2023-01-06 4.0190
2023-01-24 20:20:22 2023-01-07_15-43-26__Tageserzeugung_kWh__2023-01-07 3.9460
2023-01-24 20:20:22 2023-01-08_16-13-42__Tageserzeugung_kWh__2023-01-08 1.5690
2023-01-24 20:20:22 2023-01-09_16-53-22__Tageserzeugung_kWh__2023-01-09 5.4100
2023-01-24 20:20:22 2023-01-10_16-28-00__Tageserzeugung_kWh__2023-01-10 2.4710
2023-01-24 20:20:22 2023-01-11_15-45-08__Tageserzeugung_kWh__2023-01-11 1.1600
2023-01-24 20:20:22 2023-01-12_15-43-45__Tageserzeugung_kWh__2023-01-12 1.5890
2023-01-24 20:20:22 2023-01-13_16-21-24__Tageserzeugung_kWh__2023-01-13 11.4810
2023-01-24 20:20:22 2023-01-14_15-57-56__Tageserzeugung_kWh__2023-01-14 6.0470
2023-01-24 20:20:22 2023-01-15_16-29-23__Tageserzeugung_kWh__2023-01-15 4.2050
2023-01-24 20:20:22 2023-01-16_16-01-51__Tageserzeugung_kWh__2023-01-16 12.9730
2023-01-24 20:20:22 2023-01-17_16-26-21__Tageserzeugung_kWh__2023-01-17 6.5970
2023-01-24 20:20:22 2023-01-18_16-16-11__Tageserzeugung_kWh__2023-01-18 1.5610
2023-01-24 20:20:22 2023-01-19_15-46-29__Tageserzeugung_kWh__2023-01-19 17.2280
2023-01-24 20:20:22 2023-01-20_16-33-34__Tageserzeugung_kWh__2023-01-20 12.9760
2023-01-24 20:20:22 2023-01-21_16-07-10__Tageserzeugung_kWh__2023-01-21 2.1700
2023-01-24 20:20:22 2023-01-22_16-52-37__Tageserzeugung_kWh__2023-01-22 0.7180
2023-01-24 20:20:22 2023-01-23_16-12-44__Tageserzeugung_kWh__2023-01-23 1.1810
2023-01-24 20:20:22 2023-01-24_16-00-02__Tageserzeugung_kWh__2023-01-24 0.9950
2023-01-24 20:20:22 background_processing_time 0.2217
2023-01-24 20:20:22 sql_processing_time 0.1152
2023-01-24 20:20:22 state done
ZitatÜber readingNameMap wegen den oben dargestellten Zusammenhängen nicht, aber über das Attr userExitFn kannst du dir die entstandenen Readings nach Belieben auswerten, neue Readings erstellen und im Prinzip auch auch die vom Device automatisch erstellten Readings löschen.
Kann ich den readingName komplett selbstbestimmen?
{
if ($READING =~ /1_Brenner_Energy_Summe__DIFF/ && $VALUE ne '-') {
my $date = (split '__', $READING)[0];
my $cdd = "VaillantControlDummy"; # Steuerungsdummy Device
my $mpk = AttrVal($cdd, 'Multiplikator', '0');
my $zz = AttrVal($cdd, 'Zustandszahl', '0');
my $bw = AttrVal($cdd, 'Brennwert_kWh/m3', '0');
my $tarf = AttrVal($cdd, 'Tarif', '0'); # Kosten €/kWh
my $m3 = sprintf "%.3f", $VALUE/10000 * $mpk; # verbrauchte m3
my $kwh = sprintf "%.3f", $m3 * $zz * $bw; # Umrechnung m3 -> kWh
my $cost = sprintf "%.2f", $kwh * $tarf;
my $hash = $defs{$NAME};
readingsBulkUpdate ($hash, 'gas_consumption_m3', $m3);
readingsBulkUpdate ($hash, 'gas_consumption_kwh', $kwh);
readingsBulkUpdate ($hash, 'gas_costs_euro', $cost);
}
}
ZitatOder welche eine einfache Möglichkeit gibt es, den Wert direkt (ohne Umweg über ein reading) einer Variablen zuzuweisen?
Irgendwie vermisse ich dafür ein "set ... maxValue raw" :)
Sobald ein DbRep-Device definiert ist, wird sowohl die Perl Funktion DbReadingsVal als auch das FHEM Kommando dbReadingsVal zur Verfügung gestellt. Mit dieser Funktion läßt sich, ähnlich dem allgemeinen ReadingsVal, der Wert eines Readings aus der Datenbank abrufen.
Die Funktionsausführung erfolgt blockierend mit einem Standardtimeout von 10 Sekunden um eine dauerhafte Blockierung von FHEM zu verhindern. Der Timeout ist mit dem Attribut timeout anpassbar.
Die Befehlssyntax für die Perl Funktion ist:
DbReadingsVal("<name>","<device:reading>","<timestamp>","<default>")
Beispiel:
$ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13_08:00:00","");
attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")}
attr <name> userReadings todayPowerIn
{
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(gettimeofday());
$month++;
$year+=1900;
my $today = sprintf('%04d-%02d-%02d', $year,$month,$mday);
DbReadingsVal("Rep.LogDB1","SMA_Energymeter:Bezug_Wirkleistung_Zaehler",$today."_00:00:00",0)
}
Die Befehlssyntax als FHEM Kommando ist:
dbReadingsVal <name> <device:reading> <timestamp> <default>
Beispiel:
dbReadingsVal Rep.LogDB1 MyWetter:temperature 2018-01-13_08:00:00 0
<name> : Name des abzufragenden DbRep-Device
<device:reading> : Device:Reading dessen Wert geliefert werden soll
<timestamp> : Zeitpunkt des zu liefernden Readingwertes (*) im Format "YYYY-MM-DD_hh:mm:ss"
<default> : Defaultwert falls kein Readingwert ermittelt werden konnte
(*) Es wird der zeitlich zu <timestamp> passendste Readingwert zurück geliefert, falls kein Wert exakt zu dem angegebenen Zeitpunkt geloggt wurde.
Zitat von: DS_Starter am 24 Januar 2023, 20:56:56
Die Beschreibung werde ich mal etwas ausbauen damit es griffiger wird.
Über readingNameMap wegen den oben dargestellten Zusammenhängen nicht,
ZitatDu kannst das, das weiß ich. :)
Schade, meine Hoffnung war, dass ich dort einfach eine regex angeben könnte und damit die komplette Kontrolle über den Namen habe. Auch damit könnte ich den zeitlichen Kontext beibehalten...
ZitatJa, kommt auf die Liste. ;)
In DbLog.pm gibt es ja "get ... ReadingsVal ...".
Ein Blick in den Code zeigt mir, dass man da vermutlich ohne großen Aufwand auch "get ... ReadingsMaxVal ..." einbauen könnte 8)
Zitat
In DbLog.pm gibt es ja "get ... ReadingsVal ...".
Ein Blick in den Code zeigt mir, dass man da vermutlich ohne großen Aufwand auch "get ... ReadingsMaxVal ..." einbauen könnte 8)
2023.02.01 17:55:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 17:55:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:00:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:00:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:05:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:05:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:10:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:10:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:15:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:15:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:20:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:20:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:25:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:25:37 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:30:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:30:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:35:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:35:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:40:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:40:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:45:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:45:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:50:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:50:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:55:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:55:37 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:00:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:00:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:05:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:05:37 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:10:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:10:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:15:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:15:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 20:27:52.599 2: DbRep Rep.CPU - WARNING - dataset has no numeric value >bla< and is ignored, >2023-01-05 23:02:17<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung<.
2023.02.01 20:27:52.599 2: DbRep Rep.CPU - WARNING - dataset has no numeric value >bla< and is ignored, >2023-01-05 23:03:17<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung<.
2023.02.01 21:45:51 1: Including ./log/fhem.save
2023.02.01 21:45:53 2: netatmo: missing app refresh token!
2023.02.01 21:45:54 0: Featurelevel: 6.2
2023.02.01 21:45:54 0: Server started with 255 defined entities (fhem.pl:27110/2023-01-23 perl:5.032001 os:linux user:fhem pid:546702)
2023.02.01 21:45:56 2: AttrTemplates: got 258 entries
2023.02.01 21:48:11 2: DbRep Rep.SMAEM.Einspeisung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung_Zaehler<
2023.02.01 21:48:34 2: DbRep Rep.SMAEM.Bezug.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Bezug_Wirkleistung_Zaehler<
2023.02.01 21:49:09 2: DbRep Rep.SBS25_2.Entladung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2021-04-17 20:08:56<, device >SBS25_2<, reading >bat_loadtotal<
2023.02.01 21:50:57 2: VCONTROL300: Error while sending command for parameter 5527 (Status 0x15) : Retry 0!!!
2023.02.01 21:50:57 2: VCONTROL300: Error while sending command for parameter 5527 (Status 0x15) : Retry 1!!!
2023.02.01 21:50:58 2: DbRep Rep.SMAEM.Einspeisung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung_Zaehler<
2023.02.01 21:51:20 2: DbRep Rep.SMAEM.Bezug.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Bezug_Wirkleistung_Zaehler<
2023.02.01 21:51:56 2: DbRep Rep.SBS25_2.Entladung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2021-04-17 20:08:56<, device >SBS25_2<, reading >bat_loadtotal<
DELETE FROM `fhem`.`history`
WHERE `VALUE` = ''
AND `EVENT` LIKE '%: 0';
define At.Del.Rep at +*XX:XX:XX set <DbRep> sqlCmd DELETE FROM `fhem`.`history` WHERE `VALUE` = '' AND `EVENT` LIKE '%: 0';
2023.02.04 01:17:00.042 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3397.
2023.02.04 00:05:00.006 3: DbRep Rep.SQLite.Backup - ################################################################
2023.02.04 00:05:00.010 3: DbRep Rep.SQLite.Backup - ### New SQLite dump ###
2023.02.04 00:05:00.010 3: DbRep Rep.SQLite.Backup - ################################################################
2023.02.04 00:05:00.010 3: DbRep Rep.SQLite.Backup - execute command before dump: 'set logdb reopen 3600'
2023.02.04 00:05:00.015 2: DbLog logdb - Connection closed until 01:05:00 (3600 seconds).
2023.02.04 00:05:00.065 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem.db before optimize (MB): 11901.48 MB
2023.02.04 00:05:00.065 3: DbRep Rep.SQLite.Backup - VACUUM database /opt/fhem.db....
2023.02.04 00:05:00.182 3: DbLog logdb - Database disconnected by request.
2023.02.04 00:17:23.601 3: DbRep Rep.SQLite.Backup - Size of database /opt/fhem.db after optimize (MB): 11900.46 MB
2023.02.04 00:17:23.601 3: DbRep Rep.SQLite.Backup - Starting dump of database 'fhem.db'
2023.02.04 00:19:20.513 3: DbRep Rep.SQLite.Backup - Size of backupfile: 11900.46 MB
2023.02.04 00:19:20.515 3: DbRep Rep.SQLite.Backup - Deleting old dumpfile 'fhem_2023_02_01_00_17.sqlitebkp'
2023.02.04 00:19:20.536 3: DbRep Rep.SQLite.Backup - Finished backup of database fhem - total time used (hh:mm:ss): 00:14:20
2023.02.04 00:19:20.549 3: DbLog logdb - Reopen requested
2023.02.04 00:19:20.565 2: DbRep Rep.SQLite.Backup - command message after dump: "Reopen executed."
2023.02.04 00:19:20.569 3: DbRep Rep.SQLite.Backup - Database dump finished successfully.
2023.02.04 00:19:20.707 3: DbLog logdb - Database disconnected by request.
2023.02.04 00:19:43.749 3: DbLog logdb - SubProcess connected to /opt/fhem.db
2023.02.04 01:15:00.148 3: DbRep Rep.total_pac - number of lines updated in >logdb<: 3
2023.02.04 01:15:00.151 3: DbRep Rep.total_pac - number of lines inserted into >logdb<: 1
2023.02.04 01:16:00.129 3: DbRep Rep.total_pac - number of lines updated in >logdb<: 3
2023.02.04 01:16:00.129 3: DbRep Rep.total_pac - number of lines inserted into >logdb<: 1
2023.02.04 01:17:00.042 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3397.
2023.02.04 01:17:00.065 3: DbRep Rep.total_pac - number of lines updated in >logdb<: 6
2023.02.04 01:17:00.065 3: DbRep Rep.total_pac - number of lines inserted into >logdb<: 0
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf .*:.*
FD 7
FUUID 5eb961f7-f33f-cd72-b3f6-f6ca8383a8350f4c
FVERSION 93_DbLog.pm:v5.8.0-s27165/2023-02-01
MODE asynchronous
MODEL SQLITE
NAME logdb
NR 2
NTFY_ORDER 50-logdb
PID 30366
REGEXP .*:.*
SBP_PID 30368
SBP_STATE running
STATE connected
TYPE DbLog
dbconn SQLite:dbname=/opt/fhem.db
dbuser
eventCount 1802
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
PACKAGE main
READINGCOL 64
TC current
TH history
TYPECOL 64
UNITCOL 32
VALUECOL 128
VERSION 5.8.0
OLDREADINGS:
READINGS:
2023-02-04 07:18:55 CacheOverflowLastNum 0
2023-02-04 00:19:50 CacheOverflowLastState normal
2023-02-04 07:18:56 CacheUsage 7
2023-02-04 07:18:55 NextSync 2023-02-04 07:19:25 or when CacheUsage 500 is reached
2023-02-04 07:18:55 state connected
Attributes:
DbLogExclude .*
DbLogSelectionMode Exclude/Include
DbLogType Current/History
asyncMode 1
insertMode 1
valueFn {
if ($DEVICE eq "SMA_Wechselrichter") {
if( ($READING eq "etoday" || $READING eq "etotal") && $VALUE > 4000000 ) {
Log3 ($DEVICE, 1, "Reading: $READING with Value: $VALUE was ignored and not logged. ");
$IGNORE = 1;
}
}
}
verbose 3
DATABASE /opt/fhem.db
DEF logdb
FUUID 5ec9522c-f33f-cd72-2c67-4a017ef05f4c2b3f
FVERSION 93_DbRep.pm:v8.51.4-s27164/2023-02-01
LASTCMD averageValue writeToDB
MODEL Client
NAME Rep.total_pac
NOTIFYDEV global,Rep.total_pac
NR 416
NTFY_ORDER 50-Rep.total_pac
ROLE Client
STATE done
TYPE DbRep
UTF8 1
eventCount 14
HELPER:
DBLOGDEVICE logdb
IDRETRIES 2
MINTS 2020-04-13 21:54:39
PACKAGE main
VERSION 8.51.4
CV:
aggregation day
aggsec 86400
destr 2023-02-04
dsstr 2023-02-01
epoch_seconds_end 1675469820
mestr 02
msstr 02
testr 01:17:00
tsstr 00:00:00
wdadd 432000
yestr 2023
ysstr 2023
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2023-02-04 01:17:00 2023-02-01__SMA_Wechselrichter__total_pac__AVGAM__2023-02-01 0.5815
2023-02-04 01:17:00 2023-02-02__SMA_Wechselrichter__total_pac__AVGAM__2023-02-02 0.3833
2023-02-04 01:17:00 2023-02-03__SMA_Wechselrichter__total_pac__AVGAM__2023-02-03 0.5685
2023-02-04 01:17:00 2023-02-04__SMA_Wechselrichter__total_pac__AVGAM__2023-02-04 -
2023-02-04 01:17:00 background_processing_time 0.0421
2023-02-04 01:17:00 db_lines_processed 6
2023-02-04 01:17:00 sql_processing_time 0.0222
2023-02-04 01:17:00 state done
Attributes:
DbLogExclude .*
aggregation day
allowDeletion 1
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device SMA_Wechselrichter
event-on-update-reading state
reading total_pac
room Photovoltaik
showproctime 1
timestamp_begin current_month_begin
verbose 3
2023.02.04 08:53:50.438 3: DbRep Rep.CPU - Write Back String: 2023-01-05#163.18804664723#2023-01-05_11:12:08#2023-01-05_23:21:16|
2023.02.04 08:53:50.456 3: DbRep Rep.CPU - number of lines updated in >LogDB<: 2
2023.02.04 08:53:50.456 3: DbRep Rep.CPU - number of lines inserted into >LogDB<: 0
2023.02.04 09:32:59.903 3: DbRep Rep.total_pac - number of lines updated in >logdb<: 3
2023.02.04 09:32:59.903 3: DbRep Rep.total_pac - number of lines inserted into >logdb<: 1
2023.02.04 09:33:18.864 3: DbRep Rep.total_pac - number of lines updated in >logdb<: 4
2023.02.04 09:33:18.864 3: DbRep Rep.total_pac - number of lines inserted into >logdb<: 0
2023.02.04 09:33:27.700 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3400.
2023.02.04 09:33:27.700 3: DbRep Rep.total_pac - Write Back String: 2023-02-01#0.581517816527674#2023-02-01_00:00:00#2023-02-02_|
2023.02.04 09:33:27.700 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3402.
2023.02.04 09:33:27.703 3: DbRep Rep.total_pac - Write Back String: 2023-02-02#0.383271541686074#2023-02-02_#2023-02-03_|
2023.02.04 09:33:27.707 3: DbRep Rep.total_pac - Write Back String: 2023-02-03#0.568531518624643#2023-02-03_#2023-02-04_|
2023.02.04 09:33:27.707 3: DbRep Rep.total_pac - Write Back String: 2023-02-04#0.399760162601626#2023-02-04_#2023-02-04_09:33:27|
2023.02.04 09:33:27.721 3: DbRep Rep.total_pac - number of lines updated in >logdb<: 8
2023.02.04 09:33:27.721 3: DbRep Rep.total_pac - number of lines inserted into >logdb<: 0
2022-05-01_00:00:15 0.0000
2022-05-07_20:03:36 30.3000
2022-05-14_20:04:30 21.4120
2022-05-21_20:04:25 21.1900
2022-05-28_20:03:20 19.0250
2022-04-18_23:59:58 0.0000
2022-05-01_23:57:14 9.1330
2022-05-08_23:57:35 21.5490
2022-05-15_23:59:29 10.8130
2022-05-22_23:57:24 7.3580
2022-05-29_23:58:19 11.6910
define logdb.weekly.Strom.WP.HT DbRep logdb
attr logdb.weekly.Strom.WP.HT aggregation week
attr logdb.weekly.Strom.WP.HT device MQTT2_Z_WP
attr logdb.weekly.Strom.WP.HT reading MT681_Total_in_HT
attr logdb.weekly.Strom.WP.HT showproctime 1
attr logdb.weekly.Strom.WP.HT timestamp_begin previous_year_begin
attr logdb.weekly.Strom.WP.HT timestamp_end previous_week_end
attr logdb.weekly.Strom.WP.HT readingNameMap agg_HT
define logdb.weekly.Strom.WP.NT DbRep logdb
attr logdb.weekly.Strom.WP.NT aggregation week
attr logdb.weekly.Strom.WP.NT device MQTT2_Z_WP
attr logdb.weekly.Strom.WP.NT reading MT681_Total_in_NT
attr logdb.weekly.Strom.WP.NT showproctime 1
attr logdb.weekly.Strom.WP.NT timestamp_begin previous_year_begin
attr logdb.weekly.Strom.WP.NT timestamp_end previous_week_end
attr logdb.weekly.Strom.WP.NT readingNameMap agg_NT
top - 13:54:51 up 11 days, 23:30, 3 users, load average: 1,17, 1,30, 1,46
Tasks: 307 total, 2 running, 303 sleeping, 0 stopped, 2 zombie
%CPU0 : 11,0 us, 7,6 sy, 0,0 ni, 54,5 id, 26,6 wa, 0,0 hi, 0,3 si, 0,0 st
%CPU1 : 7,6 us, 1,3 sy, 0,0 ni, 89,0 id, 2,0 wa, 0,0 hi, 0,0 si, 0,0 st
%CPU2 : 7,7 us, 5,4 sy, 0,0 ni, 65,7 id, 21,2 wa, 0,0 hi, 0,0 si, 0,0 st
%CPU3 : 5,3 us, 5,6 sy, 0,0 ni, 72,5 id, 16,6 wa, 0,0 hi, 0,0 si, 0,0 st
MiB Spch: 3794,4 total, 625,8 free, 2005,9 used, 1162,6 buff/cache
MiB Swap: 100,0 total, 45,2 free, 54,8 used. 1623,4 avail Spch
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
2099 999 20 0 2350468 409700 7464 S 27,5 10,5 332:20.75 mariadbd
2563985 6061 20 0 293792 214308 14536 R 5,6 5,5 96:11.22 perl
4001830 root 0 -20 0 0 0 I 4,3 0,0 0:38.01 kworker/0:2+
2275 pi 20 0 1595912 56132 18032 S 3,6 1,4 572:36.74 deCONZ
4021557 pi 20 0 10572 3628 2856 R 1,3 0,1 0:00.19 top
2559176 root 20 0 14532 4108 3072 S 1,0 0,1 12:42.80 entry.sh
3987435 root 0 -20 0 0 0 I 1,0 0,0 0:18.37 kworker/2:1+
3988948 root 0 -20 0 0 0 I 1,0 0,0 0:15.40 kworker/3:1+
14 root 20 0 0 0 0 S 0,7 0,0 6:53.52 ksoftirqd/0
1997 root 20 0 711676 3964 1752 S 0,7 0,1 1:38.66 containerd-+
15 root 20 0 0 0 0 I 0,3 0,0 18:08.49 rcu_preempt
1662 root 20 0 1443640 3452 1752 S 0,3 0,1 5:39.14 docker-proxy
1834 root 20 0 712188 4632 2276 S 0,3 0,1 1:54.80 containerd-+
5493 _rpc 20 0 7380 1276 516 S 0,3 0,0 26:39.94 avahi-daemon
defmod DBLogging DbLog /opt/fhem/db.conf .*:.*
attr DBLogging DbLogSelectionMode Include
attr DBLogging alias Datenbank Logging
attr DBLogging asyncMode 1
attr DBLogging group Logging
attr DBLogging icon audio_playlist
attr DBLogging insertMode 1
attr DBLogging room Log
defmod DBLogging_DbRep DbRep DBLogging
attr DBLogging_DbRep DbLogExclude .*
attr DBLogging_DbRep DbLogInclude state,DumpFileCreatedSize,DumpRowsHistory,background_processing_time
attr DBLogging_DbRep alias Datenbank Logging DbRep
attr DBLogging_DbRep comment x\
{backupSqlFiles("DBLogging_DbRep")}\
attr DBLogging_DbRep dumpFilesKeep 1
attr DBLogging_DbRep event-on-change-reading state,DumpFileCreatedSize,DumpRowsHistory,background_processing_time,DumpFileCreated
attr DBLogging_DbRep executeAfterProc set Pibot _msg Dunp beendet
attr DBLogging_DbRep executeBeforeProc set Pibot _msg SQL Dump beginnt
attr DBLogging_DbRep group Logging
attr DBLogging_DbRep icon file_pod
attr DBLogging_DbRep optimizeTablesBeforeDump 1
attr DBLogging_DbRep room Log
dumpMemlimit 1000000
dumpSpeed 100000
Zitat
....
Wird in einer auszuwertenden Zeit- bzw. Aggregationsperiode nur ein Datensatz gefunden, kann die Differenz in Verbindung mit dem Differenzübertrag der Vorperiode berechnet werden. in diesem Fall kann es zu einer logischen Ungenauigkeit in der Zuordnung der Differenz zu der Aggregationsperiode kommen. Deswegen wird eine Warnung im "state" und das Reading "less_data_in_period" mit einer Liste der betroffenen Perioden wird erzeugt.
Hinweis:
Im Auswertungs- bzw. Aggregationszeitraum (Tag, Woche, Monat, etc.) sollten dem Modul pro Periode mindestens ein Datensatz zu Beginn und ein Datensatz gegen Ende des Aggregationszeitraumes zur Verfügung stehen um eine möglichst genaue Auswertung der Differenzwerte vornehmen zu können.
Zitat von: DS_Starter am 07 Februar 2023, 15:01:51
@sinemeter,
ich denke du könntest die Geschwindigkeit erhöhen wenn du die Attr wie folgt setzt:Code Auswählen
dumpMemlimit 1000000
dumpSpeed 100000
attr DBLogging_DbRep executeAfterProc {backupSqlFiles("DBLogging_DbRep")}
defmod DBLogging_DbRep DbRep DBLogging
attr DBLogging_DbRep DbLogExclude .*
attr DBLogging_DbRep DbLogInclude state,DumpFileCreatedSize,DumpRowsHistory,background_processing_time
attr DBLogging_DbRep alias Datenbank Logging DbRep
attr DBLogging_DbRep dumpFilesKeep 1
attr DBLogging_DbRep dumpMemlimit 1000000
attr DBLogging_DbRep dumpSpeed 100000
attr DBLogging_DbRep event-on-change-reading state,DumpFileCreatedSize,DumpRowsHistory,background_processing_time,DumpFileCreated
attr DBLogging_DbRep executeAfterProc {backupSqlFiles("DBLogging_DbRep")}
attr DBLogging_DbRep executeBeforeProc set Pibot _msg SQL Dump beginnt
attr DBLogging_DbRep group Logging
attr DBLogging_DbRep icon file_pod
attr DBLogging_DbRep optimizeTablesBeforeDump 1
attr DBLogging_DbRep room Log
setstate DBLogging_DbRep Database backup finished
setstate DBLogging_DbRep 2023-02-08 10:26:41 DumpFileCreated ./log/fhem_2023_02_08_09_40.sql
setstate DBLogging_DbRep 2023-02-08 10:26:41 DumpFileCreatedSize 1376.80 MB
setstate DBLogging_DbRep 2023-02-08 10:26:41 DumpFilesDeleted fhem_2023_02_08_01_00.sql
setstate DBLogging_DbRep 2023-02-08 10:26:41 DumpRowsCurrent 0
setstate DBLogging_DbRep 2023-02-08 10:26:41 DumpRowsHistory 6415032
setstate DBLogging_DbRep 2023-02-08 10:26:41 background_processing_time 2786.7522
setstate DBLogging_DbRep 2023-02-08 10:26:41 state Database backup finished
##############################################
# $Id: myUtilsTemplate.pm 21509 2020-03-25 11:20:51Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.
package main;
use strict;
use warnings;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
# Enter you functions below _this_ line.
sub backupSqlFiles($) {
my ($devspec) = @_;
my $file = ReadingsVal($devspec, "DumpFileCreated", "");
if ($file ne "") {
system("scp $file fhem\@qnas.fritz.box:/share/homes/fhem/backups/ &");
fhem("set Pibot _msg 'mySQL' 'Der Dump wurde erfolgreich erstellt ($file)'");
return 1;
}
return 0;
}
1;
######################################################
######## Nach Dump
######################################################
sub afterdump {
my ($name) = @_;
my $hash = $defs{$name};
Log3($name, 3, "DbRep $name -> Dump beendet");
return;
}
2023.02.08 13:47:25.819 3: [echo] [echodevice_NPMLoginRefresh] alexa-cookie modul not found
2023.02.08 13:47:35.665 3: DbRep DBLogging_DbRep - 6425118 records inserted (size of backupfile: 1379.23 MB)
2023.02.08 13:47:35.667 3: DbRep DBLogging_DbRep - Deleting old dumpfile 'fhem_2023_02_08_09_40.sql'
2023.02.08 13:47:35.756 3: DbRep DBLogging_DbRep - Finished backup of database fhem - total time used (hh:mm:ss): 00:39:10
2023.02.08 13:47:35.759 4: DbRep DBLogging_DbRep - execute command after dump: '{backupSqlFiles("DBLogging_DbRep")}'
2023.02.08 13:47:35.772 3: DbRep DBLogging_DbRep - Database dump finished successfully.
2023.02.08 13:48:25.822 3: [echo] [echodevice_LoginStart] Alter COOKIE=2827040/6000 Refresh Cookie!
2023.02.08 13:48:25.822 3: [echo] [echodevice_NPMLoginRefresh] alexa-cookie modul not found
############################################################################################################
######## Aktion nach einem Backup
############################################################################################################
sub doafterdump {
my ($name,$reading,$value) = @_;
my $hash = $defs{$name};
my $dbname = $hash->{DATABASE};
return if($reading ne "state" || ($reading eq "state" && ReadingsVal($name,"state",'') =~ /Dump is running/));
if ($reading = "state" && ReadingsVal($name,"state",'') !~ m/Database.*backup.*(finished|timed.*)/) {
my $file = ReadingsVal($devspec, "DumpFileCreated", "");
if ($file ne "") {
system("scp $file fhem\@qnas.fritz.box:/share/homes/fhem/backups/ &");
fhem("set Pibot _msg 'mySQL' 'Der Dump wurde erfolgreich erstellt ($file)'");
return 1;
}
return 0;
}
return;
}
sub doafterdump {
my ($name, $reading, $value) = @_;
my $hash = $defs{$name};
if ($reading eq "DumpFileCreated") {
my $file = $value;
if ($file ne "") {
system("scp $file fhem\@qnas.fritz.box:/share/homes/fhem/backups/ &");
fhem("set Pibot _msg 'mySQL' 'Der Dump wurde erfolgreich erstellt ($file)'");
return 1;
}
}
return 0;
}
attr userExitFn doafterdump DumpFileCreated:.*
sub doafterdump {
my $name = shift;
my $reading = shift;
my $file = shift;
if ($file ne "") {
system("scp $file fhem\@qnas.fritz.box:/share/homes/fhem/backups/ &");
fhem("set Pibot _msg 'mySQL' 'Der Dump wurde erfolgreich erstellt ($file)'");
return 1;
}
return 0;
}
Zitat von: DS_Starter am 12 Februar 2023, 20:40:31
Neue V ist eingecheckt und morgen früh im Update enthalten.
ZitatAh ok.
Hi - falls sich deine Antwort auf mein Problem mit dem 50mostFreqLogsLast2days-sql bezog - ich nutze SQLite ...
Zitat von: DS_Starter am 20 Februar 2023, 18:09:17Sorry, ich hatte ne ältere version
Hmm, bei mir nicht.....
"/opt/fhem/python/Prognose_KI/PV-KI-21_batch.py"
ZitatDas ist schon so.
Wäre es eventuell möglich Meldungen vom Skript oder zumindest einen Return Code als reading zu liefern?
ZitatNein, zumindest nicht durch DbRep gesteuert.
1) Läuft das executeAfterProc dann blocking, oder asyncron im Hintergrund?
ZitatErsetzt nicht, aber der User kann seiner Routine die Struktur "$hash" mitgeben und daraus $hash->{NAME} herausziehen und selbst Ersetzungen vornehmen und vieles mehr.
2) Werden im auszuführenden Kommando auch noch Variablen ersetzt, z.B. $NAME, bevor es ausgeführt wird?
Zitat von: DS_Starter am 21 Februar 2023, 18:45:02Hallo Heiko,
Es wird das Reading after_<Funktion>_message geschrieben. Zum Beispiel ist bei mir gesetzt:
executeAfterProc = set LogDB reopen
Nach einem tableCurrentFillup wird der Befehl ausgeführt und das Reading mit der Rückmeldung des ausgeführten Befehls geschrieben:
after_tableCurrentFillup_message = Reopen executed.
(Der ausgeführte Befehl oder die sub muss natürlich eine Rückmeldung zurückgeben.)
Nein, zumindest nicht durch DbRep gesteuert.
Aber der Nutzer kann natürlich eine Perl-Routine hinterlegen, die ihrerseits non-Blocking (z.B. mit BlockingCall) arbeitet.
Ersetzt nicht, aber der User kann seiner Routine die Struktur "$hash" mitgeben und daraus $hash->{NAME} herausziehen und selbst Ersetzungen vornehmen und vieles mehr.
ZitatWahrscheinlich nicht, aber sicherlich kann man Python (habe aber noch nie etwas damit gemacht!) Variablen übergeben.
Geht das mit dem $hash auch zu Python? Hättest Du da ein Beispiel?
pi@raspi-2:~/log$ grep shutdown fhem-2023-10.log
2023.03.06 17:02:12.499 0: Server shutdown
2023.03.07 12:58:23.380 1: [b]update finished[/b], "shutdown restart" is needed to activate the changes.
2023.03.07 13:00:00.983 0: Server shutdown
2023.03.07 18:34:27.558 0: Server shutdown
2023.03.09 03:30:00.048 3: msg globalMsg: ID=1678329000.00468.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='Start Mittelwerte in DB schreiben'
2023.03.09 03:30:00.581 3: DbRep DBRep_avgtim_MT691_power - number of lines updated in >DBLogging<: 0
2023.03.09 03:30:00.583 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 15
2023.03.09 03:30:00.625 3: DbRep DBRep_avgtim_MT691_power - execute command after averageValue: 'set DBRep_avgtim_power averageValue writeToDBSingleStart'
2023.03.09 03:30:00.781 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.09 03:30:00.784 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0wOF8wMCMzODcyLjIzNDQ0NDQ0NDQ0IzIwMjMtMDMtM................$
2023.03.09 03:30:00.790 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.09 03:30:00.792 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0wOF8wMCMzODcyLjIzNDQ0NDQ0NDQ0IzIwMjMtMDMtMDhfMDB8MjAyMy0wMy0wOF8wMSM................$
2023.03.09 03:30:01.214 3: DbRep DBRep_avgtim_power - number of lines updated in >DBLogging<: 0
2023.03.09 03:30:01.215 3: DbRep DBRep_avgtim_power - number of lines inserted into >DBLogging<: 9
2023.03.09 03:30:01.259 3: DbRep DBRep_avgtim_power - execute command after averageValue: 'set DBRep_avgtim_total_power averageValue writeToDBSingleStart'
2023.03.09 03:30:01.995 3: DbRep DBRep_avgtim_total_power - number of lines updated in >DBLogging<: 0
2023.03.09 03:30:01.997 3: DbRep DBRep_avgtim_total_power - number of lines inserted into >DBLogging<: 24
2023.03.09 03:30:02.048 3: DbRep DBRep_avgtim_total_power - execute command after averageValue: 'set DBRep_avgtim_unit changeValue old="%" new={"($VALUE,$UNIT) = ($VALUE,"W")"}'
2023.03.09 03:30:02.388 3: DbRep DBRep_avgtim_unit - execute command after changeval: 'msg push -1 [DBRep_avgtim_total_power:state] taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:tot$
2023.03.09 03:30:02.442 3: msg globalMsg: ID=1678329002.39269.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='done taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:t$
2023.03.09 03:30:02.459 3: DbRep DBRep_avgtim_unit - VALUE changed in "fhem" - old: "%", new: "($VALUE,$UNIT) = ($VALUE,"W")", number: 48
2023.03.09 03:30:00.784 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0wOF8wMCMzODcyLjIzNDQ0NDQ0NDQ0IzIwMjMtMDMtMDhfMDB8MjAyMy0wMy0wOF8wMSMxNjc5NC4wNiMyMDIzLTAzLTA4XzAxfDIwMjMtMDMtMDhfMDIjMTQ4OTYuNTk2NjY2NjY2NyMyMDIzLTAzLTA4XzAyfDIwMjMtMDMtMDhfMDMjNjkwMC4xMDMzMzMzMzMzMyMyMDIzLTAzLTA4XzAzfDIwMjMtMDMtMDhfMDQjMTg1NC42NTQ0NDQ0NDQ0NCMyMDIzLTAzLTA4XzA0fDIwMjMtMDMtMDhfMDUjMTg1OC41OTc3Nzc3Nzc3OCMyMDIzLTAzLTA4XzA1fDIwMjMtMDMtMDhfMDYjMzguNTcjMjAyMy0wMy0wOF8wNnwyMDIzLTAzLTA4XzA3I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8wN3wyMDIzLTAzLTA4XzA4I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8wOHwyMDIzLTAzLTA4XzA5IzkuMTY2NjY2NjY2NjY2NjcjMjAyMy0wMy0wOF8wOXwyMDIzLTAzLTA4XzEwI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xMHwyMDIzLTAzLTA4XzExI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xMXwyMDIzLTAzLTA4XzEyI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xMnwyMDIzLTAzLTA4XzEzI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xM3wyMDIzLTAzLTA4XzE0I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xNHwyMDIzLTAzLTA4XzE1I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xNXwyMDIzLTAzLTA4XzE2I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xNnwyMDIzLTAzLTA4XzE3IzguMTc5MTY2NjY2NjY2NjcjMjAyMy0wMy0wOF8xN3wyMDIzLTAzLTA4XzE4IzYuNDA0MTY2NjY2NjY2NjcjMjAyMy0wMy0wOF8xOHwyMDIzLTAzLTA4XzE5IzcuMTc5MTY2NjY2NjY2NjcjMjAyMy0wMy0wOF8xOXwyMDIzLTAzLTA4XzIwIzEuNDkxMzg4ODg4ODg4ODkjMjAyMy0wMy0wOF8yMHwyMDIzLTAzLTA4XzIxIzAuOTI1IzIwMjMtMDMtMDhfMjF8MjAyMy0wMy0wOF8yMiMxMi4xMDUjMjAyMy0wMy0wOF8yMnwyMDIzLTAzLTA4XzIzIzcuNTU1NDMyMDY0NDYyMzUjMjAyMy0wMy0wOF8yM3w=|TVFUVDJfRVNQXzI=|MT691_power|0.295909,0.395488|15||')}
2023.03.09 03:30:00.792 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0wOF8wMCMzODcyLjIzNDQ0NDQ0NDQ0IzIwMjMtMDMtMDhfMDB8MjAyMy0wMy0wOF8wMSMxNjc5NC4wNiMyMDIzLTAzLTA4XzAxfDIwMjMtMDMtMDhfMDIjMTQ4OTYuNTk2NjY2NjY2NyMyMDIzLTAzLTA4XzAyfDIwMjMtMDMtMDhfMDMjNjkwMC4xMDMzMzMzMzMzMyMyMDIzLTAzLTA4XzAzfDIwMjMtMDMtMDhfMDQjMTg1NC42NTQ0NDQ0NDQ0NCMyMDIzLTAzLTA4XzA0fDIwMjMtMDMtMDhfMDUjMTg1OC41OTc3Nzc3Nzc3OCMyMDIzLTAzLTA4XzA1fDIwMjMtMDMtMDhfMDYjMzguNTcjMjAyMy0wMy0wOF8wNnwyMDIzLTAzLTA4XzA3I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8wN3wyMDIzLTAzLTA4XzA4I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8wOHwyMDIzLTAzLTA4XzA5IzkuMTY2NjY2NjY2NjY2NjcjMjAyMy0wMy0wOF8wOXwyMDIzLTAzLTA4XzEwI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xMHwyMDIzLTAzLTA4XzExI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xMXwyMDIzLTAzLTA4XzEyI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xMnwyMDIzLTAzLTA4XzEzI2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xM3wyMDIzLTAzLTA4XzE0I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xNHwyMDIzLTAzLTA4XzE1I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xNXwyMDIzLTAzLTA4XzE2I2luc3VmZmljaWVudCB2YWx1ZXMjMjAyMy0wMy0wOF8xNnwyMDIzLTAzLTA4XzE3IzguMTc5MTY2NjY2NjY2NjcjMjAyMy0wMy0wOF8xN3wyMDIzLTAzLTA4XzE4IzYuNDA0MTY2NjY2NjY2NjcjMjAyMy0wMy0wOF8xOHwyMDIzLTAzLTA4XzE5IzcuMTc5MTY2NjY2NjY2NjcjMjAyMy0wMy0wOF8xOXwyMDIzLTAzLTA4XzIwIzEuNDkxMzg4ODg4ODg4ODkjMjAyMy0wMy0wOF8yMHwyMDIzLTAzLTA4XzIxIzAuOTI1IzIwMjMtMDMtMDhfMjF8MjAyMy0wMy0wOF8yMiMxMi4xMDUjMjAyMy0wMy0wOF8yMnwyMDIzLTAzLTA4XzIzIzcuNTU1NDMyMDY0NDYyMzUjMjAyMy0wMy0wOF8yM3w=|TVFUVDJfRVNQXzI=|MT691_power|0.295909,0.395488|15||')}
Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694
2023.03.11 03:30:00.609 3: DbRep DBRep_avgtim_MT691_power - execute command after averageValue: 'set DBRep_avgtim_power averageValue writeToDBSingleStart'
2023.03.11 03:30:00.755 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.11 03:30:00.758 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0xMF8wMCMxNS40MjI1MzUyMTEyNjc2IzIwMjMtMDMtMTBfMDB8MjAyMy0wMy0xMF8wMSMxMC4zNTA1NTU1NTU1NTU2IzIwMjMtMDMtMTBfMDF8MjAyMy0wMy0xMF8wMiMzLjU4MzMzMzMzMzMzMzMzIzIwMjMtMDMtMTBfMDJ8MjAyMy0wMy0xMF8wMyMxNDg5My45NDY2NjY2NjY3IzIwMjMtMDMtMTBfMDN8MjAyMy0wMy0xMF8wNCMxNDM1MS4zOTY2NjY2NjY3IzIwMjMtMDMtMTBfMDR8MjAyMy0wMy0xMF8wNSM2MjM1LjgxMzMzMzMzMzMzIzIwMjMtMDMtMTBfMDV8MjAyMy0wMy0xMF8wNiM0MS40MjY2NjY2NjY2NjY3IzIwMjMtMDMtMTBfMDZ8MjAyMy0wMy0xMF8wNyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMDd8MjAyMy0wMy0xMF8wOCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMDh8MjAyMy0wMy0xMF8wOSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMDl8MjAyMy0wMy0xMF8xMCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTB8MjAyMy0wMy0xMF8xMSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTF8MjAyMy0wMy0xMF8xMiNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTJ8MjAyMy0wMy0xMF8xMyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTN8MjAyMy0wMy0xMF8xNCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTR8MjAyMy0wMy0xMF8xNSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTV8MjAyMy0wMy0xMF8xNiNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTZ8MjAyMy0wMy0xMF8xNyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTd8MjAyMy0wMy0xMF8xOCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTh8MjAyMy0wMy0xMF8xOSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTl8MjAyMy0wMy0xMF8yMCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMjB8MjAyMy0wMy0xMF8yMSMxMS42NDU4MzMzMzMzMzMzIzIwMjMtMDMtMTBfMjF8MjAyMy0wMy0xMF8yMiM2LjI3MDgzMzMzMzMzMzMzIzIwMjMtMDMtMTBfMjJ8MjAyMy0wMy0xMF8yMyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMjN8|TVFUVDJfRVNQXzI=|MT691_power|0.244824,0.342877|9||')}
2023.03.11 03:30:00.764 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.11 03:30:00.766 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0xMF8wMCMxNS40MjI1MzUyMTEyNjc2IzIwMjMtMDMtMTBfMDB8MjAyMy0wMy0xMF8wMSMxMC4zNTA1NTU1NTU1NTU2IzIwMjMtMDMtMTBfMDF8MjAyMy0wMy0xMF8wMiMzLjU4MzMzMzMzMzMzMzMzIzIwMjMtMDMtMTBfMDJ8MjAyMy0wMy0xMF8wMyMxNDg5My45NDY2NjY2NjY3IzIwMjMtMDMtMTBfMDN8MjAyMy0wMy0xMF8wNCMxNDM1MS4zOTY2NjY2NjY3IzIwMjMtMDMtMTBfMDR8MjAyMy0wMy0xMF8wNSM2MjM1LjgxMzMzMzMzMzMzIzIwMjMtMDMtMTBfMDV8MjAyMy0wMy0xMF8wNiM0MS40MjY2NjY2NjY2NjY3IzIwMjMtMDMtMTBfMDZ8MjAyMy0wMy0xMF8wNyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMDd8MjAyMy0wMy0xMF8wOCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMDh8MjAyMy0wMy0xMF8wOSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMDl8MjAyMy0wMy0xMF8xMCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTB8MjAyMy0wMy0xMF8xMSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTF8MjAyMy0wMy0xMF8xMiNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTJ8MjAyMy0wMy0xMF8xMyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTN8MjAyMy0wMy0xMF8xNCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTR8MjAyMy0wMy0xMF8xNSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTV8MjAyMy0wMy0xMF8xNiNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTZ8MjAyMy0wMy0xMF8xNyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTd8MjAyMy0wMy0xMF8xOCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTh8MjAyMy0wMy0xMF8xOSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMTl8MjAyMy0wMy0xMF8yMCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMjB8MjAyMy0wMy0xMF8yMSMxMS42NDU4MzMzMzMzMzMzIzIwMjMtMDMtMTBfMjF8MjAyMy0wMy0xMF8yMiM2LjI3MDgzMzMzMzMzMzMzIzIwMjMtMDMtMTBfMjJ8MjAyMy0wMy0xMF8yMyNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTBfMjN8|TVFUVDJfRVNQXzI=|MT691_power|0.244824,0.342877|9||')}
2023.03.11 03:30:01.108 3: DbRep DBRep_avgtim_power - number of lines updated in >DBLogging<: 0
Zitat von: alkazaa am 13 März 2023, 18:56:17war's nicht.
Beim schnellen Blick über den Code fiel mir jetzt auf, dass $to undefiniert bleibt, wenn kein voriger Wert gefunden wird. Die for-Schleife ab Zeile 3670 (in der $to erstmals definiert wird) wird dann gar nicht durchlaufen.
pi@raspi-2:/opt/fhem/log $ grep "subtraction" fhem-2023-*
fhem-2023-10.log:2023.03.08 03:30:01.044 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-10.log:2023.03.09 03:30:00.781 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-10.log:2023.03.10 03:30:01.106 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-10.log:2023.03.11 03:30:00.755 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-10.log:2023.03.12 03:30:00.266 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-10.log:2023.03.12 03:30:00.861 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-11.log:2023.03.13 03:30:00.764 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-11.log:2023.03.14 03:30:00.268 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
fhem-2023-11.log:2023.03.14 03:30:00.734 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
Zitat von: RalfRog am 14 März 2023, 20:19:38
Irgendwie sieht es so aus, dass die Mittelwertberechnung durch ist und die Zeilen in der Datenbank eingefügt sind.
Die Warnings und der eval-Eintrag kommt erst wenn es um das nächste Kommando der Chain geht "execute command after averageValue: 'set DBRep_avgtim_power averageValue writeToDBSingleStart'"
2023.03.15 03:30:00.074 3: msg globalMsg: ID=1678847400.00598.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='Start Mittelwerte in DB schreiben'
2023.03.15 03:30:00.274 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.15 03:30:00.276 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem ("msg push -1 Start Mittelwerte in DB schreiben") ; fhem ("set DBRep_avgtim_MT691_power averageValue writeToDBSingleStart") }
2023.03.15 03:30:00.282 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.15 03:30:00.283 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem ("msg push -1 Start Mittelwerte in DB schreiben") ; fhem ("set DBRep_avgtim_MT691_power averageValue writeToDBSingleStart") }
2023.03.15 03:30:00.571 3: DbRep DBRep_avgtim_MT691_power - number of lines updated in >DBLogging<: 0
2023.03.15 03:30:00.574 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 10
2023.03.15 03:30:00.627 3: DbRep DBRep_avgtim_MT691_power - execute command after averageValue: 'set DBRep_avgtim_power averageValue writeToDBSingleStart'
2023.03.15 03:30:00.772 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.15 03:30:00.775 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0xNF8wMCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTRfMDB8MjAyMy0wMy0xNF8wMSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTRfMDF8MjAyMy0wMy0$
2023.03.15 03:30:00.780 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.15 03:30:00.782 3: eval: {DbRep_avervalDone('DBRep_avgtim_MT691_power||MjAyMy0wMy0xNF8wMCNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTRfMDB8MjAyMy0wMy0xNF8wMSNpbnN1ZmZpY2llbnQgdmFsdWVzIzIwMjMtMDMtMTRfMDF8MjAyMy0wMy0$
2023.03.15 03:30:01.141 3: DbRep DBRep_avgtim_power - number of lines updated in >DBLogging<: 0
2023.03.15 03:30:01.142 3: DbRep DBRep_avgtim_power - number of lines inserted into >DBLogging<: 12
2023.03.15 03:30:01.189 3: DbRep DBRep_avgtim_power - execute command after averageValue: 'set DBRep_avgtim_total_power averageValue writeToDBSingleStart'
2023.03.15 03:30:02.004 3: DbRep DBRep_avgtim_total_power - number of lines updated in >DBLogging<: 0
2023.03.15 03:30:02.006 3: DbRep DBRep_avgtim_total_power - number of lines inserted into >DBLogging<: 24
2023.03.15 03:30:02.058 3: DbRep DBRep_avgtim_total_power - execute command after averageValue: 'set DBRep_avgtim_unit changeValue old="%" new={"($VALUE,$UNIT) = ($VALUE,"W")"}'
2023.03.15 03:30:02.388 3: DbRep DBRep_avgtim_unit - execute command after changeval: 'msg push -1 [DBRep_avgtim_total_power:state] taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:total_power MT691_power'
2023.03.15 03:30:02.446 3: msg globalMsg: ID=1678847402.39299.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='done taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:total_power MT691_power'
2023.03.15 03:30:02.468 3: DbRep DBRep_avgtim_unit - VALUE changed in "fhem" - old: "%", new: "($VALUE,$UNIT) = ($VALUE,"W")", number: 46
2023.03.09 03:30:00.583 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 15
2023.03.09 03:30:01.215 3: DbRep DBRep_avgtim_power - number of lines inserted into >DBLogging<: 9
2023.03.09 03:30:01.997 3: DbRep DBRep_avgtim_total_power - number of lines inserted into >DBLogging<: 24
(Beitrag #1926)
2023.03.15 03:30:00.574 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 10
2023.03.15 03:30:01.142 3: DbRep DBRep_avgtim_power - number of lines inserted into >DBLogging<: 12
2023.03.15 03:30:02.006 3: DbRep DBRep_avgtim_total_power - number of lines inserted into >DBLogging<: 24
(Beitrag #1937)Zitat von: alkazaa am 15 März 2023, 16:37:57
...
Also wurde jedesmal für die readings MT691_power, power und total_power etwas in die Datenbank zurückgeschrieben. Aber nur beim letzten reading (total_power) waren es 24 Werte, wie man beim stundenweise Mitteln erwarten würde. Irgendwas hat die beiden ersten Läufe also abgewürgt.
...
Zeile 3657 if ($bin_end) {
wird zu Zeile 3657 if ($bin_end && $val1) {
Zeile 3694 $dt = timelocal($secf, $minf, $hhf, $ddf, $mmf-1, $yyyyf-1900) - $to;
Zeile 3695
wird zu Zeile 3694 $dt = timelocal($secf, $minf, $hhf, $ddf, $mmf-1, $yyyyf-1900);
Zeile 3695 $dt -= $to if ($to);
Zitat
Ok verstanden. Versuch macht kluch... klappt als Attribut. Du hattest den Text des Logfiles verwendet :D
Habe es gerade mal durchlaufen lassen. Alle calculated Werte wieder neu erzeugt (hatte die vorher aus der DB gelöscht).
2023.03.15 14:55:14.286 3: msg globalMsg: ID=1678888514.24051.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='Start Mittelwerte in DB schreiben'
2023.03.15 14:55:14.619 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.15 14:55:14.621 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem ("msg push -1 Start Mittelwerte in DB schreiben") ; fhem ("set DBRep_avgtim_MT691_power averageValue writeToDBSingleStart") }
2023.03.15 14:55:14.627 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.15 14:55:14.628 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem ("msg push -1 Start Mittelwerte in DB schreiben") ; fhem ("set DBRep_avgtim_MT691_power averageValue writeToDBSingleStart") }
2023.03.15 14:55:14.908 3: DbRep DBRep_avgtim_MT691_power - number of lines updated in >DBLogging<: 0
2023.03.15 14:55:14.910 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 10
==> mit delay aufgerufen
2023.03.15 14:55:15.085 3: DbRep DBRep_avgtim_MT691_power - execute command after averageValue: 'define chain_delay at +00:01:00 set DBRep_avgtim_power averageValue writeToDBSingleStart'
2023.03.15 14:56:15.256 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.15 14:56:15.264 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.15 14:56:15.629 3: DbRep DBRep_avgtim_power - number of lines updated in >DBLogging<: 0
2023.03.15 14:56:15.631 3: DbRep DBRep_avgtim_power - number of lines inserted into >DBLogging<: 12
2023.03.15 14:56:15.682 3: DbRep DBRep_avgtim_power - execute command after averageValue: 'set DBRep_avgtim_total_power averageValue writeToDBSingleStart'
==> hier die Warteminute
2023.03.15 14:56:16.466 3: DbRep DBRep_avgtim_total_power - number of lines updated in >DBLogging<: 0
2023.03.15 14:56:16.468 3: DbRep DBRep_avgtim_total_power - number of lines inserted into >DBLogging<: 24
.... rest schenk ich mir
2023.03.16 03:30:00.070 3: msg globalMsg: ID=1678933800.00793.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='Start Mittelwerte in DB schreiben'
2023.03.16 03:30:00.252 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.16 03:30:00.254 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem ("msg push -1 Start Mittelwerte in DB schreiben") ; fhem ("set DBRep_avgtim_MT691_power averageValue writeToDBSingleStart") }
2023.03.16 03:30:00.261 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.16 03:30:00.262 3: eval: my $SELF= $evalSpecials->{'%SELF'};{ fhem ("msg push -1 Start Mittelwerte in DB schreiben") ; fhem ("set DBRep_avgtim_MT691_power averageValue writeToDBSingleStart") }
2023.03.16 03:30:00.539 3: DbRep DBRep_avgtim_MT691_power - number of lines updated in >DBLogging<: 0
2023.03.16 03:30:00.539 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 7
2023.03.16 03:30:00.582 3: DbRep DBRep_avgtim_MT691_power - execute command after averageValue: 'define chain_delay at +00:01:00 set DBRep_avgtim_power averageValue writeToDBSingleStart'
2023.03.16 03:31:00.724 1: PERL WARNING: Use of uninitialized value $to in subtraction (-) at ./FHEM/93_DbRep.pm line 3694.
2023.03.16 03:31:00.731 1: PERL WARNING: Use of uninitialized value $val1 in concatenation (.) or string at ./FHEM/93_DbRep.pm line 3658.
2023.03.16 03:31:01.144 3: DbRep DBRep_avgtim_power - number of lines updated in >DBLogging<: 0
.... rest schenk ich mir
2023.03.16 13:22:25.550 3: msg globalMsg: ID=1678969345.50395.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='Start Mittelwerte in DB schreiben'
2023.03.16 13:22:26.164 3: DbRep DBRep_avgtim_MT691_power - number of lines updated in >DBLogging<: 0
2023.03.16 13:22:26.167 3: DbRep DBRep_avgtim_MT691_power - number of lines inserted into >DBLogging<: 7
2023.03.16 13:22:26.357 3: DbRep DBRep_avgtim_MT691_power - execute command after averageValue: 'define chain_delay at +00:01:00 set DBRep_avgtim_power averageValue writeToDBSingleStart'
2023.03.16 13:23:26.905 3: DbRep DBRep_avgtim_power - number of lines updated in >DBLogging<: 0
2023.03.16 13:23:26.907 3: DbRep DBRep_avgtim_power - number of lines inserted into >DBLogging<: 15
2023.03.16 13:23:26.961 3: DbRep DBRep_avgtim_power - execute command after averageValue: 'set DBRep_avgtim_total_power averageValue writeToDBSingleStart'
2023.03.16 13:23:27.727 3: DbRep DBRep_avgtim_total_power - number of lines updated in >DBLogging<: 0
2023.03.16 13:23:27.729 3: DbRep DBRep_avgtim_total_power - number of lines inserted into >DBLogging<: 24
2023.03.16 13:23:27.786 3: DbRep DBRep_avgtim_total_power - execute command after averageValue: 'set DBRep_avgtim_unit changeValue old="%" new={"($VALUE,$UNIT) = ($VALUE,"W")"}'
2023.03.16 13:23:28.120 3: DbRep DBRep_avgtim_unit - execute command after changeval: 'msg push -1 [DBRep_avgtim_total_power:state] taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:total_power MT691_power'
2023.03.16 13:23:28.177 3: msg globalMsg: ID=1678969408.12622.1 TYPE=push ROUTE=teleBot STATUS=OK PRIORITY=-1(Low) TITLE='' MSG='done taegliche Chain abgearbeitet fuer Mittelwerte Plug:power 3EM:total_power MT691_power'
2023.03.16 13:23:28.197 3: DbRep DBRep_avgtim_unit - VALUE changed in "fhem" - old: "%", new: "($VALUE,$UNIT) = ($VALUE,"W")", number: 46
2023-03-02_17-50-27__Qcells__SolarEngeryTotal__DIFF__2023-03-02
58.2000
2023-04-02 14:06:02
2023-03-03_17-47-58__Qcells__SolarEngeryTotal__DIFF__2023-03-03
45.1000
2023-04-02 14:06:02
2023-03-04_17-29-16__Qcells__SolarEngeryTotal__DIFF__2023-03-04
10.1000
2023-04-02 14:06:02
ZitatHier steht aber der Zeitpunkt an dem die Berechnung ausgeführt wurde, nicht der Tag für den die Werte sind.Der Timestamp sollte allerdings der Zeitstempel des Datensatzes sein.
defmod Rep.Pv.lm.daily DbRep myDbLog
attr Rep.Pv.lm.daily aggregation day
attr Rep.Pv.lm.daily device Qcells
attr Rep.Pv.lm.daily event-on-change-reading .*
attr Rep.Pv.lm.daily fastStart 1
attr Rep.Pv.lm.daily reading SolarEngeryTotal
attr Rep.Pv.lm.daily readingNameMap Daily_Production
attr Rep.Pv.lm.daily room PV->Reporting
attr Rep.Pv.lm.daily showproctime 1
attr Rep.Pv.lm.daily timestamp_begin previous_month_begin
attr Rep.Pv.lm.daily timestamp_end previous_month_end
define Rep.Pv.lm.hour DbRep LogDBHome
attr Rep.Pv.lm.hour aggregation no
attr Rep.Pv.lm.hour alias PV letzte Stunde
attr Rep.Pv.lm.hour comment https://forum.fhem.de/index.php?msg=1270728
attr Rep.Pv.lm.hour device FRW_Einspeisung
attr Rep.Pv.lm.hour event-on-change-reading .*
attr Rep.Pv.lm.hour fastStart 1
attr Rep.Pv.lm.hour reading switch_aenergy_total
attr Rep.Pv.lm.hour readingNameMap Daily_Production
attr Rep.Pv.lm.hour room Strom,Strom Einspeisung
attr Rep.Pv.lm.hour showproctime 1
attr Rep.Pv.lm.hour timestamp_begin previous_hour_begin
attr Rep.Pv.lm.hour timestamp_end previous_hour_end
# DATABASE fhem
# DEF LogDBHome
# FUUID 642a60c7-f33f-bd9c-c200-48a40829fd3d4947
# FVERSION 93_DbRep.pm:v8.52.1-s27340/2023-03-19
# LASTCMD initial database connect stopped due to attribute 'fastStart'
# MODEL Client
# NAME Rep.Pv.lm.hour
# NOTIFYDEV global,Rep.Pv.lm.hour
# NR 499
# NTFY_ORDER 50-Rep.Pv.lm.hour
# ROLE Client
# STATE initialized
# TYPE DbRep
# UTF8 1
# HELPER:
# DBLOGDEVICE LogDBHome
# IDRETRIES 3
# PACKAGE main
# VERSION 8.52.1
# READINGS:
# 2023-04-03 07:58:34 state initialized
#
setstate Rep.Pv.lm.hour initialized
setstate Rep.Pv.lm.hour 2023-04-03 07:58:34 .associatedWith FRW_Einspeisung
setstate Rep.Pv.lm.hour 2023-04-03 07:58:34 state initialized
Bin ich total falsch, ich finde keine Ergebisse. Wo schreibt dbrep die neu erzeugten Readings hin?
Zitat2023.04.03 09:46:59.910 4: DbRep Rep.CPU - UPDATE history: 2023-03-15 23:54:22|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|8.1357|, RESULT: 1
2023.04.03 09:46:59.913 4: DbRep Rep.CPU - UPDATE history: 2023-03-16 23:48:46|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|24.2794|, RESULT: 1
2023.04.03 09:46:59.915 4: DbRep Rep.CPU - UPDATE history: 2023-03-17 23:56:04|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|9.7738|, RESULT: 1
2023.04.03 09:46:59.917 4: DbRep Rep.CPU - UPDATE history: 2023-03-18 23:49:48|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|9.3645|, RESULT: 1
2023.04.03 09:46:59.932 4: DbRep Rep.CPU - UPDATE history: 2023-03-19 23:08:32|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|0.5659|, RESULT: 1
2023.04.03 09:46:59.935 4: DbRep Rep.CPU - UPDATE history: 2023-03-20 19:47:01|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|0.0331|, RESULT: 1
2023.04.03 09:46:59.938 4: DbRep Rep.CPU - UPDATE history: 2023-03-21 23:24:33|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|4.8647|, RESULT: 1
2023.04.03 09:46:59.940 4: DbRep Rep.CPU - UPDATE history: 2023-03-22 23:52:13|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|9.8353|, RESULT: 1
2023.04.03 09:46:59.943 4: DbRep Rep.CPU - UPDATE history: 2023-03-23 19:52:52|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|0.1750|, RESULT: 1
2023.04.03 09:46:59.945 4: DbRep Rep.CPU - UPDATE history: 2023-03-24 23:58:47|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|1.0459|, RESULT: 1
2023.04.03 09:46:59.948 4: DbRep Rep.CPU - UPDATE history: 2023-03-25 22:17:31|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|3.2759|, RESULT: 1
2023.04.03 09:46:59.950 4: DbRep Rep.CPU - UPDATE history: 2023-03-26 23:59:44|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|0.7821|, RESULT: 1
2023.04.03 09:46:59.953 4: DbRep Rep.CPU - UPDATE history: 2023-03-27 23:53:45|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|9.5597|, RESULT: 1
2023.04.03 09:46:59.955 4: DbRep Rep.CPU - UPDATE history: 2023-03-28 23:36:28|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|5.8637|, RESULT: 1
2023.04.03 09:46:59.958 4: DbRep Rep.CPU - UPDATE history: 2023-03-29 23:52:56|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|0.9543|, RESULT: 1
2023.04.03 09:46:59.960 4: DbRep Rep.CPU - UPDATE history: 2023-03-30 23:42:17|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|1.3963|, RESULT: 1
2023.04.03 09:46:59.962 4: DbRep Rep.CPU - UPDATE history: 2023-03-31 23:35:46|SMA_Energymeter|SMAEM||diff_day_Einspeisung_Wirkleistung_Zaehler|0.2493|, RESULT: 1
Zitat von: DS_Starter am 03 April 2023, 09:58:28set ... <Kommando> writeToDB
Zitatwelches Kommando genau? Und nur einmal?
Zitat von: DS_Starter am 03 April 2023, 10:05:19@Tomk,
ich habe dein Setup bei mir nachgestellt.
Wie schon geschrieben werden Diffs des Monats mit den Werte-Timestamp in die DB geschrieben:
...
Das resultierende SVG habe ich testweise erstellt wie im Anhang.
Hole dir bitte die DbRep Version aus meinem contrib.
Die Version ist noch nicht eingecheckt. Ich hatte wie weiter vorn schon geschrieben die Funktionalität von diffValue erweitert. Möglicherweise habe ich "nebenbei" mit der V einen Bug gefixt (glaube ich allerdings nicht ;) )
LG
event-on-update-reading state
Device: SMA_Energymeter , neues Reading: diff_day_Einspeisung_Wirkleistung_Zaehler
Zitat von: DS_Starter am 03 April 2023, 22:07:35Zunächst setzt duCode Auswählenevent-on-update-reading state
Das reicht, die Readings von DbRep muss man üblicherweise nicht loggen oder daraus Events erzeugen, es sei denn man macht es bewusst für die weitere Verarbeitung.
Dann führst du diffValue mit der Option writeToDB aus.
Es entstehen neue Readings in der Datenbank des ausgewerteten Devices, wie in meinem Beispiel:Code AuswählenDevice: SMA_Energymeter , neues Reading: diff_day_Einspeisung_Wirkleistung_Zaehler
Diese Readings holst du dir in dein SVG-Device und kannst sie anzeigen.
ZitatDanke für den Hinweis. Dann kann ich gleich morgen einen Fix erstellen.
Bei "nur Anzeige" funktioniert es wie beabsichtigt.
2023.04.05 14:25:23 1: Including ./log/fhem.save
2023.04.05 14:25:25 2: netatmo: missing app refresh token!
2023.04.05 14:25:25 0: Featurelevel: 6.2
2023.04.05 14:25:25 0: Server started with 259 defined entities (fhem.pl:27302/2023-03-05 perl:5.032001 os:linux user:fhem pid:1455389)
2023.04.05 14:26:02 2: DbLog myDbLog - WARNING - "countNbl" is outdated. Please consider use of DbRep "set <Name> countEntries" instead.
2023.04.05 14:26:18 2: AttrTemplates: got 259 entries
2023.04.05 14:26:18 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2023.04.05 14:27:19 1: DbRep Rep.SB25.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10.4850000000006|2023-04-05_14:26:50';
2023.04.05 14:27:19 1: DbRep Rep.SMAEM.Einspeisung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.08279999999991|2023-04-05_14:26:49';
2023.04.05 14:27:20 1: DbRep Rep.SMAEM.Bezug.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|0.0515999999997803|2023-04-05_13:48:51';
2023.04.05 14:27:20 1: DbRep Rep.SBS25.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|1.73600000000005|2023-04-05_13:49:07';
2023.04.05 14:27:21 1: DbRep Rep.SBS25_2.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.27099999999973|2023-04-05_09:23:18';
2023.04.05 14:27:21 1: DbRep Rep.SBS25.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|8.54100000000017|2023-04-05_14:01:47';
2023.04.05 14:27:21 1: DbRep Rep.SBS25_2.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|5.36299999999983|2023-04-05_13:03:30';
2023.04.05 14:27:22 1: DbRep Rep.SB30.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|3.16100000000006|2023-04-05_14:26:50';
2023.04.05 14:27:22 1: DbRep Rep.SB40.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|6.98599999999999|2023-04-05_14:26:50';
2023.04.05 14:27:22 1: DbRep Rep.FCU.Erzeugung.heute - rh:
2023.04.05 14:29:19 1: DbRep Rep.SB25.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10.5|2023-04-05_14:28:51';
2023.04.05 14:29:19 1: DbRep Rep.SMAEM.Einspeisung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.17529999999988|2023-04-05_14:28:51';
2023.04.05 14:29:19 1: DbRep Rep.SMAEM.Bezug.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|0.0515999999997803|2023-04-05_13:48:51';
2023.04.05 14:29:20 1: DbRep Rep.SBS25.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|1.73600000000005|2023-04-05_13:49:07';
2023.04.05 14:29:20 1: DbRep Rep.SBS25_2.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.27099999999973|2023-04-05_09:23:18';
2023.04.05 14:29:20 1: DbRep Rep.SBS25.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|8.54100000000017|2023-04-05_14:01:47';
2023.04.05 14:29:20 1: DbRep Rep.SBS25_2.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|5.36299999999983|2023-04-05_13:03:30';
2023.04.05 14:29:20 1: DbRep Rep.SB30.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|3.20500000000038|2023-04-05_14:28:52';
2023.04.05 14:29:21 1: DbRep Rep.SB40.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|7.04500000000007|2023-04-05_14:28:52';
2023.04.05 14:29:21 1: DbRep Rep.FCU.Erzeugung.heute - rh:
2023.04.05 14:29:42 1: DbRep Rep.SB25.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10.5030000000006|2023-04-05_14:29:22';
2023.04.05 14:29:43 1: DbRep Rep.SMAEM.Einspeisung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.19859999999994|2023-04-05_14:29:21';
2023.04.05 14:29:43 1: DbRep Rep.SMAEM.Bezug.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|0.0515999999997803|2023-04-05_13:48:51';
2023.04.05 14:29:43 1: DbRep Rep.SBS25.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|1.73600000000005|2023-04-05_13:49:07';
2023.04.05 14:29:43 1: DbRep Rep.SBS25_2.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.27099999999973|2023-04-05_09:23:18';
2023.04.05 14:29:44 1: DbRep Rep.SBS25.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|8.54100000000017|2023-04-05_14:01:47';
2023.04.05 14:29:44 1: DbRep Rep.SBS25_2.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|5.36299999999983|2023-04-05_13:03:30';
2023.04.05 14:29:44 1: DbRep Rep.SB30.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|3.2170000000001|2023-04-05_14:29:22';
2023.04.05 14:29:44 1: DbRep Rep.SB40.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|7.06000000000006|2023-04-05_14:29:22';
2023.04.05 14:29:44 1: DbRep Rep.FCU.Erzeugung.heute - rh:
2023.04.05 14:30:26 1: DbRep Rep.SB25.Erzeugung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|318.116999999998|2023-04-05_14:29:52';
2023.04.05 14:30:27 1: DbRep Rep.SB25.Erzeugung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10470.471|2023-04-05_14:29:52';
2023.04.05 14:30:48 1: DbRep Rep.SMAEM.Einspeisung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|182.1125|2023-04-05_14:29:52';
2023.04.05 14:30:55 1: DbRep Rep.SMAEM.Einspeisung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|6881.72790001501|2023-04-05_14:30:22';
2023.04.05 14:31:11 1: DbRep Rep.SMAEM.Bezug.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|102.8576|2023-04-05_13:48:51';
2023.04.05 14:31:17 1: DbRep Rep.SBS25.Ladung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|306.058999999999|2023-04-05_13:49:07';
2023.04.05 14:31:18 1: DbRep Rep.SMAEM.Bezug.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10568.2338999784|2023-04-05_13:48:51';
2023.04.05 14:31:19 1: DbRep Rep.SB25.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10.5159999999996|2023-04-05_14:30:53';
2023.04.05 14:31:19 1: DbRep Rep.SMAEM.Einspeisung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.26829999999995|2023-04-05_14:30:52';
2023.04.05 14:31:20 1: DbRep Rep.SMAEM.Bezug.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|0.0515999999997803|2023-04-05_13:48:51';
2023.04.05 14:31:20 1: DbRep Rep.SBS25.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|1.73600000000005|2023-04-05_13:49:07';
2023.04.05 14:31:20 1: DbRep Rep.SBS25_2.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.27099999999973|2023-04-05_09:23:18';
2023.04.05 14:31:20 1: DbRep Rep.SBS25.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|8.54100000000017|2023-04-05_14:01:47';
2023.04.05 14:31:21 1: DbRep Rep.SBS25_2.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|5.36299999999983|2023-04-05_13:03:30';
2023.04.05 14:31:21 1: DbRep Rep.SB30.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|3.25|2023-04-05_14:30:53';
2023.04.05 14:31:21 1: DbRep Rep.SB40.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|7.10500000000002|2023-04-05_14:30:53';
2023.04.05 14:31:21 1: DbRep Rep.FCU.Erzeugung.heute - rh:
2023.04.05 14:31:24 1: DbRep Rep.SBS25_2.Ladung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|318.758|2023-04-05_09:23:18';
2023.04.05 14:31:26 1: DbRep Rep.SBS25.Ladung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4274.5320000085|2023-04-05_13:49:07';
2023.04.05 14:31:32 1: DbRep Rep.SBS25_2.Ladung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|2222.594|2023-04-05_09:23:18';
2023.04.05 14:31:34 1: DbRep Rep.SBS25.Entladung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|443.462|2023-04-05_14:01:47';
2023.04.05 14:31:43 1: DbRep Rep.SBS25.Entladung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|6017.462|2023-04-05_14:01:47';
2023.04.05 14:31:45 1: DbRep Rep.SBS25_2.Entladung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|467.712|2023-04-05_13:03:30';
2023.04.05 14:31:52 1: DbRep Rep.SB30.Erzeugung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|238.442|2023-04-05_14:31:24';
2023.04.05 14:31:55 1: DbRep Rep.SBS25_2.Entladung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|3199.752|2023-04-05_13:03:30';
2023.04.05 14:31:59 1: DbRep Rep.SB40.Erzeugung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|450.263|2023-04-05_14:31:24';
2023.04.05 14:32:00 1: DbRep Rep.FCU.Erzeugung.Jahr - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|1090|2023-04-01_10:00:34';
2023.04.05 14:32:00 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/93_DbRep.pm line 4784.
2023.04.05 14:32:02 1: DbRep Rep.SB30.Erzeugung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|2730.938|2023-04-05_14:31:24';
2023.04.05 14:32:09 1: DbRep Rep.SB40.Erzeugung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|550.892|2023-04-05_14:31:54';
2023.04.05 14:32:10 1: DbRep Rep.FCU.Erzeugung.Gesamt - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|23663|2023-04-01_10:00:34';
2023.04.05 14:33:19 1: DbRep Rep.SB25.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|10.5320000000011|2023-04-05_14:32:54';
2023.04.05 14:33:19 1: DbRep Rep.SMAEM.Einspeisung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.36099999999988|2023-04-05_14:32:54';
2023.04.05 14:33:20 1: DbRep Rep.SMAEM.Bezug.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|0.0515999999997803|2023-04-05_13:48:51';
2023.04.05 14:33:20 1: DbRep Rep.SBS25.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|1.73600000000005|2023-04-05_13:49:07';
2023.04.05 14:33:20 1: DbRep Rep.SBS25_2.Ladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|4.27099999999973|2023-04-05_09:23:18';
2023.04.05 14:33:20 1: DbRep Rep.SBS25.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|8.54100000000017|2023-04-05_14:01:47';
2023.04.05 14:33:20 1: DbRep Rep.SBS25_2.Entladung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|5.36299999999983|2023-04-05_13:03:30';
2023.04.05 14:33:21 1: DbRep Rep.SB30.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|3.29200000000037|2023-04-05_14:32:55';
2023.04.05 14:33:21 1: DbRep Rep.SB40.Erzeugung.heute - rh: $VAR1 = 'no_aggregation';
$VAR2 = 'no_aggregation|7.16800000000001|2023-04-05_14:32:55';
2023.04.05 14:33:21 1: DbRep Rep.FCU.Erzeugung.heute - rh:
etc. usw
defmod CalcDailyPvProd at *04:00:00 set Rep.Pv.lm.daily diffValue wirteToDB
Internals:
DATABASE fhem
DEF myDbLog
FUUID 621a8eb7-f33f-1da7-ce39-7d94f330866ad63d
FVERSION 93_DbRep.pm:v8.52.3-s27396/2023-04-05
LASTCMD diffValue writeToDB
MODEL Client
NAME Rep.FCU.Erzeugung.heute
NOTIFYDEV global,Rep.FCU.Erzeugung.heute
NR 316
NTFY_ORDER 50-Rep.FCU.Erzeugung.heute
ROLE Client
STATE done
TYPE DbRep
UTF8 1
eventCount 358
HELPER:
DBLOGDEVICE myDbLog
GRANTS ALL PRIVILEGES
IDRETRIES 2
MINTS 1996-03-08 17:23:29
PACKAGE main
VERSION 8.52.3
CV:
aggregation no
aggsec 1
destr 2023-04-10
dsstr 2023-04-10
epoch_seconds_end 1681163999
mestr 04
msstr 04
testr 23:59:59
tsstr 00:00:00
wdadd 604800
yestr 2023
ysstr 2023
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
Helper:
DBLOG:
state:
myDbLog:
TIME 1681137712.95432
VALUE done
OLDREADINGS:
READINGS:
2023-04-10 16:41:52 background_processing_time 0.0150
2023-04-10 16:41:52 db_lines_processed 0
2023-04-10 16:41:52 sql_processing_time 0.0025
2023-04-10 16:41:52 state done
Attributes:
aggregation no
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device FCU
diffAccept 20
disable 0
event-on-update-reading state
group Energy Meter Auswertung
reading FCU_Erzeugung_akt_Zaehlerstand
room Energie
showproctime 1
timeout 180
timestamp_begin current_day_begin
timestamp_end current_day_end
userExitFn setDumEnergy .*:.*
verbose 2
2023-04-07 19:42:17 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23679 FCU_Erzeugung_akt_Zaehlerstand 23679 NULL
2023-04-07 18:22:12 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23678 FCU_Erzeugung_akt_Zaehlerstand 23678 NULL
2023-04-07 17:02:14 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23677 FCU_Erzeugung_akt_Zaehlerstand 23677 NULL
2023-04-07 15:47:13 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23676 FCU_Erzeugung_akt_Zaehlerstand 23676 NULL
2023-04-07 14:27:15 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23675 FCU_Erzeugung_akt_Zaehlerstand 23675 NULL
2023-04-07 13:12:13 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23674 FCU_Erzeugung_akt_Zaehlerstand 23674 NULL
2023-04-07 11:52:14 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23673 FCU_Erzeugung_akt_Zaehlerstand 23673 NULL
2023-04-07 10:37:10 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23672 FCU_Erzeugung_akt_Zaehlerstand 23672 NULL
2023-04-07 07:14:41 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23671 FCU_Erzeugung_akt_Zaehlerstand 23671 NULL
2023-04-07 05:54:38 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23670 FCU_Erzeugung_akt_Zaehlerstand 23670 NULL
2023-04-07 04:34:39 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23669 FCU_Erzeugung_akt_Zaehlerstand 23669 NULL
2023-04-07 03:19:38 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23668 FCU_Erzeugung_akt_Zaehlerstand 23668 NULL
2023-04-07 01:59:41 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23667 FCU_Erzeugung_akt_Zaehlerstand 23667 NULL
2023-04-07 00:44:40 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23666 FCU_Erzeugung_akt_Zaehlerstand 23666 NULL
2023-04-06 23:24:39 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23665 FCU_Erzeugung_akt_Zaehlerstand 23665 NULL
2023-04-01 10:00:34 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23664 FCU_Erzeugung_akt_Zaehlerstand 23664 NULL
2023-04-01 08:44:44 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23663 FCU_Erzeugung_akt_Zaehlerstand 23663 NULL
2023-04-01 07:24:44 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23662 FCU_Erzeugung_akt_Zaehlerstand 23662 NULL
2023-04-01 06:09:43 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23661 FCU_Erzeugung_akt_Zaehlerstand 23661 NULL
2023-04-01 04:54:46 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23660 FCU_Erzeugung_akt_Zaehlerstand 23660 NULL
2023-04-01 03:34:43 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23659 FCU_Erzeugung_akt_Zaehlerstand 23659 NULL
2023-04-01 02:14:46 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23658 FCU_Erzeugung_akt_Zaehlerstand 23658 NULL
2023-04-01 00:59:42 FCU VCONTROL300 FCU_Erzeugung_akt_Zaehlerstand: 23657 FCU_Erzeugung_akt_Zaehlerstand 23657 NULL
2023-04-10__FCU__FCU_Erzeugung_akt_Zaehlerstand__DIFF__no_aggregation - 2023-04-10 18:45:30
Zitat von: DS_Starter am 10 April 2023, 18:16:08Ja das stimmt. Man bekommt nichts zurück wenn in dem betreffenden Auswertungszeitraum keine (auswertbaren) Werte vorhanden sind.
Darauf kann man wahrscheinlich in der Funktion setDumEnergy reagieren.
Wie sieht die bei dir aus ?
if ($name =~ m/Rep.*heute/) {
# Werte aktueller Tag
if ($reading =~ m/SB25__etotal__DIFF/) {
# Erzeugung aktueller Tag
CommandSetReading(undef, "Dum.Energy PVDay ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report Einspeisung aktueller Tag
CommandSet(undef,"Rep.SMAEM.Einspeisung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 1 Dum.Energy heute = $value";
}
if ($reading =~ m/SMA_Energymeter__Einspeisung_Wirkleistung_Zaehler__DIFF/) {
# Einspeisung aktueller Tag
CommandSetReading(undef, "Dum.Energy GridFeedInDay ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report Bezug aktueller Tag
CommandSet(undef,"Rep.SMAEM.Bezug.heute diffValue writeToDB");
Log3 $name, 1, "$name - 2 Dum.Energy heute = $value";
}
if ($reading =~ m/SMA_Energymeter__Bezug_Wirkleistung_Zaehler__DIFF/) {
# Bezug aktueller Tag
CommandSetReading(undef, "Dum.Energy GridConsumptionDay ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report Ladung aktueller Tag
CommandSet(undef,"Rep.SBS25.Ladung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 3 Dum.Energy heute = $value";
}
if ($reading =~ m/SBS25__etotal__DIFF/) {
# Ladung aktueller Tag
CommandSetReading(undef, "Dum.Energy BattLoadInDay ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report SBS25_2Entladung aus Batterie Tag
CommandSet(undef,"Rep.SBS25_2.Ladung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 4 Dum.Energy heute = $value";
}
if ($reading =~ m/SBS25_2__etotal__DIFF/) {
# Ladung aktueller Tag
CommandSetReading(undef, "Dum.Energy BattLoadInDay_2 ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report SBS25Entladung aus Batterie Tag
CommandSet(undef,"Rep.SBS25.Entladung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 5 Dum.Energy heute = $value";
}
if ($reading =~ m/SBS25__bat_loadtotal__DIFF/) {
# Entladung aktuelles Tag
CommandSetReading(undef, "Dum.Energy BattLoadOutDay ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report SBS25_2Entladung aus Batterie Tag
CommandSet(undef,"Rep.SBS25_2.Entladung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 6 Dum.Energy heute = $value";
}
if ($reading =~ m/SBS25_2__bat_loadtotal__DIFF/) {
# Entladung aktuelles Tag
CommandSetReading(undef, "Dum.Energy BattLoadOutDay_2 ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report FCUErzeugung heute
CommandSet(undef,"Rep.SB30.Erzeugung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 7 Dum.Energy heute = $value";
}
if ($reading =~ m/SB30__etotal__DIFF/) {
# Erzeugung aktueller Tag
CommandSetReading(undef, "Dum.Energy PVDay_2 ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report Einspeisung aktueller Tag
CommandSet(undef,"Rep.SB40.Erzeugung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 8 Dum.Energy heute = $value";
}
if ($reading =~ m/SB40__etotal__DIFF/) {
# Erzeugung aktueller Tag
CommandSetReading(undef, "Dum.Energy PVDay_40 ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# starten Report Einspeisung aktueller Tag
CommandSet(undef,"Rep.FCU.Erzeugung.heute diffValue writeToDB");
Log3 $name, 1, "$name - 9 Dum.Energy heute = $value";
}
if ($reading =~ m/FCU_Erzeugung_akt_Zaehlerstand__DIFF/) {
# Erzeugung FCU aktueller Tag
Log3 $name, 1, "$name - 10 Dum.Energy FCUDay = $value";
CommandSetReading(undef, "Dum.Energy FCUDay ".(looks_like_number($value)?sprintf('%.1f',$value):0.0));
# Eigenverbrauchsquote aktueller Tag / Vortag
my $pvday = ReadingsVal("Dum.Energy", "PVDay", 0);
my $pvday_2 = ReadingsVal("Dum.Energy", "PVDay_2", 0);
my $pvday_40 = ReadingsVal("Dum.Energy", "PVDay_40", 0);
my $fcuday = ReadingsVal("Dum.Energy", "FCUDay", 0);
my $feedinday = ReadingsVal("Dum.Energy", "GridFeedInDay", 0);
my $sqday = ($fcuday + $pvday + $pvday_2 + $pvday_40 - $feedinday) / ($fcuday + $pvday + $pvday_2 + $pvday_40) * 100 if(($fcuday + $pvday + $pvday_2 + $pvday_40) > 0);
CommandSetReading(undef, "Dum.Energy SelfConsumptionQuoteDay ".sprintf('%.0f',$sqday)) if($sqday);
# Autarkiequote aktueller Tag / Vortag
my $consumday = ReadingsVal("Dum.Energy", "GridConsumptionDay", 0);
my $aqday = ($fcuday + $pvday + $pvday_2 + $pvday_40 - $feedinday) / ($fcuday + $pvday + $pvday_2 + $pvday_40 - $feedinday + $consumday) * 100 if(($fcuday + $pvday + $pvday_2 + $pvday_40 ) > 0);
CommandSetReading(undef, "Dum.Energy AutarkyQuoteDay ".sprintf('%.0f',$aqday)) if ($aqday);
# Verbrauch aktueller Tag / Vortag
my $tcday = $fcuday + $pvday + $pvday_2 + $pvday_40 - $feedinday + $consumday;
CommandSetReading(undef, "Dum.Energy TotalConsumptionDay ".sprintf('%.1f',$tcday)) if ($tcday);
}
}
2023-04-10__FCU__FCU_Erzeugung_akt_Zaehlerstand__DIFF__2023-04-10 - 2023-04-10 21:22:38
Zitat von: DS_Starter am 10 April 2023, 21:12:33@300P,
ich habe dir eine Version zum Test in mein contrib geladen.
Die V sollte sowohl die Vorteile des letzten Change von diffValue bewahren als auch dein Problem beheben.
Teste sie mal bitte. Auch mit writeToDB.
LG
Zitatbei mir ist nun das Problem, dass bei nur einem vorhandenem Wert (Zählerstand hat sich im Zeitraum nicht verändert) die Warnung "less_data..." im State steht. Da ich auf State "done" prüfe geht nichts mehr weiter.
if ($READING eq 'state' && $VALUE =~ /done|WARNING/xs) {
}
Zitat von: 300P am 16 April 2023, 10:07:12Hallo Christian83,
um welche Zeiträume ohne Werte geht es denn ?
Eventuell hilft dir da schon der Einsatz / Nutzung des Attributes "event-min-interval" im zugehörigen Zähler-Device
->>> z.B. "attr <Devicename> event-min-interval <Zählerstandname>:300" für spätestens 5 Minuten nach dem letzten Wert den aktuellen Wert wieder schreiben.
Aber der Zeitraum muss je nach deiner Auswertungshäufigkeit gewählt werden. Ansonsten kann es ja bis unendlich dauern ehe von dort ein neuer Wert kommt. ;)
Gruß
GW
Zitat von: DS_Starter am 16 April 2023, 10:17:30Hallo,
Das ist ein einigen Fällen bei mir nun auch so. Ich habe dafür die state-Prüfung erweitert, dann klappt es wieder wie es soll:Code Auswählenif ($READING eq 'state' && $VALUE =~ /done|WARNING/xs) {
}
WARNING - see readings 'less_data_in_period' or 'diff_overrun_limit_XX'
2023-04-24 06:13:18 2023-04-24_00-00-04__SMA_Wechselrichter__etoday__DIFF__no_aggregation 0.0000 2023-04-24 06:13:18 background_processing_time 0.0084 2023-04-24 06:13:18 less_data_in_period no_aggregation || 2023-04-24 06:13:18 sql_processing_time 0.0018 2023-04-24 06:13:18 state WARNING - see readings 'less_data_in_period' or 'diff_overrun_limit_XX' |
ZitatIm Auswertungs- bzw. Aggregationszeitraum (Tag, Woche, Monat, etc.) sollten dem Modul pro Periode mindestens ein
Datensatz zu Beginn und ein Datensatz gegen Ende des Aggregationszeitraumes zur Verfügung stehen um eine möglichst
genaue Auswertung der Differenzwerte vornehmen zu können. <br>
Wird in einer auszuwertenden Zeit- bzw. Aggregationsperiode nur ein Datensatz gefunden, kann die Differenz in
Verbindung mit dem Differenzübertrag der Vorperiode berechnet werden. in diesem Fall kann es zu einer logischen
Ungenauigkeit in der Zuordnung der Differenz zu der Aggregationsperiode kommen. In diesem Fall wird eine Warnung
im state ausgegeben und das Reading <b>less_data_in_period</b> mit einer Liste der betroffenen Perioden erzeugt.
Zitat von: DS_Starter am 24 April 2023, 10:27:53Morgen Dieter,
entweder die Auswertung in einen Zeitraum verschieben in dem genügend Daten zu erwarten sind oder die Warnung im state ignorieren.
Ist ja nur eine Warnung bzw. Information über den festgestellten Sachverhalt dass keine Daten zur Auswertung.
Auszug aus der Commandref:ZitatIm Auswertungs- bzw. Aggregationszeitraum (Tag, Woche, Monat, etc.) sollten dem Modul pro Periode mindestens ein
Datensatz zu Beginn und ein Datensatz gegen Ende des Aggregationszeitraumes zur Verfügung stehen um eine möglichst
genaue Auswertung der Differenzwerte vornehmen zu können. <br>
Wird in einer auszuwertenden Zeit- bzw. Aggregationsperiode nur ein Datensatz gefunden, kann die Differenz in
Verbindung mit dem Differenzübertrag der Vorperiode berechnet werden. in diesem Fall kann es zu einer logischen
Ungenauigkeit in der Zuordnung der Differenz zu der Aggregationsperiode kommen. In diesem Fall wird eine Warnung
im state ausgegeben und das Reading <b>less_data_in_period</b> mit einer Liste der betroffenen Perioden erzeugt.
LG,
Heiko
(set LogDBRep_Statistic_previous_Month sqlCmd SELECT * FROM (SELECT h.TIMESTAMP, CONCAT('WB_0_', h.READING) AS READING, h.VALUE FROM history h JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE DEVICE = 'WB_0' AND READING = 'Kia_eNiro_kWhCounter_Month' AND TIMESTAMP > DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND TIMESTAMP < DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') GROUP BY READING) x1 USING(TIMESTAMP,READING)) x UNION ALL SELECT h.TIMESTAMP, CONCAT('WB_0_', h.READING) AS READING, h.VALUE FROM history AS h JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE DEVICE = 'WB_0' AND READING = 'Gast_kWhCounter_Month' AND TIMESTAMP > DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND TIMESTAMP < DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') GROUP BY READING) x2 USING(TIMESTAMP,READING) UNION ALL SELECT h.TIMESTAMP, CONCAT('WB_1_', h.READING) AS READING, h.VALUE FROM history h JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE DEVICE = 'WB_1' AND READING LIKE 'lp_%_kWhCounter_Month' AND TIMESTAMP > DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND TIMESTAMP < DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') GROUP BY READING) x3 USING(TIMESTAMP,READING) UNION ALL SELECT max(TIMESTAMP) AS TIMESTAMP, 'EVU_Tibber_Pulse_nodes_consumption_Month' AS READING, cast(sum(VALUE) AS DECIMAL(10,0)) AS VALUE FROM history WHERE DEVICE='EVU_Tibber_Pulse' AND READING='nodes_consumption' AND TIMESTAMP > DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND TIMESTAMP < DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') ;)
SQL_Format Normal! 2023-04-28 12:06:00
errortext DBD::mysql::st execute failed: Unknown table 'h' in field list at ./FHEM/93_DbRep.pm line 11623. 2023-04-28 12:05:49
sqlCmd
SELECT * FROM (SELECT h.TIMESTAMP, CONCAT('WB_0_', h.READING) AS READING, h.VALUE FROM history h JOIN (SELECT max(TIMESTAMP) AS TIMESTAMP, READING FROM history WHERE DEVICE = 'WB_0' AND READING = 'Kia_eNiro_kWhCounter_Month' AND TIMESTAMP > DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND TIMESTAMP < DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') GROUP BY READING) x1 USING(TIMESTAMP,READING)) x UNION ALL SELECT h.TIMESTAMP;
2023-04-28 12:05:49
state error 2023-04-28 12:05:49
Zitat von: DS_Starter am 28 April 2023, 14:55:37Aber du könntest dir dein langes Statement in der sqlcmd History speichern (Attr sqlCmdHistoryLength).Okay, genau das hatte ich gesucht.
Wenn es dort gespeichert wurde, kannst du es immer wieder mit einem Index-Key neu ausführen lassen,
z.B.
set ... sqlCmd ckey:1
Das ist in der Hilfe zu sqlCmd beschrieben.
Vllt. hilft dir das ?
ZitatEdit: mit verbose 4 müsstest du das SQL-Kommando im Log sehen welches vom DOIF übergeben wird kurz bevor der Error im Log steht.Das schau ich mir dann auch noch an.
ZitatDie Zählung hat jedoch nicht bei ckey:1 begonnen, sondern bei einem Device bei 2 und bei einem anderen bei 5.Das ist normal.
Nach einem ___purge_sqlhistory___ und erneutem set ging es dann bei 1 los.
ZitatMit dem set <Device> sqlCmd aus dem Device heraus wurde nichts in der sqlCmdHistory gespeichert.Kann ich nicht glauben. ;)
Zitat von: DS_Starter am 28 April 2023, 22:43:55Ich hatte damit gerechnet, wenn das Attribut neu definiert wird, dass es auch bei 0 oder 1 mit der Zählung beginnt.ZitatDie Zählung hat jedoch nicht bei ckey:1 begonnen, sondern bei einem Device bei 2 und bei einem anderen bei 5.Das ist normal.
Nach einem ___purge_sqlhistory___ und erneutem set ging es dann bei 1 los.
ZitatIch schau mir das beim nächsten DbRep nochmal genauer an, jetzt bin ich erstmal froh, dass es läuft und das rufende Device nicht mehr seitenweise MySQL beinhaltet.ZitatMit dem set <Device> sqlCmd aus dem Device heraus wurde nichts in der sqlCmdHistory gespeichert.Kann ich nicht glauben. ;)
Funktioniert bei mir tadellos.
2023.06.25 00:35:41.220 1: PERL WARNING: Bareword found where operator expected at (eval 256) line 1, near ""%" new"
2023.06.25 00:35:41.221 1: PERL WARNING: (Missing operator before new?)
2023.06.25 00:35:41.223 1: PERL WARNING: String found where operator expected at (eval 256) line 1, near "W")""
2023.06.25 00:35:41.223 3: syntax error at (eval 256) line 1, near ""%" new"
2023.06.25 00:35:41.898 1: Including ./log/fhem.save
2023.06.25 00:35:43.077 1: Messages collected while initializing FHEM:configfile: syntax error at (eval 256) line 1, near ""%" new"
Zitat von: DS_Starter am 28 Juni 2023, 18:42:07...War mir nicht klar (kann ich mir hoffentlich merken ::) )
Das Löschen macht nicht das Modul. Das Attr konnte beim Restart wegen des "false positiv" durch FHEM nicht aktiviert werden und fiel so aus der cfg. Zumindest sofern man nach dem Restart "save" gedrückt hat, sonst nicht.
You can disable this message with attr global motd none
Autosave deactivated
2023.06.25 00:35:43.158 3: Opening UartRpi device /dev/ttyAMA0
Danke für den Hinweis. Konnte ich nicht einordnen.Zitat von: RalfRog am 28 Juni 2023, 19:01:16Werde nachher noch ein Restart durchführen - ist sauberer und heute Nacht sehen ob die chain durchläuft.
ZitatGibt es eine "einfache" Möglichkeit, aus den vorhandenen Werten jeweils den Tageshöchstwert zu ermitteln (alles andere kann ja gelöscht werden) und daraus dann wiederum neue Readings zu generieren die dann Summ7days Summ30days heißen könnten oder oder? Oder denke ich hier zu kompliziert und es gibt einen anderen Weg?Ich weiß nicht inwieweit du schon die richtigen Hinweise von Ralf verfolgt hast.
SELECT `TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `UNIT`, MAX(CAST(`VALUE` AS UNSIGNED)) AS 'VALUE'
FROM `history`
WHERE `DEVICE` = 'Flummy_DTU' AND `READING` = 'YieldDay'
GROUP BY date( `TIMESTAMP` )
ORDER BY `history`.`TIMESTAMP` DESC
als SQL Befehl hat es für die Vergangenheit gelöst. Die MaxWerte habe ich übernommen, alles andere gelöscht und somit passt es :) define Rep.impDbLog DbRep impDbLog
attr Rep.impDbLog DbLogExclude .*
attr Rep.impDbLog aggregation month
attr Rep.impDbLog devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.impDbLog dumpDirLocal ./log
attr Rep.impDbLog dumpFilesKeep 0
attr Rep.impDbLog event-on-update-reading state
attr Rep.impDbLog executeAfterProc set impDbLog reopen
attr Rep.impDbLog executeBeforeProc set impDbLog reopen 3600
attr Rep.impDbLog expimpfile /opt/fhem/expimpDbLog_%Y-%m-%d.csv
attr Rep.impDbLog optimizeTablesBeforeDump 1
attr Rep.impDbLog room DbLog
attr Rep.impDbLog showproctime 1
attr Rep.impDbLog verbose 3
# DATABASE /opt/fhem/important.db
# DEF impDbLog
# FUUID 5c4cce27-f33f-9f49-19f3-51254aae6d47c978
# FVERSION 93_DbRep.pm:v8.52.11-s27975/2023-09-17
# LASTCMD initial database connect stopped due to attribute 'fastStart'
# MODEL Client
# NAME Rep.impDbLog
# NOTIFYDEV global,Rep.impDbLog
# NR 383
# NTFY_ORDER 50-Rep.impDbLog
# ROLE Client
# STATE initialized
# TYPE DbRep
# UTF8 0
# HELPER:
# DBLOGDEVICE impDbLog
# IDRETRIES 3
# PACKAGE main
# VERSION 8.52.11
# READINGS:
# 2023-10-14 02:19:17 after_command_message Reopen executed.
# 2023-10-14 07:32:13 state initialized
#
setstate Rep.impDbLog initialized
setstate Rep.impDbLog 2023-10-14 02:19:17 after_command_message Reopen executed.
setstate Rep.impDbLog 2023-10-14 07:32:13 state initialized
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - get initial structure information of database "/opt/fhem/important.db", remaining attempts: 3
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Connectiontest to database SQLite:dbname=/opt/fhem/important.db with user
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Index Report_Idx exists. Check ok
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Initial data information retrieved - total time used: 0.0102 seconds
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Connectiontest to db SQLite:dbname=/opt/fhem/important.db successful
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - execute command before exportToFile: 'set impDbLog reopen 3600'
2023.10.14 02:13:07 2: impDbLog - Connection closed until 03:13:07 (3600 seconds).
2023.10.14 02:13:08 3: impDbLog - Database disconnected by request.
2023.10.14 02:19:09 1: Server shutdown delayed due to myDbLog,alexa for max 10 sec
2023.10.14 02:19:15 1: [Freezemon] freezemon: possible freeze starting at 02:17:28, delay is 107.342 possibly caused by: tmr-CODE(0x55fcfa6d2bb8)(ResponseTimeout) tmr-CODE(0x55fcfa62c3c8)(ProcessRequestQueue) tmr-HM485_LAN_KeepAlive(HM485_LAN) tmr-DOIF_SleepTrigger(Heizung_HK2_Solltemperatur)
2023.10.14 02:19:16 3: alexa: stopped
2023.10.14 02:19:17 1: DbRep Rep.impDbLog -> BlockingCall DbRep_expfile pid:DEAD:84022 Process died prematurely
2023.10.14 02:19:17 3: DbRep Rep.impDbLog - execute command after command: 'set impDbLog reopen'
2023.10.14 02:19:17 3: impDbLog - Reopen requested
2023.10.14 02:19:17 2: DbRep Rep.impDbLog - command message after command: >Reopen executed.<
2023.10.14 02:19:17 2: DbRep Rep.impDbLog - Database command aborted: "Process died prematurely"
2023.10.14 02:19:17 0: Server shutdown
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - get initial structure information of database "/opt/fhem/fhem.db", remaining attempts: 3
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Connectiontest to database SQLite:dbname=/opt/fhem/fhem.db with user
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Index Report_Idx exists. Check ok
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Initial data information retrieved - total time used: 0.0096 seconds
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - execute command before exportToFile: 'set myDbLog reopen 3600'
2023.10.14 07:32:02 2: impDbLog - Wait for last database cycle due to shutdown ...
2023.10.14 07:32:02 1: Server shutdown delayed due to alexa,impDbLog for max 10 sec
2023.10.14 07:32:03 2: impDbLog - Last database write cycle done
2023.10.14 07:32:03 1: DbRep Rep.myDbLog -> BlockingCall DbRep_expfile pid:DEAD:88816 Process died prematurely
2023.10.14 07:32:03 3: DbRep Rep.myDbLog - execute command after command: 'set myDbLog reopen'
2023.10.14 07:32:03 2: DbRep Rep.myDbLog - command message after command: >Reopen executed.<
2023.10.14 07:32:03 2: DbRep Rep.myDbLog - Database command aborted: "Process died prematurely"
2023.10.14 07:32:05 0: Server shutdown
Server shutdown delayed due ...
2023.10.14 07:32:02 2: impDbLog - Wait for last database cycle due to shutdown ...
2023.10.14 07:32:02 1: Server shutdown delayed due to alexa,impDbLog for max 10 sec
2023.10.14 07:32:03 2: impDbLog - Last database write cycle done
Zitat von: Jewe am 14 Oktober 2023, 10:36:37Moin,
habe versucht die SQLiteDB mit DBrep und exporttofile in eine csv datei zu exportieren. Diese möchte ich dann in Influx wieder einlesen. Die DB´s sind recht groß 14,2Mio Datensätze (5,2GB) und 5,2 Mio Datensätze (2,7GB).
DBRep startet und legt auch die CSV-Files an, dannstürzt Fhem abstartet neu. Die erstellte CSV-Dateien sind ca. 1,1 und 1,4GB groß.
Bin mir nicht sicher ob dieser Weg ein guter ist. Vmtl. geht das auch anders?Code Auswählendefine Rep.impDbLog DbRep impDbLog
attr Rep.impDbLog DbLogExclude .*
attr Rep.impDbLog aggregation month
attr Rep.impDbLog devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.impDbLog dumpDirLocal ./log
attr Rep.impDbLog dumpFilesKeep 0
attr Rep.impDbLog event-on-update-reading state
attr Rep.impDbLog executeAfterProc set impDbLog reopen
attr Rep.impDbLog executeBeforeProc set impDbLog reopen 3600
attr Rep.impDbLog expimpfile /opt/fhem/expimpDbLog_%Y-%m-%d.csv
attr Rep.impDbLog optimizeTablesBeforeDump 1
attr Rep.impDbLog room DbLog
attr Rep.impDbLog showproctime 1
attr Rep.impDbLog verbose 3
# DATABASE /opt/fhem/important.db
# DEF impDbLog
# FUUID 5c4cce27-f33f-9f49-19f3-51254aae6d47c978
# FVERSION 93_DbRep.pm:v8.52.11-s27975/2023-09-17
# LASTCMD initial database connect stopped due to attribute 'fastStart'
# MODEL Client
# NAME Rep.impDbLog
# NOTIFYDEV global,Rep.impDbLog
# NR 383
# NTFY_ORDER 50-Rep.impDbLog
# ROLE Client
# STATE initialized
# TYPE DbRep
# UTF8 0
# HELPER:
# DBLOGDEVICE impDbLog
# IDRETRIES 3
# PACKAGE main
# VERSION 8.52.11
# READINGS:
# 2023-10-14 02:19:17 after_command_message Reopen executed.
# 2023-10-14 07:32:13 state initialized
#
setstate Rep.impDbLog initialized
setstate Rep.impDbLog 2023-10-14 02:19:17 after_command_message Reopen executed.
setstate Rep.impDbLog 2023-10-14 07:32:13 state initialized
LOGFILE:Code Auswählen2023.10.14 02:13:07 3: DbRep Rep.impDbLog - get initial structure information of database "/opt/fhem/important.db", remaining attempts: 3
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Connectiontest to database SQLite:dbname=/opt/fhem/important.db with user
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Index Report_Idx exists. Check ok
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Initial data information retrieved - total time used: 0.0102 seconds
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - Connectiontest to db SQLite:dbname=/opt/fhem/important.db successful
2023.10.14 02:13:07 3: DbRep Rep.impDbLog - execute command before exportToFile: 'set impDbLog reopen 3600'
2023.10.14 02:13:07 2: impDbLog - Connection closed until 03:13:07 (3600 seconds).
2023.10.14 02:13:08 3: impDbLog - Database disconnected by request.
2023.10.14 02:19:09 1: Server shutdown delayed due to myDbLog,alexa for max 10 sec
2023.10.14 02:19:15 1: [Freezemon] freezemon: possible freeze starting at 02:17:28, delay is 107.342 possibly caused by: tmr-CODE(0x55fcfa6d2bb8)(ResponseTimeout) tmr-CODE(0x55fcfa62c3c8)(ProcessRequestQueue) tmr-HM485_LAN_KeepAlive(HM485_LAN) tmr-DOIF_SleepTrigger(Heizung_HK2_Solltemperatur)
2023.10.14 02:19:16 3: alexa: stopped
2023.10.14 02:19:17 1: DbRep Rep.impDbLog -> BlockingCall DbRep_expfile pid:DEAD:84022 Process died prematurely
2023.10.14 02:19:17 3: DbRep Rep.impDbLog - execute command after command: 'set impDbLog reopen'
2023.10.14 02:19:17 3: impDbLog - Reopen requested
2023.10.14 02:19:17 2: DbRep Rep.impDbLog - command message after command: >Reopen executed.<
2023.10.14 02:19:17 2: DbRep Rep.impDbLog - Database command aborted: "Process died prematurely"
2023.10.14 02:19:17 0: Server shutdown
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - get initial structure information of database "/opt/fhem/fhem.db", remaining attempts: 3
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Connectiontest to database SQLite:dbname=/opt/fhem/fhem.db with user
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Index Report_Idx exists. Check ok
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Initial data information retrieved - total time used: 0.0096 seconds
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
2023.10.14 07:27:18 3: DbRep Rep.myDbLog - execute command before exportToFile: 'set myDbLog reopen 3600'
2023.10.14 07:32:02 2: impDbLog - Wait for last database cycle due to shutdown ...
2023.10.14 07:32:02 1: Server shutdown delayed due to alexa,impDbLog for max 10 sec
2023.10.14 07:32:03 2: impDbLog - Last database write cycle done
2023.10.14 07:32:03 1: DbRep Rep.myDbLog -> BlockingCall DbRep_expfile pid:DEAD:88816 Process died prematurely
2023.10.14 07:32:03 3: DbRep Rep.myDbLog - execute command after command: 'set myDbLog reopen'
2023.10.14 07:32:03 2: DbRep Rep.myDbLog - command message after command: >Reopen executed.<
2023.10.14 07:32:03 2: DbRep Rep.myDbLog - Database command aborted: "Process died prematurely"
2023.10.14 07:32:05 0: Server shutdown
--
-- Create database
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `fhem` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */;
USE `fhem`;
2023.11.07 21:37:50 5: DbRep logRep - New dump file ./log/fhem_2023_11_07_21_37.sql was created
2023.11.07 21:31:02 3: DbRep logRep - ################################################################
2023.11.07 21:31:02 3: DbRep logRep - ### New database clientSide dump ###
2023.11.07 21:31:02 3: DbRep logRep - ################################################################
2023.11.07 21:31:02 3: DbRep logRep - Starting dump of database 'fhem'
2023.11.07 21:31:02 3: DbRep logRep - Characterset of collection set to utf8mb4.
2023.11.07 21:31:02 3: DbRep logRep - Searching for tables inside database fhem....
2023.11.07 21:31:02 3: DbRep logRep - Found 2 tables with 64586 records.
>>> 2023.11.07 hh:mm:ss 3: DbRep logRep - New dump file ./log/fhem_2023_11_07_21_37.sql was created
2023.11.07 21:31:02 3: DbRep logRep - Dumping table current (Type InnoDB):
2023.11.07 21:31:02 3: DbRep logRep - 0 records inserted (size of backupfile: 1.15 KB)
2023.11.07 21:31:02 3: DbRep logRep - Dumping table history (Type InnoDB):
2023.11.07 21:31:03 3: DbRep logRep - 64586 records inserted (size of backupfile: 12.09 MB)
2023.11.07 21:31:03 3: DbRep logRep - Finished backup of database fhem - total time used (hh:mm:ss): 00:00:00
2023.11.07 21:31:03 3: DbRep logRep - Database dump finished successfully.
2023.11.07 22:12:16.294 3: DbRep Rep.fhemtest.Dump - ################################################################
2023.11.07 22:12:16.295 3: DbRep Rep.fhemtest.Dump - ### New database clientSide dump ###
2023.11.07 22:12:16.296 3: DbRep Rep.fhemtest.Dump - ################################################################
2023.11.07 22:12:16.442 3: DbRep Rep.fhemtest.Dump - Starting dump of database 'fhemtest'
2023.11.07 22:12:16.536 3: DbRep Rep.fhemtest.Dump - Characterset of collection set to utf8mb4.
2023.11.07 22:12:16.537 3: DbRep Rep.fhemtest.Dump - Searching for tables inside database fhemtest....
2023.11.07 22:12:30.894 3: DbRep Rep.fhemtest.Dump - Found 2 tables with 15307590 records.
2023.11.07 22:12:30.898 3: DbRep Rep.fhemtest.Dump - New dump file /sds1/backup/dumps_FHEM/fhemtest_2023_11_07_22_12.sql was created
2023.11.07 22:12:30.902 3: DbRep Rep.fhemtest.Dump - Dumping table current (Type InnoDB):
2023.11.07 22:12:31.224 3: DbRep Rep.fhemtest.Dump - 16457 records inserted (size of backupfile: 3.28 MB)
2023.11.07 22:12:31.224 3: DbRep Rep.fhemtest.Dump - Dumping table history (Type InnoDB):
2023.11.07 22:16:02.945 3: DbRep Rep.fhemtest.Dump - 15291133 records inserted (size of backupfile: 2615.80 MB)
2023.11.07 22:16:02.950 3: DbRep Rep.fhemtest.Dump - Deleting old dumpfile 'fhemtest_2023_11_07_20_28.sql'
2023.11.07 22:16:03.788 3: DbRep Rep.fhemtest.Dump - Finished backup of database fhemtest - total time used (hh:mm:ss): 00:03:47
2023.11.07 22:16:03.826 3: DbRep Rep.fhemtest.Dump - Database dump finished successfully.
Zitat von: DS_Starter am 08 Dezember 2023, 15:54:42Später wird dieser Code dann mit AnalyzeCommandChain bzw. Perl in der Sub AnalyzePerlCommand ausgeführt (war vor V8.52.7 auch so).
Die Sub stellt intern $mday,$month,$we usw. zur Verfügung. Dadurch klappt es dann bei der Ausführung.
2023.12.08 17:23:39 3: DbRep dbRep_ub - Entries of /opt/fhem/sqldb/fhemlog.db.history deleted: ub4--w3_/--0
2023.12.08 17:23:39 3: DbRep dbRep_ub - execute command after delEntries: '{Debug $hms}'
2023.12.08 17:23:39 1: DEBUG>17:23:39
Zitat von: DS_Starter am 08 Dezember 2023, 17:50:26führt AnalyzePerlCommand das Kommando nicht gleich aus?
perlSyntaxCheck("Debug $hmms")
Global symbol "$hmms" requires explicit package name (did you forget to declare "my $hmms"?) at (eval 5196) line 1.
perlSyntaxCheck("Debug $hms")
Zitat von: Thowe am 09 Dezember 2023, 13:08:54Übrigens: Der Syntax-Check hatte dafür gesorgt, dass das betreffende Attribut komplett gelöscht wurde.
Zitat von: Thowe am 14 Dezember 2023, 22:17:31Auskommentieren in fhem.cfg hätte auch gereicht.
attr test_rep executeAfterProc {if($mday==1) {fhem("set test1 1;;set test2 2")} else {fhem("set test3 3")} }
wird der Befehl set test2 2
nicht mehr ausgeführt. In fhem.cfg stehen als Befehlstrenner ;;;;. Wie soll das Escapen funktionieren?attr logRep executeAfterProc { if($mday==17) {fhem("set test1 1;;set test2 2")} else {fhem("set test3 3")} }
2023.12.17 10:49:50 3: DbRep logRep - execute command after dump: '{ if($mday==17) {fhem("set test1 1;set test2 2")} else {fhem("set test3 3")} }'
2023.12.17 10:49:50 3: set test1 1;set test2 2 : Please define test1 first
Please define test2 first
Zitat von: Thowe am 17 Dezember 2023, 10:15:08In fhem.cfg stehen als Befehlstrenner ;;;;. Wie soll das Escapen funktionieren?
search result for device: logRep in version: 1
--------------------------------------------------------------------------------
define logRep DbRep logMetallDb
attr logRep executeAfterProc { if($mday==17) {fhem("set test1 1;;set test2 2")} else {fhem("set test3 3")} }
Zitat von: Thowe am 17 Dezember 2023, 19:18:30Wie meinst Du das konkret, wenn von Aufruf zu Aufruf einige dbrep-Attribute anzupassen sind, z.B. timestamp_begin, timestamp_end, device, reading, executeAfterProc und bspw. §timestamp_begin§ in einem sqlCmd benutzt werden muss?
Zitat von: betateilchen am 17 Dezember 2023, 13:33:26die Parameter für jeden Aufruf in einem array of hashes ablegen
my @dbrep = (
{ timestamp_begin => "2023-12-17 00:00:00", timestamp_end => "2023-12-17 01:00:00", device => "device1", reading => "reading1", cmd => "delEntries" },
{ timestamp_begin => "2023-12-15 11:00:00", timestamp_end => "2023-12-15 12:00:00", device => "device2", reading => "reading2", cmd => "delEntries" },
);
Zitat//offtopic:
Mega-cool wäre natürlich, wenn man so einen vorbereiteten hash direkt an ein DbRep device übergeben könnte.
ZitatWenn DbRep jetzt noch eine XML-Struktur mit SQL-Statements verarbeiten könnte...
ZitatMega-cool wäre natürlich, wenn man so einen vorbereiteten hash direkt an ein DbRep device übergeben könnte
define Rep.multi at +*01:00:00 {
my $cmdhash =
"{
1 => { timestamp_begin => '2023-12-17 00:00:00',
timestamp_end => '2023-12-17 01:00:00',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries history'
},
2 => { timestamp_begin => '2023-12-15 11:00:00',
timestamp_end => 'previous_day_end',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries'
},
3 => { timeDiffToNow => 'd:2',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'countEntries history'
},
4 => { cmd => 'sqlCmd select count(*) from current'
},
}";
fhem ("set Rep.CPU multiCmd $cmdhash");
}
Zitat2024.01.06 14:17:42.240 4: DbRep Rep.CPU - Start multiCmd index >1<
2024.01.06 14:17:42.418 4: DbRep Rep.CPU - -------- New selection ---------
2024.01.06 14:17:42.419 4: DbRep Rep.CPU - Command: countEntries history
2024.01.06 14:17:42.420 4: DbRep Rep.CPU - FullDay option: 0
2024.01.06 14:17:42.420 4: DbRep Rep.CPU - Timestamp begin human readable: 2023-12-17 00:00:00
2024.01.06 14:17:42.421 4: DbRep Rep.CPU - Timestamp end human readable: 2023-12-17 01:00:00
2024.01.06 14:17:42.421 4: DbRep Rep.CPU - Aggregation: no
2024.01.06 14:17:42.452 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.01.06 14:17:42.456 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.01.06 14:17:42.458 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.01.06 14:17:42.459 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.01.06 14:17:42.460 4: DbRep Rep.CPU - SQL execute: SELECT COUNT(*) FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung_Zaehler' ) AND TIMESTAMP >= '2023-12-17 00:00:00' AND TIMESTAMP <= '2023-12-17 01:00:00' ;
2024.01.06 14:17:42.586 4: DbRep Rep.CPU - Start multiCmd index >2<
2024.01.06 14:17:42.596 4: DbRep Rep.CPU - -------- New selection ---------
2024.01.06 14:17:42.597 4: DbRep Rep.CPU - Command: countEntries history
2024.01.06 14:17:42.597 4: DbRep Rep.CPU - FullDay option: 0
2024.01.06 14:17:42.598 4: DbRep Rep.CPU - Timestamp begin human readable: 2023-12-15 11:00:00
2024.01.06 14:17:42.598 4: DbRep Rep.CPU - Timestamp end human readable: 2024-01-05 23:59:59
2024.01.06 14:17:42.599 4: DbRep Rep.CPU - Aggregation: no
2024.01.06 14:17:42.644 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.01.06 14:17:42.648 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.01.06 14:17:42.650 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.01.06 14:17:42.650 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.01.06 14:17:42.651 4: DbRep Rep.CPU - SQL execute: SELECT COUNT(*) FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung_Zaehler' ) AND TIMESTAMP >= '2023-12-15 11:00:00' AND TIMESTAMP <= '2024-01-05 23:59:59' ;
2024.01.06 14:17:42.860 4: DbRep Rep.CPU - Start multiCmd index >3<
2024.01.06 14:17:42.872 4: DbRep Rep.CPU - -------- New selection ---------
2024.01.06 14:17:42.872 4: DbRep Rep.CPU - Command: countEntries history
2024.01.06 14:17:42.873 4: DbRep Rep.CPU - timeDiffToNow - year: , day: 2, hour: , min: , sec:
2024.01.06 14:17:42.874 4: DbRep Rep.CPU - Year 2024 is leap year
2024.01.06 14:17:42.874 4: DbRep Rep.CPU - startMonth: 0 endMonth: 0 lastleapyear: 2024 baseYear: 2024 diffdaylight:0 isdaylight:0
2024.01.06 14:17:42.875 4: DbRep Rep.CPU - FullDay option: 0
2024.01.06 14:17:42.875 4: DbRep Rep.CPU - Time difference to current time for calculating Timestamp begin: 172801 sec
2024.01.06 14:17:42.876 4: DbRep Rep.CPU - Timestamp begin human readable: 2024-01-04 14:17:41
2024.01.06 14:17:42.876 4: DbRep Rep.CPU - Timestamp end human readable: 2024-01-06 14:17:42
2024.01.06 14:17:42.877 4: DbRep Rep.CPU - Aggregation: no
2024.01.06 14:17:42.916 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.01.06 14:17:42.920 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.01.06 14:17:42.921 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.01.06 14:17:42.922 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.01.06 14:17:42.927 4: DbRep Rep.CPU - SQL execute: SELECT COUNT(*) FROM history where ( DEVICE IN ('SMA_Energymeter','MySTP_5000') ) AND ( READING LIKE 'Ein%' OR READING IN ('etotal','etoday') ) AND READING NOT LIKE '%Wirkleistung' AND TIMESTAMP >= '2024-01-04 14:17:41' AND TIMESTAMP <= '2024-01-06 14:17:42' ;
2024.01.06 14:17:44.359 4: DbRep Rep.CPU - Start multiCmd index >4<
2024.01.06 14:17:44.504 4: DbRep Rep.CPU - SQL online formatted: select count(*)
from current;
2024.01.06 14:17:44.519 4: DbRep Rep.CPU - -------- New selection ---------
2024.01.06 14:17:44.520 4: DbRep Rep.CPU - Command: sqlCmd select count(*) from current;
2024.01.06 14:17:44.521 4: DbRep Rep.CPU - Timestamp begin human readable: not set
2024.01.06 14:17:44.522 4: DbRep Rep.CPU - Timestamp end human readable: not set
2024.01.06 14:17:44.548 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.01.06 14:17:44.552 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.01.06 14:17:44.554 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.01.06 14:17:44.555 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.01.06 14:17:44.556 4: DbRep Rep.CPU - SQL execute: select count(*) from current;
2024.01.06 14:17:44.581 4: DbRep Rep.CPU - SQL result: 21515
define Rep.multi at +*01:00:00 {
my $cmdhash =
qq/{
1 => { timestamp_begin => '2023-12-17 00:00:00',
timestamp_end => '2023-12-17 01:00:00',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries history'
},
2 => { timestamp_begin => '2023-12-15 11:00:00',
timestamp_end => 'previous_day_end',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries'
},
3 => { timeDiffToNow => 'd:2',
readingNameMap => 'COUNT',
autoForward => '{ ".*COUNT.*" => "Dum.Rep.All" }',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'countEntries history'
},
4 => { timeDiffToNow => 'd:2',
readingNameMap => 'SUM',
autoForward => '{ ".*SUM.*" => "Dum.Rep.All" }',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'sumValue'
},
5 => { cmd => 'sqlCmd select count(*) from current'
},
}/;
fhem ("set Rep.CPU multiCmd $cmdhash");
}
2024.01.25 02:55:12.191 2: DbRep DBrep_Wetter_wind_speed - ERROR - DBD::mysql::st execute failed: Deadlock found when trying to get lock; try restarting transaction at ./FHEM/93_DbRep.pm line 11956.
define DBrep_Wetter_wind_speed DbRep DBLogging
attr DBrep_Wetter_wind_speed DbLogExclude .*
attr DBrep_Wetter_wind_speed alias 03 Schnitt Wind_speed errechnen
attr DBrep_Wetter_wind_speed allowDeletion 1
attr DBrep_Wetter_wind_speed device Wetterstation
attr DBrep_Wetter_wind_speed event-on-change-reading .*
attr DBrep_Wetter_wind_speed executeAfterProc set DBrep_Wetter_humidity averageValue writeToDBInTime
attr DBrep_Wetter_wind_speed group Automatische DB Bereinigung
attr DBrep_Wetter_wind_speed icon own-log@darkgrey
attr DBrep_Wetter_wind_speed reading wind_speed
attr DBrep_Wetter_wind_speed room System->Datenbank
attr DBrep_Wetter_wind_speed sortby 13
attr DBrep_Wetter_wind_speed timeDiffToNow m:15
attr DBrep_Wetter_wind_speed timeOlderThan m:0
attr DBrep_Wetter_wind_speed verbose 2
# DATABASE fhem_DB_LIVE
# DEF DBLogging
# FUUID 649cad18-f33f-6adc-f2c3-76163c3dfee6ef9a
# FVERSION 93_DbRep.pm:v8.53.0-s28370/2024-01-10
# LASTCMD averageValue writeToDBInTime
# MODEL Client
# NAME DBrep_Wetter_wind_speed
# NOTIFYDEV global,DBrep_Wetter_wind_speed
# NR 326
# NTFY_ORDER 50-DBrep_Wetter_wind_speed
# ROLE Client
# STATE done
# TYPE DbRep
# UTF8 1
# eventCount 1685
# HELPER:
# DBLOGDEVICE DBLogging
# GRANTS DROP,RELOAD,SHOW VIEW,CREATE VIEW,CREATE USER,INSERT,TRIGGER,REPLICATION SLAVE,SHUTDOWN,LOCK TABLES,ALTER,FILE,REFERENCES,REPLICATION CLIENT,CREATE TEMPORARY TABLES,INDEX,DELETE,ALTER ROUTINE,PROCESS,CREATE ROUTINE,EXECUTE,SELECT,SHOW DATABASES,UPDATE,EVENT,CREATE
# IDRETRIES 2
# MINTS 2022-07-01 00:00:22
# PACKAGE main
# VERSION 8.53.0
# CV:
# aggregation no
# aggsec 1
# destr 2024-01-25
# dsstr 2024-01-25
# epoch_seconds_end 1706180108.03797
# mestr 01
# msstr 01
# testr 11:55:08
# tsstr 11:40:08
# wdadd 345600
# yestr 2024
# ysstr 2024
# DBREPCOL:
# COLSET 1
# DEVICE 64
# EVENT 512
# READING 64
# TYPE 64
# UNIT 32
# VALUE 128
# OLDREADINGS:
# READINGS:
# 2024-01-25 11:55:10 2024-01-25__Wetterstation__wind_speed__AVGAM__no_aggregation 1.0000
# 2024-01-25 11:55:10 db_lines_processed 2
# 2024-01-25 11:55:11 state done
#
setstate DBrep_Wetter_wind_speed done
setstate DBrep_Wetter_wind_speed 2024-01-23 22:31:21 .associatedWith Wetterstation
setstate DBrep_Wetter_wind_speed 2024-01-25 11:55:10 2024-01-25__Wetterstation__wind_speed__AVGAM__no_aggregation 1.0000
setstate DBrep_Wetter_wind_speed 2024-01-25 11:55:10 db_lines_processed 2
setstate DBrep_Wetter_wind_speed 2024-01-25 11:55:11 state done
Zitat von: DS_Starter am 06 Januar 2024, 14:29:55Es gibt in der V einen Setter multiCmd mit dem man dem Device einen Befehls-Hash übergeben und abarbeiten lassen kann.
Die genaue Syntax/Verwendung könnt ihr der Kommando-Hilfe entnehmen.
Der Befehlshash kann auch über eine Variable übergeben werden.
set ... sqlCmd SHOW ENGINE INNODB STATUS;
Zitat------------------------
LATEST DETECTED DEADLOCK
------------------------
2023-12-20 09:14:22 7f9d830cf700
*** (1) TRANSACTION:
TRANSACTION 243789459, ACTIVE 149 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1184, 2 row lock(s), undo log entries 1
MySQL thread id 7266603, OS thread handle 0x7f9d0a32d700, query id 639594931 fhem.myds.me 192.168.2.46 fhemshort update
REPLACE INTO current (TIMESTAMP, TYPE, EVENT, VALUE, UNIT, DEVICE, READING) VALUES ('2023-12-20 09:11:27','FULLY','','1',NULL,'googlenexus.fully','powerstate')
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 547 page no 8 n bits 240 index `PRIMARY` of table `fhemshort`.`current` trx table locks 1 total table locks 3 trx id 243789459 lock_mode X locks rec but not gap waiting lock hold time 47 wait time before grant 0
*** (2) TRANSACTION:
TRANSACTION 243789414, ACTIVE 168 sec inserting
mysql tables in use 2, locked 2
114855 lock struct(s), heap size 14759464, 21983074 row lock(s), undo log entries 834
MySQL thread id 7270446, OS thread handle 0x7f9d830cf700, query id 639592831 fhem.myds.me 192.168.2.46 fhemshort Sending data
INSERT IGNORE INTO current (TIMESTAMP,DEVICE,READING) SELECT timestamp,device,reading FROM history where 1 group by timestamp,device,reading
*** (2) HOLDS THE LOCK(S)
Zitat von: DS_Starter am 25 Januar 2024, 18:10:14Vllt. erkennen wir anhand der Statements die beteiligten Prozesse. Könnte auch ein paralleler DbLog Schreibvorgang beteiligt sein.In Anbetracht dessen was ich in dem oben erwähntem Link bisher gelesen habe und Deinem Hinweis mit dem entsprechendem Schreibvorgang, könntest es natürlich sehrwohl genau das Problem sein. Die Betroffenen Devices erhalten sehr sehr viele Infos von der Wetterstation - Dafür eben auch der Vorgang alle 15 Min um die Daten nochmehr zu schrumpfen als anhand von event Beschränkungen innerhabl von Fhem. Beispiel:
define DBrep_Wetter_humidity DbRep DBLogging
attr DBrep_Wetter_humidity DbLogExclude .*
attr DBrep_Wetter_humidity alias 04 Schnitt Luftfeuchte errechnen
attr DBrep_Wetter_humidity allowDeletion 1
attr DBrep_Wetter_humidity device Wetterstation
attr DBrep_Wetter_humidity event-on-change-reading .*
attr DBrep_Wetter_humidity executeAfterProc set DBrep_Wetter_temperature averageValue writeToDBInTime
attr DBrep_Wetter_humidity group Automatische DB Bereinigung
attr DBrep_Wetter_humidity icon own-log@darkgrey
attr DBrep_Wetter_humidity reading humidity
attr DBrep_Wetter_humidity room System->Datenbank
attr DBrep_Wetter_humidity sortby 14
attr DBrep_Wetter_humidity timeDiffToNow m:15
attr DBrep_Wetter_humidity timeOlderThan m:0
attr DBrep_Wetter_humidity verbose 2
# DATABASE fhem_DB_LIVE
# DEF DBLogging
# FUUID 649cad56-f33f-6adc-6608-1d3b22cbba8a36f0
# FVERSION 93_DbRep.pm:v8.53.0-s28370/2024-01-10
# LASTCMD averageValue writeToDBInTime
# MODEL Client
# NAME DBrep_Wetter_humidity
# NOTIFYDEV global,DBrep_Wetter_humidity
# NR 327
# NTFY_ORDER 50-DBrep_Wetter_humidity
# ROLE Client
# STATE done
# TYPE DbRep
# UTF8 1
# eventCount 1817
# HELPER:
# DBLOGDEVICE DBLogging
# GRANTS SHOW DATABASES,SELECT,EXECUTE,CREATE ROUTINE,PROCESS,ALTER ROUTINE,DELETE,CREATE,EVENT,UPDATE,REPLICATION SLAVE,SHUTDOWN,TRIGGER,INSERT,CREATE USER,SHOW VIEW,CREATE VIEW,DROP,RELOAD,INDEX,CREATE TEMPORARY TABLES,REPLICATION CLIENT,REFERENCES,LOCK TABLES,FILE,ALTER
# IDRETRIES 2
# MINTS 2022-07-01 00:00:22
# PACKAGE main
# VERSION 8.53.0
# CV:
# aggregation no
# aggsec 1
# destr 2024-01-25
# dsstr 2024-01-25
# epoch_seconds_end 1706219705.23661
# mestr 01
# msstr 01
# testr 22:55:05
# tsstr 22:40:05
# wdadd 345600
# yestr 2024
# ysstr 2024
# DBREPCOL:
# COLSET 1
# DEVICE 64
# EVENT 512
# READING 64
# TYPE 64
# UNIT 32
# VALUE 128
# OLDREADINGS:
# READINGS:
# 2024-01-25 22:55:06 2024-01-25__Wetterstation__humidity__AVGAM__no_aggregation -
# 2024-01-25 22:55:06 db_lines_processed 0
# 2024-01-25 22:55:06 state done
#
setstate DBrep_Wetter_humidity done
setstate DBrep_Wetter_humidity 2024-01-23 22:31:21 .associatedWith Wetterstation
setstate DBrep_Wetter_humidity 2024-01-25 22:55:06 2024-01-25__Wetterstation__humidity__AVGAM__no_aggregation -
setstate DBrep_Wetter_humidity 2024-01-25 22:55:06 db_lines_processed 0
setstate DBrep_Wetter_humidity 2024-01-25 22:55:06 state done
*** (2) TRANSACTION: TRANSACTION 15412754, ACTIVE 1 sec inserting mysql tables in use 1, locked 1 729 lock struct(s),
heap size 90232, 121823 row lock(s), undo log entries 2 MySQL thread id 10195,
OS thread handle 139778776536832, query id 390546 192.168.0.24 fhempi_user
Update INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES ('2024-01-25 18:10:07','Hauptzaehler','ELECTRICITYCALCULATOR','calculated','avgam_no_wemos_current_lang','13.7727',NULL)
*** (2) HOLDS THE LOCK(S):
timeDiffToNow m:30
timeOlderThan m:15
attr ... executeBeforeProc set DBLogging reopen 60
Zitat von: DS_Starter am 26 Januar 2024, 09:18:04soweit ich sehen kann, hält wahrscheinlich DbLog einen Lock (INSERT IGNORE INTO history...):
at_DBrep_3DDrucker_POWER_15Min Next: 12:25:03
at_DBrep_Wetter_wind_lumi_15Min Next: 12:25:01
at_DBrep_dev_GH_solar_15Min Next: 12:25:06
at_DBrep_zaehler_wemos_current_lang_15Min Next: 12:25:08
+*00:15 set DBrep_3Ddrucker_ENERGY_Power averageValue writeToDBInTime
ZitatHat es einen Grund warum diese Zeiten dann noch besser sind oder einfach wie mein "einfacher" Gedanke war um damit außerhalb der aktuellen Zeit und Tabellenbereich zu sein?Bei diesen Zeitabgrenzungen werden die aktuellsten Datensätze nicht berüchsichtigt und können mit DbLog nicht in Konflikt geraten, so die Überlegung.
Zitat2. Unterstützend...: Ich habe einige devices, die eine solche Aufgabe erfüllen, wenn ich das im ersten Ausführe, und sobald die Zeit für die nachfolgendenn Ausführungen reich, wird es auch ausgeführt?Es reicht die DbLog "Sperre" im ersten Device zu veranlassen. Das reopen passiert dann nach Ablauf der angegebenen Sekunden.
ZitatDas sind die at-devices die jeweils die Bearbeitung auslösen. Alle nach dem Muster definiert. Gibt es einen Trick / Möglichkeit sie verzögert ausführen zu lassen, oder werden sie es eh automatisch (die Zeiten unterscheiden sich ja bereits um je 1-2 sek)Der Zeitversatz ist damit schon gegeben.
Zitatat löst aus -> 50 Schnitt 3D Drucker ENERGY_Power -> executeAfterProc -> 51 Schnitt 3D Drucker ENERGY_Current -> executeAfterProc -> 52 Schnitt 3D Drucker Power5min -> executeAfterProc -> 53 Schnitt 3D Drucker alte Werte löschen -> done.Auch unter diesem Gesichtspunkt ist "multiCmd" wahrscheinlich hilfreich.
Würde diese Ordnung "ungern" verlieren - Gibt es Performance die dagegen sprechen, dann natürlich sofort.
Zitat von: DS_Starter am 26 Januar 2024, 13:03:28Auch unter diesem Gesichtspunkt ist "multiCmd" wahrscheinlich hilfreich.
Alles in Allem muß meine Analyse nicht in jedem Falle zutreffen. Bevor du große Umbauten vornimmst, gehe langsam voran, starte z.B. mit dem executeBeforeProc und beobachte den Erfolg.
Danach Stück für Stück wie beschrieben.
set <DbRep> dumpSQLite
set <DbLog> reopen xxxxxx
{\
my $cmdhash = "{\
1 => { cmd => 'sqlCmd select count(*) from history'\
},\
2 => { timeOlderThan => 'd:5',\
timeDiffToNow => 'd:7',\
cmd => 'reduceLog average'\
},\
3 => { timeOlderThan => 'd:90',\
timeDiffToNow => 'd:91',\
cmd => 'reduceLog average=day'\
},\
4 => { timeOlderThan => 'd:360',\
device => 'sysmon%,global',\
cmd => 'delEntries'\
},\
5 => { cmd => 'sqlCmd select count(*) from history'\
},\
}";;\
fhem ("set DBRep.multiCmd.reduceLog multiCmd $cmdhash");;\
}
führt zu (letzte 3 Zeilen): 2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - get initial structure information of database "fhem", remaining attempts: 3
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - Connectiontest to database mysql:database=fhem;host=localhost;port=3308 with user fhemuser
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - Index Report_Idx exists. Check ok
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - Initial data information retrieved - total time used: 0.0186 seconds
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - Connectiontest to db mysql:database=fhem;host=localhost;port=3308 successful
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - execute command before sqlCmd: 'set LogDB reopen 3600'
2024.03.01 01:00:00 2: LogDB - Connection closed until 02:00:00 (3600 seconds).
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - execute command after sqlCmd: 'set LogDB reopen'
2024.03.01 01:00:00 3: LogDB - Reopen requested
2024.03.01 01:00:00 2: DbRep DBRep.multiCmd.reduceLog - command message after sqlCmd: >Reopen executed.<
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - ### new reduceLog run ###
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - execute command before reduceLog: 'set LogDB reopen 3600'
2024.03.01 01:00:00 2: LogDB - Connection closed until 02:00:00 (3600 seconds).
2024.03.01 01:00:00 3: LogDB - Database disconnected by request.
2024.03.01 01:00:00 3: LogDB - Database disconnected by request.
2024.03.01 01:00:00 3: LogDB - SubProcess connected to fhem
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - reduce data older than: 2024-02-25 00:59:59, newer than: 2024-02-23 00:59:59
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - reduceLog requested with options:
average
INCLUDE -> Devs: % Readings: %
2024.03.01 01:00:00 3: LogDB - Database disconnected by request.
2024.03.01 01:00:00 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deleting 5606 records of day: 2024-02-24
2024.03.01 01:00:01 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-24 is: 1000
2024.03.01 01:00:02 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-24 is: 2000
2024.03.01 01:00:03 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-24 is: 3000
2024.03.01 01:00:03 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-24 is: 4000
2024.03.01 01:00:04 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-24 is: 5000
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog (hourly-average) updating 131 records of day: 2024-02-24
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog (hourly-average) updating progress of day: 2024-02-24 is: 100
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deleting 244 records of day: 2024-02-25
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-25 is: 100
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deletion progress of day: 2024-02-25 is: 200
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog (hourly-average) updating 5 records of day: 2024-02-25
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - reduceLog finished. Rows processed: 6264, deleted: 5850, updated: 136
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - execute command after reduceLog: 'set LogDB reopen'
2024.03.01 01:00:05 3: LogDB - Reopen requested
2024.03.01 01:00:05 2: DbRep DBRep.multiCmd.reduceLog - command message after reduceLog: >Reopen executed.<
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - ### new reduceLog run ###
2024.03.01 01:00:05 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.01 01:00:05 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701471599)
2024.03.01 01:00:06 3: LogDB - Database disconnected by request.
2024.03.01 01:00:06 3: LogDB - SubProcess connected to fhem
2024.03.02 03:23:37.596 2: DbRep SQL_DBrep_Device - ERROR - DBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction at ./FHEM/93_DbRep.pm line 11966
oder
2024.03.02 13:41:00.129 1: DbRep SQL_DBrep_Device -> BlockingCall DbRep_averval pid:171276 Timeout: process terminated
Internals:
COMMAND set SQL_DBrep_Device multiCmd {
{
1 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'wind_gust',
cmd => 'averageValue writeToDBInTime'
},
2 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'luminosity',
cmd => 'averageValue writeToDBInTime'
},
3 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'wind_speed',
cmd => 'averageValue writeToDBInTime'
},
4 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'humidity',
cmd => 'averageValue writeToDBInTime'
},
5 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'temperature',
cmd => 'averageValue writeToDBInTime'
},
6 => { timeDiffToNow => 'd:3',
timeOlderThan => 'd:2',
device => 'Wetterstation',
reading => 'luminosity,wind_gust,wind_speed,humidity,temperature',
cmd => 'delEntries'
},
7 => { timeDiffToNow => 'm:15',
device => ' dev_EG_WZ_innen_temperatur',
reading => 'humidity',
cmd => 'averageValue writeToDBInTime'
},
8 => { timeDiffToNow => 'm:15',
device => ' dev_EG_WZ_innen_temperatur',
reading => 'temperature',
cmd => 'averageValue writeToDBInTime'
},
9 => { timeDiffToNow => 'm:15',
device => 'dev_EG_WZ_LUX_innen',
reading => 'illuminance',
cmd => 'averageValue writeToDBInTime'
},
10 => { timeDiffToNow => 'd:4',
timeOlderThan => 'd:2',
device => 'dev_EG_WZ_LUX_innen',
reading => 'illuminance',
cmd => 'delEntries'
},
11 => { timeDiffToNow => 'd:4',
timeOlderThan => 'd:2',
device => 'dev_EG_WZ_innen_temperatur',
reading => 'humidity,temperature',
cmd => 'delEntries'
},
}
}
DEF +*00:15 set SQL_DBrep_Device multiCmd {
{
1 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'wind_gust',
cmd => 'averageValue writeToDBInTime'
},
2 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'luminosity',
cmd => 'averageValue writeToDBInTime'
},
3 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'wind_speed',
cmd => 'averageValue writeToDBInTime'
},
4 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'humidity',
cmd => 'averageValue writeToDBInTime'
},
5 => { timeDiffToNow => 'm:15',
device => 'Wetterstation',
reading => 'temperature',
cmd => 'averageValue writeToDBInTime'
},
6 => { timeDiffToNow => 'd:3',
timeOlderThan => 'd:2',
device => 'Wetterstation',
reading => 'luminosity,wind_gust,wind_speed,humidity,temperature',
cmd => 'delEntries'
},
7 => { timeDiffToNow => 'm:15',
device => ' dev_EG_WZ_innen_temperatur',
reading => 'humidity',
cmd => 'averageValue writeToDBInTime'
},
8 => { timeDiffToNow => 'm:15',
device => ' dev_EG_WZ_innen_temperatur',
reading => 'temperature',
cmd => 'averageValue writeToDBInTime'
},
9 => { timeDiffToNow => 'm:15',
device => 'dev_EG_WZ_LUX_innen',
reading => 'illuminance',
cmd => 'averageValue writeToDBInTime'
},
10 => { timeDiffToNow => 'd:4',
timeOlderThan => 'd:2',
device => 'dev_EG_WZ_LUX_innen',
reading => 'illuminance',
cmd => 'delEntries'
},
11 => { timeDiffToNow => 'd:4',
timeOlderThan => 'd:2',
device => 'dev_EG_WZ_innen_temperatur',
reading => 'humidity,temperature',
cmd => 'delEntries'
},
}
}
FUUID 5e80a069-f33f-8d79-a867-e1060514c503b7ec
FVERSION 90_at.pm:0.284400/2024-01-28
NAME at_DBrep_15Min_Werte
NR 151
NTM 16:37:30
PERIODIC yes
RELATIVE yes
REP -1
STATE Next: 16:37:30
TIMESPEC 00:15
TRIGGERTIME 1709480250
TRIGGERTIME_FMT 2024-03-03 16:37:30
TYPE at
eventCount 181
READINGS:
2024-03-03 16:22:30 state Next: 16:37:30
Attributes:
DbLogExclude .*
alignTime 01:07:30
group Auslösungen < 1x Tag
room System->Datenbank
verbose 5
ZitatKann es der gleiche Bug sein, der oben gefixt wurde?Nein. Da hatte ich aus einer Fehlerbehandlung einfach einen Rücksprung vergessen.
"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm
2024.03.03 21:04:35 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701644399)
2024.03.03 21:04:35 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >4< start
2024.03.03 21:04:35 3: LogDB - Database disconnected by request.
2024.03.03 21:04:35 3: LogDB - Database disconnected by request.
2024.03.03 21:04:35 3: LogDB - SubProcess connected to fhem
Ein multiCmd index 5 taucht nicht auf.2024.03.03 21:02:38 0: Server started with 224 defined entities (fhem.pl:28484/2024-02-06 perl:5.036000 os:linux user:fhem pid:127418)
sollte ich via systemctl?
Internals:
COMMAND {\
my $cmdhash = "{\
1 => { cmd => 'sqlCmd select count(*) from history'\
},\
2 => { timeOlderThan => 'd:5',\
timeDiffToNow => 'd:7',\
cmd => 'reduceLog average'\
},\
3 => { timeOlderThan => 'd:90',\
timeDiffToNow => 'd:91',\
cmd => 'reduceLog average=day'\
},\
4 => { timeOlderThan => 'd:360',\
device => 'sysmon%,global',\
cmd => 'delEntries'\
},\
5 => { cmd => 'sqlCmd select count(*) from history'\
},\
}";;\
fhem ("set DBRep.multiCmd.reduceLog multiCmd $cmdhash");;\
}
DEF *01:00:00 {\
my $cmdhash = "{\
1 => { cmd => 'sqlCmd select count(*) from history'\
},\
2 => { timeOlderThan => 'd:5',\
timeDiffToNow => 'd:7',\
cmd => 'reduceLog average'\
},\
3 => { timeOlderThan => 'd:90',\
timeDiffToNow => 'd:91',\
cmd => 'reduceLog average=day'\
},\
4 => { timeOlderThan => 'd:360',\
device => 'sysmon%,global',\
cmd => 'delEntries'\
},\
5 => { cmd => 'sqlCmd select count(*) from history'\
},\
}";;\
fhem ("set DBRep.multiCmd.reduceLog multiCmd $cmdhash");;\
}
FUUID 65ca34d8-f33f-fd93-bf66-ee965ab4cacd3dc0
NAME at.MultiCmd.DBaufraeumen
NR 61
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 01:00:00
TIMESPEC 01:00:00
TRIGGERTIME 1709510400
TRIGGERTIME_FMT 2024-03-04 01:00:00
TYPE at
eventCount 2
READINGS:
2024-03-03 21:20:44 state Next: 01:00:00
Attributes:
DbLogExclude .*
room System->DB
Internals:
DATABASE fhem
DEF LogDB
FUUID 65c9ff92-f33f-fd93-d13c-23c6751017ed43f9
FVERSION 93_DbRep.pm:v8.53.2-s28525/2024-02-16
LASTCMD reduceLog average=day
MODEL Client
NAME DBRep.multiCmd.reduceLog
NOTIFYDEV global,DBRep.multiCmd.reduceLog
NR 60
NTFY_ORDER 50-DBRep.multiCmd.reduceLog
ROLE Client
STATE The Timestamp of the oldest dataset is newer than the specified time range
TYPE DbRep
UTF8 1
eventCount 18
HELPER:
DBLOGDEVICE LogDB
GRANTS DELETE,UPDATE,INSERT,SELECT,FILE
IDRETRIES 2
MINTS 2024-01-23 18:08:20
PACKAGE main
VERSION 8.53.2
CV:
aggregation no
aggsec 1
destr 2023-12-03
dsstr 2023-12-02
epoch_seconds_end 1701644399
mestr 12
msstr 12
testr 23:59:59
tsstr 00:00:00
wdadd 172800
yestr 2023
ysstr 2023
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2024-03-03 21:39:13 state The Timestamp of the oldest dataset is newer than the specified time range
Attributes:
DbLogExclude .*
allowDeletion 0
comment <<<ganz viel Text>>>
devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
device sysmon%,global
event-on-update-reading state
executeAfterProc set LogDB reopen
executeBeforeProc set LogDB reopen 3600
room System->DB
showproctime 1
timeOlderThan d:360
timeout 3600
verbose 4
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >1< start
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Command: sqlCmd select count(*) from history;
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: not set
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: not set
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - execute command before sqlCmd: 'set LogDB reopen 3600'
2024.03.03 21:39:12 2: LogDB - Connection closed until 22:39:12 (3600 seconds).
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Database connect - user: fhemuser, UTF-8 option set: yes
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Database Character set is >utf8mb4_bin<
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: select count(*) from history;
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - SQL result: 19980
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - execute command after sqlCmd: 'set LogDB reopen'
2024.03.03 21:39:12 3: LogDB - Reopen requested
2024.03.03 21:39:12 2: DbRep DBRep.multiCmd.reduceLog - command message after sqlCmd: >Reopen executed.<
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >2< start
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - ### new reduceLog run ###
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Command: reduceLog average
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - timeDiffToNow - year: , day: 7, hour: , min: , sec:
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 1 endMonth: 2 lastleapyear: baseYear: 2024 diffdaylight:0 isdaylight:0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - timeOlderThan - year: 0, day: 5, hour: 0, min: 0, sec: 0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 0 endMonth: 1 lastleapyear: 2024 baseYear: 2024 diffdaylight:0 isdaylight:0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - FullDay option: 0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp begin: 604801 sec
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: 2024-02-25 21:39:11
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp end: 432001 sec
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: 2024-02-27 21:39:11
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - execute command before reduceLog: 'set LogDB reopen 3600'
2024.03.03 21:39:12 2: LogDB - Connection closed until 22:39:12 (3600 seconds).
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Database connect - user: fhemuser, UTF-8 option set: yes
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Database Character set is >utf8mb4_bin<
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduce data older than: 2024-02-27 21:39:11, newer than: 2024-02-25 21:39:11
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog requested with options:
average
INCLUDE -> Devs: % Readings: %
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: DELETE FROM history WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?) AND (VALUE=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: DELETE FROM history WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?) AND VALUE IS NULL
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: UPDATE history SET TIMESTAMP=?, EVENT=?, VALUE=? WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?) AND (VALUE=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: DELETE FROM history WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: UPDATE history SET TIMESTAMP=?, EVENT=?, VALUE=? WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history where TIMESTAMP >= '2024-02-25 21:39:11' AND TIMESTAMP <= '2024-02-27 21:39:11' ORDER BY TIMESTAMP ASC;
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deleting 35 records of day: 2024-02-27
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - begin transaction
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - SubProcess connected to fhem
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - transaction committed
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog (hourly-average) updating 4 records of day: 2024-02-27
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - begin transaction
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=55.4206 WHERE DEVICE=sysmon_pi2 AND READING=cpu_temp AND TIMESTAMP=2024-02-27 21:27:21 AND VALUE=54.77
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=955.5556 WHERE DEVICE=sysmon_pi2 AND READING=cpu_freq AND TIMESTAMP=2024-02-27 21:29:20 AND VALUE=1400
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=0.0000 WHERE DEVICE=LogDB AND READING=CacheOverflowLastNum AND TIMESTAMP=2024-02-27 21:27:22 AND VALUE=0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=55.5525 WHERE DEVICE=sysmon_pi2 AND READING=cpu_temp_avg AND TIMESTAMP=2024-02-27 21:27:21 AND VALUE=55.5
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - transaction committed
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog finished. Rows processed: 442, deleted: 35, updated: 4
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - execute command after reduceLog: 'set LogDB reopen'
2024.03.03 21:39:13 3: LogDB - Reopen requested
2024.03.03 21:39:13 2: DbRep DBRep.multiCmd.reduceLog - command message after reduceLog: >Reopen executed.<
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >3< start
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - ### new reduceLog run ###
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Command: reduceLog average=day
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - timeDiffToNow - year: , day: 91, hour: , min: , sec:
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 11 endMonth: 2 lastleapyear: 2024 baseYear: 2023 diffdaylight:0 isdaylight:0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - timeOlderThan - year: 0, day: 90, hour: 0, min: 0, sec: 0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 0 endMonth: 11 lastleapyear: 2024 baseYear: 2023 diffdaylight:0 isdaylight:0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - FullDay option: 1
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp begin: 7948801 sec
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: 2023-12-02 00:00:00
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp end: 7862401 sec
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: 2023-12-03 23:59:59
2024.03.03 21:39:13 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701644399)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >4< start
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - SubProcess connected to fhem
2024.03.03 22:05:05 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701644399)
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >4< start
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Command: delEntries
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - timeOlderThan - year: , day: 360, hour: , min: , sec:
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 0 endMonth: 2 lastleapyear: 2024 baseYear: 2023 diffdaylight:0 isdaylight:0
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - FullDay option: 0
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: 2024-01-23 18:08:20
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp end: 31190401 sec
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: 2023-03-08 22:05:04
2024.03.03 22:05:05 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1678309504)
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >5< start
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Command: sqlCmd select count(*) from history;
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: not set
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: not set
2024.03.03 22:05:05 3: DbRep DBRep.multiCmd.reduceLog - execute command before sqlCmd: 'set LogDB reopen 3600'
2024.03.03 22:05:05 2: LogDB - Connection closed until 23:05:05 (3600 seconds).
2024.03.03 22:05:05 3: LogDB - Database disconnected by request.
2024.03.03 22:05:05 3: LogDB - SubProcess connected to fhem
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Database connect - user: fhemuser, UTF-8 option set: yes
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Database Character set is >utf8mb4_bin<
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: select count(*) from history;
2024.03.03 22:05:06 4: DbRep DBRep.multiCmd.reduceLog - SQL result: 19984
2024.03.03 22:05:06 3: DbRep DBRep.multiCmd.reduceLog - execute command after sqlCmd: 'set LogDB reopen'
2024.03.03 22:05:06 3: LogDB - Reopen requested
2024.03.03 22:05:06 2: DbRep DBRep.multiCmd.reduceLog - command message after sqlCmd: >Reopen executed.<
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - SubProcess connected to fhem
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - SubProcess connected to fhem
Ich wusste nicht, dass verdichten funktioniert ohne allowDeletion, löschen aber nicht. Wieder was gelernt. Zitat von: DS_Starter am 03 März 2024, 16:58:52Du kannst es überprüfen indem du vor dem Start von multiCmd im DbLog ein "set ... reopen 3600" ausführst.
Das sperrt DbLog für eine Stunde und DbRep hat die DB für sich. Wenn multiCmd durch ist, öffnest du DbLog wieder mit "set ... reopen".
2024.03.04 11:26:00.875 2: DbRep SQL_DBrep_Device - command message after averageValue: >Reopen executed.<
und
2024.03.04 11:26:02.004 2: DbRep SQL_DBrep_Device - command message after delEntries: >Reopen executed.<
ZitatSchaff das Attribut endlich ab!Durchaus eine Variante. Fasse ich ins Auge.
ZitatJetzt hab ich mal eine Frage kosmetischer Natur: Wenn ich o.g. ausführe, scheinen alle anderen Fehler weg zu sein. Allerdings wir mein Log voll gespamt mit:Als erste Variante kannst du im relevanten DbRep das verbose=1 setzen.
Zitat von: DS_Starter am 04 März 2024, 12:51:14Die 2. Variante würde ich bevorzugen als die DB ständig für DbLog zu schließen/öffnen.
Zitatich muss die DB ja eh ständig zu und auf machen...Nein.
{
1 => { executeBeforeProc => 'set LogDB reopen 900',
timestamp_begin => '2023-12-17 00:00:00',
timestamp_end => '2023-12-17 01:00:00',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries history'
},
2 => { timestamp_begin => '2023-12-15 11:00:00',
timestamp_end => 'previous_day_end',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries'
},
3 => { timeDiffToNow => 'd:2',
readingNameMap => 'COUNT',
autoForward => '{ ".*COUNT.*" => "Dum.Rep.All" }',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'countEntries history'
},
4 => { timeDiffToNow => 'd:2',
readingNameMap => 'SUM',
autoForward => '{ ".*SUM.*" => "Dum.Rep.All" }',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'sumValue'
},
5 => { executeAfterProc => 'set LogDB reopen',
cmd => 'sqlCmd select count(*) from current'
},
}
Zitat von: DS_Starter am 06 März 2024, 09:34:45Guten Morgen,
in meinem contrib liegt eine neue DbRep Version zunächst zum Test.
....
@flummy1978, die letzen beiden Punkte können für deinen Case sehr hifreich sein. Damit kann die Kommandochain zum Beipiel folgendermaßen aufgebaut werden um zu Beginn und zum Ende das DbLog Management mit zu integrieren:
!HINWEIS! Beim Start kommen Meldungen der Art
"Device xxxx -> The attribute allowDeletion is obsolete and will be deleted soon. Please press "save config" when FHEM start is finished.
Ursache ist die Entfernung des allowDeletion Attributs sofern es gesetzt war.
Zitatman bekommt außerhalb vom Log aber keinen Hinweis, dass was geändert wurde
LASTCMD initial database connect stopped due to attribute 'fastStart'
define repdb DbRep logdb
attr repdb averageCalcForm avgDailyMeanGWSwithGTS
attr repdb devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr repdb device Mean_Temp_outside
attr repdb executeAfterProc set logdb reopen
attr repdb executeBeforeProc set logdb reopen 86400
attr repdb fastStart 1
attr repdb reading state
attr repdb room DBLog
attr repdb showproctime 1
attr repdb timestamp_begin current_year_begin
attr repdb timestamp_end previous_day_end
attr repdb userExitFn saveGTS
# DATABASE fhem
# DEF logdb
# FUUID 65e841ba-f33f-c144-4162-bc12999b8dae2a68
# FVERSION 93_DbRep.pm:v8.53.2-s28590/2024-03-03
# LASTCMD initial database connect stopped due to attribute 'fastStart'
# MODEL Client
# NAME repdb
# NOTIFYDEV global,repdb
# NR 147
# NTFY_ORDER 50-repdb
# ROLE Client
# STATE initialized
# TYPE DbRep
# UTF8 0
# HELPER:
# DBLOGDEVICE logdb
# IDRETRIES 3
# PACKAGE main
# VERSION 8.53.2
# READINGS:
# 2024-03-07 10:33:11 state initialized
#
setstate repdb initialized
setstate repdb 2024-03-07 10:33:11 .associatedWith Mean_Temp_outside
setstate repdb 2024-03-07 10:33:11 state initialized
"Device xxxx -> The attribute allowDeletion is obsolete and will be deleted soon. Please press "save config" when FHEM start is finished."
select value from history where device = 'beispiel'
Könnte dafür ein Sonderzeichen gesetzt werden, das intern im SQL-Befehl wieder in ein Hochkomma umgewandelt wird?{
1 => { cmd => 'sqlCmd select count(*) from current where device = "SMA_Energymeter"'
},
2 => { cmd => qq{sqlCmd select count(*) from current where device = 'SMA_Energymeter'}
},
}
+*00:01:00 {
my $cmdhash =
"{
1 => { timestamp_end => 'previous_day_end',
device => 'Stromkosten.HH_kWh',
reading => 'state',
autoForward => '{ ".*" => "Stromkosten.HH_kWh" }',
cmd => 'sqlCmd select value from history where device = "Stromkosten.HH_kWh" and timestamp <= §timestamp_end§ order by timestamp desc limit 1'
},
}";
fhem ("set Rep_test_dev multiCmd $cmdhash");
}
Die Fehlermeldung weist an die Position vom §:Unrecognized character \xC2; marked by <-- HERE after estamp <= <-- HERE near column 364 at (eval 2424) line 8.
Ich vermute ein Codierproblem, neu schreiben hat keine Verbesserung gebracht. Hast Du einen Tipp?autoForward => '{ ".*" => "Stromkosten.HH_kWh" }',
Zitat- in autoForward und cmd darf kein Device-Name mit . enthalten seinhmm, ich habe diese Dinge mit folgendem Hash getestet:
- im cmd mit '....' dürfen keine Anführungszeichen bei der where-clause "" stehen. Mit qq{ ... where device = 'name' ...} funktioniert es, auch mit dem §Platzhalter§.
{
1 => {
timestamp_begin => "2024-03-01 12:00:00",
autoForward => '{ ".*ResultRow.*" => "Dum.Rep.All" }',
cmd => 'sqlCmd select count(*) from history where device = "SMA_Energymeter" and TIMESTAMP > "§timestamp_begin§"'
},
}
2024.03.13 21:24:36.976 4: DbRep Rep.CPU - multiCmd index >1< start
2024.03.13 21:24:37.119 4: DbRep Rep.CPU - SQL online formatted: select count(*)
from history
where device = "SMA_Energymeter"
and TIMESTAMP > "§timestamp_begin§";
2024.03.13 21:24:37.136 4: DbRep Rep.CPU - -------- New selection ---------
2024.03.13 21:24:37.138 4: DbRep Rep.CPU - Command: sqlCmd select count(*) from history where device = "SMA_Energymeter" and TIMESTAMP > "§timestamp_begin§";
2024.03.13 21:24:37.140 4: DbRep Rep.CPU - FullDay option: 0
2024.03.13 21:24:37.141 4: DbRep Rep.CPU - Timestamp begin human readable: 2024-03-01 12:00:00
2024.03.13 21:24:37.142 4: DbRep Rep.CPU - Timestamp end human readable: 2024-03-13 21:24:37
2024.03.13 21:24:37.227 4: DbRep Rep.CPU - Database Model: MYSQL
2024.03.13 21:24:37.230 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.03.13 21:24:37.235 4: DbRep Rep.CPU - Communication between Client and Server will be compressed
2024.03.13 21:24:37.236 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.13 21:24:37.238 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.03.13 21:24:37.239 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.13 21:24:37.240 4: DbRep Rep.CPU - SQL execute: select count(*) from history where device = "SMA_Energymeter" and TIMESTAMP > "'2024-03-01 12:00:00'";
2024.03.13 21:24:40.519 4: DbRep Rep.CPU - SQL result: 3893576
2024.03.13 21:24:40.524 4: Rep.CPU - Forward reading "SqlResultRow_1" to "Dum.Rep.All:SqlResultRow_1"
2024.03.13 21:24:40.537 4: Rep.CPU - Forward reading "SqlResultRow_2" to "Dum.Rep.All:SqlResultRow_2"
{
1 => {
timestamp_begin => '2024-03-01 12:00:00',
autoForward => '{ ".*ResultRow.*" => "Dum.Rep.All" }',
cmd => 'sqlCmd select count(*) from history where device = "Dum.Energy" and TIMESTAMP > §timestamp_begin§'
},
}
2024.03.13 21:36:18.466 4: DbRep Rep.CPU - multiCmd index >1< start
2024.03.13 21:36:18.595 4: DbRep Rep.CPU - SQL online formatted: select count(*)
from history
where device = "Dum.Energy"
and TIMESTAMP > §timestamp_begin§;
2024.03.13 21:36:18.614 4: DbRep Rep.CPU - -------- New selection ---------
2024.03.13 21:36:18.614 4: DbRep Rep.CPU - Command: sqlCmd select count(*) from history where device = "Dum.Energy" and TIMESTAMP > §timestamp_begin§;
2024.03.13 21:36:18.615 4: DbRep Rep.CPU - FullDay option: 0
2024.03.13 21:36:18.616 4: DbRep Rep.CPU - Timestamp begin human readable: 2024-03-01 12:00:00
2024.03.13 21:36:18.616 4: DbRep Rep.CPU - Timestamp end human readable: 2024-03-13 21:36:18
2024.03.13 21:36:18.688 4: DbRep Rep.CPU - Database Model: MYSQL
2024.03.13 21:36:18.690 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.03.13 21:36:18.693 4: DbRep Rep.CPU - Communication between Client and Server will be compressed
2024.03.13 21:36:18.693 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.13 21:36:18.695 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.03.13 21:36:18.696 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.13 21:36:18.696 4: DbRep Rep.CPU - SQL execute: select count(*) from history where device = "Dum.Energy" and TIMESTAMP > '2024-03-01 12:00:00';
2024.03.13 21:36:20.686 4: DbRep Rep.CPU - SQL result: 123887
2024.03.13 21:36:20.691 4: Rep.CPU - Forward reading "SqlResultRow_1" to "Dum.Rep.All:SqlResultRow_1"
2024.03.13 21:36:20.700 4: Rep.CPU - Forward reading "SqlResultRow_2" to "Dum.Rep.All:SqlResultRow_2"
{
1 => {
timestamp_begin => '2024-03-01 12:00:00',
autoForward => '{ ".*" => "Dum.Rep.All" }',
cmd => 'sqlCmd select count(*) from history where device = "Dum.Energy" and TIMESTAMP > §timestamp_begin§'
},
}
2024.03.13 21:46:54.695 4: DbRep Rep.CPU - multiCmd index >1< start
2024.03.13 21:46:54.841 4: DbRep Rep.CPU - SQL online formatted: select count(*)
from history
where device = "Dum.Energy"
and TIMESTAMP > §timestamp_begin§;
2024.03.13 21:46:54.855 4: Rep.CPU - Forward reading "state" to "Dum.Rep.All:state"
2024.03.13 21:46:54.868 4: DbRep Rep.CPU - -------- New selection ---------
2024.03.13 21:46:54.869 4: DbRep Rep.CPU - Command: sqlCmd select count(*) from history where device = "Dum.Energy" and TIMESTAMP > §timestamp_begin§;
2024.03.13 21:46:54.870 4: DbRep Rep.CPU - FullDay option: 0
2024.03.13 21:46:54.871 4: DbRep Rep.CPU - Timestamp begin human readable: 2024-03-01 12:00:00
2024.03.13 21:46:54.872 4: DbRep Rep.CPU - Timestamp end human readable: 2024-03-13 21:46:54
2024.03.13 21:46:54.950 4: DbRep Rep.CPU - Database Model: MYSQL
2024.03.13 21:46:54.952 4: DbRep Rep.CPU - Database connect - user: fhemtest, UTF-8 option set: yes
2024.03.13 21:46:54.957 4: DbRep Rep.CPU - Communication between Client and Server will be compressed
2024.03.13 21:46:54.958 4: DbRep Rep.CPU - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.13 21:46:54.960 4: DbRep Rep.CPU - Database Character set is >utf8mb4_bin<
2024.03.13 21:46:54.962 4: DbRep Rep.CPU - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.13 21:46:54.963 4: DbRep Rep.CPU - SQL execute: select count(*) from history where device = "Dum.Energy" and TIMESTAMP > '2024-03-01 12:00:00';
2024.03.13 21:46:58.547 4: DbRep Rep.CPU - SQL result: 123948
2024.03.13 21:46:58.550 4: Rep.CPU - Forward reading "sqlCmd" to "Dum.Rep.All:sqlCmd"
2024.03.13 21:46:58.560 4: Rep.CPU - Forward reading "sqlResultNumRows" to "Dum.Rep.All:sqlResultNumRows"
2024.03.13 21:46:58.572 4: Rep.CPU - Forward reading "SqlResultRow_1" to "Dum.Rep.All:SqlResultRow_1"
2024.03.13 21:46:58.584 4: Rep.CPU - Forward reading "SqlResultRow_2" to "Dum.Rep.All:SqlResultRow_2"
2024.03.13 21:46:58.634 4: Rep.CPU - Forward reading "state" to "Dum.Rep.All:state"
+*00:01:00 {
my $cmdhash =
"{
1 => { timestamp_end => 'previous_day_end',
device => 'Stromkosten.HH_kWh',
reading => 'state',
autoForward => '{ ".*SqlResultRow_2.*" => "Stromkosten.HH_kWh" }',
cmd => 'sqlCmd select value from history where device = "Stromkosten.HH_kWh" and timestamp <= "§timestamp_end§" order by timestamp desc limit 1'
}
}";
fhem ("set Rep_test_dev multiCmd $cmdhash");
}
Can't find string terminator "'" anywhere before EOF at (eval 35383) line 8.
Unrecognized character \xC2; marked by <-- HERE after estamp <= <-- HERE near column 382 at (eval 35754) line
{
1 => { timestamp_end => 'previous_day_end',
device => 'Stromkosten.HH_kWh',
reading => 'state',
autoForward => '{ ".*SqlResultRow_2.*" => "Stromkosten.HH_kWh" }',
cmd => 'sqlCmd select value from history where device = "Stromkosten_HH.kWh" and timestamp <= "§timestamp_end§" order by timestamp desc limit 1'
}
}
+*00:01:00 {
my $cmdhash =
"{
1 => { timestamp_end => 'previous_day_end',
device => 'Stromkosten.HH_kWh',
reading => 'state',
autoForward => '{\".*SqlResultRow_2.*\" => \"Stromkosten.HH_kWh => state\"}',
cmd => 'sqlCmd select value from history where device = \"Stromkosten.HH_kWh\" and timestamp <= §timestamp_end§ order by timestamp desc limit 1'
},
}";
fhem ("set Rep_test_dev multiCmd $cmdhash");
}
ZitatDie Problemlösung: Mit dem Umweg über eine String-Variable müssen die Anführungszeichen in der Hash-Struktur escaped werden.Würdest du die äußeren Anführungszeichen ( my $cmdhash = "{ .... }" ) weglassen, bräuchtest du das escapen nicht. ;)
Zitatnur ein Gedanke:Ja, diesen Gedanken würde ich verfolgen.
Der hash-definierte Ablauf kann als zusammenhängender gerichteter Graph aufgefasst werden. Knoten sind Hash-Elemente 1,2,...,n.
DbRep SQL_DBrep_Device - command message after averageValue: >Reopen executed.<
im Log zugespamt. Das Verbose für das Device auf <2 möchte ich nicht unbedingt setzen, weil ich sonst solche "Fehler" (und wie den folgenden) nicht erkennen würde. Ja es läuft, aber ich würde es gern ohne Fehler haben und nicht nur "läuft irgedwie" set SQL_DBrep_Device multiCmd {...}
läuft, kommt ständig (unregelmäßig) die Meldung: 2024.03.15 12:08:53.831 2: DbRep SQL_DBrep_Device - ERROR - DBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction at ./FHEM/93_DbRep.pm line 11932.
Hast Du nen Tipp für mich, wie ich mich der Fehlerursache nähern kann? Für das Grundverständnis:Zitatgewährleistet der Ablauf, dass bei einem autoForward das Device den neuen Wert hat, bevor die nächste DbRep-Anweisung im multiCmd ausgeführt wird? Gilt gleiches auch für executeAfterProc?Ja das ist gewährleistet sofern alles richtig eingestellt ist.
ZitatSperre ich die DB mit "reopen ...." werde ich alle 15 Min mitNach kurzer Überlegung halte ich es für angebracht die aus den execafter/before resultierenden Meldungen auf verbose 3 setze. So essntiell sind sie im Normalfall nicht und du kannst das DbRep mit verbose 2 betreiben ohne wichtige Meldungen zu verpassen.
Code Auswählen
DbRep SQL_DBrep_Device - command message after averageValue: >Reopen executed.<
im Log zugespamt. Das Verbose für das Device auf <2 möchte ich nicht unbedingt setzen, weil ich sonst solche "Fehler" (und wie den folgenden) nicht erkennen würde. Ja es läuft, aber ich würde es gern ohne Fehler haben und nicht nur "läuft irgedwie"
executeAfterProc = {fhem("set Rep_dummy sqlCmd insert into history values (§timestamp_end§,'Dummydev','DUMMY','calculated','state','".(ReadingsVal("Dummydev","state",0)."','')")}
Siehst Du eine Möglichkeit, in einem Hash-Ablauf ein Device-Reading in die DB zu schreiben, das vom nächsten Ablaufschritt verarbeitet werden kann? Commit erzwingen mit executeBeforeAfter?2024.03.16 10:11:33 0: Server shutdown
2024.03.16 10:11:37 1: stacktrace:
2024.03.16 10:11:37 1: main::Debug called by ./FHEM/93_DbRep.pm (1616)
2024.03.16 10:11:37 1: main::DbRep_Attr called by fhem.pl (3985)
2024.03.16 10:11:37 1: main::CallFn called by fhem.pl (3205)
2024.03.16 10:11:37 1: main::CommandAttr called by fhem.pl (1282)
2024.03.16 10:11:37 1: DEBUG>{Debug $hms}
2024.03.16 10:11:37 1: stacktrace:
2024.03.16 10:11:37 1: main::Debug called by (eval 260) (1)
2024.03.16 10:11:37 1: (eval) called by ./FHEM/93_DbRep.pm (1617)
2024.03.16 10:11:37 1: main::DbRep_Attr called by fhem.pl (3985)
2024.03.16 10:11:37 1: main::CallFn called by fhem.pl (3205)
2024.03.16 10:11:37 1: main::CommandAttr called by fhem.pl (1282)
2024.03.16 10:11:37 1: DEBUG>10:11:37
2024.03.16 10:11:38 0: Featurelevel: 6.3
ZitatAm Ende bin darauf gekommen, dass das beim Setzen eines Attributwertes execute(After|Before)Proc passiert. Dort hatte ich "{Debug $hms}" eingetragen.Du hast damals mit geholfen zu ergründen ob/wieso die Variable $hms in execute(After|Before)Proc durch einen User nicht verwendet werden konnte. Das war der Kontext.
+*00:01:00 {
my $cmdhash =
{
1 => { timestamp_begin => 'current_day_begin',
timestamp_end => 'current_day_end',
device => 'HH_Tagesenergie',
reading => 'state',
autoForward => '{".*HH_Tagesenergie__state__MAX.*" => "Tagesgesamtenergie_HH => state"}',
cmd => 'maxValue'
},
};
fhem ("set Rep_test_dev multiCmd $cmdhash");
}
bei verbose 5 nur folgende Fehlermeldung2024.03.16 12:32:37 3: set Rep_test_dev multiCmd HASH(0x75b10a0) : The syntax of 'multiCmd' is wrong. See command reference.
2024.03.16 12:32:37 3: Rep_Kettenprozess: The syntax of 'multiCmd' is wrong. See command reference.
Das/der Hash in Rep_test_dev als multiCmd ausgeführt funktioniert. Wo kann der Fehler liegen?+*00:01:00 {
my $cmdhash =
qq/{
1 => { timestamp_begin => 'current_day_begin',
timestamp_end => 'current_day_end',
device => 'HH_Tagesenergie',
reading => 'state',
autoForward => '{".*HH_Tagesenergie__state__MAX.*" => "Tagesgesamtenergie_HH => state"}',
cmd => 'maxValue'
},
}/;
fhem ("set Rep.fhemtest1 multiCmd $cmdhash");
}
+*00:01:00 {
my $cmdhash =
qq/{
1 => { timestamp_begin => 'current_day_begin',
timestamp_end => 'current_day_end',
device => 'HH_Tagesenergie',
reading => 'state',
autoForward => '{".*HH_Tagesenergie__state__MAX.*" => "Tagesgesamtenergie_HH => state"}',
cmd => 'maxValue',
executeAfterProc => qq({fhem("get Rep_Daten_aus_DB_ermitteln sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','".(ReadingsVal("Tagesgesamtenergie_HH","state",0))."','')")})
},
}/;
fhem ("set Rep_test_dev multiCmd $cmdhash");
}
führt zu folgender Fehlermeldung:2024.03.16 19:44:39 3: DbRep Rep_test_dev - execute command after maxValue: '{fhem("get Rep_Daten_aus_DB_ermitteln sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','".(ReadingsVal("Tagesgesamtenergie_HH","state",0))."','')")}'
2024.03.16 19:44:39 2: DbRep Rep_Daten_aus_DB_ermitteln - DBD::mysql::st execute failed: Unknown column '§timestamp_end§' in 'field list' at ./FHEM/93_DbRep.pm line 7071.
Ich hoffe, Du hast eine Idee.2024.03.17 11:38:59 3: DbRep Rep_test_dev - execute command after maxValue: '{fhem("get Rep_Daten_aus_DB_ermitteln sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','".(ReadingsVal("Tagesgesamtenergie_HH","state",0))."','')")}'
2024.03.17 11:38:59 2: DbRep Rep_Daten_aus_DB_ermitteln - DBD::mysql::st execute failed: Incorrect datetime value: '' for column `fhem`.`history`.`TIMESTAMP` at row 1 at ./FHEM/93_DbRep.pm line 7100.
2024.03.17 11:38:59 2: DbRep Rep_Daten_aus_DB_ermitteln - ERROR - DBD::mysql::st execute failed: Incorrect datetime value: '' for column `fhem`.`history`.`TIMESTAMP` at row 1 at ./FHEM/93_DbRep.pm line 7100.
2024.03.17 11:38:59 3: get Rep_Daten_aus_DB_ermitteln sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','3.1510','') : DBD::mysql::st execute failed: Incorrect datetime value: '' for column `fhem`.`history`.`TIMESTAMP` at row 1 at ./FHEM/93_DbRep.pm line 7100.
Aber das Positive: Der Inline-Aufruf der Perl-Funktion ReadingsVal funktioniert - mit dem vorher in autoForward eingetragenen Wert! Nur noch ein kleiner Schritt...+*00:00:30 {
my $cmdhash =
qq/{
1 => { timestamp_begin => 'current_day_begin',
timestamp_end => 'current_day_end',
device => 'HH_Tagesenergie',
reading => 'state',
autoForward => '{".*HH_Tagesenergie__state__MAX.*" => "Dum.Rep.All => state"}',
cmd => 'maxValue',
executeAfterProc => qq({fhem("get Rep.fhemtest1 sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','".ReadingsVal("Tagesgesamtenergie_HH","state",0)."','')")})
},
}/;
fhem ("set Rep.fhemtest1 multiCmd $cmdhash");
}
2024.03.17 13:31:48.501 4: DbRep Rep.fhemtest1 - multiCmd index >1< start
2024.03.17 13:31:48.516 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.17 13:31:48.518 4: DbRep Rep.fhemtest1 - Command: maxValue
2024.03.17 13:31:48.519 4: DbRep Rep.fhemtest1 - FullDay option: 0
2024.03.17 13:31:48.519 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: 2024-03-17 00:00:00
2024.03.17 13:31:48.520 4: DbRep Rep.fhemtest1 - Timestamp end human readable: 2024-03-17 23:59:59
2024.03.17 13:31:48.521 4: DbRep Rep.fhemtest1 - Aggregation: no
2024.03.17 13:31:48.592 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.17 13:31:48.594 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.17 13:31:48.596 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.17 13:31:48.598 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.17 13:31:48.600 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.17 13:31:48.604 4: DbRep Rep.fhemtest1 - SQL execute: SELECT VALUE,TIMESTAMP FROM history where ( DEVICE = 'HH_Tagesenergie' ) AND ( READING = 'state' ) AND TIMESTAMP >= '2024-03-17 00:00:00' AND TIMESTAMP <= '2024-03-17 23:59:59' ORDER BY TIMESTAMP;
2024.03.17 13:31:48.642 4: Rep.fhemtest1 - Forward reading "2024-03-17__HH_Tagesenergie__state__MAX__no_aggregation" to "Dum.Rep.All:state"
2024.03.17 13:31:48.659 3: DbRep Rep.fhemtest1 - execute command after maxValue: '{fhem("get Rep.fhemtest1 sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','".ReadingsVal("Tagesgesamtenergie_HH","state",0)."','')")}'
2024.03.17 13:31:48.681 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.17 13:31:48.682 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.17 13:31:48.684 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.17 13:31:48.688 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.17 13:31:48.689 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.17 13:31:48.691 4: DbRep Rep.fhemtest1 - FullDay option: 0
2024.03.17 13:31:48.692 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: 2024-03-17 00:00:00
2024.03.17 13:31:48.693 4: DbRep Rep.fhemtest1 - Timestamp end human readable: 2024-03-17 23:59:59
2024.03.17 13:31:48.694 4: DbRep Rep.fhemtest1 - Aggregation: no
2024.03.17 13:31:48.695 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.17 13:31:48.695 4: DbRep Rep.fhemtest1 - sqlCmdBlocking Command:
insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','0','');
2024.03.17 13:31:48.698 4: DbRep Rep.fhemtest1 - data autocommitted
2024.03.17 13:31:48.699 4: DbRep Rep.fhemtest1 - Number of entries processed in db fhemtest1: 1
2024.03.17 13:31:48.718 3: get Rep.fhemtest1 sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','0','') : 1
get Rep_Daten_aus_DB_ermitteln sqlCmdBlocking insert into history values (§timestamp_end§,...
wird der timestamp_end der Rep_Daten_aus_DB_ermitteln verwendet. Wie komme ich an den timestamp_end des Hash-Elements heran? Hab's mitexecuteAfterProc => qq({fhem("attr Rep_Daten_aus_DB_ermitteln timestamp_end §timestamp_end§; get Rep_Daten_aus_DB_ermitteln sqlCmdBlocking insert into history values (§timestamp_end§,'Tagesgesamtenergie_HH','DUMMY','calculated','state','".(ReadingsVal("Tagesgesamtenergie_HH","state",0))."','')")})
vergeblich versucht.ZitatWie komme ich an den timestamp_end des Hash-Elements heran?In jedem Step (hier "1") werden die Attr timestamp_begin, timestamp_end im DbRep Device entsprechend der Schlüssel-Angabe im Commandhash gesetzt vor Ausführung des cmd bzw. executeAfterProc (d.h. alle angegebenen Attribute werden vor der Abarbeitung von Kommandos definiert).
{
1 => { executeBeforeProc => 'set LogDB1 reopen 900',
timestamp_begin => '2023-12-17 00:00:00',
timestamp_end => '2023-12-17 01:00:00',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries history'
},
2 => { timestamp_begin => '2023-12-15 11:00:00',
timestamp_end => 'previous_day_end',
device => 'SMA_Energymeter',
reading => 'Einspeisung_Wirkleistung_Zaehler',
cmd => 'countEntries'
},
3 => { userExitFn => '{ if ($READING =~ /SqlResultRow_2/ && $VALUE > 0) {nextHop (5)} }',
cmd => 'sqlCmd select count(*) from current'
},
4 => { timeDiffToNow => 'd:2',
readingNameMap => 'COUNT',
autoForward => '{ ".*COUNT.*" => "Dum.Rep.All" }',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'countEntries history'
},
5 => { timeDiffToNow => 'd:2',
readingNameMap => 'SUM',
autoForward => '{ ".*SUM.*" => "Dum.Rep.All" }',
device => 'SMA_%,MySTP.*',
reading => 'etotal,etoday,Ein% EXCLUDE=%Wirkleistung',
cmd => 'sumValue'
},
6 => { executeAfterProc => 'set LogDB1 reopen',
cmd => 'sqlCmd select count(*) from current'
},
}
2024.03.18 22:25:53.550 4: DbRep Rep.fhemtest1 - multiCmd index >1< start
2024.03.18 22:25:53.561 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.18 22:25:53.561 4: DbRep Rep.fhemtest1 - Command: countEntries history
2024.03.18 22:25:53.562 4: DbRep Rep.fhemtest1 - FullDay option: 0
2024.03.18 22:25:53.563 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: 2023-12-17 00:00:00
2024.03.18 22:25:53.563 4: DbRep Rep.fhemtest1 - Timestamp end human readable: 2023-12-17 01:00:00
2024.03.18 22:25:53.564 4: DbRep Rep.fhemtest1 - Aggregation: no
2024.03.18 22:25:53.564 3: DbRep Rep.fhemtest1 - execute command before countEntries: 'set LogDB1 reopen 900'
2024.03.18 22:25:53.566 2: LogDB1 - Connection closed until 22:40:53 (900 seconds).
2024.03.18 22:25:53.631 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.18 22:25:53.632 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.18 22:25:53.635 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.18 22:25:53.637 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.18 22:25:53.638 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.18 22:25:53.639 4: DbRep Rep.fhemtest1 - SQL execute: SELECT COUNT(*) FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung_Zaehler' ) AND TIMESTAMP >= '2023-12-17 00:00:00' AND TIMESTAMP <= '2023-12-17 01:00:00' ;
2024.03.18 22:25:53.779 4: DbRep Rep.fhemtest1 - multiCmd index >2< start
2024.03.18 22:25:53.789 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.18 22:25:53.790 4: DbRep Rep.fhemtest1 - Command: countEntries history
2024.03.18 22:25:53.791 4: DbRep Rep.fhemtest1 - FullDay option: 0
2024.03.18 22:25:53.791 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: 2023-12-15 11:00:00
2024.03.18 22:25:53.792 4: DbRep Rep.fhemtest1 - Timestamp end human readable: 2024-03-17 23:59:59
2024.03.18 22:25:53.792 4: DbRep Rep.fhemtest1 - Aggregation: no
2024.03.18 22:25:53.859 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.18 22:25:53.861 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.18 22:25:53.864 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.18 22:25:53.866 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.18 22:25:53.867 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.18 22:25:53.868 4: DbRep Rep.fhemtest1 - SQL execute: SELECT COUNT(*) FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Einspeisung_Wirkleistung_Zaehler' ) AND TIMESTAMP >= '2023-12-15 11:00:00' AND TIMESTAMP <= '2024-03-17 23:59:59' ;
2024.03.18 22:25:53.930 4: DbRep Rep.fhemtest1 - multiCmd index >3< start
2024.03.18 22:25:53.940 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.18 22:25:53.941 4: DbRep Rep.fhemtest1 - Command: sqlCmd select count(*) from current;
2024.03.18 22:25:53.941 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: not set
2024.03.18 22:25:53.942 4: DbRep Rep.fhemtest1 - Timestamp end human readable: not set
2024.03.18 22:25:53.979 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.18 22:25:53.981 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.18 22:25:53.984 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.18 22:25:53.986 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.18 22:25:53.987 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.18 22:25:53.988 4: DbRep Rep.fhemtest1 - SQL execute: select count(*) from current;
2024.03.18 22:25:53.989 4: DbRep Rep.fhemtest1 - SQL result: 1356
2024.03.18 22:25:53.993 4: DbRep Rep.fhemtest1 - multiCmd nextHop was set by previous function: 5
2024.03.18 22:25:54.014 4: DbRep Rep.fhemtest1 - nexthop is set to >5< -> multiCmd index >4< skipped
2024.03.18 22:25:54.071 4: DbRep Rep.fhemtest1 - multiCmd index >5< start
2024.03.18 22:25:54.083 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.18 22:25:54.084 4: DbRep Rep.fhemtest1 - Command: sumValue
2024.03.18 22:25:54.084 4: DbRep Rep.fhemtest1 - timeDiffToNow - year: , day: 2, hour: , min: , sec:
2024.03.18 22:25:54.085 4: DbRep Rep.fhemtest1 - Year 2024 is leap year
2024.03.18 22:25:54.085 4: DbRep Rep.fhemtest1 - startMonth: 2 endMonth: 2 lastleapyear: baseYear: 2024 diffdaylight:0 isdaylight:0
2024.03.18 22:25:54.086 4: DbRep Rep.fhemtest1 - FullDay option: 0
2024.03.18 22:25:54.087 4: DbRep Rep.fhemtest1 - Time difference to current time for calculating Timestamp begin: 172801 sec
2024.03.18 22:25:54.087 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: 2024-03-16 22:25:53
2024.03.18 22:25:54.088 4: DbRep Rep.fhemtest1 - Timestamp end human readable: 2024-03-18 22:25:54
2024.03.18 22:25:54.088 4: DbRep Rep.fhemtest1 - Aggregation: no
2024.03.18 22:25:54.139 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.18 22:25:54.140 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.18 22:25:54.145 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.18 22:25:54.146 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.18 22:25:54.146 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.18 22:25:54.151 4: DbRep Rep.fhemtest1 - SQL execute: SELECT SUM(VALUE) FROM history where ( DEVICE IN ('SMA_Energymeter','MySTP_5000') ) AND ( READING LIKE 'Ein%' OR READING IN ('etotal','etoday') ) AND READING NOT LIKE '%Wirkleistung' AND TIMESTAMP >= '2024-03-16 22:25:53' AND TIMESTAMP <= '2024-03-18 22:25:54' ;
2024.03.18 22:25:54.273 4: DbRep Rep.fhemtest1 - Forward reading "2024-03-16__SUM__no_aggregation" to "Dum.Rep.All:2024-03-16__SUM__no_aggregation"
2024.03.18 22:25:54.398 4: DbRep Rep.fhemtest1 - multiCmd index >6< start
2024.03.18 22:25:54.414 4: DbRep Rep.fhemtest1 - -------- New selection ---------
2024.03.18 22:25:54.415 4: DbRep Rep.fhemtest1 - Command: sqlCmd select count(*) from current;
2024.03.18 22:25:54.416 4: DbRep Rep.fhemtest1 - Timestamp begin human readable: not set
2024.03.18 22:25:54.417 4: DbRep Rep.fhemtest1 - Timestamp end human readable: not set
2024.03.18 22:25:54.471 4: DbRep Rep.fhemtest1 - Database Model: MYSQL
2024.03.18 22:25:54.472 4: DbRep Rep.fhemtest1 - Database connect - user: fhemtest1, UTF-8 option set: yes
2024.03.18 22:25:54.475 4: DbRep Rep.fhemtest1 - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.18 22:25:54.477 4: DbRep Rep.fhemtest1 - Database Character set is >utf8mb4_bin<
2024.03.18 22:25:54.477 4: DbRep Rep.fhemtest1 - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.18 22:25:54.478 4: DbRep Rep.fhemtest1 - SQL execute: select count(*) from current;
2024.03.18 22:25:54.479 4: DbRep Rep.fhemtest1 - SQL result: 1356
2024.03.18 22:25:54.483 3: DbRep Rep.fhemtest1 - execute command after sqlCmd: 'set LogDB1 reopen'
2024.03.18 22:25:54.512 3: DbRep Rep.fhemtest1 - command message after sqlCmd: >Reopen executed.<
Zitat von: betateilchen am 19 März 2024, 09:13:45Ich würde solche "Romane" niemals in ein Attribut schreiben.ist zu pauschal gehalten. Auf welches Attribut bezieht sich Deine Aussage? Was wäre die sinnvolle Alternative?
Nicht alles, was technisch möglich ist, ist automatisch auch sinnvoll.
2024.03.19 17:39:39 1: PERL WARNING: readdir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 552.
2024.03.19 17:39:39 1: PERL WARNING: closedir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 557.
while (my $file = readdir(DIR)) {
next unless (-f "$dir/$file");
next unless ($file =~ /^$sd/);
push @bkps,$file;
}
closedir(DIR);
defmod globalDbLog_DbRep DbRep globalDbLog
attr globalDbLog_DbRep dumpDirLocal /var/lib/fhem/dblog/
setstate globalDbLog_DbRep initialized
setstate globalDbLog_DbRep 2024-03-15 17:45:47 state initialized
Zitat von: dennisk am 20 März 2024, 06:53:04Das Verzeichnis dumpDirLocal ist les- und schreibbar durch den User, unter dem fhem läuft.
Zitat von: betateilchen am 20 März 2024, 16:54:46Vermutlich kommt die Meldung im Log immer dann, wenn Du das DbRep device im Frontend anzeigen lässt?
Zitat von: betateilchen am 20 März 2024, 16:54:46Meines Erachtens wäre es sinnvoll, im opendir() ein paar Zeilen vorher eine Fehlerbehandlung einzubauen, damit DbRep_Set() erst gar nicht bis zu der Stelle kommt, an der ein Zugriff erfolgt.
Aber warum die Fehlermeldung verursacht wird, ist damit noch nicht klar.
Zitat von: dennisk am 20 März 2024, 06:53:04Das Verzeichnis dumpDirLocal ist les- und schreibbar durch den User, unter dem fhem läuft.
Zitat von: betateilchen am 20 März 2024, 16:54:46Ohne Dir zu nahe treten zu wollen: sowas haben schon viele behauptet :)
Nimm doch mal testweise das Attribut komplett raus, dann wird das Standardverzeichnis verwendet, auf das FHEM sicher Zugriff hat.
Zitat von: DS_Starter am 21 März 2024, 00:05:08Es werden bestimmte Files im Verzeichnis "$attr{global}{modpath}/log/" gesucht.
D.h. du müsstest überprüfen was bei dir im global Device Attr "modpath" steht (üblicherweise '.') und ob es dieses Verzeichnis bei dir gibt (was Standard wäre).
$attr{global}{modpath} /usr/share/fhem
Ist eine Installation, die ich damals über das Paket fhem aus dem Arch User Repository unter Arch Linux installiert habe, siehe auch https://wiki.archlinux.org/title/FHEM (https://wiki.archlinux.org/title/FHEM) Und in diesem Verzeichnis existierte kein Verzeichnis log
Dieses habe ich jetzt mal hinzugefügt. Reicht das schon? Oder such DbRep etwas bestimmtes darunter?
ZitatDieses habe ich jetzt mal hinzugefügt. Reicht das schon? Oder such DbRep etwas bestimmtes darunter?Das reicht.
Zitat von: DS_Starter am 21 März 2024, 18:01:25ZitatDieses habe ich jetzt mal hinzugefügt. Reicht das schon? Oder such DbRep etwas bestimmtes darunter?Das reicht.
Ist dumpDirLocal nicht gesetzt, werden Dump-Files mit "dumpMySQL clientSide" oder "dumpSQLite" in dieses Verzeichnis per default abgelegt bzw. wird aus (evtl.) gefundenen Files in dem Verzeichnis eine Drop-Down Liste für die Restore Set-Befehle erstellt.
Die Hilfe zum Attr dumpDirLocal erklärt den Zusammenhang ebenfalls.
ZitatAber dumpDirLocal ist doch gesetzt.Wenn es gesetzt ist, wird das angegebene Verzeichnis benutzt.
2024.03.22 14:38:20.511 2: DbRep SQL_DBrep_Device - ERROR - DBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction at ./FHEM/93_DbRep.pm line 11994
Dieser kommt seit der Umstellung 10-30 mal pro Tag von einem der Device das aktuell alle 15 Min ausgeführt wird. Zitat# führt ein sth execute prepared Insert auskommentiert. Leider kann ich mit dem Hinweis so erstmal nichts anfangen.... Kannst Du mir einen Tipp geben, woher das kommt, wodurch diese Fehlermeldung kommt? Eigentlich sollte die DB (bzw das DBRep) weniger zu tun haben, als früher, weil alles der Reihe nach erfüllt wird und nicht teilweise 4 Aufrufe für ein Device nötig sind.....
# return ERROR oder die Anzahl der betroffenen Zeilen
Zitat von: DS_Starter am 15 März 2024, 13:14:16@flummy1978,Wenn ich es richtig verstanden habe, hast Du das bereits in der aktuellen Ausführung umgestellt? Ich bekomme noch die Meldung:
Nach kurzer Überlegung halte ich es für angebracht die aus den execafter/before resultierenden Meldungen auf verbose 3 setze. So essntiell sind sie im Normalfall nicht und du kannst das DbRep mit verbose 2 betreiben ohne wichtige Meldungen zu verpassen.
2024.03.22 18:52:30.481 2: DBLogging - Connection closed until 19:52:30 (3600 seconds).
ZitatWenn ich es richtig verstanden habe, hast Du das bereits in der aktuellen Ausführung umgestellt? Ich bekomme noch die Meldung:Diese Meldung kommt aber nicht aus DbRep, sondern DbLog als Reaktion auf das Schließen der Verbindung.
ZitatDBD::mysql::st execute failed: Lock wait timeout exceededIst im Prinzip kein technischer Fehler im eigentlichen Sinn, sondern ist eine Reaktion darauf dass
Zitat von: DS_Starter am 22 März 2024, 22:58:20Du könntest
ZitatWarum werden die Attribute bei Ausführung von multiCmd im DBRep-Device gespeichert? Dies hätte ich so nicht erwartet bzw. müsste darauf hingewiesen werden.multiCmd ist im Prinzip eine Verkettung von Befehlen mit einem dynamisch konfigurierten DbRep Device.
Zitat von: DS_Starter am 24 März 2024, 16:35:15es ist davon ausgezugehen dass die DB auf der Synology mit den Default-Einstellungen des Synology-Paketes nicht optimal eingestellt ist
Auch das Tool MySQLTuner (https://github.com/major/MySQLTuner-perl) kann hilfreich sein um herauszubekommen an welchen Schrauben es sich lohnen würde zu drehen.
Wie gesagt, das Reading sql_processing_time gibt schonmal einen groben Überblick über die Performance.
...
# Please add your custom configuration to here:
!include /var/packages/MariaDB/etc/my.cnf
...
Zitat von: CP am 14 April 2024, 21:46:03Kann ich in dem DBRep Device die Attribute wie folgt setzen?
attr device A,B
attr reading X,Y,V
ZitatmultiCmd {<Befehl-Hash>}
Executes several set commands sequentially in a definable order.
The commands and certain modifiable attributes that are relevant for the commands are transferred in a hash.
The commands to be executed (key cmd) and the attributes to be set for them are defined via keys in the transferred hash. The order in which the commands are processed is determined via the command index in the hash which must not be '0'.
Attribute keys that can be defined in the hash are:
autoForward, averageCalcForm, device, executeBeforeProc, executeAfterProc, reading, readingNameMap, seqDoubletsVariance, timestamp_begin, timestamp_end, timeDiffToNow, timeOlderThan, timeYearPeriod, userExitFn,
Note: All of the above attributes are deleted before each command index is executed.
The attributes specified in the respective command index are set before the step is executed.
Zitat von: DS_Starter am 21 März 2024, 23:30:17ZitatAber dumpDirLocal ist doch gesetzt.Wenn es gesetzt ist, wird das angegebene Verzeichnis benutzt.
Wenn die Fehlerausschrift in diesem Fall auftritt, kann das angegebene Verzeichnis nicht gelesen werden.
2024.04.20 17:57:57 1: PERL WARNING: readdir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 558.
2024.04.20 17:57:57 1: PERL WARNING: closedir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 563.
defmod globalDbLog_DbRep DbRep globalDbLog
attr globalDbLog_DbRep dumpDirLocal /var/lib/fhem/dblog/
setstate globalDbLog_DbRep initialized
setstate globalDbLog_DbRep 2024-04-20 17:53:33 state initialized
setstate globalDbLog_DbRep 2024-03-24 07:56:37 timestamp_oldest_dataset 2023-09-25 20:37:40+02
{qx(echo "test" > /var/lib/fhem/dblog/testfile)}
ausführe, wird die Datei anstandslos erstellt. Unter /var/lib/fhem/dblog existiert auch das Unterverzeichnis log, auch dort kann fhem reinschreiben. Lesen mittels in fhem ausgeführtem {qx(ls /var/lib/fhem/dblog/)}
bzw. {qx(ls /var/lib/fhem/dblog/log)}
funktioniert ebenso. Kann ich irgendwas tun, um rauszufinden, warum gerade beim Neustart von fhem diese Fehlermeldungen auftauchen?
2024.04.24 00:01:11 2: DbRep myDbRep - Timeout occured (limit: 10 seconds). You may be able to adjust the "Timeout" attribute.
2024.04.24 00:01:11 2: DbRep myDbRep - ERROR - Timeout occured (limit: 10 seconds). You may be able to adjust the "Timeout" attribute.
2024.04.24 00:01:11 1: PERL WARNING: Argument "Timeout occured (limit: 10 seconds). You may be able to ..." isn't numeric in subtraction (-) at (eval 39568) line 39.
Raspberry Pi 3:
# $Id: 93_DbRep.pm 28714 2024-03-27 21:40:03Z DS_Starter $
2024.05.02 01:15:00 3: DbRep myDbRep_Vacuum - ################################################################
2024.05.02 01:15:00 3: DbRep myDbRep_Vacuum - ### New optimize table / vacuum execution ###
2024.05.02 01:15:00 3: DbRep myDbRep_Vacuum - ################################################################
2024.05.02 01:15:00 3: DbRep myDbRep_Vacuum - execute command before optimize: 'set myDbLog reopen 3600'
2024.05.02 01:15:00 2: myDbLog - Connection closed until 02:15:00 (3600 seconds).
2024.05.02 01:15:00 3: myDbLog - Database disconnected by request.
2024.05.02 01:15:00 3: DbRep myDbRep_Vacuum - Size of database /opt/fhem/fhem.db before optimize (MB): 2616
2024.05.02 01:45:31 1: DbRep myDbRep_Vacuum -> BlockingCall HASH(0x466cf48)}{fn} pid:DEAD:26397 Process died prematurely
2024.05.02 01:45:31 3: DbRep myDbRep_Vacuum - execute command after optimize: 'set myDbLog reopen'
2024.05.02 01:45:31 3: myDbLog - Reopen requested
2024.05.02 01:45:31 3: DbRep myDbRep_Vacuum - command message after optimize: >Reopen executed.<
2024.05.02 01:45:31 2: DbRep myDbRep_Vacuum - Database optimize aborted: "Process died prematurely"
2024.05.02 01:45:40 3: myDbLog - Database disconnected by request.
2024.05.02 01:45:48 3: myDbLog - SubProcess connected to /opt/fhem/fhem.db
Raspberry Pi 2:
# $Id: 93_DbRep.pm 28714 2024-03-27 21:40:03Z DS_Starter $
2024.04.08 04:01:00 3: DbRep myDbRep_Vacuum - ################################################################
2024.04.08 04:01:00 3: DbRep myDbRep_Vacuum - ### New optimize table / vacuum execution ###
2024.04.08 04:01:00 3: DbRep myDbRep_Vacuum - ################################################################
2024.04.08 04:01:00 3: DbRep myDbRep_Vacuum - execute command before optimize: 'set myDbLog reopen 7200'
2024.04.08 04:01:00 2: myDbLog - Connection closed until 06:01:00 (7200 seconds).
2024.04.08 04:01:00 3: DbRep myDbRep_Vacuum - Size of database /opt/fhem/fhem.db before optimize (MB): 1717
2024.04.08 04:01:00 3: myDbLog - Database disconnected by request.
2024.04.08 04:39:55 1: DbRep myDbRep_Vacuum -> BlockingCall HASH(0x2961da8)}{fn} pid:DEAD:9923 Process died prematurely
2024.04.08 04:39:55 3: DbRep myDbRep_Vacuum - execute command after optimize: 'set myDbLog reopen'
2024.04.08 04:39:55 3: myDbLog - Reopen requested
2024.04.08 04:39:55 3: DbRep myDbRep_Vacuum - command message after optimize: >Reopen executed.<
2024.04.08 04:39:55 2: DbRep myDbRep_Vacuum - Database optimize aborted: "Process died prematurely"
2024.04.08 04:39:56 3: myDbLog - Database disconnected by request.
2024.04.08 04:39:59 3: myDbLog - SubProcess connected to /opt/fhem/fhem.db
Raspberry Pi 2: SQLITE_FILE_SIZE_MB 1712
Raspberry Pi 3: SQLITE_FILE_SIZE_MB 2569
Raspberry Pi 2:
# $Id: 93_DbRep.pm 28525 2024-02-16 20:57:30Z DS_Starter $
2024.05.07 13:13:28 3: DbRep myDbRep_Vacuum - ################################################################
2024.05.07 13:13:28 3: DbRep myDbRep_Vacuum - ### New optimize table / vacuum execution ###
2024.05.07 13:13:28 3: DbRep myDbRep_Vacuum - ################################################################
2024.05.07 13:13:28 3: DbRep myDbRep_Vacuum - execute command before optimize: 'set myDbLog reopen 7200'
2024.05.07 13:13:28 2: myDbLog - Connection closed until 15:13:28 (7200 seconds).
2024.05.07 13:13:28 3: myDbLog - Database disconnected by request.
2024.05.07 13:13:29 3: DbRep myDbRep_Vacuum - Size of database /opt/fhem/fhem.db before optimize (MB): 1711
2024.05.07 14:00:00 3: DbRep myDbRep_Size - connection myDbLog to db /opt/fhem/fhem.db is closed until 15:13:28 - svrinfo postponed
2024.05.07 14:21:57 3: DbRep myDbRep_Vacuum - Size of database /opt/fhem/fhem.db after optimize (MB): 1711
2024.05.07 14:22:01 3: DbRep myDbRep_Vacuum - Optimize tables of /opt/fhem/fhem.db finished - total time (hh:mm:ss): 01:08:31
2024.05.07 14:22:01 3: DbRep myDbRep_Vacuum - Optimize tables finished successfully.
2024.05.07 14:22:01 3: DbRep myDbRep_Vacuum - execute command after optimize: 'set myDbLog reopen'
2024.05.07 14:22:02 3: myDbLog - Reopen requested
2024.05.07 14:22:02 2: DbRep myDbRep_Vacuum - command message after optimize: >Reopen executed.<
2024.05.07 14:22:03 3: myDbLog - Database disconnected by request.
2024.05.07 14:22:04 3: myDbLog - SubProcess connected to /opt/fhem/fhem.db
Raspberry Pi 3:
# $Id: 93_DbRep.pm 28627 2024-03-09 10:38:48Z DS_Starter $
Messages collected while initializing FHEM:configfile: Device "myDbRep_Vacuum" -> The attribute 'allowDeletion' is obsolete and will be deleted soon. Please press "save config" when FHEM start is finished.
Device "myDbRep_delEntries" -> The attribute 'allowDeletion' is obsolete and will be deleted soon. Please press "save config" when FHEM start is finished.
Device "myDbRep_delDevice" -> The attribute 'allowDeletion' is obsolete and will be deleted soon. Please press "save config" when FHEM start is finished.
Device "myDbRep_delReadings" -> The attribute 'allowDeletion' is obsolete and will be deleted soon. Please press "save config" when FHEM start is finished.
2024.05.07 11:38:25 3: DbRep myDbRep_Vacuum - ################################################################
2024.05.07 11:38:25 3: DbRep myDbRep_Vacuum - ### New optimize table / vacuum execution ###
2024.05.07 11:38:25 3: DbRep myDbRep_Vacuum - ################################################################
2024.05.07 11:38:25 3: DbRep myDbRep_Vacuum - execute command before optimize: 'set myDbLog reopen 3600'
2024.05.07 11:38:25 2: myDbLog - Connection closed until 12:38:25 (3600 seconds).
2024.05.07 11:38:25 3: DbRep myDbRep_Vacuum - Size of database /opt/fhem/fhem.db before optimize (MB): 2568
2024.05.07 11:38:25 3: myDbLog - Database disconnected by request.
2024.05.07 11:39:01 3: Timer: time difference too large! interval=59, Sekunde=01
2024.05.07 11:41:03 3: Timer: time difference too large! interval=57, Sekunde=03
2024.05.07 11:43:04 3: Timer: time difference too large! interval=57, Sekunde=03
2024.05.07 11:45:01 3: Timer: time difference too large! interval=59, Sekunde=01
Neustart weil keine Reaktion mehr
2024.05.07 11:22:39 1: Including fhem.cfg
...
2024.05.07 11:23:06 3: sduinoESP8266_1: StartInit, get version, retry = 1
2024.05.07 13:16:39 1: sduinoESP8266_1: CheckVersionResp, Not an SIGNALduino device, got for V: undef
2024.05.09 09:13:35.933 3: DbRep Rep.SQLite1 - ################################################################
2024.05.09 09:13:35.934 3: DbRep Rep.SQLite1 - ### New optimize table / vacuum execution ###
2024.05.09 09:13:35.935 3: DbRep Rep.SQLite1 - ################################################################
2024.05.09 09:13:36.009 3: DbRep Rep.SQLite1 - Size of database /opt/fhem1.db before optimize (MB): 5615
2024.05.09 09:15:32.462 3: DbRep Rep.SQLite1 - Size of database /opt/fhem1.db after optimize (MB): 1781
2024.05.09 09:15:32.477 3: DbRep Rep.SQLite1 - Optimize tables of /opt/fhem1.db finished - total time (hh:mm:ss): 00:01:56
2024.05.09 09:15:32.484 3: DbRep Rep.SQLite1 - Optimize tables finished successfully.
2024.05.09 09:20:35.127 3: DbRep Rep.SQLite1 - ################################################################
2024.05.09 09:20:35.127 3: DbRep Rep.SQLite1 - ### New optimize table / vacuum execution ###
2024.05.09 09:20:35.128 3: DbRep Rep.SQLite1 - ################################################################
2024.05.09 09:20:35.128 3: DbRep Rep.SQLite1 - execute command before optimize: 'set LogSQLITE1 reopen 3600'
2024.05.09 09:20:35.129 2: LogSQLITE1 - Connection closed until 10:20:35 (3600 seconds).
2024.05.09 09:20:35.207 3: DbRep Rep.SQLite1 - Size of database /opt/fhem1.db before optimize (MB): 1781
2024.05.09 09:21:43.106 3: DbRep Rep.SQLite1 - Size of database /opt/fhem1.db after optimize (MB): 1781
2024.05.09 09:21:43.356 3: DbRep Rep.SQLite1 - Optimize tables of /opt/fhem1.db finished - total time (hh:mm:ss): 00:01:08
2024.05.09 09:21:43.359 3: DbRep Rep.SQLite1 - Optimize tables finished successfully.
2024.05.09 09:21:43.360 3: DbRep Rep.SQLite1 - execute command after optimize: 'set LogSQLITE1 reopen'
2024.05.09 09:21:43.389 3: DbRep Rep.SQLite1 - command message after optimize: >Reopen executed.<
ZitatBei der Ausführung des vacuum Kommandos wird bei SQLite Datenbanken automatisch das PRAGMA auto_vacuum = FULL angewendet.
Das vacuum Kommando erfordert zusätzlichen temporären Speicherplatz. Sollte der Platz im Standard TMPDIR Verzeichnis nicht ausreichen, kann SQLite durch setzen der Umgebungsvariable SQLITE_TMPDIR ein ausreichend großes Verzeichnis zugewiesen werden.
(siehe: www.sqlite.org/tempfiles)
2024.05.09 09:41:22.310 3: DbRep Rep.Test - ################################################################
2024.05.09 09:41:22.311 3: DbRep Rep.Test - ### New optimize table / vacuum execution ###
2024.05.09 09:41:22.312 3: DbRep Rep.Test - ################################################################
2024.05.09 09:41:22.313 3: DbRep Rep.Test - execute command before optimize: 'set LogSQLITE reopen 3600'
2024.05.09 09:41:22.314 2: LogSQLITE - Connection closed until 10:41:22 (3600 seconds).
2024.05.09 09:41:22.382 4: DbRep Rep.Test - Database Model: SQLITE
2024.05.09 09:41:22.384 4: DbRep Rep.Test - Database connect - user: no, UTF-8 option set: no
2024.05.09 09:41:22.401 4: DbRep Rep.Test - simple do statement: PRAGMA temp_store=FILE
2024.05.09 09:41:22.402 4: DbRep Rep.Test - simple do statement: PRAGMA synchronous=FULL
2024.05.09 09:41:22.432 3: DbRep Rep.Test - Size of database /opt/fhem.db before optimize (MB): 868
2024.05.09 09:41:22.434 4: DbRep Rep.Test - Exec PRAGMA Statement: PRAGMA auto_vacuum = FULL;
2024.05.09 09:41:22.437 4: DbRep Rep.Test - VACUUM database /opt/fhem.db....
2024.05.09 09:41:45.121 3: DbRep Rep.Test - Size of database /opt/fhem.db after optimize (MB): 867
2024.05.09 09:41:45.364 3: DbRep Rep.Test - Optimize tables of /opt/fhem.db finished - total time (hh:mm:ss): 00:00:22
2024.05.09 09:41:45.368 3: DbRep Rep.Test - Optimize tables finished successfully.
2024.05.09 09:41:45.369 3: DbRep Rep.Test - execute command after optimize: 'set LogSQLITE reopen'
2024.05.09 09:41:45.424 3: DbRep Rep.Test - command message after optimize: >Reopen executed.<
Zitat von: DS_Starter am 09 Mai 2024, 09:54:29Relevant ist dabei "PRAGMA temp_store=FILE". Im Verlauf der letzten Changes war temp_store=MEMORY eingeflossen was bei wenig verfügbaren Speicher im Vergleich zur DB Größe möglicherweise zu Engpässen führen könnte.
print STDERR $dir;
while (my $file = readdir(DIR)) {
next unless (-f "$dir/$file");
next unless ($file =~ /^$sd/);
push @bkps,$file;
}
closedir(DIR);
/usr/share/fhem/log/2024.05.12 16:39:52 1: PERL WARNING: readdir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 559.
2024.05.12 16:39:52 1: PERL WARNING: closedir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 564.
/var/lib/fhem/dblog/
Wenn ich dann die Seite für das DbRep Device öffne, erhalte ich den Pfad erneut 2x ausgegeben:/usr/share/fhem/log/2024.05.12 16:39:52 1: PERL WARNING: readdir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 559.
2024.05.12 16:39:52 1: PERL WARNING: closedir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 564.
/var/lib/fhem/dblog//var/lib/fhem/dblog//var/lib/fhem/dblog/
Das wiederholt sich dann so für jedes Öffnen oder Neuladen der Seite für das DbRep Device, sprich es kommt immer 2x die Ausgabe des Pfads dazu.opendir(DIR,$dir) or print(qq{Unable to open directory $dir: $!});
Daraufhin erhalte ich dann folgende Ausgabe:Unable to open directory /usr/share/fhem/log/: No such file or directory2024.05.13 10:48:37 1: PERL WARNING: readdir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 558.
2024.05.13 10:48:37 1: PERL WARNING: closedir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 563.
Zitat von: dennisk am 20 April 2024, 18:16:46Zitat von: DS_Starter am 21 März 2024, 23:30:17ZitatAber dumpDirLocal ist doch gesetzt.Wenn es gesetzt ist, wird das angegebene Verzeichnis benutzt.
Wenn die Fehlerausschrift in diesem Fall auftritt, kann das angegebene Verzeichnis nicht gelesen werden.
Also nach einem Update und Neustart habe ich nun wieder folgendes im Log - ohne, dass ich DbRep im UI aufgerufen hätte:Code Auswählen2024.04.20 17:57:57 1: PERL WARNING: readdir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 558.
2024.04.20 17:57:57 1: PERL WARNING: closedir() attempted on invalid dirhandle DIR at /usr/share/fhem/FHEM/93_DbRep.pm line 563.
Das DEF sieht wie gesagt so aus:Code Auswählendefmod globalDbLog_DbRep DbRep globalDbLog
attr globalDbLog_DbRep dumpDirLocal /var/lib/fhem/dblog/
setstate globalDbLog_DbRep initialized
setstate globalDbLog_DbRep 2024-04-20 17:53:33 state initialized
setstate globalDbLog_DbRep 2024-03-24 07:56:37 timestamp_oldest_dataset 2023-09-25 20:37:40+02
dumpDirLocal ist also gesetzt. Und wenn ich in fhem den BefehlCode Auswählen{qx(echo "test" > /var/lib/fhem/dblog/testfile)}
ausführe, wird die Datei anstandslos erstellt. Unter /var/lib/fhem/dblog existiert auch das Unterverzeichnis log, auch dort kann fhem reinschreiben. Lesen mittels in fhem ausgeführtemCode Auswählen{qx(ls /var/lib/fhem/dblog/)}
bzw.Code Auswählen{qx(ls /var/lib/fhem/dblog/log)}
funktioniert ebenso. Kann ich irgendwas tun, um rauszufinden, warum gerade beim Neustart von fhem diese Fehlermeldungen auftauchen?