Włącznik światła - powiązany kanał pomiarowy

cyru
Posts: 4
Joined: Thu May 27, 2021 8:29 pm

Post

Witam,
proszę o pomoc jak dodać kanał pomiarowy dla Włącznika światła.

W kodzie mam takie linie:

auto s1 = new Supla::Sensor::Binary(D1);
auto relay = new Supla::Control::Relay(LED_PIN);

Sensora w Cloud nie mogę powiązać jako kanał pomiarowy dla Włącznika światła.
Do tego potrzebuję przeznaczyć dedykowaną GPIO która będzie będzie służyła za pomiar włączonego światła.
You do not have the required permissions to view the files attached to this post.
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

cyru wrote: Sun Oct 15, 2023 9:16 pm proszę o pomoc jak dodać kanał pomiarowy dla Włącznika światła.
Czujnik binarny nie jest kanałem pomiarowym. Potrzebujesz licznika energii elektrycznej.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
cyru
Posts: 4
Joined: Thu May 27, 2021 8:29 pm

Post

Dzięki za odpowiedź.
A czy da się zrobić, żeby mieć po prostu czujnik stanu włączenia światła? Podobnie jak jest z czujnikiem otwarcia na furtki.
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

cyru wrote: Mon Oct 16, 2023 8:36 am Dzięki za odpowiedź.
A czy da się zrobić, żeby mieć po prostu czujnik stanu włączenia światła? Podobnie jak jest z czujnikiem otwarcia na furtki.
Kanały "przekaźnika" (światło, włącznik) same w sobie przekazują obecny stan.
Nie ma tam możliwości podłączenia zewnętrznego czujnika binarnego, który by ustawiał stan. Takie coś trzeba ogarnąć w po stronie urządzenia, aby stan był przekazywany poprawnie przez kanał przekaźnika.
To powinno po prostu działać poprawnie przy zwykłych instalacjach. Opisz może co tam chcesz zrobić?
Najlepsze suple dla Twojego domu :mrgreen:
cyru
Posts: 4
Joined: Thu May 27, 2021 8:29 pm

Post

Potrzebuję załączać oświetlenie (przekaźnik) z przycisku chwilowego, który jest umieszczony na ścianie w pokoju. To tradycyjne załączenie powinno być niezależne od połączenia z internetem. Możliwość załączenia z aplikacji Supla powinno być tylko dodatkową opcją.


W pętli dorzuciłem taką opcję załączenia i wyłączenia oświetlenia na porcie LED_PIN z przycisku, totalnie niezależna funkcja od Supli.
Ten sam port LED_PIN mam skonfigurowany jako relay w supla.
Włączanie/wyłączenie oświetlenia z przycisku i z aplikacji działa, lecz włączenie/wyłączenie oświetlenia przez przycisk nie jest widoczne na aplikacji.


auto relay = new Supla::Control::Relay(LED_PIN);

void loop() {
lastButtonState = currentButtonState;
currentButtonState = digitalRead(BUTTON_PIN);

if(lastButtonState == HIGH && currentButtonState == LOW)
{
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
}
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

cyru wrote: Mon Oct 16, 2023 12:20 pm Potrzebuję załączać oświetlenie (przekaźnik) z przycisku chwilowego, który jest umieszczony na ścianie w pokoju. To tradycyjne załączenie powinno być niezależne od połączenia z internetem. Możliwość załączenia z aplikacji Supla powinno być tylko dodatkową opcją.
W supla-device jest obsługa przycisku w klasie Supla::Control::Button.

Nie ustawiaj GPIO od przekaźnika tymi metodami z Arduino. Jeśli chcesz czymś innym to przestawiać, to wykonuj na instancji obiektu Relay metody turnOn(), turnOff().
Najlepsze suple dla Twojego domu :mrgreen:
cyru
Posts: 4
Joined: Thu May 27, 2021 8:29 pm

Post

Dzięki za pomoc, tak to zrobiłem i działa zgodnie z oczekiwaniem

Code: Select all

echo "auto d1 = new Supla::Control::DimmerLeds(LED_PIN_DIM);

auto r1 = new Supla::Control::Relay(LED_PIN); 
auto b1 = new Supla::Control::Button(BUTTON_PIN, true, true); 
b1->addAction(Supla::TOGGLE, r1, Supla::ON_PRESS);";

Proszę o pomoc w skonfigurowaniu akcji (addAction) która przy wciśnięciu przycisku b1 spowoduje ustawienie jasności oświetlenia dimmer d1 na 100%.
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

cyru wrote: Mon Oct 16, 2023 9:21 pm Dzięki za pomoc, tak to zrobiłem i działa zgodnie z oczekiwaniem

Code: Select all

echo "auto d1 = new Supla::Control::DimmerLeds(LED_PIN_DIM);

auto r1 = new Supla::Control::Relay(LED_PIN); 
auto b1 = new Supla::Control::Button(BUTTON_PIN, true, true); 
b1->addAction(Supla::TOGGLE, r1, Supla::ON_PRESS);";

Proszę o pomoc w skonfigurowaniu akcji (addAction) która przy wciśnięciu przycisku b1 spowoduje ustawienie jasności oświetlenia dimmer d1 na 100%.
Nie ma tam domyślnie akcji na "zapal na 100%". Jest włącz/wyłącz/przełącz. Są też akcje do rozjaśniania itp.
Tutaj w kodzie znajdziesz wszyskie opcje:
https://github.com/SUPLA/supla-device/b ... e.cpp#L262

Do zapalenia na określoną wartość, można użyć:

Code: Select all

dimmer->setDefaultDimmedBrightness(100);
A następnie możesz używać akcji TURN_ON_RGB_DIMMED, TURN_ON_W_DIMMED, TURN_ON_ALL_DIMMED (zależnie czy to RGB, Dimmer/W, czy RGBW). Natomiast ta akcja jest tylko do zapalania, więc nie zrobisz tutaj "włącz na 100% lub wyłącz".

Druga sprawa to konfiguracja przycisku b1 - akcja "on press" wykona się przy każdym wciśnięciu. Jeśli chcesz na jednym przycisku ustawić włączanie różnych urządzeń, to może lepiej używać wieloklików? Np. kliknięcie 1x -> przełącz przekaźnik, kliknięcie 2x -> przełącz dimmer, etc.
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Arduino IDE”