Aktualizacja SuplaDevice

User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Goral64 wrote: Tue Feb 11, 2020 7:09 pm StatusSensor ?
andrew01 wrote: Tue Feb 11, 2020 7:55 pm Supla::Sensor::Logical ?
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.
Najlepsze suple dla Twojego domu :mrgreen:
alankedzior
Posts: 114
Joined: Mon Jun 18, 2018 5:38 pm

Post

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:

Code: Select all

#include <supla/control/virtual_relay.h>
#include <supla/control/relay.h>
i w setup dodać:

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ętem
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);
Metody do sterowania przekaźnikiem to turnOn, turnOff, toggle. Odczyt stanu przez metodę "isOn()" (https://github.com/klew/arduino/blob/21 ... .h#L72-L99)

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 ;)
Możecie podać jakies życiowe przykłady zastosowania relay, virtualrelay, binary sensor ?
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

alankedzior wrote: Sun Feb 16, 2020 9:16 pm Możecie podać jakies życiowe przykłady zastosowania relay, virtualrelay, binary sensor ?
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.

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 :mrgreen:
alankedzior
Posts: 114
Joined: Mon Jun 18, 2018 5:38 pm

Post

klew wrote: Sun Feb 16, 2020 10:15 pm
alankedzior wrote: Sun Feb 16, 2020 9:16 pm Możecie podać jakies życiowe przykłady zastosowania relay, virtualrelay, binary sensor ?
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.

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.
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 ?
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

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 ?
Tak, trzeba to będzi zastąpić.
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 :mrgreen:
andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

A jak kwestia przekaźników bistabilnych? Będą jako oddzielna klasa czy klasa Relay z parametrem jak obecnie?
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

andrew01 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?
Hm, chyba zapomniałem to dorzucić do gita ;)
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 :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

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);
Po wklejeniu zmiennej dostaje:

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
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

lukfud wrote: Tue Feb 18, 2020 2:42 pm
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);
Po wklejeniu zmiennej dostaje:

Code: Select all

exit status 1
'Control' in namespace 'Supla' does not name a type
Jednego : brakuje między Control a Relay
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

klew wrote: Tue Feb 18, 2020 2:46 pm
lukfud wrote: Tue Feb 18, 2020 2:42 pm
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);
Po wklejeniu zmiennej dostaje:

Code: Select all

exit status 1
'Control' in namespace 'Supla' does not name a type
Jednego : brakuje między Control a Relay
I wszystko jasne :)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl

Return to “Arduino IDE”