[TUTO noodom] Génération automatique de menus noodom

Helloo,

:boom: Je vous propose un scénario de génération automatique de mes menus disponibles ici : GitHub - noodom/jeedom_menus.

La procédure de création du scénario est décrite ici : jeedom_menus/installation at master · noodom/jeedom_menus · GitHub.

Création du scénario :
:point_right: Nouvelle méthode simplifiée de création

Ancienne méthode

EDIT : ancienne méthode, voir la nouvelle méthode simplifiée dans le post ci-dessous. : - ajouter une action pour spécifier le tag menuName avec le nom du menu à créer

Exécution du scénario :

  • renseigner le nom du menu à générer, actuellement les suivants sont fonctionnels : menuJsonFsb33Frame, menuNooNeumorphism, menuVerticalTom, menuMobileSubMenuFrame, menuNavButton, menuNoo3DAnim, menuNooSliding, menuAnimation, menuInTheAir, menuNoo3DRound.

:point_right: Le menu est automatiquement généré et accessible directement depuis la liste des designs après un refresh de la page de Jeedom. :exclamation:

Après exécution du scénario :

  • Le lien du design et des htmlDisplays créés pour le menu sont directement visibles et sélectionnables depuis le centre de messages.
  • Si le menu n’a pas de fond transparent, il faut aller dans la configuration du htmlDisplay du menu et simplement le sauver : la transparence sera OK.

:information_source: En cas de mise à jour du menu sur le Github, il suffit de relancer le scénario avec le nom du menu pour le tag menuName.

11 « J'aime »

Bonjour,

Je vous propose une méthode encore plus simplifiée pour créer le scénario de génération automatique de menus, lire le détail ici, paragraphe Installation automatique d'un menu noodom à l'aide d'un scénario créé automatiquement
(Les autres paragraphes correspondent aux anciennes méthodes, équivalentes au final mais plus complexes à mettre en œuvre)

Scénario d’installation (plutôt basique :slight_smile: ) :

:information_source: Sur le même principe, il est possible de générer automatiquement mes widgets (tous les détails ici)

1 « J'aime »

Salut,

j’utilise ton scenario pour mes menus et je trouve ca top.
Par contre, peu importe la taille du menu que je rentre dans les tags du scenario, il me crée a chaque fois un menu de 1280*1000. C’est moi qui bug?

1 « J'aime »

Hello,

Tu as bien modifié aux 2 endroits comme précisé dans la note ?

  • Le scénario de génération modifie les tailles des HTML Display contenant le menu et son contenu
  • le fichier /perso.json permet de préciser la taille du menu (qui sera lui-même dans le HTML Display menu)

Donc c’est bien moi qui bug.
Merci!

2 « J'aime »

Helloo,

Ajout d’un contrôle sur la présence du plugin HTML Display nécessaire à la génération de mes menus à partir de ce scénario.

1 « J'aime »

Bonne nuit,
Le scénario de génération automatique de menu ne fonctionne pas pour moi. Une fois que je remplis les étiquettes avec le nom du menu à générer et que j’appuie sur Execute, ça ne fait rien, après 4 ou 5 fois je le fais tourner.

Mais le menu a un comportement erratique, je ne peux pas interagir avec, finalement je dois le supprimer.

Est-il possible que vous ayez un problème de permissions ?
La version de Jeedom est la 4.2.14

Merci

Salut,

Tu peux envoyer les logs pour analyse ?

Bonsoir,
La première fois que j’exécute le scénario, il ne crée pas la structure du fichier.

------------------------------------
[2022-09-26 23:17:32][SCENARIO] -- Start : Escenario lanzado manualmente.
[2022-09-26 23:17:32][SCENARIO] - Ejecución del subelemento de tipo [acción]: code
[2022-09-26 23:17:32][SCENARIO] Ejecución de un bloque de código 
[2022-09-26 23:17:33][SCENARIO] id scenario : 51
[2022-09-26 23:17:33][SCENARIO] remove all scenario elements except first one
[2022-09-26 23:17:33][SCENARIO] add action code
[2022-09-26 23:17:33][SCENARIO] add scenarioSubElement
[2022-09-26 23:17:33][SCENARIO] get tags {"menuName":"menuNavButton","menuDesignWidth":"1280","menuDesignHeight":"1000","designPrefixName":"noodom_","htmldisplayParent":"Design"}
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression ( tag[menuName]=menuNavButton)
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression ( tag[menuDesignWidth]=1280)
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression ( tag[menuDesignHeight]=1000)
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression ( tag[designPrefixName]=noodom_)
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression ( tag[htmldisplayParent]=Design)
[2022-09-26 23:17:33][SCENARIO] add scenarioElement2
[2022-09-26 23:17:33][SCENARIO] add scenarioSubElement2
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression2
[2022-09-26 23:17:33][SCENARIO] get script https://raw.githubusercontent.com/noodom/jeedom_menus/master/installation/nooMenusAutomaticInstallation.php
[2022-09-26 23:17:33][SCENARIO] add scenarioExpression
[2022-09-26 23:17:33][SCENARIO] disable first bloc code (id=310)
[2022-09-26 23:17:33][SCENARIO] Final correcto del escenario

