MQTT Bluepalm B2500

Begonnen von druschba, 25 März 2025, 13:47:03

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: TomLee am 26 März 2025, 12:49:05wäre es verständlicher/leichter auf Anhieb zu lesen/verstehen.
Der Schnippsel ist (als one-liner) eh' kaum lesbar ;D .
Und die Aufgabenstellung war insgesamt auch eher von der Art, von der ich angenommen hatte, dass es besser ist, das als Code zu liefern wie als "lies das und das!"-Variante ;) .

Aber es freut mich, dass anscheinend etwas breiteres Interesse an solchen Schnippselchen besteht ;D .
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

SaibotRetsevlis

Hallo Forum,
wie kann der MQTT Server, also fehm, den Payload schicken?
Danke

Zitat von: druschba am 25 März 2025, 13:47:03Wenn ich z.B. den Payload CD=01 an den Speciher schicke bekomme ich eine Antwort, die folgendermaßen außsieht und in ein reading geschrieben wird:

TomLee

Das ist in der Bedienungsanleitung (help MQTT2_SERVER) beschrieben.

https://fhem.de/commandref_modular.html#MQTT2_DEVICE-attr-setList

SaibotRetsevlis

#18
Danke hat funktioniert

AlexMuc

Hallo druschba,
nachdem ich jetzt endlich "das Original" von Marstek habe, möchte ich den auch gerne in Hem einbinden.

Wie genau hast du den eingebunden nachdem du MQTT auf dem Gerät aktiviert hast?
Soweit ich das sehe, muß man den ja regelmäßig selber abfrage, d.h. man erstellt sich ein doif oder at welches einen Befehl per MQTT sendet und bekommt dann die Antwort. Würdest du dein MQTT Device und das Device für die Abfrage hier posten. Sonst muß ich und alle anderen nach mir das Rad neu erfinden wenn wir den Speicher einbinden wollen.

Alex

Diblominschenör

Alter Thread ich weis,
aber hat jemand inzwischen Bluepalm / Marstek / Saturn / Tronic - b2500(-d) Speicher per MQTT am laufen?

