LUA: vigilance météoFrance V2

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]
lamouette
Messages : 150
Enregistré le : 07 déc. 2016, 16:10

Re: LUA: vigilance météoFrance V2

Message par lamouette » 13 déc. 2017, 22:44

Oui, impeccable ;)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


papoo
Messages : 1291
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: LUA: vigilance météoFrance V2

Message par papoo » 13 déc. 2017, 22:50

cool :geek: :ugeek:
domoticz beta/RaspBerry PI3 jessie
https://pon.fr github

calouis
Messages : 24
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

Re: LUA: vigilance météoFrance V2

Message par calouis » 13 déc. 2017, 22:56

Bonsoir

J'ai régulièrement des pb avec les apostrophes...

Code : Tout sélectionner

2017-12-13 22:55:00.340 LUA: =========== vigilance meteofrance V2 (v1.04) ===========
2017-12-13 22:55:00.602 LUA: --- --- --- Conseils : Vent/Orange- Limitez vos déplacements et renseignez vous avant de les entreprendre.- Prenez garde aux chutes d'arbres ou d'objets.- N'intervenez pas sur les toitures.
2017-12-13 22:55:00.602 LUA: --- --- --- Commentaire : Fort coup de vent hivernal accompagné de grains orageux marqués, prévu cette nuit sur les régions proche de la Manche, puis gagnant les régions du nord-est. Réactons marquées des cours d'eau sur le bassin artois-picardie.
2017-12-13 22:55:00.604 LUA: --- --- --- Couleur Vigilance : 3 pour le departement : 80
2017-12-13 22:55:00.604 LUA: --- --- --- risque trouvée : 1
2017-12-13 22:55:00.604 LUA: --- --- --- Couleur Vigilance : 3 pour le departement : 80
2017-12-13 22:55:00.604 LUA: --- --- --- risque trouvée : 3
2017-12-13 22:55:00.604 LUA: --- --- --- risque trouvée : 2
2017-12-13 22:55:00.604 LUA: --- --- --- Couleur Vigilance Vague submersion : 3 pour le departement : 80
2017-12-13 22:55:00.604 LUA: --- --- --- vigilance : pluie-inondation
2017-12-13 22:55:00.604 LUA: --- --- --- vigilance : orages
2017-12-13 22:55:00.604 LUA: --- --- --- vigilances : pluie-inondation, orages
2017-12-13 22:55:00.605 LUA: --- --- --- CouleurVigilance : 3
2017-12-13 22:55:00.605 LUA: --- --- --- vigilance Forte pluie-inondation, orages --- --- ---
2017-12-13 22:55:00.605 LUA: ========= Fin vigilance meteofrance V2 (v1.04) =========
2017-12-13 22:55:00.607 Error: SQL Query("UPDATE DeviceStatus SET nValue='0',sValue='Vent/Orange- Limitez vos déplacements et renseignez vous avant de les entreprendre.- Prenez garde aux chutes d'arbres ou d'objets.- N'intervenez pas sur les toitures.',LastUpdate='2017-12-13 22:55:00' WHERE (ID = '625')") : near "arbres": syntax error
2017-12-13 22:55:00.609 Error: SQL Query("UPDATE DeviceStatus SET nValue='0',sValue='Fort coup de vent hivernal accompagné de grains orageux marqués, prévu cette nuit sur les régions proche de la Manche, puis gagnant les régions du nord-est. Réactons marquées des cours d'eau sur le bassin artois-picardie.',LastUpdate='2017-12-13 22:55:00' WHERE (ID = '626')") : near "eau": syntax error
J'avoue mon incompréhension !
_ Raspberry Pi2 Wheezy + Domoticz v3.8552
_ usbZwave + NeoCoolCam+ Fibaro fgms-001
_ RFXCom64 USB + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ custom page

papoo
Messages : 1291
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: LUA: vigilance météoFrance V2

Message par papoo » 13 déc. 2017, 23:05

bizarre effectivement, je n'ai pas ce problème sur ma machine.
mets tes devices conseils et commentaire à nil pour le moment, je te proposerai une solution rapidement.
domoticz beta/RaspBerry PI3 jessie
https://pon.fr github

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


calouis
Messages : 24
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

Re: LUA: vigilance météoFrance V2

Message par calouis » 13 déc. 2017, 23:11

Merci pour ton soutien.
J'ai le même pb, semble-t-il, pour ce script :

Code : Tout sélectionner

--[[   
~/domoticz/scripts/lua/script_time_Prevision_Pluie_jml.lua

OBJET :
Annonce dans combien de minutes il va pleuvoir, basé sur l'API de prévision pluie dans l'heure de météofrance :
- sur un device Alert : "Pluie forte dans 15 minutes"
- par mail
- par pushNotification
- par annonce Vocale : Je vous dérange pour vous prévenir qu'une pluie 'forte' est annoncée par météo france dans '35' minutes.

REQUIS :
device type : Alert , Nom :"Alerte Pluie dans l'heure"

ORIGIN  :
https://easydomoticz.com/prvision-pluie/
https://easydomoticz.com/forum/viewtopic.php?f=10&t=1991

API :
http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/920630
http://www.meteofrance.com/mf3-rpc-portlet/rest/lieu/facet/pluie/search/rueil-malmaison

FONCTIONNEMENT :
Toutes les 5 minutes , interroge l'API meteoFrance de prévision de pluie dans l'heure

Parcours les 12 cadrans :
Trouve l'heure de la 1er pluie
Trouve l'intensité la plus forte de l'heure
Avec   jsonPrevision.dataCadran[n].niveauPluie
    1 = Pas de précipitation
    2=faible
    3=modéré
    4=forte

met à jour le device : "Alerte Pluie dans l'heure"
alerte par :  mail, push notif, synthese vocale
Annonce vocale : seulement une annonce vocale , toutes les 3heures.

]]--
-- --------------------------------
------ Paramètres à éditer ------
--------------------------------
local CITY_CODE = xxx  -- Le code de votre ville est l'ID retourné par cette URL : http://www.meteofrance.com/mf3-rpc-portlet/rest/lieu/facet/pluie/search/nom de votre ville
local RAIN_ALERT_IDX = 1028  -- renseigner l'id du device alert associé si souhaité, sinon nil
local NOTIFICATION_PUSH = true
local NOTIFICATION_MAIL = true
local NOTIFICATION_VOCAL = false
local EMAIL = 'xx@gmail.com'  -- adresse mail, séparées par ; si plusieurs

---------------------------------------------------------------------------
--Fonctions
---------------------------------------------------------------------------
package.path = package.path .. ';' .. '/home/pi/domoticz/scripts/lua/?.lua'
My = require('My_Library')

