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
- sudo chmod 755 /lib/systemd/system/monitor-220v.service
- sudo ln -s /lib/systemd/system/monitor-220v.service /etc/systemd/system/monitor-220v.service
- sudo systemctl enable monitor-220v.service
- sudo systemctl daemon-reload
- sudo systemctl start monitor-220v.service
- sudo systemctl status monitor-220v.service