Lazer Posté(e) le 9 février 2022 Auteur Signaler Posté(e) le 9 février 2022 (modifié) Mise en ligne de la version 5.10 : Correction du problème de login avec DSM v7 Correction du bug de création des modules enfants depuis le firmware HC3 v5.100 Meilleure gestion des modules déconnectés (dead) et support de la fonction wakeUpDeadDevice Gestion de plusieurs langues (français/anglais) Ajout d'emojis sur le visuel du QuickApp parent Améliorations diverses Pour la mise à jour, copier/coller le contenu de chaque fichier LUA dans le QuickApp (et créer le fichier DSM s'il n'existe pas encore) : Fichier main : Surveillance Station v5.10 - Main.lua Fichier DSM : Library - DSM v1.10.lua Fichier tools : Library - tools v2.20.lua Modifié le 9 février 2022 par Lazer 2
Dragoniacs Posté(e) le 9 février 2022 Signaler Posté(e) le 9 février 2022 Je teste ça demainEnvoyé de mon M2012K11AG en utilisant Tapatalk
Lazer Posté(e) le 9 février 2022 Auteur Signaler Posté(e) le 9 février 2022 Tu me diras, car pour DSM v7, c'est très théorique, vu que je suis encore en v6. Mais j'ai fait la modif comme indiqué par plusieurs personnes, donc ça devrait le faire.
fredokl Posté(e) le 13 février 2022 Signaler Posté(e) le 13 février 2022 QA installé et pas de bug à première vu. Je suis sur DSM7. Tout fonctionne parfaitement. 1
Lazer Posté(e) le 13 février 2022 Auteur Signaler Posté(e) le 13 février 2022 Top, merci pour votre retour les gars
Dragoniacs Posté(e) le 14 février 2022 Signaler Posté(e) le 14 février 2022 Je confirme, ça tourne sur DSM7 Merci 1
Sakkhho Posté(e) le 3 septembre 2022 Signaler Posté(e) le 3 septembre 2022 @Lazer, j'essai de comprendre la logique des QA et de la HC3 ... dans les modules enfants crées, est ce que je peux rajouter des boutons pour faire les fibaro.call(ID, "PTZ", 1) de ma cam PTZ ou faire l'activation / desactivation ou je dois créer cela ailleurs ?
Lazer Posté(e) le 3 septembre 2022 Auteur Signaler Posté(e) le 3 septembre 2022 Non on ne peut pas ajouter des boutons sur les modules enfants (c'est possible via un hack, mais pas simple et pas franchement recommandé car rien ne dit que le hack fonctionnera éternellement lors des mises à jours ultérieures de firmware de la box) Les modules enfants sont de type binary switch, ce qui te permet par simple clic de forcer le démarrage/arrêt de l'enregistrement de chaque caméra directement depuis l'interface Web ou l'application mobile. En complément, par la programmation LUA, GEA, ou via l'API HTTP, tu peux directement exécuter les différentes fonctions comme décrit à la fin du tuto (enable, disable, PTZ, etc...) Donc en LUA, c'est avec fibaro.call(), et tu utilises l'ID de chaque module enfant. Ou bien l'équivalent avec une action GEA {"QuickApp", ID, "PTZ", 1) par exemple
Sakkhho Posté(e) le 3 septembre 2022 Signaler Posté(e) le 3 septembre 2022 Ok noté merci. Avec du gea oui je le ferai sur des déclenchements particulier mais j avais l habitude d avoir aussi la possible de faire le ptz via des boutons pour checker des situations à la main. Je vais donc créer une autre QA pour cela.
Lazer Posté(e) le 3 septembre 2022 Auteur Signaler Posté(e) le 3 septembre 2022 (modifié) OK en effet si tu veux le faire manuellement, le mieux est de créer un QA dédié, de type tableau de bord qui te permet d'agir sur toutes tes caméras. J'ai un truc similaire d'ailleurs depuis des années sur HC2, que j'ai reproduit sur HC3. ça allume les lumières, fait des screenshots, du PTZ sur la caméra intérieur, d'autres screenshots, puis éteint les lumières. Pratique pour avoir un état des lieux complet de la maison pendant les vacances. Modifié le 3 septembre 2022 par Lazer
Sakkhho Posté(e) le 24 septembre 2022 Signaler Posté(e) le 24 septembre 2022 interesant, tu peux partager la structure ? ca me permettra d'appâter à mon besoin car je rame vraiment ... faut que je commencer par du copie/paste avant de partir d'une feuille blanche
Lazer Posté(e) le 24 septembre 2022 Auteur Signaler Posté(e) le 24 septembre 2022 Voici le code de la fonction qui est appelée par un bouton du QuickApp : -- -- Bouton Scène snapshots -- function QuickApp:sceneSnapshots(event) if not fibaro.getValue(id["WP_WEBCAM"], "value") then -- Allume Webcam self:turnOn() end -- Attente caméra opérationnelle waitCamera(self, os.time(), 300, 5000, { success = function() local function doAction(actions, index) local index = index or 1 if self.isdebug then tools:print("gray", "action", index, "...") end local action = actions[index] if action then if action.position then if self.isdebug then tools:print("silver", "Set position", action.position, "...") end self:setPosition(action.position, function(success) fibaro.call(id["WEBCAM"], "sendPhotoToUser", self.userid) fibaro.setTimeout(action.postSleep or 0, function() doAction(actions, index + 1) end) end, action.preSleep ) elseif action.func then if self.isdebug then tools:print("silver", "Execute function...") end action.func() doAction(actions, index + 1) elseif self.isdebug then tools:print("silver", "Unknown action...") end elseif self.isdebug then self:warning("End of action sequence") end end local actions = { {func = function() -- Allume les lumières fibaro.call(id["LUMIERE_SALON"] , "setValue", 99) fibaro.call(id["LUMIERE_SAM"] , "setValue", 50) fibaro.call(id["LUMIERE_CUISINE"], "setValue", 99) fibaro.call(id["LUMIERE_HALL"] , "setValue", 99) fibaro.call(id["LUMIERE_ENTREE"] , "setValue", 99) end}, {position = "Salon" , preSleep = 15*1000, postSleep = 1*1000}, {position = "Salle-a-manger", preSleep = 9*1000, postSleep = 1*1000}, {position = "Entree" , preSleep = 14*1000, postSleep = 1*1000}, {func = function() -- Éteint les lumières fibaro.call(id["LUMIERE_SALON"], "turnOff") fibaro.call(id["LUMIERE_SAM"], "turnOff") fibaro.call(id["LUMIERE_CUISINE"], "turnOff") fibaro.call(id["LUMIERE_HALL"], "turnOff") fibaro.call(id["LUMIERE_ENTREE"], "turnOff") end}, } doAction(actions) end, error = function() tools:error("Webcam : KO") Notifications:send("Snapshots Webcam échoué", "Webcam non disponible", {"push", "email", "sms"}) end, }) end Comme dans GEA, le code fait appel à une table id qui contient les ID de tous les modules utilisés. Tu peux ignorer (supprimer) tout le bloc relatif à l'appel de la fonction waitCamera() qui vérifie et attend que la caméra soit allumée (une Foscam motorisée qui est dans mon salon, donc éteinte par défaut quand on est présent) La fonction locale doAction() permet de séquencer les actions. 1
Sakkhho Posté(e) le 25 septembre 2022 Signaler Posté(e) le 25 septembre 2022 @Lazer, est ce qu'il y a moyen de connaitre dans quelle position "PTZ" est la camera ? sur HC2, je mettais un label à jour au click mais si la cam avait été déplacé via une autre app bien sur la HC2 ne le voyait, je me demandais donc si SS peut me remonter la position "en cours" ?
Lazer Posté(e) le 25 septembre 2022 Auteur Signaler Posté(e) le 25 septembre 2022 Avec ma Foscam non, elle ne donne pas l'information de sa position. Avec les autres caméras, je ne sais pas... Sinon il faut contourner le problème, en mémorisant la dernière position demandée. Mais ça ne fonctionnera pas si en parallèle, un autre donneur d'ordre intervient (utilisateur en direct sur la caméra, via Surveillance Station, etc)
Sakkhho Posté(e) le 25 septembre 2022 Signaler Posté(e) le 25 septembre 2022 (modifié) yes bon je vais faire simple en effet pour le moment une question, ce message veut me dire qq chose n'est pas genial ou RAS ? [25.09.2022] [12:02:58] [TRACE] [QUICKAPP40]: UIEvent: {"elementName":"button3_4","deviceId":40,"values":[],"eventType":"onReleased"} Modifié le 25 septembre 2022 par Sakkhho
Lazer Posté(e) le 25 septembre 2022 Auteur Signaler Posté(e) le 25 septembre 2022 C'est le message normal quand l'utilisateur clique sur un bouton du QA. 1
flamalex Posté(e) le 6 mai 2023 Signaler Posté(e) le 6 mai 2023 @Lazer j’ai vu la fin de ton tuto sur les actions si tu souhaites stopper l’enregistrement d’une cam après 60 sec tu utilises turnOff ou disable, dans Gea? GEA.add({"turnOn", "cam1"},60,"", {"turnOff", "cam1"}) La réaction est aléatoire, des fois ça stop bien l’enregistrement après 1min et des fois ça ne l’arrête jamais.
Lazer Posté(e) le 7 mai 2023 Auteur Signaler Posté(e) le 7 mai 2023 ta ligne GEA est bizarre... déjà mettre un "turnOn" dans les conditions, ce n'est pas très "humainement" lisible, car pas logique du coup. C'est une action normalement... Tu veux faire quoi en fait ? En ce qui concerne l'enregistrement forcé, il faut bien comprendre la logique de fonctionnement de Surveillance Station. Quand j'écris ceci : fibaro.call(ID, "turnOff") => Stoppe l'enregistrement forcé d'une caméra ça veut dire ce que ça veut dire, c'est à dire que ça stoppe l'enregistrement forcé. Je le met en gras pour appuyer l'importance du mot. Donc ça ne veut pas dire que ça stoppe inconditionnellement l'enregistrement de la caméra, car SS peut très bien décider de continuer l'enregistrement si par exemple l'algorithme a détecté un mouvement et qu'il est configuré pour enregistrer en cas de détection de mouvement. Donc tout dépend du paramétrage effectué dans SS.
flamalex Posté(e) le 7 mai 2023 Signaler Posté(e) le 7 mai 2023 (modifié) @Lazer j’ai respecté ton tuto (extrêmement clair) « Il est conseillé de paramétrer la caméra en détection de mouvement permanente« je comprends bien la notion de « forcer » est ce le tampon avant/après ? mais la conséquence, de tps en tps ça continue à REC (de tps en tps) pour la syntaxe, pareil je n’y arrive pas, alors que sur hc2, c’était value….. « 1 » (ou true) alors turnOn si value…… « 0 » (ou false) alors turnOff concernant ce que je veux faire sur Gea, j’ai un Pir (sur Ipx800 en In1) si pir=1 et cam turnOff alors turnOn cam1 si la cam1 record et Pir=0 depuis 1 min alors stop rec cam1 pour cette dernière ligne j’ai essayé une autre variante, même résultat, si Pir=0 et la cam1 record depuis 1 min alors stop rec cam1 Modifié le 7 mai 2023 par flamalex
Lazer Posté(e) le 7 mai 2023 Auteur Signaler Posté(e) le 7 mai 2023 Tu n'es pas obligé de suivre mon tuto à la lettre, disons que j'ai partagé tel que je l'utilise chez moi, ça me convient en tout cas. En pratique, comme dit, même si la HC3 demande l'arrêt de l'enregistrement forcé, SS peut très bien décider de continuer à enregistrer malgré tout, selon sa propre logique interne (dépendante de la façon dont on l'a configuré et des événements qui se produisent devant la caméra)... sachant en plus que la détection de mouvement peut être effectué par la caméra elle-même (si supporté) ou bien par SS lui même par analyse d'image. En plus j'ai une veille version de SS, je ne serai pas surpris qu'il y ai de nombreuses nouveautés dans les versions plus récentes. En ce qui concerne la syntaxe de GEA, normalement ça se passe sur le topic dédié. Heureusement, les value "0" et "1" n'existent plus sur HC3, c'était un truc tout pourri codé à l'arrache par Fibaro sur la HC2. Maintenant les devices prennent des valeurs qui respectent les standard du JSON, donc true ou false (booléen) dans le cas d'un détecteur binaire (ce que sont les modules enfants créés par ce QA, chaque module enfant représente l'état d'enregistrement d'une caméra) C'est donc "Value", "true" ou "false" que dois utiliser dans les conditions de GEA. Ce sujet a été maintes fois abordé tant il a perturbé les utilisateurs venant de la HC2 et ayant pris les mauvaises habitudes (encore une fois, à cause de Fibaro...)
flamalex Posté(e) le 7 mai 2023 Signaler Posté(e) le 7 mai 2023 (modifié) c’est tjrs aléatoire, ce qui est consternant c’est que 2 cam sur un même Pir, le turnOff, des 2 cam sur la mm ligne GEA, en stop une mais pas l’autre j’ai check SS, tt est ok Bon, à voir EDIT j'ai testé 3 ecritures, ça fonctionne bien pour les 3, mais de tps en tps il y a un loupé, si je reboot le GEA, alors la il detecte bien que que les conditions sont bien réunies et stop la camera le probleme est que si il y a un loupé à la premiere echeance, alors le REC cam ne s'arrete pas et rec non stop -- ici je stop camera si celle ci REC, si le PIR est OFF et les 2 conditions mode auto et sirene de l'alarme à l'arret GEA.add({{"turnOn",id["CAM_TERRASSE_PISCINE"]},{"turnOff",id["IN4_PIR_PISCINE"]},{"Global","MODE_CAMERA","AUTO"},{"turnOff",id["ETAT_SIRENE"]}},60, "",{{"turnOff",id["CAM_TERRASSE_PISCINE"]}}) GEA.add({{"Value",id["CAM_TERRASSE_PISCINE"],true},{"Value",id["IN4_PIR_PISCINE"],false},{"Global","MODE_CAMERA","AUTO"},{"Value",id["ETAT_SIRENE"],false}},30*2, "",{{"turnOff",id["CAM_TERRASSE_PISCINE"]}}) GEA.add({{"Value",id["IN4_PIR_PISCINE"],false},{"Value",id["CAM_TERRASSE_PISCINE"],true},{"Global","MODE_CAMERA","AUTO"},{"Value",id["ETAT_SIRENE"],false}},30*2, "",{{"turnOff",id["CAM_TERRASSE_PISCINE"]}}) EDIT 2: comment palier à cela afin d'eviter que ça tourne pour rien? Modifié le 9 mai 2023 par flamalex
Dragoniacs Posté(e) le 10 octobre 2023 Signaler Posté(e) le 10 octobre 2023 Bonjour ! J'ai un petit soucis avec ce QA, qui se bloque régulièrement à cause, je pense, de l'identification du SYNO. J'ai régulièrement ce message : [10.10.2023] [09:31:00] [ERROR] [QA_SURVSTATION_23]: Can't get cameras list : Privilèges utilisateur insuffisant Ce qui est embêtant, c'est que le QA tourne en rond sur ce message, et que je dois redémarer la box (ou le QA) quand je m'en rend compte. Y a moyen d'automatiser un redémarage du QA pour cette erreur ?
Lazer Posté(e) le 10 octobre 2023 Auteur Signaler Posté(e) le 10 octobre 2023 étonnant, je n'ai pas ce souci... ce ne serait pas plutôt lié à un paramètre de configuration particulier dans ton Syno ? Au niveau du contrôle d'accès utilisateur ou un truc dans le genre. Sinon pour redémarrer un QA automatiquement, il faudrait que je ressorte mon Watchdog du fond de tiroir dans lequel il est rangé...
RS600807 Posté(e) le 22 novembre 2023 Signaler Posté(e) le 22 novembre 2023 Bonsoir @Dragoniacs et @Lazer, Je rencontre le même souci depuis peu '(alors que le QA fonctionnait correctement jusque-là. J'ai vu que le centre de paquets DSM avait fait une mise à jour il y a peu (mais je ne peux pas confirmer la date exacte vu que je ne me sers que peu de ce QA). Je n'ai pas modifié les droits de l'utilisateur qui est rentré dans les variables du QA. Le message d'erreur affiché est : "Can't list cameras : Permission refusée". E le message de debug est : " Request new Synology SID". Si ca peut mettre sur la voie... A+
Messages recommandés