Page 1 sur 7
[Bash] Vigilance météo
Publié : 17 nov. 2014, 09:07
par jackslayter

- vigilance device2.png (6.03 Kio) Consulté 17999 fois
depuis la version 2134
Ce script va vous permettre d'afficher l'état de vigilance et risque météorologique.
pour cela il faut créer un virtual alert et récupérer son IDX (
http://easydomoticz.com/ajout-dun-texte ... al-sensor/)
Code : Tout sélectionner
#!/bin/bash
#vigilance.sh
color=$(curl http://api.domogeek.fr/vigilance/VOTRE DEPARTEMENT 75/color)
risk=$(curl http://api.domogeek.fr/vigilance/VOTRE DEPARTEMENT75/risk)
if [ $color = "vert" ]; then
col=1
elif [ $color = "jaune" ]; then
col=2
elif [ $color = "orange" ]; then
col=3
elif [ $color = "rouge" ]; then
col=4
echo "subject: Vigilance" $color "risque de" $risk > /var/tmp/mail.txt
echo >> /var/tmp/mail.txt
curl --url "smtps://smtp.mail.x.com:465" --ssl-reqd --mail-from "expéditeur" --mail-rcpt "destinataire" --upload-file /var/tmp/mail.txt --user "adresse compte smtp:mot de passe"$
fi
curl http://192.168.1.2:8080/json.htm?type=command\¶m=udevice\&idx=VOTRE IDX 99\&nvalue=$col\&svalue="$risk"
un petit chmod
pour l’exécuter (toute les 4 heures) un cron * */4 * * * sudo /home/pi/domoticz/scripts/vigilance.sh 2>&1 >> /dev/null
Re: Vigilance météo
Publié : 18 nov. 2014, 13:54
par steph54
Je n'arrive pas à integrer ce script vigilance dans Domoticz (lua)
Il récupère bien la valeur via api.domogeek, mais le passage avec commandArray ne passe pas et je n'ai pas d'idée !
Il faut bien créer un device virtuel texte et mettre ensuite :
commandArray['UpdateDevice'] = '58|0|'..colour..' risk of '..risk..''
(mon idx est 58)
Merci de votre aide
Re: Vigilance météo
Publié : 18 nov. 2014, 14:08
par jackslayter
steph54 a écrit :Il faut bien créer un device virtuel texte et mettre ensuite :
commandArray['UpdateDevice'] = '58|0|'..colour..' risk of '..risk..''
(mon idx est 58)
Merci de votre aide
oui c'est ça
tu as créé un dummy device dans harware et après créé un virtual text ?
tu as bien un dossier /var/tmp/ ?
http://easydomoticz.com/ajouter-un-ram- ... raspberry/
Re: Vigilance météo
Publié : 21 nov. 2014, 15:32
par jackslayter
MàJ -> nouveau device avec script
domoticz v2134
Re: Vigilance météo
Publié : 23 nov. 2014, 11:40
par ben33880
Salut,
Avec la version 2134, y a t.il besoin du script ?
J'ai créé le virtual alert, ensuite que faut il faire ?
Merci.
Re: Vigilance météo
Publié : 23 nov. 2014, 12:21
par patrice
Bonjour
j'ai pondu un article sur le blog concernant cela
http://easydomoticz.com/comment-creer-un-widget-alerte/
Tu devrais y trouver les réponses
Re: Vigilance météo
Publié : 23 nov. 2014, 16:57
par ben33880
ok, pour info -> il faut créer le virtual alert et ensuite mettre le script vigilance.sh dans le répertoire scripts.
Re: Vigilance météo
Publié : 23 nov. 2014, 21:49
par patrice
Dans le répertoire script , voulais tu dire plutôt que sans le repertoire script
Re: Vigilance météo
Publié : 23 nov. 2014, 23:32
par ben33880
je vois pas de quoi tu parles

Re: Vigilance météo
Publié : 16 déc. 2014, 18:52
par hobbe
Bonjour,
J'utilise Domoticz depuis quelques mois, et je commence à me mettre aux scripts LUA.
Je voulais savoir quel est l'intérêt de passer par des scripts bash (sh) programmés par cron, plutôt que de le faire en LUA ?
Basé sur l'exemple donné plus haut, et comme je suis sous Windows, j'ai fait le même exercice en lua :
Code : Tout sélectionner
-- Meteo France vigilance from domogeek API
-- domoticz/scripts/lua/script_time_vigilance.lua
-- Information from Meteo France is updated everyday at 6AM and 4PM
-- This script will check at 6.10AM and 4.10PM
function os.capture(cmd, raw)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if raw then return s end
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
return s
end
commandArray = {}
time = os.date("*t")
-- Trigger at 6:10 and 16:10
if (time.min == 10 and ((time.hour == 6) or (time.hour == 16))) then
-- Path to curl
local curl = 'C:\\bin\\curl.exe'
-- Device ID (Type Alert on virtual hardware)
local idx = '123'
-- Department (France)
local dept = '75'
local cmd = curl .. ' http://api.domogeek.fr/vigilance/' .. dept
local color = os.capture(cmd .. '/color', true);
local risk = os.capture(cmd .. '/risk', true);
print('Vigilance: ' .. cmd .. ': ' .. color .. ' / ' .. risk)
local sValue = 'Risque : ' .. risk
local nValue = 0
if color == "vert" then nValue = 1
elseif color == "jaune" then nValue = 2
elseif color == "orange" then nValue = 3
elseif color == "rouge" then nValue = 4
else nValue = 0
end
-- Update device idx with nValue and sValue
commandArray['UpdateDevice'] = idx .. '|' .. nValue .. '|' .. sValue
end
return commandArray
Merci