Legrand cable Outlet (064879)

Mon problème

Bonjour,

Je suis assez nouveau dans HA et j’ai disons pas ou très peu d’expérience en programmation.
J’ai une version de home assistant en VM sur mon nas

Du coup, mon problème avec ces prises,c’est de contrôler mes radiateurs via le fil pilote.

J’ai réussi à appairer les sorties de câbles à ma conbee (en coupant l’électricité des autres devices legrand que j’avais btw). A partir de la, je pouvais faire un ON/OFF dans HA.

Après je suis passé en fil pilote dans Deconz gui. Du coup depuis le GUI de deconz je peux switch entre les différents modes (Confort, Eco, hors gel, etc…)

Et maintenant, je ne sais pas comment retrouver ces paramètres dans HA et comment les modifier.
Sachant que pour les routines, j’utiliserai Node Red

Merci d avance pour vos conseils

J’ajoute les screens de deconz GUI

Ma configuration


System Health

version core-2021.9.7
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.62
arch x86_64
timezone Europe/Paris
Home Assistant Supervisor
host_os Home Assistant OS 6.4
update_channel stable
supervisor_version supervisor-2021.09.4
docker_version 20.10.7
disk_total 30.8 GB
disk_used 7.9 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons deCONZ (6.10.0), File editor (5.3.3), Node-RED (10.0.1)

Via nodered ? Coup tu marches a partir de requetes REST ?

PUT request to /api/xx/sensors/xx/config with the payload {"mode":"confort"}

Les modes utilisables sont :

  • confort
  • confort-1
  • confort-2
  • eco
  • hors gel
  • off
1 « J'aime »

Re, après quelques heures à essayer de comprendre ton message, j’ai fini par y arriver !
Merci beaucoup !

Je vais décrire tout ce que j’ai du faire pour y arriver, ça servira peut être à quelqu’un un jour. Je vais surement faire des erreurs de terminologie. Veuillez m’en excuser par avance

Avant de commencer, il faut passer le cable outlet en mode fil pilote, je l’avais fait avant de faire ce qui va suivre.
Pour passer en fil pilote :

  • Cliquer sur le rond de droite du thermostat recherché et ouvrir le cluster FC01
  • Double clic sur l’option 1, et mettre 0x0002 puis cliquer sur write

Première partie, REST API de deconz

Avant tout, vérifier que le port 40850 est ouvert pour l’intégration deconz

Il faudra installer un addon rest-api (j’ai utilisé rested sur firefox mais peu importe)

Après, il faut obtenir une clé API
Je vous donne juste deux lien, un plus complet en anglais et un second en français
deCONZ REST-API (anglais)
API de deconz (français)

Dans mon cas, l’adresse ip était celle qui me permet d’accéder à home assistant suivi du port 40850
192.168.1.42:40850

Deuxième partie, utiliser l’api

d’abord il faut trouver le sensor de la prise legrand via une requête GET a une adresse qui ressemble donc à ca :

La vous aurez la liste de tout vos sensors. Cherchez le « numéro » (id plutôt) qui vous intéresse.
Nous on cherche le sensor thermostat et pas le sensor power.

Ensuite on envoie une requete PUT avec le payload qui va bien (voir plus haut)

Troisieme partie, Node Red

Le plus dur est fait !

Un petit timestamp avec le payload (mode désiré) et notre belle adresse de PUT et le tour est joué

[{"id":"2486e4eb398d6b7b","type":"http request","z":"8317ce6679bc6949","name":"","method":"PUT","ret":"txt","paytoqs":"ignore","url":"http://192.168.1.42:40850/api/VotreCléAPI/sensors/5/config","tls":"","persist":false,"proxy":"","authType":"","x":445,"y":550,"wires":[[]]},{"id":"5cf0d7eb736ca1e6","type":"inject","z":"8317ce6679bc6949","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"mode\":\"confort\"}","payloadType":"json","x":215,"y":550,"wires":[["2486e4eb398d6b7b"]]}]

Quatrième partie, Mon intégration

Pour l’interface Lovelace, j’ai créé un helper dropdown pour chaque radiateur


(on peut rajouter les confort-1 et -2 mais tous les radiateurs ne sont pas compatibles avec ces deux modes)

Et après, vu que je ne maitrise pas la programmation, j’ai opté pour node red pour « surveiller » ce helper

[{"id":"0b12f324a7f7170f","type":"http request","z":"8317ce6679bc6949","name":"Radiateur chambre","method":"PUT","ret":"txt","paytoqs":"ignore","url":"http://192.168.1.42:40850/api/VotreCléAPI/sensors/3/config","tls":"","persist":false,"proxy":"","authType":"","x":765,"y":1025,"wires":[[]]},{"id":"de55152bde67f55d","type":"function","z":"8317ce6679bc6949","name":"","func":"p=msg.payload\na=\"mode\"\nvar newObject ={}\nnewObject={\n    \"mode\":p\n}\nmsg.payload=newObject\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":1025,"wires":[["0b12f324a7f7170f"]]},{"id":"8cd1eece9f8a7e45","type":"server-state-changed","z":"8317ce6679bc6949","name":"","server":"fb891b2b.fd7f48","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_select.radiateur_chambre","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":205,"y":1025,"wires":[["de55152bde67f55d"]]},{"id":"fb891b2b.fd7f48","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmZjFhMmRkNDQ2NzY0MzhiOWYyMzkwZWI5MTg5YzI4NCIsImlhdCI6MTYzMTUzMDczNiwiZXhwIjoxOTQ2ODkwNzM2fQ.T-exJh9_8hB5dZmy1nXogkp03U1fohlWEyyOAq8fYzQ","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Voila voila,

il me reste plus qu’à faire mes automatisations

Merci hoeby pour m’avoir mis sur la voie !

1 « J'aime »

Bonjour à tous
j’étais en train de préparer un message car j’ai le même problème…
Je ne sais pas non plus comment récupérer la mesure de consommation.

En fouillant dans les répertoire de Samba share, on trouve les fichiers cachés suivants:
\HOMEASSISTANT\config.storage
– core.device_registry
– core.entity_registry
Pourquoi les infos ne sont elles pas dans config.yaml?
D’où sort le nom de l’équipement dans deConz?
Ce n’est même pas le même dans Phoscon…

J’ai fait un pdf avec toutes mes questions. Mais je crois que le pdf ne s’insère pas ici…

ha oui et je n’utilise pas node-red…

Ok j’ai suivi les instructions sur le REST API et j’ai les mêmes résultats que ci dessus mais…
Je ne comprends pas le lien qui n’a pas l’air de fonctionner entre le « mode »: « eco » et le fil pilote.

En effet, je peux manipuler le fil pilote depuis l’interface deconz mais après manipulation, une requete GET dans RESTAPI me donne toujours le « mode »: « eco ».

de plus quand je commande autre chose que « mode »: « eco » via le reste API, j’ai un message d’erreur:

dans le sens « comfort » changé par « eco » via RestAPI cela fonctionne bien.
voila donc je cherche à faire le lien entre le restAPI et ce que je vois dans deconz:
image

YESSSSS !!!
ok c’est résolu…
Les noms de mode dans deconz ne sont pas les bons. « Comfort » dans deconz mais « confort » dans restAPI!!
Je viens d’essayer les noms proposés plus hauts et ça fonctionne!!!

  • confort
  • confort-1
  • confort-2
  • eco
  • hors gel
  • off

Merci!
Reste plus qu’à mesurer la puissance consommée :slight_smile:

De retour, j’ai rajouté une quatrième partie à mon post

1 « J'aime »

Merci grâce à ton tuto j’ai créé des automatisations pour gérer mes radiateurs en fonction du statut de l’alarme et de la présence des habitants :wink:

alias: Chauffage - Présent - Week-end
description: ""
trigger:
  - platform: time
    at: "08:00"
    id: "1"
  - platform: state
    entity_id:
      - sensor.diagral
    to: arret
    for:
      hours: 0
      minutes: 0
      seconds: 0
    enabled: true
    from: marche
    id: "2"
  - platform: numeric_state
    entity_id: proximity.home
    below: 5000
    for:
      hours: 0
      minutes: 1
      seconds: 0
    id: "3"
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: sensor.salonrad
        state: confort
    enabled: true
  - condition: or
    conditions:
      - condition: and
        conditions:
          - condition: trigger
            id: "1"
          - condition: not
            conditions:
              - condition: state
                entity_id: sensor.diagral
                state: marche
          - condition: time
            weekday:
              - sat
              - sun
      - condition: and
        conditions:
          - condition: trigger
            id: "2"
          - condition: time
            after: "08:00:00"
            before: "22:00:00"
            weekday:
              - sat
              - sun
      - condition: and
        conditions:
          - condition: trigger
            id: "3"
          - condition: time
            after: "08:00:00"
            before: "22:00:00"
            weekday:
              - sat
              - sun
action:
  - service: notify.mobile_app_julien
    data:
      title: CHAUFFAGE
      data:
        icon_url: /local/noirot.jpg
        notification_icon: mdi:heat-wave
        actions:
          - action: URI
            title: NOTIFICATION
            uri: /lovelace/4
          - action: ANNULERWEEKEND
            title: ANNULER
      message: >-
        Passage du chauffage en mode "WEEK-END"  dans 1min. Cliquer
        sur "ANNULER" pour rester dans le mode actuel. 
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - service: rest_command.bureau_confort
    data: {}
  - service: rest_command.chambre_parent_confort
    data: {}
  - service: rest_command.manon_confort
    data: {}
  - service: rest_command.salle_de_jeux_confort
    data: {}
  - service: rest_command.comble1_eco
    data: {}
  - service: rest_command.comble2_eco
    data: {}
  - service: rest_command.entree_confort
    data: {}
  - service: rest_command.salonrad_confort
    data: {}
  - service: rest_command.sejourrad_confort
    data: {}
  - service: rest_command.cusinerad_confort
    data: {}
mode: single

J’ai complété cet article afin d’y ajouter la gestion de la sortie de cable sous ZHA