[TUTO] Notifications Domoticz par la Google Home

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Répondre
js-martin
Messages : 479
Enregistré le : 22 mars 2015, 22:08
Contact :

[TUTO] Notifications Domoticz par la Google Home

Message par js-martin »

Bonjour,

Voici un petit tuto pour avoir les notifications Domoticz sur sa Google Home.

L'avantage de cette solution est qu'elle est totalement intégrée à Domoticz (via notification HTTP), générique (pas besoin de faire un script par message) et sans avoir besoin d'ouvrir de port (ce qui n’est pas possible avec la solution IFTTT).

Il faut installer ces quelques sources : SoX, Pico, une librairie SoX mp3 et stream2chromecast

Code : Tout sélectionner

sudo apt-get install sox

sudo apt-get install libttspico-utils

sudo apt-get install libsox-fmt-mp3

git clone https://github.com/bronche/stream2chromecast
Il faut pour cela utiliser mon petit script Shell ci-dessous qui prend en paramètre 3 données :

1/ le texte du #MESSAGE de Domoticz

par exemple "la porte du congélateur est ouverte"

2/ le volume de 0 à 1 (1=100%)
si le volume est sur 0, le script règle un volume pour le jour et un autre pour la soirée/nuit.

3/ le "jingle" : il est possible d'avoir une introduction en mp3 avant l'annonce Domoticz
0 = pas de jingle
1 = jingle 1
2 = jingle 2
...

attention, le jingle doit être en mono et 48kHz
pour faire une conversion d'un mp3 standard vers un tel format, SoX va nous être utile :

Code : Tout sélectionner

sox votre_mp3.mp3 jingle1.mp3 channels 1 rate 48k
Il faut créer un dossier /jingles dans le répertoire /domoticz


Si vous manquez d'idée pour vos jingles :
https://www.musicscreen.be/musique-libr ... gles1.html

Le script notification_google_home.sh :

Code : Tout sélectionner

#!/bin/bash
# notification_google_home.sh Script de notification de message vocal sur la Google Home 
# by JS Martin - 11/02/2018 - version 0.1
 
message=$1 # text message
volume=$2  # 0=auto 0.1=10% 1=100%
jingle=$3  # jingle track number (0=no track 1=default track)  


# ------ parameters ---------

# Autoset volume if  volume=0
Start_day="0740"
Start_night="2100"
Night_vol="0.2"
Day_vol="0.4"

# number of arg correction
case "$#" in  
"1")
    volume="0"
    jingle="1"
    ;;
"2")
    jingle="1"
    ;;
"3")
    ;;
*)
    echo "Usage: notification_google_home <text> [volume 0..1] [jingle_track]"
    exit 1
    ;;
esac

# Jingle track
case "$jingle" in
"1")
    jingle_name="/home/pi/domoticz/jingles/jingle1.mp3"
    ;;
"2")
    jingle_name="/home/pi/domoticz/jingles/jingle2.mp3"
    ;;
*)
    jingle_name="/home/pi/domoticz/jingles/jingle1.mp3"
    ;;
esac


# IP Google Home
IPGH="192.168.10.100"


echo "Notification : "$message

if [ $volume != "0" ]; then
   echo "Volume : "$volume
else
   CUR_TIME=`date +%H%M`
   if [ $CUR_TIME -ge $Start_day -a $CUR_TIME -le $Start_night ]; then
      echo "Day volume"
      volume=$Day_vol
   else
      echo "Night volume"
      volume=$Night_vol
   fi
   echo "Volume = automatique - set to "$volume
fi

#Set Google Home volume
sudo python /home/pi/stream2chromecast/stream2chromecast.py -devicename $IPGH -setvol $volume
#Text to WAV
sudo pico2wave -l fr-FR -w /tmp/message.wav "$message"
#WAV to MP3
sudo sox -v 0.99 /tmp/message.wav -r 48k  /tmp/message.mp3 speed 1.06
#Add jingle if needed
if [ $jingle != "0" ]; then #add jingle
    sudo sox  $jingle_name /tmp/message.mp3 /tmp/message2.mp3
    sudo cp /tmp/message2.mp3 /tmp/message.mp3
fi
#MP3 to Google Home 
sudo python /home/pi/stream2chromecast/stream2chromecast.py -devicename $IPGH /tmp/message.mp3
(Pensez à le rendre exécutable: sudo chmod +x notification_google_home )

Ensuite, dans domoticz, il suffit de paramétrer les notifications HTTP :
2174E120-39F7-4B43-800B-764959948249.jpeg
2174E120-39F7-4B43-800B-764959948249.jpeg (217.7 Kio) Vu 18183 fois
petit rappel https://easydomoticz.com/nouveau-system ... ification/

Et dans vos devices, vous pouvez activer la notification HTTP :
Capture2.JPG
Capture2.JPG (79.41 Kio) Vu 18321 fois
Vous pouvez même passer des paramètres (ici volume à 40% et jingle n°2) :
Capture3.JPG
Capture3.JPG (67.24 Kio) Vu 18321 fois
Modifié en dernier par js-martin le 12 févr. 2018, 23:08, modifié 6 fois.
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien

totof60
Messages : 351
Enregistré le : 29 avr. 2016, 09:31

Re: [TUTO] Notifications Domoticz par la Google Home

Message par totof60 »

Merci cela semble super, je vais tester.

Juste une petite typo : pas de "s" majuscule au "sudo" :

Code : Tout sélectionner

Sudo apt-get install libttspico-utils
Domoticz V4.10717
sous raspbian-Stretch, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY

js-martin
Messages : 479
Enregistré le : 22 mars 2015, 22:08
Contact :

Re: [TUTO] Notifications Domoticz par la Google Home

Message par js-martin »

corrigé !

oui, je n'ai pas trouvé cette solution sur Internet... un scoop pour ce forum :lol:
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien

totof60
Messages : 351
Enregistré le : 29 avr. 2016, 09:31

Re: [TUTO] Notifications Domoticz par la Google Home

Message par totof60 »

Ca fonctionne du premier coup !

Peut être faut il préciser pour les novices comme moi qu'il faut créer un répertoire " jingles" pour y mettre les jingles.

La voix robotisée est moche mais efficace :D

merci
Domoticz V4.10717
sous raspbian-Stretch, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY

js-martin
Messages : 479
Enregistré le : 22 mars 2015, 22:08
Contact :

Re: [TUTO] Notifications Domoticz par la Google Home

Message par js-martin »

J’ai ajouté ta remarque.

Content que cela fonctionne pour toi.

J’ai déjà plein de notifications maintenant!
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien

sbhc68
Messages : 47
Enregistré le : 01 juil. 2015, 13:32

Re: [TUTO] Notifications Domoticz par la Google Home

Message par sbhc68 »

Bonjour,

Merci, super tuto.

Pour ceux qui souhaitent le faire fonctionner sous ubuntu 16.04, les packages picco, sont disponibles à cette adresse

https://packages.ubuntu.com/fr/xenial/s ... pico-utils
Domoticz (Debian) + RFXtrx433E + Aeon ZW090-GEN5 + Zigate Wifi + 1 GreenWave PowerNode 1 port + 1 FGS212+ 2 Mini Keypad RFID + 2 FGMS001 + 1 DSD37 + 2 PowerNode 6 port + 1 Zipato PSE02 + 6 sonoffs

sbhc68
Messages : 47
Enregistré le : 01 juil. 2015, 13:32

Re: [TUTO] Notifications Domoticz par la Google Home

Message par sbhc68 »

Je pense que, dans ton script, il faut inverser la "# Jingle track" avec "# number of arg correction" afin que la variable jingle_name soit bien defini (Dans le cas ou cela n'est pas précisé dans les arguments de la commande).
Domoticz (Debian) + RFXtrx433E + Aeon ZW090-GEN5 + Zigate Wifi + 1 GreenWave PowerNode 1 port + 1 FGS212+ 2 Mini Keypad RFID + 2 FGMS001 + 1 DSD37 + 2 PowerNode 6 port + 1 Zipato PSE02 + 6 sonoffs

js-martin
Messages : 479
Enregistré le : 22 mars 2015, 22:08
Contact :

Re: [TUTO] Notifications Domoticz par la Google Home

Message par js-martin »

sbhc68 a écrit :Merci, super tuto.
Merci à toi de ton retour !

J’ai pris en compte ta remarque.
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien

landaisbenj
Messages : 695
Enregistré le : 12 mars 2017, 19:24

Re: [TUTO] Notifications Domoticz par la Google Home

Message par landaisbenj »

Bonjour. Merci pour le tuto c'est effectivement ce qu'il manquait. Je n'aime pas trop pico je me demande si il ne serait pas possible de trouver la voix du GH quelque part. Il y a un sdk spécialement pour créer son propre google assistant et il y a des assistants vocales sur internet qui utilise la voix de google. Je vais fouiller pour voir si ça ne se récupère pas.

[EDIT] Je met ca de coté pour plus tard mais avec un token dev google on devrait pouvoir creer un fichier mp3 avec cet appel:
Mais bon se sera surement moins rapide...

Code : Tout sélectionner

curl 'https://translate.google.com/translate_tts?ie=UTF-8&q=BONJOUR&tl=fr&client=t&tk=995126.592330' -H 'user-agent: stagefright/1.2 (Linux;Android 5.0)' -H 'referer: https://translate.google.com/' > google_tts.mp3
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway

js-martin
Messages : 479
Enregistré le : 22 mars 2015, 22:08
Contact :

Re: [TUTO] Notifications Domoticz par la Google Home

Message par js-martin »

Oui, c'est surement possible.

Toutefois, même si la voix est moins belle que celle de Google, elle a certains avantages :

https://openjarvis.com/content/tts

Pour une notification, nous ne sommes pas à 3 secondes près... donc on pourrait tester avec la voix de la GH !

première piste :
https://github.com/pndurette/gTTS
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien

Répondre