TitiXsi Posté(e) le 11 mai 2023 Signaler Posté(e) le 11 mai 2023 (modifié) Bonjour à tous, je cherche à rendre générique certains codage de scène en LUA et je souhaiterai pouvoir définir en variables globale la liste des Portables à notifier par un Push. Ensuite je voudrais récupérer cette liste et l’attribuer dans les Push : hub.alert('simplePush', portables, '['..currentTime..']'..'TEST Portables ✅', false, '') J'ai essayé divers codage et je dois le rendre à l'évidence, je ne maitrise pas les Tables ou array en lua :-) Impossible pour moi de déclarer une table dans les variables globales et impossible de manipuler ce-dis codage dans mon code lua... Si vous avez déjà un truc qui traine, je suis preneur. Merci Rémi Modifié le 11 mai 2023 par TitiXsi
jojo Posté(e) le 12 mai 2023 Signaler Posté(e) le 12 mai 2023 je n'ai AUCUNE expérience en la matière, donc si je raconte des bêtises, soit indulgent ... Je CROIS que la table des variable globales s'appelle _G (c'est ce que je crois me souvenir avoir lu un jour de @Lazer) Tu pourrais alors faire un petit code LUA qui écrit le tableau souhaité dans la VG. Ensuite, YAK ...
TitiXsi Posté(e) le 12 mai 2023 Auteur Signaler Posté(e) le 12 mai 2023 Merci @jojo, pour ta contribution C'est pas trop le souci d'aller écrire dans la VG car c'est une liste figée, donc on peut écrire à la main. Il faut par contre savoir quoi/comment écrire pour ensuite récupérer l'info dans chaque script. En fait, on peut peut-être faire plus simple dans ce cas de liste de portables... Si il est possible de récupérer la liste des tous les devices déclarés comme portables directement via une fonction fibaro, le tour est joué, je pose cet appel en haut de chacun de mes scripts et roule
Lazer Posté(e) le 12 mai 2023 Signaler Posté(e) le 12 mai 2023 Il y a 1 heure, jojo a dit : Je CROIS que la table des variable globales s'appelle _G (c'est ce que je crois me souvenir avoir lu un jour de @Lazer) Attention à la confusion des termes, _G c'est la super variable globale de type table, mais qui n'indexe que les variables globales en LUA ! Dans ce cas, "globale" s'entend sur la portée (scope) du code LUA en cours d'exécution. La demande de @TitiXsi concerne les variables globales de la HC3 qui sont accessibles avec les fonction getGlobalVariable et setGlobalVariable, et stockées de façon persistantes dans la DB. Une astuce qu'on utilise depuis la HC2, c'est de stocker un JSON dans la variable globale, donc tu peux utiliser json.encode et json.decode avant/après l'écriture et la lecture de la VG. Il y a quelques exemples sur le forum. Ou alors, tu stockes simplement tes ID de portage dans une VG, séparés par des virgules, puis tu utilises une fonction split() pour décomposer la string en une table.... seul souci, la fonction split n'existe pas en LUA, mais tu trouveras des exemples sur le forum, sur Internet, ou bien dans ma librairie tools qui est intégrée à quasiment tous mes Quickapps.
jojo Posté(e) le 12 mai 2023 Signaler Posté(e) le 12 mai 2023 dans les Paramètres->Accès, on voit la liste des mobiles par utilisateur et via l'api, il te retourne un json avec les devices IOS http://192.168.xxx.xxx/api/iosDevices [ { "id": 25, "name": "iPad", "udid": "970C8A8B-2D80-40E8-A0CB-6E2E312320F4", "push": true }, { "id": 52, "name": "OnePlus 9 Pro", "udid": "0cd713841dde957b", "push": true }, { "id": 769, "name": "rk3288", "udid": "dd5e55cf8bb6e06a", "push": true } ] http://192.168.1.141/api/iosDevices
TitiXsi Posté(e) le 12 mai 2023 Auteur Signaler Posté(e) le 12 mai 2023 Merci @Lazer, j'ai effectivement essayer de stocker une liste séparée par des virgules mais je suis trop mauvais car impossible de reconstruire une table tel quelle dois être ... Je souhaiterai stocker dans les VG List_Portables = 20,115 et créer la table dans ma variable local comme ceci (Ca c'est la bonne syntaxe pour créer une table et l'utiliser dans le Push) local portables = {[1] = 20, [2] = 115, } -- Titi + Tablette
TitiXsi Posté(e) le 12 mai 2023 Auteur Signaler Posté(e) le 12 mai 2023 il y a 1 minute, jojo a dit : dans les Paramètres->Accès, on voit la liste des mobiles par utilisateur et via l'api, il te retourne un json avec les devices IOS http://192.168.xxx.xxx/api/iosDevices [ { "id": 25, "name": "iPad", "udid": "970C8A8B-2D80-40E8-A0CB-6E2E312320F4", "push": true }, { "id": 52, "name": "OnePlus 9 Pro", "udid": "0cd713841dde957b", "push": true }, { "id": 769, "name": "rk3288", "udid": "dd5e55cf8bb6e06a", "push": true } ] http://192.168.1.141/api/iosDevices Effectivement, c'est surement parsable, mais pour le moment au dessus de mes récentes compétences :-)
jojo Posté(e) le 12 mai 2023 Signaler Posté(e) le 12 mai 2023 il y a 13 minutes, Lazer a dit : Attention à la confusion des termes, _G c'est la super variable globale de type table, mais qui n'indexe que les variables globales en LUA ! là, tu viens d'atteindre mes limites intellectuelles : _G ne contient donc pas les VG globales définies dans Paramètres->Global->Variables ?
Lazer Posté(e) le 12 mai 2023 Signaler Posté(e) le 12 mai 2023 Non, seulement les variables globales en sein du code LUA. Par opposition aux variables de type "local" et définies comme telles dans le code LUA, et dont la portée est la fonction ou la boucle en cours d'exécution. Revoir ce bon vieux tuto : Et pour voir un exemple pratique d'utilisation de _G :
jojo Posté(e) le 12 mai 2023 Signaler Posté(e) le 12 mai 2023 il y a 24 minutes, Lazer a dit : Non, seulement les variables globales en sein du code LUA. ah, ok les variables globale d'un LUA (je comprends vite si on m'explique longuement ...), mais dont la portée est limitée au LUA, et donc rien à voir avec les variable Globales définies dans Paramètres->Général->Variables
jojo Posté(e) le 13 mai 2023 Signaler Posté(e) le 13 mai 2023 quand je relis mes notes, on n'envoye pas des notifs vers des potables, mais vers de utilisateurs à qui on a associé des portables. Donc, tu créerais un utilisateur (Notif) et y associerait les portables que tu veux, et il n'y a rien à programmer. fibaro.alert(alert_type, user_ids, notification_content) • alert_type – one of the notification types: “email”, “sms” or “push” • user_ids – list of user identifiers to send the notification to • notification_content – content of the notification to send 1
TitiXsi Posté(e) le 15 mai 2023 Auteur Signaler Posté(e) le 15 mai 2023 (modifié) Hello. Si c'est effectivement les users id qui sont envoyés via push, alors je peux figer cette liste dans mon script. Merci pour la précision Modifié le 15 mai 2023 par TitiXsi
jojo Posté(e) le 15 mai 2023 Signaler Posté(e) le 15 mai 2023 Avec grand plaisir ! Tiens nous informés du résultat de tes tests
Messages recommandés