Aller au contenu

Julien92130

Membres confirmés
  • Compteur de contenus

    78
  • Inscription

  • Dernière visite

Réputation sur la communauté

15 Good

À propos de Julien92130

  • Rang
    Membre interessé

Profile Information

  • Sexe :
    Homme
  • Ville :
    Issy les Moulineaux
  • Box
    Autre

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. Julien92130

    Votre avis sur l'avenir de Fibaro ?

    J'ai commencé sur la HCL alors les années laborieuses.. J'ai donné aussi J'avais noté un net progrès ces 2 dernières années, avec des MAJ que tu lançais sans avoir peur de tout péter et de te faire défoncer par ta femme parceque plus rien ne fonctionnait... Mais, je me trompe peut-être (et j'espère me tromper d'ailleurs), j'ai l'impression que cette période est derrière nous. L'avenir nous le dira
  2. Julien92130

    Votre avis sur l'avenir de Fibaro ?

    J'ai aussi cette même impression.. Une perte de dynamique assez nette, mais qui sait...
  3. Julien92130

    Votre avis sur l'avenir de Fibaro ?

    Oui qui sait... Une HC4 avec un VRAI support Zigbee + Matter, je serai pas contre
  4. Julien92130

    Votre avis sur l'avenir de Fibaro ?

    Bonjour à tous, Entre les MAJ qui se font de moins en moins fréquentes, le déclin du Zwave face à Zigbee, l'arrivée de Matter... J'ai l'impression que nos box Fibaro approchent de la retraite... Qu'en pensez-vous ?
  5. Julien92130

    Notifications Pushover sous HC3

    Voici le code que j'utilise. Pense à bien initialiser les variables de ta QA avec ton token, user et devices : function QuickApp:sendpush(title, message, priority) -- Récupération des variables de QA token = tostring(self:getVariable("token")) user = tostring(self:getVariable("user")) devices = tostring(self:getVariable("devices")) -- Récupération et vérification des arguments if (type(title) ~= "string") then title = "Message sans titre" end if (type(message) ~= "string") then message = "Message sans contenu" end if (type(priority) ~= "number") then priority = 0 end -- Préparation et envoi de la notification local settings = { token = token, user = user, device = devices, title = title, message = message, priority = priority, html = "1", sound = "pushover" } local http = net.HTTPClient({ timeout = 5000 }) local payload = json.encode(settings) http:request("https://api.pushover.net/1/messages.json", { options = { headers = { ["content-type"] = "application/json;charset=UTF-8" }, method = "POST", data = payload }, success = function(status) if (tonumber(status.status) == 200) then print("success") end end, error = function(error) print(error) end }) -- Mise à jour de la QA self:updateProperty("log", os.date("%d/%m/%Y - %H:%M")) end function QuickApp:onInit() self:debug("onInit") end
  6. Julien92130

    Sauvegarde HC3 automatique sur NAS Synology

    Non, je n'ai qu'une seule box. Le script de backup est lancé par mon Synology tous les mois. Je ne sais plus si j'y ai apporté des modifications ou non, alors voilà celui que j'utilise et qui fonctionne (j'ai seulement enlevé les infos d'authentification et les adresses mail) : #!/usr/bin/sh # # Script : backup-hc3.sh # Author : Lazer # Version : 3.21 # Date : April 2022 # # HC3 Address HC3_ADDRESS="192.168.20.2" # HC3 Authentication : echo -n 'user:password' | base64 ou https://www.base64decode.org/ HC3_AUTHENTICATION="A COMPLETER" # HC3 Backup History HC3_BACKUP_HISTORY="YES" # HC3 Global Variable HC3_VARIABLE_NAME="Backup_Synology" HC3_VARIABLE_IS_VALUE="true" # HC3 Active Profile HC3_PROFIL_IS_VALUE=1 HC3_PROFIL_NOT_VALUE=3 # NAS NAS_PATH="/volume1/Backups/HC3" # Email MAIL_FROM="A COMPLETER" MAIL_TO="A COMPLETER" MAIL_SUBJECT="Backup HC3" # Notification NOTIF_TO="@administrators" NOTIF_TITLE="Sauvegarde" # Backup timeout TIMEOUT=900 # Reboot CLEAN_REBOOT="No" FORCE_REBOOT="Yes" # Initialization echo -e "\nBackup Fibaro Home Center : $(/bin/date +'%A %d/%m/%Y %H:%M:%S')" set -o pipefail # Function : Send Email function Email { local MAIL_BODY=$(echo $1 | sed -e 's/\"/\\\"/g') /usr/bin/php -r "mail('${MAIL_TO}', '${MAIL_SUBJECT}', \"${MAIL_BODY}\", 'From: ${MAIL_FROM}');" } # Function : Send Notification function Notification { /usr/syno/bin/synodsmnotify "${NOTIF_TO}" "${NOTIF_TITLE}" "$1" } # Function : Display error function Error { if [ -z "$2" ] then echo -e "$1" #Email "$1" else echo -e "$1\n\n$2\n" #Email "$1\n\n$2\n" fi Notification "$1" } # Function : Quit program function Quit { exit $1 } # Check JSON library type jq > /dev/null 2>&1 if [ $? -ne 0 ] then Error "Erreur : librairie JSON 'jq' introuvable" Quit 1 fi # Check destination directory if [ ! -d "${NAS_PATH}" ] then Error "Erreur : le répertoire de destination '${NAS_PATH}' n'existe pas" Quit 2 fi cd "${NAS_PATH}" # Check global variable value if [ ! -z "${HC3_VARIABLE_NAME}" ] then echo "Vérification de la valeur de la variable globale '${HC3_VARIABLE_NAME}'..." OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --request GET --header "Authorization: Basic ${HC3_AUTHENTICATION}" "http://${HC3_ADDRESS}/api/globalVariables/${HC3_VARIABLE_NAME}") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour lire la variable globale '${HC3_VARIABLE_NAME}'" Quit 3 fi # Curl - Get status code and response body : https://gist.github.com/maxcnunes/9f77afdc32df354883df JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then VALEUR=$(echo "${JSON}" | /bin/jq -r ".value") #if [ -z "${VALEUR}" ] #then #Error "Erreur : variable globale '${HC3_VARIABLE_NAME}' vide" #Quit 4 #fi if [ "${VALEUR}" != "${HC3_VARIABLE_IS_VALUE}" ] then Error "Attention : variable globale '${HC3_VARIABLE_NAME}' = '${VALEUR}' différent de '${HC3_VARIABLE_IS_VALUE}' => Pas de sauvegarde" Quit 5 fi echo "Variable globale '${HC3_VARIABLE_NAME}' = '${VALEUR}' identique à '${HC3_VARIABLE_IS_VALUE}' => Sauvegarde" else Error "Erreur : la variable globale '${HC3_VARIABLE_NAME}' est inexistante : code de retour HTTP ${CODE}" "${JSON}" Quit 6 fi fi # Check active profile if [[ ! -z "${HC3_PROFIL_IS_VALUE}" || ! -z "${HC3_PROFIL_NOT_VALUE}" ]] then echo "Vérification du profil actif..." OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --request GET --header "Authorization: Basic ${HC3_AUTHENTICATION}" "http://${HC3_ADDRESS}/api/profiles") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour lire le profil actif" Quit 7 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then PROFIL=$(echo "${JSON}" | /bin/jq -r ".activeProfile") if [ -z "${PROFIL}" ] then Error "Erreur : profil vide ou inexistant" Quit 8 fi if [[ ! -z "${HC3_PROFIL_IS_VALUE}" && "${PROFIL}" != "${HC3_PROFIL_IS_VALUE}" ]] then Error "Attention : profil actif = '${PROFIL}' différent de '${HC3_PROFIL_IS_VALUE}' => Pas de sauvegarde" Quit 9 fi if [[ ! -z "${HC3_PROFIL_NOT_VALUE}" && "${PROFIL}" == "${HC3_PROFIL_NOT_VALUE}" ]] then Error "Attention : profil actif = '${PROFIL}' identique à '${HC3_PROFIL_NOT_VALUE}' => Pas de sauvegarde" Quit 10 fi echo "Profil actif = '${PROFIL}' => Sauvegarde" else Error "Erreur : impossible de lire le profil actif : code de retour HTTP ${CODE}" "${JSON}" Quit 11 fi fi # Perform backup if [[ "${HC3_BACKUP_HISTORY}" == "YES" ]] then echo "Sauvegarde avec historique..." DATA='{"action":"create","params":{"type":"local","description":"Synology-Auto-Backup","skipHistoryData":false}}' else echo "Sauvegarde sans historique..." DATA='{"action":"create","params":{"type":"local","description":"Synology-Auto-Backup","skipHistoryData":true}}' fi OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --request POST --header "Authorization: Basic ${HC3_AUTHENTICATION}" --header "Content-Type: application/json" --data ${DATA} "http://${HC3_ADDRESS}/api/service/backups") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour lancer la sauvegarde" Quit 12 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" != "201" ] then Error "Erreur : impossible de créer la sauvegarde : code de retour HTTP ${CODE}" "${JSON}" Quit 13 fi # Wait during backup /bin/sleep 10 START_TIME=$(date +%s) while [ 1 ] do # Check Fibaro services restart OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --header "Authorization: Basic ${HC3_AUTHENTICATION}" "http://${HC3_ADDRESS}/api/service/servicesStatus") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour vérifier son statut" Quit 14 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then HCServer=$(echo "${JSON}" | /bin/jq '.HCServer.running') Zwave=$(echo "${JSON}" | /bin/jq '.Zwave.running') FibaroServices=$(echo "${JSON}" | /bin/jq '.FibaroServices.running') if [[ "${HCServer}" == "true" && "${Zwave}" == "true" && "${FibaroServices}" == "true" ]] then echo -e "\nSauvegarde terminée" break fi fi CURRENT_TIME=$(date +%s) if (( CURRENT_TIME-START_TIME >= ${TIMEOUT} )) then if [ "${CODE}" != "200" ] then REASON="Code de retour HTTP ${CODE}" elif [ "${HCServer}" != "true" ] then REASON="Service HCServer $(echo "${JSON}" | /bin/jq '.HCServer.status')" elif [ "${Zwave}" != "true" ] then REASON="Service Zwave $(echo "${JSON}" | /bin/jq '.Zwave.status')" elif [ "${FibaroServices}" != "true" ] then REASON="Service FibaroServices $(echo "${JSON}" | /bin/jq '.FibaroServices.status')" fi Error "Erreur : services Fibaro non redémarrés après le timeout de ${TIMEOUT} secondes : ${REASON}" # Force Reboot if [ "${FORCE_REBOOT}" == "Yes" ] then echo "Reboot forcé du Home Center..." OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --request POST --header "Authorization: Basic ${HC3_AUTHENTICATION}" "http://${HC3_ADDRESS}/api/service/reboot" --data '{}') if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour forcer le reboot" Quit 15 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then echo -e "Box Fibaro rebootée de force\n" Quit 16 else Error "Erreur : impossible de forcer le reboot de la box Fibaro : code de retour HTTP ${CODE}" "${JSON}" Quit 17 fi else echo -e "Pas de reboot forcé du Home Center\n" Quit 18 fi Quit 19 break fi echo -n "." /bin/sleep 1 done # Get name of last backup /bin/sleep 5 OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent "http://${HC3_ADDRESS}/api/service/backups") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour obtenir le dernier backup" Quit 20 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then localBackupPath=$(echo "${JSON}" | /bin/jq -r '.[0].localBackupPath') if [ "${localBackupPath}" == "" ] then Error "Erreur : localBackupPath est vide" Quit 21 fi filename=$(echo "${JSON}" | /bin/jq -r '.[0].uploadedBackup[-1].filename') if [ "${filename}" == "" ] then Error "Erreur : filename est vide" Quit 22 fi else Error "Erreur : impossible d'obtenir le dernier backup : code de retour HTTP ${CODE}" "${JSON}" Quit 23 fi # Get HC version OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --request GET "http://${HC3_ADDRESS}/api/settings/info") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour obtenir la version" fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then VERSION=$(echo "${JSON}" | /bin/jq -r ".currentVersion.version") TYPE=$(echo "${JSON}" | /bin/jq -r ".currentVersion.type") else Error "Erreur : impossible d'obtenir la version : code de retour HTTP ${CODE}" "${JSON}" fi # Download backup BASENAME="${filename%.*}" EXTENSION="${filename##*.}" FILENAME="${BASENAME}-${VERSION}-${TYPE}.${EXTENSION}" FILEPATH="${localBackupPath}${filename}" echo "Téléchargement de ${filename}..." OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --output "${FILENAME}" "http://${HC3_ADDRESS}${FILEPATH}") if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour télécharger le dernier backup" Quit 24 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then echo "Téléchargement terminé" else Error "Erreur : impossible de télécharger le dernier backup : code de retour HTTP ${CODE}" "${JSON}" Quit 25 fi # Clean Reboot if [ "${CLEAN_REBOOT}" == "Yes" ] then echo "Reboot du Home Center..." OUTPUT=$(/usr/bin/curl --write-out "HTTPSTATUS:%{http_code}" --silent --request POST --header "Authorization: Basic ${HC3_AUTHENTICATION}" "http://${HC3_ADDRESS}/api/service/reboot" --data '{}') if [ $? -ne 0 ] then Error "Erreur : impossible de se connecter au Home Center pour rebooter" Quit 26 fi JSON=$(echo "${OUTPUT}" | sed -e 's/HTTPSTATUS\:.*//g') CODE=$(echo "${OUTPUT}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') if [ "${CODE}" == "200" ] then echo -e "Box Fibaro rebootée\n" else Error "Erreur : impossible de rebooter la box Fibaro : code de retour HTTP ${CODE}" "${JSON}" Quit 27 fi else echo -e "Pas de reboot du Home Center\n" fi # Display date and time echo -e "Backup terminé avec succès : $(/bin/date +'%A %d/%m/%Y %H:%M:%S')\n" #Email "Sauvegarde Home Center terminée avec succès (${FILENAME})" Notification "Sauvegarde Home Center terminée avec succès (${FILENAME})" # Return code Quit 0
  7. Julien92130

    Sauvegarde HC3 automatique sur NAS Synology

    Salut, Désolé je n'ai pas le temps de regarder le détail, mais juste pour te confirmer que ça continue de fonctionner très bien chez moi. J'ai encore une sauvegarde qui s'est faite il y a quelques jours :
  8. Julien92130

    Capteurs Zwave pour plantes

    Très clair ! Tu utilises quoi comme électrovanne ? J'ai fait plusieurs essais aussi, jamais trouvé la solution vraiment idéale... Au final, j'ai pris un "Woox". Bizarrement, le truc fait un peu "cheap", mais ça fonctionne très très bien... Pas encore beaucoup de recul, mais pour le moment j'en suis plutôt satisfait. Au passage, très bon choix pour le bloodgood, perso je trouve que c'est le plus beau
  9. Julien92130

    Capteurs Zwave pour plantes

    Top, merci beaucoup pour le partage, c'est génial, je vais m'y mettre. J'ai essayé pleins de trucs mais j'ai jamais été satisfait. Il y a très longtemps, j'avais des "Koubachi". Très très chers, mais ça marchait au top. Depuis, je me suis fait une scène en LUA avec un mini "algorithme" qui me calcul le temps d'arrosage "idéal" en fonction de la saison, de la température, de l'humidité, de la pluie, etc... Mais avoir l'info qui remonte directement de la terre est le mieux Merci !
  10. Julien92130

    Capteurs Zwave pour plantes

    Merci pour l'info. Intéressant. Tu peux partager un lien vers les sondes? J'ai toujours eu du mal à comprendre le fonctionnement des Smart Implants, comment ils "interprètent" les valeurs qui remontent de tes sondes ?
  11. Julien92130

    Capteurs Zwave pour plantes

    Oui, il y a quelques jours. J'arrive à la connecter à la HC3 mais aucune config ne remonte dans la console. Rien. J'ai essayé plusieurs fois, sans succès.
  12. Julien92130

    Quick App - Présence UniFi

    Pas de soucis, merci pour ta réponse. Je ne jouais plus trop non plus avec la HC3 ces derniers temps car, finalement, tout fonctionnait au top. Mais là je déménage, donc je vais avoir un peu de boulot :)
  13. Julien92130

    Quick App - Présence UniFi

    Hello, Je n'arrive pas à faire fonctionner cette QA avec mon UDM-Pro (version SE). J'ai réussi à passer l'authentification en modifiant la fonction loginUnifi(), mais ensuite j'ai des erreur du type : checkMacUnifi() failed: "" Pour le test j'ai utilisé la MAC de mon Synology, donc je sais qu'il est bien sur le réseau... Une idée ?
  14. Julien92130

    Capteurs Zwave pour plantes

    C'est loin d'être impossible. C'est surtout pour valider le fonctionnement... Si je dois en commander plus, j'en prendrai sûrement ailleurs...
  15. Julien92130

    Capteurs Zwave pour plantes

    Pas de soucis, avec plaisir... Le temps que ça arrive de Chine. Il y a des promos intéressantes sur Aliexpress en ce moment pour info
×