-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
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
-
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))"
-
--------------------------------- 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.
-
Lors de mon footing, j'ai croisé Nico
-
La seule chose de stable dans cette HC2 .. c'est bien la chaleur qu'elle dégage. Je pars donc serein
-
Voici voilà -- Timer toutes les 5 mn GEA.add( true , 5*60, "", { {"Scenario", 6}, {"Scenario", 294}, {"Repeat"} })
-
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 ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@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é.
-
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.
-
@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
-
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
-
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, ...).
-
Avec Fibaro, la première chose à faire est de se débarrasser de leur système notification qui est malheureusement tellement aléatoire.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 80 réponses
-
- 3
-
- Module Virtuel
- Bouton
-
(et 1 en plus)
Étiqueté avec :
-
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"
-
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 :-)
- 1 285 réponses
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
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.
- 80 réponses
-
- Module Virtuel
- Bouton
-
(et 1 en plus)
Étiqueté avec :
-
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 ???
- 1 285 réponses
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
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.
- 80 réponses
-
- 1
-
- Module Virtuel
- Bouton
-
(et 1 en plus)
Étiqueté avec :
-
{“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.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Vu que tu mets les coordonnées lat/long, tu peux même aller au pôle nord.
-
Si l'humidité est > 60% {“Functionâ€, function() return fibaro:getValue(3, "Humidity") > 60, fibaro:getValue(3, "Humidity") end}
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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.
-
Je connaissais pas, j'aurais économisé pas mal de temps