Sterowanie zadaniami CRON'a

p4sst00h
Posts: 14
Joined: Wed Feb 10, 2016 7:57 pm

Post

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ę.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

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ń.
SUPLA.... Nareszcie w domu.
p4sst00h
Posts: 14
Joined: Wed Feb 10, 2016 7:57 pm

Post

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

Dzięki za pomoc.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

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.
SUPLA.... Nareszcie w domu.
p4sst00h
Posts: 14
Joined: Wed Feb 10, 2016 7:57 pm

Post

a jakbyś dodał jakiś "automat" sprawdzający stan wyjść i równocześnie uaktualniający co jakiś kwant czasu te informacje na serwerze?
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

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.
SUPLA.... Nareszcie w domu.
p4sst00h
Posts: 14
Joined: Wed Feb 10, 2016 7:57 pm

Post

ok, cierpliwie czekam.
Pozdrawiam
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

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.
SUPLA.... Nareszcie w domu.
p4sst00h
Posts: 14
Joined: Wed Feb 10, 2016 7:57 pm

Post

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.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Potrzebuję dokładną informację jaki błąd się pojawia.
SUPLA.... Nareszcie w domu.

Return to “Pomoc”