Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Smartmeter Wired M-Bus/DLMS auslesen (Salzburg AG)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Smartmeter Wired M-Bus/DLMS auslesen (Salzburg AG)

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      noox last edited by noox

      Ich beschäftige mich gerade mit dem Auslesen meines neuen Strom-Smartmeters der Salzburg-AG. Es ist ein Kaifa MA309 mit einer Kundenschnittstelle basierend auf wired M-Bus und DLMS/COSEM.

      Im Thread https://forum.iobroker.net/topic/59040/smartmeterdaten-auslesen?_=1667993832807 wird auf ein Python-Script verwiesen, das denselben Smartmeter der Niederösterreichischen Netzbetreiber ausliest. Problem ist allerdings, dass bei meinem die Nutzdaten in zwei M-Bus Telegramme aufgeteilt sind, und das Script damit nicht umgehen kann.

      Das Script nutzt teils Python-Bibliotheken von "Gurux" (https://github.com/Gurux/Gurux.DLMS.Python, https://www.gurux.fi/). "Gurux" hat auch Windows-Desktop-Tools zum Analysieren von M-Bus-Daten. Damit konnte ich in mehreren Schritten die Daten meines Smartmeters auslesen. Die Besonderheit meines Smartmeters ist, dass es als M-Bus-Slave die Daten einfach immer "pushed". "Gurux" hat ebenfalls ein Python-Beispiel, wie man solche Push-Nachrichten ausliest (https://github.com/Gurux/Gurux.DLMS.Python/tree/master/Gurux.DLMS.Push.Listener.Example.python). Allerdings glaube ich, dass seine Python-Bibliothek in der Wired-M-Bus-Konfiguration mit Application-Layer-Nutzdaten, die in mehren M-Bus-Telegrammen verpackt sind, nicht umgehen kann.


      Beim Leseversuch des 2. Telegramm ist die Startposition um 2 Bytes daneben, daher findet er das nicht. Außerdem schaut es so aus als ob er die analysierten Daten des ersten Telegrams verwirft, sobald er auf das 2. wartet. Wenn ich die Startposition korrigiere, dann scheitert er im nächsten Schritt: Die Application-Layer-Kennung passt nicht. Vermutlich sucht er die in den Application-Layer-Daten des 2. Telegramms - sie ist aber das 1. Byte der Application-Layer-Daten im 1. Telegramm. Um das genauer analysieren zu können, hätte ich mir den Source-Code runterladen müssen, was mir dann zu mühsam war.

      Ich konnte im Kundenbereich meines Netzanbieters eine genaue Beschreibung der Schnittstellenspezifikation finden. Ich plane daher ein Node-Script für diese Wired-M-Bus-Konfiguration zu schreiben. Falls ich das nicht hinbekomme (Verschlüsselung?), dann doch mit Python - da gibt's Vorlagen. Aber ich habe gestern erst meine ersten Python-Code-Zeilen geschrieben. NodeJS hätte den Vorteil, dass man es eventuell auch als Script innerhalb ioBroker laufen lassen könnte. Eventuell auch mal als Adapter oder Teil eines bestehenden Adapters. Wobei ich im ersten Schritt die Daten lieber per MQTT versenden möchte. Erstens, da mein M-Bus-Adapter an einem RasPi ohne ioBroker hängt und zweitens, weil es dann auch außerhalb von ioBroker einsetzbar wäre.

      Noch ein Hinweis: Im Forum von "GuruX" habe ich gesehen, dass der Smartmeter des Vorarlberger Stromnetz-Betreibers bis auf die Datenlänge dasselbe Datenformat verwendet. Und wenn man sich das Datenblatt von diesem Adapter ansieht (https://www.ginzinger.com/de/wissen-events/techtalk/ginzinger-zubau-news-1/), dann dürften sehr viele österreichische Stromanbieter wired MBus mit DLMS verwenden. (Niederösterreich, Salzburg, Tirol, Vorarlberg sogar denselben Zähler).

      Haltet ihr das für sinnvoll, ein eigenes Script zu schreiben? Ich bezweifle, dass man zu einer schnellen Lösung kommt, wenn ich mit dem von GuruX in Kontakt trete wegen der Multi-Telegram-Pakete. Die node-mbus Bibliothek von Apollon, die vom ioBroker MBus-Adapter verwendet wird, habe ich kurz ausprobiert, aber das dürfte ein komplett anderes Protokoll sein.

      M 1 Reply Last reply Reply Quote 0
      • M
        meloneA @noox last edited by

        @noox such mal bei willhaben.at nach dem "SmartMeter Kundenschnittstellenmodul". Die Module funktionieren perfekt und unterstützen auch deinen Zähler.

        N 1 Reply Last reply Reply Quote 0
        • N
          noox @meloneA last edited by

          @melonea Danke für den Tipp. Als ich gestern von dem Ginzinger-Gerät gelesen hatte, war da auch ein Link zu Willhaben - aber nicht mehr gültig, daher bin ich dem nicht weiter nachgegangen.

          Ich werde aber trotzdem beim eigenen Script bleiben. Hab den M-Bus-Adapter schon und der RasPi in der Nähe ist auch zum Überwachen der USV - brauch ich also sowieso.

          1 Reply Last reply Reply Quote 0
          • N
            noox last edited by

            Ich hab das jetzt umgesetzt. Ist seit Ende November im Einsatz:
            https://github.com/nooxnet/smart-meter-mbus-dlms

            Man benötigt einen MBus-Adapter an der seriellen Schnittstelle (USB). War durchaus etwas aufwändig, weil da so viele Protokolle involviert sind.

            Hab noch die Daten von früher aufbereitet, damit ich eine schöne Übersicht bekomme:
            5e4a1807-b20b-4fc6-8e81-858bedf8e4f3-image.png

            A 1 Reply Last reply Reply Quote 0
            • A
              Aley @noox last edited by

              @noox Hallo,
              vielen Dank, dass du deine Arbeit public gemacht hast! Habe jetzt auch meinen Kaifa-Zähler von der Salzburg-Netz bekommen, und möchte die Daten in den ioBroker einlesen und verarbeiten - für Steuerung der Wärmepumpe und des Balkonkraftwerks mit Speicher. Später möchte ich auf stündlichen Stromtarif umstellen (spot market Tarif)... und den Verbrauch optimieren. Bin hald noch ein newbie auf iobroker - hoffe aber, ich bekomme das hin 🙂

              Der MBUS-USB-Adapter ist jedenfalls schon mal bestellt, und der iobroker auf dem Raspi 4 installiert. Jetzt heißt es warten, bis der USB-Adapter aus China aufschlägt 😉

              Läuft das bei Dir noch alles einwandfrei?
              Was machst Du mit den Daten?
              Hast Du auch eine Visualisierung realisiert?

              Schöne Grüße aus dem Salzburger Land sendet,
              Alex

              A 1 Reply Last reply Reply Quote 0
              • A
                Aley @Aley last edited by

                Hallo nochmals,
                wollte nur Vollzug melden. Hab das bei mir genau nach dieser Anleitung umgesetzt, und es funktioniert seit Anfang des Jahres einwandfrei - Daten werden über iobroker und influx DB protokolliert.
                Nochmals danke!

                N 1 Reply Last reply Reply Quote 0
                • N
                  noox @Aley last edited by

                  @aley Sehr fein! Danke für die Rückmeldung!

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  629
                  Online

                  31.7k
                  Users

                  79.9k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  2326
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo