Domoticz backup et restaurations

Suite à diverses manipulations intempestives sur le raspberry gérant ma domotique, je me suis retrouvé sans aucune sonde de température 1-wire dans  Domoticz. Le coupable n’est pas Domoticz mais moi (compilation de modules 1-wire pas maitrisée).

Aprés avoir remis le raspberry en état, mes sondes de température 1-wire avaient toutes disparues de Domoticz, le matériel ayant lui méme disparu de l’onglet matériel. Arggh !!

oh no !

photo de quand j’étais jeune

Ne voulant pas perdre l’historique de mes enregistrements déjà effectués j’ai décidé de reprendre une sauvegarde récente de Domoticz.

Le backup automatique

Activation

Domoticz peut créer des sauvegardes automatiques. Il suffit de l’activer au milieu de la page de paramétrage.

sauvegarde_domoticz

sauvegarde_domoticz

3 dossiers sont crées dans /home/pi/domoticz/backup en accès réduit : sudo obligatoire.

  • le dossier hourly , contient les sauvegardes éffectuées toutes les heures,
  • le dossier daily les sauvegardes quotidiennes
  • le monthly contient une sauvegarde par mois

Restoration

Arretons Domoticz

sudo service domoticz.sh stop

Recopions la base actuelle,même si pas jolie, sous un nouveau nom.

sudo cp /home/pi/domoticz/domoticz.db /home/pi/domoticz/domoticz.old.db

Allons dans le dossier de backup , retrouvons  dans un des dossiers une sauvegarde d’avant le désastre et copions la sous le nom de domoticz.db

sudo cp /home/pi/domoticz/backups/hourly/backup-hour-19.db /home/pi/domoticz/domoticz.db

ici je reprends une sauvegarde de 19h

les droits doivent être changés

sudo chown pi.pi domoticz.db

on relance Domoticz

sudo service domoticz.sh start

Connectez vous à l’interface et voila vous devriez retrouver le sourire.

yes

 Les sauvegardes manuelles

La sauvegarde

Dans le menu « Configuration », « Paramètres de l’application »

Le menu à droite contient un bouton « Sauvegarder la base de données »

Cela envoie un fichier de la base de données sur votre PC local

La restoration

Tout en bas des paramètres de l’application , le bouton jaune « Restauration de la base de données » vous permettra de télécharger un fichier local vers le Raspberry et de mettre celui ci en place.

N.B : Ces restorations/sauvegardes ne s’occupent QUE de la base de données pas des scripts, pensez à les mettre à l’abri de temps en temps

Comme cela par exemple.

 

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Utiliser le tarif EDF Tempo

Une discussion sur le forum dont la magnifique réponse à été donné par jackslayter m’a incité à reprendre en partie les propos échangés pour cet article.

La finalité était de récupérer le tarif Tempo EDF en cours (bleu,blanc,rouge) pour piloter les radiateurs électriques, et éviter les casse têtes :

tempoedf

La couleur Tempo d’aujourd’hui et demain est mise à disposition grâce à domogeek.entropialux.com (entre autres choses, mais nous y reviendrons tellement l’outil et l’idée sont pratiques pour de la domotique)

Au final le scénario est celui ci :

Création d’un switch virtuel, interrogation via script bash de l’api, si le tarif est bleu alors passe le switch à On ce qui permettra de piloter nos équipements puis mise en place du script dans un crontab pour interrogation régulières.

1 – Création d’un switch virtuel.

Depuis l’onglet « Matériel » , ajoutez un Interrupteur.

Dans l’onglet des périphériques cliquez sur la flèche verte, nommez le, puis notez l’IDX de cet équipement.

2 – Interrogation du tarif Tempo.

Dans le dossier domoticz/scripts créons un script nommé edftempo.sh

sudo pico domoticz/scripts/edftempo.sh

