[Tuto] Piloter sa box Domoticz avec Google Assistant

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.
bierdok
Messages : 18
Inscription : 14 sept. 2018, 10:12

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par bierdok »

Bonsoir Babac,

En effet les tableaux blinds, lights et sensors contenus au début du script sont des exemples.
Tu peux bien évidement t'en inspirer et les modifier selon tes dispositifs. ;)
Babac
Messages : 13
Inscription : 13 déc. 2017, 15:01

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par Babac »

Merci de prendre le temps de me répondre
Donc j'ai modifier quelque dispositif dans le tableau lights j'ai remplacer salon-lumière 1 et 2 par LED TV et lampe boule quand je dit allume toute les lumière aucune réaction le capteur ifttt reçois bien le message.
J'ai fait un copier coller du scripts j ai utilisé domoticz pour l'implanter. mon URL dans ifttt est ¨"http://user:mdp@.dns/json.htm?type=command&param=udevice&idx=434&svalue=switch:On:{{TextField}} 434 est l IDX du capteur virtuel ifttt.

encore merci ;)
bierdok
Messages : 18
Inscription : 14 sept. 2018, 10:12

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par bierdok »

Deux choses à vérifier :
  • La syntaxe des noms de tes interrupteurs, c'est sensible à la casse.
  • Les clés vocales, pas d'accents, ni de majuscules, ni d'espaces par exemple "toutes les lumières" devient "toutesleslumires".
L'idéal serait de débugger les lignes 70 à 75 du script présent sur le blog.
Babac
Messages : 13
Inscription : 13 déc. 2017, 15:01

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par Babac »

bonjour
Pour les clés vocale j'ai laisser se qui avait.
quand tu dit la syntaxe des noms de mes interrupteur c'est sensible à la casse sa veut dire qu il faut que le noms de mon interrupteur soi le même que dans le scripts?
Et pour débugger les lignes 70 à 75 du script je ses pas comment faire :roll:
sa va être compliqué avec mon manque de connaissance ;)
merci
Babac
Messages : 13
Inscription : 13 déc. 2017, 15:01

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par Babac »

Voici le scripts

Code : Tout sélectionner

commandArray = {}

local blinds = {
	["Chambre 1 - Volet"]="celuidelachambredelapetite lachambredelapetite levoletdelachambredelapetite levoletroulantdelachambredelapetite lesvoletsdeschambres touslesvolets touslesvoletsroulants",
	["Chambre 2 - Volet"]="celuidelachambre lachambre levoletdelachambre levoletroulantdelachambre lesvoletsdeschambres touslesvolets touslesvoletsroulants",
	["Cuisine - Volet"]="celuidelacuisine lacuisine levoletdelacuisine levoletroulantdelacuisine touslesvolets touslesvoletsroulants",
	["Salon - Volet 1"]="celuidedroite levoletdedroite levoletroulantdedroite levoletdedroitedusalon levoletroulantdedroitedusalon lesalon lesvoletsdusalon lesvoletsroulantsdusalon touslesvolets touslesvoletsroulants",
	["Salon - Volet 2"]="celuidumilieu levoletdumilieu levoletroulantdumilieu levoletdumilieudusalon levoletroulantdumilieudusalon lesalon lesvoletsdusalon lesvoletsroulantsdusalon touslesvolets touslesvoletsroulants",
	["Salon - Volet 3"]="celuidegauche levoletdegauche levoletroulantdegauche levoletdegauchedusalon levoletroulantdegauchedusalon lesalon lesvoletsdusalon lesvoletsroulantsdusalon touslesvolets touslesvoletsroulants",
}

local lights = {
	["Balcon - Lumière 1"]="celledubalcon lebalcon lalumiredubalcon lespotdubalcon lejardin lalumiredujardin leslumiresdujardin lesspotsdubalcon lesspotsdujardin toutesleslumires",
	["Balcon - Lumière 2"]="celledelaterrasse laterrasse lalumiredelaterrasse lespotdelaterrasse lejardin lalumiredujardin leslumiresdujardin lesspotsdubalcon lesspotsdujardin toutesleslumires",
	["Chambre 1 - Lumière 1"]="celledelapetite lapetite lachambredelapetite lalumiredelachambredelapetite leslumiresdelachambredelapetite leschambres leslumiresdeschambres toutesleslumires",
	["Chambre 1 - Lumière 2"]="laguirlande laguirlandedelapetite laguirlandedelachambredelapetite leslumiresdelachambredelapetite toutesleslumires",
	["Chambre 2 - Lumière"]="celledelachambre lachambre lalumiredelachambre leslumiresdelachambre leschambres leslumiresdeschambres toutesleslumires",
	["Cuisine - Lumière 1"]="lesspots lesspotsdelacuisine lacuisine leslumiresdelacuisine toutesleslumires",
	["Cuisine - Lumière 2"]="celledelacuisine lalumiredelacuisine lacuisine leslumiresdelacuisine toutesleslumires",
	["Cuisine - Lumière 3"]="lesspots lesspotsdelacuisine lacuisine leslumiresdelacuisine toutesleslumires",
	["Entrée - Lumière"]="celledelentree lentree lalumiredelentree lepalier lalumiredupalier toutesleslumires",
	["Escalier - Lumière"]="celledelescalier lescalier lalumiredelescalier lescalierdusoussol ladescentedusoussol toutesleslumires",
	["LED TV"]="celledelatable latable lalumiredelatable lalumiredelatabledusalon lesalon lalumiredusalon leslumiresdusalon toutesleslumires",
	["Lumière 1"]="celleducanap lecanap lalumireducanap lalumireducanapdusalon lesalon lalumiredusalon leslumiresdusalon toutesleslumires",
	["Salon - Lumière 3"]="celledelatl latl lalumiredelatl lalumiredelatldusalon lesalon lalumiredusalon leslumiresdusalon toutesleslumires",
	["Salle de bain - Lumière"]="celledelasalledebain lasalledebain lalumiredelasalledebain toutesleslumires",
	["WC - Lumière"]="celledeswc celledestoilettes lestoilettes leswc lalumiredestoilettes lalumiredeswc toutesleslumires"
}

local sensors = {
	["Hygrostat"]="lavmc lavmcsur lhygrostat lhygrostatsur lhumidit lhumiditsur lhumiditdelair lhumiditdelairsur lhumiditdanslair lhumiditdanslairsur letauxdhumidit letauxdhumiditsur letauxdhumiditdelair letauxdhumiditdelairsur letauxdhumiditdanslair letauxdhumiditdanslairsur",
	["Thermostat"]="lechauffage lechauffagesur lethermostat lethermostatsur latemprature latempraturesur latempraturedelair latempraturedelairsur latempraturedanslair latempraturedanslairsur"
}

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 == 'switch' then
            local value = get(deviceValue, 2)
            local text = get(deviceValue, 3):gsub("%W", ""):lower()
            for light,words in pairs(lights) do
                for word in words:gmatch("%w+") do
                    if text == word then
                        commandArray[light] = 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
emylive
Messages : 39
Inscription : 21 mars 2017, 22:43

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par emylive »

Bonjour,
Super tuto mais je suis encore trop newbie :?

*dans IFTTT mon aplet est ok
Applet ran
Jan 21 - 1:15 PM
Google Assistant
If You say "allume $", then Make a web request
Fontaine
Hide details
Ingredients
CreatedAt
January 21, 2019 at 01:15PM
TextField
Fontaine

*Dans domoticz le retour de mon switch IFTTT
2019-01-21 13:16:18 switch:On:tous les dispositifs
2019-01-21 13:15:14 switch:On:Fontaine

*Dans mon script :/home/pi/scripts/lua/script_device_ifttt.lua
local switchs = {
["Fontaine"]="fontaine eaudelafontaine eauduchat eaudechamalo toutesleslumires touslesdispositifs",

*Mon device dans domoticz
2019-01-21.png
2019-01-21.png (170.38 Kio) Consulté 7564 fois
et la fontaine ne s'allume pas :x
Si vous pouvez m'aiguiller pour trouver mon erreur!!
Domoticz+Xiaomi gateway
bierdok
Messages : 18
Inscription : 14 sept. 2018, 10:12

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par bierdok »

Bonsoir emy,

Il ne semble pas y avoir d'erreur dans ce que j'ai pu voir.
Si tu testes une des url paramétrée dans IFTTT à partir d'une connexion 3G ou 4G ça donne quoi ?
Pourrais-tu faire des captures d'écran de tes applets IFTTT en prenant soin de flouter les données sensibles ?
emylive
Messages : 39
Inscription : 21 mars 2017, 22:43

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par emylive »

bierdok a écrit : 24 janv. 2019, 21:33 Bonsoir emy,

Il ne semble pas y avoir d'erreur dans ce que j'ai pu voir.
Si tu testes une des url paramétrée dans IFTTT à partir d'une connexion 3G ou 4G ça donne quoi ?
Pourrais-tu faire des captures d'écran de tes applets IFTTT en prenant soin de flouter les données sensibles ?
Merci Bierdock pour ton attention!

je pense que le problème viens de mon mot de passe:
Quand je me connecte http://identifient:mdp@***.myddnd.me:8080//json.htm?type=command&param=udevice&idx=73&svalue=test
j'ai "{
"status" : "OK",
"title" : "Update Device"
}"
seulement si je me suis déjà loggé dans un onglet de chrome à Domoticz, sinon j'ai l'erreur "401 Unauthorized".

Dans les paramètres sécurité de Domoticz j'ai Authentification: "page de connexion"

Voici mon log domoticz quand je fait la commande vocale à google home : 2019-01-25 10:01:32.054 Status: Incoming connection from: 52.87.223.233

Et mon applet ifttt:
Applet ifttt
Applet ifttt
IMG_20190125_101203.jpg (174.66 Kio) Consulté 7504 fois
Domoticz+Xiaomi gateway
dxfantome
Messages : 114
Inscription : 14 sept. 2018, 23:29

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par dxfantome »

Je sais pas si ca change quelque chose , mais pour ma part je suis en "Basic-Auth" et non "page de connexion" ,et je ne rencontre aucun probleme pour piloter ma box domoticz via google assistant
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
bierdok
Messages : 18
Inscription : 14 sept. 2018, 10:12

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant

Message par bierdok »

Bonjour,

Pour ma part, j'ai toujours utilisé la page de connexion pour m'identifier à Domoticz.

Regardes dans la documentation dédié à l'authentification si tu n'aurais pas oublié une étape (base64..).

Envoyé de mon GT-I9505 en utilisant Tapatalk

Répondre