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

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
bierdok
Messages : 18
Enregistré le : 14 sept. 2018, 10:12

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

Message par bierdok » 20 janv. 2019, 23:34

Ce tutoriel fait suite au tutoriel permettant le pilotage de sa box Domoticz (https://easydomoticz.com/forum/viewtopi ... =17&t=7125), il est donc nécessaire de l’avoir réalisé au préalable. Il est aussi nécessaire de disposer soit d’un haut-parleur intelligent Google Home ou Google Home Mini, soit d’un appareil de streaming Chromecast Ultra ou Chromecast. On appelera ce dernier “dispositif” dans la suite du tutoriel.

Installation de gnotify

Dans le but de simplifier le fait de faire parler son dispositif, je vous ai développé un petit programme en Pyhton appelé “gnotify” et disponible sur Github (https://github.com/bierdok/gnotify).

Pour l’installer, il vous suffit de vous connecter en SSH à votre box Domoticz et de lancer la commande suivante :

Code : Tout sélectionner

sudo pip3 --no-cache-dir install https://github.com/bierdok/gnotify/archive/master.zip
Configuration de gnotify

Vous allez avoir besoin de connecter votre dispositif sur le même réseau que votre box Domoticz pour qu’ils puissent communiquer entre eux.

L’adresse IP de votre dispositif doit être fixe pour ne pas changer à chaque redémarrage. Vous pouvez la réserver via les paramètres de votre routeur si ce n’est pas déjà le cas.

Tester le programme en complétant et en éxecutant la commande suivante :

Code : Tout sélectionner

gnotify -H [ip-address] -l [language] bonjour les gens
  • ip-address : l’adresse IP fixe de votre dispositif
  • language : la langue utilisée pour faire parler votre dispositif. Pour le français, le code à utiliser est “fr”.
Une fois le test concluant, enregistrez les paramètres en variables d’environnement en complétant et en éxecutant la commande suivante :

Code : Tout sélectionner

echo "export GNOTIFY_IP=[ip-address] && export GNOTIFY_LANG=[language]" >> /etc/profile
Ainsi au prochain redémarrage de votre box Domoticz, la commande suivante suffira à faire parler votre dispositif :

Code : Tout sélectionner

gnotify bonjour les gens
Création des applets IFTTT

Voici la liste des applets à utiliser pour l’obtention des valeurs des sondes :

Obtention de température

Code : Tout sélectionner

"Say a phrase with a text ingredient" > "Température $" > "•" > "[domoticz_baseurl]&get:temperature:<<<{{TextField}}>>>"
Obtention du taux d’humidité

Code : Tout sélectionner

"Say a phrase with a text ingredient" > "Taux d'humidité $" > "•" > "[domoticz_baseurl]&get:humidity:<<<{{TextField}}>>>"
Implémentation du script pour Domoticz

Le script LUA à utiliser est celui du tutoriel initial présent à cette adresse : https://bierdok.net/post/piloter-sa-box ... assistant/

Modifiez le tableau “captors” selon le nom des capteurs utilisés dans Domoticz.



Dites juste “Ok Google, température de la maison” pour tester.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


ycar
Messages : 2
Enregistré le : 24 août 2017, 18:47

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

Message par ycar » 04 févr. 2019, 20:39

Bonsoir bierdok,
Je n'arrive pas à installer gnotify sur mon raspberry j'ai le message "no such option: --no-cache-dir"
J'ai enlevé --no-cache-dir mais j'ai des " Exception" suite à un "warning : no files found matching '*h' under directory 'src'"
Pouvez vous m'indiquer une piste ?
Merci pour votre aide

dxfantome
Messages : 90
Enregistré le : 14 sept. 2018, 23:29

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

Message par dxfantome » 09 févr. 2019, 00:11

moi j'ai le droit a un probleme de permission:
-bash: /etc/profile: Permission non accordée
quand je tape:
echo "export GNOTIFY_IP=192.168.0.13 && export GNOTIFY_LANG=fr" >> /etc/profile
j'ai essayé aussi
sudo echo "export GNOTIFY_IP=192.168.0.13 && export GNOTIFY_LANG=fr" >> /etc/profile
mais méme probléme
orange pi one, raspberry pi 2 b,yeelink v2, rflink 433.92:inters/pir/écran projecteur,Broadlink ,sonde diy(temperature ,hyrgo,co2,particule fine pm10, pm5, pm2.5 /esp wifi et attiny 433) xiaomi: switch/cube/pir/mi flower

ZaGaPonG
Messages : 4
Enregistré le : 13 juin 2016, 11:03

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

Message par ZaGaPonG » 20 févr. 2019, 21:18

Hello,

L'auteur à mis à jour la ligne en question sur son article originel:

Code : Tout sélectionner

echo -e "export GNOTIFY_IP=[ip-address]\nexport GNOTIFY_LANG=[language]" | sudo tee --append /etc/profile
Merci à lui

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Oui_OuiBlog
Messages : 36
Enregistré le : 27 juil. 2017, 21:53

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

Message par Oui_OuiBlog » 22 avr. 2019, 22:30

Merci pour le tuto.

Par contre je n'arrive pas à installer Gnotify.
Si je lance "sudo pip3 --no-cache-dir install https://github.com/bierdok/...", la commande ne se lance pas : "no such option: --no-cache-dir"

Si je le lance sans les options, j'ai des exceptions et Gnotify ne s'installe pas.
"Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2595, in _dep_map
return self.__dep_map
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2457, in __getatt r__
raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 290, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/usr/lib/python3/dist-packages/pip/req.py", line 1266, in prepare_files
req_to_install.extras):
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2401, in requires
dm = self._dep_map
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2597, in _dep_map
self.__dep_map = self._compute_dependencies()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2630, in _compute_dependencies
common = frozenset(reqs_for_extra(None))
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2627, in reqs_for_extra
if req.marker_fn(override={'extra':extra}):
File "/usr/lib/python3/dist-packages/_markerlib/markers.py", line 113, in marker_fn
return eval(compiled_marker, environment)
File "<environment marker="">", line 1, in <module>
NameError: name 'platform_system' is not defined

Storing debug log for failure in /root/.pip/pip.log".

Une idée pour résoudre ça ?

Oui_OuiBlog
Messages : 36
Enregistré le : 27 juil. 2017, 21:53

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

Message par Oui_OuiBlog » 24 avr. 2019, 17:48

Je me répond à moi-même et à Ycar. Il faut mettre à jour pip3 avant de faire l'installation

> sudo pip3 install pip --upgrade

Après ça marche nickel

Oui_OuiBlog
Messages : 36
Enregistré le : 27 juil. 2017, 21:53

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

Message par Oui_OuiBlog » 24 avr. 2019, 19:23

Nouveau problème (désolé)

gnotify marche bien si je le lance directement
> gnotify blablabla
GH dit blablabla

Par contre, lorsque la commande est lancée dans le script il ne se passe rien. Pour tester
- J'ai mis des prints dans le script pour vérifier dans les logs que le script fonctionnait et récupérait le bon message (tts)
- j'ai remplacé os.execute("gnotify "..tts) par os.execute("gnotify blablabla")

GH devrait dire blablaba mais il ne dit rien

J'ai fait un autre essais avec os.execute("/usr/local/bin/gnotify blablabla") mais sans plus de succès.

J'ai fait un 3ème essais en créant un petit programme qui dit blablabla et celui la marche ...
commandArray = {}
os.execute("gnotify blablabla")
return commandArray


EDIT : j'ai trouvé une solution de dépannage mais moyennement satisfaisante

os.execute("gnotify -H [adresseIP] -l fr blablabla") fonctionne

En bref, les variables d'environnement ne sont pas disponibles quand le script est lancé depuis Domoticz

Si quelqu'un a une solution :)

Oui_OuiBlog
Messages : 36
Enregistré le : 27 juil. 2017, 21:53

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

Message par Oui_OuiBlog » 28 avr. 2019, 00:50

Un petit truc que j'ai rajouté pour ceux qui, comme moi, ne veulent pas renommer tous leurs capteurs pour qu'ils sonnent bien sous Google Home (j'ai des underscore dans tous mes noms ^^)

Un tableau de variable en début de fichier avec le nom du capteur et sa prononciation sous GH

local captors2 = {
["Chambre 1"]="de la chambre de la petite",
["Chambre 2"]="de la chambre",
["Cuisine"]="de la cuisine",
["Salle de bain"]="de la salle de bain",
["Salon"]="du salon"}

Ces lignes retrouvent la prononciation à partir du nom de capteur. Elles sont à insérer entre le end et le if property == 'temperature' then

for captor2,word2 in pairs(captors2) do
if captor2 == captor then
captor = word2
end
end

La modification des lignes de construction du message tts

if property == 'temperature' then
table.insert(sentences, "température "..captor..", "..tostring(values[0]).." °")
end
if property == 'humidity' and index > 1 then
table.insert(sentences, "humidité"..captor..", "..tostring(values[1]).." %")
end

jnoel68
Messages : 17
Enregistré le : 26 avr. 2016, 13:29

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

Message par jnoel68 » 13 mai 2019, 11:28

Je n'ai pas encore essayé, mais j'ai déjà 2 questions :
- mon domoticz est installé sur un NAS SYNO, pas un raspberry, sachant qu'il me semble avoir installé un python sur le NAS (à vérifer), est-ce que je peux utiliser gnotify aussi ? Comment l'installer sans pip ?
- c'est quoi la valeur de retour à mettre dans IFTTT ( "•" ) un point ? autre chose ?
Merci pour toutes ces bonnes idées

Hybris03
Messages : 9
Enregistré le : 30 août 2017, 10:25

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

Message par Hybris03 » 18 mai 2019, 12:26

Bonjour à tous,

je viens faire appel à votre aide car il y a quelque chose qui doit m'échapper.

Quand je dis "Ok Google, température du salon", il me répond "."

Pour détailler mon IFTTT :
What do you want to say? --> Température $
What do you want the Assistant to say in response? --> .
URL --> http://ID et pass@ip:port/json.htm?type=command&param=udevice&idx=58&get:temperature:<<<{{TextField}}>>>
Je pense que je me foire complètement dans l'url, mais j'ai essayé pas mal de truc et rien ne fonctionne comme je veux.
Aussi, j'ai un gros doute sur l'idx.

Bref, je suis un peu perdu sur la dernière étape.
Pouvez-vous m'apporter quelques précisions ? Je suis preneur si vous avez une capture d'écran de votre ifttt.

Un grand merci d'avance

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre