Synology-Forum.nl

Tweaks / Addons A.K.A. The Underground => Overige mods => Topic gestart door: mvveelen op 21 januari 2016, 10:55:37

Titel: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 10:55:37
Hoi,

ik wil de temperatuur van alle 4 HDD's kunnen uitlezen van m'n DS414 via de CLI
In de webgui zit ik de temperaturen van alle schijven, maar via de CLI lukt het me niet. Voorheen had ik 2 schijven (niet in RAID) en kon ik ze apart uitlezen mbv smartctl -A /dev/hda1 bijvoorbeeld. Maar nu het RAID10 is, kan ik niet hda1 meer gebruiken. Ik zou dan bijv. smartctl -A /dev/sg3 moeten gebruiken denk ik, maar dan klopt het nog niet, want sg0 t/m 4 levert maar 2 waardes op die overeenkomen met de waardes die in de webgui te vinden zijn. Ik denk daarom dat ik de verkeerde HDD's aanspreek.
Hoe lees ik uit welke schijven ik moet selecteren in deze regel? Is daar een eenvoudige manier voor?

Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Goner op 21 januari 2016, 11:14:14
Tsja, eenvoudig ... ?
Als je ipkg hebt, kun je zo te zien met smartmontools allerlei info opvragen.

http://www.tumfatig.net/20120426/monitor-synology-disk-temperature-from-snmp/
http://ikeke.free.fr/syno/
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 11:18:31
Nee, dat heb ik niet. Ik hoopte het met smartctl te kunnen doen?

Edit:

DiskStation> smartctl --scan
/dev/hda -d ata # /dev/hda, ATA device
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device
/dev/sdc -d scsi # /dev/sdc, SCSI device
/dev/sdd -d scsi # /dev/sdd, SCSI device

/dev/hda zou de USB aangesloten drive moeten zijn en de andere 4 de interne schijven.

smartctl -A /dev/sda = niet gevonden
smartctl -A /dev/sdb = disk 2 (Seagate)
smartctl -A /dev/sdc = niet gevonden
smartctl -A /dev/sdd = disk 4 (Seagate)

De 2 disks die ik niet kan vinden zijn Wester Digital schijven.
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 13:39:42
Dit soort zaken monitoren kan ook via SNMP... Zelf heb ik dat in gebruik met Domoticz. Zo kan ik van mijn beide Syno's uitlezen wat de disktemperatuur is; het processor- en geheugengebruik en het schijfgebruik. Maar je kan als je wilt nog veel meer zaken op deze wijze aan je systeem ontfutselen...

Zie de Synology MIB guide (http://global.download.synology.com/download/Document/MIBGuide/Synology_DiskStation_MIB_Guide.pdf) of de Domomoticz wiki (http://www.domoticz.com/wiki/NAS_Monitoring) en het Domoticz forum (https://www.domoticz.com/forum/viewtopic.php?f=17&t=1379&sid=ef74378f8b6bc1ee90625fcd15237c49)...
En als je bij Google op 'synology mib' zoekt kom je nog wel meer tegen....

Als teaser een paar plaatjes:
[attach=1]

[attach=2]

Succes!
Wizjos
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 13:43:33
Hoi, dan heb ik jouw reactie op het Domoticz / Tweakers forum wel voorbij zien komen :)

Ik wil alleen niet teveel 'rommelen' aan de Syno om dit voor elkaar te krijgen. Het blijkt dat ik met smartctl alles kan uitlezen, maar de 2 Western Digital RED schijven hadden S.M.A.R.T. uit staan. Bij 1 van de 2 heb ik dat aan kunnen zetten, maar de 2e pakt dat (nog) niet. Ik vermoed dat dit te maken heeft met het feit dat die schijf nu nog gecontroleerd wordt na een plotselinge shutdown. Misschien kan ik het erna wel activeren en kan ik ze alle 4 uitlezen?

Ziet er goed uit wat je daar hebt, maar zoals gezegd wil ik eigenlijk geen andere tools via de CLI hoeven te installeren.
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 13:51:32
zoals gezegd wil ik eigenlijk geen andere tools via de CLI hoeven te installeren.
Prima, suit yourself. Maar wellicht is het voor anderen juist wel weer iets interessants/een uitdaging. Voor mijzelf geldt dat ik Domoticz toch al in gebruik heb (package op Syno) voor de automatisering van mijn huis. Dan is dit er een leuke en waardevolle aanvulling op ;)
Veel commandline heb ik er in ieder geval niet voor hoeven gebruiken. Domoticz dus al helemaal niet. Enkel een aantal shell scripts in /volume1/@appstore/domoticz/scripts hoeven plaatsen (hetgeen bv. met WinSCP een eitje is).
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 13:53:12
Kun je me uitleggen wat ervoor nodig is precies?

Ik draai Domoticz ook al enige tijd op m'n DS414 (Jumbotroll package) en wat moet ik precies voor scripts plaatsen / aanpassen?

Edit:

SNMP heb ik aangezet, maar wat moet ik precies daarna doen? Er wordt in de tutorial gesproken over snmp/snmpd installeren op een RPi, maar ik wil dit dus zonder RPi willen kunnen. Tips?

Trouwens, ook heel interessant dat je PS uitgelezen wordt. Heb je daar ook een tutorial voor hoe dat te doen is? Als ik dan toch bezig ben :)
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 15:03:00
Feitelijk is er niet zo heel veel nodig. Zie vooral de genoemde Domoticz wiki. Daar staat een sectie over Synology in.
't Komt er op neer dat je SNMP moet activeren (Configuratiescherm > Terminal en SNMP).
Hier SNMP service inschakelen en SNMPv1,SNMPv2c service beide aanvinken en in 'gemeenschap' een code zetten (bv test). Deze code wordt later gebruikt in het ophaalcommando voor de SNMP data (dat commando ziet er bv. zo uit: snmpwalk -v 2c -c test -O qv 192.168.131.100 .1.3.6.1.4.1.6574.2.1.1.6.0)

Op de domoticz-wiki pagina zie je ook een uitleesscript staan met de nodige uitvragingen.
Dit script heb ik her en der wat aangepast naar eigen behoefte en geplaatst in de map /volume1/@appstore/domoticz/scripts.

Vervolgens laat ik via een cronjob (taakplanner) eens in de zoveel minuten dit script lopen. De data wordt uitgelezen en Domoticz in geslingerd.

Da's feitelijk alles ;D
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 15:08:45
Doh..... ::)

Ik heb dat aangevinkt en het commando snmpwalk -v 2c -c test -O qv 192.168.0.124 .1.3.6.1.4.1.6574.2.1.1.6.0 geeft bij mij als resultaat: 31

Volgende stap is dus het script. Al ben ik wel ERG benieuwd naar jouw script omdat jij ook de PS er in hebt verwerkt? Kun / wil je dat script delen?

Ga ik nu eerst met het script van de wiki aan de slag. Thanks !
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 15:17:05
Nou vooruit dan... ;D Hier is het script:
#!/bin/bash
 
 # Settings
 
 NASIP="192.168.0.1"         # NAS IP Address
 PASSWORD="test"             # SNMP Password
 DOMO_IP="192.168.0.2"       # Domoticz IP Address
 DOMO_PORT="8084"            # Domoticz Port
 NAS_IDX="32"                # NAS Switch IDX
 NAS_HD1_TEMP_IDX="31"       # NAS HD1 Temp IDX
 NAS_HD2_TEMP_IDX="30"       # NAS HD2 Temp IDX
 NAS_HD3_TEMP_IDX="43"       # NAS HD3 Temp IDX
 NAS_HD4_TEMP_IDX="44"       # NAS HD4 Temp IDX
 NAS_HD5_TEMP_IDX="45"       # NAS HD5 Temp IDX
 NAS_HD_SPACE_IDX="42"       # NAS HD Space IDX in Gb
 NAS_HD_SPACE_PERC_IDX="38"  # NAS HD Space IDX in %
 NAS_CPU_IDX="39"            # NAS CPU IDX
 NAS_MEM_IDX="40"            # NAS MEM IDX
 
 echo $(date) "DiskStation retrieve starting" >> /var/log/cron.log
 
 # Check if NAS in online
 
 PINGTIME=`ping -c 1 -q $NASIP | awk -F"/" '{print $5}' | xargs`
 
 echo $PINGTIME
 if expr "$PINGTIME" '>' 0
 then
   curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "On" > /dev/null
 
       if [ $? -eq 0 ] ; then
        echo "NAS is ON"
 
        # Temperature HD1
        HD1temp=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.0`
        echo "HD1 tempeature:" $HD1temp
echo "Sending data to device#:" $NAS_HD1_TEMP_IDX

        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD1_TEMP_IDX&nvalue=0&svalue=$HD1temp"
echo "Data sent"
 
        # Temperature HD2
        HD2temp=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.1`
        echo "HD2 tempeature:" $HD2temp

        # Send data
echo "Sending data to device#:" $NAS_HD2_TEMP_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD2_TEMP_IDX&nvalue=0&svalue=$HD2temp"
echo "Data sent"
 
        # Temperature HD3
        HD3temp=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.2`
        echo "HD3 tempeature:" $HD3temp

        # Send data
echo "Sending data to device#:" $NAS_HD3_TEMP_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD3_TEMP_IDX&nvalue=0&svalue=$HD3temp"
echo "Data sent"

        # Temperature HD4
        HD4temp=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.3`
        echo "HD4 tempeature:" $HD4temp

        # Send data
