Page 4 sur 6
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 02 mai 2020, 22:43
par Kyrille
Le 404, c'est plus classique ! Le script n'a trouvé aucune entrée dans le tableau captors. Il faut que le nom du device matche parfaitement avec celui que tu vises (accents, espaces et caractères spéciaux inclus) et il sera reconnu avec le texte delachambredelana dans ton exemple. As-tu bien mis ce texte exactement ? Est-ce possible de copier-coller ton tableau ?
PS : n'édite pas complètement tes messages, les miens ne veulent plus rien dire derrière... Mais on dirait que tu as su te débarrasser du 404.
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 02 mai 2020, 22:54
par Kyrille
garycooper a écrit :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 je n'ai pas de son qui sort de la GH :
Code : Tout sélectionner
2020-05-02 22:37:51.263 Status: Incoming connection from: 54.87.137.84
2020-05-02 22:37:51.408 Status: LUA: property is temperature
2020-05-02 22:37:51.408 Status: LUA: otherdevices[captor] is 22.0
2020-05-02 22:37:51.408 Status: LUA: values[0] is 22.0
2020-05-02 22:37:51.425 Status: LUA: Device based event fired on 'IFTTT', value 'get:temperature:de la chambre de Lana'
As-tu mis deux gnotify d'affilé (mais même un seul devrait au moins faire un dong) ? As-tu mis les options -H et -l ? Est-ce que tu arrives à faire autre chose que des dong directement en ligne de commande ?
Mais normalement, côté script, c'est gagné, le dernier souci est du côté de gnotify. Et en l'occurrence, pour moi, c'était d'avoir oublié l'upgrade de pip3 qui rendait muet GH dans l'appel du script (c'etait OK en ligne de commande).
Envoyé depuis mon téléphone en utilisant Tapatalk
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 03 mai 2020, 09:42
par garycooper
Merci pour ton aide ! J'ai bien fait l'upgrade de pip3 mais ça n'a rien changé pour moi
Ça avance mais ça ne progresse pas :
2020-05-03 09:40:02.248 Status: Incoming connection from: 3.83.151.78
2020-05-03 09:40:02.344 Status: LUA: property is temperature
2020-05-03 09:40:02.344 Status: LUA: otherdevices[captor] is 21.9
2020-05-03 09:40:02.344 Status: LUA: values[0] is 21.9
2020-05-03 09:40:02.360 Status: LUA: Device based event fired on 'IFTTT', value 'get:temperature:de la chambre de Lana'
2020-05-03 09:40:02.344 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_ifttt.lua: /home/pi/domoticz/scripts/lua/script_device_ifttt.lua:81: attempt to call a nil value (global 'round')
la ligne 81 correspond à
Code : Tout sélectionner
table.insert(sentences,"la température "..captor.." est de "..tostring(round(values[0],1)).."°")
le tableau du script est celui-ci :
Code : Tout sélectionner
local captors = {
["Chambre Ciprien"]="delachambredeciprien danslachambredeciprien deschambres detouteslespices delamaison",
["Chambre Lana"]="delachambredelana danslachambredelana deschambres detouteslespices delamaison",
["Chambre Dorian"]="delachambrededorian danslachambrededorian detouteslespices delamaison",
["SdB enfants"]="delasalledebaindesenfants danslasalledebaindes enfants detouteslespices delamaison",
["Salon"]="dusalon danslesalon dusjour dansleséjour detouteslespices delamaison",
["Piscine"]="delapiscine danslapiscine detouteslespices delamaison"
}
Le capteur de température de la chambre de Lana s'écrit "Chambre Lana".
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 03 mai 2020, 10:28
par garycooper
Ok, j'ai recollé la ligne 81 du script original
table.insert(sentences, captor..", "..tostring(values[0]).." °")
je n'ai plus de log d'erreur :
Code : Tout sélectionner
2020-05-03 10:22:36.422 Status: Incoming connection from: 3.83.151.78
2020-05-03 10:22:36.561 Status: LUA: property is temperature
2020-05-03 10:22:36.561 Status: LUA: otherdevices[captor] is 22.0
2020-05-03 10:22:36.561 Status: LUA: values[0] is 22.0
2020-05-03 10:22:36.561 Status: LUA: tts is Chambre Lana, 22.0 �
2020-05-03 10:22:45.616 Status: LUA: Device based event fired on 'IFTTT', value 'get:temperature:de la chambre de Lana'
mais GH n'énonce pas la temperature alors qu'il y a bien le "dong" et le device IFTT affiche
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 03 mai 2020, 10:40
par Kyrille
Hello !
Oui, désolé, pour le message d'erreur lié à round, voici le morceau de code qu'il aurait fallu rajouter en début de script par exemple:
Code : Tout sélectionner
function round(num, dec)
if num == 0 then
return 0
else
local mult = 10^(dec or 0)
return math.floor(num * mult + 0.5) / mult
end
end
C'est juste pour forcer un seul chiffre après la virgule car j'ai des aqara qui renvoient 22.79° et c'était inutilement lourd à énoncer. Pas la peine d'utiliser round si tu n'es pas dans ce cas.
Une autre piste : peux-tu remplacer ° par degres par exemple (sans le é) dans la construction du tts ?
Soit :
Code : Tout sélectionner
table.insert(sentences, captor..", "..tostring(values[0]).." degres")
Mais côté script, normalement, c'est tout bon à partir du moment où la phrase à énoncer (tts, text to speach) est construite correctement. C'est bien ton cas. Ton problème est plutôt lié à gnotify lui-même. Pour l'histoire du " °", j'ai lu que ça posait souci à certains. Chez moi, il n'y a que les accents qui posent souci (GH muet donc), quand j'utilise l'approche captors2 pour avoir une réponse plus sympa (voir message précédent dans ce fil :
https://easydomoticz.com/forum/viewtopi ... 126#p69126). Tu auras certainement besoin de cette approche captors2 pour que GH réponde "salle de bain enfants" plutôt qu'un moche "SDB enfants" (alors que c'est un nom logique pour le device). Par exemple, "salle de bain étage" posera souci à cause de l'accent. Mais, tu pourras t'attacher à tous ces petits détails quand Google voudra enfin te parler !
Et je le redis, mets bien 2 gnotify pour que le premier force le réveil (dong) et que le 2ème énonce ton texte.
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 03 mai 2020, 15:00
par garycooper
Merci encore pour ton aide ! J'ai bien 2 gnotify. Après avoir remplacé le "°" par "degre" GH me dit enfin la température ! Maintenant que ça fonctionne, je vais pouvoir ajouter les autres GH et l'approche captors2 que j'avais également envisagé.
Je vais rajouter ton code de rounds parce que j'ai aussi des capteurs aqara.
Merci !
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 03 mai 2020, 15:02
par Kyrille
Super ! En espérant que ça serve à d'autres également. Enjoy !
Envoyé depuis mon téléphone en utilisant Tapatalk
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 04 mai 2020, 20:58
par garycooper
Une astuce pour que GH lise les accents ? Parce que "temperature" en mode anglais, c'est pas top et si je mets l'accent, ça ne donne rien. J'ai tenté en remplçant le "é" par un "ai" mais ce n'est pas non plus très joli ...
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 14 juin 2020, 23:33
par Gardaux
Bonsoir tout le monde.
Pour ma part pas de soucis lors de l'installation.
Mais quand j’exécute : gnotify bonjour les gens
La réponse est :
Usage: gnotify -H [ip-addresses] -l [language] [text-to-speech]
Please enter one or more ip addresses separated by commas as an option.
Pourtant j'ai bien lancé ceci :
echo -e "export GNOTIFY_IP=192.168.0.231\nexport GNOTIFY_LANG=fr" | sudo tee --append /etc/profile
Avant de redémarrer le RPi
Une idée ?
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 16 juin 2020, 08:55
par Gardaux
J'avance doucement doucement....
J'ai réglé mon problème précédent en mettant à jour python3
donc du coup : gnotify bonjour les gens me renvoie bien une réponse de GH
Maintenant j'en suis à la construction du ifttt :
Say a phrase with a text ingredient
What do you want to say? : Température $
What do you want the Assistant to say in response? : ° ou degrés ou degres ou [null]
Language : French
Make a web request
URL :
https://192.168.0.234:7979/json.htm?typ ... emperature: {{TextField}}
Les réponses sont :
si [null] : Ok action en cours
si ° ou degrés ou degres : juste le mot degrés ou degres sans la valeur de la température
Voici le retour du log : 2020-06-16 09:08:20.140 Status: Warning: Expecting svalue with at least 2 elements separated by semicolon, 1 elements received ("get:temperature:du salon"), notification not sent (Hardware: 39 - RFXCom trx433MHz, ID: 20481, Unit: 1, Type: 52 - Temp + Humidity, SubType: 10 - Rubicson/IW008T/TX95)
Help please help
