@Bonsoir @mj59500
Merci pour ce retour !
C’est normal, Nore-red a été installé avec un package NPM donc n’est pas détecté de la même manière, il doit être présent dans le menu de gestion des package NPM
Les trois méthodes d’installation de Node-RED diffèrent par leur approche, environnement et gestion. On peut installer les trois méthodes sur un même système, mais avec des précautions :
(Attention : Utilisez des ports différents par ex. 1880, 1881, 1882 et vérifiez les versions pour éviter les incompatibilités.)
Ligne 251 (Docker) :
[« Node-Red »]=‹ sudo docker run -d --name node-red -p 51880:1880 -v « /home/${G_USERNAME}/docker/node-red/data:/data » --user « $(id -u ${G_USERNAME}):$(id -g ${G_USERNAME}) » --restart unless-stopped nodered/node-red:latest ›
Exécute Node-RED dans un conteneur Docker. Utilise l’image nodered/node-red:latest
, mappe le port 51880 à 1880, persiste les données dans /home/${G_USERNAME}/docker/node-red/data
, s’exécute avec l’utilisateur spécifié et redémarre automatiquement sauf si arrêté. Isolé dans un conteneur, aucun conflit avec les autres. Nécessite Docker. Portable.
Ligne 509 (Paquet système) :
[« Node-Red »]=« sudo apt-get update && sudo apt-get install -y node-red && sudo systemctl enable node-red && sudo systemctl start node-red && systemctl status node-red --no-pager »
Installe Node-RED comme service système via apt-get
sur un système Debian/Ubuntu, configure un service système avec systemctl
, démarre et active Node-RED. Intégré au système, mais dépend des paquets système. Peut entrer en conflit avec l’installation NPM si les versions diffèrent.
Ligne 562 (NPM) :
[« Node-red »]=« sudo npm install -g --unsafe-perm node-red@3.1.3 »
Installe Node-RED globalement via npm
avec la version 3.1.3. Simple, mais nécessite Node.js et peut créer des conflits de dépendances. Moins intégré au système. Risque de conflits avec la version système si les ports ou dépendances se chevauchent.
Effectivement, je vois pour corriger merci pour le bug trouvé (plus le nombre de lignes et de fonctions augmentent plus c’est dur de tout retester d’autant que j’ai remis en forme tout le code pour harmoniser !
du coup j’en ai trouvé un autre dans la fonction enfin un doublon de commande)
Pour ajouter un package, il suffit de demander à grok par exemple en collant la fonction complète :
ajoute l’installation du package rpimonitor stp : #### Tableaux pour la gestion des packages
Tables for packages management
function activate_globals_variables_packages() {
…
}
et il répond tout de suite (quel gain de temps !
) :
function activate_globals_variables_packages() {
declare -gA G_PACKAGE_NAME=(
["Grafana"]="grafana"
["Home-Assistant"]="home-assistant"
["InfluxDB"]="influxdb"
["Jeedom"]="jeedom"
["Lighttpd"]="lighttpd"
["Mosquitto"]="mosquitto"
["Node-Red"]="node-red"
["OpenHABian"]="openhabian"
["Php"]="php"
["Portainer"]="portainer"
["Rpimonitor"]="rpimonitor" # Ajout
["Sqlite3"]="sqlite3"
["Syncthing"]="syncthing"
["Zigbee2Mqtt"]="zigbee2mqtt"
)
declare -gA G_PACKAGE_RESUME_FR=(
["Grafana"]="Grafana est un outil de visualisation et d'analyse de données, souvent utilisé avec des bases de données comme InfluxDB ou Prometheus."
["Home-Assistant"]="Home-Assistant est une plateforme de domotique centralisée pour contrôler et automatiser les appareils connectés."
["InfluxDB"]="InfluxDB est une base de données temporelle optimisée pour les données de séries temporelles et les métriques."
["Jeedom"]="Jeedom est une solution de domotique open source pour piloter et automatiser votre maison."
["Lighttpd"]="Lighttpd est un serveur web léger et rapide, idéal pour les applications simples."
["Mosquitto"]="Mosquitto est un broker MQTT léger pour la communication entre appareils IoT."
["Node-Red"]="Node-Red est un outil de programmation visuelle pour connecter des appareils IoT et des services."
["OpenHABian"]="OpenHABian est un système domotique optimisé basé sur OpenHAB, conçu pour fonctionner efficacement sur Raspberry Pi."
["Php"]="Php est un environnement d'exécution PHP pour développer et exécuter des applications web."
["Portainer"]="Portainer est une interface de gestion web pour administrer les containers et services Docker."
["Rpimonitor"]="Rpimonitor est un outil de surveillance des performances système pour Raspberry Pi, affichant des statistiques comme CPU, RAM et disque." # Ajout
["Sqlite3"]="Sqlite3 est une base de données SQL légère et embarquée, sans serveur."
["Syncthing"]="Syncthing est un outil open-source de synchronisation de fichiers entre plusieurs appareils, sans serveur central."
["Zigbee2Mqtt"]="Zigbee2Mqtt est une passerelle pour connecter les appareils Zigbee à un broker MQTT."
)
declare -gA G_PACKAGE_RESUME_EN=(
["Grafana"]="Grafana is a data visualization and analytics tool, commonly used with databases like InfluxDB or Prometheus."
["Home-Assistant"]="Home-Assistant is a centralized home automation platform to control and automate connected devices."
["InfluxDB"]="InfluxDB is a time-series database optimized for time-series data and metrics."
["Jeedom"]="Jeedom is an open-source home automation solution to control and automate your home."
["Lighttpd"]="Lighttpd is a lightweight and fast web server, ideal for simple applications."
["Mosquitto"]="Mosquitto is a lightweight MQTT broker for communication between IoT devices."
["Node-Red"]="Node-Red is a visual programming tool to connect IoT devices and services."
["OpenHABian"]="OpenHABian is an optimized home automation system based on OpenHAB, designed to run efficiently on Raspberry Pi."
["Php"]="Php is a PHP runtime environment for developing and running web applications."
["Portainer"]="Portainer is a web management interface to administer Docker containers and services."
["Rpimonitor"]="Rpimonitor is a system performance monitoring tool for Raspberry Pi, displaying statistics like CPU, RAM, and disk usage." # Ajout
["Sqlite3"]="Sqlite3 is a lightweight, serverless SQL database."
["Syncthing"]="Syncthing is an open-source file synchronization tool that syncs files between devices without a central server."
["Zigbee2Mqtt"]="Zigbee2Mqtt is a gateway to connect Zigbee devices to an MQTT broker."
)
declare -gA G_PACKAGE_CMD_INS=(
["Grafana"]="sudo apt update && sudo apt install -y grafana && sudo systemctl enable grafana-server && sudo systemctl start grafana-server && systemctl status grafana-server --no-pager"
["Home-Assistant"]="sudo apt-get update && sudo apt-get install -y home-assistant && sudo systemctl enable home-assistant && sudo systemctl start home-assistant && systemctl status home-assistant --no-pager"
["InfluxDB"]="sudo apt-get update && sudo apt-get install -y influxdb2 && sudo systemctl enable influxdb && sudo systemctl start influxdb"
["Jeedom"]="sudo wget -O /tmp/install_jeedom.sh https://www.jeedom.com/install && sudo chmod +x /tmp/install_jeedom.sh && sudo /tmp/install_jeedom.sh && rm -f /tmp/install_jeedom.sh"
["Lighttpd"]="sudo apt-get install -y lighttpd && sudo systemctl enable lighttpd && sudo systemctl restart lighttpd && systemctl status lighttpd --no-pager"
["Mosquitto"]="sudo apt-get install -y mosquitto && sudo systemctl enable mosquitto && sudo systemctl restart mosquitto && systemctl status mosquitto --no-pager"
["Node-Red"]="sudo apt-get update && sudo apt-get install -y node-red && sudo systemctl enable node-red && sudo systemctl start node-red && systemctl status node-red --no-pager"
["Php"]="sudo apt-get install -y php"
["Rpimonitor"]="sudo apt-get update && sudo apt-get install -y rpimonitor && sudo systemctl enable rpimonitor && sudo systemctl start rpimonitor && systemctl status rpimonitor --no-pager" # Ajout
["Sqlite3"]="sudo apt-get install -y sqlite3"
["Syncthing"]="sudo apt-get update && sudo apt-get install -y syncthing && sudo systemctl enable syncthing@${USER} && sudo systemctl start syncthing@${USER} && systemctl status syncthing@${USER} --no-pager"
["Zigbee2Mqtt"]="sudo curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs git make g++ gcc libsystemd-dev && sudo npm install -g pnpm && sudo mkdir /opt/zigbee2mqtt && sudo chown -R ${USER}: /opt/zigbee2mqtt && git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt && cd /opt/zigbee2mqtt && pnpm i --frozen-lockfile && sudo pnpm run build && cp /opt/zigbee2mqtt/data/configuration.example.yaml /opt/zigbee2mqtt/data/configuration.yaml && cd /opt/zigbee2mqtt && sudo pnpm start"
)
declare -gA G_PACKAGE_CMD_UNINS=(
["Grafana"]="sudo systemctl stop grafana-server && sudo systemctl disable grafana-server && sudo apt-get remove --purge -y grafana && sudo rm -rf /var/lib/grafana /etc/grafana"
["Home-Assistant"]="sudo systemctl stop home-assistant && sudo systemctl disable home-assistant && sudo apt-get remove --purge -y home-assistant"
["InfluxDB"]="sudo systemctl stop influxdb && sudo systemctl disable influxdb && sudo apt-get remove --purge -y influxdb2"
["Jeedom"]="sudo rm -rf /usr/local/bin/jeedom /var/www/html/jeedom /var/lib/mysql/jeedom"
["Lighttpd"]="sudo systemctl stop lighttpd && sudo systemctl disable lighttpd && sudo apt-get remove --purge -y lighttpd"
["Mosquitto"]="sudo systemctl stop mosquitto && sudo systemctl disable mosquitto && sudo apt-get remove --purge -y mosquitto"
["Node-Red"]="sudo systemctl stop node-red && sudo systemctl disable node-red && sudo apt-get remove --purge -y node-red"
["Php"]="sudo apt-get remove --purge -y php"
["Rpimonitor"]="sudo systemctl stop rpimonitor && sudo systemctl disable rpimonitor && sudo apt-get remove --purge -y rpimonitor" # Ajout
["Sqlite3"]="sudo apt-get remove --purge -y sqlite3"
["Syncthing"]="sudo systemctl stop syncthing@${USER} && sudo systemctl disable syncthing@${USER} && sudo apt-get remove --purge -y syncthing"
["Zigbee2Mqtt"]="sudo systemctl stop zigbee2mqtt && sudo systemctl disable zigbee2mqtt && sudo rm -rf /opt/zigbee2mqtt"
)
}
Après il y a plus qu’à remplacer le code dans le script, c’est pareil pour les container, les packages NPM, les pilotes, les menus étant dynamiques l’ajout ou la suppression sera mis à jour au prochain lancement du script