[vz-users] Verbrauchsdaten tagesweise auslesen

Tilman Glötzner tilman_1 at gloetzner.net
Mi Dez 22 11:59:49 CET 2021


Hallo

was möchte ich (immer noch) machen?

Ich möchte die Zählerwerte (als Energie, d.h. kwh) meiner 5 Stromzähler 
jeweils aggregiert für einen Tag in ein CSV ausgeben.


Was habe ich bisher gemacht?

- Ich habe eine zusätzliche SSD an meinem PI angeschlossen, so dass 
genug Platz zum Anlegen der Hilfstabellen (cache) da ist.

- Und ich habe die Hilfstabellen für das Verbessern der Performance 
angelegt (mit php /var/www/volkszaehler.org/bin/aggregate run -m full -l 
day -l hour -l minute)

- siehe auch 
https://wiki.volkszaehler.org/howto/datenmengen?s[]=datenbank&s[]=aggregieren


Was funktioniert bisher noch nicht?

Als Versuch wollte ich die Daten für einen bestimmten Zeitraum über die 
Api der Middleware auslesen. Dazu habe ich (in meiner naiven Art) 
folgenden Befehl abgesetzt. Leider scheint das Format nicht zu stimmen. 
Was mache ich falsch?

wget -O test.txt 
http://logger/middleware/data.csv?from=01-12-2021\&to=12-12-2021
--2021-12-22 11:41:09-- 
http://logger/middleware/data.csv?from=01-12-2021&to=12-12-2021
Resolving logger (logger)... 192.168.100.159
Connecting to logger (logger)|192.168.100.159|:80... connected.
HTTP request sent, awaiting response... 400 Bad Request
2021-12-22 11:41:09 ERROR 400: Bad Request.

Vielen Danke und Vorweihnachtliche Grüße

Tilman


On 30.11.21 08:35, Frank Richter wrote:
> Moin,
>
> hast du verifiziert dass aktuell keine Aggregation läuft? Was liefert
> http://IP-ADRESSE/middleware.php/capabilities/database.json 
> <http://IP-ADRESSE/middleware.php/capabilities/database.json> ?
>
> Grüße
> Frank
>
> Tilman Glötzner <tilman_1 at gloetzner.net 
> <mailto:tilman_1 at gloetzner.net>> schrieb am Di., 30. Nov. 2021, 01:28:
>
>     Hi
>
>     Falls mir der Speicherplatz dabei  ausgehen sollte, müsste ich
>     zurückrollen, die Datenbank auf einen großeren Datenträger
>     kopieren und nochmal aggregieren. Da es Hilfstabellen sind und die
>     Rohdaten in data erhalten bleiben, sollte das funktionieren. Was
>     muss ich neben der Tabelle aggreate noch dazu löschen?
>
>     Danke und Gruß
>
>     Tilman
>
>     On 29.11.21 23:23, Frank Richter wrote:
>>     "aggmode": "none" aggregiert nichts, bei Leistung wäre "avg"
>>     sinnvoll.
>>
>>     Damit die Middleware-Aggregation läuft, brauchst du entsprechende
>>     Cronjobs. Schau mal nach ob die bei dir existieren. Siehe auch im
>>     Wiki: https://wiki.volkszaehler.org/howto/datenmengen
>>     <https://wiki.volkszaehler.org/howto/datenmengen>
>>
>>     Grüße
>>     Frank
>>
>>     Tilman Glötzner <tilman_1 at gloetzner.net
>>     <mailto:tilman_1 at gloetzner.net>> schrieb am Mo., 29. Nov. 2021,
>>     20:11:
>>
>>         Hi
>>
>>         >Hast du die aggregation der Middleware aktiviert?
>>
>>         Meinst Du "aggmode"? Den habe ich je nach Zählertype auf
>>         "sum" (S0) bzw "max" (SmartMeter mit IR-Schnittstelle) bzw.
>>         auf "none" (Leistungmessung des SmartMeters) gesetzt.
>>
>>         Und ich logge minütlich -- was relativ kurz ist und
>>         ordentlich Daten erzeugt.  Hilft mir aber beim
>>         Plausibiliseren des Verhaltens des Wechselrichters. Und als
>>         netter Nebeneffekt kann man an Hand der Patterns mit etwas
>>         Übung den jeweiligen Verbraucher  identifizieren :-)
>>
>>         Der RPI ist übrigens einer RPI B+ mit 512 MB.
>>
>>         Grüße
>>
>>         Tilman
>>         On 29.11.21 18:25, Frank Richter wrote:
>>>         Hi,
>>>
>>>         wär schon deutlich einfacher das per API zu machen. Hast du
>>>         die aggregation der Middleware aktiviert? In welchem
>>>         Intervall loggst du deine Daten?
>>>
>>>         Grüße
>>>         Frank
>>>
>>>         Am Mo., 29. Nov. 2021 um 17:09 Uhr schrieb Tilman Glötzner
>>>         <tilman_1 at gloetzner.net <mailto:tilman_1 at gloetzner.net>>:
>>>
>>>             Hallo
>>>
>>>
>>>             ich würde gerne die über einen Tag akkumulierten
>>>             Energie-Verbrauche auf
>>>             den verschiedenen Zähler, die ich betreibe, auslesen und
>>>             in ein File
>>>             exportieren (um sie mit dem Energiemessung der
>>>             Solaranlage vergleichen
>>>             zu können). Am liebsten wäre mir ein csv-File. Dazu hat
>>>             vzlogger auch
>>>             eine Schnittstelle (http://logger.fritz.box/api/data.csv
>>>             <http://logger.fritz.box/api/data.csv>), die
>>>             allerdings eine Fehlermeldung "Maximum execution time
>>>             exceeded" zurück
>>>             gibt -- wahrscheinlich, weil die Datenbank mittlerweile
>>>             zu gross ist
>>>             oder der RPI zu schwachbrüstig.
>>>
>>>             Als Workaround habe ich die die Datenbank auf einen
>>>             anderen, hoffentlich
>>>             schnelleren Rechner kopiert und möchte nun die Daten
>>>             tageweise direkt
>>>             aus der kopierten  Datenbank holen und zur Not mit einem
>>>             Skript
>>>             nachprozessieren.
>>>
>>>             a) Ich schätze mal, dass ich über die UUID im
>>>             Config-File mittels der
>>>             Spalte "id" in der Tabelle "entities" die Daten eines
>>>             Sensors aus der
>>>             Tabelle "data" auswählen kann, d.h. select * from data
>>>             where channel_id
>>>             = <entities.id <http://entities.id>>. Stimmt das so?
>>>
>>>             b) In welcher Einheit liegen timestamp und value der
>>>             Tabelle "data" vor
>>>             ? In Watt für Zähler mit Impulsausgang und in absoluten
>>>             Wh für
>>>             SmartZähler ?
>>>
>>>             c) Ist es in sql möglich, den Timestamp aus der
>>>             aktuellen Zeit zu
>>>             ermitteln=?
>>>             d) Und wie hole ich die Wh aus der Datenbank? So ?
>>>
>>>               select sum(value)  from data where channel_id =
>>>             <entities.id <http://entities.id>> and
>>>             timestamp between  <timestamp1> and <timestamp2> order
>>>             by timestamp;
>>>
>>>             Oder brauche ich dafür ein Script und muss die Fläche,
>>>             die zwischen 2
>>>             benachbarten Werten aus "data" aufgespannt wird, berechnen?
>>>
>>>
>>>             Danke und Gruß
>>>
>>>             Tilman
>>>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20211222/4286840f/attachment-0001.html>


Mehr Informationen über die Mailingliste volkszaehler-users