Aller au contenu

Travail En Groupe - Créer Un Script Pour Notifications Niveau Debutant


mprinfo

Messages recommandés

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
Lien vers le commentaire
Partager sur d’autres sites

@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

Lien vers le commentaire
Partager sur d’autres sites

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…. :( !!!

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

@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.

Lien vers le commentaire
Partager sur d’autres sites

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é

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

@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" :D

Lien vers le commentaire
Partager sur d’autres sites

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 :60: ).

 

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.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

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 :P ).

Lien vers le commentaire
Partager sur d’autres sites

@ 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. ;)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...