[vz-users] Fehlermeldungen in vzlogger.log
Daniel Lauckner
vz at jahp.de
So Feb 20 11:34:20 CET 2022
Hallo,
das liegt daran das vzlogger.log mit root-Rechten erstellt wurde und pi nicht drauf schreiben darf.
Daher keine Einträge und die Instanz wird abgebrochen weil kein Log möglich ist.
Wie das im aktuellen Image löst ist sieht man hier: https://wiki.volkszaehler.org/howto/building_raspberry_pi_image_for_vz
Ist aber nicht die perfekte Lösung. Wurde erst in diesem Jahr hier diskutiert.
am Sonntag, 20. Februar 2022 um 11:19 hat Tilman Glötzner geschrieben:
> 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
mfg Daniel
Mehr Informationen über die Mailingliste volkszaehler-users