Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erreichbarkeit #14

Open
KemalOues opened this issue Apr 8, 2024 · 98 comments
Open

Erreichbarkeit #14

KemalOues opened this issue Apr 8, 2024 · 98 comments

Comments

@KemalOues
Copy link

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?

@SpongeBorg
Copy link

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.

@thecem
Copy link
Contributor

thecem commented Apr 8, 2024

grafik

Die PV Werte habe ich bis jetzt noch nicht erhalten, habe aber gerade heute erst die config angepasst. Kommen die bei euch?

@z-master42
Copy link
Owner

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.

@megabyte0469
Copy link

megabyte0469 commented Apr 10, 2024

Hallo erst einmal Danke für die Super Arbeit. Hab auch Probleme das manche Werte nicht angezeit werden. Hat sich das geklärt ?! Beispiel:
Bildschirmfoto 2024-04-10 um 08 54 05

Zum Beispiel Solar Power 1 und 2 gingen noch nie.

@SpongeBorg
Copy link

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 ...

@z-master42
Copy link
Owner

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.

@thecem
Copy link
Contributor

thecem commented Apr 10, 2024

Frage ist was sendet die App um das Update auszulösen ….

@megabyte0469
Copy link

megabyte0469 commented Apr 10, 2024

ok meine Solar Werte sind nun da.
Bildschirmfoto 2024-04-10 um 13 08 09

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.

@z-master42
Copy link
Owner

Das hat nichts mit MQTT zu tun. Die Werte sind alles Momentanleistungen (W). Das Energiedashboard arbeitet mit Gesamtenergiemengen (Wh). Habe ich aber auch beschrieben.

@megabyte0469
Copy link

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.....

@z-master42
Copy link
Owner

👍 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.

@SpongeBorg
Copy link

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 ...

@megabyte0469
Copy link

Bei mir fehlt der Solar Total Wert auch noch.
Bildschirmfoto 2024-04-10 um 18 30 52
Und ein Schalter wird noch als Unbekannt angezeigt.
Bildschirmfoto 2024-04-10 um 18 32 07
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.
Bildschirmfoto 2024-04-10 um 18 35 06
Werte stimmen noch nicht. Aber das muss ja auch erst einmal 24h laufen damit die Werte stimmen

@z-master42
Copy link
Owner

Die Schalter sind in dem Sinne auch keine Schalter, sondern stellen nur den Zustand dar.

@SpongeBorg
Copy link

So langsam scheint Zendure alles wieder online geschalten zu bekommen:

CurrentPower

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 ...

@z-master42
Copy link
Owner

z-master42 commented Apr 14, 2024

Habe die beiden Batteriesensoren angepasst. Sollte funktionieren.

solarflow/mqtt.yaml

Lines 25 to 61 in 27329e1

- name: "Pack Input Power"
unique_id: "<deviceID>packInputPower"
state_topic: "<appKey>/<deviceID>/state"
unit_of_measurement: "W"
device_class: "power"
value_template: >
{% if states('sensor.solarflow_pack_input_power') not in ['unknown'] %}
{{ int(value_json.packInputPower, 0) }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
expire_after: 120
device:
name: "SolarFlow"
identifiers: "<EurePVHubSeriennummer>"
manufacturer: "Zendure"
model: "SmartPV Hub 1200 Controller"
- name: "Output Pack Power"
unique_id: "<deviceID>outputPackPower"
state_topic: "<appKey>/<deviceID>/state"
unit_of_measurement: "W"
device_class: "power"
value_template: >
{% if states('sensor.solarflow_output_pack_power') not in ['unknown'] %}
{{ int(value_json.outputPackPower, 0) }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
expire_after: 120
device:
name: "SolarFlow"
identifiers: "<EurePVHubSeriennummer>"
manufacturer: "Zendure"
model: "SmartPV Hub 1200 Controller"

@SpongeBorg
Copy link

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.

@z-master42
Copy link
Owner

z-master42 commented Apr 16, 2024

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?

@SpongeBorg
Copy link

Hab in der App bei Region auf "Global" eingestellt .

@z-master42
Copy link
Owner

Dann nutzt du mit https://app.zendure.tech/eu/developer/api/apply in der Anfrage den faschen Server.

@SpongeBorg
Copy link

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.

@megabyte0469
Copy link

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.

@SpongeBorg
Copy link

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 👍 Leider funktioniert der automatisierte Trigger/Auslösung bei mir nicht 👎 . Ist die Automatisierung schon mal erfolgreich getestet worden? Wenn ja, dann suche ich mal nach meinem Bug ...

@SpongeBorg
Copy link

SpongeBorg commented Apr 24, 2024

... funktioniert - hab meinen Bug gefunden :-)

@truffner99
Copy link

truffner99 commented May 1, 2024

... 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
image

@SpongeBorg
Copy link

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: 32ba505

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 :-) )

