Git Product home page Git Product logo

Comments (8)

ajtudela avatar ajtudela commented on July 18, 2024

Buenas, antes del cambio de tarifa tenia un script para encender un termo eléctrico las tres horas antes de cambiar a punta. Ahora no sé cómo lo haré, la verdad. Pero te lo dejo por aquí por si te vale.

Primero con este script guardo en una entidad de tiempo la hora a la que encenderlo:

data_template:
  entity_id: input_datetime.waterheater_turn_on_hour
  time: >-
    {% set data = namespace(prices = [], average = 0, hour = 0) %}
    {% for i in range(0,10) %}
      {% set data.prices = data.prices + [state_attr("sensor.pvpc_dha","price_0" ~ i ~ "h")] %}
    {% endfor %}
    {% for i in range(10,24) %}
      {% set data.prices = data.prices + [state_attr("sensor.pvpc_dha","price_" ~ i ~ "h")] %}
    {% endfor %}
    {% set data.average = data.prices|sum / 24 %} 
    {% for price in data.prices %}
      {% if 9 < loop.index0 < 20 and price < data.average %}
        {%set data.hour = loop.index0 %}
      {% endif %}
    {% endfor %}
    {%set data.hour = data.hour * 3600 %}
    {% if is_state("binary_sensor.dst", "on") %}
      {{(data.hour-state_attr('input_datetime.waterheater_duration_summer','timestamp'))|timestamp_custom('%H:%M:%S', True)}}
    {% else %}
      {{(data.hour-state_attr('input_datetime.waterheater_duration_winter','timestamp'))|timestamp_custom('%H:%M:%S', True)}}
    {% endif %}
service: input_datetime.set_datetime

Con este segundo script guardo la hora de apagado:

data_template:
  entity_id: input_datetime.waterheater_turn_off_hour
  time: |-
    {% if is_state("binary_sensor.dst", "on")%}
      {{(state_attr('input_datetime.waterheater_turn_on_hour','timestamp') + state_attr('input_datetime.waterheater_duration_summer','timestamp'))|timestamp_custom('%H:%M:%S', False)}}
    {% else %}
      {{(state_attr('input_datetime.waterheater_turn_on_hour','timestamp') + state_attr('input_datetime.waterheater_duration_winter','timestamp'))|timestamp_custom('%H:%M:%S', False)}}
    {% endif %}
service: input_datetime.set_datetime

from aiopvpc.

djmuerteitm avatar djmuerteitm commented on July 18, 2024

Muchisimas gracias, voy a probarlo y te cuento, es precisamente para eso mismo para lo que lo quiero, para que el grueso del consumo del termo lo haga en las horas más baratas. Mil gracias :D

from aiopvpc.

ajtudela avatar ajtudela commented on July 18, 2024

De nada!

Si lo adaptas a la nueva tarifa, compártelo. Yo aún no sé en qué horario lo pondré :S

from aiopvpc.

azogue avatar azogue commented on July 18, 2024

Hola @djmuerteitm,

Hola! Estoy intentando crear una automatización en HA de forma que pueda utilizar el precio actual como condicionante para disparar acciones

Perdona, no entiendo el problema, el precio actual es, precisamente, el state del sensor! ¿por qué tienes q recurrir a un oscuro atributo de un sensor para coger el {{states.sensor.pvpc.state}} ??

Edit: para triggers o conditions de automatizaciones tienes triggers de estado, de estado numérico, y de plantilla. Puedes hacer el disparo de 1000 maneras :)

from aiopvpc.

pove avatar pove commented on July 18, 2024

Yo, aprovechando que tuve que poner el custom_component con el parche para la 2.0TD, he añadido un estado con el periodo de tarifa, y ahora puedo crear automatizaciones con un trigger basado en este periodo, que saltaría en Valle, Llana o Punta. Por ejemplo: para apagar el termo en punta (luego se puede encender en Valle o en periodos Llana):

platform: state
entity_id: sensor.pvpc
attribute: current_period
to: peak

@azogue, de hecho subí el código como pull-request, pero no consigo pasar los checks 😅

from aiopvpc.

djmuerteitm avatar djmuerteitm commented on July 18, 2024

Perdona, no entiendo el problema, el precio actual es, precisamente, el state del sensor! ¿por qué tienes q recurrir a un oscuro atributo de un sensor para coger el {{states.sensor.pvpc.state}} ??

Edit: para triggers o conditions de automatizaciones tienes triggers de estado, de estado numérico, y de plantilla. Puedes hacer el disparo de 1000 maneras :)

Buenas:

Te pego la automatización que tengo por si me estoy colando en algo, aunque la he copiado de otra que tengo para racionalizar el consumo, leyendo el contador de energia y apagando un relé, es decir, que es basada en estado numerico también y por algún motivo con el pvpc no me funciona:

Esta es la que trato de crear en base al precio del PVPC, que cuando esté por encima de cierto precio, apague el termo, y no funciona:

alias: Termo control-apagar
description: ''
trigger:

  • platform: numeric_state
    entity_id: sensor.pvpc
    above: '0.12'
    condition: []
    action:
  • service: switch.turn_off
    target:
    entity_id: switch.sonoff_1000241620
    mode: single

Es exactamente igual que otra que tengo para racionalizar el consumo y esa si que funciona.

from aiopvpc.

azogue avatar azogue commented on July 18, 2024

@djmuerteitm,

por algún motivo con el pvpc no me funciona:

Creo q sé qué puede estar pasando, ya que, aparentemente, en ese YAML para la automatización del switch no veo nada raro.

El sensor PVPC se actualiza únicamente en los cambios de hora, es decir, no emite ningún evento "STATE_CHANGED" en otros momentos.

Los triggers de estado o estado numérico sobre sensor.pvpc escuchan esos eventos, por lo que sólo pueden saltar en las horas en punto...

Por otro lado, los triggers numeric_state, creo, sólo se activan en los momentos donde el estado pasa de un lado al otro del threshold, por lo que, en el ejemplo, la automatización sólo puede saltar en la hora en punto donde el precio pase de <= 0,12 a > 0,12, y hasta que no vuelva a bajar de 0,12 y vuelva a subir no saltará otra vez...
No sé si es la mejor manera de controlar ese termo :)

from aiopvpc.

azogue avatar azogue commented on July 18, 2024

cerrando este issue, dado que no está relacionada con la librería, sino con cómo componer automatizaciones con disparo en cambios de estado 😝

from aiopvpc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.