Edit Home History Pages Access Login

Poročanje o izpadih 220V napajanja

 

 - z optosklopnikom - modul z AliExpressa:
  https://vi.aliexpress.com/item/32809745991.html
- na malino, gpio18
- bash skripta vsaki dve sekundi preveri pin18 in pošlje (za Kuk):
  1 izpad elektrike: https://net.hamradio.si/220v?callsign=S55YGV&event=220v&value=Off
  0 vklop elektrike: https://net.hamradio.si/220v?callsign=S55YGV&event=220v&value=On

 

Skripta 220v.sh, ki teče na RPi in poroča o izpadih: (zamenjaj 'znakmanjse' s tem znakom)

#!/bin/bash
# Porocanje o izpadih 220v na streznik net.hamradio.si

# vec na https://net.hamradio.si/wiki/izpadi-220v

CALLSIGN=S55YKB        #klicni znak vozlisca
LOCATION=Kuk           #lokacija vozlisca
SERVER=net.hamradio.si #kamor posljemo obvestilo o dogodku
PIN=18                 # pin na RPi, kjer je prikljucen detektor izpadov 220v

echo "Porocanje o izpadih 220V"
#   Exports pin to userspace
if [ ! -d /sys/class/gpio/gpio${PIN} ]; then
 sudo echo "${PIN}" > /sys/class/gpio/export
fi
# Sets pin as an input
sudo echo "in" > /sys/class/gpio/gpio${PIN}/direction
# Reads pin state: 0 = 220V present, 1=off
previous="$(znakmanjse/sys/class/gpio/gpio"${PIN}"/value)"
url="https://"${SERVER}"/220v?callsign="${CALLSIGN}"&location="${LOCATION}"&event=220V"
declare -i pingtime=0
sleep 10     # da se omrezje zares vzpostavi
wget -q ${url}"&value=Monitoring" # porocaj o zacetku spremljanja

while true; do
 pvalue="$(${PIN}"/value)"
 if
[ ${pvalue} -ne ${previous} ]; then
   if [ 1 == ${pvalue} ]; then    # izpad 220V
     echo "Izpad 220V"
     wget -q ${url}"&value=Off"
   else # 220v nazaj
     echo "220v nazaj"
     wget -q ${url}"&value=On"
   fi
   previous=${pvalue}
 fi
 sleep 2
  pingtime=pingtime+2
 if [ 60 == ${pingtime} ]; then    # obcasen ping
   echo "Ping"
   wget -q ${url}"&value=Ping"
   pingtime=0
 fi

done

 

Skripto registriramo, da se požene ob zagonu maline:


  - sudo nano /lib/systemd/system/monitor-220v.service

    (ustrezno popravi pot do skripte)


[Unit]
Description=Monitoring 220v
After=network.target

[Service]
User=root
ExecStart=/home/s57nk/220v.sh

[Install]
WantedBy=multi-user.target