diff --git a/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Day.txt b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Day.txt new file mode 100644 index 000000000..c851c387b --- /dev/null +++ b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Day.txt @@ -0,0 +1,30 @@ +defmod LogDBRep_Statistic_previous_Day DbRep LogDB +attr LogDBRep_Statistic_previous_Day DbLogExclude .* +attr LogDBRep_Statistic_previous_Day comment Version 2023.01.02 15:00 +attr LogDBRep_Statistic_previous_Day device WR_1_API +attr LogDBRep_Statistic_previous_Day reading SW_Statistic%_Day,Statistic_EnergyHomeBat_Day EXCLUDE=%NoBat%,%EnergyPv% +attr LogDBRep_Statistic_previous_Day room System +attr LogDBRep_Statistic_previous_Day sqlCmdHistoryLength 1 +attr LogDBRep_Statistic_previous_Day sqlFormatService https://sqlformat.org +attr LogDBRep_Statistic_previous_Day suppressReading SqlResultRow_.* +attr LogDBRep_Statistic_previous_Day userExitFn splitReading .*:.* +attr LogDBRep_Statistic_previous_Day verbose 0 + +setstate LogDBRep_Statistic_previous_Day 2024-02-09 01:17:00 sqlCmd SELECT *\ +FROM\ + (SELECT h.TIMESTAMP,\ + CONCAT('WR_1_API_', h.READING) AS 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\ + JOIN\ + (SELECT max(TIMESTAMP) AS TIMESTAMP,\ + READING\ + FROM history\ + WHERE §device§\ + AND §reading§\ + AND TIMESTAMP > DATE_FORMAT(NOW() - INTERVAL 1 DAY, '%Y-%m-%d 00:00:00')\ + AND TIMESTAMP < DATE_FORMAT(NOW() - INTERVAL 1 DAY, '%Y-%m-%d 23:59:59')\ + GROUP BY READING) x1 USING(TIMESTAMP,READING)) x;; \ No newline at end of file diff --git a/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Month.txt b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Month.txt new file mode 100644 index 000000000..6840b3452 --- /dev/null +++ b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Month.txt @@ -0,0 +1,84 @@ +defmod LogDBRep_Statistic_previous_Month DbRep LogDB +attr LogDBRep_Statistic_previous_Month DbLogExclude .* +attr LogDBRep_Statistic_previous_Month allowDeletion 0 +attr LogDBRep_Statistic_previous_Month comment Version 2023.01.02 15:00 +attr LogDBRep_Statistic_previous_Month device WR_1_API +attr LogDBRep_Statistic_previous_Month reading SW_Statistic%_Month,Statistic_EnergyHomeBat_Month EXCLUDE=%NoBat%,%EnergyPv% +attr LogDBRep_Statistic_previous_Month room System +attr LogDBRep_Statistic_previous_Month sqlCmdHistoryLength 1 +attr LogDBRep_Statistic_previous_Month sqlFormatService https://sqlformat.org +attr LogDBRep_Statistic_previous_Month suppressReading SqlResultRow_.* +attr LogDBRep_Statistic_previous_Month userExitFn splitReading .*:.* +attr LogDBRep_Statistic_previous_Month verbose 0 + +setstate LogDBRep_Statistic_previous_Month 2024-01-24 17:05:22 sqlCmd SELECT *\ +FROM\ + (SELECT h.TIMESTAMP,\ + CONCAT('WR_1_API_', h.READING) AS 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\ + JOIN\ + (SELECT max(TIMESTAMP) AS TIMESTAMP,\ + READING\ + FROM history\ + WHERE §device§\ + AND §reading§\ + 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 *\ +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_connect_nodes_consumption_Month' AS READING,\ + cast(sum(VALUE) AS DECIMAL(10, 0)) AS VALUE\ +FROM history\ +WHERE DEVICE='EVU_Tibber_connect'\ + 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');; \ No newline at end of file diff --git a/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Quarter.txt b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Quarter.txt new file mode 100644 index 000000000..dd3c96821 --- /dev/null +++ b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Quarter.txt @@ -0,0 +1,16 @@ +defmod LogDBRep_Statistic_previous_Quarter DbRep LogDB +attr LogDBRep_Statistic_previous_Quarter DbLogExclude .* +attr LogDBRep_Statistic_previous_Quarter allowDeletion 0 +attr LogDBRep_Statistic_previous_Quarter comment Version 2023.04.28 17:00\ +\ +Achtung das automatische Formatieren hat einen Fehler! +attr LogDBRep_Statistic_previous_Quarter device WR_1_API +attr LogDBRep_Statistic_previous_Quarter reading SW_Statistic_%Year,Statistic_EnergyHomeBat_Year EXCLUDE=%Autarky%,%Rate%,%NoBat% +attr LogDBRep_Statistic_previous_Quarter room System +attr LogDBRep_Statistic_previous_Quarter sqlCmdHistoryLength 1 +attr LogDBRep_Statistic_previous_Quarter 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 );; +attr LogDBRep_Statistic_previous_Quarter suppressReading SqlResultRow_.* +attr LogDBRep_Statistic_previous_Quarter userExitFn splitReading .*:.* +attr LogDBRep_Statistic_previous_Quarter verbose 0 + +setstate LogDBRep_Statistic_previous_Quarter 2024-01-12 17:49:52 sqlCmd SELECT * FROM (SELECT TIMESTAMP,IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,VALUE FROM (SELECT DATE_FORMAT(CURRENT_DATE - INTERVAL @offset MONTH,'%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,'_Year' AS READING,'previous' AS VALUE UNION ALL SELECT * FROM (SELECT DATE_FORMAT(end.TIMESTAMP,'%Y-%m-%d 23:59:00') AS TIMESTAMP,end.READING,(end.VALUE-begin.VALUE) AS VALUE FROM (SELECT h.TIMESTAMP,h.READING,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL @offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) end INNER JOIN (SELECT h.TIMESTAMP,h.READING,if(MONTH(x1.TIMESTAMP)=12,0,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 4+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 3+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) begin ON end.READING = begin.READING AND MONTH(end.TIMESTAMP) IN (3,6,9,12)) QX) QA) UA UNION ALL SELECT TIMESTAMP,IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,VALUE FROM (SELECT DATE_FORMAT(CURRENT_DATE - INTERVAL 3+@offset MONTH,'%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,'_Year' AS READING,null AS VALUE UNION ALL SELECT * FROM (SELECT DATE_FORMAT(end.TIMESTAMP,'%Y-%m-%d 23:59:00') AS TIMESTAMP,end.READING,(end.VALUE-begin.VALUE) AS VALUE FROM (SELECT h.TIMESTAMP,h.READING,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 4+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 3+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) end INNER JOIN (SELECT h.TIMESTAMP,h.READING,if(MONTH(x1.TIMESTAMP)=12,0,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 7+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 6+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) begin ON end.READING = begin.READING AND MONTH(end.TIMESTAMP) IN (3,6,9,12)) QX) QB UNION ALL SELECT TIMESTAMP,IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,VALUE FROM (SELECT DATE_FORMAT(CURRENT_DATE - INTERVAL 6+@offset MONTH,'%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,'_Year' AS READING,null AS VALUE UNION ALL SELECT * FROM (SELECT DATE_FORMAT(end.TIMESTAMP,'%Y-%m-%d 23:59:00') AS TIMESTAMP,end.READING,(end.VALUE-begin.VALUE) AS VALUE FROM (SELECT h.TIMESTAMP,h.READING,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 7+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 6+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) end INNER JOIN (SELECT h.TIMESTAMP,h.READING,if(MONTH(x1.TIMESTAMP)=12,0,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 10+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 9+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) begin ON end.READING = begin.READING AND MONTH(end.TIMESTAMP) IN (3,6,9,12)) QX) QC UNION ALL SELECT TIMESTAMP,IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,VALUE FROM (SELECT DATE_FORMAT(CURRENT_DATE - INTERVAL 9+@offset MONTH,'%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,'_Year' AS READING,null AS VALUE UNION ALL SELECT * FROM (SELECT DATE_FORMAT(end.TIMESTAMP,'%Y-%m-%d 23:59:00') AS TIMESTAMP,end.READING,(end.VALUE-begin.VALUE) AS VALUE FROM (SELECT h.TIMESTAMP,h.READING,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 10+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 9+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) end INNER JOIN (SELECT h.TIMESTAMP,h.READING,if(MONTH(x1.TIMESTAMP)=12,0,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 >= DATE_FORMAT(CURRENT_DATE - INTERVAL 13+@offset MONTH,'%Y/%m/28') AND TIMESTAMP < DATE_FORMAT(CURRENT_DATE - INTERVAL 12+@offset MONTH,'%Y/%m/01') GROUP BY READING) x1 ON h.TIMESTAMP = x1.TIMESTAMP AND h.READING = x1.READING AND h.VALUE != 0) begin ON end.READING = begin.READING AND MONTH(end.TIMESTAMP) IN (3,6,9,12)) QX) QD;; \ No newline at end of file diff --git a/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Year.txt b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Year.txt new file mode 100644 index 000000000..8783ed02b --- /dev/null +++ b/fhem/contrib/ch.eick/Photovoltaik/LogDBRep_Devices/RAW_LogDBRep_Statistic_previous_Year.txt @@ -0,0 +1,72 @@ +defmod LogDBRep_Statistic_previous_Year DbRep LogDB +attr LogDBRep_Statistic_previous_Year DbLogExclude .* +attr LogDBRep_Statistic_previous_Year comment Version 2023.04.28 17:00 +attr LogDBRep_Statistic_previous_Year device WR_1_API +attr LogDBRep_Statistic_previous_Year reading SW_Statistic%_Year,Statistic_EnergyHomeBat_Year EXCLUDE=%NoBat%,%EnergyPv% +attr LogDBRep_Statistic_previous_Year room System +attr LogDBRep_Statistic_previous_Year sqlCmdHistoryLength 1 +attr LogDBRep_Statistic_previous_Year sqlFormatService https://sqlformat.org +attr LogDBRep_Statistic_previous_Year suppressReading SqlResultRow_.* +attr LogDBRep_Statistic_previous_Year userExitFn splitReading .*:.* +attr LogDBRep_Statistic_previous_Year verbose 0 + +setstate LogDBRep_Statistic_previous_Year 2024-01-01 08:05:11 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 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 = 'Kia_eNiro_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_0_lp_1 USING(TIMESTAMP,READING)\ +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 = 'Gast_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_0_lp_2 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_lp_1 USING(TIMESTAMP,READING);; \ No newline at end of file