La deuxième fois que je l’exécute, il crée la structure du fichier, mais le comportement est erratique.
dans le menu de design → noodom_menuNavButton

[2022-09-26 23:18:18][SCENARIO] -- Start : Escenario lanzado manualmente.
[2022-09-26 23:18:18][SCENARIO] - Ejecución del subelemento de tipo [acción]: action
[2022-09-26 23:18:18][SCENARIO] Actualización de etiqueta #menuName# => menuNavButton
[2022-09-26 23:18:18][SCENARIO] Actualización de etiqueta #menuDesignWidth# => 1280
[2022-09-26 23:18:18][SCENARIO] Actualización de etiqueta #menuDesignHeight# => 1000
[2022-09-26 23:18:18][SCENARIO] Actualización de etiqueta #designPrefixName# => noodom_
[2022-09-26 23:18:18][SCENARIO] Actualización de etiqueta #htmldisplayParent# => Design
[2022-09-26 23:18:18][SCENARIO] Ejecución de un bloque de elementos: 312
[2022-09-26 23:18:18][SCENARIO] - Ejecución del subelemento de tipo [acción]: code
[2022-09-26 23:18:18][SCENARIO] Ejecución de un bloque de código 
[2022-09-26 23:18:18][SCENARIO] ## Noodom menu automatic installation : menuNavButton ##
[2022-09-26 23:18:18][SCENARIO] Destination dir creation (menus folder) : /var/www/html/data/menusNoodom
[2022-09-26 23:18:18][SCENARIO] ** Get .htaccess file
[2022-09-26 23:18:18][SCENARIO] - Origin filename : https://raw.githubusercontent.com/noodom/jeedom_menus/master/menuNavButton/data/menusNoodom/.htaccess
[2022-09-26 23:18:18][SCENARIO] - Destination filename : /var/www/html/data/menusNoodom/.htaccess
[2022-09-26 23:18:18][SCENARIO] - .htaccess downloaded !
[2022-09-26 23:18:18][SCENARIO] ** Get files for menu menuNavButton
[2022-09-26 23:18:18][SCENARIO] - Get menu zip file : https://raw.githubusercontent.com/noodom/jeedom_menus/master/menuNavButton/data/menusNoodom/menuNavButton.zip
[2022-09-26 23:18:18][SCENARIO] - Destination menu zip file : /var/www/html/data/menusNoodom/temp.zip
[2022-09-26 23:18:26][SCENARIO] - Extract files from menu : menuNavButton
[2022-09-26 23:18:26][SCENARIO] ** Create menu and content htmldisplays
[2022-09-26 23:18:26][SCENARIO] - Menu HD not found : create HD noodom_menu_menuNavButton(id:329)
[2022-09-26 23:18:26][SCENARIO] - Content HD not found : create HD noodom_content(id:330)
[2022-09-26 23:18:26][SCENARIO] - Save menu HD dashboard from https://raw.githubusercontent.com/noodom/jeedom_menus/master/menuNavButton/index.html
[2022-09-26 23:18:27][SCENARIO] - Save content HD dashboard from https://raw.githubusercontent.com/noodom/jeedom_menus/master/menuNavButton/menuFrame.html
[2022-09-26 23:18:27][SCENARIO] ** Create Menu Design noodom_menuNavButton
[2022-09-26 23:18:27][SCENARIO] - Create design noodom_menuNavButton
[2022-09-26 23:18:27][SCENARIO] - add content htmldisplay (id:330)
[2022-09-26 23:18:27][SCENARIO] - add menu htmldisplay (id:329)
[2022-09-26 23:18:27][SCENARIO] ==> Access to the menu menuNavButton : design id=10
[2022-09-26 23:18:27][SCENARIO] Final correcto del escenario

