Open KemalOues opened 6 months ago
Hallo, dass MQTT hat bei mir wochenlang sehr gut funktioniert. Die hier gehostete Anleitung ist korrekt. Ich nutze es, um mir im Homeassistent Statistiken anzuzeigen. Aber seit gestern Mittag hat Zendure offensichtlich große Probleme mit der Serverkapazität. Auch im Chat der offiziellen Zendure-App kann man das gut mitverfolgen. Aktuell kann ich auch auf meinen Account nicht korrekt zugreifen. Da kommt nur wirres Zeug:
{"code":400,"success":false,"data":{},"msg":"Please bind the device first"}
Wahrscheinlich müssen wir erst mal abwarten, bis Zendure das Problem gelöst hat.
Die PV Werte habe ich bis jetzt noch nicht erhalten, habe aber gerade heute erst die config angepasst. Kommen die bei euch?
Gestern ging ab so 14:00 per MQTT gar nichts mehr. Am Abend hat es dann wieder funktioniert. Heute gibt es seit den Morgenstunden keine Solarwerte mehr per MQTT. Ursache liegt bei Zendure.
Hallo erst einmal Danke für die Super Arbeit. Hab auch Probleme das manche Werte nicht angezeit werden. Hat sich das geklärt ?! Beispiel:
Zum Beispiel Solar Power 1 und 2 gingen noch nie.
Leider noch nicht. Ich bekomme sporadisch die Werte für Output Pack Power und Pack Input Power. Auch das Akku-Level wird übertragen. Alles andere fehlt immer noch :-(. Solar1 und Solar2 funktionierten bei mir immer tadellos ...
Man kann ein Update aller Sensoren erzwingen, in dem man in der Zendure App auf die Akkudetailansicht geht, dort wo man auch die Temperatur sehen kann. Wenn man auf dieser Ansicht einen Moment verweilt, kann man beobachten wie die Werte in Home Assistant aufgefrischt werden.
Frage ist was sendet die App um das Update auszulösen ….
ok meine Solar Werte sind nun da.
Eine Frage trotzdem. Bin neu im MQTT Umfeld. Wieso können die Mqtt Werte nicht im Dashboard gefunden werden ?! Möchte gerne die Akku Ladeleistung im Home Assistant unter Energy Batterie eintragen.
Das hat nichts mit MQTT zu tun. Die Werte sind alles Momentanleistungen (W). Das Energiedashboard arbeitet mit Gesamtenergiemengen (Wh). Habe ich aber auch beschrieben.
Danke, ich hatte es überlesen. Werde mir mal "Watt in kWh umrechnen per Home Assistant Helfer Riemann Summen Integralsensor" näher anschauen. Damit sollte es dann gehen.....
👍 Die linke Methode und kilo als Präfix. Der Rest kann so bleiben. Und dann dauert es natürlich nen Moment. Muss ja erstmal Daten sammeln.
Das heißt, bei Euch funktioniert jetzt das MQTT wieder tadellos? Bei mir hakt es immer noch ganz schön - und den Solar-Total-Wert bekomme ich gar nicht via MQTT. In der App läuft alles tip top ...
Bei mir fehlt der Solar Total Wert auch noch.
Und ein Schalter wird noch als Unbekannt angezeigt.
Was der bewirkt weiss ich leider nicht. Hab meine MQTT Anbindung auch erst seit 5 Tagen aktiv. In der App wird der "Solar Total Wert" hier auch korrekt angezeigt....
Das mit der Batterie Einrichtung in Home Assistant funktioniert nun auch korrekt.
Werte stimmen noch nicht. Aber das muss ja auch erst einmal 24h laufen damit die Werte stimmen
Die Schalter sind in dem Sinne auch keine Schalter, sondern stellen nur den Zustand dar.
So langsam scheint Zendure alles wieder online geschalten zu bekommen:
Allerdings sind die Übertragungen noch sehr träge und die "0 W" werden nicht übertragen, sodass ich nie weiß, ob ich gerade den Akku lade oder entlade. Anhand des letzten Aktualisierungsstempels sehe ich aber, dass der Wert für das Akku-Entladen vor 1h das letzte Mal geupdate wurde. Wenn Zendure das so beibehält (was ja durchaus Sinn macht bezgl. Datenratenreduktion), müsste man das im Home Assistent noch nacharbeiten ...
Habe die beiden Batteriesensoren angepasst. Sollte funktionieren.
Danke für die Code-Erweiterung. Das funktioniert (bei mir) aber nur bedingt, da hier die letzten Werte immer noch bestehen bleiben. Es müsste eine Anweisung geben, die beispielsweise den Sensor von "Pack Input Power" auf 0 setzt, wenn der Sensor von "Output Pack Power" größer ist als 0 und dessen Zeitstempel jünger ist ...
ABER: Eventuell habe ich ein differenziertes Problem. Beim Kommunikationstest via Linux-Terminal bekomme ich immer noch eine nicht erfolgreiche Verbindungsanfrage:
Meine Anfrage: curl -i -X POST -H 'Content-Type: application/json' -d '{"snNumber": "xxxxxxxxxxx", "account": "xxxxxxxxxx"}' https://app.zendure.tech/eu/developer/api/apply
Die Antwort darauf: {"code":400,"success":false,"data":{},"msg":"Please bind the device first"}
Die Seriennummer und Account habe ich hier absichtlich geändert :-) Das hat auch alles schon mal richtig funktioniert. Könntet Ihr mal checken, ob das bei Euch erfolgreich funktioniert? Danke.
Danke für die Code-Erweiterung. Das funktioniert (bei mir) aber nur bedingt, da hier die letzten Werte immer noch bestehen bleiben. Es müsste eine Anweisung geben, die beispielsweise den Sensor von \"Pack Input Power\" auf 0 setzt, wenn der Sensor von \"Output Pack Power\" größer ist als 0 und dessen Zeitstempel jünger ist ...
Ja, hat auch nicht so wie ich dachte, bzw. es den Anschein hatte. expire_after
funktioniert doch nicht so wie aus der Doku verstanden. Der Rest sorgt aber zumindest dafür, dass die Power Sensoren initial auf 0 W gesetzt werden.
Hinsichtlich des gegenseitig auf 0 setzen helfen zwei Automatisierungen. Werde sie in der Readme noch nachtragen:
alias: Batterieentladung
description: ""
trigger:
- platform: numeric_state
entity_id:
- sensor.solarflow_pack_input_power
above: 0
condition:
- condition: not
conditions:
- condition: state
entity_id: sensor.solarflow_output_pack_power
state: "0"
action:
- service: mqtt.publish
metadata: {}
data:
qos: "0"
topic: <appKey>/<deviceID>/state
payload: "{\"outputpackPower\":0}"
mode: single
alias: Batterieladung
description: ""
trigger:
- platform: numeric_state
entity_id:
- sensor.solarflow_output_pack_power
above: 0
condition:
- condition: not
conditions:
- condition: state
entity_id: sensor.solarflow_pack_input_amount
state: "0"
action:
- service: mqtt.publish
metadata: {}
data:
qos: "0"
topic: <appKey>/<deviceID>/state
payload: "{\"packInputPower\":0}"
mode: single
Zu der letzten Sache: In welcher Region bist du in der Zendure App unterwegs?
Hab in der App bei Region auf "Global" eingestellt .
Dann nutzt du mit https://app.zendure.tech/eu/developer/api/apply in der Anfrage den faschen Server.
Hallo. Es ist ruhig in diesen Thread geworden und bevor er geschlossen wird, hier noch schnell meine aktuellen Erfahrungen. Zendure scheint die Strategie zum Updaten der Sensoren von MQTT-Server geändert zu haben. Bis auf den "solar_input_power" Sensor, der wirklich fast synchron mit dem Wert in der App aktualisiert wird, scheinen die restlichen Sensoren nun im Minutentakt via MQTT geupdatet zu werden. Bitte gebt mir mal ein Feedback, ob das bei Euch auch so ist. Anderenfalls würde ich mal den "EU-Server" nutzen. Bin aktuell auf dem "Global" Server. Danke.
Hallo, ich würde sagen ja, aber nur so lange man die Home Assistant System nicht wegen Update z.B. neu starten muss. Dann sind erst einmal wieder alle Werte "Nicht verfügbar" und sobald das System aus dem "Winterschlaf" (Standby) kommt dauert es normalerweise 1-2 Stunden dann sind alle Werte wieder da.
Hallo noch mal. Ich habe bei mir im HA die beiden Automatisierungen zur wechselseitigen "Sensor-Nullung" implementiert. Wenn ich sie manuell ausführe/teste, werden die entsprechenden Werte auch auf 0 gesetzt :+1: Leider funktioniert der automatisierte Trigger/Auslösung bei mir nicht :-1: . Ist die Automatisierung schon mal erfolgreich getestet worden? Wenn ja, dann suche ich mal nach meinem Bug ...
... funktioniert - hab meinen Bug gefunden :-)
... funktioniert - hab meinen Bug gefunden :-)
Hey SpongeBorg, könntest Du mich teilhaben lassen? Ich bekomme das nicht hin. Irgendwo habe ich einen Fehler. Die Meldungen kommen zwar rein, wenn ich auf MQTT zuhören lasse, aber es tut sich nichts. Wird nie auf 0 gestellt. Was mich wundert, meine Sensoren heißen komplett anders, sind aber so nicht in der MQTT.conf drin. sensor.solarflow_pack_input_power zum Beispiel , während in der Automation ja nur outputpackpower steht
Die (Home Assistant) Sensoren müssen über separate Automatisierungen im HomeAssistant auf 0 gesetzt werden. In der Konfigurationsdatei stehen "nur" die definierten (Home Assistent) Eigenschaften der jeweils empfangen (Zendure) Sensoren.
z-master42 hat das in diesem Commit hier gut dokumentiert: https://github.com/z-master42/solarflow/commit/32ba505d6143ba3b11e9494ef34592bc83c6ee68
Achtung, es gab da noch einen kleinen Bug (statt "Power" stand iwo "Amount"). Der wurde aber vor 3 Tagen gefixt :-) Meld dich, wenn noch was unklar ist (oder auch wenn es funktioniert :-) )
Hi, ja, das habe ich ja auch gemacht, siehe unten meine Automation. Aber die funktionieren ja nicht. Das mit Amount, habe ich auch gesehen und geändert. Wenn ich die Automation "Batterieladung" manuell ausführe, siehe ich im MQTT listener auch den Eingang des Befehls und er ändert den Sensor solarflow_solar_input_power auch ab auf NULL. Automatisch läuft da generell nix. Die Entitäten unter MQTT sehen aber auch anders aus: sensor.solarflow_pack_input_power zum Beispiel
Bin hier echt mit meinem Latein am Ende.
Hier mal meine MQTT Entitäten:
Das p bei OutputPackPower muss groß.
To sum up: Bei manuellem Auslösen funktioniert die Nullsetzung bei beiden Automatisierungen? Wenn ja, dann stimmt was mit den Trigger-Ereignissen nicht ...
Nur zur Sicherheit: HA schon mal neugestartet?
Richtige Formatierung gewählt?
trigger:
- platform: numeric_state
entity_id:
- sensor.solarflow_sf_pack_input_power
above: 0
Das p bei OutputPackPower muss groß.
Arg.....Wie doof von mir :-)
Es geht!!!! Super, vielen Dank Euch beiden. Hatte den Fehler immer im Auslöser gesucht, in der Entität. Das mit dem "P" war mir garnicht aufgefallen. Jetzt, wo mal geladen und entladen wird, sehe ich, dass es klappt..
hallo, ich werde noch wahsinnig, wenn ich die Pack Input und Pack Output nach der anleitung einrage bekomme ich immer 0 raus
was ist da falsch? funktioniert nur wenn ich es so mache also ohne ifs
value_template: >
{% if states('sensor.solarflow_output_pack_power') not in ['unknown'] %}
{{ int(value_json.outputPackPower, 0) }}
{% else %}
{{ int(0) }}
{% endif %}
Die if
sorgt nur dafür, dem Sensor initial eine 0 zu verpassen, wenn er ansonsten im Zustand unbekannt wäre. Mehr macht die nicht. Kannst du aber auch genau so gut weglassen, so wie du es halt aktuell hast.
Ergänzung: Und mit dieser if
wird dein Sensor auch immer 0 haben, da dein Sensor sensor.outputpackpower
oder so heißt und die if
den Sensor sensor.solarflow_output_pack_power
abfragt.
OOOOh man ich depp.. natuerlich heisen die sensoren bei mir anders..
mein Problm war das ich sehr unrealistische berechnungen hatte mit den nicht nullen im dachboard.
Das Nullen kannst du ja noch über die separaten Automatisierungen umsetzen, also jetzt beim Wechsel von Laden auf Entladen. Analog kannst du dir auch Automatisierungen bauen, die z. B. die Solarinputsensoren nach einer gewissen Zeit ohne Werteänderung erstmal wieder auf Null setzen oder so.
bwt. Kann es sein das input und output vertauscht sind irgendwie?
bwt. Kann es sein das input und output vertauscht sind irgendwie?
Input ist aus dem Akku. Output ist in den Akku.
Die Bezeichnung ist aus Sicht des Hubs.
Daher auch: Solar Input Output Home
Hey, mit euch mach das ganze irgendwie wieder Sinn 😅. Na dann kann ich wieder energy daschboard bearbeiten
Ich bin noch Newbie. Besteht die Möglichkeit, dass ihr den Workflow, die Batterien korrekt in das Energy-Dashboard zu integrieren, nochmal kurz zusammenfasst. Welche Entitäten müssen eingebunden werden? Was hat es mit der, scheinbar notwendigen, Automatisierung auf sich? Blicke bei dem thread leider gerade nicht ganz durch und würde bei mir auch gern die Batterie in die Übersicht integrieren. Danke
Im Kern steht schon alles in der Anleitung hier, aber:
Bezüglich der beiden Automatisierungen:
Okay, danke für die Zusammenfassung. Also nutze ich solarInputPower für die Solarproduktion und packInputPower sowie outputPackPower für die Batterie (alles natürlich via Riemann-Helper) Die Automatisierung trage ich dann direkt in die automations.yaml ein. Aktuell habe ich noch das Problem, dass ich bei packInputPower und outputPackPower keine Daten reinbekomme. Alles andere funktioniert. Kann das damit zusammenhängen, dass ich aktuell noch den, laut Anleitung empfohlenen, ersten 0%-100%-Ladezyklus durchführe? Ich habe den AB2000 erst gestern angeschlossen.
Für die Automatisierungen erstellst du ganz normal über das GUI eine neue und wechselst in dieser in den YAML-Modus und kopierst den "Code" einfach da rein.
Nein, die sollten genauso verfügbar sein, wie alle anderen.
Bei mir läuft inzwischen alles. Ein seltsames Verhalten beobachte ich allerdings seit 2 Tagen. Jeden Früh wird in Home Assistant ein unverhältnismäßig hoher Akkuverbrauch angezeigt, obwohl zu dieser Zeit eigentlich keine Abnahme erfolgt und der Akku zu diesem Zeit punkt eigentlich das untere Ladelimit erreicht hat und auch nichts ausgeben kann. Habt ihr eine Ahnung, womit das zusammenhängt und wie ich das verhindern kann?
Wieso hat der Sensor kWh? Oder heißt der nur so, wie der Sensor mit W?
Das sieht darüber hinaus so aus, als hätte er die vier Stunden davor keine Daten bekommen und haut die dann in die Stunde wo er erstmals wieder Daten hat, erkennt man im Verlauf auch den "Treppen".
Der heißt nur wie der Sensor mit Watt. Der Name ist bei mir in HA identisch. Bezüglich Daten sieht es so aus, wie du es sagst, kann aber nicht sein, da er bereits gegen 2:00 den Minimalladestand von 10% erreicht hatte. Und die Daten in der App auch anders aussehen.
Gestern war es noch drastischer und auch deutlicher, da er mal eben auf einen Schlag 2,68kw angezeigt hat, was ja schon aus Kapazitätsgründen bei einem Akku nicht passen kann.
Die restlichen Werte scheinen aber über den Tag zu passen.
Aber die Grundlage ist der Power Sensor mit Riemann Summenintegral drüber? Wie sieht denn der Verlauf des Power Sensors in der Zeit aus?
Ja, genau. Basis ist der Power-Sensor mit Riemann Summenintegral. Verlauf des Power-Sensor, siehe Screenshot.
Ok, dann liegt das an dieser durchgehenden 200 W Linie.
Genau das ist das Problem!
Kurz noch mal erklärt: Die Sensoren liefern die aktuellen Leistungen in Watt - also wie viel Strom aktuell bei konstanter Spannung 230V gezogen wird. Die Energie ist dann die Leistung innerhalb eines definierten Zeitraums t. Nehmen wir mal an, es wird für t = 10h eine Leistung von 100 W gezogen. Dann sind genau 1 kWh Energie bezogen worden. Und genau das macht das Riemann Summenintegral (mehr oder weniger) jedes mal, wenn sich der Leistungswert ändert. Wenn der Sensor aber nie auf "0"gesetzt wird, sondern erst am nächsten Tag das erste mal wieder einen neuen Wert von der Zendure-Cloud bekommt, dann wird der (festgefrorene) Wert der Nacht mit der Gesamtzeit multipliziert und als "Energiewert" summiert. Deshalb bekommst du am Morgen einen Energiewert - ohne das die Sonne schien ...
Und genau da kommen die beiden Automatisierungsregeln ins Spiel. Sie checken, ob sich der Wert in den letzten beiden Minuten geändert hat oder nicht. Falls nicht, dann wird der Wert auf "0" gesetzt. Man könnte die Regel sogar noch soweit erweitern, dass man noch den Leistungswert "solar_power" checked - denn dieser Sensor ist der einzige, der die Nullleistung (sogar regelmäßig) überträgt.
Ich hoffe, ich konnte etwas zum Verständnis beitragen ... Sonnige Grüße :-)
Hallo,
danke für dein tolles Addon. Nur mir fällt auf, dass die Daten sich teilweise über Stunden nicht in Home Assistant aktualisieren. In der Zendure App klappt es dann gleichzeitig ohne Probleme.
Liegt das an einer Einstellung oder wie kann man das verbessern?