Ce script ne sert à rien c’est pour cela que je l’aime bien. Il est né d’un défi lancé à la hâte genre:
elle sert à rien ta domotique, elle ne dis même pas bonjour lorsque je rentre.
Pour connaitre les occupants présents dans la maison, j’utilise le script livebox
les devices associés commencent tous par « Presence » suivi du prénom du propriétaire du téléphone, j’utilise donc dans ce script le terme générique « Presence* » pour surveiller le changement d’état d’un de ces devices
Pour les notifications j’utilise un chromecast via un script et une notification http
Quelques messages de bienvenue (commençant tous par un espace) :
- » Bienvenue chez toi »
- » Heureux de te revoir »
- » il est bon de te voir rentrer »
- » vraiment heureux de te savoir à la maison »
- » super, tu es rentré »
- » cool, tu es déjà de retour »
- » enfin à la maison »
n’hésitez pas à en proposer d’autre en commentaire
ensuite, 3 variables à configurer :
« matin » pour définir l’heure avant laquelle aucun message ne sera envoyé
« debut_soiree » pour définir l’heure après laquelle il sera notifié bonsoir au lieu de bonjour
« soir » pour définir l’heure après laquelle plus aucun message ne sera envoyé
ensuite une petite fonction round et le tour est joué
le script complet
--[[ bonjour.lua auteur = papoo update/mise à jour = 10/01/2019 creation = 5/11/2018 https://pon.fr/dzvents-souhaitez-la-bienvenue/ https://github.com/papo-o/domoticz_scripts/blob/master/dzVents/scripts/bonjour.lua --]] -------------------------------------------- ------------ Variables à éditer ------------ -------------------------------------------- local messages = { " Bienvenue chez toi", " Heureux de te revoir", " il est bon de te voir rentrer", " vraiment heureux de te savoir à la maison", " super, tu es rentré", " cool, tu es déjà de retour", " enfin à la maison" } local Devices = { 'Presence*' } -- liste des devices à surveiller séparés par des virgules s'il y en a plusieurs local matin = '08:00:00' -- aucun message ne sera envoyé avant cette heure (+1 heure pour l'heure d'hiver) local debut_soiree = '19:00:00' -- heure après laquelle il sera notifié bonsoir au lieu de bonjour (+1 heure pour l'heure d'hiver) local soir = '22:00:00' -- aucun message ne sera envoyé après cette heure (+1 heure pour l'heure d'hiver) local delai = 60 -- délai avant que le script considère la personne réellement partie -------------------------------------------- ----------- Fin variables à éditer --------- -------------------------------------------- local nomScript = 'Notification Bonjour' local versionScript = '1.0' return { active = true, on = { devices = Devices }, logging = { level = domoticz.LOG_DEBUG, -- level = domoticz.LOG_INFO, -- Seulement un niveau peut être actif; commenter les autres -- level = domoticz.LOG_ERROR, -- Only one level can be active; comment others -- level = domoticz.LOG_MODULE_EXEC_INFO, marker = nomScript..' '..versionScript }, execute = function(domoticz,switch) local Time = require('Time') local t = Time().getISO() local today = Time(domoticz.time.rawDate ..' '.. matin).getISO() local evening = Time(domoticz.time.rawDate ..' '.. debut_soiree).getISO() local tonight = Time(domoticz.time.rawDate ..' '.. soir).getISO() if switch.active and (switch.lastUpdate.minutesAgo > delai) and (t > today) and (t < tonight) then local function notification(message, SubSystem) domoticz.log("Envoi de la notification ",domoticz.LOG_DEBUG) if SubSystem == nil then domoticz.notify(message, message) else domoticz.notify(message, message, 'PRIORITY_NORMAL', ' ', ' ', SubSystem) end domoticz.log(message, domoticz.LOG_INFO) end local function rand(Table) element = Table[math.random(1, #Table)] return element end message = rand(messages) domoticz.log(switch.name, domoticz.LOG_DEBUG) local nom = string.gsub(switch.name, 'Presence ', '') domoticz.log("bonjour "..nom, domoticz.LOG_DEBUG) domoticz.log(message, domoticz.LOG_DEBUG) domoticz.log("heure "..t, domoticz.LOG_DEBUG) domoticz.log("matin "..today, domoticz.LOG_DEBUG) domoticz.log("soir "..tonight, domoticz.LOG_DEBUG) if t < evening then notification("Bonjour "..nom..", "..message, {domoticz.NSS_HTTP}) --[[ Systèmes de notification disponibles : NSS_GOOGLE_CLOUD_MESSAGING NSS_HTTP NSS_KODI NSS_LOGITECH_MEDIASERVER NSS_NMA NSS_PROWL NSS_PUSHALOT NSS_PUSHBULLET NSS_PUSHOVER NSS_PUSHSAFER Pour une notification sur plusieurs systèmes, séparez les systèmes par une virgule. Exemple :{domoticz.NSS_TELEGRAM, domoticz.NSS_HTTP} --]] else notification("Bonsoir "..nom.." "..message, {domoticz.NSS_HTTP}) --[[ Systèmes de notification disponibles : NSS_GOOGLE_CLOUD_MESSAGING NSS_HTTP NSS_KODI NSS_LOGITECH_MEDIASERVER NSS_NMA NSS_PROWL NSS_PUSHALOT NSS_PUSHBULLET NSS_PUSHOVER NSS_PUSHSAFER Pour une notification sur plusieurs systèmes, séparez les systèmes par une virgule. Exemple :{domoticz.NSS_TELEGRAM, domoticz.NSS_HTTP} --]] end end end }
retrouver la dernière version de ce script sur