Vigilance météo

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
jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Vigilance météo

Message par jackslayter »

vigilance device2.png
vigilance device2.png (6.03 Kio) Vu 12580 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\&param=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
Modifié en dernier par jackslayter le 21 nov. 2014, 15:45, modifié 4 fois.
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

steph54
Messages : 3
Enregistré le : 18 nov. 2014, 13:48

Re: Vigilance météo

Message 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

jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Vigilance météo

Message 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/
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Vigilance météo

Message par jackslayter »

MàJ -> nouveau device avec script
domoticz v2134
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

ben33880
Messages : 259
Enregistré le : 13 nov. 2014, 21:12

Re: Vigilance météo

Message 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.

patrice
Messages : 1640
Enregistré le : 22 sept. 2014, 21:51

Re: Vigilance météo

Message 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
Raspberry Pi model B+, RFXComm,8 interrupteurs Chacon, 5 ds180b 1-Wire, 3 douilles Chacon, 1 contact de porte Chacon, 1 module variateur,module emetteur 54700, Aeon Stick Z-wave, 1 MultiSensor Aeon, accés à distance.
aka thegritche@domoticz forum

ben33880
Messages : 259
Enregistré le : 13 nov. 2014, 21:12

Re: Vigilance météo

Message par ben33880 »

ok, pour info -> il faut créer le virtual alert et ensuite mettre le script vigilance.sh dans le répertoire scripts.
Modifié en dernier par ben33880 le 23 nov. 2014, 23:31, modifié 1 fois.

patrice
Messages : 1640
Enregistré le : 22 sept. 2014, 21:51

Re: Vigilance météo

Message par patrice »

Dans le répertoire script , voulais tu dire plutôt que sans le repertoire script
Raspberry Pi model B+, RFXComm,8 interrupteurs Chacon, 5 ds180b 1-Wire, 3 douilles Chacon, 1 contact de porte Chacon, 1 module variateur,module emetteur 54700, Aeon Stick Z-wave, 1 MultiSensor Aeon, accés à distance.
aka thegritche@domoticz forum

ben33880
Messages : 259
Enregistré le : 13 nov. 2014, 21:12

Re: Vigilance météo

Message par ben33880 »

je vois pas de quoi tu parles :D

hobbe
Messages : 111
Enregistré le : 15 déc. 2014, 15:33

Re: Vigilance météo

Message 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

Répondre