[Tuto] Obtenir les valeurs de ses sondes via Google Home

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
nitrosurf
Messages : 23
Inscription : 06 nov. 2017, 00:38

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par nitrosurf »

je me reponds à moi meme
ce n'est pas un point mais un caratere spécial •
par contre maintenant google home mini est muet....
Kyrille
Messages : 95
Inscription : 23 juin 2019, 16:12

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par Kyrille »

Hello,

La prochaine étape pour moi serait de pouvoir obtenir les valeurs de mes sondes via mon Google Home. J'ai cru lire ici ou là que la méthode élégante était d'utiliser Homebridge/MQTT dans Domoticz. En lisant ce topic, j'ai l'impression qu'on peut faire autrement (même si certains ont l'air de galérer).

Si vous avez des conseils avant que je parte dans l'une des directions, n'hésitez pas (surtout s'il y en a une mauvaise !).

Merci !
Pi 4 (8Go) sous buster avec Conbee II / Z-Stick Gen 5 / RFXCOM 433 XL / Domoticz 2022.01
Pi 3B+ sous bullseye avec ZDongle-E; et Pi zéro 2W pour octoprint :-)
Kyrille
Messages : 95
Inscription : 23 juin 2019, 16:12

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par Kyrille »

Je me réponds : l'approche Homebridge avec le plugin homebridge-gsh ne permet pas d'obtenir les valeurs de sondes via Google Smart Home. On peut lire sur la page du développeur du plugin : "Note: Google Smart Home does not currently support "sensor" devices such as Temperature Sensors, Motion Sensors, Occupancy Sensors etc."
(https://github.com/oznu/homebridge-gsh).

Et en effet, je n'ai eu aucun mal à prendre le contrôle d'un switch virtuel de domoticz avec Google Assistant grâce à Homebrige & MQTT mais impossible d'ajouter la moindre sonde dans l'application Google.

Du coup, je vais m'essayer à gnotify.
Pi 4 (8Go) sous buster avec Conbee II / Z-Stick Gen 5 / RFXCOM 433 XL / Domoticz 2022.01
Pi 3B+ sous bullseye avec ZDongle-E; et Pi zéro 2W pour octoprint :-)
Kyrille
Messages : 95
Inscription : 23 juin 2019, 16:12

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par Kyrille »

Hello,

Je me suis donc lancé dans cette direction et je rencontre un dernier problème sur lequel je bute depuis plusieurs heures.

En fait, tout semble fonctionner sauf l'appel à gnotify dans Domoticz. La partie IFTTT et le script LUA sont nickels pour changer l'état d'un switch par exemple. J'arrive aussi à récupérer les valeurs de mes sondes et à créer la phrase à faire énoncer. Malheureusement, la Google Mini reste désespérement muette...

J'ai fait mes essais avec un Aqara et d'autres thermomètres (THGR810), j'ai remplacé ° par degrés dans la "sentence", bref, j'ai essayé d'éviter tous les pièges rencontrés par d'autres.

Voici les print que j'ai rajouté :

Code : Tout sélectionner

2020-05-01 17:21:00.972 Status: LUA: property is temperature
2020-05-01 17:21:00.972 Status: LUA: otherdevices[captor] is 20.40;51;1;985;4
2020-05-01 17:21:00.972 Status: LUA: values[0] is 20.40
2020-05-01 17:21:00.973 Status: LUA: tts is Bureau 20.40 degres
2020-05-01 17:21:00.973 Status: LUA: Command is os.execute("gnotify -H 192.168.10.34 -l fr "..tts) but nothing happens (command OK outside of Domoticz)
Comme j'ai pu remarquer en dehors de Domoticz que la première commande gnotify ne faisait qu'émettre un petit son alors que la 2ème marche nickel, j'ai aussi doublé les commandes dans le script.

