Sterowanie zadaniami CRON'a

p4sst00h
Posty: 14
Rejestracja: śr lut 10, 2016 7:57 pm

Witam,
w jaki sposób można sterować stanem przekaźnika z poziomu kodu?

Platforma: Raspberry
Cel: Dodanie polecenia do zadań CRONa żeby włączać/wyłączać lampkę.
Awatar użytkownika
pzygmunt
Posty: 18352
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Należałoby użyć linux-owego klienta supla-client z tym, że to rozwiązanie trochę na około ponieważ wysyła zapytanie do serwera, a serwer do
raspberry.

Można też zmienić stan portu poprzez
echo 1 > /sys/class/gpio/gpio27/value
echo 0 > /sys/class/gpio/gpio27value

Mankamentem tego rozwiązania jest to, że aplikacje klienckie nie otrzymają powiadomienia, że np światło zostało wyłączone przez co ikonki się nie zmienią.
Idealne rozwiązanie to wysłanie odpowiedniego komunikatu do demona supla-dev co po pierwsze bezpiecznie zmieni stan portu, a po drugie poinformuje serwer i aplikacje klienckie, że np światło zgasło. To jednak wymaga dodania do kodu małego API. Mogę coś takiego przygotować, ale niestety dopiero na przyszły tydzień.
p4sst00h
Posty: 14
Rejestracja: śr lut 10, 2016 7:57 pm

Wykorzystałem opcję zmiany stanu portu i w moim przypadku jest to wystarczające.

Dzięki za pomoc.
Awatar użytkownika
pzygmunt
Posty: 18352
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Tak czy inaczej jak znajdę trochę czasu to dodam takie małe API wraz z przykładem. Pozwoli to na
na sprawdzanie czy kron rzeczywiście wyłączył czy włączył oświetlenie.
p4sst00h
Posty: 14
Rejestracja: śr lut 10, 2016 7:57 pm

a jakbyś dodał jakiś "automat" sprawdzający stan wyjść i równocześnie uaktualniający co jakiś kwant czasu te informacje na serwerze?
Awatar użytkownika
pzygmunt
Posty: 18352
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Chodzi o to aby na serwerze była informacja czy światło jest włączone czy wyłączone ?
Jeżeli tak to wolę dodać API o którym pisałem wcześniej. Przygotuje gotowe rozwiązanie z przykładem z tym, że dopiero
początkiem przyszłego tygodnia.
p4sst00h
Posty: 14
Rejestracja: śr lut 10, 2016 7:57 pm

ok, cierpliwie czekam.
Pozdrawiam
Awatar użytkownika
pzygmunt
Posty: 18352
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

A więc tak.
Wszystko co trzeba zrobić to zalogować się przez ssh na uzytkownika "pi" i wykonać następujące polecenia:

cd
git clone https://github.com/SUPLA/raspberry
sudo /etc/init.d/supla-dev stop
sudo cp raspberry/ext01/usr/sbin/supla-dev /usr/sbin/
sudo /etc/init.d/supla-dev start
sudo cp raspberry/scripts/supla-dev-ctrl.php /usr/local/sbin/
rm -rf raspberry


Jeżeli nie ma zainastalowanego php to należy jeszcze wykonać:

sudo apt-get update
sudo apt-get install php5-cli

Teraz przykłady.

Odczytanie stanu kanału nr 7
php /usr/local/sbin/supla-dev-ctrl.php CHANNEL-GET-HIVALUE=7

Ustawienie stanu kanału nr 7 na wysoki
php /usr/local/sbin/supla-dev-ctrl.php CHANNEL-SET-HIVALUE=7 HI=1

Ustawienie stanu kanału nr 7 na niski
php /usr/local/sbin/supla-dev-ctrl.php CHANNEL-SET-HIVALUE=7 HI=0

Wystarczy dodać do CRON-a.
Daj znać jak poszło.
p4sst00h
Posty: 14
Rejestracja: śr lut 10, 2016 7:57 pm

Z tego co pamiętam - to nie mogę wykonać apt-get bo krzyczy jakimś błędem - tak jakby obraz maliny dostępny na supla.org był w jakimś stopniu uszkodzony.

Nie pamiętam niestety jaki to błąd - a nie mam w tej chwili do niej dostępu.
Awatar użytkownika
pzygmunt
Posty: 18352
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Potrzebuję dokładną informację jaki błąd się pojawia.
ODPOWIEDZ

Wróć do „Pomoc”