MQTT-Bridge für NEEY, Seplos & Co via Bluetooth

Jetzt rennt die Kiste, aber ich weis nicht woran es gelegen hat {green}:idontknow:

Die ESP-Cam zum 597mal vom Pi4 getrennt, dann noch einmal übertragen, dann noch einmal von Pi4 getrennt und jetzt sendet es mit unaufhörlich daten, alle 5 Sec. {green}:grinning:

Kann mal das ganze auch Zeitlich begrenzen? Daten alle 30-60 Sec übertragen?

1 „Gefällt mir“

@elektrofix "Klasse", hartnäckigkeit zahlt sich aus,

Fühle mich wie in der Schule: "Du hast eine Fehler gemacht, 6 und von vorne" {green}:crying:

@helge Vielen Dank für Deine Hilfe {green}:lovekiss: Software ist nicht mehr so meins; vor 10 Jahre habe ich noch die Ansagen in den Zügen von Niedersachsen programmiert, 11 Tabelle wo gleichzeitig Daten geändert werden müssen. Das war jedoch einfacher wie yaml

in der configdatei habe ich mal testhalber throttle auf 60sec. geändert. und nun fragt das modul auch nur noch in diesem Intervall die Daten ab.

heltec_balancer_ble:
- ble_client_id: client0
throttle: 60s
id: bms0

@helge Danke, hatte ich schon selber gesehen und auf 30s eingestellt. Heute die ersten Daten abgefragt, wie sich die einzelnen Zellen verhalten. Mein Balanceregler war schon bei 80% SoC aktiv.

Im IoBroker habe ich zwei Topic bekommen: „Homeassistant“ und einen mit den Name, den ich vergeben habe. Den ersten habe ich dann gelöscht. Ich bin froh das es läuft {green}:inlove:

Leute, ich habe beide einen Neey-Balancer
Was für ein Seplos BMS
Ich hätte gerne beide Daten in MQTT
habe die BT-Verbindung genutzt
Können Sie mir erklären, wie das geht?
Wo finde ich das Programm zum Einfügen in den ESP32?

@saviothecnic Also ich verstehe dein Anliegen nicht so richtig. Hast Du einen oder zwei NEEY-Balancer. Wohin willst Du die Daten senden IoBroker, Homeassistens, Nodered? Willst Du das Seplos auch noch auslesen?

Das Programm für den ESP32 heißt ESPhome, das Programm ist in YAMMEL-geschreiben

JA Mann, ich habe zwei Neey Balancer
Eines davon ist auf einer LiIon-Batteriebank montiert
Und eines, montiert auf einer LifePo4-Batteriebank
Plus ein Seplos BMS
Ich habe Mosquitto für MQTT und möchte es später verwenden
Daten zu Domoticz und HomeAssistant
Ist das mit drei ESP32 möglich?
Der Zweifel, den ich habe, ist, dass ich nicht verstanden habe, welches Programm ich auf den ESP32 laden muss, offensichtlich habe ich bereits die drei BT-MAC-Adressen meines Neey und BMS gefunden

Ich habe eine RaspberryPi mit Homeassistens aufgesetzt und daran den ESP32 angeschlossen. Anschließend ESPHome auf den ESP32 installiert und ein Yamel-Skript von https://github.com/syssi/esphome-jk-bms benutzt.

Schwieriger war es die BT-MAC-Adresse heraus zu bekommen, da in der iOS-App diese nicht angezeigt wurde. Das habe ich dann mit meinem Win10-Rechner herausbekommen in dem ich mich damit verbunden habe.

@elektrofix

Ok I think I've done it but I also have to change the device
if it works right
For I only see the Balancer Neey does not see the BMS Seplos as I can also see the BMS Seplos connected always in BT

@saviothecnic ich frage bei mir nur die Neey‘s ab, das BMS ist für mich uninteressant

Yes, I know, for now it works on Neey
now I want to modify and see if with an ESP32
I can see three Neey
Except mine is an ESP32-WROOM
and as a nelly yaml board I have board: wemos_d1_mini32
but it works but I don't know if it is more correct to change boards
in case I don't know what to put
But seen from the title of the topic even if I have Neey Equalizer
I am very interested in having BMS Seplos talk on BT
I hope someone can help me with this

