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

Maik Weidemann m+vz at weidemann.online
Sa Dez 16 20:06:08 CET 2023


Hallo Bernd,

du kannst den Befehl cut verwenden. Deine Aufruf müsste dann so aussehen:
> mosquitto_sub -h 192.168.5.69 -p 32777 -C 1 -t 
> evcc/warp2/meter/values  | jq -r '.power' | cut -c1-5

-c steht für Zeichen
1-5 steht für die ersten 5 Zeichen.

Ansonsten ist "man cut" oder "cut --help" noch hilfreich.

Viele Grüße
Maik



Am 16.12.23 um 10:29 schrieb Bernd Kisters:
> Hallo Maik,
>
> kannst du mir bitte sagen mit welchem  Syntax ich dann die 
> Nachkommastellen einkürzen kann?
>
> Besten Dank und Gruß Bernd
>
> On 16.12.2023 00:45, Maik Weidemann wrote:
>> Hallo Bernd,
>>
>> hmm... meine Konfig sieht so aus:
>>> {
>>>         // KWL Außenluft
>>>       "enabled": true,
>>>       "allowskip": false,
>>>       "interval": 180,
>>>       "aggtime": -1,
>>>       "aggfixedinterval": false,
>>>       "protocol": "exec",
>>>       "command": "ebusctl r -f -c wtw OutsideAirTemp temp",
>>>       "format": "",
>>>       "channels": [
>>>         {
>>>           "api": "volkszaehler",
>>>           "uuid": "5a829eb0-b1d9-11eb-98a2-0bcd7e007a77",
>>>           "identifier": "",
>>>           "middleware": "http://vz.dagobert.home:81/middleware.php",
>>>           "aggmode": "none",
>>>           "duplicates": 100
>>>         }
>>>       ]
>>>     },
>>
>> Der Aufruf liefert:
>>> ebusctl r -f -c wtw OutsideAirTemp temp
>>> 8.38
>>
>> Ich sehe erst Mal bei dir kein Problem in deiner Konfig.
>>
>> Was passiert, wenn du die Nachkommastellen einkürzt bei deiner Ausgabe?
>>
>> Viele Grüße
>> Maik
>>
>>
>> Am 15.12.23 um 12:56 schrieb Bernd Kisters:
>>> Hallo,
>>>
>>> habe mich nun an diese Channelart über protocol=exec gewagt. Es 
>>> funktioniert aber leider nicht. Es werden keine Werte in die 
>>> Datenbank geschrieben.
>>>
>>> Das Kommando liefert Wert zurück:
>>>
>>> pi at raspberrypi:~ $ mosquitto_sub -h 192.168.5.69 -p 32777 -C 1 -t 
>>> evcc/warp2/meter/values  | jq -r '.power'
>>> 2.4136343
>>>
>>> Im Log findet man dann solche Zeilen:
>>>
>>> [Dec 15 12:55:16][exec] MeterExec::read: Calling 'mosquitto_sub -h 
>>> 192.168.5.69 -p 32777 -C 1-t evcc/warp2/meter/values  | jq -r '.power''
>>> [Dec 15 12:55:16][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 15 12:55:16][mtr2] Got 0 new readings from meter:
>>> [Dec 15 12:55:16][mtr2] waiting 10 seconds before next reading
>>>
>>> Meine vzlogger.conf sieht so aus. Die ersten beiden Meter sind Gas 
>>> und Strom. Die funktionieren schon über Jahre einwandfrei.
>>> Der dritte ist der Wallboxzähler der über den MQTT Broker läuft.
>>>
>>> {
>>>     // General settings
>>>     "verbosity": 15,         // log verbosity (0=log_alert, 
>>> 1=log_error, 3=log_warning, 5=log_info, 10=log_debug, 15=log_finest)
>>>     "log": "/var/log/vzlogger/vzlogger.log", // log file, optional
>>>     "retry": 30,            // http retry delay in seconds
>>>
>>>     // Build-in HTTP server
>>>     "local": {
>>>         "enabled": false,   // enable local HTTPd for serving live 
>>> readings
>>>         "port": 8080,       // TCP port for local HTTPd
>>>         "index": true,      // provide index listing of available 
>>> channels if no UUID was requested
>>>         "timeout": 30,      // timeout for long polling comet 
>>> requests in seconds (0 disables comet)
>>>         "buffer": -1        // HTTPd buffer configuration for 
>>> serving readings, default -1
>>>                             //   >0: number of seconds of readings 
>>> to serve
>>>                             //   <0: number of tuples to server per 
>>> channel (e.g. -3 will serve 3 tuples)
>>>     },
>>>
>>>         "meters" : [{                            /* Strom 
>>> Ferraris-Meter */
>>>              "enabled" : true,
>>>              "protocol" : "s0",
>>>              "device" : "/dev/ttyUSB0",
>>>              "aggtime" : -1,
>>>              "aggfixedinterval" : false,
>>>              "channel" : {
>>>                            "uuid": 
>>> "5a50f240-6861-11e6-93a2-ebf973f48426",
>>>                            "middleware" : 
>>> "http://localhost/middleware.php",
>>>                            "identifier": "Impulse",
>>>                            "aggmode" : "none"
>>>                          }
>>>            },{                            /* Gas Meter */
>>>              "enabled" : true,
>>>              "protocol" : "s0",
>>>              "device" : "/dev/ttyUSB1",
>>>              "aggtime" : -1,
>>>              "aggfixedinterval" : false,
>>>              "channel" : {
>>>                            "uuid": 
>>> "9e966320-888b-11e6-b2b7-fb7e92405315",
>>>                            "middleware" : 
>>> "http://localhost/middleware.php",
>>>                            "identifier": "Impulse",
>>>                            "aggmode" : "none"
>>>                          }
>>>            },
>>>         {
>>>              "enabled": true,
>>>              "allowskip": true,
>>>              "interval": 10,
>>>              "aggtime": -1,
>>>              "aggfixedinterval": false,
>>>              "channel": [
>>>                {
>>>                  "uuid": "799c25f0-9b2f-11ee-9e4b-15d68bad4b80",
>>>                  "middleware" : "http://localhost/middleware.php",
>>>                  "identifier": "",
>>>                  "aggmode": "none"
>>>                }
>>>               ],
>>>               "protocol": "exec",
>>>               "command": "mosquitto_sub -h 192.168.5.69 -p 32777 -C 
>>> 1 -t evcc/warp2/meter/values  | jq -r '.power'"
>>>          }
>>>       ]
>>> }
>>>
>>
>



Mehr Informationen über die Mailingliste volkszaehler-users