#!/bin/bash
tempo=$(curl -s http://domogeek.entropialux.com/tempoedf/now)
if [ $tempo = "bleu" ]; then
curl "http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=101&switchcmd="On"&level=0"
else
curl "http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=101&switchcmd="Off"&level=0"
fi

Changez ici l’IP de Domoticz et le IDX de votre switch virtuel suivant votre config.

un chmod +x sur le fichier puis l’exécution de ./edftempo.sh doit faire basculer l’état du switch virtuel à On si la journée est bleue sinon on reste à Off.

<digresssion>

On peut aussi récupérer les tarifs EJP par zone

/ejpedf/:zone/:date/:responsetype

Example usage:

   curl http://domogeek.entropialux.com/ejpedf/nord/today
   curl http://domogeek.entropialux.com/ejpedf/sud/tomorrow
   curl http://domogeek.entropialux.com/ejpedf/paca/today/json

Les régions sont {nord|sud|ouest|paca} : 1 seule à la fois !!!

on a today ou tomorrow pour les jours

Le retour est False nous ne sommes pas en EJP pour la date demandée

et True quand nous sommes en EJP

Le script bash ci-dessous pourra être modifié pour tenir compte de l’EJP

</digression>

3 – Pilotage des équipements liés

Plusieurs méthodes pour déclencher les radiateurs sont possibles

Soit :

  • Un script blocky qui pilote un groupe de dispositifs en se basant sur l’état du switch virtuel.
  • Soit pilotage direct via le script,

ajoutez autant de lignes que d’équipements à piloter à l’intérieur du if $tempo=bleu en indiquant les idx des radiateurs, supprimez les lignes else et curl, au final on a:

#!/bin/bash
tempo=$(curl -s http://domogeek.entropialux.com/tempoedf/now)
if [ $tempo = "bleu" ]; then
curl "http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=67&switchcmd="On"&level=0"
curl "http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=68switchcmd="On"&level=0"
curl "http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=69&switchcmd="On"&level=0"
fi

4- crontab

un crontab -e puis placer cela qui se lancera tous les jours à 00h 10 minutes

10 00 * * * sudo /home/pi/domoticz/scripts/edftempo.sh 2>&1 >> /dev/null

cron

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Interrupteurs et Action !

Dans les propriétés d’un interrupteur on trouve deux champs nommés Action On et Action Off qui permettent de déclencher une url http ou https  ou un script lors du basculement de cet interrupteur.

Je voudrais revenir ici sur l’utilisation de ces 2 champs mais plus particulièrement sur le fonctionnement du mode script://

Script://

Ce mode permet donc d’exécuter un script, quelque soit son langage, en précisant ici le chemin complet vers le script en question du style /home/pi/domoticz/scripts/mon_script.php

Donc ATTENTION : puisque la commande est script:// et que mon chemin est /home/pi/domoticz/scripts/mon_script.ph, il faut donc 3 / apres le script :

Oui,oui 3 😯

Action_on_Action_offDans des versions anciennes de Domoticz cela fonctionnait même avec 2 / uniquement mais depuis quelques version les 3 sont obligatoires, donc n’oubliez pas !!

Ce mode script permet de lancer des scripts dans n’importe quel langage du moment que votre script commence bien par un shebang pour que le shell sache quel langage appeler pour l’exécution de votre script://

Éventuellement le chemin complet peut être nécessaire à préciser si votre PATH ne contient pas le chemin vers votre langage de script.

#!/bin/sh -x
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f
#!/usr/bin/python

http://

Rien de spécial à préciser, introduisez ici l’url complète à appeler avec tous les paramètres nécessaires.

Seule remarque : A ce jour le https n’est pas supporté dans les Action On et Action Off,.

Il faudra  passer par un script de votre langage préféré qui,lui, saura faire du https puis indiquer ce script:/// dans Action

PS : on me signale à l’oreillette que l’on peut exécuter plusieurs scripts dans cette barre avec ou sans paramètres. On sépare chacun des scripts par des &&, on fourni les paramètres après l’appel du script (bien entendu votre script doit savoir les gérer…)

Ainsi ; script:///home/pi/multiple.sh && /home/pi/test1.sh && /home/pi/test2.sh test test2

Lance multiple.sh et test1.sh et test2.sh en donnant test1,test2 au script test2

Après concertation avec le staff technique, une autre astuce mérite de figurer ici

C’est le passage de paramètres depuis un script:///

Exemple :

  • dans mon action on  je mets script:///home/pi/…/radio.sh allume
  • dans mon action off je mets script:///home/pi/…/radio.sh eteint

puis mon script radio.sh commencera par un

 

#!/bin/bash
if [ "$*" = "allume" ] ; then
mon action pour faire allume
elif [ "$*" = "eteint" ] ; then
mon action pour eteint
fi

C’est bien entendu adaptable à d’autre langages qui gèrent les passages de paramètres.

Merci a jackslayter pour ces complément.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Ajout d’un Texte dans un virtual sensor

La version >=2086 apporte une modification sympathique qui nous permet d’afficher un message de notre choix dans un composant virtuel spécial « Texte ».

Il suffit de créer un « Virtual Sensor » Texte dans la configuration comme d’habitude.

virtauldev-textePuis il faut le « pousser » dans les dispositifs par le flèche verte, le nommer… et noter son Idx dont nous aurons besoin pour la suite.

Il apparait dans l’onglet « Mesures »

Afin d’écrire un texte sur ce composant un petit :

http://IP:PORT/json.htm?type=command&param=udevice&idx=mon_idx&svalue=MONTEXTEAAFFICHER

fait passer le status à « MONTEXTEAFFICHER »

virtualtxtA nous de jouer pour tirer profit de cette évolution.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Un pour les commander tous

chris moss

Si comme moi, vous avez plusieurs connexions ssh à gérer vers plusieurs Raspberry ou serveurs, des connexions ICA, RDP (personne n’est parfait), du VNC et que vous en avez marre de taper les mots de passe de toutes vos connexions, et que , à fortiori, vous  êtes sous Windows (personne n’est parfait), MRemoteNG sera votre compagnon, il centralise toutes ces connexions, ouvre celles ci dans un onglet diffèrent.

Bien pratique !

MRemoteNG supporte les protocoles suivants :

  • RDP (Remote Desktop/Terminal Server)
  • VNC (Virtual Network Computing)
  • ICA (Citrix Independent Computing Architecture)
  • SSH (Secure Shell)
  • Telnet (TELecommunication NETwork)
  • HTTP/HTTPS (Hypertext Transfer Protocol)
  • rlogin

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/