[Tuto] Installer sa pergola Zenisun sur Home Assistant

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.

Pour aller plus vite, je vous propose d’inclure un fichier packages dans votre configuration.yaml.

Prérequis, matériels nécessaires & utilisés :

  • Studio Code Server (via HACS) ou File Editor d’installé.

homeassistant:
packages: !include_dir_named packages

Vous avez un super tuto de McFly ici → tuto Organisation du fichier configuration.yaml

Ensuite, dans config, vous devez créer le fichier pergola.yaml et y copier-coller le fichier ci-dessous, sans oublier de mettre votre adresse IP à la place de la mienne.

################################
###         sensor:          ###
################################
sensor:
  - platform: rest
    name: "Pergola"
    scan_interval: 15
    resource: http://192.168.0.100/pergola/zns.cgi?cmd=d&p=os
    json_attributes_path: "$.root"
    value_template: "OK"
    json_attributes:
      - "gpo6"      # white dimmer 
      - "s_elev"    # Elevation
      - "s_azi"     # Azimut
      - "s_prj"     # Projection
      - "user"      # mode (pluie, hiver, suivi,
      - "Mot0"      # Moteur 
      - "date"      # Moteur 
      - "sun_delay" # Actualisation
      - "VDC2"      # Voltage VDC2

  - platform: rest
    name: "Pergola Core"
    scan_interval: 15
    resource: http://192.168.0.100/pergola/zns.cgi?cmd=c
    json_attributes_path: "$.root"
    value_template: "OK"
    json_attributes:
      - "orient"      # orientation
      - "lon"    # Longitude
      - "lat"     # Latitude

  - 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_mode"
    unique_id: "binary_sensor.sensor_pergola_mode"
    scan_interval: 10
    value_template: "{{ value_json['root']['user'].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: 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) }}

  - 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"
        device_class: energy  # Classe d'entité pour l'énergie

  - 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 %}

  - platform: template
    sensors:
      pergola_watt:
        value_template: "{{ (((states.sensor.pergola.attributes['gpo6'].split(';')[1] | float(0) ) * (states.sensor.pergola.attributes['VDC2'] | float(0) / 1000)) / 1000) | round(2, default=0) }}"
        device_class: power
        unit_of_measurement: 'W'
        friendly_name: "Pergola lumière Watt"
      pergola_dimmer:
        value_template: "{{ (((states.sensor.pergola.attributes['gpo6'].split(';')[0]| float(0) ) * 100)/255) | round(0, default=0) }}"
        device_class: power_factor
        unit_of_measurement: '%'
        friendly_name: "Pergola lumière pourcentage"
      pergola_motor:
        value_template: "{{ (((states.sensor.pergola.attributes['Mot0'].split(';')[0]| float(0) ) * 100)/(states.sensor.pergola.attributes['Mot0'].split(';')[1]| float(0) )) | float(0) }}"
        device_class: power_factor
        unit_of_measurement: '%'
        friendly_name: "Pergola lames"
      pergola_sundelay:
        value_template: "{{ (states.sensor.pergola.attributes['sun_delay']| float(0) ) }}"
        friendly_name: "Pergola actualisation"


################################
###         switch:          ###
################################
switch:
  - 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:       ###
################################
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']}}"

################################
###     binary_sensor:       ###
################################
binary_sensor:
  - platform: template
    sensors:
      pergola_rain:
        value_template: "{{ ('{:04b}'.format(states.sensor.pergola.attributes['user'] | int))[3:4] }}"
        unique_id: "pergola_rain2"
      pergola_suntracking:
        value_template: "{{ ('{:04b}'.format(states.sensor.pergola.attributes['user'] | int))[2:3] }}"
        unique_id: "pergola_suntracking2"
      pergola_shade:
        value_template: "{{ ('{:04b}'.format(states.sensor.pergola.attributes['user'] | int))[1:2] }}"
        unique_id: "pergola_shade2"
      pergola_winter:
        value_template: "{{ ('{:04b}'.format(states.sensor.pergola.attributes['user'] | int))[0:1] }}"
        unique_id: "pergola_winter2"
      pergola_status:
        device_class: connectivity
        value_template: "{{ states.binary_sensor.pergolahttp.state }}"
        unique_id: "pergola_status2"

################################
###          group:          ###
################################
group:
  pergola_modes:
    name: "Modes Pergola"
    entities:
      - switch.pergola_switch_rain
      - switch.pergola_switch_suntracking
      - switch.pergola_switch_shade
      - switch.pergola_switch_winter

################################
###          cover:          ###
################################
cover:
  - platform: template
    covers:
      pergola_motor:
        friendly_name: "Pergola: lames"
        #value_template: "{{ states.sensor.pergola_motor.state|int > 0 }}"
        position_template: "{{ states.sensor.pergola_motor.state|int }}"
        open_cover:
          action: rest_command.pergola_set_motorlevel_open
        close_cover:
          action: rest_command.pergola_set_motorlevel_close
        set_cover_position:
          action: rest_command.pergola_set_motorlevel
          data:
            position: "{{position}}"
        device_class: shutter
        icon_template:  >-
          {% if states('sensor.pergola_motor')|float > 0 %}
            hass:electric-switch
          {% else %}
            mdi:electric-switch-closed
          {% endif %}

################################
###       rest_command:      ###
################################
rest_command:
  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.1.40/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
  
  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_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_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

Toujours à corriger (27_04_2025) :
*Dans la partie switch pergola off (modification de la commande) remplace d’une lettre « a » par « p »: merci Chris73 pour la correction.

*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
  • 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

Ma partie automation en yaml qui utilise la position du soleil par rapport à la maison et ma météo Netatmo et le service season.
Cette automation fonctionne de 8h à 22h et ne fonctionne pas si mon alarme est sur ON, sauf pour les fortes chaleurs. Ma pergola me protège une grande baie vitré côté ouest et me fait de l’ombre quand il fait trop chaud.

alias: AUTO - PERGOLA - LAMES
description: Pergola Auto gestion des lames
trigger:
  - platform: time_pattern
    minutes: /15
condition:
  - condition: and
    conditions:
      - condition: time
        after: "08:00:00"
        before: "22:00:00"
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
          - sat
          - sun
  - type: is_precipitation
    condition: device
    device_id: 28c30739ea0b645ff18a6cfdbc6562e0
    entity_id: 94332f48fe379d562f7f5d88622145d5
    domain: sensor
    below: 1
action:
  - alias: Season
    choose:
      - conditions:
          - condition: state
            entity_id: sensor.season
            state: spring
        sequence:
          - choose:
              - conditions:
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 4
                  - condition: time
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                    after: "08:00:00"
                    before: "10:00:00"
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 49.9
                    enabled: true
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_30
                    action: switch.turn_on
                alias: Printemps _de 8h/10h_position des lames 30° cloudy - 50%
              - conditions:
                  - condition: time
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                    after: "08:00:00"
                    before: "21:00:00"
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: 70
                    below: 100
                    enabled: true
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 4
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
                alias: >-
                  Printemps _de 8h/21h_position des lames 50° si - de 20° cloudy
                  +70%
              - conditions:
                  - condition: time
                    after: "08:00:00"
                    before: "12:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 20
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 49.9
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "12:45:00"
                    before: "20:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                sequence:
                  - data: {}
                    target:
                      entity_id:
                        - switch.slider_lames_de_la_pergola_100
                    action: switch.turn_on
        alias: Printemps
      - conditions:
          - condition: state
            entity_id: sensor.season
            state: summer
        sequence:
          - choose:
              - conditions:
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: 70
                    below: 100
                    enabled: true
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 4
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
                alias: De 8h/21h_position des lames 50° si - de 20° cloudy +70%
              - conditions:
                  - condition: time
                    after: "08:00:00"
                    before: "10:00:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_30
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "10:10:00"
                    before: "11:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "11:30:00"
                    before: "12:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_75
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "12:45:00"
                    before: "17:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_100
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "10:00:00"
                    before: "17:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "on"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_100
                    action: switch.turn_on
        alias: Été
      - conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: sensor.season
                state: spring
              - condition: state
                entity_id: sensor.season
                state: summer
          - condition: time
            weekday:
              - mon
              - tue
              - wed
              - thu
              - fri
              - sat
              - sun
            after: "21:00:00"
            before: "22:00:00"
        sequence:
          - target:
              entity_id: switch.slider_lames_de_la_pergola_30
            data: {}
            action: switch.turn_on
        alias: après 21h lames à 30° Printemps/Été
      - conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: sensor.season
                state: autumn
              - condition: state
                entity_id: sensor.season
                state: winter
          - type: is_temperature
            condition: device
            device_id: eff67e0fee145b3ad0988022b3b55ed8
            entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
            domain: sensor
            above: 4
        sequence:
          - alias: gestion des lames
            choose:
              - conditions:
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 4
                  - condition: time
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                    after: "08:00:00"
                    before: "15:00:00"
                sequence:
                  - target:
                      entity_id: switch.slider_lames_de_la_pergola_30
                    data: {}
                    action: switch.turn_on
                alias: Automne 1_30°_matin
              - conditions:
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 4
                  - condition: time
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                    after: "15:10:00"
                    before: "17:30:00"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
                alias: Automne 2_50°_jour
              - conditions:
                  - type: is_temperature
                    condition: device
                    device_id: eff67e0fee145b3ad0988022b3b55ed8
                    entity_id: 6c30f6bbc11cc18992302aa13e55cf9b
                    domain: sensor
                    above: 4
                  - condition: time
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                    after: "17:45:00"
                    before: "20:00:00"
                sequence:
                  - target:
                      entity_id: switch.slider_lames_de_la_pergola_30
                    data: {}
                    action: switch.turn_on
                alias: Automne 3_30°_nuit
            enabled: false
          - choose:
              - conditions:
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: 70
                    below: 100
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
                alias: De 8h/21h_position des lames 50° si - de 20° cloudy +70%
              - conditions:
                  - condition: time
                    after: "08:00:00"
                    before: "10:00:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_30
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "10:10:00"
                    before: "11:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_50
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "11:30:00"
                    before: "12:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_75
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "12:45:00"
                    before: "17:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "off"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_100
                    action: switch.turn_on
              - conditions:
                  - condition: time
                    after: "10:00:00"
                    before: "17:30:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: numeric_state
                    entity_id: sensor.s_couverture_nuageuse
                    above: -0.1
                    below: 70
                    enabled: true
                  - condition: state
                    entity_id: binary_sensor.core_mosquitto_alarmmode
                    state: "on"
                sequence:
                  - data: {}
                    target:
                      entity_id: switch.slider_lames_de_la_pergola_100
                    action: switch.turn_on
        alias: Autome ou Hiver
mode: single
1 « J'aime »

Bonjour @Zigfou

Merci beaucoup pour toutes ces informations, c’est juste top
Merci aussi à @MikeBZH44 qui m’a été d’un grand secours pour ma domotique Jeedom de l’époque, et qui l’est encore pour mon HA d’aujourdhui
Et merci à tous les autres
Sans vous tous, je serai encore à l’âge de pierre chez moi :smiley:

Je veux bien à l’occase les infos sur la station netatmo

Pour Zenisun, il y a aussi un topic plus précis ici qui peut être utile je pense :

2 « J'aime »

Il doit y avoir une coquille dans ton premier message car le 3ème bloc de code est identique au 1er et traite de l’ouverture des lames :wink:

ça doit être pour ça que je m’arrache les cheveux depuis une heure :rofl:

(bon suis pas doué non plus hein )

Je corrigé ce soir, j’ai fait ça rapidos ce matin

1 « J'aime »

Si tout se passe comme prévu, voici ce que l’on obtient.

1 « J'aime »

Beau boulot ! :+1: :+1: :+1:

Le slider de la rotation des lames ne fonctionne pas
Est ce une erreur de mon côté, ou sur le script ?

Egalement, la lumiere ne s’éteind pas completement, et les lames ne se ferment pas completement

Il prend pas la fonction off et c’est vrai que je ne l’utilise pas. Faut que je regarde comment le corriger.

Moi aussi j’étais sur jeedom et j’ai utilisé les infos de mikeBZH44.

Je ne sais pas si ça peut aider
sur Jeedom, cette commande ferme completement les lames

(« http://192.168.0.xx/zns.cgi?cmd=m&m=3&a=0 »)

Egalement si je fais cette requete sur mon naviguateur web, ca ferme complement

Par contre, quand je passe par HA, a « fermeture lame 0 », les lames restent ouvertes à 6°
Je comprends pas pourquoi ce décalage

Le bouton lumiere pergola Off, c’est ok par contre
Juste le slider lumière qui laisse allumé à 1%

J’ai le même problème et je n’arrive pas à comprendre comment ça fonctionne, c’est pour ça que je ne les utilise pas et préfère les boutons

@MikeBZH44 va nous sauver :innocent: :smiley:

Bonjour,

N’étant pas très a l’aise avec HA je n’arrive pas à avoir une structure de fichier correct pour mettre en Œuvre Zenisun.

Dans un premier temps j’avais créé un fichier zenisun.yaml et tenté un include dans le fichier configuration, mais je n’y suis pas arrivé. Message me disant que zenisun.yaml introuvable.

Du coup j’ai tout mis dans le fichier configuration de HA, mais sûrement pas une bonne idée.

Qui pourrais m’aider pour la structure et quoi mettre dans le fichier config…

Merci

tu as un super tuto sur la chaine youtube de thomas https://www.youtube.com/watch?v=To0250X2ABU.

Tu as aussi le tuto de tof https://les-tutos-du-tof.fr/modifier-configuration-yaml/

Et enfin tu as le tuto de McFly https://forum.hacf.fr/t/organisation-du-fichier-configuration-yaml/205

Mais en gros et en résumé, tu chercher la ligne:
-sensor et tu copie toute la ligne senor
-light et tu copie toute la ligne light.

si tu n’a pas de ligne rest command, tu la copie tout en bas de ton fichier.

Merci je vais regarder tout ça.

Salut

@Erik06
Pour le codage, mon frangin m’a fait découvrir hier soir une ia (Claude.ai)
Il peut même générer les codes
N’hésite pas à essayer, et lui poser des questions, c’est bluffant

@Zigfou @MikeBZH44
J’ai réussi à fermer complement la pergo en utilisant la commande toute simple

execute_zns_command:
  url: "http://192.168.0.xx/zns.cgi?cmd=m&m=1&p=0"
  method: GET

Cela veut dire que dans ton code @Zigfou la variable n’est jamais à 0
Voilà, c’était juste pour info

1 « J'aime »

@Chris73,
Merci pour ce pointeur IA, effectivement très intéressant :wink:.
Je lui ai demander comment structurer et sa réponse m’a l’air pas mal du tout.

Je prends note et modifie mon code ici présent après l’avoir testé dès que possible.