Sure!
Zoals gezegd, heb ik de "average sensor" integratie via HACS geinstalleerd, om een "average" platform te kunnen gebruiken in de sensors sectie...
Ik heb alle onderdelen/secties van de configuration.yaml uiteen getrokken, elke sectie heeft zijn eigen yaml bestand:
In configuration.yaml :
YAML:
1
| sensor: !include sensors.yaml |
In sensors.yaml :
YAML:
1
2
3
4
5
6
| - platform: average
name: "Average Home Power Consumption"
duration: 15
entities:
- sensor.home_power_consumption
unique_id: average_home_power_consumption |
De "Home Power Consumption" sensor die hierboven is gebruikt voor deze average sensor, is in een Helper in HA in elkaar geklikt via de "Settings" -> "Devices & services" -> "Helpers". Ik heb een "Template" gekozen, met onderstaande template als waarde:
Django/Jinja:
1
2
3
| {{ (states('sensor.solar_system_active_power')|float
+ states('sensor.power_consumed')|float
- states('sensor.power_produced')|float)|float(0)|round(0) }} |
En nog eenzelfde "Template" helper voor de "Average Home Power Consumption to Solar Power Percent" sensor (het beestje moet een naam hebben toch?), met als state-template:
YAML:
1
| {{ states('sensor.average_home_power_consumption')|int(0)//40 }} |
Mijn PV omvormer heeft 4kW (4000W) als max. vermogen, en ( (iets / 4000) * 100 ) = ( iets / 40). De Python "//" operator pakt de modulus, dus het geheel aantal malen dat de deler in de noemer past. Oftewel, afgerond naar beneden...
Nu heeft deze laatste sensor altijd het percentage van het maximale PV vermogen wat mijn huis gemiddeld over de afgelopen 15 seconden vroeg. Deze kan dan naar de omvormer onder geschikte voorwaarden. Ik heb daartoe onderstaande "Automation" aangemaakt:
Django/Jinja:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| alias: Solar Power Loadbalancing
description: ""
trigger:
- platform: state
entity_id:
- sensor.average_power_consumption_to_solar_power_percent
for:
hours: 0
minutes: 0
seconds: 0
condition:
- condition: template
value_template: >-
{{ states('sensor.energy_price_with_handling')|float(0) < 0 and
states('sensor.energy_price_grand_total')|float(0) >= 0 and
is_state('sensor.solar_inverter_inverter_working_mode', '2') }}
action:
- service: number.set_value
target:
entity_id: number.saj_limit_power
data:
value: >
{{
states('sensor.average_power_consumption_to_solar_power_percent')|int(100)
}}
mode: single |
Deze Automation triggered elke keer als de "sensor.average_power_consumption_to_solar_power_percent" wijzigt, en stuurt de omvormer aan, als deze in "working_mode" 2 staat (voor mijn SAJ omvormer is dat de reguliere mode, als in: PV opbrengst produceren), *en* als de spotprijs + inkoopvergoeding negatief, maar de totaalprijs nog positief.
Ik heb nog een tweede Automation, die eens per uur kijkt (wanneer de spotprijs verandert), wat er moet gebeuren, en dat is een van de keuzes:
- 100% leveren (spotprijs + inkoopvergoeding > 0);
- loadbalancing inschakelen, ofwel stuur de omvormer aan met het huidige gewenste percentage (spotprijs + inkoopvergoeding < 0 *en* totaalprijs > 0);
- 0% leveren (totaalprijs incl. belastingen < 0);
Django/Jinja:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| alias: Solar Power Limit (Max/Limit/Off)
description: ""
trigger:
- platform: state
entity_id:
- sensor.nordpool_kwh_nl_eur_3_10_0
for:
hours: 0
minutes: 0
seconds: 3
condition:
- condition: state
entity_id: sensor.solar_inverter_inverter_working_mode
state: "2"
action:
- service: number.set_value
target:
entity_id: number.saj_limit_power
data:
value: >
{% if states('sensor.energy_price_with_handling')|float(0) >= 0 %} 100
{% elif states('sensor.energy_price_with_handling')|float(0) < 0 and
states('sensor.energy_price_grand_total')|float(0) >= 0 %} {{
states('sensor.average_power_consumption_to_solar_power_percent')|int(4)
}} {% elif states('sensor.energy_price_grand_total')|float(0) < 0 %} 0
{% else %} 100 {% endif %}
mode: single |
Dit alles zorgt bij mij voor een heel aardig werkende nul-op-meter modus wanneer de spotprijs + inkoopvergoeding negatief is, en vrijwel geen opbrengst als de totaalprijs ook negatief is (mijn omvormer wil niet helemaal naar 0%, maar blijft hangen rond de 20W productie
Onderstaande is van 1 mei j.l. toen tussen 11:00 en 13:00 uur en tussen 15:00 en 17:00 uur de spotprijs + inkoopvergoeding negatief was, maar de totaalprijs nog positief. Tussen 13:00 en 15:00 uur was ook de totaalprijs (flink) negatief. Je ziet dus dat ik in die periodes vrijwel op de 0 qua export zat, en tussen 13 en 15 uur alsnog import (want kreeg ik geld voor)...
[
Voor 5% gewijzigd door
Gameboy op 06-05-2024 16:03
. Reden: overbodige (en disabled) action verwijderd ]