Unsolved Et si on codait (sans erreur) !
-
this.sendNotification(“EXT_FREEBOXTV-PLAY”,“France2”)
-> le payload attend du texte mais pas un objet
-> texte => valeur unique
-> objet => plusieurs valeursthis.sendNotification
est uniquement valable dans le core mais pas dans le node_helper
-> permet de dialoguer avec les autres modules (selon le protocole defini par le module qui lira la notification)
this.sendSocketNotification
permet le dialogue entre le core -> node_helper et également entre node_helper -> core
Notes:
le node_helper: permet de faire les calculs / recuperation externe d’info (api / xml / img/ …) [ne crashera pas MM² en cas d’erreur]
le core: permet l’affichage du module, et faire les calculs a la volée si besoin
/!\ il fait essayer de faire le minimum de calcul afin de minimiser les chances crashs ou vraiment cerner ce que l’on veux faire !
-> si le core crash… on crash MM²
-> exemple:- si crash: les autre modules aussi !!! ils seront affiché mais plus de mise a jours par exemple (resterons figé)
- si crash au démarrage, les autres modules ne se lancerons pas ! (MM² va suivre la liste des modules de la config et arretera au module qui a crash)
- si crash: MM² n’envera pas la notification “top départ” (
DOM_OBJECTS_CREATED
ouALL_MODULES_STARTED
)pour dire que tous les modules sont lancé … donc des modules ne fonctionnerons pas
c’est complexe la vie d’artiste, imaginer tous les cas de crash ! :)))
-
bugsounet
-
je pense que j avais compris dans l ensemble tout cela.
Je pense que mon erreur vient d ailleurs (un forEach je suppose) car j ai l erreur suivante :[13289:0213/232717.372885:ERROR:CONSOLE(1)] “TypeError: Failed to fetch”, source: devtools://devtools/bundled/entrypoints/main/main.js (1)
ça me bloque car je ne vois pas ce que je dois corriger !!!
-
nan, c’est pas ça
c’est une erreur dans la gestion de la console dev (oui oui … personne est parfait !!!)
cherche plus haut … doit avoir une ligne rouge
sinon … regarde dans le node helper (en lancant mm dans un terminal, tu dois avoir une erreur au démarrage) et corrige l’erreur (ou l’horreur ! au choix lol) -
j ai ça : un warning et rien en rouge d apres moi
Load stylesheet: modules/ATO-MM1_CMD_MM2/ATO-MM1_CMD_MM2.css
loader.js:162 Styles loaded for: ATO-MM1_CMD_MM2
loader.js:164 Translations loaded for: ATO-MM1_CMD_MM2
loader.js:184 Load script: modules/default/clock/clock.js
module.js:509 Module registered: clock
loader.js:155 Bootstrapping module: clock
loader.js:184 Load script: vendor/node_modules/moment/min/moment-with-locales.js
loader.js:184 Load script: vendor/node_modules/moment-timezone/builds/moment-timezone-with-data.js
loader.js:184 Load script: vendor/node_modules/suncalc/suncalc.js
loader.js:160 Scripts loaded for: clock
loader.js:203 Load stylesheet: modules/default/clock/clock_styles.css
loader.js:162 Styles loaded for: clock
loader.js:164 Translations loaded for: clock
loader.js:203 Load stylesheet: css/custom.css
clock.js:48 Starting module: clock
main.js:501 All modules started!
ATO-MM1_CMD_MM2.js:104 ATO DOM_OBJECTS_CREATED
VM4 sandbox_bundle:2 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security
Policy set or a policy with “unsafe-eval” enabled. This exposes users of
this app to unnecessary security risks.For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.
warnAboutInsecureCSP @ VM4 sandbox_bundle:2
ATO-MM1_CMD_MM2.js:78 ATO la commande : 1.sh
ATO-MM1_CMD_MM2.js:83 ATO il faut executer la commande : 1.sh
ATO-MM1_CMD_MM2.js:85 ATO Commande executée : 1.sh -
ben c’est bon
-
des que je mets la ligne de france2 j ai une erreur : Uncaught SyntaxError: Invalid or unexpected token
cmd = payload console.log("ATO il faut executer la commande : ",cmd) this.sendNotification(“EXT_FREEBOXTV-PLAY”,“France2”) console.log("ATO Commande executée : ",cmd)
-
remplace
this.sendNotification(“EXT_FREEBOXTV-PLAY”,“France2”)
parthis.sendNotification("EXT_FREEBOXTV-PLAY","France2")
attention:
“
c’est differrent de"
-
ah oui c est ça j ai l impression. Purée j avais copié collé ce que tu m avais envoyé !
par contre … !!!
-
que veux tu que je te dise
vive le copier coller !
-
tu fais comment pour debugger le node helper car moi quand je lance en mode dev, je ne peux mettre que des points d arret que dans le core
-
dans le core … c’est la fenetre de debug (avec npm start dev) qui s’affiche dans MM²
dans le node helper, c’est tout ce que tu vois quand tu lance MM²exemple:
bugsounet@bugsounet-Kubuntu:~/MagicMirror$ npm start > magicmirror@2.23.0-develop start > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js [14.02.2023 00:03.50.366] [LOG] Starting MagicMirror: v2.23.0-develop [14.02.2023 00:03.50.367] [LOG] Loading config ... [14.02.2023 00:03.50.369] [LOG] Loading module helpers ... [14.02.2023 00:03.50.370] [LOG] No helper found for module: alert. [14.02.2023 00:03.50.370] [LOG] No helper found for module: clock. [14.02.2023 00:03.50.371] [LOG] Initializing new module helper ... [14.02.2023 00:03.50.372] [LOG] Module helper loaded: EXT-Alert [14.02.2023 00:03.50.373] [LOG] Initializing new module helper ... [14.02.2023 00:03.50.373] [LOG] Module helper loaded: Gateway [14.02.2023 00:03.50.501] [LOG] Initializing new module helper ... [14.02.2023 00:03.50.501] [LOG] Module helper loaded: MMM-GoogleAssistant [14.02.2023 00:03.50.503] [LOG] Initializing new module helper ... [14.02.2023 00:03.50.503] [LOG] Module helper loaded: EXT-Detector ...
apres tu tags tes logs c’est plus simple pour lire
en utilisant console.log(“[MODULE] [FONCTION/CLASSE] Blah Blah”)
-
(oupss … on a vu que j’ai codé
Gateway v3
mdr) -
non meme pas
-
apres tu n’es pas obliger de tout logué en production, d’ou le
debug
true ou false en config
moi quand je code si le debug est sur false … tu vois le minimum -
oui je viens de faire le test et je vois la difference. Je pensais qu il fallait mettre debug à true et logLevel: [“INFO”, “LOG”, “WARN”, “ERROR”,“DEBUG”], et faire le npm start dev
France2 se lance bien Merci.
J ai appris des trucs
après le NodeJS, y a des trucs un peu bizarre à comprendre. Il me faudra du temps. -
les chaines fonctionnent, par contre this.sendNotification(“EXT_FreeboxTV-STOP”); n arrête pas le TV !!?? Est ce la bonne syntaxe?
"stop": { notificationExec: { notification: "EXT_FreeboxTV-STOP" }, soundExec: { chime: "close" } },
-
regarde les noti dispo dans la Doc
Note: attention au protocole et aux Majuscules/Minuscules
-
oui j ai regardé directement dans le recipe et je te l ai collé.
donc pas d erreur sur la noti c est sûr , mais est ce la bonne syntaxe sachant qu’il n y a pas de payload ?
Attends c est bizarre, dans le doc c est EXT_FREEBOXTV-STOP !!!
-
je corrigerai le recipe
-
où est ce que tu trouves EXT_FREEBOXTV-STOP dans le code??? je pensai que tu te basais sur le recipe !!!
EXT_FREEBOXTV-STOP fonctionne bien