sebcbien Posté(e) le 12 janvier 2015 Signaler Posté(e) le 12 janvier 2015 Bonjour, Voici ce dont je dispose chez moi: Ce tuto assez complexe me permet de domotiser ma ventilation Storkair 550 . La partie Fibaro n'est pas trop complexe, ce qui l'est plus c'est la partie commande et lecture de la VMC (qui n'est pas prévue pour cela à l'origine...) Cette partie à été réalisée avec un raspberry, un bricolage pour transformer ses signaux TTL en RS232 et un script en Python Des connaissances en Linux sont donc demandées et aussi en "électronique" Donc avant de faire un long (très long) tuto, j'aimerais savoir si ça intéresserait quelques personnes (et pas juste pour la beauté du tuto hein ) Scripts postés plus bas: http://www.domotique-fibaro.fr/index.php/topic/3285-domotisation-dune-vmc-double-flux-storkair-550/#entry95139 5
Nico Posté(e) le 12 janvier 2015 Signaler Posté(e) le 12 janvier 2015 Top top, mais je suis sur un Duolix Max moi... J'ai également commencé un truc, mais très très très simple par rapport àtoi. Beau travail. Question, tu te connectes directement sur la carte électroniques ou comme la Duolix max tu as une télécommande et tu récupères les signaux ?
sebcbien Posté(e) le 12 janvier 2015 Auteur Signaler Posté(e) le 12 janvier 2015 Oui, directement sur la carte. Ils vendent un petit contrôleur câblé qui se connecte en rs232. Avec d'autres personnes, on a "reverse-enginered" le protocole et on peut donc la contrôler. Sent From my Vic20
tanguyj Posté(e) le 13 janvier 2015 Signaler Posté(e) le 13 janvier 2015 Pour ma part, fortement intéressé par le concept, mais je m'oriente aussi sur une Atlantic Duolix Max ... @ Nico, comment tu récupères les infos ? (il y a un module RF - comme sur d'autres équipements de la même marque, mais je crois pas que le protocole soit utilisable par un module autre que celui d'Atlantic)
sebcbien Posté(e) le 14 janvier 2015 Auteur Signaler Posté(e) le 14 janvier 2015 ok, quand je trouverai un peu de temps je détaillerai le principe, Le plus compliqué (interface raspberry-vmc) je ne l'aborderai que rapidement.
sebcbien Posté(e) le 2 février 2015 Auteur Signaler Posté(e) le 2 février 2015 Bon, le temps, toujours pas, mais voici le virtual device: Vitesse_VMC.vfib En gros, il y a un script sous chaque bouton de vitesse qui push les paramètres vers une url. exemple pour définir la vitesse2: -------------------------------------------------- -- VMC Speed -- Control of VMC StorkAir / ComfoAir / Zehnder -- sebcbien -- Juin 2014 -------------------------------------------------- local thismodule=fibaro:getSelfId() local ipraspberry = fibaro:get(thismodule, 'IPAddress') local speedwrite = "2" local extraitpourcent = "" local vitesse = "" local RendementVMC = "" local Notifier = 93 -- VD notifier fibaro:setGlobal("VMC_Speed", "Normale") function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end VMC = Net.FHttp(ipraspberry,80) payloademon = "/cgi-bin/VMCsetspeed.cgi?speed=" .. speedwrite response, status, errorCode = VMC:GET(payloademon) response ,status, errorCode = VMC:GET("/cgi-bin/VMCbinjson.cgi") -- enregistrement du retour de l API dans une table if (tonumber(status) == 200) then response = json.decode(response) -- Wait for Notifier to be free --while (fibaro:getGlobalValue("Notifier_Use") == "In_Use") do fibaro:sleep(1000); end fibaro:setGlobal("Notifier_Use", "In_Use"); -- Call Notifier --fibaro:setGlobal("Notify_Msg", "Vitesse VMC: " .. speedwrite); --fibaro:call(Notifier, "pressButton", "5"); else fibaro:log("ErrorCode = " .. errorCode) end -- read VMC state fibaro:call(thismodule, "pressButton", "10"); J'utilise un notificateur "maison" à vous de le remplacer par l'action que vous désirez. Le main loop permet de surveiller et de modifier l'icône et quelques paramètres Fibaro. Je n'interroge pas le raspberry qui gère la VMC trop souvent car le protocole RS-232 utilisé pour gérer la VMC n'a pas été conçu pour un polling très fréquent et donc plante parfois si trop sollicité. Des questions ?, n'hésitez pas ;-)
sebcbien Posté(e) le 2 février 2015 Auteur Signaler Posté(e) le 2 février 2015 ah bah oui, ça va peut être vous intéresser de savoir comment lire les autres infos dans la VMC ? -------------------------------------------------- -- RaspVMC Fibaro Virtual Module -- Sebastien Jauquet -- Juin 2014 -------------------------------------------------- local thismodule=fibaro:getSelfId() local ipraspberry = fibaro:get(thismodule, 'IPAddress') local speedwrite = "" local extraitpourcent = "" local vitesse = "" local RendementVMC = "" -- IP of the VMC Rasp VMC = Net.FHttp(ipraspberry,80) response ,status, errorCode = VMC:GET("/cgi-bin/VMCbinjson.cgi") -- enregistrement du retour de l API dans une table fibaro:debug("Status = " .. status) if (tonumber(status) == 200) then response = json.decode(response) else fibaro:log("ErrorCode = " .. errorCode) fibaro:setGlobal("VENT_V3_TEMP", "0") end local vitesse = response.config.ventilateurs.vitesse - 1 fibaro:debug(vitesse) function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end 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 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(25, "valueSensor") local RendementVMC = 1000*((Tsoufflage-Tairneuf)/(Trepris-Tairneuf)) RendementVMC = round(RendementVMC)/10 fibaro:call(thismodule, "setProperty", "ui.Label1.value", vitesse - 1 .. " (" .. extraitpourcent .. "%)") fibaro:call(thismodule, "setProperty", "ui.Label2.value", RendementVMC .. "%") fibaro:call(thismodule, "setProperty", "ui.Label3.value", Tairneuf .. "° -> " .. Textrait .. "°") fibaro:call(thismodule, "setProperty", "ui.Label4.value", Trepris .. "° -> " .. Tsoufflage .. "°") fibaro:call(thismodule, "setProperty", "ui.Label5.value", Tconfort .. "°") fibaro:call(thismodule, "setProperty", "ui.Label6.value", Mode ) fibaro:call(thismodule, "setProperty", "ui.Label7.value", soufflagepourcent .. "% / " .. soufflagerpm .. "rpm") fibaro:call(thismodule, "setProperty", "ui.Label8.value", extraitpourcent .. "% / " .. extraitrpm .. "rpm") fibaro:call(thismodule, "setProperty", "ui.Label9.value", filtres .. " Heures") fibaro:call(thismodule, "setProperty", "ui.Label10.value",wallplug1 .." watt") --fibaro:call(thismodule, "setProperty", "ui.Label1.value", vitesse - 1 .. " (" .. extraitpourcent .. "%)") --fibaro:call(thismodule, "setProperty", "ui.Label2.value", RendementVMC .. "%") --fibaro:call(thismodule, "setProperty", "ui.Label3.value", Tairneuf .. "° " .. Trepris .. "° " .. Tsoufflage .. "°")
sebcbien Posté(e) le 6 novembre 2015 Auteur Signaler Posté(e) le 6 novembre 2015 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.
sebcbien Posté(e) le 6 novembre 2015 Auteur Signaler Posté(e) le 6 novembre 2015 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)
sebcbien Posté(e) le 6 novembre 2015 Auteur Signaler Posté(e) le 6 novembre 2015 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");
sebcbien Posté(e) le 6 novembre 2015 Auteur Signaler Posté(e) le 6 novembre 2015 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
temp2000 Posté(e) le 20 décembre 2015 Signaler Posté(e) le 20 décembre 2015 Hi All, Sorry, I don't speak French. So far, I've managed to install and configure raspi + Fhem. Also I added to Fibaro VD created by sebcbien. VD does communicate with raspi/VMC over server.py and cgi modules (https://github.com/jcoenencom). How can I interface Netatmo readings (CO2), through variables? What's a proper way of full VD configuration?
sebcbien Posté(e) le 20 décembre 2015 Auteur Signaler Posté(e) le 20 décembre 2015 Have a look in my signature, I've made a vd+php to do it. But you should be able to retrieve the c02 values from the official netatmo plugin from Fibaro. Sent from my Note4
temp2000 Posté(e) le 21 décembre 2015 Signaler Posté(e) le 21 décembre 2015 Hi again, I use Fibaro netatmo plugin. Somehow I've managed to write something like that: --[[%% autostart%% properties1293 value%% events%% globals--]]while true doif( tonumber(fibaro:getValue(1293, "value")) ~= 0 )then fibaro:setGlobal("CO2_Max_Value", tonumber(fibaro:getValue(1293, "value")));endfibaro:debug('Wartość CO2: ' .. tonumber(fibaro:getGlobalValue("CO2_Max_Value", "value")) .. ';');fibaro:sleep(300000);end It does update variable CO2_Max_Value but there is small problem with multiple instances of this scene. How to run it periodically and not having multiple instances?? Just to confirm, in general, to use this VD you created you need only 3 variables: - CO2_Max_Value - VMC_Speed - VMC_Lock To understand slider and Auto functionality, when its value is less than 50, VD controls VMC speed automatically (depends on CO2 level), over 50 is only manual mode and what does setpoint 50 do??
sebcbien Posté(e) le 21 décembre 2015 Auteur Signaler Posté(e) le 21 décembre 2015 Hi, I'm away, so it's difficult to re-check my code. Yes I think they are the only 3 GV VMC_LOCK if when you force a manual speed, so the Automatic mode (with CO2 MAX) is disabled. I use it for example when I'm away, I put the Absent mode, Because I already kown that when back home 8 hours later, the CO2 will be at the minimum value. I trigger the VMC VD from my netatmo VD (so just after CO2 value has been retrieved and stored in the GV.. The netatmo VD click the slider at 50, this trigger a different action in the code (check if auto or manual before changing speed).. Clicking the Slider over 50 set manual mode and update the vmc lock GV Clicking the Slider less than 50 set automatic mode and update the vmc lock GV
temp2000 Posté(e) le 22 décembre 2015 Signaler Posté(e) le 22 décembre 2015 Hi again, Finally, I've installed your netatmo VD plus php script on raspi as I want VMC VD to control fans speed. Seems like script does its job (json viewer shows all correct data) but once I want to update netatmo VD I receive via push, error info about resExt false and other readings are as true. What could be wrong? Anyway, Merry Christmas and Happy a New Year!
sebcbien Posté(e) le 22 décembre 2015 Auteur Signaler Posté(e) le 22 décembre 2015 My setup is with 2 thermostat and 3 netatmo. You have to modify the script a little to match your setup Sent from my Note4
temp2000 Posté(e) le 22 décembre 2015 Signaler Posté(e) le 22 décembre 2015 Mine is regular set with rain gauge. I've tried to edit lua code by removing all mod2 and so on sections plus amended average values calculation but as I was expecting - I did fuck up ;-) Now I can't get anything, either on VD itself or on the phone... Seems to be overcomplicated for me, haha!
sebcbien Posté(e) le 23 décembre 2015 Auteur Signaler Posté(e) le 23 décembre 2015 Not easy indeed. Reload the vd and see where it calls a module you do not have Sent from my Note4
dendi53 Posté(e) le 1 juin 2017 Signaler Posté(e) le 1 juin 2017 Bonjour Sebcbien, Je dispose d'une storkair 350 luxe avec comfosense, votre travail sur la 550 est-il compatible avec ma VMC ? Merci
sebcbien Posté(e) le 1 juin 2017 Auteur Signaler Posté(e) le 1 juin 2017 Normalement oui mais tu devras utiliser la dernière version de raspvmc qui a une nouvelle architecture et qui peut permettre de garder le confosenseJe n'en ai pas et j'ai gardé l'ancienne versionSent from my SM-N910F using Tapatalk
dendi53 Posté(e) le 1 juin 2017 Signaler Posté(e) le 1 juin 2017 Merci pour votre réponse. Je vais chercher dans ce sens.
dendi53 Posté(e) le 9 juillet 2018 Signaler Posté(e) le 9 juillet 2018 Bonjour Sebcbien, Tout d'abord, merci pour votre travail avec jcoenen sur bricozone. J'ai réussi hier à connecter ma WHR930 luxe avec confosense. J'ai bien accès en local à ma VMC via l'URL: " ipraspberry/VMC3.html " ( lecture et changement vitesses via boutons de la page web) Mon confosense fonctionne J'ai installé votre dernier VD, renseigné l'ip et le port. Lecture de la VMC ok quand je clic sur le bouton READ and SET. En revanche : Pas de mise à jour automatique du statue de la VMC ( dois-je créer une scène qui clique sur le bouton READ and SET du VD) Aucune réaction de la VMC quand je clique sur un bouton changement de vitesse ou température du VD ( slider <50 ou >50) Pas de relation avec ma station netatmo ( je ne vois pas où mettre l'id de mon detecteur de CO2 ) J'ai parcouru le code du VD et je suis perdu... Je vois en tête de code EmonCms, j'ai créer un compte, mais il sert à quoi? Merci
sebcbien Posté(e) le 9 juillet 2018 Auteur Signaler Posté(e) le 9 juillet 2018 Bonjour @dendi53 Pour un "débutant" tu t'attaque peut être à un peu gros, j'ai partagé ce VD, mais il n'est pas prévu pour être plug-play ... et il faut le modifier pour le faire à ta "sauce" ... et donc avoir un minimum de conaissances. Pour le CO2, c'est cette ligne là qui lit la valeur dans une VG: (CO2_Max_Value) qui est mise à jour par mon VD "YAGDA": local CO2_Max_Value_Local = tonumber(fibaro:getGlobalValue("CO2_Max_Value")) Pour EMONCMS, c'est juste si tu veut envoyer les valeurs sur cette plateforme pour les analyser ensuite, rien d'obligatoire, tu peux le désactiver avec ette ligne: local PushToEmonCMS = true -- true = push to emoncms - false = do not push pour le refresh, je demande à mon GEA d'appuyer sur le bouton une fois que d'autres paramètres sont à jour... Enfin, je devrais mettre tout ça au passé, puisque maintenant je fais tout ça avec Mon Jeedom.... Beauuuuucoup plus simple... Extrait: et pour pousser les valeurs vers emonCMS: Un chouià plus simple... Avec l'ajout de 2-3 scénarios pour automatiser tout ça: Peut être moins beau que sur Fibaro, ça dépends de chacun. Ensuite j'envoie toutes les données à ma Fibaro. Tout ceci pour dire... que je ne maintiens plus le code sur Fibaro... donc si ça plante suite à des mises à jour de Fibaro, je ne serai plus là pour tester
Messages recommandés