Ich habe gerade das Projekt ESPHome B2500 ( https://tomquist.github.io/esphome-b2500/ )
für meine zwei Marstek B2500-D aufgesetzt, damit bekommt man MQTT Daten ohne die
Marstek App zum FHEM geschickt, aber ich habe definitiv Probleme mit der Auswertung!

Wäre wirklich cool wenn da schon jemand was gebastelt hätte....


DeeSPe

Damit MQTT aktivieren und damit vernünftige Readings erzeugen lassen.
Das läuft bei mir seit paar Monaten sehr gut.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

JWRu

#22
Ich habe den ESPHome B2500 laufen. Ich will die Marstek App gerne weiter nutzen, weil die Nulleinspeisung (Automodus) mit dem EcoTracker recht gut funktioniert.
Das geht mit der von @DeeSPe beschriebenen Lösung nicht - die sollte man nehmen, wenn man "cloudfrei" arbeiten will.
So sehen meine Readings etc. aus: JSONMAP:
     voltage_cells_1 voltage_cell_01
     voltage_cells_10 voltage_cell_10
     voltage_cells_11 voltage_cell_11
     voltage_cells_12 voltage_cell_12
     voltage_cells_13 voltage_cell_13
     voltage_cells_14 voltage_cell_14
     voltage_cells_2 voltage_cell_02
     voltage_cells_3 voltage_cell_03
     voltage_cells_4 voltage_cell_04
     voltage_cells_5 voltage_cell_05
     voltage_cells_6 voltage_cell_06
     voltage_cells_7 voltage_cell_07
     voltage_cells_8 voltage_cell_08
     voltage_cells_9 voltage_cell_09
   READINGS:
     2026-05-26 15:18:20   IODev           myMQTT_Server
     2026-05-26 23:02:07   active          OFF
     2026-05-27 06:26:58   active_pv1      ON
     2026-05-27 06:26:58   active_pv2      ON
     2026-05-26 15:18:41   ble_mac         xxxxxxxxxxxx
     2026-05-26 15:18:41   ble_ok          ON
     2026-05-26 15:18:40   board           esp32-s3-devkitc-1
     2026-05-26 15:18:41   charge_mode     SimultaneousChargeAndDischarge
     2026-05-27 06:58:48   daily_total_charge_battery 17
     2026-05-27 06:58:48   daily_total_charge_load 18
     2026-05-27 06:58:48   daily_total_discharge_battery 0
     2026-05-27 06:58:48   daily_total_discharge_load 0
     2026-05-26 15:51:42   debug           ␛[0;33m[W][component:520]: preferences took a long time for an operation (52 ms), max is 30 ms␛[0m
     2026-05-26 15:18:41   dod             90.000000
     2026-05-11 20:03:01   enabled         ON
     2026-05-26 15:18:41   enabled_bluetooth ON
     2026-05-26 15:18:41   enabled_smartmeter ON
     2026-05-27 06:58:48   energy          0.000
     2026-05-27 06:58:48   energy_pv       0.028
     2026-05-26 15:18:41   fc41d_fw        202409090159
     2026-05-26 15:18:40   friendly_name   B2500
     2026-05-26 15:18:41   fw_version      116
     2026-05-26 15:18:41   generation      2
     2026-05-12 07:38:15   hour            23
     2026-05-26 15:18:41   id              3601115030374d33300a4009
     2026-05-26 15:18:40   ip              192.168.178.93
     2026-05-27 06:58:49   last_response   2026-05-27T06:58:49
     2026-05-26 15:18:40   mac             ac276ea86fe8
     2026-05-12 07:38:15   minute          59
     2026-05-26 15:18:41   mqtt_ok         ON
     2026-05-26 15:18:41   name            B2500
     2026-05-26 15:18:40   network         wifi
     2026-05-26 15:18:40   platform        ESP32
     2026-05-27 06:58:48   power           0
     2026-05-27 06:58:48   power_1         0
     2026-05-27 06:58:48   power_2         0
     2026-05-27 06:58:48   power_pv        40
     2026-05-27 06:58:48   power_pv1       19
     2026-05-27 06:58:48   power_pv2       21
     2026-05-26 15:18:41   region          EU
     2026-05-27 06:58:48   remaining_capacity 224
     2026-05-27 06:58:48   remaining_percent 10.0
     2026-05-27 06:23:23   scene           Dusk/Dawn
     2026-05-12 07:38:15   second          0
     2026-05-26 15:18:41   smartmeter_connected ON
     2026-05-27 06:58:49   smartmeter_out  367
     2026-05-27 06:58:49   smartmeter_value 199
     2026-05-26 15:18:41   status          online
     2026-05-26 15:18:41   surplus_feed_in ON
     2026-05-27 06:58:48   temp1           24
     2026-05-27 06:58:48   temp2           24
     2026-05-27 06:58:03   time            04:58
     2026-05-26 15:18:41   timer_1_enabled OFF
     2026-05-26 15:18:41   timer_1_end_hour 21
     2026-05-26 15:18:41   timer_1_end_minute 0
     2026-05-26 15:18:41   timer_1_end_second 0
     2026-05-26 15:18:41   timer_1_power   80.000000
     2026-05-26 15:18:41   timer_1_start_hour 6
     2026-05-26 15:18:41   timer_1_start_minute 0
     2026-05-26 15:18:41   timer_1_start_second 0
     2026-05-26 15:18:41   timer_2_enabled OFF
     2026-05-26 15:18:41   timer_2_end_hour 23
     2026-05-26 15:18:41   timer_2_end_minute 59
     2026-05-26 15:18:41   timer_2_end_second 0
     2026-05-26 15:18:41   timer_2_power   800.000000
     2026-05-26 15:18:41   timer_2_start_hour 21
     2026-05-26 15:18:41   timer_2_start_minute 0
     2026-05-26 15:18:41   timer_2_start_second 0
     2026-05-26 15:18:41   timer_3_enabled OFF
     2026-05-26 15:18:41   timer_3_end_hour 6
     2026-05-26 15:18:41   timer_3_end_minute 0
     2026-05-26 15:18:41   timer_3_end_second 0
     2026-05-26 15:18:41   timer_3_power   800.000000
     2026-05-26 15:18:41   timer_4_enabled ON
     2026-05-26 15:18:41   timer_4_end_hour 23
     2026-05-26 15:18:41   timer_4_end_minute 59
     2026-05-26 15:18:41   timer_4_end_second 0
     2026-05-26 15:18:41   timer_4_power   80.000000
     2026-05-26 15:18:41   timer_4_start_hour 0
     2026-05-26 15:18:41   timer_4_start_minute 0
     2026-05-26 15:18:41   timer_4_start_second 0
     2026-05-26 15:18:41   timer_5_enabled OFF
     2026-05-26 15:18:41   timer_5_end_hour 23
     2026-05-26 15:18:41   timer_5_end_minute 59
     2026-05-26 15:18:41   timer_5_end_second 0
     2026-05-26 15:18:41   timer_5_power   80.000000
     2026-05-26 15:18:41   timer_5_start_hour 0
     2026-05-26 15:18:41   timer_5_start_minute 0
     2026-05-26 15:18:41   timer_5_start_second 0
     2026-05-26 15:18:41   type            HMJ-2
     2026-05-27 06:58:41   uptime          237.26
     2026-05-26 15:18:40   version         2026.3.0
     2026-05-27 06:58:48   voltage_avg     3.225429
     2026-05-27 06:58:48   voltage_cell_01 3.225000
     2026-05-27 06:58:48   voltage_cell_02 3.225000
     2026-05-27 06:58:48   voltage_cell_03 3.225000
     2026-05-27 06:58:48   voltage_cell_04 3.225000
     2026-05-27 06:58:48   voltage_cell_05 3.226000
     2026-05-27 06:58:48   voltage_cell_06 3.226000
     2026-05-27 06:58:48   voltage_cell_07 3.226000
     2026-05-27 06:58:48   voltage_cell_08 3.226000
     2026-05-27 06:58:48   voltage_cell_09 3.225000
     2026-05-27 06:58:48   voltage_cell_10 3.226000
     2026-05-27 06:58:48   voltage_cell_11 3.226000
     2026-05-27 06:58:48   voltage_cell_12 3.225000
     2026-05-27 06:58:48   voltage_cell_13 3.225000
     2026-05-27 06:58:48   voltage_cell_14 3.225000
     2026-05-27 06:58:48   voltage_delta   0.001000
     2026-05-27 06:58:48   voltage_max     3.226000
     2026-05-27 06:58:48   voltage_min     3.225000
     2026-05-27 06:58:48   voltage_sum     45.156000
     2026-05-26 15:18:41   wifi_ok         ON
     2026-05-26 15:18:41   wifi_ssid       XXXXXXXXXXXXXX

Attributes:
   DbLogInclude power.*,energy.*,remaining.*,daily.*
   alias      Batteriespeicher B2500
   event-min-interval remaining.*:300,daily.*:300
   event-on-change-reading .*
   icon       mdt-home-battery-outline
   jsonMap    voltage_cells_1:voltage_cell_01
voltage_cells_2:voltage_cell_02
voltage_cells_3:voltage_cell_03
voltage_cells_4:voltage_cell_04
voltage_cells_5:voltage_cell_05
voltage_cells_6:voltage_cell_06
voltage_cells_7:voltage_cell_07
voltage_cells_8:voltage_cell_08
voltage_cells_9:voltage_cell_09
voltage_cells_10:voltage_cell_10
voltage_cells_11:voltage_cell_11
voltage_cells_12:voltage_cell_12
voltage_cells_13:voltage_cell_13
voltage_cells_14:voltage_cell_14
   readingList b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/debug:.* debug
b2500_ac276ea86fe8:esphome/discover/b2500:.* { json2nameValue($EVENT) }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/last_response:.* last_response
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/type:.* type
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/id:.* id
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/ble_mac:.* ble_mac
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/status:.* status
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/1/start:.* { json2nameValue($EVENT,'timer_1_start_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/2/start:.* { json2nameValue($EVENT,'timer_2_start_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/3/start:.* { json2nameValue($EVENT,'timer_3_start_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/4/start:.* { json2nameValue($EVENT,'timer_4_start_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/5/start:.* { json2nameValue($EVENT,'timer_5_start_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/1/end:.* { json2nameValue($EVENT,'timer_1_end_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/2/end:.* { json2nameValue($EVENT,'timer_2_end_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/3/end:.* { json2nameValue($EVENT,'timer_3_end_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/4/end:.* { json2nameValue($EVENT,'timer_4_end_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/5/end:.* { json2nameValue($EVENT,'timer_5_end_') }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/dod:.* dod
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/1/power:.* timer_1_power
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/2/power:.* timer_2_power
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/3/power:.* timer_3_power
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/4/power:.* timer_4_power
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/5/power:.* timer_5_power
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/bluetooth/enabled:.* enabled_bluetooth
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/smartmeter/enabled:.* enabled_smartmeter
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/surplus_feed_in:.* surplus_feed_in
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/1/enabled:.* timer_1_enabled
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/2/enabled:.* timer_2_enabled
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/3/enabled:.* timer_3_enabled
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/4/enabled:.* timer_4_enabled
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/timer/5/enabled:.* timer_5_enabled
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/charge_mode:.* charge_mode
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/generation:.* generation
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/name:.* name
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/fw_version:.* fw_version
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/time:.* time
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/fc41d_fw:.* fc41d_fw
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/wifi_ssid:.* wifi_ssid
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/scene:.* scene
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/region:.* region
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/cell_voltage:.* { json2nameValue($EVENT,'voltage_',$JSONMAP) }
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/wifi_ok:.* wifi_ok
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/mqtt_ok:.* mqtt_ok
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/pv1/active:.* active_pv1
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/pv2/active:.* active_pv2
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/smartmeter/connected:.* smartmeter_connected
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/ble_ok:.* ble_ok
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/esp32/uptime:.* uptime
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/remaining_percent:.* remaining_percent
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/pv1/power:.* power_pv1
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/pv2/power:.* power_pv2
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/pv/power:.* power_pv
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/power1/power:.* power_1
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/power2/power:.* power_2
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/power/power:.* power
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/remaining_capacity:.* remaining_capacity
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/smartmeter/out:.* smartmeter_out
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/smartmeter/value:.* smartmeter_value
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/temp1:.* temp1
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/device/temp2:.* temp2
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/daily_total_charge:.* daily_total_charge_battery
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/battery/daily_total_discharge:.* daily_total_discharge_battery
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/load/daily_total_charge:.* daily_total_charge_load
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/load/daily_total_discharge:.* daily_total_discharge_load
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/pv/energy:.* energy_pv
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/power/energy:.* energy
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/power1/active:.* active
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/1/power2/active:.* active
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/npw/enabled:.* npw_enabled
b2500_ac276ea86fe8:SmartHome/Photovoltaics/B2500/npw/max_limit:.* npw_max_limit
   room       Energie und Wasser,System->Protokolle->MQTT
   stateFormat {sprintf ("PV Leistung: %3d W - Ausgangsleistung: %3d W - SOC: %3d %%",ReadingsNum("$name","power_pv",0), ReadingsNum("$name","power",0), ReadingsNum("$name","remaining_percent",0))}
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon- und Bresser-Sensoren; Steuerung Viessmann-Heizung; ESP32 für Strom-, Wasser-, Gaszähler, Arduino für Rauchmelder und FI-Schutzschalter

DeeSPe

Die App funktioniert (über Bluetooth) genau so weiter wie vorher.
Ich habe auch einen EcoTracker und die Batterien benutzen diesen auch wunderbar.
Deshalb reicht mir meine Lösung auch, weil ich nur die Readings auswerten möchte und keine Steuerung über FHEM benötige.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe