Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Microcontroller
  5. JK-BMS über RS485 mit ESPHome auslesen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

JK-BMS über RS485 mit ESPHome auslesen

Geplant Angeheftet Gesperrt Verschoben Microcontroller
jk-bmsesphomearduinoiobroker
94 Beiträge 11 Kommentatoren 19.9k Aufrufe 10 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • N nettworker

    Ich weis ja nicht ob sie es schon wußten :)
    Man kann das JKBMS mittlerweile mit der openDTU onbattery ( per Draht ) auslesen und es gibt eine openDTU Fusion Platine fertig bestückt die nach Einrichtung fast out of the box läuft.
    Software ist OpenSource, Platine liegt je nach gewünschter Ausführung bei ca. 35 -45@. Und NEIN, ich bin weder Entwickler noch verdiene ich was dran. Ich denke der eine oder andere sucht eine einfache funktionierende Lösung ohne selbst Software kompilieren zu müssen oder zu löten. Bei Fragen könnt ihr mich gerne fragen oder direkt auf die Github Seite der Entwickler gehen.
    Hab ich jetzt seit 2 Monaten problemlos im Einsatz. Derzeit wird die Software vom Entwickler bei Github noch erweitert um grundlegende Befehle zu senden ( Charge on/off etc. ).

    M Offline
    M Offline
    Marco 3
    schrieb am zuletzt editiert von
    #51

    @nettworker
    Klingt grundsätzlich interessant. Auch wenn bei meinem System die RS485 mit einem galvanisch getrennten Umwandler die Daten an Victron cerbo gehen.
    Möchten ich den Cerbo nicht noch mehr belasten mit MQTT, mit Modbus sendet er schon die Ladekontroller Zustände.... Aber leider vom JK, sieht es spärlich mit Daten für Modbus aus.

    Daher nehme ich gern die Daten die vom JK kommen über BT ab. Das Victron System soll seine Arbeit machen.

    Aber die Open DTU Fusion Lösung ist auch wieder ein Weg der nach Rom führt.
    Danke für die Info.

    1 Antwort Letzte Antwort
    0
    • syssiS syssi

      Das JK-BMS publiziert seine Messwerte einmal pro Sekunde. Man kann sich daraufhin entscheiden, wieviel man davon verwirft:

      jk_bms_ble:
        - ble_client_id: client0
          protocol_version: ${protocol_version}
          throttle: 30s
          id: bms0
      

      Per throttle: 60s wird nun ein Schwung Nachrichten pro Minute decodiert und per MQTT weitergereicht. Sobald alles läuft, solltest du das Log-Level herunterstellen damit der ESP nicht so sehr damit beschaeftigt ist Logs zu schreiben:

      logger:
        level: INFO
      
      M Offline
      M Offline
      Marco 3
      schrieb am zuletzt editiert von
      #52

      @syssi
      Da klingt sehr interessant. Heißt das jetzt, daß die Messwerte aktuell mit 30sec oder 60sec versetzt an den iobroker kommen

      syssiS 1 Antwort Letzte Antwort
      0
      • M Marco 3

        @syssi
        Da klingt sehr interessant. Heißt das jetzt, daß die Messwerte aktuell mit 30sec oder 60sec versetzt an den iobroker kommen

        syssiS Offline
        syssiS Offline
        syssi
        schrieb am zuletzt editiert von
        #53

        Da klingt sehr interessant. Heißt das jetzt, daß die Messwerte aktuell mit 30sec oder 60sec versetzt an den iobroker kommen

        Schau Mal in deiner YAML, was dort aktuell eingestellt ist. Ich gehe von 5s aus. Von einem Versatz würde ich nicht sprechen. Eine Nachricht vom BMS enthält alle Messwerte. Pro Sekunde wird eine Nachricht übertragen. Bei eine 5 Sekunden-Drosselung, werden 4 Nachrichten verworfen und jede 5. Nachricht verarbeitet. Das hat zur Folge, dass es alle 5 Sekunden (die gerade aktuelle Nachricht) auf dem MQTT-Broker ankommt. Im Fall der 60s werden 59 Nachrichten verworfen und die 60. propagiert.

        M 1 Antwort Letzte Antwort
        0
        • syssiS syssi

          Da klingt sehr interessant. Heißt das jetzt, daß die Messwerte aktuell mit 30sec oder 60sec versetzt an den iobroker kommen

          Schau Mal in deiner YAML, was dort aktuell eingestellt ist. Ich gehe von 5s aus. Von einem Versatz würde ich nicht sprechen. Eine Nachricht vom BMS enthält alle Messwerte. Pro Sekunde wird eine Nachricht übertragen. Bei eine 5 Sekunden-Drosselung, werden 4 Nachrichten verworfen und jede 5. Nachricht verarbeitet. Das hat zur Folge, dass es alle 5 Sekunden (die gerade aktuelle Nachricht) auf dem MQTT-Broker ankommt. Im Fall der 60s werden 59 Nachrichten verworfen und die 60. propagiert.

          M Offline
          M Offline
          Marco 3
          schrieb am zuletzt editiert von
          #54

          @syssi
          O.k. ja, es stehen die 5 darin könnte ich da auch 1s eintragen?

          jk_bms_ble:
            - ble_client_id: client0
              protocol_version: ${protocol_version}
              throttle: 5s // Abrufintervall der BMS Datensätze
              id: bms0
          

          Darf man im yaml File Kommentare mit // eintragen, sie he wie im Beispiel

          syssiS 1 Antwort Letzte Antwort
          0
          • M Marco 3

            @syssi
            O.k. ja, es stehen die 5 darin könnte ich da auch 1s eintragen?

            jk_bms_ble:
              - ble_client_id: client0
                protocol_version: ${protocol_version}
                throttle: 5s // Abrufintervall der BMS Datensätze
                id: bms0
            

            Darf man im yaml File Kommentare mit // eintragen, sie he wie im Beispiel

            syssiS Offline
            syssiS Offline
            syssi
            schrieb am zuletzt editiert von
            #55

            @marco-3 said in JK-BMS über RS485 mit ESPHome auslesen:

            jk_bms_ble:

            • ble_client_id: client0
              protocol_version: ${protocol_version}
              throttle: 5s // Abrufintervall der BMS Datensätze
              id: bms0

            Ja, das Zeichen dafür ist aber ein #:

            jk_bms_ble:
              - ble_client_id: client0
                protocol_version: ${protocol_version}
                throttle: 5s # Abrufintervall der BMS Datensätze
                id: bms0
            

            Auch möglich ist:

            jk_bms_ble:
              - ble_client_id: client0
                protocol_version: ${protocol_version}
                # Abrufintervall der BMS Datensätze
                throttle: 5s
                id: bms0
            
            S 1 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              Marco 3
              schrieb am zuletzt editiert von
              #56

              Es läuft immer besser! Daten im 1s Takt kommen sehr zuverlässig.

              Und schon ist die nächste Frage da.
              Ich verwende w verschiedene ESP32 Boards. Ein normales und eine D1 Mini Version. Das normal hat eine Status LED, welche Blinkzeichen von sich gibt, sieht so aus, als ob es immer der MQTT Sendebefehl ist. Das D1 Board hat 2 Led, die erste ist für die Power ON. Bei der 2. Led steht ein L, diese gibt aber keine Status von sich. Kann man dies noch aktivieren, oder muss ich am Pinout noch eine irgend wo anbauen.

              17047067095591944740669806496167.jpg

              syssiS 1 Antwort Letzte Antwort
              0
              • M Marco 3

                Es läuft immer besser! Daten im 1s Takt kommen sehr zuverlässig.

                Und schon ist die nächste Frage da.
                Ich verwende w verschiedene ESP32 Boards. Ein normales und eine D1 Mini Version. Das normal hat eine Status LED, welche Blinkzeichen von sich gibt, sieht so aus, als ob es immer der MQTT Sendebefehl ist. Das D1 Board hat 2 Led, die erste ist für die Power ON. Bei der 2. Led steht ein L, diese gibt aber keine Status von sich. Kann man dies noch aktivieren, oder muss ich am Pinout noch eine irgend wo anbauen.

                17047067095591944740669806496167.jpg

                syssiS Offline
                syssiS Offline
                syssi
                schrieb am zuletzt editiert von syssi
                #57

                In der YAML ist keine Anweisung enthalten, dass die LED gesteuert werden soll. Die Erklärung wird vielmehr sein: Eines der Boards besitzt eine TX-LED, welche leuchtet sobald Daten auf der seriellen Schnittstelle (GPIO1?) rausgeschrieben werden. Wenn du das Board über das Kabel flashst sollte sie flackern. Da der logger von ESPHome periodisch die Nachrichten auf die serielle Schnittstelle schreibt, leuchtet die LED im gleichen Takt.

                Wir können die YAML-Konfiguration beliebig erweitern und mit einer Anweisung versehen, was mit der LED (an GPIO2 des D1 Mini ESP32) passieren soll.

                M 1 Antwort Letzte Antwort
                0
                • syssiS syssi

                  In der YAML ist keine Anweisung enthalten, dass die LED gesteuert werden soll. Die Erklärung wird vielmehr sein: Eines der Boards besitzt eine TX-LED, welche leuchtet sobald Daten auf der seriellen Schnittstelle (GPIO1?) rausgeschrieben werden. Wenn du das Board über das Kabel flashst sollte sie flackern. Da der logger von ESPHome periodisch die Nachrichten auf die serielle Schnittstelle schreibt, leuchtet die LED im gleichen Takt.

                  Wir können die YAML-Konfiguration beliebig erweitern und mit einer Anweisung versehen, was mit der LED (an GPIO2 des D1 Mini ESP32) passieren soll.

                  M Offline
                  M Offline
                  Marco 3
                  schrieb am zuletzt editiert von Marco 3
                  #58

                  @syssi
                  Danke, was wäre, die sinnvollste Lösung beim D1?

                  Ich möchte eigentlich bei einem Blick drauf nur erkennen, daß es läuft und nicht fest gefahren ist.

                  Oder kann man daß so weiter stricken...
                  Kein W-Lan --> 2x blinken 5sec Pause
                  Keine BT Verbindung --> 5x blinken 5sec Pause.

                  Am Ende wäre es Klasse, wenn man mit einem Blick sieht ESP ist o.k. Fehler liegt bei Iobroker ...

                  Durch die andere ESP Version für das JKBMS, hab es in 1-30Tagen Abständen Aufhänger des ESP. Wobei ich nicht gleich wusste was los war. Vermutung lang bei, fest gefahren.

                  Daher hab ich mich hier für dies Lösung entschieden, weil diese weiter entwickelt wird. Und nun erst Recht, da die ganzen Tips und Vorschläge von dir, meine Probierfreude fördern und ich nicht gefrustet hinwerfe... Noch mal ganz großes Lob für die Hilfe und die JKBMS Implementierung auf esphome Basis hier.

                  syssiS 1 Antwort Letzte Antwort
                  0
                  • M Marco 3

                    @syssi
                    Danke, was wäre, die sinnvollste Lösung beim D1?

                    Ich möchte eigentlich bei einem Blick drauf nur erkennen, daß es läuft und nicht fest gefahren ist.

                    Oder kann man daß so weiter stricken...
                    Kein W-Lan --> 2x blinken 5sec Pause
                    Keine BT Verbindung --> 5x blinken 5sec Pause.

                    Am Ende wäre es Klasse, wenn man mit einem Blick sieht ESP ist o.k. Fehler liegt bei Iobroker ...

                    Durch die andere ESP Version für das JKBMS, hab es in 1-30Tagen Abständen Aufhänger des ESP. Wobei ich nicht gleich wusste was los war. Vermutung lang bei, fest gefahren.

                    Daher hab ich mich hier für dies Lösung entschieden, weil diese weiter entwickelt wird. Und nun erst Recht, da die ganzen Tips und Vorschläge von dir, meine Probierfreude fördern und ich nicht gefrustet hinwerfe... Noch mal ganz großes Lob für die Hilfe und die JKBMS Implementierung auf esphome Basis hier.

                    syssiS Offline
                    syssiS Offline
                    syssi
                    schrieb am zuletzt editiert von syssi
                    #59

                    @marco-3 Für WiFi/MQTT kannst du diesen Schnippsel nutzen:

                    status_led:
                      pin:
                        number: GPIO2
                        inverted: true
                    

                    Hier findest du eine Beschreibung, was er tut: https://esphome.io/components/status_led.html

                    Für Bluetooth solltest du dir einen Lötkolben schnappen und eine weitere LED an einen freien GPIO löten. Vorzugsweise eine Blaue. ;-) Daraufhin werde ich dir zeigen, wie man sich an den on_connect und on_disconnect-Callback des ble_client haengt, so dass man die LED an bzw. ausschaltet, sobald die Verbindung zum BMS steht/abbricht. (https://esphome.io/components/ble_client.html#on-connect)

                    M 2 Antworten Letzte Antwort
                    0
                    • syssiS syssi

                      @marco-3 Für WiFi/MQTT kannst du diesen Schnippsel nutzen:

                      status_led:
                        pin:
                          number: GPIO2
                          inverted: true
                      

                      Hier findest du eine Beschreibung, was er tut: https://esphome.io/components/status_led.html

                      Für Bluetooth solltest du dir einen Lötkolben schnappen und eine weitere LED an einen freien GPIO löten. Vorzugsweise eine Blaue. ;-) Daraufhin werde ich dir zeigen, wie man sich an den on_connect und on_disconnect-Callback des ble_client haengt, so dass man die LED an bzw. ausschaltet, sobald die Verbindung zum BMS steht/abbricht. (https://esphome.io/components/ble_client.html#on-connect)

                      M Offline
                      M Offline
                      Marco 3
                      schrieb am zuletzt editiert von Marco 3
                      #60

                      @syssi
                      Moin, eigentlich schwebt mir GPIO0 vor, da er gleich neben GND liegt. Aber laut Legende soll dieser nicht benutz werden.

                      Screenshot_20240108_160033_Chrome.jpg

                      syssiS 1 Antwort Letzte Antwort
                      0
                      • M Marco 3

                        @syssi
                        Moin, eigentlich schwebt mir GPIO0 vor, da er gleich neben GND liegt. Aber laut Legende soll dieser nicht benutz werden.

                        Screenshot_20240108_160033_Chrome.jpg

                        syssiS Offline
                        syssiS Offline
                        syssi
                        schrieb am zuletzt editiert von
                        #61

                        Gut erkannt. Bitte umschiffen. Wenn du GPIO0 versehentlich (permant) auf Masse ziehst, dann bootet der ESP in Zukunft nur noch in den "Schreibe jetzt bitte neue Software drauf"-Modus anstatt die Anwendung zu starten.

                        M 1 Antwort Letzte Antwort
                        0
                        • syssiS syssi

                          Gut erkannt. Bitte umschiffen. Wenn du GPIO0 versehentlich (permant) auf Masse ziehst, dann bootet der ESP in Zukunft nur noch in den "Schreibe jetzt bitte neue Software drauf"-Modus anstatt die Anwendung zu starten.

                          M Offline
                          M Offline
                          Marco 3
                          schrieb am zuletzt editiert von
                          #62

                          @syssi
                          GPIO27 wird es werden, passt auch super, GND gleich da und rechts oben, als BT Led gut geeignet....

                          syssiS 1 Antwort Letzte Antwort
                          0
                          • M Marco 3

                            @syssi
                            GPIO27 wird es werden, passt auch super, GND gleich da und rechts oben, als BT Led gut geeignet....

                            syssiS Offline
                            syssiS Offline
                            syssi
                            schrieb am zuletzt editiert von
                            #63

                            Bitte den (bisher nicht erwähnten) Widerstand vergessen: https://techexplorations.com/guides/esp32/begin/digitalout/

                            syssiS 1 Antwort Letzte Antwort
                            0
                            • syssiS syssi

                              @marco-3 Für WiFi/MQTT kannst du diesen Schnippsel nutzen:

                              status_led:
                                pin:
                                  number: GPIO2
                                  inverted: true
                              

                              Hier findest du eine Beschreibung, was er tut: https://esphome.io/components/status_led.html

                              Für Bluetooth solltest du dir einen Lötkolben schnappen und eine weitere LED an einen freien GPIO löten. Vorzugsweise eine Blaue. ;-) Daraufhin werde ich dir zeigen, wie man sich an den on_connect und on_disconnect-Callback des ble_client haengt, so dass man die LED an bzw. ausschaltet, sobald die Verbindung zum BMS steht/abbricht. (https://esphome.io/components/ble_client.html#on-connect)

                              M Offline
                              M Offline
                              Marco 3
                              schrieb am zuletzt editiert von Marco 3
                              #64

                              @syssi said in JK-BMS über RS485 mit ESPHome auslesen:

                              @marco-3 Für WiFi/MQTT kannst du diesen Schnippsel nutzen:
                              Für Bluetooth solltest du dir einen Lötkolben schnappen und eine weitere LED an einen freien GPIO löten. Vorzugsweise eine Blaue. ;-) Daraufhin werde ich dir zeigen, wie man sich an den on_connect und on_disconnect-Callback des ble_client haengt, so dass man die LED an bzw. ausschaltet, sobald die Verbindung zum BMS steht/abbricht. (https://esphome.io/components/ble_client.html#on-connect)

                              Widerstand geht klar. Kann ich alles erst heut aben zusammen basteln... :) Dann wird es interessant wie ich die Zustände auf GPIO27 Ausgebe.

                              1 Antwort Letzte Antwort
                              0
                              • syssiS syssi

                                Bitte den (bisher nicht erwähnten) Widerstand vergessen: https://techexplorations.com/guides/esp32/begin/digitalout/

                                syssiS Offline
                                syssiS Offline
                                syssi
                                schrieb am zuletzt editiert von
                                #65

                                Diesen Abschnitt:

                                ble_client:
                                  - mac_address: ${mac_address}
                                    id: client0
                                

                                bitte ersetzen durch diesen Abschnitt:

                                ble_client:
                                  - mac_address: ${mac_address}
                                    id: client0
                                    on_connect:
                                      then:
                                        - output.turn_on: bluetoothled
                                    on_disconnect:
                                      then:
                                        - output.turn_off: bluetoothled
                                
                                output:
                                  - platform: gpio
                                    pin: GPIO27
                                    id: bluetoothled
                                
                                syssiS 1 Antwort Letzte Antwort
                                0
                                • syssiS syssi

                                  Diesen Abschnitt:

                                  ble_client:
                                    - mac_address: ${mac_address}
                                      id: client0
                                  

                                  bitte ersetzen durch diesen Abschnitt:

                                  ble_client:
                                    - mac_address: ${mac_address}
                                      id: client0
                                      on_connect:
                                        then:
                                          - output.turn_on: bluetoothled
                                      on_disconnect:
                                        then:
                                          - output.turn_off: bluetoothled
                                  
                                  output:
                                    - platform: gpio
                                      pin: GPIO27
                                      id: bluetoothled
                                  
                                  syssiS Offline
                                  syssiS Offline
                                  syssi
                                  schrieb am zuletzt editiert von
                                  #66

                                  Ggf. sollten wir die Bluetooth LED lieber an den Update-Event eines Sensors (z.B. total_voltage) hängen. Ich habe die Sorge, dass warum auch immer die BLE-Verbindung nicht zusammenbricht und trotzdem keine Daten vom BMS kommen. Über ein Blink per Sensor-Update hättest du einen besseren Herzschlag. Alternativ lötest du eine dritte LED an Board. ;-)

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • syssiS syssi

                                    Ggf. sollten wir die Bluetooth LED lieber an den Update-Event eines Sensors (z.B. total_voltage) hängen. Ich habe die Sorge, dass warum auch immer die BLE-Verbindung nicht zusammenbricht und trotzdem keine Daten vom BMS kommen. Über ein Blink per Sensor-Update hättest du einen besseren Herzschlag. Alternativ lötest du eine dritte LED an Board. ;-)

                                    M Offline
                                    M Offline
                                    Marco 3
                                    schrieb am zuletzt editiert von Marco 3
                                    #67

                                    @syssi
                                    Klar warum nicht. Herzschlag klingt sogar besser...

                                    syssiS 1 Antwort Letzte Antwort
                                    0
                                    • M Marco 3

                                      @syssi
                                      Klar warum nicht. Herzschlag klingt sogar besser...

                                      syssiS Offline
                                      syssiS Offline
                                      syssi
                                      schrieb am zuletzt editiert von
                                      #68

                                      So sieht das Schnippsel aus, wenn man am ersten Sensor (min_cell_voltage) lauscht und pro Update einmal die LED blinken lässt:

                                      output:
                                        - platform: gpio
                                          pin: GPIO27
                                          id: bluetoothled
                                      
                                      sensor:
                                        - platform: jk_bms_ble
                                          jk_bms_ble_id: bms0
                                          min_cell_voltage:
                                            name: "${name} min cell voltage"
                                            on_value:
                                              then:
                                                - output.turn_on: bluetoothled
                                                - delay: 500ms
                                                - output.turn_off: bluetoothled
                                          max_cell_voltage:
                                            name: "${name} max cell voltage"
                                          min_voltage_cell:
                                            name: "${name} min voltage cell"
                                          max_voltage_cell:
                                            name: "${name} max voltage cell"
                                          # ...und die restlichen Sensoren...
                                      
                                      M 1 Antwort Letzte Antwort
                                      0
                                      • syssiS syssi

                                        So sieht das Schnippsel aus, wenn man am ersten Sensor (min_cell_voltage) lauscht und pro Update einmal die LED blinken lässt:

                                        output:
                                          - platform: gpio
                                            pin: GPIO27
                                            id: bluetoothled
                                        
                                        sensor:
                                          - platform: jk_bms_ble
                                            jk_bms_ble_id: bms0
                                            min_cell_voltage:
                                              name: "${name} min cell voltage"
                                              on_value:
                                                then:
                                                  - output.turn_on: bluetoothled
                                                  - delay: 500ms
                                                  - output.turn_off: bluetoothled
                                            max_cell_voltage:
                                              name: "${name} max cell voltage"
                                            min_voltage_cell:
                                              name: "${name} min voltage cell"
                                            max_voltage_cell:
                                              name: "${name} max voltage cell"
                                            # ...und die restlichen Sensoren...
                                        
                                        M Offline
                                        M Offline
                                        Marco 3
                                        schrieb am zuletzt editiert von Marco 3
                                        #69

                                        @syssi
                                        Ich bin Mega begeistert!!! Danke Danke Danke...

                                        Bin aber einen ein klein wenig anderen Weg gegangen. Als Status LED, also GPIO02 war es net so dolle, ist immer an. Aber sie ist blau :) also kann sie als BT Kontroll LED verwendet werden und dein Heartbeat Vorschlag ist einfach genial.

                                        output:
                                         - platform: gpio
                                           pin: GPIO02
                                           id: bluetoothled
                                        
                                        sensor:
                                         - platform: jk_bms_ble
                                           jk_bms_ble_id: bms0
                                        .....
                                           total_voltage:
                                             name: "${name} total voltage"
                                             on_value:
                                               then:
                                                 - output.turn_on: bluetoothled
                                                 - delay: 500ms
                                                 - output.turn_off: bluetoothled
                                        .....
                                        
                                        
                                        

                                        Die vorhandene blaue Status LED sagt mir nun ob Daten vom BT kommen. Ich habe auch die Gegenprüfung gemacht und den ESP abgesteckt, mit Handy auf das JK drauf verbunden..... ESP angesteckt und es geht keine blaue Status LED an! Handyverbindung zum JK abgebaut.... der ESP verbindet sich automatisch auf das JK BMS und die Blaue LED blinkt.
                                        SUPER !!!

                                        Ich habe aktuell das WEB interface aktiviert und den Update Intervall auf 1s gestellt
                                        logging: steht auf INFO

                                        
                                        00:00:11	[I]	[jk_bms_ble:467]	
                                        Cell info frame (version 2, 300 bytes) received
                                        00:00:12	[W]	[component:214]	
                                        Component esp32_ble took a long time for an operation (0.24 s).
                                        00:00:12	[W]	[component:215]	
                                        Components should block for at most 20-30ms.
                                        00:00:13	[I]	[jk_bms_ble:467]	
                                        
                                        

                                        Die Message kommt aber auch, wenn ich auf 5s den Abrufintervall stelle.

                                        Anhand der gesehenen BMS uptime, werden aller 2s neue Sekunden gezählt, dies werde ich im io broker anzeigen lassen und weiß somit, daß es lebt.

                                        Ich bin voll begeistert!

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • M Marco 3

                                          @syssi
                                          Ich bin Mega begeistert!!! Danke Danke Danke...

                                          Bin aber einen ein klein wenig anderen Weg gegangen. Als Status LED, also GPIO02 war es net so dolle, ist immer an. Aber sie ist blau :) also kann sie als BT Kontroll LED verwendet werden und dein Heartbeat Vorschlag ist einfach genial.

                                          output:
                                           - platform: gpio
                                             pin: GPIO02
                                             id: bluetoothled
                                          
                                          sensor:
                                           - platform: jk_bms_ble
                                             jk_bms_ble_id: bms0
                                          .....
                                             total_voltage:
                                               name: "${name} total voltage"
                                               on_value:
                                                 then:
                                                   - output.turn_on: bluetoothled
                                                   - delay: 500ms
                                                   - output.turn_off: bluetoothled
                                          .....
                                          
                                          
                                          

                                          Die vorhandene blaue Status LED sagt mir nun ob Daten vom BT kommen. Ich habe auch die Gegenprüfung gemacht und den ESP abgesteckt, mit Handy auf das JK drauf verbunden..... ESP angesteckt und es geht keine blaue Status LED an! Handyverbindung zum JK abgebaut.... der ESP verbindet sich automatisch auf das JK BMS und die Blaue LED blinkt.
                                          SUPER !!!

                                          Ich habe aktuell das WEB interface aktiviert und den Update Intervall auf 1s gestellt
                                          logging: steht auf INFO

                                          
                                          00:00:11	[I]	[jk_bms_ble:467]	
                                          Cell info frame (version 2, 300 bytes) received
                                          00:00:12	[W]	[component:214]	
                                          Component esp32_ble took a long time for an operation (0.24 s).
                                          00:00:12	[W]	[component:215]	
                                          Components should block for at most 20-30ms.
                                          00:00:13	[I]	[jk_bms_ble:467]	
                                          
                                          

                                          Die Message kommt aber auch, wenn ich auf 5s den Abrufintervall stelle.

                                          Anhand der gesehenen BMS uptime, werden aller 2s neue Sekunden gezählt, dies werde ich im io broker anzeigen lassen und weiß somit, daß es lebt.

                                          Ich bin voll begeistert!

                                          M Offline
                                          M Offline
                                          Marco 3
                                          schrieb am zuletzt editiert von Marco 3
                                          #70

                                          @marco-3
                                          Dies ist meine aktuelle Installation: nur die Sensoren:
                                          -am ESP32 ist die blaue LED als BT Feedback --> erfolgreicher BT Datenabruf vom JKBM , aktiviert
                                          -web Interface ist mit den mir wichtigen Daten aktiviert

                                          substitutions:
                                            name: bms1
                                            device_description: "Monitor and control a JK-BMS via bluetooth"
                                            external_components_source: github://syssi/esphome-jk-bms@main
                                            mac_address: 11:22:33:44:AA:BB
                                            # Defaults to "JK02" (hardware version >= 6.0 and < 11.0)
                                            # Please use "JK02_32S" if you own a new JK-BMS >= hardware version 11.0 (f.e. JK-B2A8S20P hw 11.XW, sw 11.26)
                                            # Please use "JK04" if you have some old JK-BMS <= hardware version 3.0 (f.e. JK-B2A16S hw 3.0, sw. 3.3.0)
                                            protocol_version: JK02
                                          
                                          esphome:
                                            name: ${name}
                                            comment: ${device_description}
                                            project:
                                              name: "syssi.esphome-jk-bms"
                                              version: 1.5.0
                                          
                                          esp32:
                                            board: esp32dev
                                            framework:
                                              type: esp-idf
                                          
                                          external_components:
                                            - source: ${external_components_source}
                                              refresh: 0s
                                          
                                          wifi:
                                            ssid: !secret wifi_ssid
                                            password: !secret wifi_password
                                          
                                          ota:
                                          
                                          web_server:   # web server aktiviert  
                                          
                                          logger:
                                            level: INFO  # DEBUG geht auch
                                          
                                          # If you don't use Home Assistant please remove this `api` section and uncomment the `mqtt` component!
                                          # api:
                                          
                                          mqtt:
                                            broker: !secret mqtt_host
                                            username: !secret mqtt_username
                                            password: !secret mqtt_password
                                            port: !secret mqtt_port
                                            discovery: false   # weniger Ordner im iobroker MQTT Ordner (esphome und homeassiant fehlen dann)
                                          
                                          esp32_ble_tracker:
                                            on_ble_advertise:
                                              then:
                                                - lambda: |-
                                                    if (x.get_name().rfind("JK-", 0) == 0) {
                                                      ESP_LOGI("ble_adv", "New JK-BMS found");
                                                      ESP_LOGI("ble_adv", "  Name: %s", x.get_name().c_str());
                                                      ESP_LOGI("ble_adv", "  MAC address: %s", x.address_str().c_str());
                                                      ESP_LOGD("ble_adv", "  Advertised service UUIDs:");
                                                      for (auto uuid : x.get_service_uuids()) {
                                                        ESP_LOGD("ble_adv", "    - %s", uuid.to_string().c_str());
                                                      }
                                                    }
                                          
                                          ble_client:
                                            - mac_address: ${mac_address}
                                              id: client0
                                          
                                          jk_bms_ble:
                                            - ble_client_id: client0
                                              protocol_version: ${protocol_version}
                                              throttle: 1s # BMS BT Datensatz Auswertung aller ...Sekunden
                                              id: bms0
                                          
                                          output:       # BT soll auf die status LED gelegt werden
                                            - platform: gpio
                                              pin: GPIO2
                                              id: bluetoothled
                                          
                                          sensor:
                                            - platform: jk_bms_ble
                                              jk_bms_ble_id: bms0
                                              min_cell_voltage:
                                                name: "${name} min cell voltage"
                                              max_cell_voltage:
                                                name: "${name} max cell voltage"
                                              min_voltage_cell:
                                                name: "${name} min voltage cell"
                                              max_voltage_cell:
                                                name: "${name} max voltage cell"
                                              delta_cell_voltage:
                                                name: "${name} delta cell voltage"
                                              average_cell_voltage:
                                                name: "${name} average cell voltage"
                                              cell_voltage_1:
                                                name: "${name} cell voltage 1"
                                              cell_voltage_2:
                                                name: "${name} cell voltage 2"
                                              cell_voltage_3:
                                                name: "${name} cell voltage 3"
                                              cell_voltage_4:
                                                name: "${name} cell voltage 4"
                                              cell_voltage_5:
                                                name: "${name} cell voltage 5"
                                              cell_voltage_6:
                                                name: "${name} cell voltage 6"
                                              cell_voltage_7:
                                                name: "${name} cell voltage 7"
                                              cell_voltage_8:
                                                name: "${name} cell voltage 8"
                                              cell_voltage_9:
                                                name: "${name} cell voltage 9"
                                              cell_voltage_10:
                                                name: "${name} cell voltage 10"
                                              cell_voltage_11:
                                                name: "${name} cell voltage 11"
                                              cell_voltage_12:
                                                name: "${name} cell voltage 12"
                                              cell_voltage_13:
                                                name: "${name} cell voltage 13"
                                              cell_voltage_14:
                                                name: "${name} cell voltage 14"
                                              cell_voltage_15:
                                                name: "${name} cell voltage 15"
                                              cell_voltage_16:
                                                name: "${name} cell voltage 16"
                                              cell_resistance_1:
                                                name: "${name} cell resistance 1"
                                              cell_resistance_2:
                                                name: "${name} cell resistance 2"
                                              cell_resistance_3:
                                                name: "${name} cell resistance 3"
                                              cell_resistance_4:
                                                name: "${name} cell resistance 4"
                                              cell_resistance_5:
                                                name: "${name} cell resistance 5"
                                              cell_resistance_6:
                                                name: "${name} cell resistance 6"
                                              cell_resistance_7:
                                                name: "${name} cell resistance 7"
                                              cell_resistance_8:
                                                name: "${name} cell resistance 8"
                                              cell_resistance_9:
                                                name: "${name} cell resistance 9"
                                              cell_resistance_10:
                                                name: "${name} cell resistance 10"
                                              cell_resistance_11:
                                                name: "${name} cell resistance 11"
                                              cell_resistance_12:
                                                name: "${name} cell resistance 12"
                                              cell_resistance_13:
                                                name: "${name} cell resistance 13"
                                              cell_resistance_14:
                                                name: "${name} cell resistance 14"
                                              cell_resistance_15:
                                                name: "${name} cell resistance 15"
                                              cell_resistance_16:
                                                name: "${name} cell resistance 16"
                                              total_voltage:
                                                name: "${name} total voltage"
                                                on_value:
                                                  then:
                                                    - output.turn_on: bluetoothled
                                                    - delay: 500ms
                                                    - output.turn_off: bluetoothled
                                              current:
                                                name: "${name} current"
                                              power:
                                                name: "${name} power"
                                              charging_power:
                                                name: "${name} charging power"
                                              discharging_power:
                                                name: "${name} discharging power"
                                              temperature_sensor_1:
                                                name: "${name} temperature sensor 1"
                                              temperature_sensor_2:
                                                name: "${name} temperature sensor 2"
                                              power_tube_temperature:
                                                name: "${name} power tube temperature"
                                              state_of_charge:
                                                name: "${name} state of charge"
                                              capacity_remaining:
                                                name: "${name} capacity remaining"
                                              total_battery_capacity_setting:
                                                name: "${name} total battery capacity setting"
                                              charging_cycles:
                                                name: "${name} charging cycles"
                                              total_charging_cycle_capacity:
                                                name: "${name} total charging cycle capacity"
                                              total_runtime:
                                                name: "${name} total runtime"
                                              balancing_current:
                                                name: "${name} balancing current"
                                              errors_bitmask:
                                                name: "${name} errors bitmask"
                                          
                                          text_sensor:
                                            - platform: jk_bms_ble
                                              errors:
                                                name: "${name} errors"
                                              total_runtime_formatted:
                                                name: "${name} total runtime formatted"
                                          
                                          # status_led:     # status LED On-Board 
                                          #  pin:
                                          #    number: GPIO2
                                          #    inverted: true
                                          

                                          die mit

                                          !secret
                                          

                                          versehenen Daten müsst ihr im Secrets Ordner pflegen

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          673

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe