Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Gas Zähler BK-G4 AT - mit M-Bus auslesen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Gas Zähler BK-G4 AT - mit M-Bus auslesen

Scheduled Pinned Locked Moved Hardware
52 Posts 23 Posters 12.3k Views 21 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • HomoranH Homoran

    @dojodojo sagte in Gas Zähler BK-G4 AT - mit M-Bus auslesen:

    welche Nachteile hat deine Lösung

    so ganz verstehe ich deine Fragen nicht.
    Genau wie im anderen Thread.

    Hier fragst du hier anscheinend den falschen.
    erst recht mit

    @dojodojo sagte in Gas Zähler BK-G4 AT - mit M-Bus auslesen:

    welche Vorteile die zuvor angebotene?

    @benno würde seine Methode nicht vorstellen wenn sie nichts taugt.

    D Offline
    D Offline
    dojodojo
    wrote on last edited by dojodojo
    #41

    @homoran
    Die Benno Lösung erscheint mir erheblich einfacher, als die zuvor vorgestellten Lösungen.

    @Benno-B
    Kann man deine Lösung https://github.com/BennoB666/BK-G4AT2MQTT auf jeden mBus Zähler übertragen?

    Den ESP32-C3 Super Mini WiFi & Bluetooth Modul mit USB-C habe ich bisher nicht gekannt.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      moritzabcde
      wrote on last edited by moritzabcde
      #42

      Hey!
      Ich habe gerade einen BK-G4 Ac eingebaut bekommen und würde ihn nun gerne bei ioBroker einbinden. Vermutlich lacht ihr wegen der Frage: Darf man die "Plombe" unten rechts entfernen/zerstören, um an den Anschluss zu kommen? BK-G4Ac.jpg
      Wie habt ihr das gemacht? Dieses PDF zur Installation eines Funkmoduls habe ich bei Pipersberg gefunden, aber da wird von einer Ersatzplombe gesprochen.

      P 1 Reply Last reply
      0
      • M moritzabcde

        Hey!
        Ich habe gerade einen BK-G4 Ac eingebaut bekommen und würde ihn nun gerne bei ioBroker einbinden. Vermutlich lacht ihr wegen der Frage: Darf man die "Plombe" unten rechts entfernen/zerstören, um an den Anschluss zu kommen? BK-G4Ac.jpg
        Wie habt ihr das gemacht? Dieses PDF zur Installation eines Funkmoduls habe ich bei Pipersberg gefunden, aber da wird von einer Ersatzplombe gesprochen.

        P Offline
        P Offline
        peterfido
        wrote on last edited by peterfido
        #43

        @moritzabcde Plomben entfernen ist strafbar. Ruf den Energieversorger / Messstellenbetreiber an und frag, ob Du da dran darfst, oder jemand rauskommt und dein Kabel anschließt. Die Antwort ist mit sehr hoher Wahrscheinlichkeit ein Nein.

        Gruß

        Peterfido


        Proxmox auf Intel NUC12WSHi5
        ioBroker: Debian (VM)
        CCU: Debmatic (VM)
        Influx: Debian (VM)
        Grafana: Debian (VM)
        eBus: Debian (VM)
        Zigbee: Debian (VM) mit zigbee2mqtt

        1 Reply Last reply
        0
        • I Offline
          I Offline
          Interflexus
          wrote on last edited by
          #44

          Habe benno B´s Lösung nachgebaut, funktioniert einwandfrei. Sehr simpel im Aufbau. Danke an Oli.

          VG Jens

          D 1 Reply Last reply
          0
          • I Interflexus

            Habe benno B´s Lösung nachgebaut, funktioniert einwandfrei. Sehr simpel im Aufbau. Danke an Oli.

            VG Jens

            D Offline
            D Offline
            dojodojo
            wrote on last edited by dojodojo
            #45

            @interflexus Hast Du für uns ein Bild von deinem Gaszähler?

            Benno B ist Oli, richtig?

            Mit welcher Software, auch das Release flasht Ihr?

            I 1 Reply Last reply
            0
            • D dojodojo

              @interflexus Hast Du für uns ein Bild von deinem Gaszähler?

              Benno B ist Oli, richtig?

              Mit welcher Software, auch das Release flasht Ihr?

              I Offline
              I Offline
              Interflexus
              wrote on last edited by Homoran
              #46

              @dojodojo

              Zählerbild:edited_IMG_20250901_174653205_AE.jpg

              Software ist platformio.io. Ist beschrieben auf Benno B´s github-Link.

              VG Jens

              HomoranH 1 Reply Last reply
              0
              • I Interflexus

                @dojodojo

                Zählerbild:edited_IMG_20250901_174653205_AE.jpg

                Software ist platformio.io. Ist beschrieben auf Benno B´s github-Link.

                VG Jens

                HomoranH Do not disturb
                HomoranH Do not disturb
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #47

                @interflexus setz das Bild nochmal rein! Aber nicht nur die Klartext-ID unkenntlich machen! da gibt es noch weitere :-)

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Reply Last reply
                0
                • I Offline
                  I Offline
                  Interflexus
                  wrote on last edited by
                  #48

                  Zählerbild - zweiter Versuch:IMG_20250922_172257034~2.jpg

                  D 1 Reply Last reply
                  1
                  • I Interflexus

                    Zählerbild - zweiter Versuch:IMG_20250922_172257034~2.jpg

                    D Offline
                    D Offline
                    dojodojo
                    wrote on last edited by
                    #49

                    @interflexus Vielen Dank

                    1 Reply Last reply
                    0
                    • Benno BB Benno B

                      Ich habe unter https://github.com/BennoB666/BK-G4AT2MQTT einen Quellcode für eine Firmware welche mit einem ESP32 ohne zusätzliche Hardware den Zählerstand ausließt und per MQTT an einen Server sendet.
                      Falls es jemanden hilt.
                      LG Oli

                      R Offline
                      R Offline
                      Rikus1234
                      wrote on last edited by Rikus1234
                      #50

                      @benno-b Danke Dir für den Code! Ich habe ihn in Arduino implementiert und einen Wemos S2 mini genutzt, da ich den noch rumliegen hatte. RX-, TX-Pins angepasst, aber leider erhielt ich da immer nur nicht auswertbare Rückgabewerte vom Zähler. Dann holte ich mir einen Wemos C3 mini wie Du ihn genutzt hast und es klappte. Wo wird das Problem liegen? Ich nutze schon ewig alle möglichen ESPs mit deren GPIOs und kenne mich da schon etwas aus... LG aus Dresden

                      1 Reply Last reply
                      0
                      • Benno BB Benno B

                        Ich habe unter https://github.com/BennoB666/BK-G4AT2MQTT einen Quellcode für eine Firmware welche mit einem ESP32 ohne zusätzliche Hardware den Zählerstand ausließt und per MQTT an einen Server sendet.
                        Falls es jemanden hilt.
                        LG Oli

                        R Offline
                        R Offline
                        Rainer 2
                        wrote on last edited by
                        #51

                        @benno-b

                        Hallo,
                        ich habe mir nun auch den ESP32-C3 Super Mini besorgt.
                        Leider kenne ich mich damit überhaupt nicht aus.
                        Wie bekomme ich den Quellcode auf den ESP?

                        Gruß Rainer

                        1 Reply Last reply
                        0
                        • H Offline
                          H Offline
                          he3
                          wrote on last edited by
                          #52

                          Hi, vielen Dank an @nebuk.
                          Ich hab den BK-G4AT mit dem Protokoll AE.05:05.01:01.01.
                          Ich habs zuerst auch mit nem Wemos probiert, allerdings ESP8266 (D1 mini). Das hab ich mit Arduino irgendwie nicht zum laufen gekriegt und hab mich dann inspirieren lassen von @bv-iobroker. Ich hatte vorher eh einen Pi Zero mit Magnetsensor genutzt und hab den dann einfach mal geupdatet und mit dem USB TTL Adapter läuft es jetzt top. Kosten für den Adapter 2,20€ (Prolific PL2303HX bei Berrybase).

                          anschluss.jpg

                          Angeschlossen sind wie schon beschrieben:
                          2 3
                          1 4

                          1 - grün - TX
                          2 - rot - 5V
                          3 - weiß - RX
                          4 - schwarz - GND

                          Das Python Script:

                          # ---------------------------- Bibliotheken -----------------------
                          import serial
                          import time
                          # ---------------------- Variablen und Inistialisierung -----------
                          # USB Wandler Seriell
                          PORT = "/dev/ttyUSB0"
                          
                          # Poll-Frame um Zaehler anzufragen
                          # Start | Control | Address | Checksum | Stopb
                          POLL_FRAME = bytes([0x10, 0x5B, 0x00, 0x5B, 0x16])
                          
                          # Serielle Schnittstelle
                          ser = serial.Serial(
                              port=PORT,
                              baudrate=2400,
                              bytesize=8,
                              parity=serial.PARITY_EVEN,
                              stopbits=1,
                              timeout=1
                          )
                          
                          # ---------------------- Funktionen -------------------------------
                          #Rohdaten umwandeln
                          def parse_gas_volume_bcd(data):
                              # Sucht nach DIF=0x0C und VIF=0x13 und dekodiert die folgenden 4 BCD-Bytes.
                              for i in range(len(data) - 6):
                                  if data[i] == 0x0C and data[i+1] == 0x13:
                                      b0 = data[i+2]
                                      b1 = data[i+3]
                                      b2 = data[i+4]
                                      b3 = data[i+5]
                          
                                      # BCD dekodieren
                                      digits = []
                                      for b in (b0, b1, b2, b3):
                                          digits.append(b & 0x0F)        # Low nibble
                                          digits.append((b >> 4) & 0x0F) # High nibble
                          
                                      # Zahl zusammensetzen
                                      value = 0
                                      factor = 1
                                      for d in digits:
                                          value += d * factor
                                          factor *= 10
                          
                                      # /1000 fuer m3
                                      return value / 1000.0
                                      
                              return None
                          
                          #Seriell abfragen
                          def read_mbus():  
                              # Daten anfragen
                              ser.reset_input_buffer()
                              ser.write(POLL_FRAME)
                              ser.flush()
                              time.sleep(0.1)
                              data = ser.read(256)
                              return data
                              
                          # ---------------------- Programmschleife -------------------------------
                          while True:
                              try:
                                  data = read_mbus()
                                  print("Rohdaten:", data)
                          
                                  if data:
                                      volume = parse_gas_volume_bcd(data)
                                      if volume is not None:
                                          print("Gasverbrauch:", volume, "m3")
                                      else:
                                          print("Kein Volumenwert gefunden")
                                  else:
                                      print("Keine Antwort")
                                      
                              except Exception as e:
                                  print("Except Fehler:", e)
                                  
                              time.sleep(15)
                          
                          
                          
                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          293

                          Online

                          32.6k

                          Users

                          82.3k

                          Topics

                          1.3m

                          Posts
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Home
                          • Recent
                          • Tags
                          • Unread 0
                          • Categories
                          • Unreplied
                          • Popular
                          • GitHub
                          • Docu
                          • Hilfe