Aller au contenu

kiwi

Membres confirmés
  • Compteur de contenus

    500
  • Inscription

  • Dernière visite

  • Jours gagnés

    4

Messages posté(e)s par kiwi

  1. merci pour le partage :)

     

    ce qui serait trop, c'est la même chose avec Météo Paris, qui est bien plus fiable que les autres sites de météo nationale.

     

    De mon coté le OpenWeathermap est pas mal et assez fiable.

    De toute facon, j'ai commencé a acheter les modules orégon pour les coller sur mon Domoticz (Rapberry Pi) que je suis en train de dédier :)

  2. @latoupie De mon coté j'utilise un module FGS221 qui me permet :

     

    • Allumer la VMC (par défaut en petite vitesse)
    • Mettre la grande vitesse

    Ceci dit, ça dépends de ta VMC, as-tu regardé le mode d'emploi du commutateur normal / grande vitesse.

     

    D'autre part, mon script LUA ne peux pas fonctionner sur l'HCL, mais tu peux asservir allumage de la SdB avec la grande vitesse par un simple script en bloc + ajout d'une tempo pour l'extinction.

     

    Pour l'allumage / extinction : 2 scènes matin / soir suffisent a mon avis.

  3. Bonjour,

     

    Je viens après avoir fait un peu de reverse engineering des appels de l'appli Airparif via un squid de faire un petit virtual module rapidement codé qui permet d'afficher les infos qu'on trouve sur l'appli de airparif.

     

    Je rappelle que Airparif ne sort pas d'API officielle et donc il s'agit un petit Hack de ma part (même si j'ai pas du tout décompilé l'appli ni même bricolé leur site).

     

    Elle permet d'afficher correctement les infos qu'on as sur le site sans peine.

     

    Voici un screen shot :

     

    post-9-0-79820700-1417356575_thumb.png

     

    Pour le moment elle est assez simple, si vous voulez l'optimizer ou la rendre mieux, n'hésitez pas !

     

    Voici le Virtual Module (fait dans ma HC2 version 3.591, pas testé sur les version 4.x, je suis hélas en prod et le fact WAF ne passerais pas...)

    AirParif.vfib

    • Upvote 2
  4. Météo France ne fournit aucune information pour les privés, il a déjà  fallu que je parcours leurs code pour trouver la référence de leur fichier XML (bien pourri d’ailleurs).

    En france, il y a plein de site d'alerte super intéressants : pollens.fr pour les allergiques, airparif.asso.fr pour la pollution ... aucun de ces sites ne fournit leurs données vers l'extérieur. 

     

    Je posterais ce soir la mise à  jour de ce module qui fonctionne correctement après un petit lifting du main loop.

     

    Edit : si vous recevez une alerte, aller regarder leur site, j'ai volontairement noté l'adresse sur le VD.

     

    Pour airparif, j'ai réussi a faire du reverse de leur appli iPhone, grace a squid, j'ai trouvé 3 API JSON :P

     

    http://www.airparif.asso.fr/appli/api/indice?date=jour&size=180x150

    http://www.airparif.asso.fr/appli/api/indice?date=hier&size=180x150

    http://www.airparif.asso.fr/appli/api/indice?date=demain&size=180x150

     

    Je suis quasi sà»r qu'on peux réussir a faire un bon VM qui vas bien... :D

  5. @fdp2 oui effectivement, mais je me demande si les 0 à  1s correspondent au temps de délestage pas au temps de réaction. A tester donc.

     

    Par contre que les requêtes http se perdent ou mieux que le main loop du virtual module se caviarde sur une requête http, je l'ai eu de mon coté (justement dans mon virtual module eco device ou je faisais dans le main loop la requete json qui... se plantais mais dont le seul moyen de faire correctement tourner ca etais de faire sauvegarder sur le virtual module).

     

    Donc faire gaffe au massive fail la dessus. Ceci dit, je suis sur une HC2 de production et donc je suis resté en 3.591 pas passé en 3.9xx ou 4.x trop dangereux. Peux-être que ce bug est corrigé.

     

    Le délesteur Hager dont tu parles ressemble beaucoup au miens, avec l'avantage qu'il n'y a pas de cavalier a bouger :), je vois aucun problèmes a en mettre plusieurs a part le prix et la place dans le tableau :) Par contre il est vrai qu'une version 8 zones serait cool. Mais rien que ma zone 1 qui contient salon/salle à  manger/cuisine (ouverte sur salon) me mange 5Kw...  donc > 50% de l'abo électrique...

     

    Et je suis assez d'accord un SRT 321 par chambre serait super classieux, mais très cher (qubino + SRT > 150€)... 

  6. Oui effectivement @ftp2 c'est le seul soucis du setup.

     

    Effectuer un delestage via la HC2, je ne sais pas si ca sera assez rapide par rapport a un hager comme j'ai.

    Car ca doit agir instantanément car le disjoncteur principal a peu de marge de manoeuvre... (et encore moins les linky d'après ce que j'ai entendu parler...).

  7. L'intégration des modules Z-Wave dans des boitiers Rail DIN c'est propre, mais attention au risque de surchauffe. Laisser le coté grille d'aération du module du cote ouvert du boitier DIN.

     

    Après reste le risque de surchauffe/feu des modules Z-Wave, perso je pense qu'il vaut mieux les mettre dans un autre tableau 1 ou 2 rangées séparé du tableau qui contient les disjoncteurs.

     

    Chez moi les fils pilotes ne remontent pas au tableau, donc je n'ai pas d'autre choix que de mettre les modules dans les boites d'encastrement derrières les radiateurs.

     

    Enfin, je pense qu'un module Qubino Fil Pilote c'est plus propre et ça fait moins "hack" qu'un FGS avec 2 diodes ou un SSR303 avec 1 diode.

     

    (...)

     

    Je suis 100% d'accord sur le coté propre de l'intégration dans des boitiers Rail DIN. Limite prévoir un 4 unité et prévoir de n'en mettre que 3 au max.

     

    Après je sais pas si on pourrais demander a Qubino (ou d'autres) de nous faire une version Rail Din.

     

    D'ailleurs j'explique pourquoi les miens sont dans les Rail DIN : j'ai une maison datant de 2001, avec donc : délesteur compatible fil pilote (en gros s'il déleste, il balance un signal arrêt complet sur les fils pilote en question) donc mettre les modules directement auprès des radiateurs m'obligerais de passer l'abo électrique de 9K a 12K... 

     

    Je vais regarder de près les idées vue et voir ce que je peux faire pour être propre, parce que même si le Qubino m'as permis d'avoir un sacré rangement, j'aimerais que ca soit nickel... lors de la revente de la maison dans quelques années.

  8. (...)

     

    Selon toi : ta solution en Secure SRT321 + Qubino est mieux que le kit Secure SRT322 + diode 1N4007 ?

     

    // actuellement le contacteur de puissance est à  priori déà  piloté par le programmateur & le thermostat...

     

    ++

     

    C'est exactement ce que j'utilise dans mon salon pour piloter les 5Kw de chauffage avec un SRT321. Ca marche parfaitement :)

  9. Hello,

     

    Je suis passé de la solution du 1/2 pont diode au module Qubino Fil Pilote, et je suis particulièrement content de ce module.

    Simple, efficace, bref rien a dire. A part les 2 sous modules qu'on peux pas virer sur ma HC 3.591 mais c'est pas grave.

     

    J'ai même fait un virtual module pour que ça marche proprement. Je peux passer le code si jamais çà  vous intéresse :)

     

    La cerise sur le gâteau avoir ce module qubino en rail din avec genre 2 ou 4 zones ça serait le truc ultime, car je doute que lorsque je vendrais ma maison que ce genre de "hack" soit apprécié par les gars qui font les diagnostic électriques.... :/

    • Like 1
  10. Bonjour,
     
    Encore un code de ma part : la gestion de volets extérieur automatiques.
     
    Mon idée est de faire de sorte que mes volets soient commandés de façon semi auto en journée, lors des chaleurs dà»es a l'été pour éviter de faire rentrer trop de chaleur dans la maison (et ainsi ne pas utiliser de clim).
     
    L'installation est plus ou moins prévue pour ma maison, car j'ai une double orientation, donc 2 sondes extérieures, et 2 groupes de volets.
     
    Il me reste a finir :
     
    Il y a plusieurs variables a configurer :
    • tempsensors: les sondes de température à  l'extérieur et à  l'ombre. Ici 34 & 123
    • a_shutters: les roller shutter associés au sondes de température extérieures (ici les volets 96 & 218 sont associés à  la sonde 34, et le volet 97 à  la sonde 123) 
    • shutter_sensors: les détecteurs d'ouvertures qui correspondent aux fenêtres des volets pour tester si la fenêtre/porte est ouverte 
    • shutter_close: comme j'ai 3 type de fenêtre, les positions "été" sont souvent pas les même
    • templimit: la temperature extérieure à  partir de laquelle les volets vont être fermés
    • minhour et minminutes : heure a laquelle on force la levée des volets le matin. C'est l'option WAF qui permet de dormir le week-end et éviter que les volets s'ouvrent automatique par beau temps, lors.... du lever de soleil. Dans mon code cette valeur est 10h30.
    • debug: si vous voulez du debug ou pas.
     
    En option la variable shutter_open est la valeur à  laquelle vous voulez que la position "ouvert" soit configuré (içi 99.0 = défaut du HC).
     
    A noter que le programme recherche une variable mise par l'excellent scheduler de robmac :
     
    -- Nuit et Jour
    luaDaySchedule:add("Sunset","NightTime", "1" , "setGlobal", {"All"} , true , - 11)
    luaDaySchedule:add("Sunrise","NightTime", "0" , "setGlobal", {"All"} , true , 11 )
    

    Voici le code, je ne l'ai pas encore mis sur mon GIT public 

    --[[
    %% properties
    3 WeatherConditionConverted
    %% globals
    --]]
    
    -- Version 1.0.3 - (C) Xavier Beaudouin under the MPL 1.1 LICENSE
    
    -- set here sensors
    local tempsensors = { 34, 123 };
    -- Create array with same index than temp sensors (used to cache max temps per day)
    local max_temp = {
      [34] = -99.0,
      [123]= -99.0,
     };
    
    -- Roller Shutter associated (ONLY ROLLER SHUTTER !) to the sensors
    local a_shutters = {
       [34]  = { 96, 218 }, 
       [123] = { 97 },
      };
    
    -- Door sensors associated to Roller Shutter
    local shutter_sensors = {
       [96] = 77 ,
       [97] = 75 ,
       [218]= 83 ,
      };
       
    
    -- set limit when shutter has to go down
    local templimit     = 25.0;
    local shutter_open  = 99.0;
    -- Adjust with the right numbers needed to get right calibration.
    local shutter_close = { 
      [96] = 44.0,
      [97] = 40.0,
      [218]= 20.0,
     };
    
    -- Hour and minute in the morning when shutter are not to be upped if 
    -- current time is below this hour and minutes
    local minhour    = 10;
    local minminutes = 30;
    
    -- debug or not
    debug = true;
    
    -- Don't change anthing there
    -- Variable delay stuff depending of meteo and night 
    -- sleepdelta is number of 10 minutes respawn of this script
    local sleepdelta = 1;
    
    -- Avoid multiple launch of this script
    if (fibaro:countScenes()>1) then 
      fibaro:debug('Second instance closed') 
      fibaro:abort(); 
    end  
    
    -- functions
    function mydebug(string)
     if (debug)
     then
        fibaro:debug(string);
     end
    end
    
    function checktime()
      local todayIs = os.date("*t");
      local destdate = os.time{year=todayIs.year,month=todayIs.month, day=todayIs.day, hour=minhour, min=minminutes};
      local currenttime = os.time();
      mydebug("Time is : "..todayIs.hour..":"..todayIs.min);
      mydebug("Comparing to "..minhour..":"..minminutes);
      mydebug("Current time is : "..currenttime);
      mydebug("Dest time is : "..destdate);
      if (currenttime < destdate)
      then
        mydebug("Time is < -> ok");
        return true;
      else
        mydebug("Current time is > ");
        return false;
      end
      return false;
    end
    
    function check_shutter(shutters, what)
        local value;
        mydebug("-- check_shutter()");
        for s,z in ipairs(shutters) do
          if (what == "up")
          then
            value = shutter_open;
          elseif (what == "down")
          then
            value = shutter_close[z];
          end
          
          local cur_shutter = tonumber(fibaro:getValue(z, "value"));
          local shutter_name = fibaro:getName(z);
          mydebug("--- Shutter "..shutter_name.."("..z..") is currently : "..cur_shutter.." comparing to command : "..value);
          if (what == "up")
          then
            if (cur_shutter >= value)
            then
              mydebug("---- Shutter is ok, skip");
            else
              if (checktime())
              then
                mydebug("---- Current time is < to ".. minhour..":"..minminutes.." : don't up the shutter");
              else
                mydebug("---- Shutter is to be upped");
                fibaro:call(z, "setValue", value);
              end
            end
          elseif (what == "down")
          then
            if (cur_shutter <= value)
            then
              mydebug("---- Shutter is ok, skip");
            else
              mydebug("---- Shutter has to be downed");
              -- Check if door is open. If not, then close the shutter
              local door_is_open = tonumber(fibaro:getValue(shutter_sensors[z], "value"));
              if (door_is_open == 1)
              then
                 mydebug("----- Door / Window is open : don't close "..z);
              else
                 mydebug("----- Yes we close "..z);
                 fibaro:call(z, "setValue", value);
               end
            end
          end
          -- Sleep for 10 seconds
          mydebug(" 10 sec sleep");
          fibaro:sleep(10*1000);
        end
        return 0;
    end
    
    
    function do_shutter_work()
      -- Do the real Shutter work
      sleepdelta=1;
      fibaro:debug("- Now figure if we need to get down shutter");
      for i,v in ipairs(tempsensors) do
        local cur_temp = tonumber(fibaro:getValue(v, "value"));
        local temp_name = fibaro:getName(v);
        fibaro:debug("- Sensor "..temp_name.."("..v..") has temperature "..cur_temp.."°C"); 
        -- Update the cache if needed.
        if (cur_temp > max_temp[v])
        then
          fibaro:debug("- Update cache for "..v);
          max_temp[v] = cur_temp;
          
          if (cur_temp > templimit)
          then
            fibaro:debug("-- Temp is out limit");
              
            check_shutter(a_shutters[v], "down");
          end
        else
          if (cur_temp < templimit)
          then
            fibaro:debug("-- Temp is under limit");
              
            check_shutter(a_shutters[v], "up");
          end
        end
     end
     end
      
    -- main code
    while true do
      -- Check it this is night
      if ( fibaro:getGlobalValue("NightTime") == "0")
      then
        local meteo = fibaro:getValue(3, "WeatherConditionConverted");
        
        -- Meteo can be : clear, fog, cloudy
     
        fibaro:debug("Weather is ".. meteo);
        if (meteo == "clear")
        then
          do_shutter_work();
        else
          if (meteo == "cloudy")
          -- Even if meteo is cloudy it can be hot
          then
            do_shutter_work();
          else
            -- Sleep for 20 Minutes
            sleepdelta=2;
          end
        end
      else
        fibaro:debug("This is night, nothing to do...");
        -- Reset the temperature to default values
        for i,v in ipairs(tempsensors) do
          max_temp[v] = -99.0;
        end
        -- Sleep for one hour
        sleepdelta=6;
      end
      if (sleepdelta == 0)
      then
         sleepdelta = 1; -- 10 Minutes
      end
      fibaro:debug("Sleep for "..(sleepdelta*10).." minutes...");
      fibaro:sleep(sleepdelta*600*1000);
    end
    
    
    Historique :
     
    Version 1.0.0
    version initiale
     
    Version 1.0.1
    - Ajout d'un système de cache pour éviter que les volets ne fassent monter et descendre lors de baisse faible de température. Le volet ne descendra QUE si la temperature ne fait que monter.
     
    Version 1.0.2:
    - Ajout d'une tempo de 10 secondes entre 2 commandes ZWave (important quand on a beaucoup de modules)
     
    Version 1.0.3:
    - Ajout de la fonction WAF qui permet de ne pas ouvrir le volet quand il fait beau ou nuageux en même temps que le soleil. Teste si le volet est fermé, dans cas "ne fait" rien jusqu'à  l'heure indiquée.
     
    Merci de me donner tout patches, correctif, ou idée de code a intégrer.
  11. Bonjour,
     
    Vous l'avez peut-être vu ailleurs, j'ai créé un p'tit script qui me permet de lancer ma VMC simple flux selon l'humidité de la maison. Pratique en hivers pour éviter de balancer la chaleur dehors.
     
    J'ai mis sur mon bloc VMC un FGS-221 : O1 allume la VMC, O2 mets la grande vitesse. Evidement ceci dépends de votre modèle de VMC.
     
    D'autre part, je calcule dans ce script la moyenne d'humidité sur les 4 ST814 que j'ai dans le salon / chambre / sdb / douche et si l'un d'entre eux a +5% d'humidité que la moyenne alors la vitesse lente démarre, si c'est 70% de plus que la moyenne la grande vitesse se lance. Et on attends 10minutes et on voit si on doit changer la solution.
     
    Voici le code, il y a encore du debug dedans, les variables suivantes sont a changer :
     
    hum_cap : les capteurs d'humidité... 
    vmc_low : VMC low speed 
    vmc_high : VMC high speed

    Le code est sous licence MPL 1.1, vous pouvez l'utiliser comme vous voulez, mais vous devez laisser mon nom dessus. A noter que je suis preneur de toute idées et ou modifications pour rendre ce code plus intelligent.
     

    Changements :

    • Version 1.0.2 : Version initiale
    • Version 1.0.4 : Ajout du support de déclenchement manuel de la scène ou lorsque la sonde d'humidité se déclenche (ne pas oublie de mettre id value en haut du script).

    Le code est disponible sur mon GIT, si vous avez des bugs il y a aussi un tracker pour cela : https://redmine.oav.net/projects/kiwi/repository/changes/fibaro/lua/vmc/vmc.lua

    Xavier

    • Upvote 3
  12. Bonjour,

     

    Comme il faut se présenter, Kiwi, aka Xavier, 41 ans, passionné de logiciels libres, d'électronique, et de domotique.

     

    J'ai un HC2 acheté d'okaz (si ca existe), et plus de 69 modules dans ma maison.

     

    Accessoirement j'ai aussi un Eco devices et aussi un IPX800 (et plein de machines qui tournent sous FreeBSD...).

     

    L'IPv4 et l'IPv6 sont mes dadas, et j'adore fouiller verticalement dans l'informatique (aussi bien du soft "end user", que de taper dans le noyau, voire travailler sur l'éclairage d'une fibre optique qui fait 70km)...

     

    Bref, vous avez une idée du geek :P

×
×
  • Créer...