einfaches auslesen des aktuellen Verbrauchs über API möglich ?

  • Hi,


    setze grade einen volkszaehler auf einem alten herumfliegenden Raspi 2 auf.


    Warte aktuell noch auf den IR Lesekopf. Ich verstehe das Projekt als solches eher als Möglichkeit

    der Aufzeichnung der Verbrauchsdaten, finde ich ebenso spannend.


    Worum es mir aber eigentlich geht, ist das ich den Überschuss von meiner PV Anlage ins Auto laden will, sobald das eben sinnvoll ist.

    Dafür programmiere ich mir grade was in ASP.Net Core. Alles andere was ich benötige (aktuelle Produktion der PV in Watt) und eine API

    um die Wallbox dann mit den entsprechenden Werten über meine Software zu starten, habe ich bereits fertig.


    Ich würde den volkszaehler also dahingehend nutzen wollen, per API oder anderem Weg direkt aus meinem Programm den aktuellen Wattverbrauch des

    Hauses abzufragen oder aus den abgefragten Zählerständen zu errechnen.


    Gibt es da eine Möglichkeit und hat ggf. mal jemand ein Beispiel, wie ich das umsetzen kann ?


    Danke und Gruß

    stuhli

  • andig2, einer der vz-Entwickler hat ebenfalls ein Projekt fuer das PV-gesteuerte Laden, evcc.


    Wenn's selbstgemacht sein soll, klar kannst du die Verbrauchswerte auslesen. API docs gibt's da: https://wiki.volkszaehler.org/development/api/reference

  • qwerty


    super - danke für das schnelle Feedback. Eine Frage zur API -

    fragt die direkt über USB den IR Lesekopf ab oder holt die sich die "letzten" Daten aus der DB ?

  • Die kommen natuerlich aus der DB.


    Wenn dir der ganze Aufbau zu komplex ist und du eh keine Konsistenz brauchst kannst du auch direkt vom Lesekopf lesen und mit der smllib, die inzwischen auch bei vz gepflegt wird, was eigenes bauen. Da ist auch Beispielcode drin und dann nimmst du halt den Wert fuer die Momentanleistung und verarbeitest ihn in deinem Programm.

  • Nein zu komplex ist mir das ganze grundsätzlich nicht, ich denke nur das keep it simple hier der beste

    Ansatz ist, ansonsten läuft da wieder eine DB die gepflegt werden muss usw,...das war die Idee dahinter.


    hab jetzt mal nach der smllib geguckt, so auf den ersten blick ist da nicht viel dokumentiert, wird wahrscheinlich dann der schwierigere Weg als die Daten aus der DB zu holen ?


    Ich lese mich da mal weiter rein, mal schauen welchen weg ich dann am ende gehe, erstmal vielen Dank für das Feedback !

  • Sorry, der Name ist natuerlich libsml.


    Wie gesagt, es gibt Beispielcode. Das sind nur ein paar Zeilen. Interessant ist transport_receiver(). Du wuerdest dann die Werte auslesen, nach dem richtigen OBIS tag filtern (sind die obj_name Felder; z.B. 16.7.0 fuer momentane Wirkleistung) und fertig. ;)

  • vzlogger kann die ausgelesenen Zählerdaten auch per MQTT oder mit einem integrierten httpd ausgeben. Ist wahrscheinlich einfacher anzubinden als selbst mit libsml zu basteln. OpenWB macht das auch so.

  • frank-83


    Danke - vzlogger ist dann MQTT Publisher, der jeden Zyklus pusht oder wie muss ich mir das vorstellen ?


    Hast du da mal ein Konfigurationsbeispiel oder finde ich da im wiki was zu ?


    C# Bibliotheken für MQQT Clients gibt es auf jeden Fall wie Sand am Meer.

  • über die API bekommst du halt nur die Werte die auch in die Datenbank geschrieben werden. Der IR Lesekopf liest z.B die Werte jede Sekunde aus, in die Datenbank schreibst du sie aber nur jede Minute. Dann kann die Wallbox auch nicht schneller reagieren als 1 Minute.


    Du kannst aber Websockets verwenden um jeden Wert vom Lesekopf zu verwenden. Ich betreibe evcc genau so. evcc läuft dabei auch auf dem Raspberry Pi auf dem der Volkszaehler läuft.

    https://github.com/andig/evcc/wiki/3.5.-vzlogger