Guest User

Domoticz - UPS on NAS monitoring

a guest
Jul 16th, 2015
497
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. #!/bin/bash
  2. # Settings
  3.  
  4. NASIP="<IP NAS>" # NAS IP Address
  5. PASSWORD="<SNMP password>" # SNMP Password
  6. DOMO_IP="<IP Domoticz>" # Domoticz IP Address
  7. DOMO_PORT="8080" # Domoticz Port
  8. DOMO_LOGIN="<Login>" # Domoticz login name
  9. DOMO_PASS="<Password>" # Domoticz password
  10. NAS_IDX="<NAS IDX>" # NAS Switch IDX
  11. NAS_UPS="<UPS IDX>" # UPS Status Switch IDX
  12.  
  13. # Check if NAS is online
  14. PINGTIME=`ping -c 1 -q $NASIP | awk -F"/" '{print $5}' | xargs`
  15. echo "Ping response:" $PINGTIME
  16. if expr "$PINGTIME" '>' 0
  17. then
  18. curl -s "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "On" > /dev/null
  19. if [ $? -eq 0 ] ; then
  20. echo "NAS already ON"
  21.  
  22. # Status UPS aangesloten op NAS
  23. NASUPS=`snmpget -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.6574.4.2.1.0`
  24. echo "UPS Status:" $NASUPS
  25. if [ "$NASUPS" = '"OL"' ] ; then
  26. # Send data
  27. curl -s "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_UPS" | grep "Status" | grep "On" > /dev/null
  28. if [ $? -eq 0 ] ; then
  29. #already on
  30. echo "UPS still runs on 230V power"
  31. :
  32. else
  33. #switch on
  34. curl -s -i -H "Accept: application/json" "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_UPS&switchcmd=On"
  35. echo "UPS runs on 230V power (again) and turn IDX 100 on"
  36. fi
  37. else
  38. curl -s "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_UPS" | grep "Status" | grep "Off" > /dev/null
  39. if [ $? -eq 0 ] ; then
  40. #already off
  41. echo "UPS runs on battery!"
  42. :
  43. else
  44. curl -s -i -H "Accept: application/json" "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_UPS&switchcmd=Off"
  45. fi
  46. fi
  47.  
  48. else
  49. echo "NAS turned ON"
  50. # Send data
  51. curl -s -i -H "Accept: application/json" "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=On"
  52.  
  53. # Status UPS
  54. NASUPS=`snmpget -v 2c -c $PASSWORD -O qv $NASIP .1.3.6.1.4.1.6574.4.2.1.0`
  55. echo "UPS Status:" $NASUPS
  56. if [ "$NASUPS" = '"OL"' ] ; then
  57. # Send data
  58. curl -s "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_UPS" | grep "Status" | grep "On" > /dev/null
  59. if [ $? -eq 0 ] ; then
  60. #already on
  61. echo "UPS still runs on 230V power"
  62. :
  63. else
  64. #switch on
  65. curl -s -i -H "Accept: application/json" "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_UPS&switchcmd=On"
  66. echo "UPS runs on 230V power (again)"
  67. fi
  68. else
  69. curl -s "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_UPS" | grep "Status" | grep "Off" > /dev/null
  70. if [ $? -eq 0 ] ; then
  71. #already off
  72. echo "UPS runs on battery!"
  73. :
  74. else
  75. curl -s -i -H "Accept: application/json" "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_UPS&switchcmd=Off"
  76. fi
  77. fi
  78.  
  79. fi
  80.  
  81. else
  82. curl -s "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$NAS_IDX" | grep "Status" | grep "Off" > /dev/null
  83. if [ $? -eq 0 ] ; then
  84. echo "NAS already OFF"
  85. exit
  86. else
  87. echo "NAS OFF"
  88. # Send data
  89. curl -s -i -H "Accept: application/json" "http://$DOMO_LOGIN:$DOMO_PASS@$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$NAS_IDX&switchcmd=Off"
  90. fi
  91. fi
Advertisement
Add Comment
Please, Sign In to add comment