Aller au contenu
JM13

Architecture Système : Exemple Appliqué À La Gestion De La Température D’Un Nas

Recommended Posts

N’étant pas un « codeur fou »   :)  mais un bon bricoleur passionné de domotique, je suis obligé  (on n'est jamais obligé mais c'est quand même plus facile :rolleyes: ) de m’appuyer sur les développements de mes collègues experts et en général de la communauté. Il se trouve que dans cette communauté (domotique pour Fibaro)  la liste est importante, de qualité et le nombre de brique de base pour développer des fonctions complexes est grande.

 

Quand je vois le nombre de nouveaux arrivants dans ce forum tous les jours, je me suis dit qu’un exemple pouvait aider.

 

Je n'expliquerais dans ce post uniquement les modifications principales de tous ces scripts (VD) car elles sont vraiment mineures.(même pour moi  :huh:)

 

 

L'objectif  : Mesurer la température du NAS, en suivre l’évolution (graphiques de la température), informer l’administrateur ( donc moi-même) soit pas SMS/PUSH, soit aussi par message TTS si l’administrateur est à  la maison.

 

 

Synoptique général :

 

BPMN  Model

 

Dans le synoptique, on voit les différents process tournant sur le NAS et le HC2. 
 

 A )La récupération de la Température

 

Le tuto source sur domotique info : http://domotique-info.fr/2014/06/choisir-baie-informatique-residentielle/ dans lequel on trouve le détail pour la gestion de la température au fin fond du post mais en résumé, avec le protocole SNMP il est possible de récupérer par exemple la température du NAS avec son HC2.

 

Je ne refais pas le tuto mais je souligne juste le fait qu'avec DSM5 on n'est pas obliger dans tous les cas de passer par des commandes en shell mais par les menus de DSM.

 

Exemples : Modifier les permissions du script avec PuTTY. Il est nécessaire d’autoriser le script à  être exécuté avec la commande :

chmod +x /volume1/mes_scripts/monitoring_ds_vers_hc.sh

On peut aussi le faire par le menu dans File Station. 

 

Autoraisation

 

A ce niveau le script doit pouvoir s'exécuter et on peut le vérifier par la commande suivante : (là  c'est plus facile par la commande)

sh /volume1/mes_scripts/monitoring_ds_vers_hc.sh
 

scripts Sh

 

Il faut ensuite puisque le script fonctionne le lancer de manière périodique  On peut utiliser le planificateur de taches de SYNOLOGY pour lancer les mises à  jour régulières (pas besoin de modifier le CRONTAB par l’éditeur vi). J'ai programmé facilement une mise à  jour toutes les heures.

 

 

 

Script Syno

 

 

Dernière étape : La création des variables globales sur le HC2 â€¦là  c’est facile  :)  et il simplement ne faut pas oublier.

 

B ) Dans le HC2 : Création d’un petit Virtual Device 

 

Le virtual device permet d'afficher la situation.

 

VD DS411

 
-- --------------------------------------------------------------------
-- Gestion de l'affichage dans le VD
-- 
-- --------------------------------------------------------------------

device_id = fibaro:getSelfId()

fibaro:log("...");
fibaro:sleep(10*1000);

fibaro:call(device_id, "setProperty", "ui.Label1.value",fibaro:getGlobalValue("DS411Temperature").." °C - ".." "..fibaro:getGlobalValue("DS411FanMode"));

fibaro:log("A "..fibaro:getGlobalValue("DS411Horodateur").." - Ventilation en "..fibaro:getGlobalValue("DS411FanMode"));
fibaro:sleep(10*1000);
J'aime bien voir un peu ce qui ce passe donc j'ai modifier un peu l'exemple pour que le log clignote (toutes les 10sec) et affiche la valeur. 
 
 

C) Dans le HC2 : Identification de l’adresse MAC de l’admin (Plugin Freebox)

 

Ce VD est très important car il va me permettre de maîtriser le WAF.

En effet, il faut, si on veut prévenir l’admin savoir s’il est à  la maison ou non. Cela ne sert à  rien de lancer un message TTS s’il n’est pas là  :rolleyes: â€¦et la petite famille ne fera rien sur le NAS en cas de température trop importante. Donc….l’identification de l’admin est nécessaire.

 

Dans le plugin FREEBOX,  les modifications sont mineures car il suffit d’ajouter les adresses MAC que l’on veut détecter puis ajouter les boutons dans le Virtual Device.

 

Freebox

 

Il faudra mettre à  jour  de manière régulières les variables globales crées qui représentent la présence (ou non) des personnes.

Pour moi  les Wifi_Device : WD_JM, WD_Nath, WD_Chloe, WD_Coralie 

 

 

D) Dans le HC2 : Graphiques (Plugin Graphiques)

 

Là  aussi, j’utilise un VD développé par la communauté (Merci Lazer) avec des modifications mineures.

Chaque fois que j’ajoute une variable globale â€œà  suivre†par ce module, je lui donne une valeur supérieure à  1000. Les valeurs inférieures à  1000 étant les devices réels

 

Ci-dessous les modifications du VD de Lazer

-- Température du NAS DS411+II
payload = "/Graphiques/data_post_temperature.php?id=1005&value=" .. fibaro:getGlobalValue("DS411Temperature")
fibaro:debug("Global variables NAS : "..payload)
response, status, errorCode = updatechart:GET(payload)

Résultat ci après :

 

Graphiques

 
 

On voit bien les différentes températures et aussi celle du NAS supérieure à  la température ambiante  :rolleyes: 

 

A ce niveau, j’ai donc les variables globales suivantes :

Wifi_Devices : WD_JM, WD_Nath, WD_Chloe, WD_Coralie (TRUE/FALSE) et DS411Temperature

 

 

E) Dans le HC2 : TTS avec le SONOS (Plugin SONOS)

 

Utilisation là  encore, du VD développé par Krikroff pour lancer le message adapté. Je ne détaille pas mais j’ai créé une série de messages mp3 stockés sur le NAS que je lance en lecture.

-- -----------------------------------------------------------------------------------------
-- Commande TTS pour le SONOS : PLAY du Salon
-- -----------------------------------------------------------------------------------------
if Num_Message ~= nil 
  then 
	fibaro:debug("Numero de message  : "..Num_Message)
	playFile("//"..IP_NAS.."/web/Sonos/audio/fr/TTS-MSG"..Num_Message..".mp3", tonumber(Volume_Message));
  else
  	playFile("//"..IP_NAS.."/web/Sonos/audio/fr/Sonnette.mp3", 40);
  end

Le nom des messages (fichiers) sont au format : MSG_TTSxx.mp3. Il ne me reste plus qu’à  passer le numéro du message à  lire.

 

F) Dans le HC2 : L’automatisation avec GEA

 

Pour finir, il ne me restait plus qu’à  â€œautomatiser tout ça en utilisant là  encore une scène (GEA) développée par Steven !

-- ======================================================================================================
-- VARIABLES GLOBALES utilisées dans GEA
-- ======================================================================================================

-- SONOS_Num_Message					-- Numéro du message à  envoyer en TTS
-- Presence_Salon					-- Flag pour un seul message TTS Arrosage
-- Presence_Entree					-- Flag pour gerer l'entrée et la sortie (Allumage lampe, messages d'accueil, ...)
-- Sortie						-- détecte si on rentre ou si on sort de la maison ("0", "1")
-- Welcome_JM						-- Flag pour un seul message TTS ("OK", "NOT_OK")
-- Welcome_Nath						-- Flag pour un seul message TTS ("OK", "NOT_OK")
-- Welcome_Chloe					-- Flag pour un seul message TTS ("OK", "NOT_OK")
-- Welcome_Coralie					-- Flag pour un seul message TTS ("OK", "NOT_OK")
-- Vacances						-- Pour ne pas lancer certaines actions pendant les vacances
-- Simulateur                                           -- Simulateur de présence

-- ======================================================================================================
-- ADMINISTRATION
-- ======================================================================================================
  
GEA.add({"Global", "", ""}, 3*30, "",			-- Mise à  jour des "Présences Maison" par détection d'adresses MAC
    {
    {"VirtualDevice", id["WIFI_DEVICE"], 14},
    {"VirtualDevice", id["WIFI_DEVICE"], 15},
    {"VirtualDevice", id["WIFI_DEVICE"], 16},
    {"VirtualDevice", id["WIFI_DEVICE"], 17},
    {"Repeat"}
    }) 

  
GEA.add({"Global", "", ""}, 5*60, "Température NAS trop importante",	-- Si Température NAS trop importante
    {
    {"If",
           {
	   {"Global+", "DS411Temperature", "42"},			-- Si la variable >42 
	   {"Global", "WD_JM", "TRUE"}				        -- Si c'est le Wifi Device de JM est détecté
	   }
    },            
    {"Global", "SONOS_Num_Message", "31"},				-- Température trop importante prévenir Admin
    {"VirtualDevice", id["SONOS"], 1},
    {"Repeat"}
    }) 

GEA.add({"Global", "", ""}, 5*60, "Température NAS trop importante",	-- Si Température NAS trop importante
    {
    {"If",
	   {
	   {"Global+", "DS411Temperature", "42"},			-- Si la variable >42 
	   {"Global", "WD_JM", "FALSE"}				        -- Si admin pas à  la maison
	   }
    },            
    {"VirtualDevice", id["PUSH"], 1},					-- Envoie confirmation par PUSH avec Live Notifier à  JM
    {"Repeat"}
    }) 

CONCLUSION :

 

 Avec une analyse rapide d'un besoin, on se rend compte que la plupart des fonctions existent déjà  et sont en grande partie, déjà  développées.Il ne reste plus qu'à ...faire l'architecture, choisir les bons modules en faire l'intégration dans son environnement et ...HOP :)  

 

Je ne revendique aucune paternité de quelques modules que ce soit…je voulais juste donner un exemple d’intégration dans un système domotique et je profite de l'occasion pour remercier une fois encore les auteurs (Krikroff, Steven, Lazer, etc...) pour leur modules et surtout pour le temps qu'ils passent à  répondre aux questions. :60:

 

 

  • Upvote 7

Partager ce message


Lien à poster
Partager sur d’autres sites

Ouh là, trop complexe pour moi un dimanche matin :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Joli travail :)

 

Suggestion ; ajoute les liens vers les topics respectifs de chaque module (GEA, Freebox, Sonos, Graphiques), ça aidera le nouveau venu qui ne connais pas (encore) le forum par coeur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as raison ...j'ai ajouté les liens !  :huh:

Partager ce message


Lien à poster
Partager sur d’autres sites

Une planification de tâche à5 minutes dans l'interface graphique de DSM ne fonctionne pas. Voilàpourquoi je n'ai pas fait cela dans mon tuto. Et une heure pour faire de la régulation d'extraction ça suffit pas du tout. sinon mon Synology s'éteindrait plusieurs fois par jour.

Sébastien Joly AKA CaptainIgloo

Partager ce message


Lien à poster
Partager sur d’autres sites

@JM13 Pas besoin de faire ceci ou cela ok, mais bon en fait vous ne connaissez ni les MIBs ni les Traps SNMP. Je trouve la pompe facile dans ce cadre. Il aurait été intéressant d'aller plus moi en développant les perspectives de gestion du raid, des disques, du réseau ...

Mais c'est pas grave.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sébastien, oui on sait que tu as fait un super tuto sur le choix et le monitoring d'une baie info ;)

Ici pour ceux qui n'auraient pas suivi : Choisir une baie informatique résidentielle

 

Mais pour prendre la défense de JM13, il voulait surtout montrer qu'on peut faire quelque chose de simple, rapidement, sans connaissance poussée, en réutilisant l'existant. Ce tuto n'a pas d'autre prétention je pense.

Tout le monde n'est pas informaticien et capable d'écrire des scripts LUA, Shell, d'utiliser vi, ou de naviguer dans un arbre SNMP. Au passage, utiliser le SNMP depuis la HC2, je n'ai encore vu personne réussir complètement (un sujet a été ouvert ici par darklite44 mais il n'a jamais terminé : Coder Un Paquet Snmp)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Christophe, c'est surtout pas besoin de vi pour programmer un crontab qui ne me plait pas. Si justement pour planification toutes les 5 minutes, donc mauvais départ :-) Car je ne comprends pas utilité d'une collecte par heure.

Sinon pour le post SNMP je l'ai suivi pendant un temps, mais encore une fois cela ne peut aller plus loin en raison des limitations Fibaro. Perso, j'ai arrêté de capitaliser les Devs sur le HC car c'est trop limité comparé au lua de la vera. Mais comme j'ai plus de vera, je mets en place mon système expert déporté (externalisé) sur un linux ouvert. Au moins si je change de contrôleur un jour, la migration sera plus simple.

Mais il me semblait qu'une spec SNMP devait venir dans la v4 ?

Sébastien Joly AKA CaptainIgloo

Partager ce message


Lien à poster
Partager sur d’autres sites

Outch @Sebastien, tu passes un mauvais weekend ou quoi ? Tu es bien remonté ou alors... Bon j'avoue que je peux comprendre sur certains points ☺ côté Fibaro et cest bien pour cela que mon prolian ne risque pas de prendre sa retraite 😆, pour JM13 @Christophe a raison.

SNMP je n'ai encore rien vu sur la bêta...

Envoyé de mon GT-P5210 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Vous avez raison sur la forme je suis pas bon et j'en suis désolé. Mais quitte àfaire un partage, il faut être précis. Mais il y a une autre méthode pour les personnes ne maîtrisant pas vi ou nano. Il faut utiliser le paquet CFE (ConfigEditor) et du coup modifier depuis le DSM les fichiers binaires sans casser l'encodage UTF8.

Tant qu'àfaire de la pédagogie c'est dans cette direction qu'il faut aller.

Par contre sur le fond une collecte par heure n'est pas pertinente je pense.

Sinon les gars, vous savez comment je suis. Tatillon et exigeant.

Pouf le relou le Seb.

Sinon je passe un bon WE estival ;p

Sent from my iPhone using Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

... Mais tes infos sont toujours pertinentes et pour la collecte par heure je pense que tu as raison ;).

 

:) une belle journée estivale oui même dans le nord.

 

JC.

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello CatpainIgloo,

 

Je crois en effet que tu as mal compris mon post. ;)

 

Petit rappel du contexte : Dans la plupart des blogs, on a affaire à  une petite communauté d'experts et de temps en temps, c'est tout simplement incompréhensible ou inutilisable pour le non-initié. Mon objectif n'était pas de faire le malin(j'ai cité toutes mes sources) mais simplement de partager ce que l'on peut faire sans grandes compétences particulaires. J'ai pris cet exemple mais j'en ai d'autres tout aussi intéressants (mais la j'attendrais que tu sois en vacances pour les poster :)

 

Que je te raconte un peu l'histoire 

 

Problème avec vi : 

Pour ton info, je n'ai pas utilisé vi depuis 25ans (et oui le temps passe) et même après qqles tests sur un autre fichier, je ne me suis pas senti assez à  l'aise pour taper dans un fichier qui peut certainement planter mon NAS !

J'ai eu qqles difficultés (à  part les commandes que j'ai finies par trouver sur le net) comme :

Quand je me connecte avec "admin" j'ai un shell(excuse moi si je me trompe un peu dans les termes) qui me permet de naviguer dans les répertories et j'arrive à  lire le fichier cron....à  l'éditer mais pas à  le sauvegarder.

Je découvre donc qu'il faudrait pour cela que je me connecte en "root"..j'y arrive et là  pouf! je dois avoir un autre shell (ou un problème ailleurs...j'en sais rien) car je n'arrive plus à  balader dans les répertoires...donc pas évident pour aller modifier un fichier.

 

Tu imagines la tête du débutant et les risques ?  :)  donc j'ai réfléchi, tourné en rond...

 

Surveillance de la température du NAS

En lisant les différentes infos sur différents blogs y compris Synology( tu as raison sur le fait que je ne connais pas MIB et SMNP mais je me soigne :) ...au moins j'essaye) j'ai découvert que SYNOLOGY mettait en sécurité ses NAS quand la température était trop élevée. Je t'avoue qu'à  l'heure où j’écris ces lignes je ne retrouve plus cette info dans la notice mais juste le lien vers le blog Synology.(mais je vais continuer à  investiguer pour confirmer)

 

DONC, j'ai pris l'hypothèse que si Synology éteignait en cas de surchauffe, ce qui me parait "normal" parce qu'ils font des produits de Qualité, je pouvais faire de la surveillance de manière différente.

 

Et à  bien y réfléchir augmenter la ventilation quand la température augmente sans connaitre la cause ...c'est prendre un risque. 

 

En effet, si c'est juste une surchauffe due à  une utilisation intensive ...la température est connue, augmentation lente...pas d'urgence majeure. Comme mon NAS est en zone fraîche chez moi...toutes les heures me parait suffisant (puisque protégé par la température max)..je peux donc connaitre les T° max et mettre mes alertes.

 

Par contre, si la surchauffe est due à  un problème électrique il vaut mieux éteindre que ventiler ;) et l'augmentation va être très rapide...même 5 minutes cela risque d'être trop long. Donc un détecteur de fumées et/ou température proche du NAS...avec coupure/extinction  du NAS sera préférable.

 

Tu vois donc que j'ai pris ton post comme base et j'ai essaye de faire qqle chose d'un peu différent....pas mieux mais différent. :rolleyes: 

J'ai fait la modif sans passer par vi et la config par "heure" étant possible par l'interface DSM ...j'avais réussi à  faire ce que je voulais !! (et j'en suis fier :rolleyes: )

 

 

Pour terminer, tu viens encore de parler Chinois et je vais chercher le paquet CFE pour voir ce que je peux en faire  :)

 

Je tenais quand même à  te remercier pour ton partage mais évite le Chinois, svp  :60: 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, je comprends le contexte. Il faut noter que l'article où tu as extrait une partie technique est àplusieurs niveaux et qu'habituellement sur les articles 100% technique, je positionne toujours le niveau de connaissances pré-requis. Pourquoi je dis cela ? Ben parce que j'ai pas mal l'habitude de voir des débutants s'embarquer sur des tutos de difficultés avancées alors que stipulé en intro. Il est évident qu'il n'est pas possible de vulgariser au maximum et que certains articles ferait plus de 20 pages si nous devions toujours simplifier.

Dans mon cas il est vrai que je fais des articles pour intermédiaire et avancé, mais rarement ou jamais pour les débutants.

Cependant, d'autres rédacteurs prennent cet espace pour des tutos plus simple pour débutant.

C'est la difficulté de s'adresser àune population de lecteurs hétérogènes en compétences.

Sent from my iPhone using Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah vous êtes réconciliés, cela aurait été idiot de perdre deux aussi bons contributeurs qui nous apprennent tant de chose dans des styles différents  :60:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah je dirai que c'est le principe de "Google est mon ami" non les gars ?

 

A l'époque, avant Internet, pour ce genre de point précis, il fallait acheter un bouquin, ce qui était un vrai frein, et coupait automatiquement l'accès aux débutants.

Aujourd'hui, avec Internet, tout est accessible pour tous, et du coup il n'y a plus de vrais débutants. Car on trouvera toujours un lien, un topic, un forum qui permettra de nous en sortir, débutant ou non.

 

Alors oui, bien sà»r, cela dérange du monde. Car les gens ne lisent plus les entêtes signalant que c'est difficile, et du coup viennent se plaindre que cela ne fonctionne pas. Mais ça, on ne pourra rien y faire, c'est la nature des Hommes.

 

Bref, je déblatère sans doute pour rien là , mais tout ça juste pour dire qu'il faut de tout : Des vrais techniciens, comme Captain, qui iront toujours au bout du bout, et s'en donneront les moyens, et d'autres, qui ne feront qu'une partie du chemin, et qui très souvent s'en satisferont tout à  fait.

 

EDIT : En partie grilled par PITP2, dans un autre style :)

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est certain. Ceci étant il faut aussi considérer qu'un article technique comme j'en fait souvent et très long àréaliser (10-15h), que bien souvent je refais 3 fois le synoptique avec un environnement clair et purgé. Au contraire l'environnement de l'utilisateur est déjàbancale.

Mais il faut aussi répondre au débutant qui n'ont pas conscience de cela, et offrir un support pour des personnes qui ne veulent pas apprendre les bases.

Je suis plutôt dans une approche pédagogique, mais je ne peux couvrir le spectre entier des niveaux de compétences.

Sent from my iPhone using Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ahh ça c'est clair, tu ne couvriras jamais tout le spectre. D'ailleurs certaines personnes sont plus fortes que tout le monde, et ne se laisseront du coup pas aider comme il se devrait. Pour ces personnes là, tu ne peux rien faire.

Partager ce message


Lien à poster
Partager sur d’autres sites

Réconcilié ? pas sur, pas sur  :)

 

J'ai retrouvé les références. Dans la notice de DSM4.1 page 162 il est dit :

 

The DiskStation's thermal status is represented by green or orange lights:
 Green: Thermal status is normal.
 Orange: DiskStation's thermal temperature is high. You need to cool down your DiskStation, or it will shut down to prevent system overheat.
 
Comme j'ai aussi le même menu avec DSM5 ...je suppose que la protection est toujours présente. Par contre, je ne trouve pas la valeur à  laquelle le NAS s’éteint.
 
C'est pour cela que j'ai pris l'hypothèse que toute les 5 minutes, ce n'était peut-être pas nécessaire (dans mon cas) et donc une valeur toutes les heures me permettrait d'avoir une idée de la plage de température du NAS et donc d'anticiper la dégradation d'un ventilateur...
 
 
Au fait, j'ai trouvé CFE, j'installe et teste ce weekend....et là , si je ne plante pas mon NAS ...je ne serais plus fâché  :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu ne trouveras pas de valeur seuil dans le manuel (générique). En effet, cela dépend de chaque modèle (Archi / Fan ou Fanless).

cependant, 1 degré au dessus du seuil sera suffisant pour déclencher le shutdown de sécurité. Il faut bien moins d'une heure pour passer 1° du seuil. Le risque est donc de voir son serveur s'arrêter inopinément et ne pas redémarrer ensuite. Si c'est un serveur sans services critiques la disponibilité n'est pas un problème. Dans mon cas, c'est absolument pas admissible (surveillance station, ma passerelle SMS et mon système d'IA domotique ...).

Sébastien Joly AKA CaptainIgloo

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

 

j'ai un petit souci avec mon Synology, DSM 5.2 Beta:

 

quand j'essais en SHH:

 

 

  1. sh /volume1/mes_scripts/monitoring_ds_vers_hc.sh

 

j'ai un erreur:

 

{"type":"ERROR","reason":"name","message":"No variable name in uri"}{"type":"ERROR","reason":"name","message":"No variable name in uri"}{"type":"ERROR","reason":"name","message":"No variable name in uri"}

 

avez-vous deja vu cette erreur?

 

quand je regarde les variables, j'ai ceci:

 

{"name":"DS413FanMode","value":"0","readOnly":false,"isEnum":false},{"name":"DS413Horodateur","value":"0","readOnly":false,"isEnum":false},{"name":"DS413Temperature","value":"0","readOnly":false,"isEnum":false}

 

mon fichier sh modifier sur le synology:

 

#!/bin/bash

DISKSTATION_NOM="DS413" # Cette valeur sera le préfixe de concaténation de vos variables globales dans le Homecenter
HOMECENTER_IP="192.168.0.115"
HOMECENTER_LOGIN="admin"
HOMECENTER_MDP="xxxxxxxx"
horodateur=`date '+%H:%M'`
TEMPSEUIL=44 # Mettre ici la température seuil de bascule High/low
echo $horodateur
curl --request PUT --data-ascii '{"name":"'$DISKSTATION_NOM'Horodateur","value":"'$horodateur'"}' --user $HOMECENTER_LOGIN:$HOMECENTER_MDP "http://$HOMECENTER_IP/api/globalVariables"
TemperatureDS=`snmpwalk -v 2c -c public -O qv  localhost 1.3.6.1.4.1.6574.1.2.0` #Trap correspondant à  la MIB Système Synology
 
#Mettre a jour la variable globale DISKSTATION_NOM+Temperature
 
curl --request PUT --data-ascii '{"name":"'$DISKSTATION_NOM'Temperature","value": "'$TemperatureDS'"}' --user $HOMECENTER_LOGIN:$HOMECENTER_MDP "http://$HOMECENTER_IP/api/globalVariables"
statut=`cat /etc/synoinfo.conf |grep 'fan_config_type_internal='`
 
if echo $statut | grep -qF high; then FanMode="high"; fi;
if echo $statut | grep -qF low; then FanMode="low"; fi;
if echo $statut | grep -qF low_stop; then FanMode="low_stop"; fi;
#echo $FanMode
 
