Witam.
Chcę utworzyć pięc kanałów virtual_binary (stan otwarcia drzwi). Jak przypisać do nich wartości bezpośrednio 0 lub 1 w Arduino IDE bez udziału żadnego inputa? Stany będę wyciągał po sieci z innych urządzeń nie suplowych. Kwestia dotyczy samego przesłania wartości 0 lub 1 gdzie 0 = zamknięte, 1 = otwarte.
5x virtual_binary - jak przypisać stan 0 lub 1
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 135 times
- Been thanked: 137 times
Stan normalnie jest ustawiany poprzez powiązanie sensora VirtualBinary z dowolną klasą, która potrafi wykonywać akcje (taka jak Button, Relay, Thermometer).
Jeśli chcesz to robić poza tym mechanizmem, to możesz bezpośrednio wywoływać na instancji VirtualBinary metodę handleAction, np coś w tym stylu:
Jeśli chcesz to robić poza tym mechanizmem, to możesz bezpośrednio wywoływać na instancji VirtualBinary metodę handleAction, np coś w tym stylu:
Code: Select all
#include <supla/sensor/virtual_binary.h>
...
auto czujnik = new Supla::Sensor::VirtualBinary;
czujnik->handleAction(0, Supla::SET); // Supla::CLEAR, Supla::TOGGLE
Najlepsze suple dla Twojego domu 
-
Duch__
- Posts: 2199
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
- Been thanked: 6 times
Przeceniasz moje zdolności intelektualne na urlopie
A może tak bardziej łopatologicznie? Chcę to wykonać w sekcji void loop
Code: Select all
bool zmienna1;
bool zmienna2;
void setup() {
Serial.begin(115200);
// Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
// Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/*
* Having your device already registered at cloud.supla.org,
* you want to change CHANNEL sequence or remove any of them,
* then you must also remove the device itself from cloud.supla.org.
* Otherwise you will get "Channel conflict!" error.
*/
auto czujnik1 = new Supla::Sensor::VirtualBinary;
auto czujnik2 = new Supla::Sensor::VirtualBinary;
}
void loop() {
SuplaDevice.iterate();
if(zmienna1 == 1){
//Co tutaj żeby wysłać że drzwi1 są zamknięte
}
if(zmienna1 == 0){
//Co tutaj żeby wysłać że drzwi1 są otwarte
}
if(zmienna2 == 1){
//Co tutaj żeby wysłać że drzwi2 są zamknięte
}
if(zmienna2 == 0){
//Co tutaj żeby wysłać że drzwi2 są otwarte
}
//Dalsza część kodu
}
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 135 times
- Been thanked: 137 times
Mniej więcej tak, tylko nie kompilowałem, więc jakieś błędy mogą się wkraść:
Code: Select all
bool zmienna1;
bool zmienna2;
Supla::Sensor::VirtualBinary *czujnik1;
Supla::Sensor::VirtualBinary *czujnik2;
void setup() {
Serial.begin(115200);
char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
czujnik1 = new Supla::Sensor::VirtualBinary;
czujnik2 = new Supla::Sensor::VirtualBinary;
}
void loop() {
SuplaDevice.iterate();
if(zmienna1 == 1){
//Co tutaj żeby wysłać że drzwi1 są zamknięte
czujnik1->handleAction(0, Supla::SET);
}
if(zmienna1 == 0){
//Co tutaj żeby wysłać że drzwi1 są otwarte
czujnik1->handleAction(0, Supla::CLEAR);
}
if(zmienna2 == 1){
//Co tutaj żeby wysłać że drzwi2 są zamknięte
czujnik2->handleAction(0, Supla::SET);
}
if(zmienna2 == 0){
//Co tutaj żeby wysłać że drzwi2 są otwarte
czujnik2->handleAction(0, Supla::CLEAR);
}
}
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
Co oznacza "0" jako event w handleAction?
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: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 135 times
- Been thanked: 137 times
Nic. Założenie było takie, że ktoś może chcieć inaczej wykonywać akcję w zależności od typu eventu, ale aktualnie jest to nieużywany parametr i jego wartość nie ma znaczenia
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
Ok, dzięki.klew wrote: Tue Aug 24, 2021 12:20 pmNic. Założenie było takie, że ktoś może chcieć inaczej wykonywać akcję w zależności od typu eventu, ale aktualnie jest to nieużywany parametr i jego wartość nie ma znaczenia
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
