Aller au contenu

MasterBT

Membres confirmés
  • Compteur de contenus

    367
  • Inscription

  • Dernière visite

Messages posté(e)s par MasterBT

  1. Très naturel:

    j’ai directement dis:

    regle la luminosité de la salle de jeux 50% et hop.

    perso j’ai pas vu de grosse différence de réactivité vis à vis de Ifttt. Dans tout les cas on passe par le Cloud.

     

    j’ai pas testé alexa par contre.

     

  2. Je me permet de rajouter un 3éme post à la suite pour dire que Fibaro apparaît comme service sur Google Home en Français. 

    Je viens de synchro mon id Fibaro donc.

    Ca à importé (avec leurs pièces respective) les modules Z-wave et leur scènes. 

    Pas de traces des VD (hors tout mes éclairages et Vr sont via VD IPX)

     

    Bref pour les modules ca marche, même le dimmer est reconnu comme tel.

    Par contre j'ai des fois la réponse du genre: c'est pas configuré mais ca marche.

     

    Bref très bonne nouvelle pour les gens équipé de module fibaro, même je penses que dans un 1er temps il faut garder la solution ac IFTTT en plus pour avoir l'ensemble des possibilités.

     

     

    Ah si détail, sur mon Id Fibaro j'avais 2 HC2; la 1ére de la liste est mon ancienne qui est hors service en se moment. J'ai du la virer sinon la synchro ac le GH n'était pas possible.

     

    Bref, enjoy

  3. Impeccable merci,

    Il faut que je regardes la différence entre les 2 codes pour comprendre le changement et pas simplement appliquer.

    Il reste juste une petite erreur au niveau de l'historique de pluie.

     

    [ fatal] LUA error: /opt/fibaro/scenes/55.lua:227: bad argument #1 to 'pairs' (table expected, got nil)

  4. Hello, voila déja quelque temps qu'un script tourne sans soucis pour récup les info de la station (je me rappel plus l'auteur du script, désolé).

    Depuis quelque temps j'ai une erreur sur la récupération du module extérieur avec ce msg d'erreur la:

    [ fatal] LUA error: /opt/fibaro/scenes/55.lua:171: attempt to index field 'body' (a nil value)

     

    Rappel du script: 

    --[[
    %% properties
    %% autostart
    %% globals
    --]]
    
    local n_client_id = "XXXX"
    local n_client_secret = "XXXX"
    local n_username = "XXXX"
    local n_password = "XXXX"
     
    local hc2_module_virtuel = 161  -- 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 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"])
              fibaro:setGlobal("Pluie24h", " "..rains["day"])
                fibaro:setGlobal("Pluie30j", " "..rains["month"])
            fibaro:setGlobal("TempExt", " "..temperature_exterieure)
          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)
          log("co2 = " .. co2)
          log("humidite_interne = " .. humidite_interne)
          log("pression = " .. pression)
          log("bruit = " .. bruit)
        end
      )
    end
     
    -- ------------------------------------------------------------------------
    -- Mesure de l'unité externe
    -- ------------------------------------------------------------------------
    function getMesuresExt()
      getResponseData("https://api.netatmo.net/api/getmeasure","access_token="..token.."&device_id="..int_id.."&module_id="..ext_id.."&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_exterieure = " .. temperature_exterieure)
          log("humidite_externe = " .. 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();
      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])
        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()
              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)

    La ligne 171, c'est donc bien juste en dessous du début de la récup du module extérieur.

    Il n'y a pas eu de changement au niveau de la station..

     

    Tiens, idée en même temps que j'écris. Le module aurait pu changer d'ID?

  5. Je me permets de remonter ce topic pour savoir si depuis le temps vous aviez eu des retours?

    Car je suis curieux de savoir comment il apprend? Et si c'est le cas aussi ac des VD, 

    même si je rêves pas trop.. les gens ici aiment régler leur automatismes eux même pour coller au mieux.

  6. Etant conquis par le duo IFTTT / Raccourci dans google assitant pour supprimer le mot additionnel et ainsi obtenir des ordres simples comme: Ok Google ouvre le portail,

    C'est devenu 100% Waf, je viens de commander un Home pour remplacer le mini qui à démontrer l'intêret de en remplacement de Sarah pour envoyer des requêtes (mais pas pour le TTS). 

    Bref j'ai maintenant une très grande quantité de raccourci que j'ai du faire dans l'appli, et donc sur le compte Google qui est lié au Google Home, en l’occurrence le miens. Et maintenant pour ajouter les même fonction à l'android de Madame, aie. 

    Relier son Google Assistant à mon compte Google mais pas le reste du téléphone? (j'ai pas encore essayé)

    Dans IFTTT, on peut lié un seul compte google...

    • Like 1
  7. Bon, j'ai reçu ma 2éme HC2.

    Comme l'autre était en 4.5 avec le backup cloud, je voulais essayer de passer par la pour installer la 2éme de remplacement.

    Mais la 2éme est bien passé en 4.18 mais ne propose pas la maj 4.5. 

    Attendre est la seul solution?

    Au pire je ferais la copie d'une clef sur l'autre pour la 4.18 mais j'aurais était curieux de tester une restore en 4.5

  8. Avez vous tester l'interaction ac le skill (je sais pas comment ils nomment ça sur le GH) Fibaro en le passant en Anglais? J'ai réussi à le link au Fiabro account avec la commande, ok Google talk to Fibaro, puis après seul mes Hue sont apparue dans "controle de la maison".  

  9. Je sors la pelle et je re ouvre ce topic sur le chromecast, je l'utilisais plus depuis que j'ai une apple Tv qui me donne entière satisfaction mais depuis qq jour j'ai un google home mini pour tester car les commandes vocal via Sarah, ca n'a jamais pris.. et donc je regarde pour piloter la domotique via google assistant pour que ca soit plus WAF et à 30 / 45€, tu peut en coller un peu partout. Par contre l'audio dans la maison est tjs centralisé et relié à Sarah. Elle fait tjs bien le taff pour la musique et le TTS multi room, mais voila les GHM ca a pas un son de ouff et la maison est déja équipié. Donc je voudrais au lieu de relier un Chromecast audio sur l'ampli de Sarah, faire tourner un soft qui émule un récepteur chromecast sur Windows. Chose que je fais déja ac airplay et ca marche nikel.

     

    Le but: 

    Ok google, je veux écouter ma musique préférée sur Sarah -> musique dans toute la maison. Et ca sans acheter une chromecast audio + de quoi le relier au même niveau de l'UC de Sarah.

    Je cherche donc un petit soft comme ca mais impossible de trouver, pourtant c'est pas bien sorcier. avant chrome remplissait cette tache via une extention mais mnt c'est en natif mais en émetteur  seulement.

     

    Je sais pas si j'ai étais clair en fait :D

  10. Oé ca me fait pas mal de truc à tester car j'ai 2 modem car double co, une en adsl et une en 4g, donc wifi sur ceux la. et une antenne pro sur la maison qui arrose à 200m pour 3 ponts wifi ac des batiments pro et des Ipx derrière chacun pour la ventilation des silos à grains et gestion de l'irrigation . Le problème peut être au niveau réseau mais pas forcément wifi, bref une 30 éne au moins de périphérique.

    Méthode à l'ancienne, on va procéder par déduction.

    Sinon oui Fibaro m'a peut être mis sur une piste.

  11. Le support m'a répondu: Problème réseau, changer le cable (sans déconner..) sinon renvoyez la nous.

    Chose que j'ai pas fait pour l'instant car je ne peut pas me passer de la HC2, elle gère trop de chose en privé et pro.

    J'essaie de trouver si ca peut pas venir de qq chose sur mon réseaux qui met la pagaille car j'ai qq autre signe comme par exemple mon rasp que j'arrive plus à joindre en SSH, mais Fing le vois en scan reseau même aprés lui avoir mis un Os tout neuf.

    J'ai une prise mural qui marche bien ac un steam link mais plus l'apple TV

    Bref différent truc chelou mais j'ai tellement de chose sur mon réseaux à travers les différents pont wifi et caméra que ca laisse de quoi chercher.. Je vais continuer à chercher sachant que avec un reboot journalier ca tient le coup pour le moment.

     

    Ps: recovry, aucun changement

  12. Il y a 8 heures, mprinfo a dit :

    La sauvegarde du dossier backup de la clé sur un autre support ne sert plus à grand chose avec cette 4.503.
    J'ai eu un soucis du même genre cela était due à un module qui saturé mon réseau zwave

    Huawei Mate 10 Pro
     

    Tu as fais comment pour trouver le module en question?
    J'en ai pas énormément en Z-Wave, j'ai privilégié le filaire.

  13. Hello les amis,

    il y avait quelque temps que je n'étais pas venu sur le fofo, et que je m'occupe plus trop de l'installation domotique car ça tourne tout seul maintenant.

    Mais depuis qq jour, je perds ma HC2 au bout de quelque heure. Au début c'est l'interface Web, puis après même les scènes ne se lance plus.. Je la reboot et c'est repartit mais pas pour très longtemps.

    J'ai fais la dernière maj car il y avait quelque temps que je l'avais pas fait. (4.503) et j'ai fais un backup local et cloud (nouveau tiens..). Reboot mais aucun changement... J'ai un doute que un recovry change grand chose,  je penses que je vais contacter le SAV fibaro mais avant je me suis dis que je vais quand même exposer mon problème, on sait jamais.

     

    Box qui tourne depuis un peu plus de 3ans.

    RAM / CPU / espace disque: Ras

  14. Je repassais par la, je viens de tester l'url de steven, marche pas pour mon modéle (w3)

    Le sav m'avait donnait ça:

    http://user:password@ip:port/mjpeg/stream.cgi?chn=1

     

    ou ça

    http://192.168.1.163/mjpeg/stream.cgi?chn=1 (mais il y a le pop up pour le login / pass)

    bref j'arrives pas à lui faire avaler le login de la même façon que les autres

     

    ca marche dans chrome mais pas dans l'HC 2

×
×
  • Créer...