---------------------------------------------------------------------------
commandArray = {}
now = os.date("*t")
if now.min % 5 == 0 then
    print('--- script_time_meteofrance_pluie_JML.lua --- ')
    json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()

    local config = assert(io.popen('curl http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/' .. CITY_CODE .. '.json'))
    local fileContent = config:read('*all')
    config:close()
    local jsonPrevision = json:decode(fileContent)

    rainLevel = 0
    when = 0
    data = jsonPrevision.dataCadran
    for i = 1, 12 do
        if data[i].niveauPluie > 1 and when == 0 then
            -- Find the first time that the rain is announced
            when = i
        end
        if data[i].niveauPluie > rainLevel then
            -- Find the maximum level of rain announced
            rainLevel = data[i].niveauPluie
        end
    end
   
    if rainLevel == 0 then
        commandArray[#commandArray + 1] = { ['SendEmail'] = 'Domoticz Anomalie#' .. os.date("%H:%M") .. ' -- Anomalie dans le script : script_time_PrevisionPluie_JML.lua<br> L\'Api de meteoFrance renvoie un JSON inattendu. niveauPluie n\'est pas correct (devrait être de 1 à 4)<br>Contenu du Json : -------------<br>' .. fileContent .. '#' .. EMAIL }
    elseif rainLevel == 1 then
        if otherdevices_svalues["Alerte Pluie dans l&#039heure"] ~= "Pas de pluie dans l&#039heure" then
            -- Don't update the device if there is no change. (so that don't change the timestamp of the devie)
            commandArray[#commandArray + 1] = { ['UpdateDevice'] = RAIN_ALERT_IDX .. "|1|Pas de pluie dans l&#039heure" }
        end
    else
        if when == 1 then
            whenText = " maintenant"
        else
            whenText = " dans " .. tostring(when * 5) .. " minutes"
        end

        if rainLevel == 2 then
            rainLevelText = "légère"
        elseif rainLevel == 3 then
            rainLevelText = "modérée"
        elseif rainLevel == 4 then
            rainLevelText = "forte"
        end

        commandArray[#commandArray + 1] = { ['UpdateDevice'] = RAIN_ALERT_IDX .. '|' .. rainLevel .. '|Pluie ' .. rainLevelText .. whenText }
        if My.Time_Difference(otherdevices_lastupdate["Alerte Pluie dans l&#039heure"]) > 3 * 60 * 60 then
            if NOTIFICATION_VOCAL == true and now.hour > 8 and now.hour <= 20 then
                My.Speak("Je vous dérange pour vous prévenir qu\'une pluie " .. rainLevelText .. " est annoncée par méteo france" .. whenText, "normal")
            end
            if NOTIFICATION_PUSH == true then
                commandArray[#commandArray + 1] = { ['SendNotification'] = 'Alerte Pluie#Pluie ' .. rainLevelText .. whenText }
            end
            if (DEBUG_MODE) then
                commandArray[#commandArray + 1] = { ['SendEmail'] = 'JSON Alerte Pluie#' .. os.date("%H:%M") .. ' -- Api de meteoFrance <br>Contenu du Json : -------------<br>' .. fileContent .. '#' .. EMAIL }
            end
        end
    end
end --if now.min
return commandArray

Code : Tout sélectionner

2017-12-13 22:40:00.582 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Prevision_Pluie_jml.lua: /home/pi/domoticz/scripts/lua/My_Library.lua:42: attempt to index local 'timestamp' (a nil value)
2017-12-13 22:44:00.690 Error: SQL Query("UPDATE DeviceStatus SET nValue='0',sValue='Vent/Orange- Limitez vos déplacements et renseignez vous avant de les entreprendre.- Prenez garde aux chutes d'arbres ou d'objets.- N'intervenez pas sur les toitures.',LastUpdate='2017-12-13 22:44:00' WHERE (ID = '625')") : near "arbres": syntax error
2017-12-13 22:44:00.692 Error: SQL Query("UPDATE DeviceStatus SET nValue='0',sValue='Fort coup de vent hivernal accompagné de grains orageux marqués, prévu cette nuit sur les régions proche de la Manche, puis gagnant les régions du nord-est. Réactons marquées des cours d'eau sur le bassin artois-picardie.',LastUpdate='2017-12-13 22:44:00' WHERE (ID = '1059')") : near "eau": syntax error
2017-12-13 22:45:00.695 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Prevision_Pluie_jml.lua: /home/pi/domoticz/scripts/lua/My_Library.lua:42: attempt to index local 'timestamp' (a nil value)
2017-12-13 22:50:00.636 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Prevision_Pluie_jml.lua: /home/pi/domoticz/scripts/lua/My_Library.lua:42: attempt to index local 'timestamp' (a nil value)
_ Raspberry Pi2 Wheezy + Domoticz v3.8552
_ usbZwave + NeoCoolCam+ Fibaro fgms-001
_ RFXCom64 USB + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ custom page

papoo
Messages : 1291
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: LUA: vigilance météoFrance V2

Message par papoo » 14 déc. 2017, 13:24

calouis a écrit :Merci pour ton soutien.
J'ai le même pb, semble-t-il, pour ce script :
tu l'as pas mal customisé
calouis a écrit :

Code : Tout sélectionner

2017-12-13 22:40:00.582 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Prevision_Pluie_jml.lua: /home/pi/domoticz/scripts/lua/My_Library.lua:42: attempt to index local 'timestamp' (a nil value)
l'erreur provient de ton fichier My_Library.lua, de la fonction contenant local timestamp
calouis a écrit :

Code : Tout sélectionner

2017-12-13 22:44:00.690 Error: SQL Query("UPDATE DeviceStatus SET nValue='0',sValue='Vent/Orange- Limitez vos déplacements et renseignez vous avant de les entreprendre.- Prenez garde aux chutes d'arbres ou d'objets.- N'intervenez pas sur les toitures.',LastUpdate='2017-12-13 22:44:00' WHERE (ID = '625')") : near "arbres": syntax error
ton domoticz ne supporte apparemment pas les tente de les remplacer par des comme ceci (ligne 387 à 410)

Code : Tout sélectionner

-- ====================================================================================================================	
-- Conseil météo	  
-- ====================================================================================================================			
			if ( dz_conseil_meteo ~= nil and conseil ~= nil and CouleurVigilance > 1 ) or ( dz_conseil_meteo ~= nil and conseil ~= nil and display_conseils == true ) then -- Mise à jour du devise texte conseil météo si il existe
			 commandArray[#commandArray+1] = {['UpdateDevice'] = dz_conseil_meteo.."|0|".. TronquerTexte(conseil,240)}
			 
			elseif (dz_conseil_meteo ~= nil and conseil == nil) or ( dz_conseil_meteo ~= nil and conseil ~= nil and display_conseils == false ) then -- Mise à jour du devise texte conseil météo si il existe même s'il n'y a pas de conseil disponible
			 commandArray[#commandArray+1] = {['UpdateDevice'] = dz_conseil_meteo.."|0|Aucun conseil disponible"}
			 	  
			end
-- ====================================================================================================================	
-- Commentaire météo	  
-- ====================================================================================================================		  
	  
			if ( dz_commentaire_meteo ~= nil and commentaire ~= nil and CouleurVigilance > 1 ) or ( dz_commentaire_meteo ~= nil and commentaire ~= nil and display_commentaire == true ) then -- Mise à jour du devise texte commentaire météo si il existe
			 commandArray[#commandArray+1] = {['UpdateDevice'] = dz_commentaire_meteo.."|0|".. commentaire}
			 
			 
			elseif (dz_commentaire_meteo ~= nil and commentaire == nil ) or ( dz_commentaire_meteo ~= nil and commentaire ~= nil and display_commentaire == false ) then -- Mise à jour du devise texte commentaire météo si il existe même s'il n'y a pas de commentaire disponible
			 commandArray[#commandArray+1] = {['UpdateDevice'] = dz_commentaire_meteo.."|0|Aucun commentaire disponible"}
			 
			end
 
-- ====================================================================================================================	
domoticz beta/RaspBerry PI3 jessie
https://pon.fr github

calouis
Messages : 24
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

Re: LUA: vigilance météoFrance V2

Message par calouis » 14 déc. 2017, 19:01

Bonsoir Papoo

Pour My_Library.lua, c'était aussi un pb d'apostrophe...plus de message d'erreur.
J'ai procédé de même pour ton script, mais pas de message avec apostrophe en ce moment.
Wait and see
En tout cas, merci pour ton aide.
_ Raspberry Pi2 Wheezy + Domoticz v3.8552
_ usbZwave + NeoCoolCam+ Fibaro fgms-001
_ RFXCom64 USB + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ custom page

balajol
Messages : 489
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Re: LUA: vigilance météoFrance V2

Message par balajol » 15 déc. 2017, 00:29

Bonsoir Papoo ou Bonjour,
Ce sript peut il fonctionner sous Windows 7 ?
J ai commencé à l'adapter (Curl..) mais coupure internet,je jette l'éponge pour ce soir (matin)
Merci par avance de ton aide éventuelle (et par ailleurs pour tous les scripts que tu partage )


cdt
Bertrand
v3.8153 sur PC Windows7 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, Divers SOMFY RTS etc..

jackslayter
Messages : 854
Enregistré le : 30 sept. 2014, 14:40
Localisation : RA38

Re: LUA: vigilance météoFrance V2

Message par jackslayter » 15 déc. 2017, 08:58

pour curl windows

Code : Tout sélectionner

	-- download curl : https://bintray.com/vszakats/generic/download_file?file_path=curl-7.54.0-win32-mingw.7z
	curl = 'c:\\Programs\\Curl\\curl.exe '		 					-- ne pas oublier l'espace à la fin
sources https://github.com/vil1driver/lua/blob/ ... odules.lua de vil1driver
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

balajol
Messages : 489
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Re: LUA: vigilance météoFrance V2

Message par balajol » 15 déc. 2017, 18:30

Bonsoir,
Pour le lien vers Curl, je pense que la syntaxe doit être bonne , je l'utilise dans un autre script:

Code : Tout sélectionner

local curl = 'C:/curl-7.50.3-win32-mingw/bin/curl.exe '
J'ai également modifié la ligne 243 :

local config=assert(io.popen(curl.. 'http://www.vigilance.meteofrance.com/da ... _LFPW_.xml'))


J'ai néanmoins ce message d'erreur ligne 246 :

Code : Tout sélectionner

2017-12-15 18:17:00.267 dzVents: =========== vigilance meteofrance V2 (v1.04) ===========
2017-12-15 18:17:00.274 Error: EventSystem: in script_time_vigilance_meteofrance_V2.lua: [string "--[[ ..."]:246: attempt to index global 'rid' (a nil value)
Merci de votre aide éventuelle
Cdt
Bertrand

Edit: Je viens de trouver Mon erreur passée en rouge plus haut, en recopiant la syntaxe dans l'autre script j'ai oublié de changer le nom "config" en "rid" :oops:
Comme bien souvent , le problème était entre la chaise et le clavier ;)
v3.8153 sur PC Windows7 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, Divers SOMFY RTS etc..

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre