Création de nouvelles fonctionnalités
-
Bonjour à vous @bugsounet et à tous. J’entame mon premier Fork sur github et j’ai choisis MMM-SELFIESHOT qui m’a l’air d’un module basic pour commencer.
J’ai beaucoup étudié vos conceptions de modules, et la liaison pont avec Gateway que vous en faite est juste extra.
Dans un premier j’ai remplacé l’icône déclencheur qui était en font awesome par une image de mon répertoire. Cela fonctionne parfaitement, maintenant j’ajoute une fonction qui actualise l’icône (futur possibilité de choisir une classe d’icône par type d’événement) et la problématique, j’ai bien un retour graphique d’un carré tactile qui déclenche le selfie, mais pas de retour de l’image.
J’ai aussi par ailleurs ajouter la class “flash” à l’icône, le but étant de se rapprocher de votre icon detector.(plusieurs CSS en fonction d’un statuts. Pouvez vous s’il vous plaît jetter un œil à ce bout de code si quelques chose vous chagrine.getDom: function() { if (this.config.displayButton) { var wrapper = document.createElement("div"); var getTimeStamp = new Date(); var icon = document.createElement("img"); icon.id= "SELFIE-ICON"; icon.style.backgroundImage = "url("+this.url+")" icon.classList.add("flash"); icon.src = "modules/MMM-Selfieshot/resources/" +this.url + "?seed=" + getTimeStamp; var session = {}; icon.addEventListener("click", () => this.shoot(this.config, session)) wrapper.appendChild(icon) //icon.addEventListener("click", () => this.disabled(payload) } return wrapper },
-
PS: Ceci à également été ajouté
start: function() { this.session = {}; this.selfieIcons = { '1': 'resources/master.png', '2': 'resources/birthday1.png', '3': ressources/birthday2.png', '4': 'resources/halloween1.png', '5': 'resources/halloween2.png', '6': 'resources/halloween3.png', '7': 'resources/halloween4.png', }; if (this.config.iconStyle!= '') { this.url = this.selfieIcons[this.config.iconStyle] }; }
-
'3': ressources/birthday2.png',
devrait etre'3': 'ressources/birthday2.png',
apres il faut voir le code entièrement, je ne peux pas dire comme cela
-
@bugsounet je comprend, oui je vois que des caracteres se sont perdu en route, dont une partie de code… et plus de retour tactile de l’elements icon sur la page.
pour simplifier, j’ai corrigé quelques lignes et j’ai creé une branch Dev dont vous aurez acces directement :
link text
en vous souhaitant tres bon week-end, toute mon admiration. -
je vais jetter un coup d’oeil.
Je pensais recoder/simplifier/corriger un partie afin de faire d’intégrer sur GW
(encore un EXT- …)
/!\- ton repertoire
resources
n’est pas créé par defaut - tes fichiers par defaut n’existent pas
–> cela va generer une erreur (a toi de check si ils existent ou pas).
Il faut penser a toute eventualités, surtout dans le fichiers qui genere l’affichage car un crash de ce fichier … fait crash TOUS les modules et MM
(le node_helper ne va pas faire crash MM lui !)
Apres … si le coeur d’en dit on peux faire cette EXT a deux (si tu veux apprendre !)
- ton repertoire
-
Aille exacte car j’ai changer d’emplacement local du dépôt avant de commit.
Mais j’accepte très volontiers votre proposition. -
en fait, je pensais faire un module qui utilise la webcam.
Il pourrait permettre:- faire des selfies
- l’utilisation comme detecteur de mouvement
donc utilisation de Gateway / EXT-Screen / MMM-GoogleAssistant
-
Une telle intégration serait fantastique, je vois sur vos codes que même les class d’affichage de l’icône dépendent de l’état du status de l’assistant. Je pensais donc quelque chose de similaire intégré, class icon flash, et hidden au lancement de la photo.
Aussi je pensais utiliser EXT-SCREEN - EXT-PIR EXT PAGES, afin d’avoir un screensaver de diapo cool, quand EXT_SCREEN-WAKEUP est détecté, changement de page et affichage de l’icône Selfie. Mais je ne sais pas comment une webcam pourrait détecte une présence, j’utilise pour l’instant une PiCam basique.
Et pour finir, je comptais modifier certaines parties de code afin que la selfie.result affiche le résultat sans lancer node mailer directement, mais plutôt un popup de 2 icône, l’un pour recommencer la fonction selfie shoot, l’autre pour continuer et donc envoi Telegrambot, node mailer… -
oui on peut toucher a tous les plugins … mais generalement GW s’occupe de tout et c’est son but !
Apres, oui effectivement, je ne suis pas une bible de codage mais c’est vrai que j’utilise pas mal de fois des partie de codes qui vont bien !
En ce qui concerneune webcam pourrait détecte une présence
t’inquiete -
@bugsounet oui Gateway fait vraiment un pont génial entre vos modules.
-
@bugsounet said in Création de nouvelles fonctionnalités:
En ce qui concerne une webcam pourrait détecte une présence t’inquiete
J’ai fini de le coder a 99% !
[MOTION] EXT-Motion Version: 1.0.0 rev: 221030 [MOTION] Initialized! [MOTION] Started! [30.10.2022 15:50.51.007] [LOG] [MOTION] Detected Motion, score: 171 [30.10.2022 15:51.12.924] [LOG] [MOTION] Detected Motion, score: 152 [30.10.2022 15:51.13.973] [LOG] [MOTION] Detected Motion, score: 119 [30.10.2022 15:51.17.915] [LOG] [MOTION] Detected Motion, score: 237 [30.10.2022 15:51.18.934] [LOG] [MOTION] Detected Motion, score: 215 [30.10.2022 15:51.19.974] [LOG] [MOTION] Detected Motion, score: 604
bien sur, il utilise EXT-Screen afin d’envoyer les infos en cas de detection
maintenant … il va faloir mettre les regles sur GWpourquoi ?
car il va falloir dire a GW d’éteindre le plugin motion afin d’utiliser le plugin selfies (on ne peux pas utiliser 2X la camera en meme temps) -
Ah oui d’accord, c’était rapide, mais quels seraient les fonctions de ce module ? Un EXT-PIR 2.0? Il serait complémentaire de selfieshotshot? Il aurait les même capacité ?
-
EXT-Motion est
- un plugin
- +/- comme EXT-Pir mais avec une webcam
- fonctionne en complement de
EXT-Screen
- independant de selfies
-
EXT-Selfies est pratiquement pret aussi !
Simplifications de config et corrections de bugs ont été appliqué !
Il va, bien sur,permettre de prendre des selfies avec la webcamGateway est pret egalement avec ajout de nouvelles regles:
- Lors d’une prise de selfies et si Motion est utilisé : eteindre motion en premier
- Lorsque le selfie est terminé: redémarrer motion si besoin
Je vais créé un plugin qui va permettre de visualiser/traiter les selfies prises
faire un slideshow en plein ecran ou en fenetre selon la position defini en config (+/- comme EXT-GooglePhotos)
envoyer les selfies prise directement sur google photos -
@bugsounet
Je vais créé un plugin qui va permettre de visualiser/traiter les selfies prisesest ce que traiter = choisir enregistrer ou reprendre le selfie? -
je ne sais pas encore comment je vais organiser cela
- enregistrement sur le cloud (via google photo) en manuel ? en automatique ? [via un nouveau plugin]
- je pensais modifier le popup de l’affichage du selfie afin d’ajouter [valider/refuser/réessayer]
-
Quelle ingéniosité. Je suis justement en train de créer cette fonction dans MMM-Selfieshot, “aftershowLastPhoto” qui renverrai un popup valider ou refuser :
-
Valider => sendmail (qui est une commande existante)
-
Refuser => relance la commande shoot.
Je rame un peu, Aussi je m’interroge à voir comment garder la session en cours active jusque là car la commande shoot renvoie delete this session
-
-
@bugsounet je pensais quelques choses comme ça :
makeChoice function () { if (this.config.debug) console.log ("Waitting choice"); if (option.hasOwnProperty("withChoice")) { var wrapper = document.createElement("div"); var shootIcon = document.createElement("div"); shootIcon.id = "SHOOT-ICON"; shootIcon.classList.add("shown"); shootIcon.style.backgroundImage = "url("+this.logoRetry+")"; shootIcon.addEventListener("click", () => this.session[result.session.key] = null; delete this.session[result.session.key]; this.shoot(this.config, session)); var printIcon = document.createElement("div"); printIcon.id = "PRINT-ICON"; printIcon.style.backgroundImage = "url("+this.logoPrint+")"; printIcon.addEventListener("click", () => this.sendMail(data)); } wrapper.appendChild(shootIcon); wrapper.appendChild(printIcon); } return wrapper }
-
Valider => sendmail (qui est une commande existante)
j’ai supprimer sendmail, car j’ai prevu de faire autrement
@venditti69500 : je t’ai envoyer une invite collaborateur hier pour EXT-Selfies [regarde tes mails] et voir les message privé !