-
Compteur de contenus
4 189 -
Inscription
-
Dernière visite
-
Jours gagnés
85
Tout ce qui a été posté par sebcbien
-
voici le script adapté: il n'est pas très beau mais il fonctionne, c'est le seul moyen que j'ai trouvé pour garder la logique de jojo (n'envoyer des ordres zwave que si la lampe est allumée) J'ai rajouté deux debugs (lignes 74 et 82) qui m'on permis de comprendre ou ça plantait. Je les ai laissés pour le moment, si on rencontre lors des test que un device ne fonctionne pas, ce sera plus facile àlocaliser. A enlever par la suite. le debug donne ceci: [DEBUG] 23:15:48: id: 16 is Salle De Bain type: light [DEBUG] 23:15:48: id: 23 is Lampadaires Salon type: light [DEBUG] 23:15:48: value: true. Turning Off [DEBUG] 23:15:48: id: 24 is Chambre Amis type: light [DEBUG] 23:15:48: id: 41 is Chambre Thomas type: light [DEBUG] 23:15:48: id: 42 is Dressing type: light [DEBUG] 23:15:48: id: 43 is Ch Amis Cramé ? type: light [DEBUG] 23:15:48: id: 47 is Chambre Parents type: light [DEBUG] 23:15:48: id: 49 is Bureau type: light [DEBUG] 23:15:48: value: 99. Turning Off [DEBUG] 23:15:48: id: 50 is WC type: light [DEBUG] 23:15:48: id: 51 is Garage type: light [DEBUG] 23:15:48: id: 52 is Hall type: light [DEBUG] 23:15:48: value: 99. Turning Off [DEBUG] 23:15:48: id: 56 is Cellier type: light [DEBUG] 23:15:48: id: 58 is Chambre Emilien type: light [DEBUG] 23:15:48: id: 63 is Terrasse type: light [DEBUG] 23:15:48: id: 1312 is Led Bureau type: light [DEBUG] 23:15:49: value: true. Turning Off [DEBUG] 23:15:49: id: 1893 is Poussoirs Haut type: light [DEBUG] 23:15:49: id: 1934 is RGBW Dressing SDB type: light [DEBUG] 23:15:49: id: 1944 is Corniche Rez type: light [DEBUG] 23:15:49: value: 8. Turning Off [DEBUG] 23:15:49: id: 1948 is Salon type: light [DEBUG] 23:15:49: value: 99. Turning Off [DEBUG] 23:15:49: id: 1952 is Cuisine type: light [DEBUG] 23:15:49: value: 99. Turning Off [DEBUG] 23:15:49: id: 1965 is Salle a Manger type: light [DEBUG] 23:15:49: value: 95. Turning Off ---------------------------------- -- User Settings ---------------------------------- -- Modules àexclure et fonction de traitement (pas raccordés àdes lumières) -- Peut contenir un id ou un mot clés àchercher dans le nom du module toExclude = {} toInclude = {} ---------------------------------- -- DO not change bellow this line ---------------------------------- -- Modules àexclure ou inclure et fonction de traitement (pas raccordés àdes lumières) -- Peut contenir un id ou un mot clés àchercher dans le nom du module -- toExclude = {72, "Dispo", "Volet", "Bubendorff"} function shouldExclude(module) for _, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end function shouldInclude(module) for _, v in pairs(toInclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end ---------------------------------- -- double click pour confirmer ---------------------------------- -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") if (current == msg) then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " " end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local label_id = "lblMessage" -- l'ID du label qui recevra le message local duree = 4 -- la durée max entre 2 clique (en seconde) local message = "Ré-appuyer dans les "..duree.." secondes pour confirmer" -- le message de confirmation if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- votre code ici en cas de confirmation -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local payload = "/api/devices" local response, status, errorCode = HC2:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then local jsonTable = json.decode(response) -- Boucle sur les modules for device = 1, #jsonTable do -- look for lighting devices if jsonTable[device].interfaces then for interface = 1, #jsonTable[device].interfaces do if jsonTable[device].interfaces[interface] == "light" then fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface]) local isnumber = true if jsonTable[device].properties.value == "true" then fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") fibaro:call(jsonTable[device].id, "turnOff") isnumber = false elseif jsonTable[device].properties.value == "false" or jsonTable[device].properties.value == "" or jsonTable[device].properties.value == nil then isnumber = false elseif tonumber(jsonTable[device].properties.value) > 0 and isnumber == true then fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") fibaro:call(jsonTable[device].id, "turnOff") end end end end end else fibaro:debug('<span style="display:inline;color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..(response or "")..'</span>') end else fibaro:log("Annulé") -- votre code ici en cas d'annulation end
-
Ouuupppssss .... ;-) edit: c'est fait :-)
-
Topic unique Fibaro - Fgd-212 - Micromodule Variateur Z-Wave+
sebcbien a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Quels problèmes aléatoires ? Tu dois définir tes dimmer comme contrôlant des lampes dans les settings Sent from my Note4 -
@jojo, tu n'a pas partagé le bon vfib, c'est le top 10 power celui là ... tsss tu n'est pas "à ton affaire" comme on dit par ici ceci dit, si tu peux mettre le code du bouton analyse, je préfère. Merci
-
Chez moi ça ne fonctionne que si j'enlève ceci ligne 73: and jsonTable[device].properties.value == "true" j'ai analysé jsonTable[device].properties.value et il n'est pas toujours à true ou false, mais renvoie aussi le pourcentage des dimmers et des rgbw... 43, 99, 12 etc.. Docn a priori ce script ne fonctionne que pour les wallplug et les FGS. Pourquoi as-tu mis cette ligne ? pour ne pas envoyer d'ordre inutiles ? Perso, jen e vois pas comment faire un test, pcq si je fait un tonumber() pour vérifier si > 0 j'ai une erreur quand la valeur n'est pas numérique...
-
Ok, c'est ici pour le fil mété/GEA http://www.domotique-fibaro.fr/index.php/topic/6339-yams-yet-another-meteo-station/ Etrangement ça s'appelle YAMS ;-) Yams - Yet Another Meteo Station
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonjour, Je crée ce petit fil pour publier mes modifications du plugin météo de Steven. Voici à quoi ça ressemble: Voici la version de Steven: (chez moi le mm de pluie ne fonctionnent pas) http://www.domotique-fibaro.fr/index.php/topic/1211-support-gea/page-220#entry92618 Et voici ma version modifiée qui pousse les résultats dans 3 Variables Globales (à créer) afin de pouvoir être utilisées ailleurs comme par exemple dans GEA. voici le fichier du VD: Prévision_Météo.vfib et le screenshot: Pour la configuration, il suffit donc de créer les 3 VG non prédéfinies: Meteo_Lendemain Meteo_Actuelle Meteo_Actuelle_Jou et de mettre le nom de la ville ici: local ville = "bruxelles" Voici le code principal pour info: local ville = "bruxelles" local Meteo_Actuelle_Local = " " local Meteo_Lendemain_Local = " " local Meteo_Actuelle_Journee_Local = " " local dateTag = os.date("%H:%M", os.time()) -- ================================== -- local URL = Net.FHttp("www.prevision-meteo.ch") response, status, errorCode = URL:GET("/services/json/" .. ville) local jsonTable = json.decode(response) local lieu = jsonTable.city_info.name .. " ["..jsonTable.city_info.elevation.. "m]" local current = jsonTable.current_condition.condition -- conditions actuelle local current_journee = jsonTable.fcst_day_0.condition -- conditions générale de la journée local temp = jsonTable.current_condition.tmp .. "°C ["..jsonTable.fcst_day_0.tmin .. "°/" .. jsonTable.fcst_day_0.tmax.."°]" local Meteo_Day = jsonTable.fcst_day_0.day_long local Meteo_Time = "["..jsonTable.current_condition.hour.."]" local pluie = 0 local snow = false for k, v in pairs(jsonTable.fcst_day_0.hourly_data) do if (tonumber(v.APCPsfc) > 0) then pluie = pluie + tonumber(v.APCPsfc) fibaro:debug("Pluie à "..k.." - Total du jour: "..pluie.."mm") end if v.ISSNOW == 1 then snow = true fibaro:debug("K: "..k.." = !! NEIGE !!") end end pluie = pluie .. " " if (snow) then pluie = pluie .. "!! NEIGE !!" end local id = fibaro:getSelfId() fibaro:call(id, "setProperty", "ui.Label1.value", lieu) fibaro:call(id, "setProperty", "ui.Label2.value", current_journee) fibaro:call(id, "setProperty", "ui.Label3.value", current) fibaro:call(id, "setProperty", "ui.Label4.value", temp) fibaro:call(id, "setProperty", "ui.Label5.value", pluie.." mm") Meteo_Actuelle_Local = Meteo_Time.." Météo Actuelle: "..current.." T°: "..temp.." Pluie: "..pluie.." mm" fibaro:setGlobal("Meteo_Actuelle", Meteo_Actuelle_Local) fibaro:debug(dateTag .." "..Meteo_Actuelle_Local) Meteo_Actuelle_Journee_Local = Meteo_Time.." Météo de ce "..Meteo_Day..": "..current_journee.." T°: "..temp.." Pluie: "..pluie.." mm" fibaro:setGlobal("Meteo_Actuelle_Jou", Meteo_Actuelle_Journee_Local) fibaro:debug(dateTag .." "..Meteo_Actuelle_Journee_Local) current = jsonTable.fcst_day_1.condition temp = "["..jsonTable.fcst_day_1.tmin .. "°/" .. jsonTable.fcst_day_1.tmax.."°]" Meteo_Day = jsonTable.fcst_day_1.day_long pluie = 0 snow = false for k, v in pairs(jsonTable.fcst_day_1.hourly_data) do if (tonumber(v.APCPsfc) > 0) then pluie = pluie + tonumber(v.APCPsfc) fibaro:debug("Pluie à "..k.." - Total du jour: "..pluie.."mm") end if v.ISSNOW == 1 then snow = true fibaro:debug("K: "..k.." = !! NEIGE !!") end end pluie = pluie .. " " if (snow) then pluie = pluie .. "!! NEIGE !!" end fibaro:call(id, "setProperty", "ui.Label6.value", current) fibaro:call(id, "setProperty", "ui.Label7.value", temp) fibaro:call(id, "setProperty", "ui.Label8.value", pluie.." mm") Meteo_Lendemain_Local = Meteo_Time.." Météo de demain "..Meteo_Day..": "..current.." T°: "..temp.." Pluie: "..pluie.." mm" fibaro:setGlobal("Meteo_Lendemain", Meteo_Lendemain_Local) fibaro:debug(dateTag .." ".. Meteo_Lendemain_Local) Et pour finir, voici le code GEA pour exploiter tout ceci: Je l'ai écrit de cette manière qu'il n'y a pas de push si on n'est pas à la maison et uniquement une seule fois par jour chaque météo (du jour et du lendemain) - la météo du jour est poussée sur le smartphone au matin au moment ou on désactive le mode nuit pour savoir le temps lorsque l'on s'habille) - la météo du lendemain est poussée le soir au retour sur le smartphone afin de savoir le temps du lendemain pour préparer les vêtements des enfants avant de les mettre au lit. afin de me passer de VG, j'ai ajouté un petit délai, donc mettre ça en fin de liste GEA local estAt_Home = {"Global", "PresentState", "At_Home"} local estAway = {"Global", "PresentState", "Away"} local est_AtHome_Or_Kids_Sleeping = {"Global", "PresentState", "Kids_Sleeping|At_Home"} ---------------------METEO---------------------- -- Météo soir 10 min après retour maison (away pendant plus de 30 minutes) isLongAwayOff = false GEA.add(estAway, 30*60, "", {{"function",function() isLongAwayOff = true end}}) GEA.add({estAt_Home,{"Global!", "Meteo_Lendemain", ""},{"function",function() return isLongAwayOff end}}, 10*60, "#value[2]#",{{"Time", "17:00", "20:30"},{"Portable", id["PHONE_SEB"]},{"Portable", id["PHONE_GG"]},{"function",function() isLongAwayOff=false end}}) ------------------------------ -- Météo matin Instantanée au changement de presentState GEA.add({est_AtHome_Or_Kids_Sleeping}, -1, "",{{"function",function() fibaro:debug(" ------- waiting 1 s for PrevisousState dependent actions ------") end},{"function",function() fibaro:sleep(1100) end}}) GEA.add({est_AtHome_Or_Kids_Sleeping,{"Global!", "Meteo_Actuelle_Jou", ""},{"Global", "PreviousState", "Night_All_Off"}}, -1, "#value[2]#",{{"Portable", id["PHONE_SEB"]},{"Portable", id["PHONE_GG"]}}) -- !!!!!!!!!!! LES ACTIONs instantanées placées CI DESSOUS AURONT UN DELAI DE 1,1 A CHAQUE CHANGMENT de PresentState = à At_Home ou Kids_Sleepin !!!!!!!!!! ------------- La variable globale previousState est définie par la scène ci-dessous, qui permet au script de savoir dans quel état se trouvait la maison juste avant le changement de la VG PresentState Pour cela il faut crée une VG PreviousState (de préférence prédéfinie) Connaitre l'état précédent de la maison peut être utile a de nombreuses occasions dont ici la météo. Mais je l'utilise aussi pour différencier si la maison est au réveil ou au passage en mode nuit etc. Ce n'est pas nécessaire donc mais utile pour une meilleure domotisation avec moins de notifications inutiles, actions à réaliser manuellement. --[[ %% properties %% globals PresentState --]] local This_Instance_State = fibaro:getGlobalValue("PresentState"); fibaro:debug(os.date("%a %d/%m", os.time()).." new start with PresentState = " .. This_Instance_State); while This_Instance_State == fibaro:getGlobalValue("PresentState") do fibaro:sleep(1000); --fibaro:debug("waiting with this instance = "..This_Instance_State) end fibaro:setGlobal("PreviousState", This_Instance_State); fibaro:debug(os.date("%a %d/%m", os.time()).." Exit With PreviousState set at: ".. This_Instance_State);
-
Si tu veux vraiment savoir, débranche un a un ou coupe les fusibles des circuits un par un et tu pourra localiser les consomations Sent from my Note4
-
Yep :-) Sent from my Note4
-
Merci jojo (alias YAPLUKA) ;-), je teste ça a mon retour. Sent from my Note4
-
Oui sur un wallplug je dis aussi que c'est une lampe. Comme ça ça apparaît dans lightning dans l'interface mobile.Sent from my Note4
-
@pepite, je vais faire un nouveau fil pour ne pas polluer celui-ci Sent from my Note4
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Topic unique Fibaro - Fgd-212 - Micromodule Variateur Z-Wave+
sebcbien a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Aie... Non je n'ai pas testé ça :-/ et j'ai renvoyé mes v3.2 :-/ Mais normalement le bypass ne devrait régler que des problème de flickering, du àune trop faible charge et qui n'a rien àvoir avec le disco effect. Si quelqu'un veut tester et qu'il est en Belgique je peux le prêter. Sent from my Note4 -
le bouton set T° confort à18°: -------------------------------------------------- -- RaspVMC Speed Controller -- Control of VMC StorkAir / ComfoAir / Zehnder -- Sebastien Jauquet -- Novembre 2015 -------------------------------------------------- -- Common button setup local thismodule = fibaro:getSelfId() local ipraspberry = fibaro:get(thismodule, 'IPAddress') local SetTConf = "18" local VMC = Net.FHttp(ipraspberry,80) -- ---------------------------- -- Double click -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(thismodule, "ui."..labelId..".value") if (current == msg) then fibaro:call(thismodule, "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(thismodule, "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(thismodule, "setProperty", "ui."..labelId..".value","") return fibaro:getValue(thismodule, "ui."..labelId..".value") == " " end end local label_id = "maintenance" -- l'ID du label qui recevra le message local duree = 4 -- la durée max entre 2 clique (en seconde) local message = "Push again before "..duree.." seconds to confirm" -- le message de confirmation if ( confirm(message, label_id, duree) ) then fibaro:log("CONFIRMED !") fibaro:debug("Setting VMC TConfort at: "..SetTConf) payloademon = "/cgi-bin/VMCsetTConf.cgi?tconf=" .. SetTConf response, status, errorCode = VMC:GET(payloademon) if (tonumber(status) == 200) then response = json.decode(response) else fibaro:log("Error !!! Code: " .. errorCode) end local Tconfort = response.data.temperature.Tconfort fibaro:debug("Response from VMC: TConfort = "..Tconfort) -- Update display: fibaro:call(thismodule, "pressButton", "2"); end
-
le bouton set V3 pendant 10 min: local id = { PHONE_SEB = 1347, ------- not in id2 PHONE_GG = 1327, ------- not in id2 SCENE_EMAIL_DNODES = 71, --------- not in id2 SCENE_REVEIL_DOUCEUR = 66 --------- not in id2 } local thismodule=fibaro:getSelfId() local ipraspberry = fibaro:get(thismodule, 'IPAddress') local VMC_Speed_Before = fibaro:getGlobal("VMC_Speed") -- durée de la vitesse max (en minutes) local temps = 10 --local pushtodeviceIDSeb = 1323 fibaro:debug("vitesse before = " .. VMC_Speed_Before) -- set Manual (locked) and full speed: fibaro:setGlobal("VMC_Lock", "1") fibaro:setGlobal("VMC_Speed", "Rapide") fibaro:call(id["PHONE_SEB"], "sendPush", "VMC is now in speed 3 for " .. temps .. " minutes"); -- Activate settings and read VMC state fibaro:call(thismodule, "pressButton", "2"); ------------------ sleep XX min (temps) ------------------- fibaro:sleep(temps*60*1000) ------------------ back to speed before ---------------- fibaro:setGlobal("VMC_Speed", VMC_Speed_Before) fibaro:setGlobal("VMC_Lock", "0") -- back to auto -- Activate settings and read VMC state fibaro:call(thismodule, "pressButton", "3");
-
pour ceux qui ne veulent pas installer le VD, voici deux-trois codes principaux: le bouton slider auto-manu: --fibaro:debug(" ligne 125 à 127 commented for disabling speedwrite for jeedom"); -------------------------------------------------- -- RaspVMC Speed Controller -- Control of VMC StorkAir / ComfoAir / Zehnder -- Sebastien Jauquet -- Février 2015 -------------------------------------------------- -- Common button setup local selfId = fibaro:getSelfId() local ipraspberry = fibaro:get(selfId, 'IPAddress') local EmonCMS_Prefix = "VMC_" -- prefix of the id of the inpus to be created in emoncms (convenient for testing to not alter current feeds) local emoncms = Net.FHttp("emoncms.org",80) local emoncms_api_key = "9a38f08201251c4584545a223ebdd13a" -- your EMONCMS WRITE api Key local PushToEmonCMS = true -- true = push to emoncms - false = do not push local emoncms_ok = true local speedwrite = "" local extraitpourcent = "" local vitesse = "" local RendementVMC = "" local Bypass_Status local CO2_Max_Value_Local = tonumber(fibaro:getGlobalValue("CO2_Max_Value")) --local VMC_Lock = tonumber(fibaro:getGlobalValue("VMC_Lock")) local VMC = Net.FHttp(ipraspberry,80) local position = 50 local ValeurSlider = tonumber(fibaro:getValue(selfId, "ui.AutoOrManual.value")) local VMC_Speed = fibaro:getValue(selfId, "ui.VgVmcSpeed.value") local VMC_Lock = fibaro:getValue(selfId, "ui.VgVmcLock.value") local msg1, msg2, msg3 fibaro:debug("lock: "..VMC_Lock.." speed: "..VMC_Speed) -- IDs générés le : 28/09/16 à 23:10:26 - KAROTZ Say local id2 = {--Cellier VMC = 25 } function VMC_SetIcon(speed) if speed == "Absent" then fibaro:call(selfId, "setProperty", "currentIcon", 1010) end if speed == "Lente" then fibaro:call(selfId, "setProperty", "currentIcon", 1011) end if speed == "Normale" then fibaro:call(selfId, "setProperty", "currentIcon", 1012) end if speed == "Rapide" then fibaro:call(selfId, "setProperty", "currentIcon", 1013) end end VMC_SetIcon(VMC_Speed) function setSlider(position) fibaro:call(selfId, "setProperty", "ui.AutoOrManual.value", position) return position end function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end if ValeurSlider < 49 then --fibaro:setGlobal("VMC_Lock", "0") fibaro:call(selfId, "setProperty", "ui.VgVmcLock.value", "Automatique") fibaro:debug("Silder Value: " .. ValeurSlider .. " Setting Auto/Unlocked Mode") setSlider(10) end if ValeurSlider > 50 then --fibaro:setGlobal("VMC_Lock", "1") fibaro:call(selfId, "setProperty", "ui.VgVmcLock.value", "Locked") fibaro:debug("Silder Value: " .. ValeurSlider .. " Setting Manual/Locked Mode") setSlider(90) end --local VMC_Lock = tonumber(fibaro:getGlobalValue("VMC_Lock")) if ValeurSlider == 49 then PushToEmonCMS = false ValeurSlider = 50 end if ValeurSlider == 50 then ---- 50 = demande du scheduler: read CO2, set Speed and push to emonCMS if VMC_Lock == "Automatique" then --fibaro:debug("-- Waiting Netatmo 50s befor Setting Speed depending of CO2_Max_Value -------") setSlider(10) --fibaro:debug("Waiting 45 sec (25 sec minimum)for Netatmo Mod to calculate CO2 Max Value") --fibaro:sleep(50*1000); -- Common button setup-------------------------------------- if CO2_Max_Value_Local < 500 then speedwrite = "0" --fibaro:setGlobal("VMC_Speed", "Absent") VMC_Speed = "Absent" fibaro:call(selfId, "setProperty", "ui.VgVmcSpeed.value", "Absent") end if ((CO2_Max_Value_Local > 500) and (CO2_Max_Value_Local <800)) then speedwrite = "1" --fibaro:setGlobal("VMC_Speed", "Lente") VMC_Speed = "Lente" fibaro:call(selfId, "setProperty", "ui.VgVmcSpeed.value", "Lente") end if ((CO2_Max_Value_Local > 800) and (CO2_Max_Value_Local <1600)) then speedwrite = "2" --fibaro:setGlobal("VMC_Speed", "Normale") VMC_Speed = "Normale" fibaro:call(selfId, "setProperty", "ui.VgVmcSpeed.value", "Normale") end if CO2_Max_Value_Local > 1600 then speedwrite = "3" --fibaro:setGlobal("VMC_Speed", "Rapide") VMC_Speed = "Rapide" fibaro:call(selfId, "setProperty", "ui.VgVmcSpeed.value", "Rapide") end payloademon = "/cgi-bin/VMCsetspeed.cgi?speed=" .. speedwrite response, status, errorCode = VMC:GET(payloademon) fibaro:debug("CO2_Max_Value = "..CO2_Max_Value_Local.." Setting Auto VMC Speed to: "..speedwrite.." Error Code: "..errorCode) elseif VMC_Lock == "Locked" then --fibaro:debug("vmc lock 1") setSlider(90) fibaro:debug("VG_VMC_Lock Locked, Setting Manual VMC Speed To "..VMC_Speed.." - CO2_Max_Value = "..CO2_Max_Value_Local) fibaro:getValue(selfId, "ui.VgVmcSpeed.value") if VMC_Speed == "Absent" then -- if forced absent but co2>600, then force speed lente if (CO2_Max_Value_Local > 600) then speedwrite = "1" fibaro:call(selfId, "setProperty", "ui.VgVmcSpeed.value", "Absent") --VMC_Speed = "Absent" else speedwrite = "0" end end if VMC_Speed == "Lente" then speedwrite = "1" end if VMC_Speed == "Normale" then speedwrite = "2" end if VMC_Speed == "Rapide" then speedwrite = "3" end payloademon = "/cgi-bin/VMCsetspeed.cgi?speed=" .. speedwrite response, status, errorCode = VMC:GET(payloademon) fibaro:debug("CO2_Max_Value = "..CO2_Max_Value_Local.." Setting Manual VMC Speed to: "..speedwrite.." Error Code: "..errorCode) end -- wait 5 sec so the VMC can change speed if PushToEmonCMS == true then fibaro:debug("-- Reading VMC Parameters Then Pushing to EmonCMS (waiting 5 s)--------"); fibaro:sleep(5000) else fibaro:debug("Reading VMC Parameters ONLY (Not Pushing to EmonCMS (waiting 1 s))--------"); fibaro:sleep(1000) end -- Send request to the VMC Raspberry to read values response ,status, errorCode = VMC:GET("/cgi-bin/VMCbinjson.cgi") -- enregistrement du retour de l API dans une table si status 200 (ok) if (tonumber(status) == 200) then response = json.decode(response) else fibaro:log("ErrorCode = " .. errorCode) fibaro:debug("VMC Get ErrorCode = " .. errorCode) end -- fibaro:debug("Status = " .. status) -- fibaro:debug(vitesse) -- Lecture de la réponse local extraitpourcent = response.data.ventilateurs.extraitpourcent local vitesse = response.config.ventilateurs.vitesse local Tairneuf = response.data.temperature.Tairneuf local Textrait = response.data.temperature.Textrait local Trepris = response.data.temperature.Trepris local Tsoufflage = response.data.temperature.Tsoufflage local Tconfort = response.data.temperature.Tconfort local Mode = response.data.bypass.mode local Bypass = response.data.valvesetat.bypass local soufflagepourcent = response.data.ventilateurs.soufflagepourcent local extraitpourcent = response.data.ventilateurs.extraitpourcent local extraitrpm = round(response.data.ventilateurs.extraitrpm) local soufflagerpm = round(response.data.ventilateurs.soufflagerpm) local filtres = response.data.usage.filtres local wallplug1 = fibaro:getValue(2189, "power") local emoncms = Net.FHttp("emoncms.org",80) local RendementVMC = round(1000*((Tsoufflage-Tairneuf)/(Trepris-Tairneuf)))/10 if RendementVMC < 130 and RendementVMC > 1 then --fibaro:debug("Rendement VMC OK: "..RendementVMC) RendementVMC = RendementVMC else fibaro:debug("Rendement VMC: "..RendementVMC.." Overriding to 100") RendementVMC = 130 end fibaro:call(selfId, "setProperty", "ui.Label1.value", vitesse - 1 .. " (" .. extraitpourcent .. "%)") fibaro:call(selfId, "setProperty", "ui.Label2.value", RendementVMC .. "%") fibaro:call(selfId, "setProperty", "ui.Label3.value", Tairneuf .. "° -> " .. Textrait .. "°") fibaro:call(selfId, "setProperty", "ui.Label4.value", Trepris .. "° -> " .. Tsoufflage .. "°") fibaro:call(selfId, "setProperty", "ui.Label5.value", Tconfort .. "°") if Bypass == 0 then Bypass_Status = "Inactif" else Bypass_Status = "actif" end fibaro:call(selfId, "setProperty", "ui.Label6.value", Mode .. " - " .. Bypass_Status ) fibaro:call(selfId, "setProperty", "ui.Label7.value", soufflagepourcent .. "% / " .. soufflagerpm .. "rpm") fibaro:call(selfId, "setProperty", "ui.Label7.value", soufflagepourcent .. "% / " .. soufflagerpm .. "rpm") fibaro:call(selfId, "setProperty", "ui.Label8.value", extraitpourcent .. "% / " .. extraitrpm .. "rpm") fibaro:call(selfId, "setProperty", "ui.Label9.value", filtres .. " Heures") fibaro:call(selfId, "setProperty", "ui.Label10.value",wallplug1 .." watt") EmonCMS = {}; function EmonCMS:Push(payloademon) fibaro:debug("EMONCMS Payload: " .. payloademon) ; if emoncms_ok then payloademon = "/input/post.json?json={" .. EmonCMS_Prefix .. payloademon .. "}&apikey=" .. emoncms_api_key; response, status, errorCode = emoncms:GET(payloademon); if status ~= "200" then emoncms_ok = false fibaro:debug("error response, oborting all push. - ".."response: " .. response .. " Status: " .. status .. " errorcode: " .. errorCode) ; end fibaro:sleep(500); end end if PushToEmonCMS == true then payloademon = "VITESSE:" .. vitesse - 1 EmonCMS:Push(payloademon); payloademon = "RENDEMENT:" .. RendementVMC EmonCMS:Push(payloademon); payloademon = "TEMP_AIR_NEUF:" .. Tairneuf EmonCMS:Push(payloademon); payloademon = "TEMP_AIR_EXTRAIT:" .. Textrait EmonCMS:Push(payloademon); payloademon = "TEMP_AIR_REPRIS:" .. Trepris EmonCMS:Push(payloademon); payloademon = "TEMP_AIR_SOUFFLAGE:" .. Tsoufflage EmonCMS:Push(payloademon); payloademon = "TEMP_CONFORT:" .. Tconfort EmonCMS:Push(payloademon); if Mode == "ete" then Mode = 1 else Mode = 0 end payloademon = "MODE:" .. Mode EmonCMS:Push(payloademon); payloademon = "BYPASS:" .. Bypass EmonCMS:Push(payloademon); -- prevent false measurement to be sent to emonCMS if ((soufflagerpm - extraitrpm) > 170) or ((soufflagerpm - extraitrpm) < -170) then fibaro:debug("soufflage rpm - extract NotOK 170> XX < -170 : " .. soufflagerpm - extraitrpm) else fibaro:debug("soufflage rpm - extract OK 170> XX < -170 : " .. soufflagerpm - extraitrpm) payloademon = "SOUFL_RPM:" .. soufflagerpm EmonCMS:Push(payloademon); payloademon = "EXTRACT_PRCENT:" .. extraitpourcent EmonCMS:Push(payloademon); payloademon = "EXTRACT_RPM:" .. extraitrpm EmonCMS:Push(payloademon); payloademon = "SOUFL_PRCENT:" .. soufflagepourcent EmonCMS:Push(payloademon); end payloademon = "HEURES_FILTRES:" .. filtres EmonCMS:Push(payloademon); payloademon = "CONSOMATION:" .. wallplug1 EmonCMS:Push(payloademon); end end -- Display status msg1 = "(CO2:" .. CO2_Max_Value_Local if VMC_Lock == "Locked" then msg2 = VMC_Speed.." " else msg2 = VMC_Speed.." " end msg3 = " à "..os.date("%H:%M")..")" fibaro:call(selfId, "setProperty", "ui.Status.value", msg2 .. msg1 .. msg3) VMC_SetIcon(VMC_Speed)
-
Voici le VD: Vitesse_VMC.vfib Avec les dernières version de raspVMC sur raspberry pas mal d'options se sont ajoutées, j'ai donc modifié le VD. dernière version de raspvmc: http://www.bricozone.be/fr/domotique/t-controler-sa-vmc-storkair-comfoair-zehnder-via-sa-domotique-page19-80339.html Voici à quoi le vd ressemble: Voici les graphiques qui en sortent: ici on peut voir la vitesse de la vmc qui s'ajuste automatiquement si le taux de co2 monte.
-
Je sais , ma femme me le dit souvent , mais elle ajoute qu'il ne me manque que l'humilité pour être parfait... huhuuuu et là je lui réponds... mais à quoi ça sert d'être parfait si on doit être humble ?
-
donc quand on demande la liste des devices, voici le retour pour un de mes dimmer: "id": 1965, "name": "Salle a Manger", "roomID": 2, "type": "com.fibaro.multilevelSwitch", "baseType": "com.fibaro.binarySwitch", "enabled": true, "visible": true, "isPlugin": false, "parentId": 1964, "remoteGatewayId": 0, "viewXml": false, "configXml": false, "interfaces": [ "light", "zwave", "zwaveConfiguration", "zwaveFirmwareUpdate", "zwaveMultiChannelAssociation", "zwaveSceneActivation", "zwaveSwitchAll" ], "properties": { "zwaveCompany": "Fibargroup", "zwaveInfo": "3,3,52", "zwaveVersion": "2.2", "pollingTimeSec": 0, "configured": "true", "dead": "false", "deviceControlType": "23", "deviceIcon": "15", "emailNotificationID": "0", "emailNotificationType": "0", "endPointId": "0", "isLight": "true", "liliOffCommand": "", "liliOnCommand": "", "log": "", "logTemp": "", "manufacturer": "", "markAsDead": "true", "model": "", "nodeId": "102", "parametersTemplate": "235", "productInfo": "1,15,1,0,16,10,2,2", "pushNotificationID": "0", "pushNotificationType": "0", "remoteGatewayId": "0", "saveLogs": "true", "sceneActivation": "0", "smsNotificationID": "0", "smsNotificationType": "0", "switchAllMode": "SWITCH_ALL_INCLUDED_IN_THE_ALL_ON_ALL_OFF_FUNCTIONALITY", "useTemplate": "true", "userDescription": "", "value": "0" }, "actions": { "getParameter": 1, "reconfigure": 0, "setParameter": 2, "setValue": 1, "turnOff": 0, "turnOn": 0, "updateFirmware": 1 }, "created": 1446762296, "modified": 1446762296, "sortOrder": 484 } on a donc bien properties.islight=true mais on a aussi "interfaces": ["light", ... Pour les ceusque qui ont du temps, je vous propose de jeter un coup d'oeil, par exemple avec les devices qui vous posent problème.. Moi j'ai vite fait le tour, et a part les rgbw, tous mes modules qui contrôlent des lampes on light dans interfaces. (wallplug, dimmers) Manière simple: via le toolkit, click droit et show raw data
-
Bon, y'a du nouveau sous les tropiques... J'ai soumis un bug sur bugzilla: http://bugzilla.fibaro.com/print_bug_page.php?bug_id=3631 le bug est quand on ajoute un nouveau device, que l'on dit bien que le device est lightning/éclairage, eh bien dans la db ce n'est pas mis à jour (uniquement après un reboot) Or c'est cette méthode qui est utilisée pour le moment... je m'en suis rendu comte car mes nouveau devices ne s'éteignaient pas... mais après un reboot c'était de nouveau ok... Donc un jour ou l'autre en V5, soit demain... huhuhu... :(je ne sais pas si c'est un rire ou une grimace) ça ne fonctionnera plus. Voici la réponse de roszak: Property isLight is not used any more, if device controls lightning it will get interface <light>. alors j'ai un peu regardé, et je n'ai pas trouvé... Voici le retour pour un de mes dimmer: "interfaces": [ "energy", "power", "zwave", "zwaveAlarm", "zwaveConfiguration", "zwaveFirmwareUpdate", "zwaveMultiChannelAssociation", "zwaveProtection", "zwaveSceneActivation", "zwaveSwitchAll" ], quelqu'un à une idée où chercher ? edit: tip: regarder les propriétés du module zwave actif ;-) ça donne ça: "interfaces": [ "energy", "light", "power", "zwave", "zwaveAlarm", "zwaveMultiChannelAssociation", "zwaveSceneActivation" ], donc c bon. YAPLUKAmodifier/adapter le VD et YFOKON teste ;-)
-
heuu en chipotant j'y suis arrivé, merci fibaro:debug() ;-) toujours pas bien compris les k, v in pairs mais bon :-P for k, v in pairs(jsonTable.fcst_day_0.hourly_data) do if (tonumber(v.APCPsfc) > 0) then pluie = pluie + tonumber(v.APCPsfc) fibaro:debug("Pluie à "..k.." - Total du jour: "..pluie.."mm") end if v.ISSNOW == 1 then snow = true fibaro:debug("K: "..k.." = !! NEIGE !!") end end donne ce debug: [DEBUG] 19:20:00: Pluie à 1H00 - Total du jour: 0.5mm [DEBUG] 19:20:00: Pluie à 18H00 - Total du jour: 0.9mm [DEBUG] 19:20:00: Pluie à 17H00 - Total du jour: 2.4mm [DEBUG] 19:20:00: 19:20 [20:00] Météo Actuelle: Fortement nuageux T°: 17°C [13°/18°] Pluie: 2.4 mm [DEBUG] 19:20:00: 19:20 [20:00] Météo de ce Vendredi: Ciel voilé T°: 17°C [13°/18°] Pluie: 2.4 mm [DEBUG] 19:20:00: 19:20 [20:00] Météo de demain Samedi: Eclaircies T°: [15°/21°] Pluie: 0 mm
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonsoir @steven, Voilà , j'ai intégré ton module, je l'ai légèrement modifié pour avoir aussi la météo du jour: Ensuite j'ai fait des lignes gea qui push la météo deux fois par jour. Une fois au retour à la maison (si away pendant a moins 1h etc.) donc pas de push quand on n'est pas là . Une fois le matin quand on désarme l'alarme, un push instantané.si on était en night all off pendant au moins 1h etc. Je posterai ça une fois bien au point. Bref, tout ça pour en arriver au fait que les mm de pluie ne remontent pas.. Apparemment la fonction qui parse toutes les heures du json pour aditionner les mm de pluie de APCPsfc ... ne retourne rien... alors que aujourd'hui par exemple il y a bien de la pluie dans le json. est-ce que ça marche chez toi ? Voici le code pour rappel: Si je pet un debug pour la valeur de k, elles sont comme ceci: [DEBUG] 18:36:34: K: 13H00 [DEBUG] 18:36:34: K: 14H00 [DEBUG] 18:36:34: K: 15H00 [DEBUG] 18:36:34: K: 16H00 [DEBUG] 18:36:34: K: 2H00 [DEBUG] 18:36:34: K: 11H00 [DEBUG] 18:36:34: K: 10H00 [DEBUG] 18:36:34: K: 1H00 [DEBUG] 18:36:34: K: 6H00 [DEBUG] 18:36:34: K: 7H00 [DEBUG] 18:36:34: K: 4H00 [DEBUG] 18:36:34: K: 5H00 [DEBUG] 18:36:34: K: 8H00 [DEBUG] 18:36:34: K: 9H00 [DEBUG] 18:36:34: K: 23H00 [DEBUG] 18:36:34: K: 22H00 [DEBUG] 18:36:34: K: 21H00 [DEBUG] 18:36:34: K: 20H00 [DEBUG] 18:36:34: K: 19H00 [DEBUG] 18:36:34: K: 18H00 [DEBUG] 18:36:34: K: 17H00 [DEBUG] 18:36:34: K: 12H00 [DEBUG] 18:36:34: K: 3H00 [DEBUG] 18:36:34: K: 0H00 Donc aucune chance que ce soit = à APCPsfc ... Ceci dit, j'ai becoup de mal avec les array et je ne sais pas par quel bout commencer :-/ Merci local URL = Net.FHttp("www.prevision-meteo.ch") response, status, errorCode = URL:GET("/services/json/" .. ville) local jsonTable = json.decode(response) local lieu = jsonTable.city_info.name .. " ["..jsonTable.city_info.elevation.. "m]" local current = jsonTable.current_condition.condition -- conditions actuelle local current_journee = jsonTable.fcst_day_0.condition -- conditions générale de la journée local temp = jsonTable.current_condition.tmp .. "°C ["..jsonTable.fcst_day_0.tmin .. "°/" .. jsonTable.fcst_day_0.tmax.."°]" local Meteo_Day = jsonTable.fcst_day_0.day_long local Meteo_Time = "["..jsonTable.current_condition.hour.."]" local pluie = 0 local snow = false for k, v in pairs(jsonTable.fcst_day_0.hourly_data) do if (k == "APCPsfc") then pluie = pluie + tonumber(v) end if (k == "ISSNOW" and v == 1) then snow = true end end pluie = pluie .. " "
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Topic unique Fibaro - Fgd-212 - Micromodule Variateur Z-Wave+
sebcbien a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Tu dois tester, tu as plusieurs solutions. Seul toi peut le faire, le problème que tu décris semble unique et personne ne peut sortir la solution de son chapeau on peut juste te donner des pistes Sent from my Note4 -
Et même pas un petit sleep entre les deux... Sent from my Note4
-
Topic unique Fibaro - Fgd-212 - Micromodule Variateur Z-Wave+
sebcbien a répondu à un(e) sujet de Moicphil dans Modules Fibaro
le condo c'est pour le bug "deux clicks pour allumer" et anti "disco effect" tu ne risque rien d'essayer, ça évite des commandes parasites sur les entrées... j'ai essayé d'installer un qubino dimmer V2 et la hc2 ne sais pas le configurer... J'ai mis à jour le post plus haut avec unlien