po.sh 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #!/bin/bash
  2. nomefileprogramma=$1
  3. #pompacirsterna, si riferisce alla sola pompa nella cisterna
  4. pompacisternasi=1
  5. pompacisterna=10
  6. #pompapozzo si riferisce alla pompa del pozzo
  7. pompapozzosi=1
  8. pompapozzo=11
  9. #valvolaingresso, che consente il caricamento della cisterna dalla linea
  10. # pubblica o dal pozzo se quest'ultimo viene avviato
  11. valvolaingresso=9
  12. etichettapozzo="~/script/pozzo"
  13. etichettairrigatore="~/script/irrigatore"
  14. data=$(date)
  15. log=$(mktemp)
  16. ###########################
  17. status() {
  18. echo "status porte" | tee -a ${log}
  19. raspi-gpio get 4,5,6,7,8,9,10,11 | tee -a ${log}
  20. }
  21. ###########################
  22. apri() {
  23. alinea=$1
  24. echo "Apro pin ${alinea}" | tee -a ${log}
  25. raspi-gpio get ${alinea}
  26. raspi-gpio set ${alinea} dl
  27. raspi-gpio get ${alinea}
  28. mosquitto_pub -h nuc1 -p 1883 -u sword -P "Abcd.1234" -t "Status" -m "{\"linea\":${alinea},\"status\":$(pinctrl lev ${alinea})}"
  29. }
  30. ###########################
  31. chiudi() {
  32. clinea=$1
  33. echo "Chiudo pin ${clinea}" | tee -a ${log}
  34. raspi-gpio get ${clinea}
  35. raspi-gpio set ${clinea} dh
  36. raspi-gpio get ${clinea}
  37. mosquitto_pub -h nuc1 -p 1883 -u sword -P "Abcd.1234" -t "Status" -m "{\"linea\":${clinea},\"status\":$(pinctrl lev ${clinea})}"
  38. }
  39. ##########################
  40. esecuzione() {
  41. o=$1
  42. linea=$2
  43. tempo=$3
  44. if [ __${tempo}__ == ____ ] ; then
  45. echo "non e' stato indicato il tempo, si va in automatico" | tee -a ${log}
  46. tempo=30s
  47. fi
  48. echo "#############################"
  49. echo "data : ${data}" |tee -a ${log}
  50. echo "rich : ${o}" |tee -a ${log}
  51. echo "linea: ${linea}" |tee -a ${log}
  52. echo "tempo: ${tempo}" |tee -a ${log}
  53. echo "" |tee -a ${log}
  54. if [ __${o}__ == __i__ ]; then
  55. echo "Richiesta attivazione irrigatore"
  56. # verifica la presenza del file "${etichettairrigatore}"
  57. if [ -f ${etichettairrigatore} ]; then
  58. echo "File 'irrigatore' presente" | tee -a ${log}
  59. echo "Apro linea ${linea} per ${tempo}" | tee -a ${log}
  60. apri ${linea}
  61. if [ ${pompacisternasi} == 1 ]; then
  62. echo "Accendo pompa ${pompacisterna}" | tee -a ${log}
  63. apri ${pompacisterna}
  64. fi
  65. mosquitto_pub -h nuc1 -p 1883 -u sword -P "Abcd.1234" -t "Status" -m "{\"tempo\":${pompa},\"status\":${tempo})}"
  66. sleep ${tempo}
  67. if [ ${pompacisternasi} == 1 ]; then
  68. echo "Spengo pompa ${pompacisterna}" | tee -a ${log}
  69. chiudi ${pompacisterna}
  70. fi
  71. echo "Chiudo linea ${linea}" | tee -a ${log}
  72. chiudi ${linea}
  73. else
  74. echo -e "Accensione linea ${linea} per ${tempo}\nDisattivata: manca file '${etichettairrigatore}'." | tee -a ${log}
  75. fi
  76. fi
  77. if [ __${o}__ == __p__ ]; then
  78. echo "Richiesta attivazione pozzo"
  79. if [ -f ${etichettapozzo} ]; then
  80. echo "File '${etichettapozzo}' presente" |tee -a ${log}
  81. echo "Apro valvola ${valvolaingresso}" |tee -a ${log}
  82. apri ${valvolaingresso}
  83. if [ ${pompapozzosi} == 1 ]; then
  84. echo "Accendo pompa ${pompapozzo}" |tee -a ${log}
  85. apri ${pompapozzo}
  86. fi
  87. mosquitto_pub -h nuc1 -p 1883 -u sword -P "Abcd.1234" -t "Status" -m "{\"tempo\":${pompa},\"status\":${tempo})}"
  88. sleep ${tempo}
  89. if [ ${pompapozzosi} == 1 ]; then
  90. echo "Spengo pompa ${pompapozzo}" |tee -a ${log}
  91. chiudi ${pompapozzo}
  92. fi
  93. echo "Chiudo valvola ${linea}" |tee -a ${log}
  94. chiudi ${valvolaingresso}
  95. else
  96. echo -e "Accensione pompa pozzo ${pompapozzo} per ${tempo}\nDisattivata: manca file '${etichettapozzo}'." |tee -a ${log}
  97. fi
  98. fi
  99. #dl lo attiva
  100. #dh lo disattiva
  101. #op abilita la linea
  102. }
  103. ############################################
  104. if [ __${nomefileprogramma}__ == ____ ]; then
  105. nomefileprogramma="programma.txt"
  106. echo "nome file non indicato, inserito default ${nomefileprogramma}" | tee -a ${log}
  107. fi
  108. echo "Lettura file ${nomefileprogramma}" | tee -a ${log}
  109. if [ ! -f ${nomefileprogramma} ]; then
  110. echo "il file con la programmazione '${nomefileprogramma}' non esiste" | tee -a ${log}
  111. exit 99
  112. fi
  113. status
  114. while read -u 10 -r o l t; do
  115. echo $o $l $t
  116. esecuzione $o $l $t
  117. sleep 5
  118. done 10<${nomefileprogramma}
  119. status
  120. cat ${log} | mail -s "${data}: linea ${linea} per ${tempo}" root
  121. rm ${log}
  122. ###########################