Bonjour,
Je suis nouveau sur le forum et je découvre YAML et ESPHome.
J’ai des panneaux PV avec des micro onduleurs Enphase. Une intégration est dispo dans HA, les informations arrivent bien.
Avec un ESP8266 d1mini, je souhaite créer des conditions pour faire une sorte de routeur solaire. Dans un 1er temps, je tente de contrôler si mon importions (ENEDIS) est < à 110w auquel cas, ma production ‹ ECS › (eau chaude) est activé. Pour ça, j’ai une condition lambda. mais je ne parviens pas à la faire fonctionner.
# Entité de Enphase
- platform: homeassistant
name: "Consomation_instentane"
entity_id: 'sensor.envoy_2132004662_current_power_consumption'
- platform: homeassistant
name: "production_instentane"
entity_id: 'sensor.envoy_2132004662_current_power_production'
on_value:
- if:
condition: # Si la consommation moins la prod est <110w => ECS on
lambda: return (('sensor.envoy_2132004662_current_power_consumption' - 'sensor.envoy_2132004662_current_power_production') < 110);
then:
- switch.turn_on: 'Sortie_SSR_33v'
else:
- switch.turn_off: 'Sortie_SSR_33v'
Je fais les même genre de choses en ce moment avec ma nouvelle installation PV avec Enphase
Je pense que ton souci c’est que tu essayes d’utiliser l’entity_id dans ta lambda. Je ne crois pas que ce soit possible, elle ne sert qu’à faire le lien avec l’entité de HA.
Il va falloir que tu définisses un « id » pour chacune des tes entités pour t’en servir dans les logiques.
Un peu comme ça:
Bon sinon, chez moi j’ai préféré faire la logique côté HA, voir nodered, et laisser les relais juste faire des on/off. Ca permet d’ajouter plus de variables et de contrôler d’autres appareils si tu veux à termes évoluer et optimiser l’autoconsommation.
Par contre, avec cette solution (contrairement à un vrai routeur solaire) si tu dépasses tes 110w, tu alimentes ton ECS, mais dans ce cas, il n’utilisera pas seulement les 110W de surplus, mais bien toute la puissance de ton ECS donc si c’est un 2000w 1900w du réseau et 100w du PV
Quand je regarde les log, a quoi correspondent les numéros dans les tags? Il semble que la valeur de la consomation arrive aprés la production et du coup l’action du switch se fait trop tôt sans prendre en compte la conso
16:07:33 [D] [dallas.sensor:143]
'Temperature_ECS': Got Temperature=23.9°C
16:07:33 [D] [sensor:126]
'Temperature_ECS': Sending state 23.87500 °C with 1 decimals of accuracy
16:07:57 [D] [homeassistant.sensor:024]
'sensor.envoy_122132004662_current_power_production': Got state 985.00
16:07:57 [D] [sensor:126]
'production instentané Enphase': Sending state 985.00000 with 1 decimals of accuracy
16:07:57 [D] [switch:017]
'Sortie_SSR_33v' Turning OFF.
16:07:57 [D] [homeassistant.sensor:024]
'sensor.envoy_122132004662_current_power_consumption': Got state 1000.00
16:07:57 [D] [sensor:126]
'Consomation_instentané_Enphase': Sending state 1000.00000 with 1 decimals of accuracy
je pense avoir trouvé. Les valeurs retournées sont des ‹ float › et la condition était avec un int. De plus comme vous l’avez suggéré, AlexHass, j’ai créé un id et utilisé en 'id(id).state: