Page 9 sur 12
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 14 mai 2019, 12:30
par Phebus06
Re c'est encore moi
Afin de comprendre le script, puisque je suis une bille en programmation mais que j'aime bien bidouiller, j'aimerai savoir qu'elle phrase le script envoi en se servant du capteur virtuel texte ??? est ce un phrase en API json un peu du style de celle que l'on met dans webhook ???
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 16 mai 2019, 16:32
par Phebus06
Bon je me répond à moi même en fait il m 'a fallu juste digérer le fonctionnement général et finalement c'est l'action IFTTT qui est en API/json et c'est juste le programme en lua qui lit le capteur virtuel texte et qui envoi un ordre à Domoticz par un simple commandArray des plus classiques

Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 19 mai 2019, 11:43
par Phebus06
Petit TUTO complément de ce super script pour commander aussi sa Tv mais en passant par un Broadlink pro :
Le fonctionnement :
Un ordre est donné par la voix Google Homme mini vers IFTTT vers Domoticz Capteur virtuel texte vers programme en Lua vers Interrupteur virtuel Chaîne Tv vers Broadlink pro vers ma TV en infra rouge
IFTTT :

- IFTTT 01.png (27 Kio) Consulté 8277 fois

- IFTTT 2.png (41.49 Kio) Consulté 8277 fois
Domoticz Interrupteur virtuel :

- Interrupteur virtuel Tv.png (85.08 Kio) Consulté 8277 fois

- Interrupteur virtuel Tv 2.png (125.03 Kio) Consulté 8277 fois
Bout de programme à rajouter
Code : Tout sélectionner
elseif command == 'Tv' then
local text = get(deviceValue, 2):gsub("%W", ""):lower()
local value = get(deviceValue, 3)
for Tv,words in pairs(Tv) do
for word in words:gmatch("%w+") do
if text == word then
local chaine = value
if (tonumber(chaine) < 10) then
local chaine = chaine *10
commandArray[Tv] = 'Set Level: ' .. chaine
elseif (tonumber(chaine) > 9) and (tonumber(chaine) ~= 10) and (tonumber(chaine) ~= 20) and (tonumber(chaine) ~= 30) and (tonumber(chaine) ~= 40) and (tonumber(chaine) ~= 50) then
local chaine1 = (string.sub(chaine,1,1) *10)
local chaine2 = (string.sub(chaine,2,2) *10)
print (chaine1)
print (chaine2)
commandArray[1] = {[Tv] = 'Set Level: ' .. chaine1}
commandArray[2] = {[Tv] = 'Set Level: ' .. chaine2 .. ' AFTER 1'}
elseif (tonumber(chaine) == 10) or (tonumber(chaine) == 20) or (tonumber(chaine) == 30) or (tonumber(chaine) == 40) or (tonumber(chaine) == 50) then
local chaine1 = (string.sub(chaine,1,1) *10)
local chaine2 = (string.sub(chaine,2,2) +100)
print (chaine1)
print (chaine2)
commandArray[1] = {[Tv] = 'Set Level: ' .. chaine1}
commandArray[2] = {[Tv] = 'Set Level: ' .. chaine2 .. ' AFTER 1'}
end
end
end
end
Et voilou....
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 08 janv. 2020, 13:12
par Gleneroo
Bonjour
J'ai mis en place cette solution et cela fonctionne bien pour allumer / éteindre les lumières, ainsi que descendre complètement ou monter complètement les volets roulants.
Par contre la fonction "règle" ne fonctionne pas avec les volets roulants.
Voici par exemple un volet roulant:
J'imagine bien que c'est entre les lignes 73 et 82 que je dois changer un truc... Apparemment remplacer le 'set' par l'intruction qui va bien et faire qu'elle s'applique bien au type blinds... Je veux bien un peu d'aide.
Merci
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 12 janv. 2020, 15:31
par Gleneroo
Ca ne fonctionne pas (réglage position volets roulants).
J'ai essayé ça:
elseif command == 'set' then
local value = get(deviceValue, 3)
local text = get(deviceValue, 2):gsub("%W", ""):lower()
for blind,words in pairs(blinds) do
for word in words:gmatch("%w+") do
if text == word then
commandArray['SetSetPoint:' ..blind] = '' ..value
end
end
end
Et j'ai essayé ça:
elseif command == 'set' then
local value = get(deviceValue, 3)
local text = get(deviceValue, 2):gsub("%W", ""):lower()
for blind,words in pairs(blinds) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[blind] = 'Set Level: ' .. value
end
end
end
Aucun des deux ne fonctionne
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 18 janv. 2020, 16:59
par Gleneroo
Réponse:
https://github.com/domoticz/domoticz/issues/3827
commandArray[blind] = 'Set Level: ' .. tostring(value)
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 28 janv. 2020, 14:32
par Gleneroo
Au lieu d'voir toujours "d'accord" comme réponse, pour avoir une réponse plus contextuelle, on peut modifier le script ainsi:
Code : Tout sélectionner
elseif command == 'switch' then
local appconnu=false
local deja=false
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
if otherdevices[switch]==value and value=='On' then
os.execute('curl -s --globoff "http://192.168.1.104:1880/nodered?mess=3"') -- déjà allumé
deja=true
print ("déjà allumé")
end
if otherdevices[switch]==value and value=='Off' then
os.execute('curl -s --globoff "http://192.168.1.104:1880/nodered?mess=2"') -- déjà éteint
deja=true
print ("déjà éteint")
end
appconnu=true
commandArray[switch] = value
if deja == false then
os.execute('curl -s --globoff "http://192.168.1.104:1880/nodered?mess=1"') -- c'est bon
print ("c'est bon")
end
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
if appconnu==false then
os.execute('curl -s --globoff "http://192.168.1.104:1880/nodered?mess=4"') -- pas trouvé d'appareil
print ("pas trouvé d'appareil")
end
end
Cela permet d'avoir un message personalisé
si on demande d'allumer (ou d'éteindre) un appareil inconnu "appareil inconnu" "je ne vois pas d'appareil de ce nom" etc,
si l'appareil est déjà allumé (ou éteint) "c'est déjà allumé" "c'est déjà éteint" "c'est déjà le cas"
ou si l'opération a été faite "c'est fait" "voilà" "c'est bon" etc.
Il faut installer node red (tient bien sur le même rPi), mettre à jour les adresses, et se mettre un petit programmer dans node red avec:
- http GET avec /mess dans mon cas
- un switch pour recueillir la situation (1/2/3/4 dans mon cas ; vous pouvez aussi transmettre directement le message à faire dire en Base64 si vous préférez, mais BASE64 marche pas bien pour les accents alors j'ai tout mis sur node red directement)
- un random et un autre switch si comme moi vous aimez bien varier aléatoirement les réponses.
- le node dédié pour faire parler le google home (actuellement c'est cast2 je crois)
Le flow node red:
Dans IFTTT, enlever le "d'accord" et remplacer par le gros point (comme dans l'IFTTT pour la température).
Un autre tuto ou le contributeur a fait une manip similaire:
viewtopic.php?t=4617&start=110
neosqualls 06/02/2018 06:39
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 29 janv. 2020, 07:52
par djksage
Mais c'est ce qu'il manque au GH, des réponses plus naturelle que le OK, d'accord,...
Par contre un petit tuto dédié à cette fonction serait vraiment appréciable de tous car en lisant l'autre poste et le tiens j'ai pas l'impression de pouvoir le faire fonctionner par manque de connaissance et compréhension de mode red.
En tous cas merci
Envoyé de mon HD1913 en utilisant Tapatalk
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 29 janv. 2020, 12:37
par Gleneroo
djksage a écrit : 29 janv. 2020, 07:52
Mais c'est ce qu'il manque au GH, des réponses plus naturelle que le OK, d'accord,...
Par contre un petit tuto dédié à cette fonction serait vraiment appréciable de tous car en lisant l'autre poste et le tiens j'ai pas l'impression de pouvoir le faire fonctionner par manque de connaissance et compréhension de mode red.
En tous cas merci
Envoyé de mon HD1913 en utilisant Tapatalk
Hello ! Je ne vais pas faire un tuto plus détaillé, mais si tu essaies de le mettre en place et que tu as des questions précises, je peux t'aider. La première étape est d'installer node red. Il y a plein de tutos disponibles en ligne. Voici comment l'installer sur raspberry:
https://nodered.org/docs/getting-started/raspberrypi
J'ai édité mon post plus haut pour ajouter le flow node red. Ce n'est probablement pas idéal (mon premier essai avec node red), mais ça fonctionne nickel.
Re: [TUTO] Piloter sa box Domoticz avec Google Assistant
Publié : 30 janv. 2020, 21:06
par viju
Bonsoir à tous,
Tout d’abord merci pour l’animation, les super tutos de vous proposez , je vous lis tous les jours avec un grand plaisir .
J’avais installé GNOTIFY ( je ne retrouve plus comment …)sur ma carte SD qui a laché .J’ai voulu réinstaller gnotify : Impossible de faire coexister avec DOMOTICZ . Au démarrage de Domoticz j’ai la version:
2020-01-23 21:42:53.946 Status: PluginSystem: Started, Python version '3.4.4'.
(J’ai été obligé de désynstaller python 3.7 car domoticz bug,j’ai réinstallé python 3.4 domoticz refonctionne mais je n’ai plus pip3 ..)et toujours plus de control des volets , ma TV par la voix..
Comment faire pour avoir pip3 avec une version acceptée par DOMOTICZ ?
voila mes logs
Lorsque je lance l’installation de gnotify j’ai un échec :
pi@raspberrypi:~ $ sudo pip3 install pip --upgrade
sudo: pip3 : commande introuvable
pi@raspberrypi:~ $ python -V
Python 2.7.16
pi@raspberrypi:~ $ python3 -V
-bash: python3 : commande introuvable
pi@raspberrypi:~ $ pip2 --version
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)
pi@raspberrypi:~ $ pip3 --version
-bash: pip3 : commande introuvable
Voila les versions installées:
pi@raspberrypi:~ $ ls /usr/bin/python*
/usr/bin/python /usr/bin/python3.4
/usr/bin/python2 /usr/bin/python3.4-config
/usr/bin/python2.7 /usr/bin/python3.4m
/usr/bin/python2.7-config /usr/bin/python3.4m-config
/usr/bin/python2-config /usr/bin/python-config
/usr/bin/python2-pbr
pi@raspberrypi:~ $
pi@raspberrypi:~ $ dpkg --get-selections | grep libpython
libpython-all-dev:armhf install
libpython-dev:armhf install
libpython-stdlib:armhf install
libpython2-dev:armhf install
libpython2-stdlib:armhf install
libpython2.7:armhf install
libpython2.7-dev:armhf install
libpython2.7-minimal:armhf install
libpython2.7-stdlib:armhf install
libpython3.5:armhf install
libpython3.5-dev:armhf install
libpython3.5-minimal:armhf install
libpython3.5-stdlib:armhf install
libpython3.7-minimal:armhf deinstall
j'ai essayé update-alternatives ...NOK
Au démarrage Domoticz j’ai la version:
2020-01-23 21:42:53.946 Status: PluginSystem: Started, Python version '3.4.4'.
J’ai été obligé de désynstaller python 3.7 car domoticz bug, mais forcément je n’ai plus pip3 ..
Comment faire pour avoir pip3 avec une version acceptée par DOMOTICZ ?
Merci pour votre aide, j'ai beaucoup lu surpython,beaucoup testé , beaucoup planté mais la je suis sec....