echo "Sending data to device#:" $NAS_HD4_TEMP_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD4_TEMP_IDX&nvalue=0&svalue=$HD4temp"
echo "Data sent"

        # Temperature HD5
        HD5temp=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.4`
        echo "HD5 tempeature:" $HD5temp

        # Send data
echo "Sending data to device#:" $NAS_HD5_TEMP_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD5_TEMP_IDX&nvalue=0&svalue=$HD5temp"
echo "Data sent"

        # Free space volume in Gb
        tmpHDUnit=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.4.40` # Change OID to .38 on DSM 5.1
        # 40 needs to be set for a DS1513; 38 works on a DS214Play
        echo "HDUnit:" $tmpHDUnit
        HDUnit=${tmpHDUnit%% *}
        HDTotal=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.5.40` # Change OID to .38 on DSM 5.1
        # 40 needs to be set for a DS1513; 38 works on a DS214Play
        echo "HDTotal:" $HDTotal
        HDUsed=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.6.40`  # Change OID to .38 on DSM 5.1
        # 40 needs to be set for a DS1513; 38 works on a DS214Play
        echo "HDUsed:" $HDUsed
        HDFree=$((($HDTotal - $HDUsed) * $HDUnit / 1024 / 1024 / 1024))
        echo $HDFree

        # Send data
echo "Sending data to device#:" $NAS_HD_SPACE_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_IDX&nvalue=0&svalue=$HDFree"
echo "Data sent"

        # Free space volume in percent
        HDTotal=`snmpwalk -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.5.40` # Change OID to .38 on DSM 5.1
        # 40 needs to be set for a DS1513; 38 works on a DS214Play
echo "HDTotal:" $HDTotal
        HDUsed=`snmpwalk -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.6.40`  # Change OID to .38 on DSM 5.1
        # 40 needs to be set for a DS1513; 38 works on a DS214Play
echo "HDUsed:" $HDUsed
HDFreePerc=$((($HDUsed * 100) / $HDTotal))
echo "HDFreePerc:" $HDFreePerc

        # Send data
echo "Sending data to device#:" $NAS_HD_SPACE_PERC_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_PERC_IDX&nvalue=0&svalue=$HDFreePerc"
echo "Data sent"

# CPU utilisation
        CpuUser=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.2021.11.9.0`
echo "CpuUser:" $CpuUser
CpuSystem=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.2021.11.10.0`
echo "CpuSystem:" $CpuSystem
CpuUse=$(($CpuUser + $CpuSystem))
echo "CpuUse:" $CpuUse

        # Send data
echo "Sending data to device#:" $NAS_CPU_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_CPU_IDX&nvalue=0&svalue=$CpuUse"
echo "Data sent"
 
         # Free Memory Available in %
