NEWS
Test Adapter Zendure Solarflow
-
@onkelsep schau mal zwei/drei Posts weiter oben, was der Stephan gepostet hat. Der hat mein Blockly auch übernommen und fast genau so sieht meins auch aus.
-
Hallo Horst,
kannst du mir bitte nochmal helfen. Laden funktioniert so mit dem Skript.
Aber er startet nicht zum entladen?Kannst du bitte nochmal über das Blocky schauen.
Danke
-
@horst-werner das hatte ich gesehen, Ich dachte zwar an den Code als Text aber ok muss ich das nachbauen.
-
@onkelsep ```
<block xmlns="https://developers.google.com/blockly/xml" type="control" id="=o2{GPV4w=:]aci4|vY?" x="298" y="346">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="convert_tonumber" id="Rj3Uaj4{~c;!x!eGEeXD">
<value name="VALUE">
<block type="math_constrain" id="7~D[JsL|N~VeFwtpE
">
<value name="VALUE">
<shadow type="math_number" id="(9UIPj)LKTV=|#F^uD,q">
<field name="NUM">50</field>
</shadow>
<block type="math_arithmetic" id="TvZBnp(B!y!/Hr[yexE9">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="l(:X{x7E+4zu10Q|5@!j">
<field name="NUM">1</field>
</shadow>
<block type="math_round" id=")86b/RxGH%v7o10%~/M">
<field name="OP">ROUNDUP</field>
<value name="NUM">
<shadow type="math_number" id="gyY9z7s?CrnAoD0q10E">
<field name="NUM">3.1</field>
</shadow>
<block type="get_value" id="SQT#4Dl*V==lu[7Mku8"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="ejRA-VP8RdO[Iz7W6[$B"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!9ne=tscadHC,quP|dlU"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Ausgangsleistung</field> </block> </value> </block> </value> <value name="LOW"> <shadow type="math_number" id="k$b@7b)3I?3u8R,%^no("> <field name="NUM">0</field> </shadow> </value> <value name="HIGH"> <shadow type="math_number" id="x8}*eX!Nsg$Dq)p(Q9S_"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="update" id="fce@-pMl:1kZ%lAb1IM5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id=",=I/6z]|3NAu8ylXEr|)"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";D#iA~8Yj630O($CMi?N"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id=";f|).sI:pOi1s(r$G
8b">
<field name="NUM">0</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number" id="|n97^C9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="XmrX=:RmGSQt*7n%!~|o"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="hm2nF$NvSUz9w[Ph*f/d"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="control" id="O*;k.
?nQqdF;AGd[Yjl">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="0$zTn8u[.f
wpK+*xUS">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="controls_if" id="Qz5c%hJbta[0TsYo42G)">
<value name="IF0">
<block type="logic_compare" id="Iyp,~@V86|af4mY^[k6"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="Le+Q8Dtj[2q|fSs;jaVB"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="c4c
K=AB02Qy7;CIS;C2">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="[xw(|,6{QxRl3l}OU|e">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="For~)Qm/@`puW%Y=Lwfo">
<field name="NUM">2</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block> -
@stephanh Oh super, vielen Dank. Eine Frage die Zeilen in Rot sind das die Datenpunkte? Sorry bin noch Recht frisch in der Materie.
-
@OnkelSep
Das sind alias:zu den daten Punkten in der Instanz. Hatte die mir so angelegt.
Und hier noch Datenpunkte, die fest angelegt hab.
-
@stephanh OK, werden die Automatisch angelegt? Oder muss ich die dann manuell anlegen. Kann im Moment nicht testen bin gerade nicht daheim.
-
@onkelsep Die musst du von Hand anlegen.
-
@stephanh OK; Vielen Dank
-
@stephanh Hmm irgendwas passt da nicht, hab das eben importiert, aber da ist nur der kleine Block drin. War der bei dir evtl. einzeln markiert?
-
@onkelsep werde es denke morgen nochmal Online stellen.
Hab einen weiteren Fehler gefunden. Hab die falsche Variable geschaltet. -
@stephanh OK Danke, das war tatsächlich nur der eine Block
-
@nograx
Klappt soweit super mit V1.8.8 , aber ich habe über den Datenpunkt "zendure-solarflow.0.info.connection" in den Benutzerdefinierten einstellungen Telegram angewiesen mir eine Nachricht zu schicken ob die Anlage mit der Cloud verbunden ist oder nicht. Leider bekomme ich jetzt alle 3 Std. eine Meldung das die Anlage offline ist und sofort darauf das sie online ist. Ist dieser ON/OFF wechsel so gewollt oder könntest du das während des Restarts deaktivieren.Dann verständniss fragen :
ist es normal das unter "zendure-solarflow.0.xxxxxxxxxx.packData.yyyyyyyyyyyy.model" immer AB1000 steht , auch wenn man ein Zendure AIO2400 hat .
Warum tauchen bei meinem System nun auch DPs auf, die nur für den Hyper und ACE interessant sind .
Warum kann an sonnigen Tagen der Dateninhalt von "zendure-solarflow.0.xxxxxxxx.calculations.energyWhMax" bei einer AIO 2400 grösser als 2400 Wh werden. Ich dachte das energyWhMax sich auf die Kapazität des Akkus bezieht, wodurch dann aber 2400 Wh die Max grenze wären.Ich weiss das sind viele Punkte , aber habe gesammelt .
Aber kann ohne bedenken sagen das der Adapter einer meiner Lieblingsadapter ist , nur weiter so. -
@muppibaer sagte in Test Adapter Zendure Solarflow:
@nograx
Klappt soweit super mit V1.8.8 , aber ich habe über den Datenpunkt "zendure-solarflow.0.info.connection" in den Benutzerdefinierten einstellungen Telegram angewiesen mir eine Nachricht zu schicken ob die Anlage mit der Cloud verbunden ist oder nicht. Leider bekomme ich jetzt alle 3 Std. eine Meldung das die Anlage offline ist und sofort darauf das sie online ist. Ist dieser ON/OFF wechsel so gewollt oder könntest du das während des Restarts deaktivieren.Ja das ist so "gewollt" bzw weiß ich aktuell nicht wie ich das anders lösen könnte. Der Restart vom Adapter ist zwingend nötig damit ein neue Login Daten erzeugt werden - ansonsten kommen irgendwann keine Daten mehr an. Beim Restart wird der Adapter immer in "offline" gesetzt, da ja die Verbindung getrennt wird. Du könntest mal versuchen den Datenpunkt "errorMessage" zu nutzen. Da sollte sich der Wert nur ändern wenn beim Login Fehler auftreten (natürlich schwer zu testen ).
Dann verständniss fragen :
ist es normal das unter "zendure-solarflow.0.xxxxxxxxxx.packData.yyyyyyyyyyyy.model" immer AB1000 steht , auch wenn man ein Zendure AIO2400 hat .Ja und Nein. Eine Zuordnung zum Batterietypen kann man nur über die Seriennummer machen. Diese beginnen beim AB1000 mit "A" und beim AB2000 mit "C". Da die SN beim AIO auch mit A anfängt meint mein Adapter es ist ein AB1000 ... definitiv etwas was ich noch optimieren werden.
Warum tauchen bei meinem System nun auch DPs auf, die nur für den Hyper und ACE interessant sind .
Weil Zendure die seit neusten bei allen Geräten mitsendet und mir das aktuell etwas zu viel Aufwand ist da noch eine Abfrage einzubauen ob der DP für das aktuelle Gerät Sinn ergibt... ansonsten würdest du im Log etliche Fehlermeldungen sehen das ein State nicht gesetzt werden kann weil er nicht existiert.
Warum kann an sonnigen Tagen der Dateninhalt von "zendure-solarflow.0.xxxxxxxx.calculations.energyWhMax" bei einer AIO 2400 grösser als 2400 Wh werden. Ich dachte das energyWhMax sich auf die Kapazität des Akkus bezieht, wodurch dann aber 2400 Wh die Max grenze wären.
Das sollte eigentlich nicht passieren, kannst du mir mal sagen was im DP "productName" im Root das AIO steht?
Ich weiss das sind viele Punkte , aber habe gesammelt .
Aber kann ohne bedenken sagen das der Adapter einer meiner Lieblingsadapter ist , nur weiter so.Danke
-
Hab nun das Blocky von @horst-werner leicht auf meine Bedürfnisse angeändert.
Dazu noch ein kleines Skript dazu geschrieben um die Accu Restlaufzeit in den IOBroker zu bekommen.danke @horst-werner für das Skript
Blocky Sreenshots:
Blocky Source Code:
ScreenShots der Alias und Variablen, wie ich Sie verwendet habe
IOBroker Lovelace ScreenShots:
-
@stephanh Wou, super. ziehe mir das morgen mal rein. Vielen Dank erst mal.
-
Danke für deine Antwort, und natürlich auch für diesen echt tollen Adapter.
Ich hab 2 AIO Anlagen bei beiden steht in zendure-solarflow.0.xxxxxx.yyyyyyyy.productName "SolarFlow AIO ZY"
, vieleicht wäre es einfacher in den Adaptereinstellungen ein Auswahl oder Eingabe Feld für die Akkugrösse einzufügen.Werde es über errorMessage mal versuchen , aber dachte bisher das dort eine Meldung nur auf läuft wenn keine Verbindung beim Login hergestellt werden kann. Wird dort auch eine Meldung ausgegeben wenn die Verbindung verloren geht oder abbricht ?
Trifft es dann zu das Du einfach den gesammten Adapter alle 3 Std. neu startest, wäre es nicht einfacher das der Adapter sich nur aus- und wieder einloggt.Dann noch eine frage zum bereich calculations , wie genau sind die Ergebnisse dort. frage nur weil es immer wieder vor kommt das die ausgelesenen AIO daten z.b Soc gerade jetzt noch 38 % angibt , die berechnung aber nur noch 1,2%
-
@nograx Heute nachmittag hatte ich diesen Fehler:
Erst drei Stunden später, um 17:44 Uhr, gab es wieder eine erfolgreiche Verbindung.
Wäre es möglich, in diesem Fehlerfalle einen automatischen Reconnect-Versuch zu starten? -
@diet99 sagte in Test Adapter Zendure Solarflow:
@nograx Heute nachmittag hatte ich diesen Fehler:
Erst drei Stunden später, um 17:44 Uhr, gab es wieder eine erfolgreiche Verbindung.
Wäre es möglich, in diesem Fehlerfalle einen automatischen Reconnect-Versuch zu starten?hm ja da kann ich sicher noch was machen. Aber schon witzig das beim Login der Server erreichbar war, Millisekunden später aber bei der Abfrage der Geräte offenbar nicht mehr.
-
@stephanh vielen Dank für dieses coole Script
Nutzt Du einen Hyper2000 oder den SolarHub.
Ich habe mit einem ähnlichen Script aktuell ein paar Probleme und suche nach der Ursache
Welche Region in der Zendure App nutzst Du Global oder EU ?