Home Assistant - ajouter un switch SONOFF DIY via sa REST API

IMG_20230117_230318_2.jpg, janv. 2023

Voici un exemple d'intégration d'un module SONOFF Mini R2 mode DIY avec Home assistant. Pour cela on va utiliser la REST-API de SONOFF.

Il y aurait d'autres manières de faire, par exemple Flasher le Sonoff pour un firmware Tasmota, ajouter un broker MQTT sur le réseau etc...

Prérequis:

  • Un module SONOFF en mode DIY
  • Un serveur Home Assistant accès SSH configuré

Ressources:

J'écris ce billet de blog pour vous éviter d'éplucher ces documentations (et m'éviter à moi même de devoir les relire dans quelques mois), mais voici quand même les liens:

Lets-go:

La requête pour obtenir l'état d'un switch Sonoff est faite avec la méthode POST. Le module REST-FULL de Home assistant, pour la requête qui permet de connaitre l'état, c'est du GET. Fail. D'où l'utilisation de command_line (et j'aime pas ça, c'est bidouillage beark crado)

Voici un exemple de bloc à ajouter dans le fichier config/configuration.yaml pour 2 lumières:

switch:
  - platform: command_line
    switches:
      desk_light:
        friendly_name: "Lumière du bureau"
        command_on: curl -X POST http://192.168.0.31:8081/zeroconf/switch -d '{"deviceid":"1000aaaaaaa","data":{"switch":"on"}}'
        command_off: curl -X POST http://192.168.0.31:8081/zeroconf/switch -d '{"deviceid":"1000aaaaaa","data":{"switch":"off"}}'
        command_state: curl -X POST http://192.168.0.31:8081/zeroconf/info -d '{"deviceid":"","data":{}}'
        value_template: '{{ value_json["data"]["switch"] == "on" }}'
      cabanon_light:
        friendly_name: "Lumière du cabanon"
        command_on: curl -X POST http://192.168.0.26:8081/zeroconf/switch -d '{"deviceid":"1000bbbbbb","data":{"switch":"on"}}'
        command_off: curl -X POST http://192.168.0.26:8081/zeroconf/switch -d '{"deviceid":"1000bbbbbb","data":{"switch":"off"}}'
        command_state: curl -X POST http://192.168.0.26:8081/zeroconf/info -d '{"deviceid":"","data":{}}'
        value_template: '{{ value_json["data"]["switch"] == "on" }}'

Evidemment, vous remplacez les IP par les votres et 1000aaaaaaa et 100bbbbbbbbb par les ids de vos modules Sonoff.

Voila:

Screenshot_20230117-230159.png, janv. 2023

Page top