[vz-users] Fehlermeldungen in vzlogger.log
Tilman Glötzner
tilman_1 at gloetzner.net
So Feb 20 11:19:12 CET 2022
Hallo
mir ist noch eingefallen, dass man den User in
/etc/systemd/system/vzlogger.service bestimmen kann. Ich habe daraufhin
"User = pi" eingetragen -- in der Erwartung, dass der Daemon nach dem
Start abbricht, weil der nicht mehr auf die Devices (IR-Zäher an
/dev/ttyUSB0 und S0-Zähler an den GPIOs) zugreifen kann. Abgebrochen hat
er -- leider hat sich vzlogger weder in /var/log/syslog noch in
/var/log/vzlogger.log zu den Gründen ausgelassen. Im /var/log/syslog
findet man lediglich:
Feb 20 11:10:22 logger systemd[1]: Started vzlogger.
Feb 20 11:10:23 logger systemd[1]: vzlogger.service: Main process
exited, code=exited, status=1/FAILURE
Feb 20 11:10:23 logger systemd[1]: vzlogger.service: Failed with result
'exit-code'.
Gruß
Tilman
On 20.02.22 03:18, Tilman Glötzner wrote:
> Hallo nochmal,
>
> ich habe herausgefunden, dass das erste Problem mit dem zweiten
> zusammenhängt. Wenn ich den Aufruf des Pythonscripts entferne, kömmen
> keine Fehlermeldungen "Middleware says duplicate value" mehr. Hier
> deswegen der Teil der Konfig, den ich auskommentiert habe und das Script:
>
> ========== /etc/vzlogger.conf ==========
>
> /*,
> {
> // pv inverter via modbus on tcp an python script
> "enabled": true,
> "allowskip": true,
> "protocol": "exec",
> "command": "solaredge.py",
> "format": "$t: $i = $v",
> "channels": [{
> "uuid": "0a2ab800-dd2a-11eb-8cab-375d0acdab22",
> "identifier": "Battery1_SOE",
> "api": "volkszaehler",
> "middleware": "http://localhost/middleware.php",
> "aggmode": "none",
> "duplicates": 14400
> },
> {
> "uuid": "d55f9f40-91e2-11ec-adc5-c55c95f1d814",
> "identifier": "Battery1_Temperature",
> "api": "volkszaehler",
> "middleware": "http://localhost/middleware.php",
> "aggmode": "none",
> "duplicates": 14400
> }]
> }
> */
> ========END /etc/vzlogger.conf ==========
>
> ======== /usr/local/bin/solaredge.py ========
>
> !/usr/bin/python3
> import solaredge_modbus
> import datetime
>
> inverter = solaredge_modbus.Inverter(host="se7rws.fritz.box", port=1502)
> battery1 = inverter.batteries()["Battery1"]
> meter1 = solaredge_modbus.Meter(parent=inverter, offset=0)
>
> inverter.connect()
> if inverter.connected():
> data0 = inverter.read_all()
> data1 = battery1.read_all()
>
> inverter.disconnect()
> now = str(int( datetime.datetime.now().timestamp() * 1000 ))
> soe = str(data1["soe"])
> temperature = str(data1["average_temperature"])
> print(now + ': Battery1_Temperature = ' + temperature)
> print(now + ': Battery1_SOE = ' + str(data1["soe"]))
>
> inverter.disconnect()
>
> ========END /usr/local/bin/solaredge.py ========
>
> Danke und viele Grüße
>
> Tilman
>
> On 20.02.22 02:45, Tilman Glötzner wrote:
>> Hallo
>>
>> 1) in /var/log/vzlogger.log finde ich nach einen restart des vzlogger
>> viele Message mit unterschiedlichen ChannelIDs wie folgt. Was will
>> mir das Log sagen?
>>
>> SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '
>> [Feb 20 02:33:30][chn1] Middleware says duplicated value. Removing
>> first entry!
>> [Feb 20 02:33:30][chn1] CURL Error from middleware:
>> 'UniqueConstraintViolationException': 'An exception occurred while
>> executing 'INSERT INTO data (channel_id, timestamp, value) VALUES
>> (5,?,?)' with params [1645320720000, 2171064]:
>>
>>
>> 2) Ausserdem habe ich ein Mini-Pythonscript geschrieben, dass mir die
>> Temperature und den Ladezustand der Battery von unserer Solaranlage
>> ausgibt und durch vzlogger (exec) gestartet wird. Die folgende
>> Fehlermeldung scheint sich darauf zu beziehen. Ich habe vzlogger über
>> service logger start vom Benutzeraccount pi gestartet. Das
>> Serviceprogram scheint aber automatisch einen sudo zu starten und
>> fragt nach dem Benutzerpassword.
>>
>> Mir ist daher nicht klar, wie ich vzlogger nicht als root starten
>> kann -- zumindest wenn "service" verwendet werden soll.
>>
>>
>> Feb 20 02:25:59][main] vzlogger v0.8.0 based on
>> heads/master-0-gfe937770e4 from Sat, 3 Apr 2021 19:40:20 +0200 started.
>> [Feb 20 02:25:59][main] log level is 3
>> [Feb 20 02:25:59][exec] MeterExec::open: MeterExec protocol cannot be
>> run with root privileges!
>> [Feb 20 02:25:59][exec] If you really want this,
>> compile vzlogger with:
>> [Feb 20 02:25:59][exec] 'cmake -D
>> METEREXEC_ROOTACCESS=true .'
>> [Feb 20 02:25:59][mtr6] Cannot open meter
>> [Feb 20 02:25:59] Skipping meter mtr6
>> [Feb 20 02:26:22][chn5] Middleware says duplicated value. Removing
>> first entry!
>> [Feb 20 02:26:22][chn5] CURL Error from middleware:
>> 'UniqueConstraintViolationException': 'An exception occurred while execu
>> ting 'INSERT INTO data (channel_id, timestamp, value) VALUES
>> (13,?,?)' with params [1645320382057, 1]:
>>
>> Danke und Gruß
>>
>> Tilman
Mehr Informationen über die Mailingliste volkszaehler-users