Compare commits

..
8 Commits
Author SHA1 Message Date
br e6be25b340 db update für KW Zahlen 2022-12-21 23:25:24 +01:00
Björn Runden 472a6d9654 updtaes 2022-11-10 11:19:34 +01:00
br 48a470ce34 exporte final 2022-11-07 13:17:25 +01:00
br 23c61b7ef8 export 2 2022-11-07 12:06:53 +01:00
br 50fe3c0085 export angepasst 2022-11-07 12:02:49 +01:00
br 4f690b9b71 wasser auch 2022-11-07 11:32:07 +01:00
br c0994119eb views aktualisiert 2022-11-07 11:28:59 +01:00
br e412111edb views kreiert 2022-11-07 11:23:52 +01:00
10 changed files with 392 additions and 10 deletions

No files matched your search

+3
View File
@@ -4,3 +4,6 @@ gtVi.py
__pycache__/
energiemon_*.csv
energiemon_*.csv.utf
csv/*
energiemon.db--
energiemon.BAK.db
+17
View File
@@ -0,0 +1,17 @@
/*.open energiemon.db*/
.mode csv
.separator ';'
.header on
select id,datetime(zeitpunkt,"localtime")as zeitpunkt,gaszaehler,wetterinfo
, replace (gasval,'.',',') as gasval
, replace (vorgasval,'.',',') as vorgasval
, replace (gasvolumen,'.',',') as gasvolumen
, replace (zeitspannestd,'.',',') as zeitspannestd
, replace (gasvolumen24,'.',',') as gasvolumen24
, replace (gasfaktor,'.',',') as gasfaktor
, replace (gasverbrauchKWhauf24,'.',',') as gasverbrauchKWhauf24
, replace (GradCelsiusAussen,'.',',') as GradCelsiusAussen
from vgasroh ;
+11
View File
@@ -0,0 +1,11 @@
/*.open energiemon.db*/
.mode csv
.separator ';'
.header on
select mon
, replace (gasKWhSum,'.',',') as gasKWhSum
, replace (stromKWhSum,'.',',') as stromKWhSum
, replace (wasserQmSum,'.',',') as wasserQmSum
from vmonatssummen ;
+1 -1
View File
@@ -1,4 +1,4 @@
/*.open registrierung.db*/
/*.open energiemon.db*/
.mode csv
.separator ';'
.header on
+13
View File
@@ -0,0 +1,13 @@
/*.open energiemon.db*/
.mode csv
.separator ';'
.header on
select id,datetime(zeitpunkt,"localtime")as zeitpunkt,stromzaehler,wetterinfo
, replace (stromval,'.',',') as stromval
, replace (vorstromval,'.',',') as vorstromval
, replace (stromverzehr,'.',',') as stromverzehr
, replace (zeitspannestd,'.',',') as zeitspannestd
, replace (stromverzehr24,'.',',') as stromverzehr24
from vstromroh ;
+13
View File
@@ -0,0 +1,13 @@
/*.open energiemon.db*/
.mode csv
.separator ';'
.header on
select id,datetime(zeitpunkt,"localtime")as zeitpunkt,wasserzaehler,wetterinfo
, replace (wasserval,'.',',') as wasserval
, replace (vorwasserval,'.',',') as vorwasserval
, replace (wasserverbrauch,'.',',') as wasserverbrauch
, replace (zeitspannestd,'.',',') as zeitspannestd
, replace (wasserverbrauch24,'.',',') as wasserverbrauch24
from vwasserroh ;
+12
View File
@@ -0,0 +1,12 @@
/*.open energiemon.db*/
.mode csv
.separator ';'
.header on
select KW
, replace (gasKWhSum,'.',',') as gasKWhSum
, replace (stromKWhSum,'.',',') as stromKWhSum
, replace (wasserQmSum,'.',',') as wasserQmSum
, replace (gasfaktor,'.',',') as gasfaktor
from vwochensummen ;
+53 -9
View File
@@ -3,24 +3,68 @@
# Mailt den CSV Dump der Datenbank an Mailziel
#
MAILZIEL="br@runden.de denise@runden.de"
function toWin() {
mv $1 $1.utf
/usr/bin/iconv -t windows-1252 -f utf-8 $1.utf > $1
rm $1.utf
}
MAILZIEL="br@runden.de"
CWD=$(dirname $0)
TODAY=$(date +"%Y-%m-%d")
SQLITE3=/usr/bin/sqlite3
DATABQL=$CWD/energiemon.db
SQLTXTFILE=$CWD/exportCSV.sql
CSVDUMP=$CWD/energiemon_$TODAY.csv
# DEBUG echo $SQLITE3 $DATABQL LT $SQLTXTFILE GT $CSVDUMP
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
mv $CSVDUMP $CSVDUMP.utf
/usr/bin/iconv -t windows-1252 -f utf-8 $CSVDUMP.utf > $CSVDUMP
CSVSUBDIR=$CWD/csv
mkdir -p $CSVSUBDIR
#rohdaten
DATEN=rohdaten
SQLTXTFILE=$CWD/export${DATEN}.sql
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
toWin $CSVDUMP
#gasdaten
DATEN=gasdaten
SQLTXTFILE=$CWD/export${DATEN}.sql
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
toWin $CSVDUMP
#stromdaten
DATEN=stromdaten
SQLTXTFILE=$CWD/export${DATEN}.sql
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
toWin $CSVDUMP
#wasserdaten
DATEN=wasserdaten
SQLTXTFILE=$CWD/export${DATEN}.sql
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
toWin $CSVDUMP
#monatssummen
DATEN=monatssummen
SQLTXTFILE=$CWD/export${DATEN}.sql
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
toWin $CSVDUMP
#wochensummen
DATEN=wochensummen
SQLTXTFILE=$CWD/export${DATEN}.sql
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
toWin $CSVDUMP
echo -en "Hallo zusammen, \nAnbei die Zählerdaten \n" \
"von https://enermon.chmln.de \n\n"\
"Viele Grüße von der ChamäleonCloud \n\n" | \
/usr/bin/mutt -a $CSVDUMP -s "Energiemon Zählerstände vom $TODAY" -- $MAILZIEL
/usr/bin/mutt -a $CSVSUBDIR/*$TODAY.csv -s "Energiemon Zählerstände vom $TODAY" -- $MAILZIEL
# Aufräumen
/usr/bin/find $CWD \( -iname "*.csv" -o -iname "*csv.utf" \) -mtime +29 -delete
/usr/bin/find $CSVSUBDIR \( -iname "*.csv" -o -iname "*csv.utf" \) -mtime +29 -delete
View File
Whitespace-only changes.
+269
View File
@@ -0,0 +1,269 @@
drop view if exists gasroh;
drop view if exists vgasroh;
create view vgasroh as
SELECT id,zeitpunkt,gaszaehler,wetterinfo
, CAST(replace(gaszaehler ,',','.') as float) as gasval,
lag ( CAST(replace(gaszaehler ,',','.') as float) ,1 ) over (order by id)
as vorgasval
,
case when
round(
( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id))
,3)
is null then 0.0
else
round(
( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id))
,3)
end
as gasvolumen
, ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0
as zeitspannestd
,
( ( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id)) )
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
* 24.0 as gasvolumen24
, 10.0 as gasfaktor
, case when
( ( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id)) )
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
is null then 0.0
else
10.0 * (
( ( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id)) )
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
* 24.0
)
end
as gasverbrauchKWhauf24
, cast ( substr(wetterinfo, 0,instr(wetterinfo,'°C|')) as float)
as GradCelsiusAussen
from eintraege where gaszaehler>0 ;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
drop view if exists gassum;
drop view if exists vgassum;
create view vgassum as
select
cast ( strftime('%Y%m' ,zeitpunkt) as INTEGER ) as mon
,round ( sum(gasvolumen ),3) * max(gasfaktor) as gasKWhSum
,max(gasfaktor) as gasfaktor
from vgasroh
group by mon
;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
drop view if exists vstromroh;
create view vstromroh as
SELECT id,zeitpunkt,stromzaehler,wetterinfo
, CAST(replace(stromzaehler ,',','.') as float) as stromval,
lag ( CAST(replace(stromzaehler ,',','.') as float) ,1 ) over (order by id)
as vorstromval
,
case when
round(
( CAST(replace(stromzaehler ,',','.') as float)) - (lag ( CAST(replace(stromzaehler ,',','.') as float),1 ) over (order by id))
,3)
is null then 0.0
else
round(
( CAST(replace(stromzaehler ,',','.') as float)) - (lag ( CAST(replace(stromzaehler ,',','.') as float),1 ) over (order by id))
,3)
end
as stromverzehr
, ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0
as zeitspannestd
,
( ( CAST(replace(stromzaehler ,',','.') as float)) - (lag ( CAST(replace(stromzaehler ,',','.') as float),1 ) over (order by id)) )
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
* 24.0 as stromverzehr24
from eintraege where stromzaehler>0 ;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
drop view if exists vstromsum;
create view vstromsum as
select
cast ( strftime('%Y%m' ,zeitpunkt) as INTEGER ) as mon
,round ( sum(stromverzehr ),3) as stromKWhSum
from vstromroh
group by mon
;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
drop view if exists vwasserroh;
create view vwasserroh as
SELECT id,zeitpunkt,wasserzaehler,wetterinfo
, CAST(replace(wasserzaehler ,',','.') as float) as wasserval,
lag ( CAST(replace(wasserzaehler ,',','.') as float) ,1 ) over (order by id)
as vorwasserval
,
case when
round(
( CAST(replace(wasserzaehler ,',','.') as float)) - (lag ( CAST(replace(wasserzaehler ,',','.') as float),1 ) over (order by id))
,3)
is null then 0.0
else
round(
( CAST(replace(wasserzaehler ,',','.') as float)) - (lag ( CAST(replace(wasserzaehler ,',','.') as float),1 ) over (order by id))
,3)
end
as wasserverbrauch
, ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0
as zeitspannestd
,
( ( CAST(replace(wasserzaehler ,',','.') as float)) - (lag ( CAST(replace(wasserzaehler ,',','.') as float),1 ) over (order by id)) )
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
* 24.0 as wasserverbrauch24
from eintraege where wasserzaehler>0 ;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
drop view if exists vwassersum;
create view vwassersum as
select
cast ( strftime('%Y%m' ,zeitpunkt) as INTEGER ) as mon
,round ( sum(wasserverbrauch ),3) as wasserQmSum
from vwasserroh
group by mon
;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
drop view if EXISTS vmonatssummen;
create view vmonatssummen as
SELECT w.mon, w.wasserQmSum, s.stromKWhSum, g.gasKWhSum
FROM vwassersum as w
left join vstromsum as s on w.mon = s.mon
left join vgassum as g on w.mon = g.mon
;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
DROP VIEW if EXISTS vgasweeksum ;
CREATE VIEW vgasweeksum as
select
cast ( strftime('%Y%W' ,zeitpunkt) as INTEGER ) as KW
,round ( sum(gasvolumen ),3) * max(gasfaktor) as gasKWhSum
,max(gasfaktor) as gasfaktor
from vgasroh
group by KW;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
DROP VIEW if EXISTS vstromweeksum ;
CREATE VIEW vstromweeksum as
select
cast ( strftime('%Y%W' ,zeitpunkt) as INTEGER ) as KW
,round ( sum(stromverzehr ),3) as stromKWhSum
from vstromroh
group by KW;
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
DROP VIEW if exists "main"."vwasserweeksum";
CREATE VIEW vwasserweeksum as
select
cast ( strftime('%Y%W' ,zeitpunkt) as INTEGER ) as KW
,round ( sum(wasserverbrauch ),3) as wasserQmSum
from vwasserroh
group by KW
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
DROP VIEW if EXISTS "main"."vwochensummen";
CREATE VIEW vwochensummen as
SELECT w.KW, w.wasserQmSum, s.stromKWhSum, g.gasKWhSum, g.gasfaktor
FROM vwasserweeksum as w
left join vstromweeksum as s on w.KW = s.KW
left join vgasweeksum as g on w.KW = g.KW