z-master42 / solarflow

37 stars 4 forks source link

Alle Sensoren unbekannt #21

Open FloBer431 opened 1 month ago

FloBer431 commented 1 month ago

Hallo, vielen Dank schonmal für die super Anleitung um neben einem bestehenden MQTT Broker einen weiteren anzulegen. Ich bin der Anleitung soweit gefolgt und habe sie mit der manuellen EInrichtung der Sensoren durchgeführt. Leider zeigen alle meine Sensoren den zustand Unbekannt und keinerlei Werte. Über den MQTT-explorer bekomme ich jedoch werte.

Vielen Dank für eure Tipps!

z-master42 commented 1 month ago

MQTT-Explorer verbunden mit dem Zendure-Broker oder mit dem Mosquitto-Addon (also Home Assistant)?

FloBer431 commented 1 month ago

MQTT Explorer verbunden mit Zendure direkt liefert Daten, das Addon in HA liefert keine Daten

z-master42 commented 1 month ago

Dann scheint die Verbindung zwischen Mosquitto und dem Zendure-Broker nicht zu stehen. Was sagt das Mosquitto Log nach dem Starten des Addons?

FloBer431 commented 1 month ago

Habe gerade noch etwas gefunden woran es liegen könnte, komme da sber auch nicht weiter. Direkt in HA gibt es den Bereich customize von mqtt, muss da noch was eingetragen werden? richtiger folder etc? image

z-master42 commented 1 month ago

Wenn du den gemäß Anleitung auch angelegt hast, ist das so korrekt.

FloBer431 commented 1 month ago

Ja genau, ich bin 1:1 der Anleitung gefolgt und habe dann mit mkdir den Ordner angelegt.

Ansonsten zeigt der Log keine Fehlermeldungen an, soweit ich sehen kann. Leider erscheint die IP adresse des Zendure Hubs aber auch nirgends

z-master42 commented 1 month ago

grafik

FloBer431 commented 1 month ago

So sieht der Log aus: image

z-master42 commented 1 month ago

Ok, und dann sieht du wenn du dich per MQTT Explorer mit dem Home Assistant verbindest keinen Eintrag der so heißt wie dein AppKey?

FloBer431 commented 1 month ago

Doch da sehe ich einen Eintrag, rot ist mein AppKey: image Aber in HomeAssistant selbst sind alle Entitäten unbekannt: image

z-master42 commented 1 month ago

Da sollte einer auf "gleicher Höhe" wie homeassistant oder tasmota sein.

FloBer431 commented 1 month ago

image image

FloBer431 commented 1 month ago

Da sollte einer auf "gleicher Höhe" wie homeassistant oder tasmota sein.

Hmm komisch, wenn ich eine direkte Verbindung mit MQTT-Explorer mache, dann sehe ich die Daten, in Home Assistant mit genau dem Script aus der Anleitung nichts ...

z-master42 commented 1 month ago

Na ja, irgendwas passt da noch nicht. Und so lange die Einträge im MQTT-Explorer bei direkter Verbindung mit dem Zendure-Broker nicht so auch bei Home Assistant/Mosquitto auftauchen, werden die Entitäten keinen Wert haben.

ottifant011 commented 1 month ago

Vielen danke für die tolle Anleitung. Eine Frage mir werden keine Akkustände angezeigt was muß ich bei "Batterie socLevel" eintragen irgend eine nummer oder was für ein wert?

z-master42 commented 1 month ago

@ottifant011 Wenn dann die Seriennummer der jeweiligen Batterie.

ottifant011 commented 1 month ago

name: "Batterie 01 maxTemp" also nicht so eintragen

z-master42 commented 1 month ago

Doch. So wie es da steht, alles in den spitzen Klammern, inklusiver der Klammern durch deine Daten ersetzen:

    - name: "Batterie <Nr> maxTemp"
      unique_id: "<deviceID>Batterie<Nr>maxTemp"
      state_topic: "<appKey>/<deviceID>/state"
      value_template: >
        {% if (value_json.packData | is_defined) %}
          {% for i in value_json.packData %}
            {% if i.sn == "<EureBatterieSeriennummer>" %}
              {{ (i.maxTemp | float - 273.15) | round(2) }}
            {% endif %}
          {% endfor %}
        {% endif %}
      unit_of_measurement: "°C"
      device_class: "temperature"
      device: 
        name: "SolarFlow"
        identifiers: "<EurePVHubSeriennummer>"
        manufacturer: "Zendure"
        model: "SmartPV Hub 1200 Controller"
ottifant011 commented 1 month ago

<Nr> und da kommt die seriennummer der Baterie rein ok vielen Dank

z-master42 commented 1 month ago

