[vz-users] Anleitung: VZLogger als MQTT-Subscriber

Bernd Kisters bernd.kisters at schmithof.de
Sa Dez 16 23:49:53 CET 2023


Einträge im Log sehen inzwischen gut aus. Werte werden aber nicht der 
middleware übergeben. Wie kann ich feststellen warum das nicht passiert?

[Dec 16 23:37:56][exec] MeterExec::read: Calling 'mosquitto_sub -h 
192.168.5.69 -p 32777 -C 1 -t evcc/warp2/meter/values  | jq -r '.power''
[Dec 16 23:37:56][exec] MeterExec::read: Closing process 'mosquitto_sub 
-h 192.168.5.69 -p 32777 -C 1 -t evcc/warp2/meter/values  | jq -r '.power''
[Dec 16 23:37:56][mtr2] Got 1 new readings from meter:
[Dec 16 23:37:56][mtr2] Reading: id=/StringIdentifier: value=2.34 
ts=1702766276817
[Dec 16 23:37:56][mtr2] waiting 30 seconds before next reading


On 16.12.2023 22:29, Tobias Baumann wrote:
> Hallo Bernd
>
>
> es fehlt der identifier , dein sh produziert string: null
>
> gleichzeitig timestamp -1 geht auch nicht , hinweis diesen kann man 
> auch weglassen dann nimt vzlogger die von sich selber
>
>
> Am 16.12.2023 um 20:14 schrieb Maik Weidemann:
>> Hallo Bernd,
>>
>>> [Dec 16 19:14:47][mtr2] Got 1 new readings from meter: 
>> Hier hat er doch einen Wert gelesen, dass ist schon ein Fortschritt 
>> gegenüber deinen Ursprungspost. Der hatte er Null new readings.
>>
>> Hast du noch ein Format in deiner Konfig jetzt drin? mach dort doch 
>> jetzt nur einen leeren String "". Du lieferst ja nur eine Zahl.
>>
>> Viele Grüße
>> Maik
>>
>> Am 16.12.23 um 19:17 schrieb Bernd Kisters:
>>> Über script erhalte ich ähnliche Ergebnisse im Log.
>>>
>>> [Dec 16 19:14:47][exec] MeterExec::read: Calling 
>>> '/home/pi/mosquitto_sub.sh'
>>> [Dec 16 19:14:47][exec] MeterExec::read: Reading line: '2.46'
>>> [Dec 16 19:14:47][exec] MeterExec::read: string: <null>, value: 
>>> 2.460000, timestamp: -1.000000
>>> [Dec 16 19:14:47][exec] MeterExec::read: Closing process 
>>> '/home/pi/mosquitto_sub.sh'
>>> [Dec 16 19:14:47][mtr2] Got 1 new readings from meter:
>>> [Dec 16 19:14:47][mtr2] Reading: id=<null>/StringIdentifier: 
>>> value=2.46 ts=1702750487103
>>> [Dec 16 19:14:47][mtr2] waiting 30 seconds before next reading
>>>
>>> Wer ist jetzt über Script auf 2 Stellen gerundet. Hat aber keinen 
>>> Effekt.
>>> Ich habe keine Ahnung was es noch bedarf, dass die Werte auch in die 
>>> DB geschrieben werden.
>>>
>>> On 16.12.2023 18:28, Stefan Bauer wrote:
>>>> Evtl liegt es auch an dem Hochkomma in dem Kommando…
>>>> Ich würde das mqtt Kommando in ein Script speichern und dann im 
>>>> vzlogger nur das Script aufrufen. Wenn es mehrfach benötigt wird, 
>>>> dann IP-Adresse und Abrufwert als Parameter übergeben…
>>>>
>>>> Von meinem iPad gesendet
>>>>
>>>>> Am 16.12.2023 um 14:24 schrieb Rupert Schöttler 
>>>>> <rupert.schoettler at gmx.de>:
>>>>>
>>>>> Hi Bernd,
>>>>>
>>>>>> Am 16.12.23 um 13:24 schrieb Bernd Kisters:
>>>>>> die Antwort nach dem Aufruf
>>>>>>      mosquitto_sub -h 192.168.5.69 -p 32777 -C 1 -t
>>>>>> evcc/warp2/meter/values  | jq -r '.power'
>>>>>> erfolgt unmittelbar. Die Ausgabe ist dann der z.B. Wert 2.4136343
>>>>>>
>>>>>> Wie kann ich mit dem "Format = $v" die Nachkommestellen auf 2
>>>>>> reduzieren?`
>>>>>
>>>>> Ich glaube zwar nicht, dass die Nachkommastellen das Problem sind, 
>>>>> aber
>>>>> mir fallen spontan diese beiden Möglichkeiten ein:
>>>>>
>>>>> 1. Die Quelle liefert sie gleich "richtig" an den MQTT-Kanal.
>>>>>
>>>>> 2. Du machst einen weiteren Pipe-Befehl | nach bc oder einem 
>>>>> ähnlichen
>>>>> Programm, das runden kann. Suchmaschinen oder ChatGPT helfen Dir 
>>>>> für die
>>>>> genaue Syntax.
>>>>>
>>>>>
>>>>> Vielleicht magst Du aber erst mal testen, ob ein exec-Befehl wie
>>>>>
>>>>> echo 2.41
>>>>>
>>>>> erfolgreich eingelesen wird. Vielleicht liegt's ja auch am 
>>>>> Dezimal-Punkt
>>>>> statt Komma oder was ganz anderem.
>>>>>
>>>>>
>>>>> Viel Erfolg wünscht
>>>>>
>>>>> Rupert
>>>>>
>>>
>>
>



Mehr Informationen über die Mailingliste volkszaehler-users