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.