SML Meter via URL abrufen (HTTP)

  • Hallo,


    ich habe einen volkzähler am laufen und bin damit auch zufrieden.

    Bisher habe ich einen Lesekopf benutzt, das geht jetzt nicht mehr da ich den Tibber Pulse nutze (muss).


    Den SML Content würde ich vom PULSE direkt bekommen (http://admin:XXXX@tibber-host/data.json?node_id=1)

    Leider bekomme ich es nicht hin wie in der beispiel conf als Kommentar angemerkt, statt einem lokalen device einen HOST zu nutzen.


    "enabled" : true, /* disabled meters will be ignored */

    "protocol" : "sml", /* use 'vzlogger -h' for list of available protocols */

    /* "device" : "/dev/MYUART", */

    "host":"http://192.168.178.21::80/data.json?node_id=1",

    "use_local_time": true,



    das funktioniert so leider nicht - Gibt es eine Möglichkeit die Daten statt eines Lesekopfes per HTTP zu beziehen?

  • Der „Host“-Eintrag ist meines Wissens nur für Influxdb relevant, daher funktioniert das abholen so nicht.

    Die einzige Methode die mir einfallen würde, wäre über exec die Daten zu holen, aber vermutlich muss da das SML manuell Geparden werden….

  • "host":"http://192.168.178.21::80/data.json?node_id=1",

    Den Parameter host gibt es schon auch für SML-Meter. Aber als Protokoll läuft da ausschließlich TTY-over-TCP, kein HTTP.


    Gibt es eine Möglichkeit die Daten statt eines Lesekopfes per HTTP zu beziehen?

    Aus Meter exec einen curl-Aufruf absetzen und die Ausgabe nach Bedarf zurechtbiegen.

    Libsml kann man auch von der Kommandozeile aus aufrufen um SML zu zerlegen.

    No Shift - No Service

  • Hallo,

    habe mir folgendes zusammengestrickt:


    Code
       43  sudo apt install jq
       44  sudo apt install jq python3-requests python3-dateutil
       53  sudo apt install python3-paho
       54  sudo apt install python3-mqtt
       55  sudo apt install python3-paho-mqtt

    Der vzlogger läuft unter dem Benutzer "pi". Dann kann er das Script finden und aufrufen.



    Die Leistung importiere ich 3mal, einmal als Ptot und einmal als Einspeisung und einmal als "Bezug".

    Ein Trigger in der Datenbank sorgt dafür das bei Bezug nur positive Werte und bei Einspeisung nur negative Werte gespeichert werden.


    Vielleicht hilfs ja ;)