# Si temperature > seuil basculer en mode high
if [  ${TemperatureDS} -gt ${TEMPSEUIL} ] #&&  $FanMode="low"
then
sed -i 's/\(fan_config_type_internal="'$FanMode'"\).*/\fan_config_type_internal="high"/' /etc/synoinfo.conf;
curl --request PUT --data-ascii '{"name":"'$DISKSTATION_NOM'FanMode","value": "Mode Frais"}' --user $HOMECENTER_LOGIN:$HOMECENTER_MDP "http://$HOMECENTER_IP/api/globalVariables";
fi
 
# Si temperature < ou = seuil basculer en mode low
if [ ${TemperatureDS} -le ${TEMPSEUIL} ] 
then
sed -i 's/\(fan_config_type_internal="'$FanMode'"\).*/\fan_config_type_internal="low"/' /etc/synoinfo.conf;
curl --request PUT --data-ascii '{"name":"'$DISKSTATION_NOM'FanMode","value": "Mode Calme"}' --user $HOMECENTER_LOGIN:$HOMECENTER_MDP "http://$HOMECENTER_IP/api/globalVariables";
 
fi
 

 

merci,

 

Patrick

Partager ce message


Lien à poster
Partager sur d’autres sites

Peux-tu nous montrer une copie d'écran de ce que tu as dans putty ?

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai réécrit le script parce que j'avais aussi des PB. Je le met àdisposition ce soir en rentrant. C'est la cmd curl qui posait problème. J'ai du reformuler en passant username/password dans l'adresse http, du genre http://user:pwd@....

Envoyé de mon iPad en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

@JM13: j'ai toujours la meme erreur, quand je change le ip ou l'info du login sa passe pas donc les paramètres semble bon.

 

je vais tester ce soir avec le script de @supermenteur ce soir.

 

merci beaucoup.

 

Patrick

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà  le Script

 

Il faut noter que mon DS212 ne connait que ash (pas de bash), qu'il n'a pas les variables systeme pour le mode Fan. et j'ai encore un probleme à  mettre une valeur Texte dans la variable DS212FanMode.

 

#!/bin/ash
DISKSTATION_NOM="DS212" # Cette valeur sera le préfixe de concaténation de vos variables globales dans le Homecenter
HOMECENTER_IP="192.168.1.xxx"
HOMECENTER_LOGIN="admin"
HOMECENTER_MDP="xxxxxxxx"
horodateur=`date '+%H:%M'`
TEMPSEUIL=44 # Mettre ici la température seuil de bascule High/low
 
ligne="http://$HOMECENTER_LOGIN:$HOMECENTER_MDP@$HOMECENTER_IP/api/globalVariables/DS212Horodateur"
valeur='{"value":"'$horodateur'"}'
curl -X PUT $ligne -d$valeur
echo \
 
TemperatureDS=`snmpwalk -v 2c -c public -O qv  192.168.1.71 1.3.6.1.4.1.6574.1.2.0` #Trap correspondant à  la MIB Système Synology
 
#Mettre a jour la variable globale DISKSTATION_NOM+Temperature
 
ligne="http://$HOMECENTER_LOGIN:$HOMECENTER_MDP@$HOMECENTER_IP/api/globalVariables/DS212Temperature"
valeur='{"value":"'$TemperatureDS'"}'
curl -X PUT $ligne -d$valeur
 
# Si temperature > seuil basculer en mode high
if [  ${TemperatureDS} -gt ${TEMPSEUIL} ]
then
        ligne="http://$HOMECENTER_LOGIN:$HOMECENTER_MDP@$HOMECENTER_IP/api/globalVariables/DS212FanMode"
 
        valeur='{"value":"Mode Frais"}'
        curl -X PUT $ligne -d$valeur
 
fi
 
# Si temperature < ou = seuil basculer en mode low
if [ ${TemperatureDS} -le ${TEMPSEUIL} ]
then
        ligne="http://$HOMECENTER_LOGIN:$HOMECENTER_MDP@$HOMECENTER_IP/api/globalVariables/DS212FanMode"
 
        valeur='{"value":"Mode Calme"}'
        curl -X PUT $ligne -d$valeur
 
 
fi

Partager ce message


Lien à poster
Partager sur d’autres sites

×