NEWS
Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)
-
@michi-0 sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):
@maxclaudi
Skript läuft. Steuerung funktioniert und Änderungen werden angezeigt. Die Umstellung bei MQTT auf 1 / 0 hast Du schon erledigt?Guten Morgen
Jetzt ja.
Scripte im ersten post wurden verändert: mqttConnectInfo: 0 = MQTT aus / 1 = MQTT an
Statt disconnected / connected.
So kann es in Blockly/scripts einfacher verwendet verwendet werden.
Falls Wert von mqttConnectInfo == 0 mache: steuere .... und... steuere setMqttConnect mit 1Zumindest lässt es sich bei mir schon damit steuern.
Die Datenpunkte zum Steuern sind nur zum Setzen des Wertes:
- setSmartMode = 0 Speichern in Flash
- setSmartMode = 1 Speichern nur im RAM (empfohlen!)
- setMqttConnect = 0 MQTT am Zendure-Gerät deaktivieren
- setMqttConnect = 1 MQTT am Zendure-Gerät aktivieren
Hinweis:
Die Set-Datenpunkte (setSmartMode, setMqttConnect) werden nach dem Schreiben nicht automatisch aktualisiert und sind daher nicht für das Auslesen aktueller Zustände gedacht.Ist bewusst so umgesetzt, damit dieselben Set-Werte jederzeit erneut geschrieben werden können – auch wenn sie bereits zuvor gesendet wurden.
Beispiel:
setMqttConnect = 1, MQTT wird eingeschaltet.Wird MQTT anschließend über die Zendure-App oder das Gerät selbst ausgeschaltet, bleibt der Wert in ioBroker trotzdem auf 1.
Dadurch ist es möglich, einfach erneut setMqttConnect = 1 zu setzen, um MQTT wieder zu aktivieren.
Zum reinen Auslesen / Vergleichen der aktuellen Zustände in Blockly/Scripts bitte nur diese Datenpunkte verwenden:
- mqttConnectInfo: 0 = MQTT aus / 1 = MQTT an
- smartModeInfo: 0 = Flash / 1 = RAM
Die Umstellung bei MQTT dauert zwar sehr lange (gefühlt mehr als 1 Minute), aber es macht dennoch das was es soll!
Ja, das ist normal
Das hängt an zwei Stellen:
-
Hauptsächlich Geräteseitig
Wenn du den Schaltbefehl schickst, braucht das Zendure-Gerät ein paar Sekunden, bis es den MQTT-Stack sauber herunterfährt und connected=false meldet. Das ist kein sofortiges "Stecker ziehen", sondern ein geregeltes Disconnect. Beim Einschalten genauso. -
Scriptseitig (Polling)
Script fragt den Status nur alle intervalMqtt Sekunden ab (default 300s).
Direkt nach dem Verbinden/Trennen, steht da evtl. noch 0, bis das nächste Polling kommt.
Deshalb kann es zusätzlich noch maximal die Länge des Poll-Intervalls dauern, bis die Änderung sichtbar wird.
Werde gleich mal meine Skripte etwas tunen
-
Vielen Dank für die Skripte. Werde die bei nächster Gelegenheit umsetzen. Haben nur leider seit gestern Nachmittag einen Wasserschaden in unserer Wohnung. Das hatte natürlich Vorrang
-
@daniel-8
ohje, wie bemerkt und entstanden? -
Wir haben eine Wohnung für die Schwiegereltern gekauft und zum Glück kam der küchenbauer gestern zum ausmessen.
Da war das hauptrohr verstopft und da lief es dann wie ein Wasserfall raus.
-
Heute Nacht ging mein Smartmode um 23.37 Uhr automatisch auf 0. Ich kann nur noch nicht sagen woher das kommt. Eventuell von der cloud. Noch ist meiner da angemeldet.
-
@daniel-8
Kann völlig normal sein. smartMode:1 sollte bei autoModel:0 einwandfrei funktionieren.Sobald ein anderes Model oder irgend eine Cloud-Automatik eingreift, könnte er auf 0 gesetzt werden.
Finde das macht nichts.
Entscheidend ist, dass wenn man selbst mit scripts über autoModel:0 steuert, der smartMode:1 gesetzt ist.
Dafür den smartMode überwachen lassen.Das System/Cloud geht auch nicht davon aus, dass smartMode:1 (schreiben ins RAM) Dauerzustand sein soll. Obwohl wir uns das wünschen.
-
@maxclaudi sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):
@daniel-8
Kann völlig normal sein. smartMode:1 sollte bei autoModel:0 einwandfrei funktionieren.Sobald ein anderes Model oder irgend eine Cloud-Automatik eingreift, könnte er auf 0 gesetzt werden.
Finde das macht nichts.
Entscheidend ist, dass wenn man selbst mit scripts über autoModel:0 steuert, der smartMode:1 gesetzt ist.
Dafür den smartMode überwachen lassen.Das System/Cloud geht auch nicht davon aus, dass smartMode:1 (schreiben ins RAM) Dauerzustand sein soll. Obwohl wir uns das wünschen.
Welches autoModel ich habe kann ich nicht sagen. Muss mal sehen ob das auch ausgelesen wird. Bin grad nicht vor Ort.
Ich habe den speicher aus hems raus und ist quasi nur als Gerät in der cloud. Somit sollte ja da keine automatik eingreifen. Aber ich habe den smartMode ja überwacht. Muss das nur mal noch machen das er automatisch wieder auf 1 springt
-
-
Ja die Benachrichtigung per Email habe ich schon.
Muss nur noch das auf 1 setzen einfügen. Aber heute nicht mehr. Hab noch anderes zu tun mit Umzug Vorbereitung usw.
-
-
ich bin online
-
@daniel-8
ich denke, es lohnt sich, das Script mal auszuprobieren.Ich habe die Auswertung jetzt auf das komplette JSON erweitert. Das bedeutet: Beim Aufruf für den SmartMode (aktuell alle 60 Sekunden) werden nicht nur die SmartMode-Daten erfasst, sondern alles andere aus dem JSON ebenfalls ausgewertet. Fehlende Datenpunkte werden automatisch angelegt und können direkt genutzt oder in Scripts/Blockly ausgewertet und verglichen werden.
Der Vorteil: Wenn ein Datenpunkt fehlt oder Zendure einen neuen Key/Value ins JSON aufnimmt, wird dieser automatisch als Datenpunkt erstellt – sofort einsatzbereit, konfliktfrei und ohne Kollisionen. In der aktuellen Version ist das erstmal nur lesend; man sieht also immer direkt, was neu hinzugekommen ist.
Ein kleiner nächster Schritt wäre dann zu überlegen, ob man Commands für bestimmte Datenpunkte integrieren möchte. Damit wäre das Script funktional ähnlich wie ein Adapter über das HTTP ZenSDK.
Es muss nichts weiter verändert oder eingetragen werden – alles läuft wie bisher.Möchtest Du die curl Version oder die andere?
-
ich kann die curl Version testen
-
Bitte das andere script stoppen.
Das neue dann wie vorher die Daten oben eintragen, iwe beim anderen.
Mehr nicht.
Dann einfach nur dieses starten und bitte Rückmeldung -
JSON Parse Fehler
-
Kann ich dir da irgenwie mehr Infos zukommen lassen?
Es wurden 2 Ordner mit MQTT State und SmartMode angelegt
-
@daniel-8
bin am code -
@daniel-8
habs editiert.
bitte das script noch einmal löschen und das von vorhin noch einmal probieren. -
Folgende Warn Meldung
request package is deprecated - please use httpGet (or a stable lib like axios) instead!
Sonst lief es durch und hat mir ziemlich viele Datenpunkte geliefert
-
@daniel-8
ja in der iobroker JS-Sandbox ist das request-Package veraltet und wird offiziell nicht mehr empfohlen. Deshalb siehst du die Warnung.
Also mit warnung oder die andere Version benutzen.
Ansonsten kannst mal ein sreenshott machen? Müsste ja genug reinkommen?
Vermutlich mehr als über mqqt?