Nein, die kommt an Stelle <EureBatterieSeriennummer>. Bei <Nr> kannst du hinschreiben was du willst. Bei mir heißen die Batterien halt 1, 2 und 3.

FloBer431 commented 1 month ago

Ich habe leider immer noch keinen fehler erkennen können, alle Seriennummern, uniqueIDs und AppKeys sind überall eingetragen, genauso wie ich sie aus der direkten MQTT Express Verbindung herausbekommen habe.

z-master42 commented 1 month ago

Ich habe leider immer noch keinen fehler erkennen können, alle Seriennummern, uniqueIDs und AppKeys sind überall eingetragen, genauso wie ich sie aus der direkten MQTT Express Verbindung herausbekommen habe.

Bevor deine manuellen MQTT YAML Einträge irgendwas machen können, muss erstmal die Verbindung stehen.

Du hast mir noch nicht gesagt, ob du am Mosquitto die gleichen Einträge findest, wie am Zendure (per MQTT-Explorer).

FloBer431 commented 1 month ago

Ich habe leider immer noch keinen fehler erkennen können, alle Seriennummern, uniqueIDs und AppKeys sind überall eingetragen, genauso wie ich sie aus der direkten MQTT Express Verbindung herausbekommen habe.

Bevor deine manuellen MQTT YAML Einträge irgendwas machen können, muss erstmal die Verbindung stehen.

Du hast mir noch nicht gesagt, ob du am Mosquitto die gleichen Einträge findest, wie am Zendure (per MQTT-Explorer).

Genau da ist ja das Problem, ich habe auch das script, welches über das Terminal erstellt nochmals kontrolliert und AppKey und AppSecret wurden genau nach dem Muster eingetragen:

connection zendure-broker
address mqtt.zen-iot.com:1883
remote_username <appKey>
remote_password <appSecret>
remote_clientid <appKey>
topic <appKey>/# in

Siehe hier: image

Einträge sind direkt aus der funktionierenden MQTT Explorer - Zendure verbindung

z-master42 commented 1 month ago

Ok, dann sollte das so aussehen: grafik Bitte nicht von dem solarflow-hub Topic irritieren lassen. Es geht um das darunter.

Frage: Was für einen Router hast du?

FloBer431 commented 1 month ago

Jetzt funktioniert es, keine Ahnung was ich jetzt genau geändert habe, hab einmal alles nochmal gelöscht und neu erstellt.

Danke für eure Hilfe!

z-master42 commented 1 month ago

Wie gesagt, um ein Update aller Entitäten zu forcieren in der Zendure App auf die Batteriedetailübersichtsseite gehen und dort ein wenig verweilen.

FloBer431 commented 1 month ago

Wie gesagt, um ein Update aller Entitäten zu forcieren in der Zendure App auf die Batteriedetailübersichtsseite gehen und dort ein wenig verweilen.

Ja das hab ich gerade gemacht, Frage ist noch, wie oft aktuslierist das System jetzt? also wie "live" sind die Daten und was ist die Abfragerate?

z-master42 commented 1 month ago

Von bis. An für sich bei Werteänderung. Es gibt also kein periodisches Abfragen soweit ich das weiß.

FloBer431 commented 1 month ago

okay, danke dir

FloBer431 commented 1 month ago

Jetzt bin ich gerade auf ein weiteres Thema gestoßen, gerne würde ich in das HA Energie dashboard auch die Batterie einbinden. Dazu benötige ich ja die Werte Energie in Batterie und Energie aus Batterie. Dies sollten doch die Variablen "Output Pack Power" und "Input Pack Power" sein, diese dann mit einer Riemann Summenintegration und fertig nur leider liefern die beiden Werte absolut keine Daten, auch nicht beim Verweilen in der Batterieansicht. Ist das bekannt? Kann man was machen? image

z-master42 commented 1 month ago

Sind das die einzigen beiden? Bei mir haben die Daten.

Wie sieht die YAML aktuell aus?

FloBer431 commented 1 month ago

Ja sind eigentlich die einzigen beiden: image

FloBer431 commented 1 month ago

yaml sieht an der stelle so aus: image Output home power liefert aber werte

z-master42 commented 1 month ago

Hmm, kann dann eigentlich nur noch daran liegen, dass die if im value_template zuschlägt und dem Sensor quasi dauerhaft ne 0 verpasst. Was passiert, wenn du die if raus nimmst und auch das expire_after. Die beiden Sensoren also vom YAML Aufbau so sind wie Output Home Power?

FloBer431 commented 1 month ago