@truffner99
Copy link

truffner99 commented May 2, 2024

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.

  • id: Batterieentladung
    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: 7xxxx/Nqwt2sv2/state
      payload: '{"outputpackPower":0}'
      mode: single
  • id: Batterieladung
    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_power
        state: '0'
        action:
    • service: mqtt.publish
      metadata: {}
      data:
      qos: '2'
      topic: 7xxxx/Nqwt2sv2/state
      payload: '{"packInputPower":0}'
      mode: single

Hier mal meine MQTT Entitäten:
image

@z-master42
Copy link
Owner

Das p bei OutputPackPower muss groß.

@SpongeBorg
Copy link

SpongeBorg commented May 2, 2024

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

@truffner99
Copy link

Das p bei OutputPackPower muss groß.

Arg.....Wie doof von mir :-)

@SpongeBorg
Copy link

Sieht gut aus. Folgendes kannst du heute Abend mal probieren: Wenn kein Solarstrom mehr produziert wird (und die Sensoren noch Leitungswerte anzeigen), dann führe die entsprechende Automation mal manuell aus. Dann bekommen wir zumindest raus, ob der Trigger oder die Wertesetzung nicht korrekt arbeitet. Generell kannst du mal nachsehen, wann (bzw. ob) die Automationen ausgelöst haben.

@Grandman1701
Copy link

Du kannst auch prüfen ob Automatisierung nach yaml auch grafisch erkannt wird. Manche leerstelle kann schon alles versauen.
Screenshot_2024-06-03-09-23-49-769_io homeassistant companion android

@Grandman1701
Copy link

Wie kann ich das verhindern das mir so viele entity angelegt werden?
Screenshot_2024-06-25-15-32-15-705_io homeassistant companion android

@phenomeus
Copy link

nervt mich auch wie sau… 

@SpongeBorg
Copy link

Bei mir bleibt das alles so, wie ich das implementiert habe. Wenn die Entitäten einmal angelegt sind, dann bleiben die immer gleich ... Habt Ihr die manuelle oder die automatische Implementierung realisiert? Ich habe die manuelle Implementierung gewählt.

@Grandman1701
Copy link

Beides, wie kann man die automatische wieder auswerfen?

@SpongeBorg
Copy link

HHmmmm ... ich denke nicht, dass das so gedacht ist ... und ich vermute auch, dass dies der Grund für die mehrfachen Entities sein könnte. Versucht doch mal nur die manuelle Implementierung. Ist zwar etwas Arbeit, aber funzt wunderbar.

@Grandman1701
Copy link

Beides, wie kriegt man Auto wieder raus

@phenomeus
Copy link

hab nur auto und naja… nervt eben.

@SpongeBorg
Copy link

Das steht hier beschrieben: https://github.com/z-master42/solarflow/wiki/Einbindung-in-Home-Assistant

Scrollt zur Stelle: [ ... ] Wollt ihr, dass Home Assistant euch die Sensorentitäten automatisch anlegt überspringt die weiteren Schritte zunächst und macht bei iii. weiter. [ ... ]

Ich würde erst mal den Befehl topic # in 0 homeassistant/sensor/<appKey>/ <appKey>/sensor/device/ aus der zendure.conf loeschen ...

@Grandman1701
Copy link

hab die Zeile mal raus. gefuellt kommt nix mehr rein. wieso?

@Grandman1701
Copy link

2024-07-13 11:11:28: Connecting bridge zendure-broker (mqtt.zen-iot.com:1883)
2024-07-13 11:11:28: mosquitto version 2.0.18 running
2024-07-13 11:11:28: New connection from ::1:41220 on port 1883.
2024-07-13 11:11:28: Client disconnected due to protocol error.

was beteuted das wieder?

@Grandman1701
Copy link

mirkommt es vor als ob die daten kurz reinkommen und dann garnicht