Mais en fait, une simple commande os.execute("gnotify -H 192.168.10.34 -l fr blabla") ne rend rien non plus (mais OK dans un terminal), donc je pense qu'il y a quelque chose qui cloche autour du os.execute (sachant que j'ai pourtant fait l'export des 2 variables GNOTIFY_IPS et GNOTIFY_LANG dans /etc/profile)...

Si quelqu'un a une idée...

Merci d'avance.
Pi 4 (8Go) sous buster avec Conbee II / Z-Stick Gen 5 / RFXCOM 433 XL / Domoticz 2022.01
Pi 3B+ sous bullseye avec ZDongle-E; et Pi zéro 2W pour octoprint :-)
Kyrille
Messages : 95
Inscription : 23 juin 2019, 16:12

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par Kyrille »

Je me réponds, en étant à la fois déçu et content.

Déçu car il me manquait simplement le "sudo pip3 install pip --upgrade" qui est pourtant la première ligne du lien de bierdok (https://bierdok.net/post/obtenir-les-va ... ogle-home/).

En fait, j'avais suivi les directives de son github mais il n'en parle pas (https://github.com/bierdok/gnotify). D'ailleurs, toujours sur le Github, la 2ème commande (d'installation de gnotify avec pip3) n'a pas le --no-cache-dir qui évite quelques erreurs.

Bref, plutôt suivre ce guide d'installation : https://bierdok.net/post/obtenir-les-va ... ogle-home/

Et content car cette mise à jour de pip3 (de 18.2 à 20.1 dans mon cas) a suffi à ce que tout marche nickel. Il faut quand même un premier appel à gnotify pour "réveiller" le Google Mini et que le 2ème appel donne la bonne réponse plutôt qu'un simple son.

Merci à bierdok pour Gnotify et le script LUA.
Pi 4 (8Go) sous buster avec Conbee II / Z-Stick Gen 5 / RFXCOM 433 XL / Domoticz 2022.01
Pi 3B+ sous bullseye avec ZDongle-E; et Pi zéro 2W pour octoprint :-)
garycooper
Messages : 453
Inscription : 07 août 2017, 23:58

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par garycooper »

Bonjour, impossible pour moi d'avoir le retour de mes sondes (je n'ai pas testé pour les interrupteurs). Je pense que ça vient de ce que j'ai mis dans IFTTT mais j'ai beau le tourner dans tous les sens, je n'y arrive pas ... Mon google home mini clignote puis s'éteind sans rien dire, ni rien écrire dans les logs.
Peux-tu partager ce que tu as mis dans ton IFTTT STP ?
A noter que j'ai d'autres commandes dans Domoticz qui fonctionnent correctement (paramétrages individuels de switch ou scènes).
Quand je tape "gnotify bonjour les gens" dans putty, j'ai bien un "dong" sur les google home mini de la maison
Kyrille
Messages : 95
Inscription : 23 juin 2019, 16:12

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par Kyrille »

Hello,

Pour débugger, je te conseille d'aller dans Configuration/Plus d'options/ Evènements puis créer un nouveau script LUA avec "Trigger" sur device, y copier-coller le code, mettre le script à "On" et sauvegarder avec un nom qui va bien.

Dans les captures plus loin, mon device ayant l'idx 170 est le switch virtuel appelé IFTTT dans Domoticz. Pour avoir des print dans les logs de Domoticz me permettant de debugger, j'ai rajouté:

Code : Tout sélectionner

if property == 'temperature' then
    print ("property is "..property)
    print ("otherdevices[captor] is "..otherdevices[captor])
    print ("values[0] is "..tostring(values[0]))
    table.insert(sentences,"la température "..captor.." est de "..tostring(round(values[0],1)).."°")
 end
et plus loin :

Code : Tout sélectionner

end
     print ("tts is "..tts)
     os.execute("gnotify -H 192.168.10.34 -l fr OK")
     os.execute("gnotify -H 192.168.10.34 -l fr "..tts)
Le premier gnotify permet de sortir le Google Mini de veille (le fameux dong dont tu parles) et le 2ème gnotify peut du coup être énoncé correctement. Et au cas où le Google Mini était déjà réveillé au premier Gnotify, j'ai un "OK" qui est prononcé en plus, ce qui n'est pas grave. N'oublie pas les options -H et -l. Même avec un export des variables dans /etc/profile, ça ne fonctionne pas pour moi sans les options.

Mais effectivement, la première chose à faire est de vérifier que tu sais générer autre chose que des dong en dehors du script. Et vérifie aussi dans tes dispositifs la valeur du texte associé à ton switch IFTTT. Tu dois voir des choses comme get:temperature:bureau par exemple. Sinon, le script LUA ne pourra rien faire.

Evidemment, dans mes screenshots, il te faut remplacer username, password, domoticz_ip et domoticz_port par tes valeurs. N'oublie pas de faire un test simple (en 4G idéalement, pour être sûr d'être en dehors de ton réseau local):
Assurez vous que la donnée du dispositif affiche bien Test lorsque vous saisissez l’url complétée ci-dessous dans votre navigateur web :

[scheme]://[username:password@][host][:port]/json.htm?type=command&param=udevice&idx=[idx]&svalue=Test

host : votre adresse IP fixe ou votre nom de domaine accessible depuis internet
scheme : “http” ou “https” si vous disposez d’un certificat SSL
idx : Le numéro d’identification de votre dispositif IFTTT (menu Règlages > Dispositifs > Colonne Idx)
Reportez vous à la documentation associée pour les paramètres restants
Notez bien précisement cette URL, vous en aurez besoin pour réaliser la suite

Hope it helps.

Image
Image
Pi 4 (8Go) sous buster avec Conbee II / Z-Stick Gen 5 / RFXCOM 433 XL / Domoticz 2022.01
Pi 3B+ sous bullseye avec ZDongle-E; et Pi zéro 2W pour octoprint :-)
garycooper
Messages : 453
Inscription : 07 août 2017, 23:58

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par garycooper »

Merci pour ton aide ! Mais... mmhhh... Je ne sais pas trop quoi en conclure...
Dans les logs, j'ai ça :
2020-05-02 21:15:29.807 Status: Incoming connection from: 54.146.176.61
2020-05-02 21:15:29.975 Status: LUA: Device based event fired on 'IFTT', value 'get:temperature:de la chambre de Lana'
.
J'ai vérifié dans le script et le libellé du capteur correspond précisément à la sonde que j'interroge.
Kyrille
Messages : 95
Inscription : 23 juin 2019, 16:12

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par Kyrille »

Petite question : as-tu réellement appelé ton switch IFTT (comme je le lis dans ton log) ou IFTTT comme il faudrait pour que le script puisse analyser le get:temperature:nomrenvoyepargoogleassistant ?

Envoyé depuis mon téléphone en utilisant Tapatalk
Dernière modification par Kyrille le 03 mai 2020, 10:48, modifié 1 fois.
Pi 4 (8Go) sous buster avec Conbee II / Z-Stick Gen 5 / RFXCOM 433 XL / Domoticz 2022.01
Pi 3B+ sous bullseye avec ZDongle-E; et Pi zéro 2W pour octoprint :-)
garycooper
Messages : 453
Inscription : 07 août 2017, 23:58

Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home

Message par garycooper »

Bien vu ! J'avais effectivement oublié un "T" ... J'ai également allégé en nintégrant qu'un seul google home. J'intègrerai les autres quand j'aurai réussi avec un.

C'est un peu mieux, mais c'est pas trop ça ... :
2020-05-02 23:01:18.157 Status: LUA: tts is 404
2020-05-02 23:01:28.138 Status: LUA: Device based event fired on 'IFTTT', value 'get:temperature:de la chambre de Lana'
Dernière modification par garycooper le 02 mai 2020, 23:05, modifié 3 fois.
Répondre