tmpMemAvailable=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.2021.4.6.0`
echo "MemAvailable:" $tmpMemAvailable
        MemAvailable=${tmpMemAvailable%% *}
        MemAvailableinMb=$(($MemAvailable / 1024))
echo "MemAvailableinMb:" $MemAvailableinMb
MemUsepercent=$((($MemAvailableinMb * 100) / 1024))
echo "MemUsepercent:" $MemUsepercent

        # Send data
echo "Sending data to device#:" $NAS_MEM_IDX
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_MEM_IDX&nvalue=0&svalue=$MemUsepercent"
echo "Data sent"


        fi

 else
        curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "Off" > /dev/null
        if [ $? -eq 0 ] ; then
                echo "NAS is OFF"
                exit
        else
                echo "NAS OFF"
                # Send data
                curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=Off"
        fi
fi
 echo $(date) "DiskStation retrieve finished" >> /var/log/cron.log

Succes!
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 15:30:23
Ik ga ermee aan de slag.

Voor de temperatuur maak ik virtuele devices aan (temperatuur), wat doe ik voor de andere devices?

Wat is de NAS switch IDX, heb jij er een schakelaar tussen? Of is dit ook een virtuele switch?

Enneh....je PS, heb je dat in een apart script :) ?
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 15:40:31
Het zijn bij mij allemaal virtuele devices:
[attach=1]

De NAS-'switch' is ook virtueel (bij schakelaar Lighting 1, X10). Ik vond het echter niet zo nodig om die check in mijn script te hebben (mijn Syno's staan 24/7 aan), dus dat deel heb ik er uit gesloopt. Het script op de wiki pagina heeft die check nog wel. Mijn beide Syno switches staan dus gewoon (handmatig) altijd op 'aan'...

Ik hoop dat je daar weer verder mee komt...
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 15:45:22
I wish.....heb de virtuele switches aangemaakt (heeft inderdaad geen zin om de status van de NAS op te vragen als het script op de NAS zelf draait, hehehehe).

Alleen als ik het script test nadat ik hem executable heb gemaakt dmv.

sh nas.sh

dan krijg ik:

DiskStation> sh nas.sh
0.190 ms
1

Maar wordt er geen enkele switch geüpdate. Ik heb user/pass toegevoegd en dit ook in het script veranderd zodat de JSON regels deze info meenemen, maar er vindt geen update plaats. Van geen enkele switch helaas.
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 15:52:01
...dan sneuvel je in het stukje
if expr "$PINGTIME" '>' 0
 then
   curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "On" > /dev/null
 
       if [ $? -eq 0 ] ; then
Dit stukje checkt of je NAS aan staat...
Als je de check uitcommentarieert (met een # voor aan de regel) (dus#        if [ $? -eq 0 ] ; then) en ook de endif (fi) aan het einde, dan zou het wel moeten werken...
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 15:58:48
Ik dacht dat die check klopte omdat hij zichzelf altijd wel kon pingen. Inderdaad. de temperatuur van de HDD's zijn geüpdate.

Alleen de Memory, CPU, HDD space in GB en HDD space in % werken niet. Ik heb de juiste IDX gebruikt, maar misschien heb ik de verkeerde versie virtuele switches gebruikt? Heb je nog een tip voor me om dat stukje ook nog voor elkaar te boksen ?

Ik krijg de volgende output als ik sh nas.sh doe:

OK
Update device

enz.

en dan:

Data sent
HDUnit: No Such Instance currently exists at this OID
HDTotal: No Such Instance currently exists at this OID
HDUsed: No Such Instance currently exists at this OID
nas.sh: line 87: syntax error: (No Such Instance currently exists at this OID - No Such Instance currently exists at this OID) * No / 1024 / 1024 / 1024



Edit: nevermind. Ik moest het OID van 40 naar 38 veranderen :)

Edit 2: alleen blijft de vraag: hoe heb jij die virtuele devices toegevoegd zodat je ook de waarden in GB kunt weergeven enz. ?
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 16:18:01
ad edit2:
Ik heb dus een virtueel device aangemaakt van het type Teller (Counter). Vervolgens bij apparaten de teller een naam gegeven en aangegeven dat 'ie actief is. Dan zie ik 'm als kWh meter onder 'overige apparaten'... Daar klik ik op aanpassen en geef aan dat het een gewone teller is. Dan rekent 'ie niet meer met een bepaalde eenheid, maar laat gewoon het getal zien.
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 16:26:44
Ah, ik had er al 1 op die manier gedaan. Nu de andere ook. Gelukt allemaal ! Blij mee :)

Ehm.....de PS lees je uit met een ander script die je ergens hebt liggen  :geek: ? Geen must hoor, maar zou wel geinig zijn. Al staat de PS meestal wel uit. Misschien kan ik ervan leren om bijvoorbeeld ook m'n mediaspeler uit te lezen..... :)
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 16:41:32
De tweede syno lees ik met een kopie van hetzelfde script uit (alleen even de parameters, zoals ip adres en het aantal uit te lezen schijven aanpassen). Onder een andere naam opslaan en vervolgens ook dit script schedulen...
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 16:52:34
Nee, ik bedoel niet je 2e Syno, ik bedoel je Playstation. Die lees je ook uit zo te zien?

Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 16:57:01
Gefopt :lol:
Mijn 2e Syno (een 214Play) heet PlayStation, maar is het niet ;D

Mijn excuses voor de vage naam... Heb zelf geen playstation, zou dus niet weten of zoiets ook kan (lijkt me een aardige voor een playstation forum)  ;)
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: mvveelen op 21 januari 2016, 16:59:13
* proest *

 :lol:

Thanks in ieder geval voor deze oplossing(en).
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 21 januari 2016, 17:58:19
Graag gedaan! Veel plezier er mee/van  :D
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Martijn85 op 24 januari 2016, 23:33:01
Dit soort zaken monitoren kan ook via SNMP... Zelf heb ik dat in gebruik met Domoticz.

Ik ben inmiddels ook bezig met Domoticz alleen krijg ik de Memory useage in % niet werken. Meerder snmp commando`s geprobeerd maar helaas wil deze niet updaten.

Kun je aangeven welke snmpwalk/snmget je hiervoor gebruikt @wizjos ?
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Stephan296 op 24 januari 2016, 23:44:36
Krijg je wel een waarde maar niet in % of helemaal geen waarde?
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: wizjos op 25 januari 2016, 00:17:28
welke snmpwalk/snmget je hiervoor gebruikt @wizjos ?
@Martijn85: Ik gebruik hiervoor de volgende commando's
        # Free space volume in percent
        HDTotal=`snmpwalk -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.5.40` # Change OID to .38 on DSM 5.1
echo "HDTotal:" $HDTotal
        HDUsed=`snmpwalk -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.6.40`  # Change OID to .38 on DSM 5.1
echo "HDUsed:" $HDUsed
HDFreePerc=$((($HDUsed * 100) / $HDTotal))
echo "HDFreePerc:" $HDFreePerc

        # Send data
echo "Sending data to device#:" $NAS_HD_SPACE_PERC_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_PERC_IDX&nvalue=0&svalue=$HDFreePerc"
echo "Data sent"

# CPU utilisation
        CpuUser=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.2021.11.9.0`
echo "CpuUser:" $CpuUser
CpuSystem=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.2021.11.10.0`
echo "CpuSystem:" $CpuSystem
CpuUse=$(($CpuUser + $CpuSystem))
echo "CpuUse:" $CpuUse

        # Send data
echo "Sending data to device#:" $NAS_CPU_IDX
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_CPU_IDX&nvalue=0&svalue=$CpuUse"
echo "Data sent"
 
         # Free Memory Available in %
tmpMemAvailable=`snmpwalk -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.2021.4.6.0`
echo "MemAvailable:" $tmpMemAvailable
        MemAvailable=${tmpMemAvailable%% *}
        MemAvailableinMb=$(($MemAvailable / 1024))
echo "MemAvailableinMb:" $MemAvailableinMb
MemUsepercent=$((($MemAvailableinMb * 100) / 1024))
echo "MemUsepercent:" $MemUsepercent

        # Send data
echo "Sending data to device#:" $NAS_MEM_IDX
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_MEM_IDX&nvalue=0&svalue=$MemUsepercent"
echo "Data sent"
Waarbij ik moet opmerken dat er blijkbaar onderlinge verschillen zijn tussen de diverse modellen in het laatste deel van de parameter (40, 38,36). Ik heb zelf een MIB uitlezer gedownload. Weet zo even niet welke. Zal ik nog eens nakijken. Anyway, die gaf zo'n hoeveelheid data (zinvol, zowel als onzinnig/nietszeggend), dat dat toch een goudmijntje is.... Al doende kwam ik er op deze wijze achter dat dit voor mijn 1513 de juiste waarden zijn. Voor een andere DS gelden wellicht weer andere, maar naastgelegen waarden :|

Ik hoop dat je hiermee verder kunt...
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Martijn85 op 25 januari 2016, 09:05:19
Bedankt @wizjos dit is wat ik zocht! Hij geeft nu netjes een waarde i.p.v. een foutmelding.

