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ę.
Sterowanie zadaniami CRON'a
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
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ń.
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
Wykorzystałem opcję zmiany stanu portu i w moim przypadku jest to wystarczające.
Dzięki za pomoc.
Dzięki za pomoc.
-
p4sst00h
- Posts: 14
- Joined: Wed Feb 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?
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
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.
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.
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
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.
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
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.
Nie pamiętam niestety jaki to błąd - a nie mam w tej chwili do niej dostępu.
