Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Steven

    Pushbullet

    Ou directement importer le script "pushbullet" dans GEA puis l'appeler directement. for i = 1, #GEA.portables do pushbullet:send(GEA.getMessage(entry, nil), fibaro:getName(tonumber(GEA.portables[i]))) GEA.log("sendActions", entry, "!ACTION! : sendPush " .. GEA.getMessage(entry, nil), true) end
  2. Steven

    Pushbullet

    GEA.add(....., {{"Global", "Pushbullet", "Jojo n'y a même pas pensé"}}) Sinon, il faut remplacer le code de GEA qui envoi des notifications via Fibaro par "fibaro:setGlobal("Pushbullet", GEA.getMessage(entry, nil))"
  3. Steven

    Pushbullet

    --------------------------------- PUSHBULLET API --------------------------------- Bonjour, Si comme moi, vous appréciez le service de notification "Pushbullet" et que vous souhaitez l'utiliser depuis votre HC2, voici un script qui vous permettre 2 ou 3 petites choses : Consulter la liste de vos appareils connectés au service Pushbullet Envoyer un message sur tous vos appareils connectés Envoyer un message sur un appareil précis. Avantage de ce script : Pas besoin de service intermédiaire comme pushingbox Plus besoin d'utiliser les notifications aléatoires et capricieuses de Fibaro Pré-requis : Un compte chez Pushbullet L'application Pushbullet installée sur vos appareils (https://www.pushbullet.com/apps) Obtenir un "Token" ... Connectez-vous sur le site Pushbullet -> My Account (en cliquant sur votre avatar) -> Create Access Token Voici le script local pushbullet = { token = "o.Ax6xXFI5Qa8YZX1BFoWzozmVL5plEwGd", titreDesMessage = "Fibaro", debug = false, -- ============================================== -- Affichage dans la console -- Paramètres : -- message : le message a afficher -- force : affiche le message même si debug est à false -- ============================================== log = function(self, message, force) force = force or false if (self.debug or force) then print(__convertToString(message)) end end, -- ============================================== -- Affichage les devices reconnus et actifs -- Paramètres : -- data : tableau des devices -- ============================================== displayDevices = function(self, data) self:log("----------========== D e v i c e s =========----------", true) for k,v in ipairs(data.devices) do if (v.model) then self:log(v.model .. " --- " .. v.iden, true) end end end, -- ============================================== -- Interrogation des devices -- Paramètres : -- func : une fonction a rappeler après traitement ou nil -- ============================================== getDevices = function(self, func) local http = net.HTTPClient() http:request("https://api.pushbullet.com/v2/devices", { options = { method = 'GET', headers = { ["Access-Token"] = self.token, ["Content-Type"] = "application/json" }, data = "" }, success = function(response) if (func) then func(json.decode(response.data)) else self:displayDevices(json.decode(response.data)) end end, error = function(response) self:log(" ERROR !!! " .. url, true) end, }) end, -- ============================================== -- Envoi un message -- Paramètres : -- message : le message à envoyer -- id : l'identifiant du device OU nil -- ============================================== sendPush = function(self, message, id) local http = net.HTTPClient() http:request("https://api.pushbullet.com/v2/pushes", { options = { method = 'POST', headers = { ["Access-Token"] = self.token, ["Content-Type"] = "application/json" }, data = json.encode({ ["body"]=message, ["title"]= self.titreDesMessage, ["type"]="note" }), device_iden = id, }, success = function(response) local data = json.decode(response.data) self:log("----------========== P u s h e s =========----------") self:log("Identifiant du message : " .. data.iden) end, error = function(response) self:log(" ERROR !!! " .. url, true) end, }) end, -- ============================================== -- Envoi d'un message push -- Paramètres : -- message : le message à envoyer -- device : le nom du device concerné ou nil -- ============================================== send = function(self, message, device) if (device) then self:getDevices(function(data) local found for k,v in ipairs(data.devices) do if (v.model == device or v.iden == device) then found = true self:sendPush(message, v.iden) end end if (not found) then self:log(device .. " non trouvé", true) end end) else self:sendPush(message, nil) end end } Quand je lance directement la scène, elle va m'afficher la liste des appareils connectés. Par contre quand je met à jour la variable globale "Pushbullet", elle va m'envoyé un push contenant le message de la variable globale directement sur mon téléphone "HTC One_M8 dual sim". Voici donc une manière simple de recevoir des pushs fonctionnel depuis sa HC2. Pushbullet permet aussi l'envoi de lien http, d'image, ... ce script est donc modifiable à votre convenance.
  4. Lors de mon footing, j'ai croisé Nico
  5. La seule chose de stable dans cette HC2 .. c'est bien la chaleur qu'elle dégage. Je pars donc serein
  6. Voici voilà -- Timer toutes les 5 mn GEA.add( true , 5*60, "", { {"Scenario", 6}, {"Scenario", 294}, {"Repeat"} })
  7. Steven

    Support Gea

    Etrange tout cela vu que le code de Fibaro est le suivant : fibaro.wakeUpDeadDevice = function(self, deviceID) __assert_type(deviceID, 'number') fibaro:call(1, 'wakeUpDeadDevice', deviceID) end Encore un cadeau de leur part ?
  8. @Lazer Tu as comparé les résultats de ta HC2 avec ceux du site Yr.no ? http://www.yr.no/place/France/%C3%8Ele-de-France/Paris/hour_by_hour.html Juste par curiosité.
  9. On va essayé un truc simple que tu vas tester (je suis au travail). à la ligne 101 : return a.sectionname..a.roomname < b.sectionname..b.roomname Essaie juste de la remplacer par return a.sectionname..a.roomname..a.name < b.sectionname..b.roomname..b.name Tiens moi au courant, si ça marche pas, je creuserais ce soir.
  10. @Sakkhho, J'ai fait une 2ème version plus proche de celle de Krikroff mais toujours via les API Google .. cela afin de voir le résumé du trajet selon ta demande Ci-joint le nouveau module virtuel ainsi que la nouvelle scène qui se configure ainsi : local trajets = { { depart = "37+rue+du+bois+Annecy+France", arrivee = "7+rue+des+Fontaines+Geneva+Switzerland", options = "&avoid=highways", module_virtuel = 475 } } La clé n'est plus la même car avant on utilisait l'API "Distance" et maintenant il nous faut celui-ci : https://developers.google.com/maps/documentation/directions/ Cette scène ne se lance pas automatiquement, j'utilise GEA pour la lancer toutes les 5mn .. à toi de voir comment tu veux faire. @jojo Voir le lien ci-dessus : https://developers.google.com/maps/documentation/directions/ TrajetV2.vfib TrajetV2.lua
  11. Tu as le plugin Netatmo ? Car perso, je l'ai et j'ai encore aléatoirement des 503. J'ai trouvé une deuxième utilité à cette magnifique HC2. J'ai récupéré 2 chatons sauvages de 1 semaine entrain d'agoniser au bord de la route (merci l'être humain, le 3ème était déjà mort). Après les 1ers soins, je leur ai confectionné un abri en carton mais il me manquait la possibilité de réchauffer suffisamment leur nouvel abri pour diminuer les risques d'hypothermie. Free Server + HC2 = Couple gagnant ... J'ai déposé le carton (stabilisé) sur les 2 et la température est idéal ... Merci Free et Fibaro. Reste plus qu'à essayer /services/saveWithoutAnyHope.php
  12. Oups, non pas vu, désolé. Peux tu m'envoyer ton scripts car j'ai peur que le mien ne soit plus àjour (backup, restore, backup, restore, ...).
  13. Steven

    Support Gea

    Avec Fibaro, la première chose à faire est de se débarrasser de leur système notification qui est malheureusement tellement aléatoire.
  14. Voilà mon ami, c'est pas magnifique mais cela fonctionne : Bouton 1 : -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) local result = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == "" fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return result end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "Label1" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if (not confirm(message, label_id, duree)) then fibaro:log("Annulé") -- ton code d'annulation si besoin end Bouton 2 : -- ---------------------------- -- 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 return false end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "Label1" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- ton code ici en cas de confirmation end
  15. Il le peux, il suffit d'ajouter "&avoid=highways" àla fin de l'url getResponseData("https://maps.googleapis.com/maps/api/distancematrix/json", "origins="..origine.."&destinations="..destination.."&language=fr-FR&key="..key .. "&avoid=highways"
  16. Encore une pub pour l'année prochaine ? Nannn je plaisante .. je suis preneur, même de la beta. On est habitué sur ce forum :-)
  17. A part une solution à 2 boutons .. .ce qui serait pas pratique, je vois pas. Sinon il y a le VD de Krikroff avec le code pin mais on est plus vraiment dans le même usage.
  18. Dans mon cas, c'est pas la consommation qui m'intéresse mais combien il y a de kilo de pellets dans le silo :-) ... Mais la consommation Kg/heure permet aussi de le déterminer. Perso, j'ai fini les modifications et cela marche parfaitement mais comme dis jojo ... des promesses, toujours des promesses :-) Fibaro annonce des produits entre 1 à 2 ans en avance ... Lazer c'est ???
  19. Je confirme. Cela ne fonctionne plus. On dirait qu'il n'y a plus qu'une seule instance du "click" qui tourne à la fois. Tant que le 1er click n'a pas fini d'exécuter sont code les autres click ne sont pas déclenche rien. Vu que le 1er click fait un sleep ... c'est mort.
  20. Steven

    Support Gea

    {“Functionâ€, function() return true or false, value end} Le premier getValue() > 60 retourne vrai ou faux Le deuxième retourne la valeur du getValue() cela permet de la récupéré dans les message quand du fait un #value# Exemple GEA.add({“Functionâ€, function() return fibaro:getValue(3, "Humidity") < 282, fibaro:getValue(3, "Humidity") end}, 30, "L'humidité est de #value#") Edit ... surprenant ton < 282 ... l'humidité est exprimée en % elle sera donc toujours inférieur à 282 ... je sais, je sais, cela n'est qu'un exemple.
  21. Vu que tu mets les coordonnées lat/long, tu peux même aller au pôle nord.
  22. Steven

    Support Gea

    Si l'humidité est > 60% {“Functionâ€, function() return fibaro:getValue(3, "Humidity") > 60, fibaro:getValue(3, "Humidity") end}
  23. Perso, pour la voiture, je préfère Waze ... bien que Waze appartienne à Google et que les données sont croisées. On devrait avoir des résultats similaires Mais Waze est plus réactif. J'ai d'ailleurs supprimé mon VD en faveur de celui de Krikroff.
  24. Je connaissais pas, j'aurais économisé pas mal de temps
×
×
  • Créer...