Bonjour Noodom,

idem je viens de tester ca ne fonctionne pas rien est crée, en revanche le scenario pour les widgets a fonctionné.

Salut,

Peux-tu préciser ce qui ne fonctionne pas ?
Tu parles de structure de fichier : de quel fichier parles-tu ?

Sinon la première exécution du scénario modifie le scénario lui-même, il ne génère pas encore de menu.
Tu as bien effectué un refresh du scénario pour voir le contenu modifié ?

Les logs sont ok sur cette exécution et les logs du deuxième scénario montrent que tu as bien récupéré le nouveau contenu.

Je ne comprends donc pas à quel moment tu as constate un problème et lequel exactement ?
Qu’entends tu par comportement erratique ?

D’après les logs tu as bien 2 éléments htmlDisplay content et menu (330 et 329). Tu peux vérifier dans le plugin htmlDisplay qu’ils sont bien présents.

De même tu peux vérifier dans le design 10 que tu as bien ces htmlDisplay présents (dans la configuration du design)

Salut,

Il faut à minima les logs du scénario pour pouvoir t’aider et faire les vérifications du précédent post.

Bonjour Desolé par avance meme si y a un super systeme d’installation automatique
L’install ce passe bien j’ai bien la barre qui s’affiche, mais j’arrive pas a afficher mes pages

Je voudrais mettre ma premiere page
je comprends pas ou je me loupe

Enfaite on dirait que c’est les navigateurs qui n’aime pas mon ip local, non?

Merci encore


Salut,

Il me faudrait plus de détails sur ton installation : après avoir lancé le scénario d’installation, tu es allé modifier le fichier perso.json ? Tu peux envoyer ce fichier de configuration ?
Sinon, la première capture correspond à l’url locale de ton menu ?

Pour la 2ème capture, c’est la génération d’un deuxième menu ? ça semble fonctionne dans ce cas non ?

Merci pour la reponse

Oui c’est bien l’ip de mon serveur
Openmediavault avec jeedom en docker

L’installation se passe très bien.
Est ce que je rempli pas bien le tag avant le lancement du script…
Voici le json

Pour la 2eme capture c’est un autre menu. Je voulais le remplacer par le tient :blush:

{
    "buttons": [
        {
            "label": "Accueil",
            "link": "200",
            "icon": "fas fa-home"
        },
        {
            "label": "Lumières",
            "link": "5",
            "icon": "fa fa-lightbulb"
        },
        {
            "label": "Energie",
            "link": "18",
            "icon": "fa fa-plug"
        },
        {
            "label": "Chauffage",
            "link": "11",
            "icon": "fa fa-thermometer-half"
        },
        {
            "label": "Caméras",
            "link": "201",
            "icon": "fa fa-video"
        },
        {
            "label": "Météo",
            "link": "8",
            "icon": "fas fa-cloud-sun"
        },
        {
            "label": "Agenda",
            "link": "9",
            "icon": "fa fa-calendar"
        },
        {
            "label": "Paramétrage",
            "link": "17",
            "icon": "fa fa-sitemap"
        }
    ],
    "parameters": {
      	"css_file":"style.css",

        "menu_x":"0px",
        "menu_y":"0px",
      	"menu_width":"1280px",
        "menu_height":"100px",

        "content_x":"0px",
        "content_y":"0px",
        "content_width":"1280px",
        "content_height":"1024px"      
    }
}

Merci bonne soirée

Tu peux utiliser le bouton de formatage pour un affichage plus lisible et plus proche du contenu réel du fichier ? Les apostrophes sont transformées et il y a les numéros de ligne qui gênent une lecture facile :wink:

Le contenu n’est d’ailleurs pas complet, il ne se termine pas correctement.

1 « J'aime »

Désolé j’étais sur smartphone. Je viens d’éditer mon message. Merci

Ça a l’air correct (même si le formatage n’est pas appliqué sur tout le contenu :yum:)

Quel est l’ID du design qui contient mon menu généré que tu appelles ?

Sinon les Ids définis dans perso.json correspondent bien tous à des ids existants de designs ?

Salut
c’est bien ca que tu parles?
Merci
label5

id5

Salut,

Si je comprends bien tu appelles l’URL http://…&id=5 ?

Et dans perso.json tu as un id 5.

Tu ne dois pas avoir l’ID du menu dans le json.

Le json ne contient que des designs de contenu, pas le menu lui même.