Open DavidNetron opened 1 year ago
To řeší hodnota sensor.current_spot_electricity_hour_order
1
je nejlevnější atd.
Tohle by mělo fungovat:
alias: sepnout rele integrovane v HA při nejnižší ceně
trigger:
- platform: state
entity_id:
- sensor.current_spot_electricity_hour_order
condition: []
action:
- if:
- condition: numeric_state
entity_id: sensor.current_spot_electricity_hour_order
below: 2
then:
- type: turn_on
entity_id: #relé, které chceš zapnout
else:
- type: turn_off
entity_id: #zajistí vypnutí pokud neplatí podmínka výše
enabled: true
mode: single
Dobrý den, díky za super integraci. Mám dotaz k automatizaci: pro začátek bych chtěl vybíjet baterii do sítě ráno, kdy je špička většinou ve všední den v 8 nebo 9 hodin. Dá se nějak vytvořit senzor current_spot_electricity_hour_order ale jen pro dopoledne? Tím bych vybral nejvyšší cenu dopoledne. Později bych využil to samé pro nabíjení a podobný senzor ale pro odpoledne. Tím bych vybral nenižší cenu odpoledne/večer. Děkuji moc
@Rotif Tady je příklad, jak najít nejlevnější hodinu v zadaném intervalu, to by Vám mohlo pomoct:
Díky za okamžitou reakci. Měl jsem dočíst popis až do konce, nicméně vyzkouším.
Senzory chodí bezvadně. Jde něco podobného udělat po 13:00 i pro příští den? Dík
Nahradil jsem {# Get value for that hour #} {% set value = states.sensor.current_spot_electricity_hour_order.attributes.get(hour_dt.isoformat()) %} tímto {# Get value for that hour #} {% set value = states.sensor.tomorrow_spot_electricity_hour_order.attributes.get(hour_dt.isoformat()) %} ale nechodí mi to. Senzor sensor.tomorrow_spot_electricity_hour_order není od 0:00 do 13:00 k dspozici a od 13:00 do 24:00 má hodnotu neznámé.
@Rotif
Takhle nějak by to asi šlo:
{# Define your intervals here as tuples (hour starting the interval, hour ending the interval (excluded)) #}
{% set intervals = [
(0, 8),
(8, 16),
(16, 24),
] %}
{# We need to use namespace so we can write into it in inner cycle #}
{% set min = namespace(price=None, dt=None, cheapest_hours=[]) %}
{% set cheapest_hours = [] %}
{% for interval in intervals %}
{# Reset min price from previous runs #}
{% set min.price = None %}
{# Go through all the hours in the interval (end excluded) and find the hour with lowest price #}
{% for i in range(interval[0], interval[1]) %}
{# Get datetime of current hour in current interval #}
{% set hour_dt = (now() + timedelta(hours=24)).replace(hour=i, minute=0, second=0, microsecond=0) %}
{# Get value for that hour #}
{% set value = states.sensor.tomorrow_spot_electricity_hour_order.attributes.get(hour_dt.isoformat()) %}
{# value is tuple (order, price), we'll use the price #}
{% set price = value[1] %}
{# Min price is not set or is higher than price of current hour => store the min price and hour #}
{% if min.price is none or price < min.price %}
{% set min.price = price %}
{% set min.dt = hour_dt %}
{% endif %}
{% endfor %}
{# Store cheapest hour in current interval #}
{% set min.cheapest_hours = min.cheapest_hours + [min.dt.hour] %}
{% endfor %}
{# use this to get the cheapest hours #}
{{ min.cheapest_hours }}
Vypisuje to, která hodina v zadaném intervalu je nejlevnější. sensor.tomorrow_spot_electricity_hour_order
má sice neznámou hodnotu, ale atributy fungují (když jsou k dispozici).
Dík, chodí
Dobrý den. Integrace je super. Mam jednoduché zadání. Potřebuji sepnout rele integrovane v HA při nejnižší ceně . . Pokouším se o to už nějakou dobu, ale jsem začátečník. Mohl bych poprosit o nějaký jednoduchý vzor takové automatizace ? Tuším že se to nastaví skrze známky 1-24 jako atribut, ale stále mě to nechodí. Děkuji velice za odpověď