Voor het browsen van snmp gebruik ik zelf  ireasoning MIB browser, het is soms even zoeken naar de juiste waardes maar kan hier aardig mee uit de voeten.
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Martijn85 op 25 januari 2016, 21:52:42
Inmiddels heb de code iets aangepast omdat de percentage niet goed werkt weergegeven. Bij mij werkt het onderstaande goed met het geheugen (in %):

       # Free Memory Used in %
       tmpMemAvailable=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.6.0`
   MemAvailable=${tmpMemAvailable%% *}
       tmpMemtotal=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.5.0`
   Memtotal=${tmpMemtotal%% *}
       tmpMemShared=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.13.0`
   MemShared=${tmpMemShared%% *}
       tmpMemBuffer=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.14.0`
   MemBuffer=${tmpMemBuffer%% *}
       tmpMemCached=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.15.0`
   MemCached=${tmpMemCached%% *}
       MemFREE=$(($MemAvailable + $MemShared + $MemBuffer + $MemCached))
       MemUsepercent=$(((($Memtotal - $MemFREE) * 100) / $Memtotal))
   #// For Available use MemUsepercent=$(((($MemFREE) * 100) / $Memtotal))    
       # Send data
       curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_MEM_IDX&nvalue=0&svalue=$MemUsepercent"
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Erwin1 op 12 januari 2018, 14:32:49
Hier loopt het scriptje toch niet helemaal zoals gewenst, ik krijg de volgende foutmelding

getaddrinfo: qv Name or service not known
snmpwalk: Unknown host (qv)
getaddrinfo: qv Name or service not known
snmpwalk: Unknown host (qv)
getaddrinfo: qv Name or service not known
snmpwalk: Unknown host (qv)
getaddrinfo: qv Name or service not known
snmpwalk: Unknown host (qv)
getaddrinfo: qv Name or service not known
snmpwalk: Unknown host (qv)
nas.sh: regel 74: +  +  + : syntaxfout: operator verwacht (het onjuiste symbool is "+ ")

Kan iemand me hier mee helpen?
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Birdy op 12 januari 2018, 14:40:38
Denk dat je beter even het gehele script hier gaat plaatsen, die je gebruikt.
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: Erwin1 op 12 januari 2018, 14:58:44
#!/bin/bash
 
 # Settings
 
 NASIP="192.168.0.1"             # NAS IP Address
 PASSWORD="WACHTWOORD"         # SNMP Password
 DOMO_IP="192.168.0.2"           # Domoticz IP Address
 DOMO_PORT="8080"            # Domoticz Port
 NAS_IDX="110"                 # NAS Switch IDX
 NAS_HD1_TEMP_IDX="111"        # NAS HD1 Temp IDX
 NAS_HD2_TEMP_IDX="112"        # NAS HD2 Temp IDX
 NAS_HD_SPACE_IDX="200"        # NAS HD Space IDX in Go
 NAS_HD_SPACE_PERC_IDX="198"   # NAS HD Space IDX in %
 NAS_CPU_IDX="114"             # NAS CPU IDX
 NAS_MEM_IDX="113"             # NAS MEM IDX
 
 
 # Check if NAS in online
 
 PINGTIME=`ping -c 1 -q $NASIP | awk -F"/" '{print $5}' | xargs`
 
 echo $PINGTIME
 if expr "$PINGTIME" '>' 0
 then
   curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "On" > /dev/null
 
       if [ $? -eq 0 ] ; then
        echo "NAS already ON"
       
        # Temperature HD1
        HDtemp1=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.0`
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD1_TEMP_IDX&nvalue=0&svalue=$HDtemp1"
 
        # Temperature HD2
        HDtemp2=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.1`
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD2_TEMP_IDX&nvalue=0&svalue=$HDtemp2"
 
        # Free space volume in Go
        HDUnit=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.4.41`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDTotal=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.5.41` # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDUsed=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.6.41`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDFree=$((($HDTotal - $HDUsed) * $HDUnit / 1024 / 1024 / 1024))
 
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_IDX&nvalue=0&svalue=$HDFree"

        # Free space volume in percent
        HDTotal=`snmpget -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.5.41` # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDUsed=`snmpget -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.6.41`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
      HDFreePerc=$((($HDUsed * 100) / $HDTotal))
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_PERC_IDX&nvalue=0&svalue=$HDFreePerc"

# CPU utilisation
        CpuUser=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.2021.11.9.0`
CpuSystem=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.2021.11.10.0`
CpuUse=$(($CpuUser + $CpuSystem))
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_CPU_IDX&nvalue=0&svalue=$CpuUse"

# Free Memory Used in %
       tmpMemAvailable=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.6.0`
   MemAvailable=${tmpMemAvailable%% *}
       tmpMemtotal=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.5.0`
   Memtotal=${tmpMemtotal%% *}
       tmpMemShared=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.13.0`
   MemShared=${tmpMemShared%% *}
       tmpMemBuffer=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.14.0`
   MemBuffer=${tmpMemBuffer%% *}
       tmpMemCached=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.15.0`
   MemCached=${tmpMemCached%% *}
       MemFREE=$(($MemAvailable + $MemShared + $MemBuffer + $MemCached))
       MemUsepercent=$(((($Memtotal - $MemFREE) * 100) / $Memtotal))
   #// For Available use MemUsepercent=$(((($MemFREE) * 100) / $Memtotal))    
       # Send data
       curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_MEM_IDX&nvalue=0&svalue=$MemUsepercent"     

else
        echo "NAS ON"
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=On"
 
        # Temperature HD1
        HDtemp1=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.0`
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD1_TEMP_IDX&nvalue=0&svalue=$HDtemp1"
 
        # Temperature HD2
        HDtemp2=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.1`
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD2_TEMP_IDX&nvalue=0&svalue=$HDtemp2"
 
        # Free space volume in Go
        HDUnit=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.4.41`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDTotal=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.5.41` # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDUsed=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.6.41`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDFree=$((($HDTotal - $HDUsed) * $HDUnit / 1024 / 1024 / 1024))
 
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_IDX&nvalue=0&svalue=$HDFree"

        # Free space volume in percent
        HDTotal=`snmpget -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.5.41` # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
        HDUsed=`snmpget -c $PASSWORD -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.6.41`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+
      HDFreePerc=$((($HDUsed * 100) / $HDTotal))
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_PERC_IDX&nvalue=0&svalue=$HDFreePerc"
 
