Controle d'une lumière en mode Toggle via Google Smarthome

Tags: #<Tag:0x00007fcbb942f040> #<Tag:0x00007fcbb942ed98>

Bonjour à tous !!

Je suis en train de réaliser une maquette de ma future installation électrique pour mon projet de construction. Grâce au plug-in MyModbus de @Bebel27, je vais contrôler tous mon éclairage, mes volets roulants ainsi que prbablement mon chauffage à l’aide d’automates programmables Crouzet.

Toute la partie communication entre Jeedom et mes automates fonctionne parfaitement en modbus.

Je viens d’intégrer Google Smarthome à mon Jeedom afin de controler le tout via mon assistant vocal. Le plug-in s’est correctement installé et je vois bien mes équipements sur Google Home. Cependant, lorsque je demande à Google d’allumer un lumière, celle-ci change d’état d’allumé à éteinte ou d’éteinte à allumé. Lorsque je demande d’éteindre la lumière, rien ne se passe.

J’ai configuré l’action de mon virtuel en « lumière Bouton On ». Je pensais au départ mettre « Lumière Toggle » mais ce type générique ne semble pas être pris en compte par Google Smarthome.

Je suis persuadé que mon problème est très rapide à résoudre mais je ne vois pas la solution.

Voici quelques captures d’écran de mes paramètres :
Mon virtuel :
Capture

Les paramètre de l’action du virtual :
Capture2

Les paramètre du plug-in Google Smarthome :
Capture3

Bonne journée !!

Salut @Johan_Barret

Désolé j’ai pas eu le temps de répondre à ton MP sur ce sujet,et entre deux je viens de voir que tu as ouvert ce sujet donc je vais te répondre ici .

Alors je ne connais pas le fonctionnement de google smarthome ,mais un jour j’ai fais des essais un peu similaires avec le logiciel Jarvis et je me suis retrouvé comme toi sur ce probléme de commande .

j’ai tout simplement mis en commande la même action pour on et off , je suis partie du principe que si je demande à Jarvis d’allumer les lumières c’est qu’elles son éteintes d’une une simple commande de type toggle et c’est tout .

exemple d’une commande simple avec retour d’état

Capture d'écran 2020-12-14 00.23.56

J’espère t’avoir aiguillé

@+

Salut @Bebel27 et merci pour ta réponse !

Tu n’as pas à t’excuser, on a tous une vie, un boulot, une famille… Au contraire merci de prendre du temps pour me répondre :slight_smile:

En effet, ce que tu proposes est une première solution. Cependant cela part du principe que tu connais l’état actuel de ta lampe pour demande de changer son état. J’aimerais pouvoir demander une action préventive, du genre « je ne sais pas si j’ai éteint le bureau, donc, dans le doute, je demande son extinction ». Ou de la même façon on peut imaginer le cas où je n’ai pas éteint mon bureau, je demande à Google de le faire, mais ma femme est passé à côté et l’a éteint. Je ne compte pas le rallumer en demandant son extinction.

Pour la commande des volets rouants, tu m’avais montré la possibilité de mettre #slider# en paramètre, dans MyModbus, afin de récupérer la valeur 16 bits d’un slider et la transmettre en continue en modbus. N’y aurait-il pas une solution similaire à faire ici, qui permettrais d’avoir une valeur booléenne transmise en continue (0 = éteint, 1 = allumé) ?

image

Encore merci pour le temps que tu as consacré sur mes réponses et sur le développement du plugin :wink:

Oui en effet j’utilise pour le retour un registre Modbus que je filtre pour avoir la valeur binaire de l’état de ma lumière .

Avec un retour d’état je ne vois pas le probléme .

J’ai probablement loupé quelque chose. J’essaie de synthétiser :thinking:

Google Smarthome permet d’associer à un virtuel une fonction. Dans mon cas 1 virtuel = 1 éclairage.

Pour avoir le contrôle sur cet éclairage il faut que mon virtuel ait une commande ON configuré en type générique « Lumière bouton ON » et une commande OFF configuré en type générique « Lumiere bouton OFF » (Configuration de la commande virtuelle > Configuration > Type Générique > Lumière bouton ON/OFF).

Si j’ai bien compris, tu proposes d’associer la même action à mes 2 commandes. Cela aurait pour conséquence d’inverser l’état de mon éclairage qu’importe si je demande de l’allumer ou de l’éteindre. On part donc du principe que l’utilisateur connait l’état de l’éclairage.

Là où l’hypothèse que l’utilisateur connais l’état de la lampe peut poser problème c’est dans ce genre de cas :
Je quitte mon bureau, où l’éclairage est allumé pour aller dans une autre pièce, en pensant faire simplement un allez retour (pour allé chercher un document dans une autre pièce). Finalement, je ne retourne pas dans le bureau et reste dans le salon pour regarder ma série préférée. Au bout de 5 minutes, ma femme passe devant le bureau et l’éteint, vu qu’elle ne me vois pas dedans. 5 minutes après, je me dis "Mince, j’ai oublié d’éteindre le bureau. « OK Google, éteint le bureau ». Et là, le bureau se rallume alors que ce n’est pas l’action que je voulais. Google me dis bien « OK, j’éteins le bureau » et je ne revérifie par sur Jeedom que le bureau est effectivement éteint.

C’est très certainement un cas rare mais qui peut arriver. Et quitte à avoir une maison intelligente, autant prévoir ce genre de cas.

Ce que je pensais donc c’est d’avoir l’état voulu par Jeedom en Modbus, (avec détection de front montant dans le programme de mon automate) et non plus le « clic » sur mon interrupteur virtuel. Ainsi, si Google me dit « OK, j’éteins le bureau », je suis sûr que le bureau est bien éteint.

Après il y a une très forte probabilité que je n’aie pas compris ce que tu me proposais et que ta solution réponde tout à fait à mon besoin. :sweat_smile:

Dans ce cas là, pourrais-tu me reformuler ce que tu me proposes s’il te plait ?

Hello

J’ai rapidement survolé le sujet mais juste pour dire qu’il existe un type générique toggle sur une lumière
image

Donc ça permet sans doute de conserver les 3 commandes

Merci Naboleo pour ta réponse :slight_smile:

En effet, c’était mon premier choix. Mais comme dit dans mon premier poste, ce type générique ne semble pas être pris en compte par Google Smarthome. :confused:

Dans Google Smarthome le virtuel ayant le typpe générique « Lumière Toggle » est marqué comme NOK ce qui a pour conséquence de ne pas le voir dans Google Home :

image

Par contre, si un virtuel a des types génériques « Lumière bouton ON » et « Lumière bouton OFF » il est bien noté OK et visible sur Google Home :slight_smile:

En fait, ça existe coté Google SmartHome
https://developers.google.com/assistant/smarthome/traits/toggles

    {
      "id": "PdvLight",
      "type": "action.devices.types.LIGHT",
      "traits": [
        "action.devices.traits.OnOff",
        "action.devices.traits.Toggles"
      ],

Mais c’est un trait qui n’existe pas (encore) coté jeedom

Tout à fait, quand je disais qu’il n’est pas pris en compte par Google Smarthome, je voulais parler du plug-in Jeedom « Google Smarthome ».

En attendant que ce soit pris en compte côté Jeedom, j’espérais pouvoir trouver une solution avec l’existant

ah ok j’ai compris ton probléme .
tu peux utiliser l’info du registre de tes entrées et mettre une fonction & ( and ) avec le registre de ta commande .
exemple en image avec une fonction Xor (^) Prob1

Sinon dans ton programme automate tu fais une entrée on et une entrée off pour chaque relais et la c’est facile :grin:

Merci @Bebel27 pour ton aide !!

J’ai commencé à faire quelque chose qui marchotte.

Un de mes virtuels :
image

Ma configuration modbus :
image

Il se passe par contre des choses bizarres… Cela semblait fonctionner au début, puis au bout de 2 minutes ça a commencé à se dégrader. Certaines commandes d’allumage ne répondent plus, d’autre commandes on commencé à réagir anarchiquement (allume 2 ampoules, en allume une et en éteint une autre…). Je ne vois pas de problème dans mes masques.

Je vais investiguer :slight_smile:

A mon avis c’est le temps de réponse de lecture du registre d’entrée.
Sinon modifie ton programme automate pour avoir une action on et off et la ça serra fiable.

Bon, en effet, aujourd’hui j’ai fait une action ON et une action OFF. Ca prend plus de place sur le réseau modbus mais, en effet, c’est plus efficace et beaucoup plus simple à debugger/maintenir.

C’est d’une efficacité assez folle et arriver à contrôler mes automates avec Google Home rajoute un gros plus. C’est très satisfaisant :smiley:

Merci @Bebel27 pour ton aide !!

Super, par contre pense au fait que tu dois pouvoir piloter ta sortie via une entrée de l’automate, pour mettre un BP par exemple.

Bien sûr, c’est déjà le cas :grin:
Je te fais des photos/vidéo du résultat demain :wink:

OK ça marche :wink::+1:

Voilà la vidéo, un peu en retard, mais elle est bien là !
Je filme avec mon téléphone, en one shot, sans préparation. Je ne suis pas hyper à l’aise, mais bon… :sweat_smile:

(63) Jeedom, automate Crouzet et Google Home - YouTube

Quelques bugs persistent :

  • Lors que je demande « Hey Google, éteint toutes les lumières », alors toutes les lumières s’éteignent une par une puis Google me dit « Pardon, je ne peux établir la communication avec Jeedom Smarthome ». Pourtant toutes les lumières ont bien été éteintes.
  • A contrario, quand je dis « Hey Google, fermes/ouvres tous les volets », Google me dit « Très bien, j’ouvre les 3 appareils ». Mais une fois sur deux ce ne sont que 2 volets qui s’ouvrent/se ferment.

Sur ces problèmes, je ne sais pas exactement ce que je peux faire à mon niveau pour corriger cela…

1 J'aime

Super vidéo Johan j’adore.
Ton soucis est peut être liée à un time out quelques part dans le Google home, la dessus je peux pas trop aider je connais pas, et j’ai pas le matériel ni le plugin.