Emplacement et sauvegarde fichiers zwave-js-ui
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Emplacement et sauvegarde fichiers zwave-js-ui
Bonjour.
Tout est dans le titre. Suite passage à zwave-js-ui, je m'interroge sur l'emplacement des fichiers de configuration afin de mettre en place une sauvegarde.
Je n'ai rien trouvé à ce sujet sur le forum.
Concernant mon installation, j'ai choisi la solution docker.
Tout est dans le titre. Suite passage à zwave-js-ui, je m'interroge sur l'emplacement des fichiers de configuration afin de mettre en place une sauvegarde.
Je n'ai rien trouvé à ce sujet sur le forum.
Concernant mon installation, j'ai choisi la solution docker.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Bonjour,
Je me suis inspiré de cette page pour modifier mon script de sauvegarde que j'ai pompé sur le net à l'origine.
Le plus contraignant était de trouver l'id du conteneur actif, le code est dans le script.
Ça fonctionne bien, pas de souci depuis plusieurs mois.
Le script ci-dessous est un peu plus large que le seul zwave-js-ui, je suis certain que tu t'y retrouveras.
J'ai aussi écrit un script pour récupérer les dernières mises à jour du module et les inclure dans docker, dit-moi si ça t'intéresse.
Je me suis inspiré de cette page pour modifier mon script de sauvegarde que j'ai pompé sur le net à l'origine.
Le plus contraignant était de trouver l'id du conteneur actif, le code est dans le script.
Ça fonctionne bien, pas de souci depuis plusieurs mois.
Le script ci-dessous est un peu plus large que le seul zwave-js-ui, je suis certain que tu t'y retrouveras.
J'ai aussi écrit un script pour récupérer les dernières mises à jour du module et les inclure dans docker, dit-moi si ça t'intéresse.
Code : Tout sélectionner
#! /bin/bash
##-------------------------------------------------------------------------
## Script : backup.sh
##
## Objectif : Script qui permet d'automatiser la sauvegarde des éleménts
## importants d'une installation Domoticz'
##
## Auteur : Bastien DUMAS
## Date : 01/11/2015
## Version : 1.0
##-------------------------------------------------------------------------
## https://www.it-connect.fr/comment-sauvegarder-et-restaurer-un-conteneur-docker/
UNAME="/bin/uname"
CURL="/usr/bin/curl"
DD="/usr/bin/dd"
TAR="/usr/bin/tar"
DOCKER="/usr/bin/docker"
MONIT="/usr/bin/monit"
SLEEP="/usr/bin/sleep"
################### CONFIGURATION DU SCRIPT ###################
## Information abonné FreeMobile pour l'envoie de SMS
FREE_USERNAME="votre ID" #Nom d'utilisateur freemobile
FREE_PASSWORD="votre PASSWORD" #Password freemobile
HOSTNAME=`$UNAME -n`
#Informations relative à domoticz
DOMOTICZ_IP="192.168.1.4" # Domoticz IP
DOMOTICZ_PORT="8080" # Domoticz port
DOMOTICZ_DIRECTORY="/home/pi/domoticz" #Répertoire Domoticz
FILESYSTEM1="sda4" #Chemin du device filesystem
#Informations relative à la sauvegarde
BACKUP_DIRECTORY="/mnt/images_sd/Domoticz/live" #Répertoire de destination des fichiers issus de la sauvegarde
TIMESTAMP=`/bin/date +%Y%m%d%H%M%S` #Timestamp utilisé pour différencier les sauvegardes
DB_BACKUPFILE="domoticz_$HOSTNAME_$TIMESTAMP.db" #Nom du fichier issu de la sauvegarde de la base de donnée domoticz
DOMOTICZ_DIRECTORY_BACKUPFILE="domoticz_directory_$HOSTNAME_$TIMESTAMP.tar.gz" #Nom du fichier issu de la sauvegarde du répertoire domoticz
FILESYSTEM_BACKUPFILE="domoBox_${HOSTNAME}_$TIMESTAMP.bz2" #Nom du fichier issu de la sauvegarde du filesystem complet
ZWAVEJSUI_BACKUPFILE="zwave-js-ui_${HOSTNAME}_${TIMESTAMP}.tar" # Nom du fichier contenant l'image du docker à sauvegarder
ZWAVEJSUI_CONTAINER_ID=`$DOCKER ps | awk -F" " 'NR>1 { if ($7 == "zwave-js-ui") print $1}'` # Id du container zwave-js-ui
ZIGBEE_PLUGIN_DIRECTORY="/home/pi/domoticz/plugins/Domoticz-Zigbee/"
ZIGBEE_BACKUPFILE="zigbee_${HOSTNAME}_${TIMESTAMP}.tar.gz"
ZIGBEE_EXTRA_MENU="/home/pi/domoticz/www/templates/"
DOMOTICZ_DB="/home/pi/domoticz/domoticz.db"
BIN_DIRECTORY="/home/pi/bin"
BIN_BACKUPFILE="bin_${HOSTNAME}_${TIMESTAMP}.tar.gz"
MONIT_DIRECTORY="/etc/monit"
MONIT_BACKUPFILE="monit_${HOSTNAME}_${TIMESTAMP}.tar.gz"
#Chemin du fichier de log
LOG_FILE="/var/log/backup.log"
#Temps de conservation des fichiers de sauvegarde
TTL_DB="7" #Base de donnée
TTL_DOMOTICZ="31" #Répertoire domoticz
TTL_FILESYSTEM="62" #Sauvegarde complete du FILESYSTEM
TTL_ZWAVEJSUI="31" #Sauvegarde du container zwavejsui
TTL_ZIGBEE="31" #Sauvegarde de zigbee
TTL_BIN="31" #Sauvegarde du répertoire /home/pi/bin
TTL_MONIT="31" #Sauvegarde du répertoire /etc/monit
###############################################################
####################### DEBUT DU SCRIPT #######################
echo "===============> Sauvegarde du $TIMESTAMP" >> $LOG_FILE
echo "==== ELEMENTS DE CONFIGURATION ====" >> $LOG_FILE
echo "BACKUP_DIRECTORY : $BACKUP_DIRECTORY" >> $LOG_FILE
echo "TIMESTAMP : $TIMESTAMP" >> $LOG_FILE
echo "DB_BACKUPFILE : $DB_BACKUPFILE" >> $LOG_FILE
echo "DOMOTICZ_DIRECTORY_BACKUPFILE : $DOMOTICZ_DIRECTORY_BACKUPFILE" >> $LOG_FILE
echo "FILESYSTEM_BACKUPFILE : $FILESYSTEM_BACKUPFILE" >> $LOG_FILE
echo "ZWAVEJSUI_BACKUPFILE : $ZWAVEJSUI_BACKUPFILE" >> $LOG_FILE
echo "myBackupFile = ${BACKUP_DIRECTORY}/${DB_BACKUPFILE}" >> $LOG_FILE
echo "LOG_FILE = $LOG_FILE" >> $LOG_FILE
echo "===================================" >> $LOG_FILE
echo ""
echo ""
SEND_NOTIF () {
#LOG du résultat
if [ -e $myBackupFile ]
then
msg="$TIMESTAMP : Sauvegarde ${OP} OK dans le fichier : $myBackupFile en $ELAPSED"
echo $msg >> $LOG_FILE
# Envoi d'une notification vers Domoticz
# Mise en forme du texte pour utilisation dans Curl
msg=`echo "${msg// /$'%20'}"`
$CURL -s -i -k "http://${DOMOTICZ_IP}:${DOMOTICZ_PORT}/json.htm?type=command¶m=sendnotification&subject=Backup&body=$msg&subsystem=telegram;kodi;browser"
else
msg="$TIMESTAMP : ERREUR LORS DE LA SAUVEGARDE DE $myBackupFile"
echo $msg >> $LOG_FILE
##Envoie du SMS d'erreur
#$CURL -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=$FREE_USERNAME&pass=$FREE_PASSWORD&msg=$msg"
exit 3;
fi
}
CHECK_DZ_STATUS () {
JOB=`netstat -tunlp |grep -w "8080\|443" | awk -FLISTEN '{print $2}'`
if [[ $JOB == *"domoticz"* ]]; then
echo `/bin/date +'%T'` " domoticz toujours actif, on attend..." >> $LOG_FILE
else
LOOP=0
fi
}
OP=$1
#### PARTIE 1 : SAUVEGARDE #####
case "$1" in
DB) ## Sauvegarde de la base de donnée de domoticz
echo "$TIMESTAMP : Sauvegarde de la base de donnée de Domoticz " >> $LOG_FILE
myBackupFile="${BACKUP_DIRECTORY}/${DB_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
sav_db=$($CURL -s http://$DOMOTICZ_IP:$DOMOTICZ_PORT/backupdatabase.php --output $myBackupFile)
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
DOMOTICZ) ## Sauvegarde du répertoire domoticz complet
echo "$TIMESTAMP : Sauvegarde du répertoire DOMOTICZ" >> $LOG_FILE
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${DOMOTICZ_DIRECTORY_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
sav_directory=$(sudo $TAR czf $myBackupFile $DOMOTICZ_DIRECTORY)
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
FILESYSTEM) ## Sauvegarde du FILESYSTEM complet
echo "$TIMESTAMP : Sauvegarde du FILESYSTEM" >> $LOG_FILE
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${FILESYSTEM_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
#sav_filesystem=$(sudo $DD if=$FILESYSTEM | gzip > $myBackupFile)
sav_filesystem=$(sudo $DD if=/dev/$FILESYSTEM1 | lbzip2 -zk > $myBackupFile.$FILESYSTEM1)
#sav_filesystem=$(sudo $DD if=/dev/$FILESYSTEM2 | lbzip2 -zk > $myBackupFile.$FILESYSTEM2)
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
ZWAVE-JS-UI) ## Sauvegarde du container zwave-js-ui complet
echo "$TIMESTAMP : Sauvegarde du container docker zwave-js-ui" >> $LOG_FILE
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${ZWAVEJSUI_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
$DOCKER commit -p ${ZWAVEJSUI_CONTAINER_ID} ${ZWAVEJSUI_BACKUPFILE}
$DOCKER save -o ${myBackupFile} ${ZWAVEJSUI_BACKUPFILE}
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
if [ -e $myBackupFile ]
then
#Nettoyage des anciens snapshots du container
echo "Nettoyage des anciens snapshots du container zwave-js-ui" >> $LOG_FILE
$DOCKER images -a | grep -v $TIMESTAMP | grep zwave-js-ui | awk '{print $3}' | xargs docker rmi >> $LOG_FILE
fi
SEND_NOTIF
;;
ZIGBEE) ## Sauvegarde de la configuration zigbee
echo "$TIMESTAMP : Sauvegarde de la configuration zigbee" >> $LOG_FILE
# Comme recommandé dans le wiki, arrêt de domoticz avant de sauvegarder la base et le plugin
# https://zigbeefordomoticz.github.io/wiki/fr-fr/Plugin_Sauvegardes.html
$MONIT stop domoticz
LOOP=1 # On attend suffisamment longtemps que domoticz s'arrête.
ESCAPE=20 # En cas de boucle infinie, on sortira quand même après quelques itérations
while [ "$LOOP" -eq 1 ] && [ "$ESCAPE" -gt 0 ]
do
CHECK_DZ_STATUS
$SLEEP 10
done
if [ $ESCAPE -eq 0 ]
then # Domoticz toujours actif
echo `/bin/date +'%T'` " domoticz toujours actif, echec de la sauvegarde de ${myBackupFile}" >> $LOG_FILE
exit 4
else
echo `/bin/date +'%T'` " domoticz inactif, on commence la sauvegarde de ${myBackupFile}" >> $LOG_FILE
echo $JOB
fi
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${ZIGBEE_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
tar -czvf $myBackupFile $ZIGBEE_PLUGIN_DIRECTORY $DOMOTICZ_DB "${ZIGBEE_EXTRA_MENU}"
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
# Redémarrage de domoticz après la sauvegarde
$MONIT start domoticz
#LOG du résultat
SEND_NOTIF
;;
BIN) ## Sauvegarde des scripts generaux
echo "$TIMESTAMP : Sauvegarde des scripts" >> $LOG_FILE
myBackupFile="${BACKUP_DIRECTORY}/${BIN_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
tar cvzf $myBackupFile $BIN_DIRECTORY
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
MONIT) ## Sauvegarde du paramétrage de monit
echo "$TIMESTAMP : Sauvegarde de monit" >> $LOG_FILE
myBackupFile="${BACKUP_DIRECTORY}/${MONIT_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
tar cvzf $myBackupFile $MONIT_DIRECTORY
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
*) ## ERREUR DE PARAMETRE
echo "USAGE $0 :" >&2
echo "$0 type_sauvegarde" >&2
echo "$0 (DB|DOMOTICZ|FILESYSTEM|BIN|ZIGBEE|ZWAVE-JS-UI|MONIT)" >&2
echo "Paramètres incorrects" >> $LOG_FILE
exit 3;
esac
#### PARTIE 2 : NETTOYAGE #####
#Nettoyage des sauvegarde de DB
myDBFile="${BACKUP_DIRECTORY}/*.db"
DB_to_be_deleted=`find $myDBFile -type f -mtime +$TTL_DB`
echo "DB_to_be_deleted : $DB_to_be_deleted" >> $LOG_FILE
find $myDBFile -type f -mtime +$TTL_DB -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de répertoire domoticz
myDIRECTORYFile="${BACKUP_DIRECTORY}/*.tar.gz"
DIRECTORY_to_be_deleted=`find $myDIRECTORYFile -type f -mtime +$TTL_DOMOTICZ`
echo "DIRECTORY_to_be_deleted : $DIRECTORY_to_be_deleted" >> $LOG_FILE
find $myDIRECTORYFile -type f -mtime +$TTL_DOMOTICZ -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes du filesystem
myFSFile="${BACKUP_DIRECTORY}/*.bz2.sd??"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_FILESYSTEM`
echo "FS_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_FILESYSTEM -exec rm {} \;
#Nettoyage des sauvegardes de zwave-js-ui
myFSFile="${BACKUP_DIRECTORY}/zwave-js-ui*.tar"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_ZWAVEJSUI`
echo "zwave-je-ui_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_ZWAVEJSUI -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de zigbee
myFSFile="${BACKUP_DIRECTORY}/zigbee*.tar.gz"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_ZIGBEE`
echo "zigbee_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_ZIGBEE -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de bin
myFSFile="${BACKUP_DIRECTORY}/bin*.tar.gz"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_BIN`
echo "bin_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_BIN -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de monit
myFSFile="${BACKUP_DIRECTORY}/monit*.tar.gz"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_MONIT`
echo "bin_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_MONIT -exec rm {} \; > /dev/null 2>&1
######################## FIN DU SCRIPT #######################
Un bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Merci Chrominator, je regarde le script.
En complément à ta réponse, comment trouver l'id du conteneur actif en dehors du script ?
Je ne maitrise pas docker et je ne vois pas ou est installé zwave-js-ui.
En complément à ta réponse, comment trouver l'id du conteneur actif en dehors du script ?
Je ne maitrise pas docker et je ne vois pas ou est installé zwave-js-ui.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Emplacement et sauvegarde fichiers zwave-js-ui
L'emplacement de stockage de docker importe peu, on sauvegarde l'image pour pouvoir la restaurer plus tard.
C'est la ligne 45 qui permet de récupérer l'id du container actif ;
en CLI, c'est
C'est la ligne 45 qui permet de récupérer l'id du container actif ;
en CLI, c'est
Code : Tout sélectionner
sudo docker ps | awk -F" " 'NR>1 { if ($7 == "zwave-js-ui") print $1}'Un bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Merci Chrominator, je m'y retrouve parfaitement sur l'ensemble de la sauvegarde, merci.Chrominator a écrit : 01 sept. 2025, 15:02 Le script ci-dessous est un peu plus large que le seul zwave-js-ui, je suis certain que tu t'y retrouveras.![]()
Bien sur que cela m'interesse !Chrominator a écrit : 01 sept. 2025, 15:02 J'ai aussi écrit un script pour récupérer les dernières mises à jour du module et les inclure dans docker, dit-moi si ça t'intéresse.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Alors le voici.
Il est tout simple, je le lance quand je remarque que l'UI me signale une mise à jour.
J'ai laissé les lignes qui font appel à monit, elles doivent être retirées/mises en commentaire si tu ne l'utilises pas.
A lancer avec les droits d'administration (sudo).
Il est tout simple, je le lance quand je remarque que l'UI me signale une mise à jour.
J'ai laissé les lignes qui font appel à monit, elles doivent être retirées/mises en commentaire si tu ne l'utilises pas.
A lancer avec les droits d'administration (sudo).
Code : Tout sélectionner
#!/bin/bash
# upd_zwavejsui.sh
# Update zwave-js-ui container
# Author: Chrominator
# Creation: 2024-10-05
# Get container data
container=(`docker ps | awk -F" " 'NR>1 { if ($7 == "zwave-js-ui") print $1" "$2}'`)
container_id=${container[0]}
container_pull=${container[1]}
echo "Mise à jour du container $container_id vers $container_pull"
# Disable zwave-js-ui monitoring before operation then stop docker
monit -c /etc/monit/monitrc stop zwave-js-ui
docker stop zwave-js-ui
docker rm zwave-js-ui
docker pull $container_pull
docker images
# Restart docker
/etc/monit/scripts/zwave-js-ui_init.sh start
# Enable zwave-js-ui monitoring
monit -c /etc/monit/monitrc start zwave-js-uiUn bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Merci Chrominator
A l'issue de la mise à jour, tu relance zwave-js-iu via monit
Si je n'utilise pas monir pour monitorer zwave, qu'elle est la commande ?
??
A l'issue de la mise à jour, tu relance zwave-js-iu via monit
Code : Tout sélectionner
# Restart docker
/etc/monit/scripts/zwave-js-ui_init.sh startCode : Tout sélectionner
docker start zwave-js-ui # ?????Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Oui, désolé, ça m'a échappé.
Voici le script en question :
Voici le script en question :
Code : Tout sélectionner
#!/bin/bash
# zwave-js-ui_init.sh
# Manage zwave-js-ui container status
# Author: Chrominator
# Creation: 2022-10-22
cd /home/pi/domoticz
if [ $1 = "start" ]; then
/usr/local/bin/docker-compose up -d
else
if [ $1 = "restart" ]; then
/usr/local/bin/docker-compose stop
/usr/local/bin/docker-compose up -d
else
/usr/local/bin/docker-compose $1
fi
fiUn bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Merci Chrominator, c'est parfait, simple et efficace.
Comment gères tu la surveillance de Zwave-js-ui avec monit, je n'ai rien trouvé sur ce sujet.
Comment gères tu la surveillance de Zwave-js-ui avec monit, je n'ai rien trouvé sur ce sujet.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Content que ça te rende service.
Pour monit, j'ai un script qui permet de s'assurer que zwave-js-ui est bien démarré, et les specs qui déterminent comment monit doit interpréter le résultat.
Ca donne ça dans monit (dernière ligne) : L'output n'est pas vraiment en ligne (horaire de démarrage, c'est toujours le précédent) mais ça fonctionne, alors j'ai laissé comme ça.
Les specs (stockées dans un fichier nommé check_container_zwave-js-ui dans /etc/monit/conf-available)
Bien sûr pour le rendre actif je crée un lien de ce fichier dans /etc/monit/conf-enabled
Le script /etc/monit/scripts/check_container_zwave-js-ui.sh :
Le code retour est exploité par la spec monit comme tu le vois pour déterminer s'il y a une anomalie.
Tu as déjà le script /etc/monit/scripts/zwave-js-ui_init.sh mais je le répète ici par esprit de simplification :
A ta dispo.
Pour monit, j'ai un script qui permet de s'assurer que zwave-js-ui est bien démarré, et les specs qui déterminent comment monit doit interpréter le résultat.
Ca donne ça dans monit (dernière ligne) : L'output n'est pas vraiment en ligne (horaire de démarrage, c'est toujours le précédent) mais ça fonctionne, alors j'ai laissé comme ça.
Les specs (stockées dans un fichier nommé check_container_zwave-js-ui dans /etc/monit/conf-available)
Code : Tout sélectionner
CHECK PROGRAM zwave-js-ui WITH PATH /etc/monit/scripts/check_container_zwave-js-ui.sh
START PROGRAM = "/etc/monit/scripts/zwave-js-ui_init.sh start"
STOP PROGRAM = "/etc/monit/scripts/zwave-js-ui_init.sh stop"
IF status != 0 FOR 3 CYCLES THEN RESTART
IF 2 RESTARTS WITHIN 5 CYCLES THEN UNMONITORLe script /etc/monit/scripts/check_container_zwave-js-ui.sh :
Code : Tout sélectionner
#! /bin/bash
#docker top "zwave-js-ui" | awk -F" " 'NR>1{print "zwave-js-ui started @"$5 " pid " $2 }'
status=(`docker top "zwave-js-ui" | awk -F" " 'NR>1{print $5" "$2" "$8}'`)
start_time=${status[0]}
pid=${status[1]}
node=${status[2]}
echo "zwave-js-ui started @"$start_time "pid "$pid
if [ $node != "node" ]; then
exit 255
else
exit 0
fiTu as déjà le script /etc/monit/scripts/zwave-js-ui_init.sh mais je le répète ici par esprit de simplification :
Code : Tout sélectionner
#!/bin/bash
# zwave-js-ui_init.sh
# Manage zwave-js-ui container status
# Author: Chrominator
# Creation: 2022-10-22
cd /home/pi/domoticz
if [ $1 = "start" ]; then
/usr/local/bin/docker-compose up -d
else
if [ $1 = "restart" ]; then
/usr/local/bin/docker-compose stop
/usr/local/bin/docker-compose up -d
else
/usr/local/bin/docker-compose $1
fi
fi
Un bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06