Bonjour,
J’utilise l’Ecocompteur Legrand et je récupère mes données de puissance sur mes 5 circuits en W.
Jusqu’ici tout va bien … mais sur mon départ que j’ai appelé « Electromenager », j’ai des pics très importants.
Je n’arrive pas à résoudre ce problème niveau câblage ou autre et j’aimerais donc mettre une limite sur la valeur.
Par exemple : si Val>5000 je ne la prend pas en compte.
Pour lire la valeur du l’Ecocompteur j’utilise ceci:
- platform: command_line
name: EcoCompteur Electromenager
command: curl -s 'http://192.168.1.11/inst.json' | jq '.data5'
scan_interval: 2
unit_of_measurement: W
Comment faire pour limiter mes pics?
Merci de votre aide.
Damien
Ma configuration
version |
core-2023.4.5 |
installation_type |
Home Assistant OS |
dev |
false |
hassio |
true |
docker |
true |
user |
root |
virtualenv |
false |
python_version |
3.10.10 |
os_name |
Linux |
os_version |
6.1.24 |
arch |
x86_64 |
timezone |
Europe/Paris |
config_dir |
/config |
Avec ton module command_line
, ca vas etre compliquer.
Tu pourrais mettre ton curl | jq
dans un script bash et en bash tester si la valeur est > a 5000 , tu met 5000 (ou autre chose)
Mais, pour moi, c’est pas la bonne façon.
idéalement, tu remplace la platform command_line
et tu la remplace par le module restfull
dedans, tu pourrais utiliser les templates donc facilement remplacer les valeurs supperieur a 5000, comme dans cette exemple : RESTful Sensor - Home Assistant
Merci pour ta réponse, j’ai pas tout compris je commence juste sur HA, mais je vais essayer ce bout de code:
sensor:
- platform: rest
name: Ecocompteur
json_attributes:
- data1
- data2
- data3
- data4
- data5
resource: http://192.168.1.6/inst.json
value_template: '{{ value_json.Date_Time }}'
template:
- sensor:
- name: "Consommation pompe à chaleur"
state: "{{ state_attr('sensor.ecocompteur', 'data1') }}"
unit_of_measurement: W
device_class: power
state_class: measurement
- name: "Consommation machine à laver"
state: "{{ state_attr('sensor.ecocompteur', 'data2') }}"
unit_of_measurement: W
device_class: power
Que j’ai trouvé ici :Eco compteur LEGRAND - #18 par jpty
Après j’aimerais faire un test de ce type:
if(value < MIN)
return MIN;
else if(value > MAX)
return MAX;
else
return value;
Bonsoir,
Bon je n’arrive à rien … est-ce que quelqu’un à un exemple je galère vraiment.
merci
j’ai essayé comme ceci mais ça ne fonctionne pas:
- platform: template
sensors:
conso_electromenager:
friendly_name: 'EcoCompteur Electromenager Lim'
entity_id: sensor.conso_electromenager
unit_of_measurement: "W"
value_template: >
{% set PUI_EM = states('sensor.ecocompteur_electromenager') %}
{% if is_state(PUI_EM, < '5999')}
PUI_EM
{% else %}
0
{% endif %}
Esseye plutot comme ca :
{% if PUI_EM < 5999 %}
{{ PUI_EM }}
{% else %}
0
{% endif %}
Test dans les outils de développement, c’est fait pour ça
merci ça marche… en effet j’ai pas encore le reflex d’utiliser les outils de développement.
j’ai juste dû utiliser la valeur directement :
{% set PUI_EM = states('sensor.ecocompteur_electromenage') %}
{% if states("sensor.ecocompteur_electromenager") | float < 5999 %}
{{ states("sensor.ecocompteur_electromenager") | float}}
{% else %}
0
{% endif %}
Avec PUI_EM dans le IF ça ne fonctionne pas .
en tout cas merci
Si-si ça peut aussi fonctionné dans le if, il te manque juste des parenthèses