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

Maik Weidemann m+vz at weidemann.online
Sa Dez 16 22:54:00 CET 2023


Hallo Bernd,

benutzte bitte  "format": "" dann sollte es mit deinem Wert funktionieren!

LG
Maik

Am 16.12.23 um 20:37 schrieb Bernd Kisters:
> Hallo Maik,
>
> ohne Format kommt es zu:
> [Dec 16 20:35:04][exec] MeterExec::read: Calling 
> '/home/pi/mosquitto_sub.sh'
> [Dec 16 20:35:04][exec] MeterExec::read: Reading line: '2.52'
> [Dec 16 20:35:04][exec] MeterExec::read: string: <null>, value: 
> 2.520000, timestamp: -1.000000
> [Dec 16 20:35:04][exec] MeterExec::read: Closing process 
> '/home/pi/mosquitto_sub.sh'
> [Dec 16 20:35:04][mtr2] Got 1 new readings from meter:
> [Dec 16 20:35:04][mtr2] Reading: id=<null>/StringIdentifier: 
> value=2.52 ts=1702755304797
> [Dec 16 20:35:04][mtr2] waiting 30 seconds before next reading
>
> Aber Werte werde mir noch immer nicht im volkszaehler angezeigt.
>
> Grüße Bernd
>
> On 16.12.2023 20:14, Maik Weidemann wrote:
>> 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