Jak stanem zmiennej sterować przekaźnikiem?

User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Cześć,
mam zadeklarowany przekaźnik:
auto relay1 = new Supla::Control::Relay(D5, false);
jak nim sterować zależnie od stanu zmiennej t.j.: zmienna==0 przekaźnik wyłączony, zmienna ==1 to przekaźnik włączony?

Znalazłem takie info na forum:

"Klasa Relay ma dostępne następujące metody, które możemy wywoływać z kodu:
KOD: ZAZNACZ CAŁY

r1->turnOn(); // włącza przekaźnik. Jeśli mamy ustawione "keepTurnOnDuration", to
// zostanie użyty zapisany wcześniej czas włączenia
r1->turnOn(czas_w_milisekundach); // włącza przekaźnik na określony czas
r1->turnOff(); // wyłącza przekaźnik
r1->toggle(); // przeałącza przekaźnik
r1->isOn(); // zwraca true/false w zależności od tego czy przekaźnik jest włączony czy nie"

ale relay1->turnOn(); nie działa.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
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

Musi działać ;)
A działa Tobie z sterowanie z aplikacji? Czy stan jest poprawny, czy na odwrót?
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

void relayOnOff(){
if(przek1 == 1){
relay1->turnOn();
}
else if(przek1==0){
relay1->turnOff();
}
}
To nie działa, "'relay1' was not declared in this scope;"
Z aplikacji oczywiście działa.

Z innej beczki, co to za błąd:
16:44:33.626 -> Establishing encrypted connection with: svr73.supla.org (port: 2016)
16:44:34.489 -> Connected to Supla Server
16:44:34.489 -> Send: [53 55 50 4C 41 10 06 00 00 00 45 00 00 00 DE 02 00 00 74 6F 6D 61 73 7A 2E 6D 6C 6F 74 65 6B 40 77 70 2E 70 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 62 35 B7 C1 16 00 24 8A 2C 64 B3 35 F5 CB 31 3D 96 85 2E 54 69 DA 9A 37 81 FE 6E 0C E5 83 2E 0C 53 55 50 4C 41 2D 45 53 50 38 32 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
16:44:35.623 -> Send: [53 55 50 4C 41 ]
16:44:35.623 -> Recv: [53 55 50 4C 41 10 01 00 00 00 46 00 00 00 07 00 00 00 07 00 00 00 78 13 01 53 55 50 4C 41 ]
16:44:37.693 -> Current status: [27] Channel conflict!
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

ilość albo typ kanałów na urządzeniu nie zgadza się z zarejestrowanymi na serwerze.

Pokaż cały kod.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

lukfud wrote: Sat Feb 18, 2023 3:59 pm ilość albo typ kanałów na urządzeniu nie zgadza się z zarejestrowanymi na serwerze.

Pokaż cały kod.
Zgadza się, zakomentowałem deklarację jednego przekaźnika, bo jest podłączony pod pin konfliktowy z uartem, a w cloudzie zarejestrowałem jak były dwa. Usunąłem urządzenie z clouda i na nowo zarejestrowałem i problem zniknął.

Dzięki.

Wracając do sterowania przekaźnikiem, pomożecie coś, bardzo słabo znam obiektowe, by nie powiedzieć, że prawie wcale.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

No to jeszcze raz, pokaż kod ;)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

w setup:
auto relay1 = new Supla::Control::Relay(D5, false);

potem w jednej z funkcji czytam temperaturę i ustawiam zmienną:
t3 = (t123.getTempC(ds3));
if(t3>tempMax){
przek1=1;
}
a następnie chcę za pomocą tej zmiennej sterować przekaźnikiem za pomocą kodu ktory wkleiłem już wyżej:
void relayOnOff(){
if(przek1 == 1){
relay1->turnOn();
}
else if(przek1==0){
relay1->turnOff();
}
}
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

Wstaw przed setup()

Code: Select all

Supla::Control::Relay *relay1 = nullptr;
i usuń "auto" przed relay1 = new(...)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Działa pięknie. Nawet cały czas wali po serialu stanem tego przekaźnika.
Możesz mi napisać co znaczyła ta linijka:
Supla::Control::Relay *relay1 = nullptr;

I dlaczego miałem usunąć "auto"? Co robi ten zapis "auto"?
Teraz jeśli ręcznie przełączam w aplikacji to natychmiast zmienia na taki jak wynika z mojej funkcji. Co jest oczywiście jak najbardziej logiczne.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
Zibi
Posts: 646
Joined: Wed Jul 31, 2019 9:20 am
Location: Białogard

Post

Ja mam z

Code: Select all

auto
i u mnie działa.

Return to “Pomoc”