Hallo zusammen,

ich würde gern eure Lösung für mich aufgreifen, habe aber bisher mit ESP noch nichts veranstaltet und bin mir daher an einigen Punkten sehr unklar, wie ich es genau anstellen muss. Hoffe Ihr könnt mir da weiter unter die Arme greifen.

Folgende Ausgangssituation habe ich:

2 Speicher mit Seplos-BMS und jeweils einem Neey.

( Leider beides nicht im Detail über mein Victron Multiplus 2 GX auslesbar...:frowning: )

Ein ESP32 (habe ich ein ESP Home 2023.9.3 per Windows 11 drauf gebracht). WIFI läuft.

iobroker auf PI 4

neey-helge-bank3 habe ich mir auch schon runtergeladen.

Was muss ich als nächstes anstellen? - Was muss in der Datei genau und wie (Formatierung) angepasst werden, und wie bekomme ich die Datei dann genau auf den ESP32?

Und dann noch die Frage nach der Einrichtung im MQTT-Adapter.

Hoffe das sind nicht zu viele Frage/Wünsche auf einmal...

Lieben Dank im Voraus an die Unterstützungswilligen :slight_smile:

@theo996 Der ESP32 mit ESPHome wird über YAMEL gesteuert. Der ESP32 baut mit NEEY einen BLE-Verbindung auf und sendet das per WLAN an Mqtt.

@elektrofix Lieben Dank für Deine Reaktion.

Das hatte ich schon soweit verstanden. Mir ist nur nicht ganz klar was genau in der YAMEL Datei, die Helge ja weiter oben zum Download eingestellt hatte, angepasst werden muss, und wie genau ich diese angepasste Datei dann auf den ESP bringe.

Kann ich damit dann eigentlich auch zwei NEEY auslesen, oder brauche ich dann 2 ESP32 mir jeweils angepassten YAMEL Dateien?

Gruß,

Theo

BilanciatoreNeeyYaml.rar (2.54 KB)

Freunde, ich hänge diese beiden Yaml-Dateien an
Dies funktioniert mit Equalizer-Neey-LifePo4-Bat1.yaml
aber er sieht nur einen neey Balancer
Dies ist so eingerichtet, dass drei Neey Balancer EqualizersNeeyBT.yaml angezeigt werden
Aber ich habe versucht, die Sensoren durch Kopieren hinzuzufügen
vom ersten, der geht, aber es gibt mir immer Fehler
Ich bin kein Experte im Bearbeiten von Yaml-Dateien
Können Sie mir sagen, wie es geändert werden muss, um es zu sehen?
die drei Neey-Balancer, die ich habe
Danke

@elektrofix

BilanciatoreNeeyYaml.rar (2.54 KB)

Freunde, ich hänge diese beiden Yaml-Dateien an
Dies funktioniert mit Equalizer-Neey-LifePo4-Bat1.yaml
aber er sieht nur einen neey Balancer
Dies ist so eingerichtet, dass drei Neey Balancer EqualizersNeeyBT.yaml angezeigt werden
Aber ich habe versucht, die Sensoren durch Kopieren hinzuzufügen
vom ersten, der geht, aber es gibt mir immer Fehler
Ich bin kein Experte im Bearbeiten von Yaml-Dateien
Können Sie mir sagen, wie es geändert werden muss, um es zu sehen?
die drei Neey-Balancer, die ich habe
Danke

Sorry, faden war kaputt,

ich musste zwei Beiträge von @Elektrofix löschen.

@saviothecnic Das was Du da geschickt hast, ist ja nur die Hälfte, das kann nicht funktionieren.

das muss so aussehen wie im Beitrag von Nick:

Wenn Du Dir den Code anschaust, dann gibt es unter substitutions: ble_client: heltec_balancer_ble: binary_sensor: button: number: sensor: switch: text_sensor:
immer weder die gleichen Bereicht unter - platform:

