Derzeit habe ich nur die Basisstation Den Ich mit diesem ESP Projekt an IPS angebunden habe. GitHub - tomquist/esphome-b2500
In den nächsten Tagen bekomme ich einen Zusatzakku als Erweiterung. Ich glaube, dieser wird in der APP (die ich jetzt grundsätzlich nicht bräuchte) auch per Bluetooth und weiter per WLAN eingebunden. Meine Frage ist, muss ich das auch in den ESP einbinden oder kommen die Werte über das Hauptgereät.
Habe auch 4 Marstek Hauptspeicher, nutze aber nicht MQTT.
Gib mal im photovoltaikforum.com "Marstek und MQTT " da wird viel darüber gepostet.
Ich traue mich nicht MQTT damit zu machen, ist es stabil?
Ich habe extra nur Hauptspeicher genommen, weil ich vermute der Hauptspeicher verwaltet auch die Erweiterung und das bedeutet: ist er defekt, habe ich auch keine Erweiterung mehr.
In der Marstek App sind die 2 möglichen Erweiterungen ausgegraut beim Hauptspeicher, deswegen vermute ich Der macht auch dann MQTT für die Erweiterung.
Hallo Namensvetter ![]()
MQTT ist nicht das Problem. Das läuft bei mir absolut Problemlos und es muss nichts an den Einstellungen vom Speicher geändert werden. Es gibt auch eine direkte MQTT Schnittstelle, die man freischalten lassen kann. Ist aber nicht notwendig. Der ESP verbindet sich über Bluetooth mit dem (oder die) Speicher und stellt alles über MQTT zur Verfügung. Ebenso können die Einstellungen bis hin zu den Zeitplänen über MQTT geändert werden.
Ich wollte nur wissen, ob man den Zusatzspeicher auch in das Image vom ESP mit hinein nehmen muss.
Wenn du Interesse daran hast, schick ich dir alles per PM, was ich von einem Forumskollegen bekommen habe. Damit hats auch bei mir funktioniert. In deinem Fall kannst sicher alle vier Basisspeicher mit einem ESP verwalten.
Gerne, wenn es viel ist auch per Mail
Guten Morgen zusammen.
Seit gestern habe ich auch den B2500 mit einem ESP32 mit ESPHome in Symcon eingebunden. Die Werte kommen auch alle zuverlässig rein, das funktioniert also perfekt. Was leider bei mir nicht funktioniert ist das Ändern von Werten aus Symcon heraus. Ich würde gerne die Leistung eines Timerers ändern (b2500/1/timer/2/power). Versucht habe ich es mit
RequestAction(ID,80);
In Symcon ändert sich der Wert der Variablen auch, Fehlermeldung kommt keine. Allerdings kommt bei ESPHome und am Speicher leider keine Änderung an.
Hat von Euch jemand eine Idee was ich da falsch mache?
Viele Grüße
Thorsten
Du hast hier
eine Beschreibung der Topics. Wie du siehst, gibt es bei den Werten, die man ändern kann immer ein eigenes Topic „b2500v2/1/timer/3/power/set“.
Bei mir sieht das dann so aus.

Ändlich bei den Zeiten für die Timer

Für das Ändern der Zeiten habe ich mir zwei zusätzliche Integervariablen definiert, mit dem Profil für Zeit

Natürlich mit Aktionsskript.
Für das Senden an den Speicher ist ein Skritp zuständig, welches einfach bei Änderung irgend einer Zeit (Es gibt insgesamt 10 Zeitvariablen für 5 Timer) aufgerufen wird.
<?php
// {"hour":23,"minute":59,"second":0}
$timer1start_id=24834;
$timer1ende_id=58578;
$timer1startjson_id=38449;
$timer1endejson_id=12733;
$timer2start_id=29681;
$timer2ende_id=19527;
$timer2startjson_id=13727;
$timer2endejson_id=56002;
$timer3start_id=41883;
$timer3ende_id=50189;
$timer3startjson_id=56731;
$timer3endejson_id=43224;
$timer4start_id=50803;
$timer4ende_id=38347;
$timer4startjson_id=56982;
$timer4endejson_id=39083;
$timer5start_id=19705;
$timer5ende_id=32685;
$timer5startjson_id=12933;
$timer5endejson_id=24247;
//Timer1
$hour=date("G",getvalue($timer1start_id));
$minute=date("i",getvalue($timer1start_id));
//$second=date("s",getvalue($timer1start_id));
$second=0;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer1startjson_id,$json);
$hour=date("G",getvalue($timer1ende_id));
$minute=date("i",getvalue($timer1ende_id));
//$second=date("s",getvalue($timer1ende_id));
$second=59;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer1endejson_id,$json);
//Timer2
$hour=date("G",getvalue($timer2start_id));
$minute=date("i",getvalue($timer2start_id));
//$second=date("s",getvalue($timer2start_id));
$second=0;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer2startjson_id,$json);
$hour=date("G",getvalue($timer2ende_id));
$minute=date("i",getvalue($timer2ende_id));
//$second=date("s",getvalue($timer2ende_id));
$second=59;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer2endejson_id,$json);
//Timer3
$hour=date("G",getvalue($timer3start_id));
$minute=date("i",getvalue($timer3start_id));
//$second=date("s",getvalue($timer3start_id));
$second=0;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer3startjson_id,$json);
$hour=date("G",getvalue($timer3ende_id));
$minute=date("i",getvalue($timer3ende_id));
//$second=date("s",getvalue($timer3ende_id));
$second=59;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer3endejson_id,$json);
//Timer4
$hour=date("G",getvalue($timer4start_id));
$minute=date("i",getvalue($timer4start_id));
//$second=date("s",getvalue($timer3start_id));
$second=0;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer4startjson_id,$json);
$hour=date("G",getvalue($timer4ende_id));
$minute=date("i",getvalue($timer4ende_id));
//$second=date("s",getvalue($timer3ende_id));
$second=59;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer4endejson_id,$json);
//Timer5
$hour=date("G",getvalue($timer5start_id));
$minute=date("i",getvalue($timer5start_id));
//$second=date("s",getvalue($timer3start_id));
$second=0;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer5startjson_id,$json);
$hour=date("G",getvalue($timer5ende_id));
$minute=date("i",getvalue($timer5ende_id));
//$second=date("s",getvalue($timer3ende_id));
$second=59;
$json='{"hour":'.$hour.',"minute":'.$minute.',"second":'.$second.'}';
RequestAction($timer5endejson_id,$json);
Auch den Status (aktiv/Inaktiv) kannst du ändern

Ich habe mir dazu ein eigenes Profil angelegt.
Wenn du den Akku oder den ESP neu starten musst, dann geht das auch.
Reboot Akku

Um den Akku neu zu starten musst du ein RequestAction auf die Variable mit dem Wert „PRESS“ machen.
Das gleiche für den Reboot vom ESP.

Auch diese Variable erwartet den Wert „PRESS“.
Ich hoffe das hilft.
Hallo Helmut,
vielen Dank für die wertvollen Infos. So funktioniert es bei mir auch, das abweichende Topic beim Schreiben war mein Fehler.
Viele Grüße
Thorsten

