JKBMS auslesen über BLE (Bluetooth) oder RS485 Adapter mittels EPS, ioBroker

Ja, das sollte man ändern. Im aktuellen Sketch stehen zunächst:

charge = "on";
discharge = "on";

Das alleine wäre noch nicht kritisch, weil das erst einmal nur die internen Anzeigewerte sind.

Problematischer sind aber diese beiden Zeilen beim MQTT-Reconnect:

client.publish(cmdChargeTopic.c_str(), "ON", true);
client.publish(cmdDischargeTopic.c_str(), "ON", true);

Der ESP abonniert vorher genau diese Command-Topics selbst. Dadurch kann bei jedem MQTT-Neuverbinden tatsächlich wieder ein ON-Befehl an Charge und Discharge ausgelöst werden. Wenn man die MOS vorher bewusst ausgeschaltet hatte, wäre das natürlich unerwünscht.

Diese beiden Publish-Zeilen würde ich deshalb entfernen bzw. mit // auskommentieren. Nicht mit #, sondern z. B.:

// client.publish(cmdChargeTopic.c_str(), "ON", true);
// client.publish(cmdDischargeTopic.c_str(), "ON", true);

Dann ändert ein Neustart oder MQTT-Reconnect den MOS-Zustand nicht mehr automatisch. Charge/Discharge werden anschließend nur noch durch einen echten MQTT-Befehl geändert.

Zum Webinterface: Die Adresse / liefert absichtlich nur das rohe JSON. Firefox auf Android versucht dieses JSON selbst darzustellen, daher kommt dieses etwas merkwürdige Verhalten mit dem JSON-Viewer.

Für die eigentliche HTML-Seite bitte direkt aufrufen:

http://IP-DES-ESP/web/

bzw.

http://IP-DES-ESP/web/index.html

Dann braucht man keine Firefox-Erweiterung.

Zum MQTT-Intervall: Im aktuellen Sketch wird alle 5 Sekunden Data_publish() aufgerufen. Dabei wird aber nicht nur eine Nachricht geschickt, sondern eine ganze Reihe einzelner MQTT-Topics inklusive aller Zellspannungen, Temperaturen, Uptime, Balancing usw.

Die Stelle ist aktuell:

if (now - mqttpublishtime > 5000)

Möchte man die Last auf ioBroker reduzieren, könnte man z. B. auf 10 Sekunden erhöhen:

if (now - mqttpublishtime > 10000)

oder auf 15 Sekunden:

if (now - mqttpublishtime > 15000)

Für Batteriedaten halte ich 10 Sekunden für völlig ausreichend und deutlich entspannter für MQTT/ioBroker.

Die HTML-Seite aktualisiert sich derzeit ebenfalls alle 5 Sekunden. Das ist unabhängig vom MQTT-Publish-Intervall.

Danke, probiere ich gleich mal aus :grinning_face: