Contrôler un ESP32 avec Home Assistant et Google Home

Bonjour
Je vais vous expliquer encore le projet un peu fou que j’ai fait. Pour vous mettre dans le contexte je vais vous expliquer mon cas.

Je suis une personne à mobilité réduite (tétraplégique).
J’utilise pour me déplacer un fauteuil roulant électrique seulement ayant de très gros problèmes de mobilité, il y a des fonctions sur la commande de mon joystick de mon fauteuil roulant que je ne peux pas utiliser.

Par exemple, je ne peux pas utiliser la fonction basculer le dossier, allumer les phares, plein de petites options comme ça car il faut appuyer sur un bouton.
Pour cela un ami m’a développé un système avec un ESP 32 et Arduino.


Le principe est simple, la carte ESP est reliée à des prises Jack 3.5 qui elle ont la fonction de tous mes vérins.

À partir de là avec un petit programme accessible en local avec un server WEB http://f5_corpus_esp32.local:8050/, il suffit de cliquer sur la commande qui correspond à un vérin pour actionner le vérin.

Le problème c’est que je voudrais tout ces commandes en vocal. Ma question, est-ce qu’il est possible avec Home Assistant de relier mon programme de l’ESP 32 avec Google Home et Home Assistant ? Sachant que j’utilise déjà Google Home et Home Assistant en vocal pour commander ma Domotique avec Google Home

salut,
dans ce cas il te faudrait utiliser le protocole MQTT pour permettre au ESP32 de communiquer avec Home Assistant. L’ESP32 peut publier des messages MQTT que Home Assistant peut écouter et agir en conséquence.
La configuration initiale peut être un peu complexe si tu n’es pas familier avec MQTT.

Tu a aussi la possibilité de faire ca avec * RESTful API : Si ton ESP32 héberge un serveur web, tu peu utiliser l’API REST de Home Assistant pour envoyer des commandes à Home Assistant.

Les 2 ont des avantage et des inconvénient,

Ou bien utiliser ESPHome, et si tu peut adapter ton code Arduino a ESPHome,
ESPHome est une plateforme qui facilite l’intégration des appareils basés sur ESP8266 et ESP32 avec Home Assistant.

Le plus simple c’est d’intégrer des api dans le code de l’esp afin de faire des appels http vers l’esp tu pourra créer des commandes dans HA et les piloter via la voix

Les relais sont prédéfinis comme ceci :
Premier relais:
http://f5_corpus_esp32.local:8050/relay?num=0
Pour second relais:
http://f5_corpus_esp32.local:8050/relay?num=1
Pour 3ème relais:
http://f5_corpus_esp32.local:8050/relay?num=2
et ainsi de suite.

Alors c’est tout simple a faire juste a intégrer moi avec des scripts pour les intégrer

Ce qu’il me fait peur entre guillemets, c’est plus l’intégration de l’ESP 32 avec Home Assistant.
La première fois que j’ai essayé, je sais pas comment j’ai fait pour me débrouiller, mais j’ai fait foirer mon ESP ! J’ai dû en racheter un lol

Je cois las comment c’est possible
C’est juste des scripts curl ‹ ‹ a la con › ›

OK, je suis donc parti sur la méthode du Restful.
J’ai donc créé un fichier nommé rest_command.YAML que je fais pointer dans mon dossier configuration.YAML

Dans ce fichier nommé rest_command.YAML j’ai ajouté ceci

  assise_haut:
    url: http://f5_corpus_esp32.local:8050/relay?num=0

Si je tape

action: rest_command.assise_haut
data: {}

dans outils de développement → action ça fonctionne super bien. Cependant, si je mets ce code dans une carte, ça ne fonctionne pas !

type: custom:button-card
icon: mdi:power
entity: ""
hold_action:
  action: call-service
  service: rest_command.assise_haut
  target: {}

Tu fais un appuie long ?

Ces lignes suffisent, pas besoin de mettre target:

hold_action:
  action: call-service
  service: rest_command.assise_haut

Oh là là les erreurs de débutant ! Effectivement je voulais le mettre sur un appui court, et du coup en appui cours ça ne fonctionne pas. Par contre en appui long ça fonctionne.

appui court , c’est tap_action.

OK, j’arrive à déclencher mon ESP avec Home Assistant en appuyant sur le bouton.

type: custom:button-card
icon: mdi:upload-circle
entity: ""
tap_action:
  action: call-service
  service: rest_command.assise_haut
  target: {}

Maintenant, je vais voir comment déclencher cette action en vocal avec Google Home.

Tu lis toujours a moitié :wink:
ta pas besoin de mettre target: {}, tu peux le supprimé.

Passe par un script qui lance la commande rest, les scripts remontent sur Google home.

Sur Goole home, tu dis « OK google, active + le nom du script »

salut

pour interconnecter HA a un google HUB sans passer par nabucasa…

tu peux ( et je conseille ) filtrer ce que tu va pousser

Je crois qu’il utilise déja google assistant avec un NDD et NGINX HA Proxy SSL.

Dans mon fichier Google_assistant.YAML j’ai ajouté ceci

rest_command.assise:
      name: Assise Haut
      room: Chambre

Puis j’ai demandé à Google de synchroniser tous les appareils.
Cependant lorsque je dis OK, « Google active assise » ça n’actionne pas la requête

C’etait juste au cas ou.

1 « J'aime »

Les domaines qui remontent dans Google assistant :

Available domains

Currently, the following domains are available to be used with Google Assistant, listed with their default types:

  • alarm_control_panel (arm/disarm)
  • button (scene)
  • camera (streaming, requires compatible camera)
  • climate (on/off, temperature setting, hvac_mode)
  • cover (on/off/set position/stop/start=toggle cover)
  • event (only entities with device class doorbell are supported)
  • fan (on/off/speed percentage/preset mode)
  • group (on/off)
  • humidifier (humidity setting/on/off/mode)
  • input_boolean (on/off)
  • input_button
  • input_select (option/setting/mode/value)
  • light (on/off/brightness/rgb color/color temp)
  • lawn_mower (dock/start/pause)
  • lock
  • media_player (on/off/set volume (via set volume)/source (via set input source)/control playback)
  • scene (on)
  • script (on)
  • select
  • sensor (temperature setting for temperature sensors and humidity setting for humidity sensors)
  • switch (on/off)
  • vacuum (dock/start/stop/pause)
  • valve (open/close/set position/stop/start=toggle valve)
  • water_heater (on-off/temperature setting/operation mode)

Créer un script ( dans paramètres / automatisation , onglet script ).
exemple:

Après tu redémarre HA et tu peux lancer le script sur google assistant.
Si tu a nommé ton script en assise haut, tu dis a google, « ok google, active assise haut »

après tu peux créer des routines dans google home, si tu prefère une autre phrase pour lancer ton script.
Les scripst son mis dans les scènes dans google home.

Whoooa trop fort !!! Merci beaucoup, ça fonctionne :+1:

2 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.