Hallo,
von sollner11 habe ich den Hinweis auf euer Forum bekommen, durch einen Post auf volkszaehler-users.
Noch mal Danke für die Info.
Ich hab für die Auswertung der Daten meiner PV-Anlage eine Procedure geschrieben die mir Virtuelle Channels
für den Direktverbrauch und den Gesamtverbrauch erstellt. So ähnlich wie das Script von Rainer.
Die Procedure wird in der DB gespeichert und kann per mysql ( auch mit cron ) jederzeit aufgerufen werden.
Beim ersten Lauf werden auch alle historichen Daten verarbeitet ( das war mir wichtig).
Das ist die Procedure:
DECLARE v1_value, v2_value, value_hz, value_pv, value_pve, value_hz_old, value_pv_old, value_pve_old DOUBLE DEFAULT 0;
(UNIX_TIMESTAMP(date_format(from_unixtime(left(timestamp,10)),'%Y-%m-%d %H:%i'))+60) * 1000 AS ts_id,
WHERE ( channel_id = cid_strombezug OR channel_id = cid_pvgesamt OR channel_id = cid_pveinspeisung) AND
WHERE ( channel_id = cid_strombezug OR channel_id = cid_pvgesamt OR channel_id = cid_pveinspeisung) AND
bezug_vor.value + ((bezug_vor.ts_id - bezug_vor.ts) * ((bezug_nach.value-bezug_vor.value) / (bezug_nach.ts-bezug_vor.ts))) AS bezug,
pv_vor.value + ((pv_vor.ts_id - pv_vor.ts) * ((pv_nach.value-pv_vor.value) / (pv_nach.ts-pv_vor.ts))) AS pv,
pve_vor.value + ((pve_vor.ts_id - pve_vor.ts) * ((pve_nach.value-pve_vor.value) / (pve_nach.ts-pve_vor.ts))) AS pve
INNER JOIN temp_nach AS bezug_nach ON bezug_vor.ts_id = bezug_nach.ts_id AND bezug_vor.channel_id = bezug_nach.channel_id
INNER JOIN temp_vor AS pv_vor ON bezug_vor.ts_id = pv_vor.ts_id AND pv_vor.channel_id = cid_pvgesamt
INNER JOIN temp_nach AS pv_nach ON bezug_vor.ts_id = pv_nach.ts_id AND pv_nach.channel_id = cid_pvgesamt
INNER JOIN temp_vor AS pve_vor ON bezug_vor.ts_id = pve_vor.ts_id AND pve_vor.channel_id = cid_pveinspeisung
vielleicht kann das ja noch jemand gebrauchen......
Bevor man die Procedure nutzen kann müßen die 5 UUIDs im Quellcode angepasst werden.
Und so sieht das dann aus:
Basisdaten:
Direktverbrauch
Gesamtverbrauch