Sieht jetzt mal so aus im yaml: image Daten kommen jetzt an, sind aber alles andere als live, aber das ist allgemein aktuell sehr extrem bei mir, Akku hat gerade eben gewechselt von Laden auf Einspeisen, und das ganze war erst 3/4 Minuten später so in HA ersichtlich

FloBer431 commented 1 month ago

Die Daten: image live dazu aus der App: 125W aus Akku 0W in Akku

FloBer431 commented 1 month ago

Hmm, kann dann eigentlich nur noch daran liegen, dass die if im value_template zuschlägt und dem Sensor quasi dauerhaft ne 0 verpasst. Was passiert, wenn du die if raus nimmst und auch das expire_after. Die beiden Sensoren also vom YAML Aufbau so sind wie Output Home Power?

Was meinst du denn mit expire after if habe ich ja entfernt

z-master42 commented 1 month ago

Hmm, kann dann eigentlich nur noch daran liegen, dass die if im value_template zuschlägt und dem Sensor quasi dauerhaft ne 0 verpasst. Was passiert, wenn du die if raus nimmst und auch das expire_after. Die beiden Sensoren also vom YAML Aufbau so sind wie Output Home Power?

Was meinst du denn mit expire after if habe ich ja entfernt

U. a. Zeile 38 im letzten YAML Screenshot.

An der “Laufzeit" der Daten kann ich nichts ändern.

Das beide Entitäten eine Leistung anzeigen liegt daran, dass Zendure keine 0 (Watt) übermittelt. Die Entität bleibt auf dem letzten Wert stehen. Kannst du über Automatisierungen abfagen/korrigieren.

FloBer431 commented 1 month ago

Was macht das expire_after denn genau? Hast du dazu ein Beispiel, also zu so einer Automatisierung die das korigiert?

z-master42 commented 1 month ago

Was macht das expire_after denn genau? Hast du dazu ein Beispiel, also zu so einer Automatisierung die das korigiert?

Eigentlich sollte dass das Topic/den Wert nach 120 s für ungültig erklären. Funktioniert aber irgendwie nicht. Also macht es aktuell sichtbar gar nichts.

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_power
        state: "0"
action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: "0"
      topic: <appKey>/<deviceID>/state
      payload: "{\"packInputPower\":0}"
mode: single

Bitte prüfen ob die Sensorbezeichnungen so passen und deine Daten ergänzen.

FloBer431 commented 1 month ago

Werde ich mal so übernehmen und testen, danke.

Hab gerade noch einen Fehler im Batterieentladen gefunden, müsste so heißen oder: payload: "{\"outputPackPower\":0}"

z-master42 commented 1 month ago

Oh, ja. Muss es.

Settl3r commented 4 weeks ago

Ich habe seit vorgestern das Problem, dass Abends (zwischen 19 und 20 Uhr) zu Begin der Batterieentladung über den Hub das Dashboard auf einmal angibt, dass aus der Batterie angeblich ca. 1,4kWh entladen worden sind. Es schaut so aus als ob die Automation die Werte auf "0" zu setzen nicht mehr greift.

z-master42 commented 4 weeks ago

Bilder Dashboard und Verlauf Batterieladung und Entladung?

Settl3r commented 4 weeks ago

Anbei die Screenshots: Screenshot 2024-06-06 122636 Screenshot 2024-06-06 122858 Screenshot 2024-06-06 123008

z-master42 commented 4 weeks ago

Wie sieht der ...discharge_sum aus? Der müsste dann ja dauerhaft einen Wert angezeigt haben?

Sind die Entitätennamen in den Automatisierungen richtig?

Settl3r commented 4 weeks ago

Screenshot 2024-06-06 140626 image Da stehen bis um 19:30 über 100W drin. Die Automatisierung sieht so aus:

z-master42 commented 4 weeks ago

Heißen deine Sensoren auch so wie in der Automatisierung?

Also sensor.solarflow_pack_input_power? Oder heißt der sensor.solarflow_power_battery_discharge?

Offtopic: Du hast die Automatisierungen verkehrt herum benannt.

Settl3r commented 4 weeks ago

Stimmt, hab ich umbenannt, danke.

Der Sensor sensor.solarflow_power_battery_discharge ist ein Templatesensor dessen Quelle der Sensor sensor.solarflow_pack_input_power ist.

Daher sollte es doch passen, wenn die beiden Automationen sensor.solarflow_pack_input_power und sensor.solarflow_output_pack_power auf 0 zurücksetzen? Oder bringe ich hier was durcheinander?

z-master42 commented 4 weeks ago

Ja, wenn es den Sensoren noch gibt, dann reicht das. Die Automatisierungen greifen aber auch nur bei einem Wechsel von Laden zu Entladen und andersherum. D. h. dein Fall ist ja an für sich nicht abgedeckt...