Page 5 sur 6
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 19 juin 2020, 09:13
par Kyrille
Hello,
J'ai l'impression qu'il te manque les <<< et >>> autour du {{TextField}}(et un espace en trop entre temperature et ce dernier morceau ?)
Relis ce commentaire :
https://easydomoticz.com/forum/viewtopi ... 558#p82558
Et si tu peux modifier le script de la même manière, on verra des choses intéressantes dans le log comme :
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'
ce qui permettra de voir à quel moment le problème apparait.
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 21 juin 2020, 06:39
par denis_brasseur
Gardaux a écrit : 16 juin 2020, 08:55
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}}
J'avais retenu que la syntaxe était celle ci (cela fonctionne chez moi) :
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¶m=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
Code : Tout sélectionner
scheme://username:password@host:port/json.htm?type=command¶m=udevice&idx=idx&svalue=get:temperature:{{TextField}}
host : votre adresse IP fixe ou votre nom de domaine accessible depuis internet, et non pas l'adresse ip interne
scheme : “http” ou “https” si vous disposez d’un certificat SSL
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 22 juin 2020, 11:49
par Gardaux
Bonjour,
Merci pour vos réponses, j'utilise bien un https car adresse securisée avec un certificat,
Je respecte la syntaxe :
scheme://username:password@host:port/json.htm?type=command¶m=udevice&idx=313&svalue=get:temperature:<<<{{TextField}}>>>
La seule réponse que j'ai c'est "degre" car je l'ai mis dans la reponse de GH ainsi que le log ci-dessous :
2020-06-22 11:37:13.133 Status: Incoming connection from: 192.168.0.254
2020-06-22 11:37:14.312 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: 29953, Unit: 1, Type: 52 - Temp + Humidity, SubType: 1 - THGN122/123/132, THGR122/228/238/268)
2020-06-22 11:37:14.312 Status: Incoming connection from: 3.92.2.37
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 18 août 2020, 00:35
par galaga
Bonjour,
Après avoir longtemps utilisé sans aucun problème gnotify dans mon installation domoticz, je rencontre pour la première fois une erreur. Je viens de mettre à jour mon Rasbian et refaire toute l(installation de domoticz en version 2020.2
l'installation de gnotify se passe bien mais au lancement j'obtiens le message suivant:
Traceback (most recent call last):
File "/usr/local/bin/gnotify", line 11, in <module>
load_entry_point('gnotify==0.1.0', 'console_scripts', 'gnotify')()
File "/usr/local/lib/python2.7/dist-packages/gnotify/gnotify.py", line 58, in main
from pychromecast import Chromecast
File "/usr/local/lib/python2.7/dist-packages/pychromecast/__init__.py", line 12, in <module>
from .discovery import discover_chromecasts, start_discovery, stop_discovery
File "/usr/local/lib/python2.7/dist-packages/pychromecast/discovery.py", line 5, in <module>
import zeroconf
File "/usr/local/lib/python2.7/dist-packages/zeroconf/__init__.py", line 365
def log_exception_warning(cls, *logger_data: Any) -> None:
^
SyntaxError: invalid syntax
Auriez-vous une idée pour corriger ce problème ?
Merci.
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 18 août 2020, 06:29
par Keros
Bonjour galaga et bienvenue sur le forum
Peut être une mise à jour de Python : la dernière est 3.8.5.
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 21 août 2020, 13:52
par galaga
bonjour et merci pour l'accueil.
Je viens de vérifier la version de python et je suis en 3.8.0
Mais dans l'erreur je vois que le chemin indiqué est python2.7
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 29 août 2020, 13:45
par nitrosurf
bonjour à tous. ca fait plusieurs mois que je demande la temperature du salon à mon GH mais il ne me réponds jamais !
quand je le demande sur mon téléphone, il me m'ecrit • (le caractere spécial en forme de gros point) mais ne dit rien
dans domoticz pourtant j'ai bien get:temperature:salon dans le dummy IFTTT.
ensuite j'ai suivi le forum pour ajouter des logs mais ils n'apparaissent pas
si une ame charitable peut consulter mon script_device_ifttt.lua pour voir d'où vient l'erreur.
gnotify parle bien depuis le terminal, et python est à jour.
merci d'avance
Code : Tout sélectionner
commandArray = {}
local blinds = {
}
local captors = {
["Temperature Salon"]="dusalon danslesalon dusjour danslesjour detouteslespices delamaison"
["Temperature Cuisine"]="cuisine delacuisine"
}
local sensors = {
}
local scenes = {
}
local switchs = {
}
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
local function get(deviceValue, position)
local current = 0
for value in string.gmatch(deviceValue, '([^:]+)') do
current = current + 1
if current == position then
return value
end
end
return value
end
for deviceName,deviceValue in pairs(devicechanged) do
if deviceName == 'IFTTT' then
local command = get(deviceValue, 1)
if command == 'blind' then
local value = get(deviceValue, 2)
local text = get(deviceValue, 3):gsub("%W", ""):lower()
for blind,words in pairs(blinds) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[blind] = value
end
end
end
elseif command == 'set' then
local value = get(deviceValue, 3)
local text = get(deviceValue, 2):gsub("%W", ""):lower()
for sensor,words in pairs(sensors) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[sensor] = 'Set Level: ' .. value
end
end
end
elseif command == 'get' then
local raw = get(deviceValue, 3)
local text = raw:gsub("%W", ""):lower()
local sentences = {}
for captor,words in pairs(captors) do
for word in words:gmatch("%w+") do
if text == word then
local property = get(deviceValue, 2)
local values = {}
local index = 0
for value in otherdevices[captor]:gmatch("[^;]+") do
values[index] = value
index = index + 1
end
if property == 'temperature' then
print ("property is "..property)
print ("otherdevices[captor] is "..otherdevices[captor])
print ("values[0] is "..tostring(values[0]))
table.insert(sentences, captor..", "..tostring(values[0]).." °")
end
if property == 'humidity' and index > 1 then
table.insert(sentences, captor..", "..tostring(values[1]).." %")
end
end
end
end
local tts = "404"
if #sentences > 0 then
tts = table.concat(sentences, ".")
end
print ("tts is "..tts)
os.execute("gnotify -H 192.168.0.27 -l fr OK")
os.execute("gnotify -H 192.168.0.27 -l fr "..tts)
elseif command == 'scene' then
local text = get(deviceValue, 2):gsub("%W", ""):lower()
for scene,words in pairs(scenes) do
for word in words:gmatch("%w+") do
if text == word then
commandArray['Scene:'..scene] = 'On'
end
end
end
elseif command == 'switch' then
local value = get(deviceValue, 2)
local text = get(deviceValue, 3):gsub("%W", ""):lower()
for switch,words in pairs(switchs) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[switch] = value
end
end
end
for sensor,words in pairs(sensors) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[sensor] = value
end
end
end
end
end
end
return commandArray
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 08 oct. 2020, 14:21
par chris57
A titre d'information, depuis la version 1.9.0 homebridge-gsh prends en charge les capteurs de température et d'humidité.
Pour ma part, j'ai fait un test et en effet dans Google Home je vois mes sondes.
Par contre, je n'arrive pas à accèder aux valeurs.
En effet, si je fais "OK Google, donne moi la température de la salle de bain", il me répond "Sonde SDB n'est pas accessible"
("Sonde Sdb" c'est le nom du capteur dans Domoticz, HomeBridge et Google Home)
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 08 oct. 2020, 22:42
par TurboX
Ouf je le sens moins seul avec ce souci. Je tourne avec homebridge en docker et les capteurs de température remontent bien jusqu'à Google Home mais j'ai le même "message" d'erreur.
Re: [ TUTO] Obtenir les valeurs de ses sondes via Google Home
Publié : 10 oct. 2020, 21:23
par garycooper
J'ai du me refaire une installation complète de domoticz suite à bug (arrêt intempestif de domoticz, accès SSH impossible ...) et impossible pour moi de le refaire fonctionner ... L'installation marche bien, mais le
gnotify -H [ip-addresses] -l [language] [text-to-speech]
ne fonctionne déjà pas ... J'ai le message suivant
Traceback (most recent call last):
File "/usr/local/bin/gnotify", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/dist-packages/gnotify/gnotify.py", line 108, in main
server_ip = cast.socket_client.socket.getsockname()[0]
AttributeError: 'NoneType' object has no attribute 'getsockname'
Ma version python est la 3.7.3