Ayant fait un peu de php, je voudrai créer une fonction personnalisée
j’essaye de lister tous mes sources d’Energie et ce qu’elles consomment, pour la plupart j’ai des capteurs de puissance donc pas de soucis.
- Mais toutes mes lumières(ampoules ikea) ne possède pas de capteur. j’ai donc créer un sensor « light*_power » par lumière.
Pour éviter la redondance du code je voulais créer une fonction qui puisse me permettre de calculer la puissance de l’ampoule
def calculate_light_power(entity_id, wattage, lumens):
if is_state(entity_id, 'on'):
R = state_attr(entity_id, 'rgb_color')[0] / 255
G = state_attr(entity_id, 'rgb_color')[1] / 255
B = state_attr(entity_id, 'rgb_color')[2] / 255
I = state_attr(entity_id, 'brightness') / 255 * lumens
R_weight = 0.30
G_weight = 0.59
B_weight = 0.11
power = ((I / lumens) * wattage * (R * R_weight + G * G_weight + B * B_weight))
return round(power, 2)
else:
return 0
cette fonction (theorique) calcule la puissance a l’instant T de l’ampoule en prenant en compte sa puissance max , son intensite lumineuse, et pondéré suivant la couleur utilisée.
j’ai donc collé ce code dans un fichier (functions.py) dans un dossier config/python_scripts.
et j’ai mis dans mon fichier de configuration
python_script:
vu que j’ai 2 autres fichiers dans ce dossier, j’hésitais avec:
python_script: !include_dir_merge_list python_script/
apres dans mon fichier « /config/sensors/energy.yaml »
cuisinelight_power:
device_class: power
friendly_name: "puissance Lumière Cuisine"
unique_id: light_cuisine1
unit_of_measurement: W
icon_template: mdi:lightbulb
value_template: >-
{% set power = calculate_light_power('light.cuisinelight', 8.6, 806) %}
{{ power }}
Donc assez content de ma trouvaille, car si je met le contenu de ma fonction dans mon sensor , ca marche, mais le fait de vouloir creer une fonction pour pouvoir l’utilisé sur chaque entite lumiere, et bé ca marche pas, d’ou mon post
Merci de vos lumières…