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]
papoo
Messages : 2025
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Vigilance météo

Message par papoo »

Extrait du wiki http://www.domoticz.com/wiki/Events
Device scripts each receive 7 tables from Domoticz: devicechanged, otherdevices, otherdevices_lastupdate, otherdevices_svalues, otherdevices_idx, uservariables and uservariables_lastupdate

Variable scripts receive 7 tables from Domoticz: otherdevices, otherdevices_lastupdate, otherdevices_svalues, otherdevices_idx, , uservariables, uservariables_lastupdate and uservariablechanged

Time scripts receive 6 tables: otherdevices, otherdevices_lastupdate, otherdevices_svalues, otherdevices_utility, otherdevices_idx, uservariables and uservariables_lastupdate
.../...
Temperature, humidity and barometer values for other devices can be found in otherdevices_temperature['yourdevice'],otherdevices_humidity['yourdevice'] and otherdevices_barometer['yourdevice'] tables
pas de nvalues

il faut passer par une requête json pour récupérer le level

ou utiliser le script vigilance météo en lua pour ajouter tes propres actions dedans
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

dokho
Messages : 559
Enregistré le : 28 déc. 2014, 19:32

Re: Vigilance météo

Message par dokho »

Bonjour,

Je vais regarder du coté de ce script :)

Merci.

aleph0
Messages : 303
Enregistré le : 27 avr. 2016, 08:06
Localisation : Hérault (34)

Re: Vigilance météo

Message par aleph0 »

Bonjour à tous !

J'aime bien ce sript, merci :)

J'ai apporté une petite modification à la version lua pour ne faire qu'un seul appel à l'api domogeek au lieu de 2 :

Code : Tout sélectionner

    local cmd = 'curl http://domogeek.entropialux.com/vigilance/' .. dept..'/all'
    local vigilance = os.capture(cmd, true)
    
    fill1, flood, fill2, color, fill3, risk = string.match(vigilance,"{\"(.-)\": \"(.-)\", \"(.-)\": \"(.-)\", \"(.-)\": \"(.-)\"}$")
le reste est identique

gom
Messages : 18
Enregistré le : 09 juin 2017, 15:51
Localisation : Nantes

Re: Vigilance météo

Message par gom »

Bonjour aleph0, bonjour à tous,

Merci pour cette ligne de commandes mais moi j'ai dû déclarer les variables pour que ça fonctionne. ;)

Le script complet :

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 5PM
-- This script will check at 6.10AM and 5.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 17:10
if (time.min == 10 and ((time.hour == 6) or (time.hour == 17))) then

  -- Path to curl
  local curl = '/usr/bin/curl'

  -- Device ID (Type Alert on virtual hardware)
  local idx = '63'
  -- Department (France)
  local dept = '44'
  
  local cmd = 'curl http://domogeek.entropialux.com/vigilance/' .. dept..'/all'
  local vigilance = os.capture(cmd, true)
  local fill1 = nil
  local fill2 = nil
  local fill3 = nil
  local flood = nil
  local color = nil
  local risk = nil
  fill1, flood, fill2, color, fill3, risk = string.match(vigilance,"{\"(.-)\": \"(.-)\", \"(.-)\": \"(.-)\", \"(.-)\": \"(.-)\"}$")
  
  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

Guillaume

yanael
Messages : 209
Enregistré le : 16 nov. 2015, 09:16

Re: Vigilance météo

Message par yanael »

Bonjour petit question sur le script,

il fonctionne parfaitement, trop parfaitement même.
Je m'explique il se déclenche 3 fois par jour à X H et Y Mn, en cas d alerte il envoi des notifications , sauf que durant la minute de déclenchement il envoi 7-8 fois la même notification, je suppose donc que le script à le temps de s exécuter plusieurs fois.

n'étant pas du tout un pro du lua: y a t il une possibilité pour que le script n’envoie qu'une seule notification en cas d'alerte ?

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

Re: Vigilance météo

Message par jackslayter »

tu utilises quoi comme appli de notifications?
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

vil1driver
Messages : 5502
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Vigilance météo

Message par vil1driver »

Salut,

Tu as certainement négligé de choisir le bon type de script
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

yanael
Messages : 209
Enregistré le : 16 nov. 2015, 09:16

Re: Vigilance météo

Message par yanael »

Nma. Et j ai pris le script du premier post que j ai supposé à jour.
À tord ?

vil1driver
Messages : 5502
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Vigilance météo

Message par vil1driver »

je parle du type...

device, time, etc..

mais excuse moi, j'ai tellement l’habitude de parler de script lua que je n'avais pas fait attention que c'était du shell lancé par cron..
surtout que ce script à une version lua dont on parlait 3 messages plus haut, j'ai fais l'amalgame, désolé, oublie ce que j'ai dit ;)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

yanael
Messages : 209
Enregistré le : 16 nov. 2015, 09:16

Re: Vigilance météo

Message par yanael »

Si il y en a un autre tout aussi efficace et sans ce PBS je suis preneurs.

L avantage du premier c est les commentaires et autres qu il ne semble pas y avoir sur le script complet de gom.

Sinon comment faire pour n avoir qu un seul lancement du script du premier post et non pas une suite de lancement pendant 1 mns ?

Édit : en plus je dis une énorme connerie. C est le l'UA que j utilise..
Bon je reposé ma question sur l autre post...
Je me perds encore sur le forum

Répondre