Home Assistant + Sofar ME3000SP integration: Vreemd gedrag

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Ik ben ondertussen ook al een tijdje bezig met Home Assistant. Uiteindelijk is het gelukt om via HACS een niet standaard integration te downloaden voor mijn inverter te monitoren met als doel mijn thuis batterij inzichtelijk te krijgen.
Ik heb in .yaml files moeten prutsen om het geheel uberhaupt aanspreekbaar te krijgen, maar nu zie ik sinds gisteren dat het 'connected' is.
Het vreemde van het verhaal is dat ik alleen mijn gegevens kan zien als ik via settings => Devices & services => "entities" ga kijken. Daar zie ik dan vervolgens 51 entities staan die allemaal 'status '-' hebben: Afbeeldingslocatie: https://i.imgur.com/M4pkzAt.png
Maar als ik dan klik op een van de entities, zie ik wel de data:
Afbeeldingslocatie: https://i.imgur.com/ex5QbHq.png
Bij die integration is bijvoorbeeld ook een battery charge en battery discharge counter bij gemaakt voor in het energy dashboard, maar daar komt geen data in, buiten als ik het op bovenstaande manier doe.
Zie ik iets simpels over het hoofd? Scheelt er iets met de integration zelf?

Beste antwoord (via X-DraGoN op 13-01-2023 11:11)


  • Septillion
  • Registratie: Januari 2009
  • Nu online

Septillion

Moderator Wonen & Mobiliteit
Mm, dat is wel erg jammer en eigenlijk ook wel heel raar. Wel al gaan lopen rekenen maar niet gewoon zeggen wat er in / uit je accu is gegaan :/ Misschien kan je met die getallen terugrekenen? Want wat ik zeg, Rieman geeft je weer een extra onnauwkeurigheid. En energieverbruik tijdens een herstart of crash kan je ook niet terug halen.

Probleem in je templates is dat je simpelweg niet dezelfde entity naam gebruikt ;) sensor.home_battery_charge_discharge_power zie ik niet in je screenshots. Bedoel je sensor.solarman_battery_charge_discharge_power?
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- sensor:
    - name: "Battery Charge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-plus
      state: >-
        {% set e = states('sensor.solarman_battery_charge_discharge_power') %}
        {{ e|float(0)|abs if e|float(0) >= 0 else 0 }}
      availability: >-
        {{ states('sensor.solarman_battery_charge_discharge_power')|is_number }}
    - name: "Battery Discharge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-minus
      state: >-
        {% set e = states('sensor.solarman_battery_charge_discharge_power') %}
        {{ e|float(0)|abs if e|float(0) <= 0 else 0 }}
      availability: >-
        {{ states('sensor.solarman_battery_charge_discharge_power')|is_number }}

Alle reacties


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Nu online

Septillion

Moderator Wonen & Mobiliteit
Heb je ze wel toegevoegd aan het energy dashboard? Ze komen daar niet vanzelf... Ook duurt het daarna nog ongeveer een uur voor je data gaat zien.

Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Ja, ik heb de entities direct toegevoegd in het energy Dashboard:
Afbeeldingslocatie: https://i.imgur.com/TE47BJy.png
Maar na meer als 24u, zie ik daar nog steeds niets in staan.
Nog een ander idee wat de oorzaak zou kunnen zijn?

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Nu online

Septillion

Moderator Wonen & Mobiliteit
Die twee errors lijkt me een goed begin om naar te kijken. Je lijkt daar ook andere entities te gebruiken dan je in je eerste plaatje laat zien. Die beginnen allemaal met 'solarman'.

Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Ik heb nu de juiste sensors gezet en daar van een template gemaakt om een riemann calculatie op te kunnen gaan doen:

Afbeeldingslocatie: https://i.imgur.com/0zwhmAe.png
Maar dan krijg ik de volgende fout in de log:

code:
1
2
3
4
TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{% if states('sensor.solarman_battery_charge_discharge_power')|float >= 0 %} {{ states('sensor.solarman_battery_charge_discharge_power') }} {% else %} 0 {% endif %}' but no default was specified') while processing template 'Template("{% if states('sensor.solarman_battery_charge_discharge_power')|float >= 0 %} {{ states('sensor.solarman_battery_charge_discharge_power') }} {% else %} 0 {% endif %}")' for attribute '_attr_native_value' in entity 'sensor.battery_charge_power'
09:35:09 – (ERROR) helpers/template_entity.py - message first occurred at 09:35:09 and shows up 2 times
Error while processing template: Template("{% if states('sensor.solarman_battery_charge_discharge_power')|float >= 0 %} {{ states('sensor.solarman_battery_charge_discharge_power') }} {% else %} 0 {% endif %}")
09:35:09 – (ERROR) helpers/template.py - message first occurred at 09:35:09 and shows up 2 times

[ Voor 0% gewijzigd door Septillion op 10-01-2023 20:59 ]


Acties:
  • 0 Henk 'm!

  • Slinkos
  • Registratie: Januari 2012
  • Laatst online: 09-06 21:34
Ik zie in je screenshot van je energy dashboard heel andere namen dan in je template. Kan je via developer tools > states eens laten zien welke sensoren je nou precies hebt?

Aangeboden: MHI Airco Wifi controller (MHI-AC-Ctrl) (Local control)


Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Zie de screenshot:
Afbeeldingslocatie: https://i.imgur.com/EsuhQ87.png

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Nu online

Septillion

Moderator Wonen & Mobiliteit
Yep, laat de alle sensoren van de integratie eens even zien. Liefst zowel onder de integratie als in de dev tools waar we makkelijk zowel entity ID en friendly name kunnen zien.

Want heb je niet gewoon een echte energy sensor? Rieman gaat namelijk altijd maar een benadering zijn.

PS Screenshots van code is aardig snelle manier om mensen weg te jagen ;) Post gewoon code (netjes in yaml-code tags).

Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Er zijn 51 sensoren, dus heel veel screenshots
Volgens mij zit er geen échte energy sensor tussen:
Afbeeldingslocatie: https://i.imgur.com/0lZ5ny7.png
Afbeeldingslocatie: https://i.imgur.com/zQxKEg3.png
Afbeeldingslocatie: https://i.imgur.com/tBCGa9o.png
Afbeeldingslocatie: https://i.imgur.com/hORMW25.png
Afbeeldingslocatie: https://i.imgur.com/ggSIhNA.png
Afbeeldingslocatie: https://i.imgur.com/mSfxfK2.png
Afbeeldingslocatie: https://i.imgur.com/nMIaw48.png
Afbeeldingslocatie: https://i.imgur.com/2eXdq5c.png
Afbeeldingslocatie: https://i.imgur.com/wzwhVTq.png
Afbeeldingslocatie: https://i.imgur.com/uGsA5hP.png
Afbeeldingslocatie: https://i.imgur.com/0dLrJn5.png

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Nu online

Septillion

Moderator Wonen & Mobiliteit
Ik zie sensor.solarman_daily_consuption en sensor.solarman_daily_generation. Die klinken mij als wat je wilt hebben.

Daarnaast zie ik nog sensor.solarman_daily_power_bought en sensor.solarman_daily_power_sold maar dat is denk ik wat de accu al berekend met je P1 en dus wat het netto van het net doet. Overigens is dat wel echt een error in de integratie daar het geen power (wat je meet in W of kW) maar energy daar de unit kWh is :/

Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Spijtig genoeg zijn ze dat niet, die sensor.solarman_daily_consuption en sensor.solarman_daily_generation. De inverter ziet ook wat er binnenkomt van de zonnepanelen en gaat die waardes gaat hij weergeven in sensor.solarman_daily_generation. De sensor.solarman_daily_consumption gaat dan weer over het totale energie verbruik van het hele huis wat hij in de gaten houdt via CT clamps.
Dus, als ik wil zien wat er in de batterijen gaat, moet ik dat berekenen volgens mij (al is het een benadering)
Daarmee was ik begonnen met:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- sensor:
    - name: "Battery Charge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-plus
      state: >
        {% if states('sensor.home_battery_charge_discharge_power')|float >= 0 %}
          {{ states('sensor.home_battery_charge_discharge_power') }}
        {% else %}
          0
        {% endif %}
    - name: "Battery Discharge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-minus
      state: >
        {% if states('sensor.home_battery_charge_discharge_power')|float < 0 %}
          {{ -1 * states('sensor.home_battery_charge_discharge_power')|float }}
        {% else %}
          0
        {% endif %}

Maar dat levert dus die fout op die ik hier boven al postte.

[ Voor 0% gewijzigd door Septillion op 11-01-2023 08:51 ]


Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
De fout gaat weg als ik bij de float een (0) zet en dus een default waarde meegeef:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- sensor:
    - name: "Battery Charge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-plus
      state: >
        {% if states('sensor.home_battery_charge_discharge_power')|float(0) >= 0 %}
          {{ states('sensor.home_battery_charge_discharge_power') }}
        {% else %}
          0
        {% endif %}
    - name: "Battery Discharge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-minus
      state: >
        {% if states('sensor.home_battery_charge_discharge_power')|float(0) < 0 %}
          {{ -1 * states('sensor.home_battery_charge_discharge_power')|float(0) }}
        {% else %}
          0
        {% endif %}


Van HA krijg ik dan het volgende in Developers tools => Templates:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- sensor:
    - name: "Battery Charge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-plus
      state: >
        
          unknown
        
    - name: "Battery Discharge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-minus
      state: >
        
          0

Ik vermoed dat ik zal moeten wachten tot er effectief iets in de batterij komt; want nu is hij leeg.

[ Voor 0% gewijzigd door Septillion op 11-01-2023 08:52 ]


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Nu online

Septillion

Moderator Wonen & Mobiliteit
Mm, dat is wel erg jammer en eigenlijk ook wel heel raar. Wel al gaan lopen rekenen maar niet gewoon zeggen wat er in / uit je accu is gegaan :/ Misschien kan je met die getallen terugrekenen? Want wat ik zeg, Rieman geeft je weer een extra onnauwkeurigheid. En energieverbruik tijdens een herstart of crash kan je ook niet terug halen.

Probleem in je templates is dat je simpelweg niet dezelfde entity naam gebruikt ;) sensor.home_battery_charge_discharge_power zie ik niet in je screenshots. Bedoel je sensor.solarman_battery_charge_discharge_power?
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- sensor:
    - name: "Battery Charge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-plus
      state: >-
        {% set e = states('sensor.solarman_battery_charge_discharge_power') %}
        {{ e|float(0)|abs if e|float(0) >= 0 else 0 }}
      availability: >-
        {{ states('sensor.solarman_battery_charge_discharge_power')|is_number }}
    - name: "Battery Discharge Power"
      state_class: "measurement"
      device_class: "power"
      unit_of_measurement: "kW"
      icon: mdi:battery-minus
      state: >-
        {% set e = states('sensor.solarman_battery_charge_discharge_power') %}
        {{ e|float(0)|abs if e|float(0) <= 0 else 0 }}
      availability: >-
        {{ states('sensor.solarman_battery_charge_discharge_power')|is_number }}

Acties:
  • +2 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Bedankt voor je werk @Septillion
Jouw splitsing van de gegevens heeft uiteindelijk geleid tot de oplossing

YAML:
1
2
3
4
5
6
7
8
9
sensor:
  - platform: integration
    source: sensor.battery_charge_power
    name: battery_charge_energy
    round: 2
  - platform: integration
    source: sensor.battery_discharge_power
    name: battery_discharge_energy
    round: 2

Bovenstaande gebruik ik dan vervolgens op het in het energy dashboard te krijgen

Acties:
  • 0 Henk 'm!

  • Overlord79
  • Registratie: Januari 2021
  • Laatst online: 19-01-2024
X-DraGoN schreef op vrijdag 13 januari 2023 @ 11:11:
Bedankt voor je werk @Septillion
Jouw splitsing van de gegevens heeft uiteindelijk geleid tot de oplossing

YAML:
1
2
3
4
5
6
7
8
9
sensor:
  - platform: integration
    source: sensor.battery_charge_power
    name: battery_charge_energy
    round: 2
  - platform: integration
    source: sensor.battery_discharge_power
    name: battery_discharge_energy
    round: 2

Bovenstaande gebruik ik dan vervolgens op het in het energy dashboard te krijgen
Ik heb net dezelfde omvormer! Maar veel minder kaas gegeten van het technische… Hoe heb je t voor elkaar gekregen?

Acties:
  • 0 Henk 'm!

  • X-DraGoN
  • Registratie: Juli 2005
  • Laatst online: 15:29
Overlord79 schreef op zondag 3 december 2023 @ 20:41:
[...]


Ik heb net dezelfde omvormer! Maar veel minder kaas gegeten van het technische… Hoe heb je t voor elkaar gekregen?
Door veel te prutsen en er veel tijd in te steken, maar heb je een specifieke vraag, dan stel je ze maar.
Pagina: 1