# CPU utilisation
        CpuUser=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.2021.11.9.0`
CpuSystem=`snmpget -v 2c -c $PASSWORD -O qv $NASIP 1.3.6.1.4.1.2021.11.10.0`
CpuUse=$(($CpuUser + $CpuSystem))
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_CPU_IDX&nvalue=0&svalue=$CpuUse"

# Free Memory Used in %
       tmpMemAvailable=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.6.0`
   MemAvailable=${tmpMemAvailable%% *}
       tmpMemtotal=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.5.0`
   Memtotal=${tmpMemtotal%% *}
       tmpMemShared=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.13.0`
   MemShared=${tmpMemShared%% *}
       tmpMemBuffer=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.14.0`
   MemBuffer=${tmpMemBuffer%% *}
       tmpMemCached=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.15.0`
   MemCached=${tmpMemCached%% *}
       MemFREE=$(($MemAvailable + $MemShared + $MemBuffer + $MemCached))
       MemUsepercent=$(((($Memtotal - $MemFREE) * 100) / $Memtotal))
   #// For Available use MemUsepercent=$(((($MemFREE) * 100) / $Memtotal))    
       # Send data
       curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_MEM_IDX&nvalue=0&svalue=$MemUsepercent"

      fi
 
 else
        curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "Off" > /dev/null
        if [ $? -eq 0 ] ; then
                echo "NAS already OFF"
                exit
        else
                echo "NAS OFF"
                # Send data
                curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=Off"
        fi
 fi
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: ikrudolf op 19 maart 2018, 15:52:05
Ik snap geloof ik niet hoe ik die virtuele devices aan moet maken? En hoe ik deze dan kan linken aan het script die draait op mijn Synology?

Edit: Inmiddels duidelijk. 1x dummy aanmaken en dan via Setup > Hardware klikken op Create Virtual Sensors
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: String op 23 januari 2019, 10:36:09
Ik heb het script iets aangepast. Nu werkt het op mijn DS216+II met DSM 6.2  8)

Het script met uitbreiding om de status van de HDDs uit telezen en te rapporteren:

Let op: Creëer 2 extra virtuele sensors type Tekst, en verander de IDX variabelen zorgvuldig, nadat je de virtuele sensoren hebt toegevoegd !!!!

HDD Status (1=Normal, 2=Initialized,3=NotInitialized,4=SystempartitionFailed,5=crashed)

Maak voor de zekerheid een backup van de database

#!/bin/bash
 
 # Settings
 
 NASIP="<IP adres SYNOLOGY server"         # NAS IP Address WOLFSNAS02
 COMMUNITY="<Community String>"           # SNMP Password/Community
 DOMO_IP="<IP adres DOMOTICZ server"       # Domoticz IP Address (rasp2b001)
 DOMO_PORT="<Domoticz poortnummer"              # Domoticz Port
 NAS_IDX="310"                 # NAS Switch IDX
 NAS_HD1_TEMP_IDX="319"        # NAS HD1 Temp IDX
 NAS_HD2_TEMP_IDX="320"        # NAS HD2 Temp IDX
 NAS_HD_SPACE_IDX="318"        # NAS HD Space IDX in Go
 NAS_HD_SPACE_PERC_IDX="317"   # NAS HD Space IDX in %
 NAS_CPU_IDX="315"             # NAS CPU IDX
 NAS_MEM_IDX="316"             # NAS MEM IDX
 NAS_HD1_STATUS_IDX="326"    # NAS HD1 Status
 NAS_HD2_STATUS_IDX="327"    # NAS HD2 Status
 
 
 # Check if NAS in online
 
 PINGTIME=`ping -c 1 -q $NASIP | awk -F"/" '{print $5}' | xargs`
 
 echo $PINGTIME
 if expr "$PINGTIME" '>' 0
 then
curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "On" > /dev/null
 
if [ $? -eq 0 ] ; then
        echo "NAS already ON"
else
        echo "NAS ON"
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=On"
fi

   
# Temperature HD1
HDtemp1=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.0`
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD1_TEMP_IDX&nvalue=0&svalue=$HDtemp1"

# Temperature HD2
HDtemp2=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.6.1`
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD2_TEMP_IDX&nvalue=0&svalue=$HDtemp2"

# Status HD1
HDStatus1=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.5.0`


case $HDStatus1 in
1) HDStatus1_txt="The_disk_is_funcioning_normally"
;;
2) HDStatus1_txt="The_disk_has_system_partitions_but_no_data"
;;
3) HDStatus1_txt="Disk_is_not_partitioned"
;;
4) HDStatus1_txt="Partitions_on_the_disk_are_damaged"
;;
5) HDStatus1_txt="The_disk_is_damaged"
;;
*) HDStatus1_txt="Unknown_status"
;;
esac


# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD1_STATUS_IDX&nvalue=0&svalue=$HDStatus1_txt"

# Status HD2
HDStatus2=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.6574.2.1.1.5.1`
# Send data

case $HDStatus2 in
1) HDStatus2_txt="The_disk_is_funcioning_normally"
;;
2) HDStatus2_txt="The_disk_has_system_partitions_but_no_data"
;;
3) HDStatus2_txt="Disk_is_not_partitioned"
;;
4) HDStatus2_txt="Partitions_on_the_disk_are_damaged"
;;
5) HDStatus2_txt="The_disk_is_damaged"
;;
*) HDStatus2_txt="Unknown_status"
;;
esac

curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD2_STATUS_IDX&nvalue=0&svalue=$HDStatus2_txt"

# Free space volume in Go
HDUnit=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.4.51`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+, .51 on DSM 6.2
HDTotal=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.5.51` # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+, .51 on DSM 6.2
HDUsed=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.2.1.25.2.3.1.6.51`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+, .51 on DSM 6.2
HDFree=$((($HDTotal - $HDUsed) * $HDUnit / 1024 / 1024 / 1024))

# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_IDX&nvalue=0&svalue=$HDFree"

# Free space volume in percent
HDTotal=`snmpget -c $COMMUNITY -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.5.51` # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+, .51 on DSM 6.2
HDUsed=`snmpget -c $COMMUNITY -v2c -O qv $NASIP .1.3.6.1.2.1.25.2.3.1.6.51`  # Change OID to .38 on DSM 5.1 or .41 on DSM 6.0+, .51 on DSM 6.2
HDFreePerc=$((($HDUsed * 100) / $HDTotal))
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_HD_SPACE_PERC_IDX&nvalue=0&svalue=$HDFreePerc"

# CPU utilisation
CpuUser=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.11.9.0`
CpuSystem=`snmpget -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.11.10.0`
CpuUse=$(($CpuUser + $CpuSystem))
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_CPU_IDX&nvalue=0&svalue=$CpuUse"

# Free Memory Used in %
tmpMemAvailable=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.6.0`
MemAvailable=${tmpMemAvailable%% *}
tmpMemtotal=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.5.0`
Memtotal=${tmpMemtotal%% *}
tmpMemShared=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.13.0`
MemShared=${tmpMemShared%% *}
tmpMemBuffer=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.14.0`
MemBuffer=${tmpMemBuffer%% *}
tmpMemCached=`snmpwalk -v 2c -c $COMMUNITY -O qv $NASIP 1.3.6.1.4.1.2021.4.15.0`
MemCached=${tmpMemCached%% *}
MemFREE=$(($MemAvailable + $MemShared + $MemBuffer + $MemCached))
MemUsepercent=$(((($Memtotal - $MemFREE) * 100) / $Memtotal))
#// For Available use MemUsepercent=$(((($MemFREE) * 100) / $Memtotal))    
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=$NAS_MEM_IDX&nvalue=0&svalue=$MemUsepercent"     

 
else
# Ping deed het niet
curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "Off" > /dev/null
if [ $? -eq 0 ] ; then
echo "NAS already OFF"
exit
else
echo "NAS OFF"
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=Off"
fi
 fi
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: svdhaar op 12 april 2020, 08:42:12
Beetje late reactie, maar hopelijk leest iemand het nog :-)
Ben ook een beetje aan rommelen en zodra ik het script uitvoer (via putty) krijg ik o.a. deze log:
De info haalt ie dus op, maar het wegschrijven naar domotics sensor geeft unauthorized.

ahaaa! heb ondertussen al gevonden waarom het fout gaat.

Ik heb username / pwd aan staan in domoticz. Zodra ik het uit zet, dan wordt de data doorgegeven.
iemand een idee hoe dit incl. username - pwd werkend te krijgen?


Nevermind.. is een domoticz settings kwestie
Titel: Re: Temperatuur HDD's uitlezen
Bericht door: svdhaar op 12 april 2020, 11:10:50
Het zijn bij mij allemaal virtuele devices:
(Link naar bijlage)

De NAS-'switch' is ook virtueel (bij schakelaar Lighting 1, X10). Ik vond het echter niet zo nodig om die check in mijn script te hebben (mijn Syno's staan 24/7 aan), dus dat deel heb ik er uit gesloopt. Het script op de wiki pagina heeft die check nog wel. Mijn beide Syno switches staan dus gewoon (handmatig) altijd op 'aan'...

Ik hoop dat je daar weer verder mee komt...


Hoe heb je het device met als type rfx meter toegevoegd??
Ik krijg dat niet voor elkaar.