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&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

Code : Tout sélectionner

scheme://username:password@host:port/json.htm?type=command&param=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&param=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