Unter interval: gibt es auch noch einen then: wo für jeden Neey einen - button.press: retrieve_settings_button0

Den Code bekomme ich jedoch nur unter ESPHome 2023.5.4 zum laufen, sonst bricht irgendwann die BT-Verbindung ab

@elektrofix

Nach langem Testen konnte ich das Problem identifizieren. der "Code-Block" darf nicht zu groß werden. Irgendwas um die 140 Zeilen (Könnte aber auch an Anzahl Zeichen liegen). Anbei den gesamte Code, aufgeteilt in drei Abschnitten

sensor:
- platform: heltec_balancer_ble
heltec_balancer_ble_id: bms0
min_cell_voltage:
name: "${device0} min cell voltage"
max_cell_voltage:
name: "${device0} max cell voltage"
min_voltage_cell:
name: "${device0} min voltage cell"
max_voltage_cell:
name: "${device0} max voltage cell"
delta_cell_voltage:
name: "${device0} delta cell voltage"
average_cell_voltage:
name: "${device0} average cell voltage"
cell_voltage_1:
name: "${device0} voltage 01"
cell_voltage_2:
name: "${device0} voltage 02"
cell_voltage_3:
name: "${device0} voltage 03"
cell_voltage_4:
name: "${device0} voltage 04"
cell_voltage_5:
name: "${device0} voltage 05"
cell_voltage_6:
name: "${device0} voltage 06"
cell_voltage_7:
name: "${device0} voltage 07"
cell_voltage_8:
name: "${device0} voltage 08"
cell_voltage_9:
name: "${device0} voltage 09"
cell_voltage_10:
name: "${device0} voltage 10"
cell_voltage_11:
name: "${device0} voltage 11"
cell_voltage_12:
name: "${device0} voltage 12"
cell_voltage_13:
name: "${device0} voltage 13"
cell_voltage_14:
name: "${device0} voltage 14"
cell_voltage_15:
name: "${device0} voltage 15"
cell_voltage_16:
name: "${device0} voltage 16"
cell_resistance_1:
name: "${device0} resistance 01"
cell_resistance_2:
name: "${device0} resistance 02"
cell_resistance_3:
name: "${device0} resistance 03"
cell_resistance_4:
name: "${device0} resistance 04"
cell_resistance_5:
name: "${device0} resistance 05"
cell_resistance_6:
name: "${device0} resistance 06"
cell_resistance_7:
name: "${device0} resistance 07"
cell_resistance_8:
name: "${device0} resistance 08"
cell_resistance_9:
name: "${device0} resistance 09"
cell_resistance_10:
name: "${device0} resistance 10"
cell_resistance_11:
name: "${device0} resistance 11"
cell_resistance_12:
name: "${device0} resistance 12"
cell_resistance_13:
name: "${device0} resistance 13"
cell_resistance_14:
name: "${device0} resistance 14"
cell_resistance_15:
name: "${device0} resistance 15"
cell_resistance_16:
name: "${device0} resistance 16"
total_voltage:
name: "${device0} total voltage"
temperature_sensor_1:
name: "${device0} temperature sensor 1"
temperature_sensor_2:
name: "${device0} temperature sensor 2"
total_runtime:
name: "${device0} total runtime"
balancing_current:
name: "${device0} balancing current"
# Not implemented
# errors_bitmask:
#   name: "${device0} errors bitmask"
cell_detection_failed_bitmask:
name: "${device0} cell detection failed bitmask"
cell_overvoltage_bitmask:
name: "${device0} cell overvoltage bitmask"
cell_undervoltage_bitmask:
name: "${device0} cell undervoltage bitmask"
cell_polarity_error_bitmask:
name: "${device0} cell polarity error bitmask"
cell_excessive_line_resistance_bitmask:
name: "${device0} cell excessive line resistance bitmask"
  - platform: heltec_balancer_ble
heltec_balancer_ble_id: bms1
min_cell_voltage:
name: "${device1} min cell voltage"
max_cell_voltage:
name: "${device1} max cell voltage"
min_voltage_cell:
name: "${device1} min voltage cell"
max_voltage_cell:
name: "${device1} max voltage cell"
delta_cell_voltage:
name: "${device1} delta cell voltage"
average_cell_voltage:
name: "${device1} average cell voltage"
cell_voltage_1:
name: "${device1} voltage 01"
cell_voltage_2:
name: "${device1} voltage 02"
cell_voltage_3:
name: "${device1} voltage 03"
cell_voltage_4:
name: "${device1} voltage 04"
cell_voltage_5:
name: "${device1} voltage 05"
cell_voltage_6:
name: "${device1} voltage 06"
cell_voltage_7:
name: "${device1} voltage 07"
cell_voltage_8:
name: "${device1} voltage 08"
cell_voltage_9:
name: "${device1} voltage 09"
cell_voltage_10:
name: "${device1} voltage 10"
cell_voltage_11:
name: "${device1} voltage 11"
cell_voltage_12:
name: "${device1} voltage 12"
cell_voltage_13:
name: "${device1} voltage 13"
cell_voltage_14:
name: "${device1} voltage 14"
cell_voltage_15:
name: "${device1} voltage 15"
cell_voltage_16:
name: "${device1} voltage 16"
cell_resistance_1:
name: "${device1} resistance 01"
cell_resistance_2:
name: "${device1} resistance 02"
cell_resistance_3:
name: "${device1} resistance 03"
cell_resistance_4:
name: "${device1} resistance 04"
cell_resistance_5:
name: "${device1} resistance 05"
cell_resistance_6:
name: "${device1} resistance 06"
cell_resistance_7:
name: "${device1} resistance 07"
cell_resistance_8:
name: "${device1} resistance 08"
cell_resistance_9:
name: "${device1} resistance 09"
cell_resistance_10:
name: "${device1} resistance 10"
cell_resistance_11:
name: "${device1} resistance 11"
cell_resistance_12:
name: "${device1} resistance 12"
cell_resistance_13:
name: "${device1} resistance 13"
cell_resistance_14:
name: "${device1} resistance 14"
cell_resistance_15:
name: "${device1} resistance 15"
cell_resistance_16:
name: "${device1} resistance 16"
total_voltage:
name: "${device1} total voltage"
temperature_sensor_1:
name: "${device1} temperature sensor 1"
temperature_sensor_2:
name: "${device1} temperature sensor 2"
total_runtime:
name: "${device1} total runtime"
balancing_current:
name: "${device1} balancing current"
# Not implemented
# errors_bitmask:
#   name: "${device1} errors bitmask"
cell_detection_failed_bitmask:
name: "${device1} cell detection failed bitmask"
cell_overvoltage_bitmask:
name: "${device1} cell overvoltage bitmask"
cell_undervoltage_bitmask:
name: "${device1} cell undervoltage bitmask"
cell_polarity_error_bitmask:
name: "${device1} cell polarity error bitmask"
cell_excessive_line_resistance_bitmask:
name: "${device1} cell excessive line resistance bitmask"
switch:
- platform: heltec_balancer_ble
heltec_balancer_ble_id: bms0
balancer:
name: "${device0} balancer"
- platform: heltec_balancer_ble
heltec_balancer_ble_id: bms1
balancer:
name: "${device1} balancer"
text_sensor:
- platform: heltec_balancer_ble
heltec_balancer_ble_id: bms0
# Not implemented
# errors:
#   name: "${device0} errors"
operation_status:
name: "${device0} operation status"
total_runtime_formatted:
name: "${device0} total runtime formatted"
buzzer_mode:
name: "${device0} buzzer mode"
battery_type:
name: "${device0} battery type"
- platform: heltec_balancer_ble
heltec_balancer_ble_id: bms1
# Not implemented
# errors:
#   name: "${device1} errors"
operation_status:
name: "${device1} operation status"
total_runtime_formatted:
name: "${device1} total runtime formatted"
buzzer_mode:
name: "${device1} buzzer mode"
battery_type:
name: "${device1} battery type"
interval:
- interval: 30min
then:
- button.press: retrieve_settings_button0
- button.press: retrieve_settings_button1
1 „Gefällt mir“