[vz-users] Verbrauchsdaten tagesweise auslesen
Tilman Glötzner
tilman_1 at gloetzner.net
Di Nov 30 09:35:00 CET 2021
Moin
nachdem das Root-Filesystem gestern doch noch komplett voll gelaufen
war, habe dbgXXXXXX ich das aggregate-php-Script und dessen Kinder
abbrechen müssen, die dbgXXXXXX-Files aus /tmp gelöscht, und die Daten
in der Tabelle agreggate gelöscht. Die dbgXXXXXX-Files enthalten jeweils
ein php-Script. Weisst Du was deren Funktion ist? dbg dürfte für debug
stehen...
http://IP-ADRESSE/middleware.php/capabilities/database.json
<http://IP-ADRESSE/middleware.php/capabilities/database.json> lieferte
mir eine Fehlermeldung:
version "0.3"
exception
message "An exception occurred while executing 'EXPLAIN SELECT
COUNT(id) FROM data USE INDEX (PRIMARY)':\n\nSQLSTATE[42S22]: Column not
found: 1054 Unknown column 'id' in 'field list'"
type "InvalidFieldNameException"
code 0
entities ist die einzige Tabelle mit einer Spalte "id". In der Tabelle
data gibt es eine Spalte "channel_id"...
Gruß
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/20211130/eb8c4d0c/attachment-0001.html>
Mehr Informationen über die Mailingliste volkszaehler-users