mprinfo Posté(e) le 6 avril 2015 Auteur Signaler Posté(e) le 6 avril 2015 par contre pour le message il serait bien que l'on récupère le nom de la porte sur le module qui surveille la porte car si on a plusieurs porte le message n'est pas le même ?
pepite Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 pour le push sur plusieurs portables je ferais qqch comme ca et selon appel de la fonction envoiPush local portables = {99, 54, 75} -- id tels pour push -- declaration fonction envoi push function envoiPush(message) for i = 1, #portables do fibaro:call(portables[i], "sendPush", message) end fibaro:debug(message .. " envoyé") -- petit debug pour verifier le contenu du message envoyé end
mprinfo Posté(e) le 6 avril 2015 Auteur Signaler Posté(e) le 6 avril 2015 je viens de mettre un code fonctionnel mais je pense qu'il peut être améliorer et adapter a chacun il faut juste mettre les id de détecteur de porte dans l'entête
mprinfo Posté(e) le 6 avril 2015 Auteur Signaler Posté(e) le 6 avril 2015 @pépite tu peux expliquer le commande fonction ? Parce que je suis entrain d'essayer de l' apprendre pour les id des tel je suis plus pour une variables globale car on l'utilise dans plusieurs scripte et lorque que tu changes de tel tu n'as que la variable globale a modifier
pepite Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 avec une variable globale avec tes IDs de tel ca fonctionne sur tous les tels ?
Janus Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 L'ID des portables on la trouve où ? Dans contrôle d'accès, c'est le seul endroit me semble-t-il où je vois mon portable… et même pas son n°...
pepite Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 utilise le toolkit de krikroff : petite recherche sur le forum ;-)
Janus Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 Je dois même apprendre les recherches sur le forum…Tout à l'heure, je cherchais "notifications par SMS", et je n'ai RIEN trouvé.Deux minutes plus tard, tu m'as cité l'article de Krikroff où même le terme "SMS" et dans le titre…J'ai réessayé après de le trouver moi-même, puisque je savais qu'il existait et …. RIEN. C'est quoi que je merde ? Là , tu me parles de sa toolkit….. rien trouvé…. J'ai encore du chemin pour causer en LUA…. !!!
mprinfo Posté(e) le 6 avril 2015 Auteur Signaler Posté(e) le 6 avril 2015 il y a plus simple j'ai appris grâce a la section pour les nuls http://www.domotique-fibaro.fr/index.php/topic/79-connaitre-lidentifiant-id-dun-module/ @janus chaque modules que tu installes a au moins un ID = identification Devices. C'est la HC2 qui les attribuent chronologiquement si tu installes un FRGM il va lui être attribué 2 ID, si tu crées une scène elle va avoir un ID en fait il y a toujours pour un module (fibaro ou autres) un ID pour le module maitre et un ou plusieurs ID pour les fonctions du modules. sur une multiprises 6 prise tu auras 7 ID. lorsque tu te connecte pour la première fois a ta HC2 avec ton téléphone elle va lui attribuer une ID
mprinfo Posté(e) le 6 avril 2015 Auteur Signaler Posté(e) le 6 avril 2015 @pépite oui il y a plusieurs solution mais si on garde ton idées on peut faire cela avec un Json ou lire chaque variable globale et crée une table
Janus Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 @mprinfo.Merci, je n'avais jamais trouvé la "HC2 pour les nuls". à‡a me va très bien. Pour les ID aussi, merci. Je connaissais les ID de tous les modules mais je ne savais pas comment accéder à l'iP d'un portable. Tu es un grand pédagogue………………... Eh! on fait comment les recherches sur le forum…………… pour trouver. J'ai bien 30 ans de Macintosh, mais je n'ai pas du tout l'habitude des forums.
Bugsissimo Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 Dans le champ recherché en haut àdroite mais attention au lieu où tu recherche. A droite du champ il y a une option " forum, ce sujet, etc " mets bien forum Et au dernière nouvelles il n'étais pas possible de rechercher un terme inférieur à4 caractères. Je sais pas si cela a changé 1
mprinfo Posté(e) le 6 avril 2015 Auteur Signaler Posté(e) le 6 avril 2015 lol moi pas encore 30 ans de PC mais pas loin lol avec un cours passage par un Apple IIE je suis dans le même cas que toi mais ça viens doucement j'ai même parfois du mal a retrouver mes sujets lors d'une recherche il faut bien faire attention a la case avant la loupe car c'est un filtre si tu cherches pas sur tout le forum tu auras pas de réponse
Janus Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 @mprinfo : tip top j'ai suivi les indications de Krikroff. J'ai l'ID de mon portable. Je n'aurais JAMAIS trouvé tout seul... @bugsisimo. Je vais pratiquer. J'ai mis un signet sur "pour les nuls"
trainkill666 Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 Voici une solution que j'ai écrite et donnée précédemment dans différents sujets sur le forum (mprinfo reconnaîtra probablement ce morceau de code, merci neliger pour les 3 premières lignes ). Il recherche les modules par type en utilisant le json. Dans ce cas, ce programme récupère les IDs des mobiles (smartphone ou tablette). Une liste est crée sous forme de variable globale et peut donc être utilisé par toutes les autres scènes. Fonctionne en V4. --RECHERCHE PAR API --"Trainkill666" v1 ----------------------------------------------------------------------------- --à placer dans un bouton de module virtuel ----------------------------------------------------------------------------- --Déclaration pour l'api local HC2 = Net.FHttp("127.0.0.1", 11111) local reponse = HC2:GET("/api/devices") local listemodule = json.decode(reponse) --création de la table 1 listant tous les modules ---------------------------------------------------------------------------- --fonction recherche local recherche = function (texte, typemodule) local listeobtenue = {} --table 2 provisoire for index,valeur in ipairs(listemodule) do --lecteur de la table 1 if valeur.type == typemodule then --si le type lu dans la table 1 est identique au type recherché table.insert(listeobtenue, valeur.id) --ajout de l'ID du module dans la table 2 fibaro:debug(texte .. " " .. #listeobtenue .. " (ID = " .. valeur.id .. ") ".." = "..valeur.name) end end return listeobtenue --renvoi le résultat de la table 2 end ----------------------------------------------------------------------------- --démarrage local mobiles = recherche("Téléphone", "iOS_device") --lancement de la recherche de téléphone ou tablette (Attention respecter la CASSE) fibaro:setGlobal("mobiles",json.encode(mobiles)) --sauvegarde dans une variable globale sous forme de liste ----------------------------------------------------------------------------- --à ajouter au début la scène pour charger la liste des mobiles ----------------------------------------------------------------------------- --récupération des ID --fonction de décodage des variables globales local decodage = function (listeorigine) local liste = json.decode((fibaro:getGlobal(listeorigine))) --lecteur de la variable globale return liste --renvoi le résultat end --création de la liste des mobiles local listeIDmobiles = decodage("mobiles") Il peut également servir pour rechercher les capteurs, volets... J'ai laissé le code complet pour qu'il soit le plus générique possible, afin de faire par exemple plusieurs créations de listes, ainsi que la lecture de celles-ci. (d'où les fonctions qui peuvent paraître inutiles pour une seule liste). Si il y a un programme identique sur le forum, merci de m'en informer afin que je retire celui-ci, et que j'y place le lien de l'autre à la place. 1
trainkill666 Posté(e) le 6 avril 2015 Signaler Posté(e) le 6 avril 2015 Concernant l' "autostart" dans l'entête : Imaginons une coupure de courant, même courte, la box redémarre (tout le monde n'est pas sur onduleur). Durant ce laps de temps, il y a un changement d'état d'un ou des capteurs. Sans l' "autostart", le programme n'actualisera pas les messages tant que tous les capteurs ayant changés d'état ne seront pas de nouveaux actionnés. Autres solution, faire tourner en boucle le programme et ne pas utiliser les triggers while true do --programme fibaro:sleep(delai) end Personnellement, je préfère l' "autostart" qui doit moins consommer en ressource (mais làc'est àvérifier ).
mprinfo Posté(e) le 7 avril 2015 Auteur Signaler Posté(e) le 7 avril 2015 C'est tout a fais juste j'ai fais un teste et donner un exemple avec la variable jour nuit
cybersquat Posté(e) le 7 avril 2015 Signaler Posté(e) le 7 avril 2015 purée en une journée !! Je pensais bien à ca sur l'autostart, effectivement si il y a une panne de jus ou micro coupure, moi je voyais un peu comme un batch file pour relancer le processus
pepite Posté(e) le 7 avril 2015 Signaler Posté(e) le 7 avril 2015 je suis plutot "autostart" aussi.. Symp le json pour les modules dans une variable, mais la on est plus en niveau débutant ;-) 1
mprinfo Posté(e) le 7 avril 2015 Auteur Signaler Posté(e) le 7 avril 2015 Pour ceux qui connaissent le DOS AUTOSTART c'est comme si on met une commande dans AUTOEXEC.BAT la je suis sur tel ce soir je donnerai un exemple de scène pour que ce soit claire
trainkill666 Posté(e) le 7 avril 2015 Signaler Posté(e) le 7 avril 2015 @ pepite J'ai hésité avant de mettre ce code, mais, je l'ai détaillé et simplifié au maximum. -> Il comporte le lancement d'une function comportant au moins 1 variable. -> La déclaration de table avec {} , l'ajout dans une table table.insert. -> Le renvoi du résultat de la fonction directement avec return et local mobiles = recherche( -> L'écriture de texte et de variables dans une même ligne pour un fibaro:debug. -> un if. -> une boucle for peut-être moins évidente à comprendre pour les débutants : index représentant l'incrémentation dans la table, où 1 et le premier tour, jusqu'à n représentant le dernier (soit la taille de la table qui peut être trouver par #listeobtenue). Valeur correspondant au résultat de table[index] . -> lecture et écriture de variable globale avec fibaro:setGlobal( et fibaro:getGlobal( . Après il y a la partie json que j’ai découvert la semaine dernière, mais autant se lancer dès le départ avec, on fera de belles économies de lignes de codes. Pour le détail, je peux le faire, mais j’avoue ne pas encore maîtriser totalement cette partie. Cependant valeur.type fibaro:getType(deviceID) , valeur.id , valeur.name (fibaro:getName(deviceID)) , json.decode( , json.encode( c’est compréhensible. Voici un petit lien intéressant http://domotique-home.fr/docs-fibaro-francais-index-des-fonctions-thematique/. Je pense que dans tout ça, il y a les bases du Lua, sans être trop compliqué. Et on a obtenu les ID des portables pour la suite du programme.
mprinfo Posté(e) le 7 avril 2015 Auteur Signaler Posté(e) le 7 avril 2015 Pour les tel on va dans un premier temps faire simple Un tel avec son ID dans la scène
pepite Posté(e) le 7 avril 2015 Signaler Posté(e) le 7 avril 2015 oui je suis d'accord avec toi trainkill, c'est tres pratique, fonctionnel et complet, mais pour débuter c'est tout de même un niveau au dessus le temps de tout assimiler ;-) mais du beau boulot et tres bien documente, clair et précis ;-) MERCI beaucoup
mprinfo Posté(e) le 7 avril 2015 Auteur Signaler Posté(e) le 7 avril 2015 C'est la méthode la plus propre mais comme dit pépite c'est un peu compliquer mais cela montre comment on peut faire
mprinfo Posté(e) le 7 avril 2015 Auteur Signaler Posté(e) le 7 avril 2015 Pour vous faire comprendre la commande autostart je vais vous donné un scène très simple La HC2 vous enverra une notification a chaque démarre --[[ %% autostart --]] local IdTel = 181 local heure = os.date("%R"); local date = os.date("%d/%m/%Y"); local Message = "Votre Home center 2 à demarrée le " ..date .." à " ..heure fibaro:debug(Message) fibaro:call(IdTel, "sendPush", Message) Il suffit juste de mettre l'id du tél on s’aperçoit donc que la scéne ne sera exécuté qu'une seul fois au démarrage ou si on appui sur Démarrer pour connaitre les parametres de os.date() regarder ce tutos http://www.domotique-fibaro.fr/index.php/topic/4218-sunrisehour-sunsethour-osdate-et-variable-jour-nuit/#entry62524
Messages recommandés