Ładowanie z fotowoltaiki - zrób to sam

to_masz

Posiadacz elektryka
Inspiracją do podzielenia się rozwiązaniem jest wątek o całkiem fajnym kompleksowym rozwiązaniu: https://forum.elektrowoz.pl/threads/ladowanie-z-fotowoltaiki.7033/. Dodatkową motywacją był post @nabrU w tym wątku (https://forum.elektrowoz.pl/threads/ladowanie-z-fotowoltaiki.7033/page-3#post-173103), który zwraca uwagę na istotne wyzwania. Dlatego dzielę się jak to u mnie działa.

Założenia ogólne:
  • PV wielkości > 3,5kWp - żeby mogło dać więcej niż zapotrzebowanie domu i najniższe ładowanie (5A * 230V * 3 fazy = 3450W lub 13A * 230V * 1 faza = 2990W - nie wiem czy cegła może dawać mniej i czy gra jest warta świeczki wtedy 🤔)
  • automatyzacja zrobiona w HomeAssistant
  • zintegrowany falownik lub licznik dający informację o produkcji PV i konsumpcji domu (albo w przypadku instalacji bez magazynu energii po prostu o eksporcie do sieci) 👉 u mnie falownik GoodWe raportuje to wszystko
  • zintegrowany Wallbox lub samochód udostępniający informację o mocy ładowania i pozwalający na sterowanie tą mocą 👉 u mnie integracja Tesla Wall Connector do odczytu i Tessie do ustawienia natężenia ładowania
#1 Nadprodukcja
Wyliczam sobie nadprodukcję PV takim helperem (Settings > Devices & Services > Helpers > Create helper > Template > Template a sensor).
state_class: measurement
unit_of_measurement: W
device_class: power
friendly_name: PV Energy Excess
Code:
{% set pv_power = states('sensor.pv_power') | float(0) %}
{% set house_consumption = states('sensor.house_consumption') | float(0) %}

{# air conditioning power #}
{#% set ac_power = states('sensor.shelly_em3_channel_a_power') | float(0) %#}
{% set ac_power = 0 %}

{# charger power #}
{% set current_a = states('sensor.tesla_wall_connector_phase_a_current') | float(0) %}
{% set current_b = states('sensor.tesla_wall_connector_phase_b_current') | float(0) %}
{% set current_c = states('sensor.tesla_wall_connector_phase_c_current') | float(0) %}
{% set voltage_a = states('sensor.tesla_wall_connector_napiecie_fazy_a') | float(0) %}
{% set voltage_b = states('sensor.tesla_wall_connector_napiecie_fazy_b') | float(0) %}
{% set voltage_c = states('sensor.tesla_wall_connector_napiecie_fazy_c') | float(0) %}
{% set power_a = voltage_a * current_a %}
{% set power_b = voltage_b * current_b %}
{% set power_c = voltage_c * current_c %}
{% set charger_power = (power_a + power_b + power_c) | round(2) %}

{% set deferrable_consumption = ac_power + charger_power %}
{% set net_consumption = house_consumption - deferrable_consumption %}
{% set pv_excess = pv_power - net_consumption %}

{{ [pv_excess, 0] | max | int }}
Wygląda to tak w dzień z lekkim zachmurzeniem - jest to energia, którą można rozporządzać (sprzedać, naładować magazyn energii, zużyć na chłodzenie klimą ALBO naładować samochód). Z powyższego szablonu można zobaczyć, że eksperymentowałem też z klimą, ale niestety nie miałem czasu tego dopracować (tak naprawdę bardzo opóźniona była reakcja sprężarki na zmianę parametrów którymi mogłem sterować - czyli w zasadzie na prędkość wentylatora w zakresie wyłączony-1-2-3).
1723400739910.png


#2 Sterowanie
  • automatyzacja odpalana jest co 30 sekund
  • automatyzacja działa tylko jeśli
    • samochód jest podłączony
    • ładowanie nie jest ustawione na 16A (taki myk, żeby można było w apce ustawić 16A i wiadomo, że samochód po prostu się naładuje tak szybko jak to możliwe)
    • encja z nadprodukcją się zmieniła
1723385795005.png
Cała automatyzacja
Code:
alias: Adjust Car Charger Power Based on PV Excess
description: ""
trigger:
  - platform: time_pattern
    seconds: /30
condition:
  - alias: Charger Not Disconnected
    condition: template
    value_template: "{{ states('sensor.charging') != 'disconnected' }}"
  - alias: Charge Current Not 16A
    condition: template
    value_template: "{{ states('number.charge_current') | int != 16 }}"
  - alias: Only Run if PV Excess Changed
    condition: template
    value_template: >
      {% set last_excess = states('sensor.pv_energy_excess') %} {% set
      previous_excess =
      state_attr('automation.adjust_car_charger_power_based_on_pv_excess',
      'last_excess') %} {% if previous_excess %}
        {{ last_excess != previous_excess }}
      {% else %}
        true
      {% endif %}
action:
  - variables:
      voltage_a: "{{ states('sensor.on_grid_l1_voltage') | float }}"
      voltage_b: "{{ states('sensor.on_grid_l2_voltage') | float }}"
      voltage_c: "{{ states('sensor.on_grid_l3_voltage') | float }}"
      average_voltage: "{{ (voltage_a + voltage_b + voltage_c) / 3 }}"
      excess_power: "{{ states('sensor.pv_energy_excess') | float }}"
      calculated_current: "{{ (excess_power / (average_voltage * 3)) | int }}"
  - alias: Determine Action Based on Calculated Current
    choose:
      - alias: If Calculated Current Greater Than or Equal to 5A
        conditions:
          - condition: template
            value_template: "{{ calculated_current >= 5 }}"
        sequence:
          - alias: Set Charging Current
            service: number.set_value
            target:
              entity_id: number.charge_current
            data:
              value: "{{ [calculated_current, 16] | min }}"
          - alias: Ensure Charger is On
            service: switch.turn_on
            target:
              entity_id: switch.charge
            data: {}
mode: single

Wcześniej miałem też wyłączanie ładowania jeśli prąd ładowania <5A. No, ale każda chmura wyłączała ładowanie, a np. po minucie się włączało - więc szybko z tego zrezygnowałem. Teraz w sumie akceptuję, że magazyn energii odda trochę energii przy okazji chmur. Ale myślę, że jakoś uśrednię/wygładzę wartość nadprodukcji, bo teraz tak to wygląda:
1723401318292.png
 

UseYbrain

Posiadacz elektryka
Dziękuję bardzo łaskawco!
 

daniel

Señor Meme Officer
Nie całkujesz godzinowo przepływu z siecią? Moim zdaniem tak naprawdę powinieneś dążyć, żeby godzinowy bilans z siecią był minimalnie dodatni. Lepiej oddać 0,05 kWh i niż pobrać 0,01 kWh. Kupujesz za 1zł, a sprzedajesz za 20 groszy (na przykład).
Jeśli chcę nie używać baterii to ustawiam inwerter na Discharge 1%. Wtedy wysyła mi stałe 70W do sieci i jest jakbym nie miał baterii. Musi być bardzo długo w tym trybie, żeby zszedł chociaż 1%.
 

to_masz

Posiadacz elektryka
Nie całkujesz godzinowo przepływu z siecią? Moim zdaniem tak naprawdę powinieneś dążyć, żeby godzinowy bilans z siecią był minimalnie dodatni. Lepiej oddać 0,05 kWh i niż pobrać 0,01 kWh. Kupujesz za 1zł, a sprzedajesz za 20 groszy (na przykład).
Jeśli chcę nie używać baterii to ustawiam inwerter na Discharge 1%. Wtedy wysyła mi stałe 70W do sieci i jest jakbym nie miał baterii. Musi być bardzo długo w tym trybie, żeby zszedł chociaż 1%.
To jest inny temat, który też leży rozgrzebany 🙃 po wakacjach pewnie będzie chwila, żeby go skończyć. Póki co magazyn sprzedaje tylko w porannym szczycie, a dopiero w najbliższych planach pauzowanie do południowego dołka.
Muszę rozpracować czy lepiej niedoładować magazyn, czy podładować auto w nocy, czy jak przewidzieć ile energii auto będzie potrzebowało, żeby nie spóźnić się z ładowaniem.

Orientujesz się czy teraz (po 1 lipca) to nadal jest okres 1h czy już 15 minut?
 

daniel

Señor Meme Officer
Póki co magazyn sprzedaje tylko w porannym szczycie, a dopiero w najbliższych planach pauzowanie do południowego dołka.
W wieczornym są lepsze ceny. ;)
Tylko trzeba wiedzieć czy następny dzień nie będzie pochmurny i zostawić tyle, żeby starczyło na śniadanie.
Teraz to nawet jak dzień jest pochmurny to moja PV daje 1kW. Twoja da połowę tego, ale to i tak na plus względem średniego zużycia domowego. Teraz to mamy tryb letni gdzie są nadwyżki. Na zimę to będziesz wyłączał. :p
Muszę rozpracować czy lepiej niedoładować magazyn, czy podładować auto w nocy, czy jak przewidzieć ile energii auto będzie potrzebowało, żeby nie spóźnić się z ładowaniem.
Staram się unikać przelewania z baterii do baterii. U mnie auto w ciągu dnia stoi pod domem, więc może się ładować prawie dowolnie. Jak coś sprzedać to wieczorem jak już.
Orientujesz się czy teraz (po 1 lipca) to nadal jest okres 1h czy już 15 minut?
To jest bardzo dobre pytanie. Publikują ceny co 15 minut, ale w ciągu godziny zegarowej są takie same. Jest taki plan, żeby było bilansowanie 15-minutowe, ale chyba taka zmiana ma dopiero wejść. Przynajmniej nie mówili o tym w Globenergia, a oglądam co tydzień. :p

Znalazłem: https://www.gramwzielone.pl/bez-kat...na-byc-wyceniana-co-15-minut-kiedy-tak-bedzie
Na razie rozliczają tylko Rynek Dnia Bieżącego co 15 minut. Rynek Dnia Następnego będzie od przyszłego roku.
- Obecnie w ramach paneuropejskiego projektu realizowanego przez giełdy (NEMO) oraz Operatorów Systemów Przesyłowych prowadzone są prace związane z uruchomieniem instrumentów 15-minutowych na RDN (SDAC), a ich uruchomienie planowane jest na pierwszą połowę 2025 r. zapewnił nas serwis prasowy TGE.
 

EPI Energia Invest

Zadomawiam się
To jest inny temat, który też leży rozgrzebany 🙃 po wakacjach pewnie będzie chwila, żeby go skończyć. Póki co magazyn sprzedaje tylko w porannym szczycie, a dopiero w najbliższych planach pauzowanie do południowego dołka.
Muszę rozpracować czy lepiej niedoładować magazyn, czy podładować auto w nocy, czy jak przewidzieć ile energii auto będzie potrzebowało, żeby nie spóźnić się z ładowaniem.

Orientujesz się czy teraz (po 1 lipca) to nadal jest okres 1h czy już 15 minut?
To jest okres 15min x 4/ godzinę.
Czyli w ciągu godziny są 4 okresy 15 minutowe z taką samą wartością.
 

Jaro_bwo

Zadomawiam się
Spoko spoko, ale można też skorzystać z dodatku do HA który ma fajny panel EVCC
 

Attachments

  • 179828089-6fbf6938-af1d-4620-85cd-c39e73dfb029.png
    179828089-6fbf6938-af1d-4620-85cd-c39e73dfb029.png
    88,7 KB · Liczba wyświetleń: 24

to_masz

Posiadacz elektryka
Spoko spoko, ale można też skorzystać z dodatku do HA który ma fajny panel EVCC
Wow, ekstra projekt 💚 UI super czytelny i gotowe do zintegrowanie prawie ze wszystkim co na rynku

Korzystasz z tego? Jaką masz ładowarkę?
 
Top