Bonjour,
À l’intention des nouveaux utilisateurs de Home Assistant, ainsi que de ceux qui effectuent la transition de Jeedom à Home Assistant et pour tous les autres…
Je vais faire une copie de mon fichiers yaml sur ce topic.
Tout d’abord, je tiens à préciser que je ne suis pas programmeur, mais plutôt un bricoleur. J’ai puisé de nombreuses informations sur ce forum, ainsi que sur celui de Jeedom et le forum Construire. Il convient également de noter que Zenisun n’existe plus en raison d’une décision judiciaire ayant entraîné sa liquidation.
Il est nécessaire d’attribuer une adresse IP fixe depuis la box, ce qui dépend de la box ainsi que du fournisseur.
Merci à:MikeBZH44,bart40140,CrottyFr,golfvert,Chris73 et d’un autre forum à Aior et WInd06
Si vous avez un problème de maintenance avec votre pergola, vous pourrez glaner des informations pour la réparer vous même sur le site forum construire https://www.forumconstruire.com/groupes/468913_zenisun.php ou https://www.forumconstruire.com/construire/topic-425853-pergola-bioclimatique-domotique.php ou https://www.forumconstruire.com/recits/recit-40583.php
Ma pergola fonctionne avec une automatition qui vérifie la position du soleil par rapport à ma résidence ainsi que les données de ma station météorologique Netatmo concernant la température et les précipitations. Si vous souhaitez recevoir ce fichier au format YAML, n’hésitez pas à me le faire savoir.
Tout d’abord, avant de me rendre au travail, je vous prie de trouver ci-joint mon fichier YAML. Il est impératif que vous remplaciez, à côté de chaque ligne, l’adresse IP par la vôtre, en veillant à modifier uniquement la partie 192.168.0.100 ; le reste doit demeurer inchangé.
Exemple "http://192.168.0.100/zns.cgi?cmd=d&p=os"
par "http://192.168.1.25/zns.cgi?cmd=d&p=os"
Quelques coquilles se cachent dans mes codes des slider. Impossible pour le moment d’éteindre correctement les lumières ou de fermer complètement le lames. La seule solution est d’utiliser un bouton off à part.
La partie lumière (fonctionnent pas correctement)
light:
- platform: template
lights:
slider_pergola:
friendly_name: "slider pergola"
unique_id: binary_sensor.pergola_slider
level_template: "{{ states('sensor_pergola_position des lames_mot0')|int(0) }}"
value_template: >-
{% if (states('sensor_pergola_position des lames_mot0')|int(0)) == 0 %}
off
{% else %}
on
{% endif %}
icon_template: >-
{% if (states('sensor_pergola_position des lames_mot0')|int(0)) == 0 %}
mdi:lightbulb-off
{% else %}
mdi:lightbulb-on
{% endif %}
turn_on:
action: rest_command.pergola_slider
data:
pwm: 100
turn_off:
action: rest_command.pergola_slider
data:
pwm: 0
set_level:
action: rest_command.pergola_slider
data:
pwm: "{{ brightness }}"
- platform: template
lights:
pergola_lumiere:
unique_id: "Lumière pergola dimmer"
level_template: "{{ states.sensor.pergola_dimmer.state|int }}"
value_template: "{{ states.sensor.pergola_dimmer.state|int > 0 }}"
turn_on:
- action: rest_command.pergola_set_light_on
- action: homeassistant.update_entity
entity_id: sensor.pergola_dimmer
turn_off:
- action: rest_command.pergola_set_light_off
- action: homeassistant.update_entity
entity_id: sensor.pergola_dimmer
set_level:
- action: rest_command.pergola_set_brightnesslevel
data:
brightness: "{{ brightness }}"
- action: homeassistant.update_entity
entity_id: sensor.pergola_dimmer
La partie sensor:
sensor:
- platform: rest
resource: "http://192.168.0.100/zns.cgi?cmd=d&p=os"
name: light_sensor_pergola_white
unique_id: binary_sensor.light_pergola_white
scan_interval: 5
value_template: "{{ value_json['root']['gpo6'].split(';')[0] }}"
- platform: rest
resource: "http://192.168.0.100/zns.cgi?cmd=d&p=os"
name: sensor_pergola_position des lames_mot0
unique_id: binary_sensor.sensor_pergola_position des lames_mot0
scan_interval: 5
value_template: "{{ value_json['root']['Mot0'].split(';')[0] }}"
- platform: rest
resource: "http://192.168.0.100/zns.cgi?cmd=d&p=ios"
name: sensor_pergola_temp inter
unique_id: binary_sensor.sensor_pergola_temp inter
scan_interval: 600
value_template: "{{ value_json['root']['Temp'].split(';')[0] }}"
- platform: rest
resource: "http://192.168.0.100/zns.cgi?cmd=d&p=ios"
name: sensor_pergola_conso
unique_id: binary_sensor.sensor_pergola_conso
scan_interval: 600
value_template: "{{ value_json['root']['VDC2'].split(';')[0] }}"
- platform: rest
resource: "http://192.168.0.100/zns.cgi?cmd=d&p=ios"
name: sensor_pergola_mode
unique_id: binary_sensor.sensor_pergola_mode
scan_interval: 10
value_template: "{{ value_json['root']['user'].split(';')[0] }}"
- platform: template
sensors:
pergola_mode_display:
unique_id: "pergola_mode_display" # Identifiant unique pour ce capteur
friendly_name: "Affichage Mode Pergola"
value_template: >-
{% set mode = states('sensor.sensor_pergola_mode') | int %}
{% if mode == 4 %}
Ombrage Mini (4)
{% elif mode == 8 %}
Mode Hivernage (8)
{% elif mode == 1 %}
Fermeture si Pluie (1)
{% elif mode == 2 %}
Suivi Solaire (2)
{% else %}
Mode inconnu
{% endif %}
rest_command:
pergola_set_rain_off:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (0 | int *1) + (is_state('binary_sensor.pergola_suntracking','on') | int *2) + (is_state('binary_sensor.pergola_shade','on') | int *4) + (is_state('binary_sensor.pergola_winter','on') | int *8) }}
method: get
pergola_set_rain_on:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (1 | int *1) + (is_state('binary_sensor.pergola_suntracking','on') | int *2) + (is_state('binary_sensor.pergola_shade','on') | int *4) + (is_state('binary_sensor.pergola_winter','on') | int *8) }}
method: get
pergola_set_suntracking_off:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (is_state('binary_sensor.pergola_rain','on') | int *1) + (0 | int *2) + (is_state('binary_sensor.pergola_shade','on') | int *4) + (is_state('binary_sensor.pergola_winter','on') | int *8) }}
method: get
pergola_set_suntracking_on:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (is_state('binary_sensor.pergola_rain','on') | int *1) + (1 | int *2) + (is_state('binary_sensor.pergola_shade','on') | int *4) + (is_state('binary_sensor.pergola_winter','on') | int *8) }}
method: get
pergola_set_winter_off:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (is_state('binary_sensor.pergola_rain','on') | int *1) + (is_state('binary_sensor.pergola_suntracking','on') | int *2) + (is_state('binary_sensor.pergola_shade','on') | int *4) + (0 | int *8) }}
method: get
pergola_set_winter_on:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (is_state('binary_sensor.pergola_rain','on') | int *1) + (is_state('binary_sensor.pergola_suntracking','on') | int *2) + (is_state('binary_sensor.pergola_shade','on') | int *4) + (1 | int *8) }}
method: get
pergola_set_motorlevel:
url: http://192.168.0.100/zns.cgi?cmd=m&m=1&p={{ (((position * states.sensor.pergola.attributes['Mot0'].split(';')[2]|int) * states.sensor.pergola.attributes['Mot0'].split(';')[1]|int)/100) | round(0) }}
method: get
pergola_set_motorlevel_close:
url: http://192.168.0.100/zns.cgi?cmd=m&m=1&p={{ states.sensor.pergola.attributes['Mot0'].split(';')[1]| int }}
method: get
pergola_set_motorlevel_open:
url: http://192.168.0.100/zns.cgi?cmd=m&m=1&p=0
method: get
pergola_set_sundelay:
url: http://192.168.0.100/zns.cgi?cmd=u&p=4&v={{ urlInput | round(0) }}
method: get
pergola_set_shade_off:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (is_state('binary_sensor.pergola_rain','on') | int *1) + (is_state('binary_sensor.pergola_suntracking','on') | int *2) + (0 | int *4) + (is_state('binary_sensor.pergola_winter','on') | int *8) }}
method: get
pergola_set_shade_on:
url: http://192.168.0.100/zns.cgi?cmd=u&p=3&v={{ (is_state('binary_sensor.pergola_rain','on') | int *1) + (is_state('binary_sensor.pergola_suntracking','on') | int *2) + (1 | int *4) + (is_state('binary_sensor.pergola_winter','on') | int *8) }}
method: get
pergola_set_brightnesslevel:
url: http://192.168.0.100/zns.cgi?cmd=l&o=64&p={{ brightness }}
method: GET
pergola_set_light_off:
url: http://192.168.0.100/zns.cgi?cmd=l&o=64&p=0
method: GET
pergola_set_light_on:
url: http://192.168.0.100/zns.cgi?cmd=l&o=64&p=25
method: GET
pergola_set_time:
url: http://192.168.0.100/zns.cgi?cmd=u&p=0&v={{ utcnow().strftime("%s") | timestamp_utc() }}
method: GET
pergola_set_latitude:
url: http://192.168.0.100/zns.cgi?cmd=f&p=41&v=7.480043
method: GET
pergola_set_longitude:
url: http://192.168.0.100/zns.cgi?cmd=f&p=42&v=48.123057
method: GET
pergola_set_orientation:
url: http://192.168.0.100/zns.cgi?cmd=u&p=10&v=235
method: GET
La partie switch:
switch:
- platform: template
switches:
pergola_switch_rain:
- platform: template
switches:
pergola_switch_rain:
unique_id: "Pergola: fermeture si pluie"
value_template: "{{ is_state('input_boolean.pergola_rain', 'on') }}"
turn_on:
- action: rest_command.pergola_set_rain_on
- action: input_boolean.turn_on
entity_id: input_boolean.pergola_rain
turn_off:
- action: rest_command.pergola_set_rain_off
- action: input_boolean.turn_off
entity_id: input_boolean.pergola_rain
pergola_switch_suntracking:
unique_id: "Pergola: suivi solaire"
value_template: "{{ is_state('input_boolean.pergola_suntracking', 'on') }}"
turn_on:
- action: rest_command.pergola_set_suntracking_on
- action: input_boolean.turn_on
entity_id: input_boolean.pergola_suntracking
turn_off:
- action: rest_command.pergola_set_suntracking_off
- action: input_boolean.turn_off
entity_id: input_boolean.pergola_suntracking
pergola_switch_shade:
unique_id: "Pergola: ombrage minimum"
value_template: "{{ is_state('input_boolean.pergola_shade', 'on') }}"
turn_on:
- action: rest_command.pergola_set_shade_on
- action: input_boolean.turn_on
entity_id: input_boolean.pergola_shade
turn_off:
- action: rest_command.pergola_set_shade_off
- action: input_boolean.turn_off
entity_id: input_boolean.pergola_shade
pergola_switch_winter:
unique_id: "Pergola: hivernage"
value_template: "{{ is_state('input_boolean.pergola_winter', 'on') }}"
turn_on:
- action: rest_command.pergola_set_winter_on
- action: input_boolean.turn_on
entity_id: input_boolean.pergola_winter
turn_off:
- action: rest_command.pergola_set_winter_off
- action: input_boolean.turn_off
entity_id: input_boolean.pergola_winter
command_line:
- switch:
name: "button Lumière de la Pergola 100 %"
unique_id: binary_sensor.Lumière de la Pergola 100 %
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=l&o=64&p=255"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "button Lumière de la Pergola 50 %"
unique_id: binary_sensor.Lumière de la Pergola 50 %
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=l&o=64&p=130"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "button Lumière de la Pergola OFF"
unique_id: binary_sensor.Lumière de la Pergola OFF
command_on: >
curl -X GET -d '{"off":false}' "http://192.168.0.100/zns.cgi?cmd=l&o=64&p=0"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "Switch Lumière de la Pergola 25 %"
unique_id: binary_sensor.Lumière de la Pergola 25 %
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=l&o=64&p=75"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "Switch Lumière de la Pergola 75 %"
unique_id: binary_sensor.Lumière de la Pergola 75 %
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=l&o=64&p=190"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "slider lames de la Pergola 0"
unique_id: binary_sensor.slider lames de la Pergola 0
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=m&m=1&p=0"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "slider lames de la Pergola 30"
unique_id: binary_sensor.slider lames de la Pergola 30
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=m&m=1&p=190"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "slider lames de la Pergola 50"
unique_id: binary_sensor.slider lames de la Pergola 50
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=m&m=1&p=300"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "slider lames de la Pergola 75"
unique_id: binary_sensor.slider lames de la Pergola 75
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=m&m=1&p=400"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
- switch:
name: "slider lames de la Pergola 100"
unique_id: binary_sensor.slider lames de la Pergola 100
command_on: >
curl -X GET -d '{"on":true}' "http://192.168.0.100/zns.cgi?cmd=m&m=1&p=500"
command_state: curl http://192.168.0.100/zns.cgi?cmd=d&p=os
value_template: "{{ value_json['status']}}"
La partie binary sensor:
binary_sensor:
- platform: template
sensors:
pergola_rain:
value_template: "{{ ('%04d' % '{:b}'.format(states.sensor.pergola.attributes['user']|int)|int)[3:4] }}"
unique_id: "Pergola: fermeture si pluie"
pergola_suntracking:
value_template: "{{ ('%04d' % '{:b}'.format(states.sensor.pergola.attributes['user']|int)|int)[2:3] }}"
unique_id: "Pergola: suivi solaire"
pergola_shade:
value_template: "{{ ('%04d' % '{:b}'.format(states.sensor.pergola.attributes['user']|int)|int)[1:2] }}"
unique_id: "Pergola: ombrage minimum"
pergola_winter:
value_template: "{{ ('%04d' % '{:b}'.format(states.sensor.pergola.attributes['user']|int)|int)[0:1] }}"
unique_id: "Pergola: hivernage"
pergola_status:
device_class: connectivity
value_template: "{{ states.binary_sensor.pergolahttp.state }}"
unique_id: "pergola"
Et enfin un input number (il fonctionne avec une automation non crée ce jour):
input_number:
pergola_sundelay:
name: "Interval suivi solaire"
icon: hass:timer-sand
min: 10
max: 60
step: 5
unit_of_measurement: 'min'
Pour ceux qui comme moi, veulent monitorer la température ou la consomation de la pergola, je rajoute pour le moment ce qui marche à savoir la température modifiée à mettre dans sensor.
- platform: template
sensors:
temperature_modifiee:
friendly_name: "Température interieur Corrigée pergola"
unique_id: "unique_temperature_modifiee_pergola"
unit_of_measurement: "°C"
value_template: >
{% set temperature = states('sensor.sensor_pergola_temp_inter') | float %}
{{ (temperature / 10) | round(1) }}
Finalement voici un sensor qui fonctionne pour suivre la consomation de la pergola
- platform: template
sensors:
consommation_formatee_pergola:
unique_id: consommation_Corrigée_pergola
friendly_name: "Consommation Pergola Formattée"
value_template: "{{ (states('sensor.sensor_pergola_conso') | float / 1000) | round(2) }}"
unit_of_measurement: "V"
Correction:
-dans la partie switch pergola off (modification de la commande) remplace ded’une lettre « a » par « p »: merci Chris73 pour la correction.
Je viens de me rendre compte que l’on peu scanner le wifi également avec cette commande
http://192.168.xxx.xxx/zns.cgi?cmd=s&p=s
Et on récupère la liste des réseaux avec cette commande
http://zenisun.local/zns.cgi?cmd=s&p=g
À corriger :
-Les interrupteurs pour le mode hivernal, la fermeture en cas de pluie, ainsi que ceux liés au suivi solaire et à l’ombre minimale ne maintiennent pas la position ON. Vous avez également la possibilité d’utiliser des scripts ou des automatisations afin d’effectuer cette opération de manière automatique, c’est-à-dire de passer d’un mode à l’autre.
- Les sliders lumières et les volets qui ne s’éteignent pas et qui ne fonctionnent pas correctement.
Voici un exemple de ce que vous avez après avoir complété votre fichier yaml
A vous de l’améliorer, moi par exemple il est comme ceci