grafik

@Grandman1701
Copy link

nochmal fuer dooofe, warum komen daten mit dieser zeile rei aber ohne nicht?
grafik

@z-master42
Copy link
Owner

2024-07-13 11:11:28: Connecting bridge zendure-broker (mqtt.zen-iot.com:1883)
2024-07-13 11:11:28: mosquitto version 2.0.18 running
2024-07-13 11:11:28: New connection from ::1:41220 on port 1883.
2024-07-13 11:11:28: Client disconnected due to protocol error.

was beteuted das wieder?

Die Fehlermeldung ist nicht zweifelsfrei zuzuordnen..von daher keine Ahnung.

@z-master42
Copy link
Owner

mirkommt es vor als ob die daten kurz reinkommen und dann garnicht

grafik

Die Entitäten aktualisieren sich nicht alle gleichzeitig und regelmäßig, steht aber auch so in der Anleitung.

@z-master42
Copy link
Owner

nochmal fuer dooofe, warum komen daten mit dieser zeile rei aber ohne nicht?
grafik

Weil ohne die Zeile die Entitäten händisch per YAML angelegt werden müssen, was du aber scheinbar schon getan hast.

BTW: Die letzte Zeile funktioniert nur, wenn die vorletzte auch funktioniert. Also liegt es nicht daran.

@Grandman1701
Copy link

kanns ein das zendure gestern einfach nix gesendet hat?
heute alles wieder da und sensoren doppelt. da ich die zeile wieder drin hate
grafik

@Grandman1701
Copy link

Hab die zeile für Auto Sensoren raus und es funktioniert, Juhu

@Grandman1701
Copy link

Zu früh gefreut? Jetzt kommt wieder nix rein

@z-master42
Copy link
Owner

Zu früh gefreut? Jetzt kommt wieder nix rein

Was hast du denn gemacht, dass jetzt "wieder nichts" kommt? Home Assistant neu gestartet vielleicht?

Mit welchem Server ist dein SolarFlow in der App verbunden? Also welche Region ist eingestellt?

@Grandman1701
Copy link

Grandman1701 commented Jul 14, 2024

Hab vorhin die zeile raus, restart, 2h beobachtet, kamen anfangs noch Daten dann nicht mehr. Zendure läuft auf eu Server bzw Deutschland

@Grandman1701
Copy link

Grandman1701 commented Jul 14, 2024

Hab zeile wieder rein und werde wieder beobachten

@z-master42
Copy link
Owner

Wie oft denn noch: Ob Werte kommen oder nicht hat nichts mit der "Zeile" zu tun.

RTFM

Die wenigsten werden von vorne herein bereits einen Wert haben, da wie anfänglich erwähnt der Zendure-Broker nur Werteänderungen ausspielt, sich also der jeweilige Wert im Vergleich zu seinem vorherigen Status geändert haben muss. Um eine Aktualisierung aller Sensoren zu erzwingen, könnt ihr einfach mal für ein paar Augenblicke in der Zendure-App auf der Detailansicht der Batterien, dort wo ihr auch die Temperaturen sehen könnt, verweilen.

@Grandman1701
Copy link

Hast ja recht, hat nur 12h gedauert

@Grandman1701
Copy link

melde mich hier nochmal, also inden mqtt debug infos kommen sehr oft daten rein, aber diese werten nicht gespeichert oder so?
grafik
grafik

woran kann das den liegen

@z-master42
Copy link
Owner

Du meinst die beiden "nicht verfügbaren"? Wenn die nicht verfügbar sind, dann existiert die Entität nicht mehr, sprich es ist in YAML kein Sensor definiert (ich gehe davon aus, du hast die Entitäten/Sensoren mitterweile alle händisch in YAML angelegt...)

@Grandman1701
Copy link

dadrueber eben
grafik
jetzt sind wieder mehr befuellt..
was ich aber sagen wollte das mqtt viel haufiger daten empfaegt als es in dieser ansicht zu sehen ist.
grafik

siehe mqtt info. sind aber auch im debug keine fehler drin
grafik
grafik

@z-master42
Copy link
Owner

Nur das, was im Payload enthalten ist, wird auch aktualisiert. Ich kann dein "Problem" nicht nach vollziehen.

@Grandman1701
Copy link

Das meine ich ja, da waren Werte im payload drin aber nicht bei den Sensoren im ha.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants