Odp: RUT 955 OFW pakiety
Powyższy skrypt działa szybko ale z jakiegoś powodu ubija router
A jak go uruchamiasz? Bo powinieneś jako
skrypt &
w /etc/rc.local
A nie /etc/init.d/
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Inne → RUT 955 OFW pakiety
Strony Poprzednia 1 2 3 4 5 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Powyższy skrypt działa szybko ale z jakiegoś powodu ubija router
A jak go uruchamiasz? Bo powinieneś jako
skrypt &
w /etc/rc.local
A nie /etc/init.d/
No tak go uruchamiam. Tak wygląda u mnie /etc/rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
echo "507" > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio507/direction
/bin/din1.sh
exit 0
gdzie din1.sh to co wcześniej wkleiłem
Nie, nie uruchamiasz. Brakuje ci & na końcu.
echo "507" > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio507/direction
/bin/din1.sh &
exit 0Tak ma być.
Lepiej by było chyba użyć tej paczki: https://github.com/jefferyto/openwrt-slide-switch
Tylko to wymaga zmiany w dts: https://github.com/openwrt/openwrt/blob … v1.dts#L61
Dziękuję Cezary teraz działa luksusowo nic się nie wiesza i konsola po wydaniu reboot rebotuje ruta.
Cezary a jak zmodyfikować ten wcześniejszy skrypt czyli ten:
#!/bin/sh
while true; do
sleep 1;
if [ $(cat /sys/class/gpio/gpio507/value) = "0" ]; then
echo 1 > /sys/class/gpio/gpio505/value
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
else
echo 0 > /sys/class/gpio/gpio505/value
fi
done
tak aby nie wysyłał mi maila co 1 sekundę (no bo na pinach jest zwarte 1 z 6) tylko wtedy jeśli znowu stan zmieni się z 0 na 1 (czyli rozwarcie styków i ponowne zwarcie). Dasz przykład lub modyfikacje powyższego?
coś w rodzaju zapamiętania stanu
#!/bin/sh
cat /sys/class/gpio/gpio507/value > /tmp/stan
while true; do
sleep 1;
NEW=$(cat /sys/class/gpio/gpio507/value)
OLD=$(cat /tmp/stan)
if [ $OLD = "0" && $NEW = "1" ]; then
echo 1 > /sys/class/gpio/gpio505/value
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
fi
echo $NEW > /tmp/stan
doneCoś go boli:
root@OpenWrt:~# /bin/powiadomienie_mail.sh
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
sh: missing ]
if [ $OLD = "0" ] && [ $NEW = "1" ]; then
Ok teraz bez błędu ale nadal wysyła maila jeden po drugim dopóki nie rozewrę styków ![]()
Nie moze przecież, bo status poprzedniego masz zachowany a ten się nie zmienia. Zrób debug tego i zobacz co jest źle
Jak zrobić debug?
Nawet próbowałęm zrobić delikatną modyfikacje Twojego ale i tak śle maila. Moja modyfikacja i na dole odczyty na bieżąco zwarcie pinów to -1 i potem różnica logiczna rozwarcia czyli 0
#!/bin/sh
cat /sys/class/gpio/gpio507/value > /tmp/stan
while true; do
sleep 1;
NEW=$(cat /sys/class/gpio/gpio507/value)
OLD=$(cat /tmp/stan)
let result=NEW-OLD
echo $result
if [ $result = "-1" ] ; then
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
echo 1 > /sys/class/gpio/gpio505/value
else
echo 0 > /sys/class/gpio/gpio505/value
fi
echo $NEW > /tmp/stan
done
i
root@RUT_36_OpenWrt:~# /bin/powiadomienie_mail.sh
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
^C
root@RUT_36_OpenWrt:~#
Moment. Po co tam jest robione echo 1 w to gpio?
można to wylić/ To po prostu test żeby oprócz maila włączał się też przekaźnik. Załóżmy, że jest bez tego czyli:
#!/bin/sh
cat /sys/class/gpio/gpio507/value > /tmp/stan
while true; do
sleep 1;
NEW=$(cat /sys/class/gpio/gpio507/value)
OLD=$(cat /tmp/stan)
let result=NEW-OLD
echo $result
if [ $result = "-1" ] ; then
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
fi
echo $NEW > /tmp/stan
done
Nie rozumiem, czemu
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
wykonuje się do momentu rozwarcia...
#!/bin/sh
set -x
cat /sys/class/gpio/gpio507/value > /tmp/stan
while true; do
sleep 1;
NEW=$(cat /sys/class/gpio/gpio507/value)
OLD=$(cat /tmp/stan)
if [ $OLD = "0" ] && [ $NEW = "1" ]; then
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
fi
echo $NEW > /tmp/stan
doneZrób takie skypt. wykonaj i pokaż co wyszło jak w trakcie działa stykasz styki, czekasz te 5s i je rozwierasz.
Wysłał 5 maili podczas działania tego Twojego skryptu do momentu przerwania oto logi:
root@RUT_36_OpenWrt:~# /bin/powiadomienie_mail.sh
+ cat /sys/class/gpio/gpio507/value
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=0
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 0 '=' 1 ]
+ echo 0
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=0
+ '[' 0 '=' 0 ]
+ '[' 1 '=' 1 ]
+ + catmsmtp /etc/powiadomienie_mail/mail.txt -t
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
+ cat /sys/class/gpio/gpio507/value
+ NEW=1
+ cat /tmp/stan
+ OLD=1
+ '[' 1 '=' 0 ]
+ echo 1
+ true
+ sleep 1
^C
root@RUT_36_OpenWrt:~#
W skrypcie jak pokazałeś jest tylko jedno wysłanie mejla. To co ci wysłało pozostałe 4 mejle?
No RUT wysłał mi 4 maila. Może catmsmtp /etc/powiadomienie_mail/mail.txt -t coś źle działa
Ale jak w konsoli daję tylko to:
cat /etc/powiadomienie_mail/mail.txt | msmtp -t
To przychodzi na pocztę 1 mail
A jak powyższa komenda jest w skrypcie to kilka ![]()
Czasami nie masz w tle uruchomionego starego skryptu który robi to samo?
No to by mi słał cały czas a teraz dopóki w konsoli nie odpalę nie śle ![]()
Pobawię się jeszcze wg Twego poradnika send mail może ten będzie działał dobrze
Ok znalazłem przyczynę. Faktycznie kumpel coś testował i jakieś maile szły. Po ubiciu procesu działa prawidłowo. Dziękuję Cezary
No sam zrobiłeś debug i było jedno wywołania do mejla...
Masz w mejlach czasy wysyłania? Zobacz czy takie same czy co 1s czy jak jeszcze.
Już działa ok wyżej napisałem.
Cezary a jest może jakiś pakiet który umożliwiłby mi kopiowanie plików np. zwykłego pliku txt na komputer po sambie użytkownikiem o danej nazwie i hasłem najlepiej poleceniem wydanym w konsoli
smbclient miało kopiowanie plików. A czy działa na openwrt to już musisz sprawdzić.
Strony Poprzednia 1 2 3 4 5 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Inne → RUT 955 OFW pakiety
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc