[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