Aller au contenu

doblanch

Membres confirmés
  • Compteur de contenus

    28
  • Inscription

  • Dernière visite

Réputation sur la communauté

6 Neutral

À propos de doblanch

  • Rang
    Nouveau

Profile Information

  • Sexe :
    Homme
  • Ville :
    CLAMART
  • Box
    Home Center 2
  • Version
    ?

Visiteurs récents du profil

708 visualisations du profil
  1. doblanch

    SOS réponse HC2 extrêmement lente

    Ok merci pour cette info ;-) ca peut toujours etre utile.
  2. doblanch

    SOS réponse HC2 extrêmement lente

    Comment es-tu arrivé a cette conclusion ? Grace au monitoring ? Peux-tu nous expliquer ton raisonnement ?
  3. doblanch

    SOS réponse HC2 extrêmement lente

    Bonjour, As tu activé la case "interroger les noeuds morts"...j'ai cherché longtemps ( reboot HC2, neighbor list, arret electrique de tous les modules et redemarrage elecà rien n'y a fait... Moi en faisant, ca, a peu pres toute les minutes, les modules ne répondent plus, et il faut environ 20secondes pour passer une commande a un module... en desactivant, ca, cela refonctionne instantanément. dom
  4. doblanch

    Netatmo Anemometre

    cool que ca ai pu servir a quelqu'un , j'y avais passé un peu de temps !
  5. doblanch

    Netatmo Anemometre

    en fait pour les VD il faut reprendre le code et les labels, il n'y a rien de particulier dans le VD. je les ai mis en pieces jointes. Historique_Pluie.vfib Vent.vfibParametre_ interieur.vfibT° _Exterieur.vfib
  6. doblanch

    Netatmo Anemometre

    Bonjour, moi j'ai tout refait, pour tout inclure, pas uniquement le vent il faut créer une scene : --[[ %% properties %% autostart %% events %% globals --]] local n_client_id = "xxx" local n_client_secret = "xxx" local n_username = "xxx" local n_password = "xxx" local hc2_module_virtuel = 202 -- le module virtuel "Pluie" local debug = true -- affiche ou non les message dans la console local long_lat_adjust = 0.1 -- ajustement de la distance pour trouvé un pluviomètre local version = 2.0 -- ------------------------------------------------------------------------ -- NE PAS TOUCHER -- ------------------------------------------------------------------------ local force_use_rain_public = false local loc = api.get("/settings/location") local lat_ne = loc.latitude + long_lat_adjust local lon_ne = loc.longitude + long_lat_adjust local lat_sw = loc.latitude - long_lat_adjust local lon_sw = loc.longitude - long_lat_adjust local token = "" local int_id = "" local ext_id = "" local ext_bat = 0 local rain_id = "" local rain_bat = 0 local temperature_interieure = -1000 local temperature_exterieure = -1000 local ventRafaleDirection = -1000 local ventDirection = -1000 local ventVitesse = -1000 local ventRafaleVitesse = -1000 local temperature_chambre = -1000 local humidite_chambre = -1000 local CO2_chambre = -1000 local co2 = -1000 local humidite_interne = -1000 local humidite_externe = -1000 local pression = -1000 local bruit = -1000 local rains = {hour = -1000, day = -1000, week = -1000, month = -1000} -- ------------------------------------------------------------------------ -- Exécuté après chaque requète HTTP -- ------------------------------------------------------------------------ function afterHttpRequest() if (temperature_interieure > -1000) then end if (temperature_exterieure > -1000) then end if (co2 > -1000) then end if (humidite_interne > -1000) then end if (humidite_externe > -1000) then end if (pression > -1000) then end if (bruit > -1000) then end if (rains["hour"] > -1000) then if (rains["hour"] == -1) then fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblHeure.value", "n/a") else fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblHeure.value", " "..rains["hour"]) end end if (rains["day"] > -1000) then if (rains["day"] == -1) then fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblJour.value", "n/a") else fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblJour.value", " "..rains["day"]) end end if (rains["week"] > -1000) then if (rains["week"] == -1) then fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblSemaine.value", "n/a") else fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblSemaine.value", " "..rains["week"]) end end if (rains["month"] > -1000) then if (rains["month"] == -1) then fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblMois.value", "n/a") else fibaro:call(hc2_module_virtuel, "setProperty", "ui.lblMois.value", " "..rains["month"]) end end end -- ------------------------------------------------------------------------ -- Affichage dans la console -- ------------------------------------------------------------------------ function log(message, force) force = force or false if (debug or force) then print(__convertToString(message)) end end -- ------------------------------------------------------------------------ -- Retourne le niveau de batterie en pourcent -- ------------------------------------------------------------------------ function calcBat(bat, ext) local max = 6000 local min = 4200 if (ext) then max = 6000 min = 3600 end if (bat > max) then bat = max end return math.floor(bat * 100 / max) end -- ------------------------------------------------------------------------ -- Arrondi -- ------------------------------------------------------------------------ local function roundToNthDecimal(num, n) local mult = 10^(n or 0) return math.floor(num * mult + 0.5) / mult end -- ------------------------------------------------------------------------ -- Interrogation de l'API -- ------------------------------------------------------------------------ function getResponseData(url, body, func) local http = net.HTTPClient() http:request(url, { options = { method = 'POST', headers = { ["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8" }, data = body }, success = function(response) func(json.decode(response.data)) afterHttpRequest() end, error = function(response) log(" ERROR !!! " .. url, true) end, }) end -- ------------------------------------------------------------------------ -- Mesures de l'unité interne -- ------------------------------------------------------------------------ function getMesuresInt() getResponseData("https://api.netatmo.net/api/getmeasure","access_token="..token.."&device_id="..int_id.."&scale=max&type=Temperature,CO2,Humidity,Pressure,Noise&date_end=last", function(data) log("----------========== Module intérieur ==========----------") temperature_interieure = data.body[1].value[1][1] co2 = data.body[1].value[1][2] humidite_interne = data.body[1].value[1][3] pression = data.body[1].value[1][4] bruit = data.body[1].value[1][5] log("temperature_interieure = " .. temperature_interieure) fibaro:setGlobal('netatmoTempInt',temperature_interieure) fibaro:call(204, "setProperty", "ui.Label3.value", ""..temperature_interieure) log("co2 = " .. co2) fibaro:setGlobal('netatmoCO2Int',co2) fibaro:call(209, "setProperty", "ui.Label1.value", ""..co2) log("humidite_interne = " .. humidite_interne) fibaro:setGlobal('netatmoHumInt',humidite_interne) fibaro:call(204, "setProperty", "ui.Label1.value", ""..humidite_interne) log("pression = " .. pression) fibaro:setGlobal('netatmoPressionInt',pression) fibaro:call(205, "setProperty", "ui.Label1.value", ""..pression) log("bruit = " .. bruit) fibaro:call(204, "setProperty", "ui.Label2.value", ""..bruit) fibaro:setGlobal('netatmoBruitInt',bruit) end ) end -- ------------------------------------------------------------------------ -- Mesure de l'unité chambre -- ------------------------------------------------------------------------ function getMesuresChambre() getResponseData("https://api.netatmo.net/api/getmeasure","access_token="..token.."&device_id="..int_id.."&module_id="..ext_id.."&scale=max&type=Temperature,Humidity,CO2&date_end=last", function(data) log("----------========== Module chambre ==========----------") temperature_chambre = data.body[1].value[1][1] humidite_chambre = data.body[1].value[1][2] CO2_chambre = data.body[1].value[1][3] log("CO2_chambre = " .. CO2_chambre) fibaro:setGlobal('netatmoCO2Chambre',CO2_chambre) fibaro:call(210, "setProperty", "ui.Label1.value", ""..CO2_chambre) log("temperature_chambre = " .. temperature_chambre) fibaro:setGlobal('netatmoTempChambre',temperature_chambre) fibaro:call(206, "setProperty", "ui.Label1.value", ""..temperature_chambre) log("humidite_chambre = " .. humidite_chambre) fibaro:setGlobal('netatmoHumChambre',humidite_chambre) fibaro:call(203, "setProperty", "ui.Label1.value", ""..humidite_chambre) fibaro:debug("test10"); end ) end -- ------------------------------------------------------------------------ -- Mesure de l'unité Vent -- ------------------------------------------------------------------------ function getMesuresVent() log("vent") getResponseData("https://api.netatmo.net/api/getmeasure","access_token="..token.."&device_id=".."70:ee:50:02:ef:ee".."&module_id=".."06:00:00:00:16:c6".."&scale=max&type=GustAngle,WindAngle,WindStrength,GustStrength&date_end=last", -- getResponseData("https://api.netatmo.net/api/getmeasure?access_token=56c1c3e445a1e38b02a0a0e5|2b5f449d5d224136cb0e701a59452485&device_id=70:ee:50:02:ef:ee&module_id=02:00:00:02:dd:34&scale=max&type=Temperature,Humidity&date_end=last", function(data) log("----------========== Module vent ==========----------") ventRafaleDirection = data.body[1].value[1][1] ventDirection = data.body[1].value[1][2] ventVitesse =data.body[1].value[1][3] ventRafaleVitesse = data.body[1].value[1][4] log("ventRafaleDirection = " .. ventRafaleDirection) log("ventDirection = " .. ventDirection) log("ventVitesse = " .. ventVitesse) log("ventRafaleVitesse = " .. ventRafaleVitesse) fibaro:setGlobal('netatmoVentDir',ventDirection) fibaro:setGlobal('netatmoVentRaftDir',ventRafaleDirection) fibaro:setGlobal('netatmoVentvitesse',ventVitesse) fibaro:setGlobal('netatmoVentRafVit',ventRafaleVitesse) fibaro:call(21, "setProperty", "ui.Label1.value", ventVitesse .. " Km/h") fibaro:call(21, "setProperty", "ui.Label2.value", ventRafaleDirection .. " °") fibaro:call(21, "setProperty", "ui.Label3.value", ventRafaleVitesse .. " Km/h") fibaro:call(21, "setProperty", "ui.Label4.value", ventRafaleDirection .. " °") -- log("humidite_exterieur = " .. humidite_externe) --fibaro:call(207, "setProperty", "ui.Label1.value", ""..humidite_externe) end ) end -- ------------------------------------------------------------------------ -- Mesure de l'unité exterieur -- ------------------------------------------------------------------------ function getMesuresExt() log("test") getResponseData("https://api.netatmo.net/api/getmeasure","access_token="..token.."&device_id=".."70:ee:50:02:ef:ee".."&module_id=".."02:00:00:02:dd:34".."&scale=max&type=Temperature,Humidity&date_end=last", -- getResponseData("https://api.netatmo.net/api/getmeasure?access_token=56c1c3e445a1e38b02a0a0e5|2b5f449d5d224136cb0e701a59452485&device_id=70:ee:50:02:ef:ee&module_id=02:00:00:02:dd:34&scale=max&type=Temperature,Humidity&date_end=last", function(data) log("----------========== Module extérieur ==========----------") temperature_exterieure = data.body[1].value[1][1] humidite_externe = data.body[1].value[1][2] log("temperature_exterieur = " .. temperature_exterieure) fibaro:setGlobal('netatmoTempExt',temperature_exterieure) fibaro:call(208, "setProperty", "ui.Label1.value", ""..temperature_exterieure) log("humidite_exterieur = " .. humidite_externe) fibaro:setGlobal('netatmoHumExt',humidite_externe) fibaro:call(207, "setProperty", "ui.Label1.value", ""..humidite_externe) end ) end -- ------------------------------------------------------------------------ -- Obtention des informations sur un pluviomètre proche -- ------------------------------------------------------------------------ function getRainNear() getResponseData("https://api.netatmo.net/api/getpublicdata","access_token="..token .. "&lat_ne="..lat_ne.."&lon_ne="..lon_ne.."&lat_sw="..lat_sw.."&lon_sw="..lon_sw, function(data) --log(data) rains["week"] = -1 rains["month"] = -1 rains["hour"] = -1 rains["day"] = -1 log("----------========== D e v i c e s =========----------") for _, v in pairs(data.body) do for l, w in pairs(v.measures) do if (type(w.rain_24h) ~= "nil") then rains["day"] = w.rain_24h rains["hour"] = w.rain_60min end end end if (rains["day"] == -1000) then log("Impossible de trouver un pluviomètre à proximité, augmentez [long_lat_adjust]", true) else log("Pluie jour : " .. rains["day"]) log("Pluie heure : " .. rains["hour"]) end end ) end -- ------------------------------------------------------------------------ -- Mesure du détecteur de pluie historique -- ------------------------------------------------------------------------ function getMesuresRain(duree, variable) local now = os.time(); -- debug("token" .. token) getResponseData("https://api.netatmo.net/api/getmeasure","access_token="..token.."&device_id="..int_id.."&module_id="..rain_id.."&scale=1hour&type=sum_rain&real_time=true&date_begin="..os.date("!%c", (now - duree)), function(data) log("----------========== Pluie histo ==========----------") local cumul = 0 for k, v in pairs(data.body) do for l, w in pairs(v.value) do cumul = cumul + w[1] end end cumul = roundToNthDecimal(cumul, 2) rains[variable] = cumul log("rain["..variable.."] = " .. rains[variable]) fibaro:setGlobal("pluieHeure",rains["hour"]) end ) end -- ------------------------------------------------------------------------ -- Obtention des informations sur les devices -- ------------------------------------------------------------------------ function getDevices() getResponseData("https://api.netatmo.net/api/devicelist","access_token="..token, function(data) log("----------========== D e v i c e s =========----------") for _, v in pairs(data.body.modules) do if (v.data_type[1] == "Rain") then rain_id = v._id rain_bat = calcBat(v.battery_vp, true) else ext_id = v._id ext_bat = calcBat(v.battery_vp, true) end end int_id = data.body.devices[1]._id getMesuresInt() getMesuresExt() getMesuresChambre() getMesuresVent() if (rain_id ~= "" and not force_use_rain_public) then getMesuresRain(60 * 60, "hour") getMesuresRain(60 * 60 * 24, "day") getMesuresRain(60 * 60 * 24 * 7, "week") getMesuresRain(60 * 60 * 24 * 30, "month") else getRainNear() end end ) end -- ------------------------------------------------------------------------ -- Authentification -- ------------------------------------------------------------------------ function auth(nextFunction) local request_body = "grant_type=password&client_id=" .. n_client_id .. "&client_secret=" .. n_client_secret .. "&username=" .. n_username .. "&password=" .. n_password .. "&scope=read_station" getResponseData("https://api.netatmo.net/oauth2/token", request_body, function(data) token = data.access_token log(token) nextFunction() end ) end auth(getDevices) log("Last request : " .. os.date("%x - %X"), true)
  7. doblanch

    Fibaro FGT-001 - Vanne Thermostatique

    J'ai le modele de base M30... donc rien a faire a part visser. Le support m'a repondu, ils vont fixer le probleme dans un firmware update qui va arriver...
  8. doblanch

    Fibaro FGT-001 - Vanne Thermostatique

    moi j'ai 2 vannes, cet ca marche pas. En fait le pointeau ne va pas assez loin pour ouvrir la vanne. Ils m'ont envoyé un adaptateur en laiton pour mettre entre la vanne et robinet, mais c'est encore trop petit. J'ai toujours 1° d'ecart.... En gros je recommande pas l'achat. Je leur ai envoyé un email il y a 2J mais pas de réponse... Bref, encore un truc pas fini !
  9. doblanch

    Fibaro FGT-001 - Vanne Thermostatique

    J'ai juste écris a l'email du support en leur expliquant le probleme sans trop rentrer dans le detail, car bien evidemment manifestement, ils connaissent très bien le probleme. Entre le moment ou j'ai ecris et la solution, ca a du prendre 1 semaine en tout. Pour le coup, si leur ring fonctionne, why not... je serais satisfait, meme si j'ai l'impression d'etre encore un cobaye des qu'on achete de nouveaux produits
  10. doblanch

    Fibaro FGT-001 - Vanne Thermostatique

    J'ai eu le support de fibaro. Il m'emvoie un "ring" supplemetaire pour mettre entre le FGT et le robinet pour corriger le probleme de sous chauffage. Quand la vanne ouvre pour chauffer, le pointeau ne va pas assez loin, je pense qu'ils envoient juste une piece en plastique pour que le pointeau aille plus loin.
  11. doblanch

    Fibaro FGT-001 - Vanne Thermostatique

    Ca fait tout de meme 1° d'écart...
  12. doblanch

    Support Gea

    @pepiteLOL , tout le monde me demande pourquoi je quitte jeedom, comme si jeedom etait le truc de dingue, vraiment génial. Après 3 ans d'utilisation, il y a bon nombre de chose qui me déplaisent, les upgrade se passent généralement pa bien, apres upgrade y a toujours un plugin qui deconne. Pour la partie Zwave c'est encore pire, et les retours arrieres aléatoires. C'est pour moi trop pour les geeks, et encore j'ai bien geeké, car je suis en plus parti dans mysensor... mais bon par extraordinaire non plus. Apres 2 semaines d'utilisation, je suis impressioné par la réactivité Z-wave... aucune latence... avec jeedom, des fois les commandes passent pas, ou avec un delais. Moi je veux faire de la domotique pour un usage précis, je ne fais pas de la domotique pour la domotique... pour moi la domotique c'est plug and forget. @971jmd merci je vais tester mais je comprends pas encore toute la ligne de code. Quand on met, ci dessous, pourquoi prendrait-il la valeur du mouvement ? et pas celui de la temperature ..??? c'est ca que je ne comprends pas "Value", 38, 0
  13. doblanch

    Support Gea

    Bonjour a tous, Je debute en tout LUA, HC2, et GEA.. J'etais sous jeedom pendant 3 ans, j'esaie de migrer mes fonctions sous HC2. Par contre je voudrais creer un mode absence qui si les mes 3 yeux fibaro n'ont pas vu d'activité pendant 30 min, on passe une variable en mode absent ... Je voulais le faire en GEA mais ca marche pas. je tatonne sans resultat, Je pensais a quelque chose comme ca en remplacant essai par la variable a setté. GEA.add({"Sensor", 38, 0 }, 60*60,"essai") Mais dans les sensors, on peut allé chercher plusieurs info, comment sait-il laquelle il doit prendre... Bref, c'est pas clair, si quelqu'un peut m'aider. c'est basique je sais mais bon
  14. doblanch

    Module virtuel EcoDevice RT2 pour Home Center 2

    non... mais c'est pas grave, j'en ai fais un ... pour le non RT... il fonctionne ca me va.
  15. doblanch

    Au revoir jeedom, bonjour HC2

    J'ai pompé un VD d'un allemand qui fonctionne très bien, avec quelques petites modif ... Le resultat est parfait !
×