Dzięki za sugestie. Na razie zostawiamy sensor o nazwie "Supla::Sensor::Binary". Do tego dodana została klasa "Supla::Sensor::NormallyOpen" aby bardziej korelowała z tym co jest dotychczas w Supli (kanał nazwya się SENSOR_NO i sformułowania "normalnie otwarty" pojawiają się w cloud). Oba sensory są w zasadzie identycznie i można używać tego co komu bardziej do gustu pasuje.
Aktualizacja SuplaDevice
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Najlepsze suple dla Twojego domu 
-
alankedzior
- Posts: 114
- Joined: Mon Jun 18, 2018 5:38 pm
Możecie podać jakies życiowe przykłady zastosowania relay, virtualrelay, binary sensor ?klew wrote: Tue Feb 11, 2020 9:27 am Na moim branchu pojawiły się pierwsze przekaźniki "po nowemu".
Jak na razie jest element Relay i VirtualRelay.
Relay pozwala na sterowanie dowolnym przekaźnikiem (włączanym stanem wysokim lub niskim).
VirtualRelay to wirtualny przekaźnik, który nie operauje na fizycznych GPIO, tylko pamięta swój stan w zmiennej.
Aby używać, trzeba dodać include:i w setup dodać:Code: Select all
#include <supla/control/virtual_relay.h> #include <supla/control/relay.h>Jeśli ktoś chce sterować przekaźnikiem także z programu, to trzeba sobie zapisać wskaźnik do niego do jakiejś zmiennej, np.:Code: Select all
new Supla::Control::Relay(PIN1); // przekaźnik załączany stanem wysokim new Supla::Control::Relay(PIN2, false); // przekaźnik załączany stanem niskim new Supla::Control::VirtualRelay(); // wirtualny przekaźnik niepowiązany ze sprzętemMetody do sterowania przekaźnikiem to turnOn, turnOff, toggle. Odczyt stanu przez metodę "isOn()" (https://github.com/klew/arduino/blob/21 ... .h#L72-L99)Code: Select all
// zmienna globalna Supla::Control:Relay *mojPrzekaźnik = nullptr; ... // w setup: mojPrzekaznik = new Supla::Control::Relay(PIN1);
W następnej kolejności dodam jeszcze przekaźnik bistabilny (taki, do którego podajemy impuls, aby go załączyć i impuls, aby go wyłączyć, a stan czytamy z innego GPIO). Po przekaźnikach kolej na długo wyczekiwany button![]()
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Relay to przekaźnik. Możesz go używać do włączania/wyłączania światła, prądu w gniazdku, możesz otworzyć bramę, furtkę, etc.alankedzior wrote: Sun Feb 16, 2020 9:16 pm Możecie podać jakies życiowe przykłady zastosowania relay, virtualrelay, binary sensor ?
Czujnik Binary to odpowiednik "Sensor NO" z wcześniejszej wersji. Jest to po porstu kanał, który czyta stan logiczny z określonego GPIO i status przekazuje do serwera Supli. Możesz go używać do informowania o tym, czy drzwi są otwarte, czy jest poczta w skrzynce na listy itd.
VirtualRelay - to kanał, który dla Supli (cloud, aplikacja na telefonie) zachowuje się jak zwykły przekaźnik, który można włączyć i wyłączyć. Natomiast fizycznie na urządzeniu ,nie jest powiązany z GPIO, tylko zmienną w pamięci. Jest to często obejście ograniczeń Supli - np. tego typu rozwiązanie jest używane w Primary GUI thermostat - w którym kanał tego typu jest używany do modyfikacji nastaw termostatu.
Najlepsze suple dla Twojego domu 
-
alankedzior
- Posts: 114
- Joined: Mon Jun 18, 2018 5:38 pm
Czyli dodawanie dotychczasowe przekaźnikówklew wrote: Sun Feb 16, 2020 10:15 pmRelay to przekaźnik. Możesz go używać do włączania/wyłączania światła, prądu w gniazdku, możesz otworzyć bramę, furtkę, etc.alankedzior wrote: Sun Feb 16, 2020 9:16 pm Możecie podać jakies życiowe przykłady zastosowania relay, virtualrelay, binary sensor ?
Czujnik Binary to odpowiednik "Sensor NO" z wcześniejszej wersji. Jest to po porstu kanał, który czyta stan logiczny z określonego GPIO i status przekazuje do serwera Supli. Możesz go używać do informowania o tym, czy drzwi są otwarte, czy jest poczta w skrzynce na listy itd.
VirtualRelay - to kanał, który dla Supli (cloud, aplikacja na telefonie) zachowuje się jak zwykły przekaźnik, który można włączyć i wyłączyć. Natomiast fizycznie na urządzeniu ,nie jest powiązany z GPIO, tylko zmienną w pamięci. Jest to często obejście ograniczeń Supli - np. tego typu rozwiązanie jest używane w Primary GUI thermostat - w którym kanał tego typu jest używany do modyfikacji nastaw termostatu.
SuplaDevice.addRelay(3); // kanal 1 lampa taras k11
SuplaDevice.addRelay(4); // kanal 2 lampa kotłownia k14
SuplaDevice.addRelay(5); // kanal 3 kinkiety salon k15
SuplaDevice.addRelay(6); // kanal 4 lampa piwnica k16
SuplaDevice.addRelay(7,true);
Trzeba teraz zastąpić nowym poleceniem tak ?
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Tak, trzeba to będzi zastąpić.alankedzior wrote: Mon Feb 17, 2020 6:32 am Czyli dodawanie dotychczasowe przekaźników
SuplaDevice.addRelay(3); // kanal 1 lampa taras k11
SuplaDevice.addRelay(4); // kanal 2 lampa kotłownia k14
SuplaDevice.addRelay(5); // kanal 3 kinkiety salon k15
SuplaDevice.addRelay(6); // kanal 4 lampa piwnica k16
SuplaDevice.addRelay(7,true);
Trzeba teraz zastąpić nowym poleceniem tak ?
Aktualna biblioteka u mnie na githubie i w branchu develop na SUPLOwym githubie są wersją rozwojową, więc tam ciągle dużo się zmienia.
Na chwilę obecną addRelay jeszcze działa i będzie działać dopóki nie przepiszę obsługi rolet "po nowemu".
W międzyczasie przerzucam jeszcze kanały dimmer, rgb led na nową wersję oraz licznik impulsów. Jak to wszystko zrobię, to praktycznie obsługa wszystkiego co było do tej pory będzie "po nowemu" i wtedy intefejs nie będzie się już bardzo zmieniał.
Na koniec muszę dopisać jeszcze testy na nową bibliotekę i wtedy będziemy już blisko oficjalnego wydania nowej wersji biblioteki SuplaDevice.
Nowy Relay ma tą zaletę, że można do niego skonfigurować przyciski (klasa Button).
Najlepsze suple dla Twojego domu 
-
andrew01
- Posts: 163
- Joined: Fri May 24, 2019 6:49 am
A jak kwestia przekaźników bistabilnych? Będą jako oddzielna klasa czy klasa Relay z parametrem jak obecnie?
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Hm, chyba zapomniałem to dorzucić do gitaandrew01 wrote: Mon Feb 17, 2020 8:02 am A jak kwestia przekaźników bistabilnych? Będą jako oddzielna klasa czy klasa Relay z parametrem jak obecnie?
Wieczorem wrzucę - będzie klasa BistableRelay - do sterowania za pomocą zwykłego przekaźnika, przekaźnikiem bistabilnym. Ocyzwiście z obsługą przycisków
Najlepsze suple dla Twojego domu 
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
Po wklejeniu zmiennej dostaje:klew wrote: Tue Feb 11, 2020 9:27 am Jeśli ktoś chce sterować przekaźnikiem także z programu, to trzeba sobie zapisać wskaźnik do niego do jakiejś zmiennej, np.:Code: Select all
// zmienna globalna Supla::Control:Relay *mojPrzekaźnik = nullptr; ... // w setup: mojPrzekaznik = new Supla::Control::Relay(PIN1);
Code: Select all
exit status 1
'Control' in namespace 'Supla' does not name a type
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Jednego : brakuje między Control a Relaylukfud wrote: Tue Feb 18, 2020 2:42 pmPo wklejeniu zmiennej dostaje:klew wrote: Tue Feb 11, 2020 9:27 am Jeśli ktoś chce sterować przekaźnikiem także z programu, to trzeba sobie zapisać wskaźnik do niego do jakiejś zmiennej, np.:Code: Select all
// zmienna globalna Supla::Control:Relay *mojPrzekaźnik = nullptr; ... // w setup: mojPrzekaznik = new Supla::Control::Relay(PIN1);
Code: Select all
exit status 1 'Control' in namespace 'Supla' does not name a type
Najlepsze suple dla Twojego domu 
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
I wszystko jasneklew wrote: Tue Feb 18, 2020 2:46 pmJednego : brakuje między Control a Relaylukfud wrote: Tue Feb 18, 2020 2:42 pmPo wklejeniu zmiennej dostaje:klew wrote: Tue Feb 11, 2020 9:27 am Jeśli ktoś chce sterować przekaźnikiem także z programu, to trzeba sobie zapisać wskaźnik do niego do jakiejś zmiennej, np.:Code: Select all
// zmienna globalna Supla::Control:Relay *mojPrzekaźnik = nullptr; ... // w setup: mojPrzekaznik = new Supla::Control::Relay(PIN1);
Code: Select all
exit status 1 'Control' in namespace 'Supla' does not name a type
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
