VirtualRelay a tryb manual/auto

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

Post

Ale ten kod jest mi bardzo pomocny, nie da sie tam dopisać obsługi różnych ikon?
Jak nie to dajcie jakiś przykład jak praktycznie używać virtual relay standardowego.
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: 135 times
Been thanked: 137 times

Post

SOYER wrote: Thu Jun 15, 2023 3:00 pm Ale ten kod jest mi bardzo pomocny, nie da sie tam dopisać obsługi różnych ikon?
Jak nie to dajcie jakiś przykład jak praktycznie używać virtual relay standardowego.
Czemu chcesz na relayu, który zmienia np wartość nastawy temperatury, pokazywać jakiś stan?
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

Opisałem to w pierwszym poście. Potrzebuję wysyłać z apki do urządzenia dwa stany(np 0 i 1) ustawianie w aplikacji za pomocą jakiegoś "przycisku". To nie ma sterować żadnym pinem rzeczywistym, tylko dawać info jaki tryb wybrał użytkownik AUTO/MANUAL.
Jeśli nie virtual relay to co polecasz?
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: 135 times
Been thanked: 137 times

Post

SOYER wrote: Thu Jun 15, 2023 3:30 pm Opisałem to w pierwszym poście. Potrzebuję wysyłać z apki do urządzenia dwa stany(np 0 i 1) ustawianie w aplikacji za pomocą jakiegoś "przycisku". To nie ma sterować żadnym pinem rzeczywistym, tylko dawać info jaki tryb wybrał użytkownik AUTO/MANUAL.
Jeśli nie virtual relay to co polecasz?
Do tego co tutaj opisałeś, zrobisz na VirtualRelay
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

klew wrote: Thu Jun 15, 2023 3:23 pm
SOYER wrote: Thu Jun 15, 2023 3:00 pm Ale ten kod jest mi bardzo pomocny, nie da sie tam dopisać obsługi różnych ikon?
Jak nie to dajcie jakiś przykład jak praktycznie używać virtual relay standardowego.
Czemu chcesz na relayu, który zmienia np wartość nastawy temperatury, pokazywać jakiś stan?
Z tego Twojego szkicu który wyżej wkleiłem, wywaliłem całą obsługę kanału termometru i został sam virtualrelay.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Zostawiłem takie coś:

Code: Select all

class RelayAsInput2 : public Supla::Control::VirtualRelay {//tryb AUTO/MANUAL
 public:

  virtual ~RelayAsInput2() {}
  void onInit() override {}
  void turnOn(_supla_int_t duration = 0) override {

    (void)(duration);
     tryb = 1;
     wyslanoON = 0;
     wyslanoOFF = 0;
    
    Supla::Storage::ScheduleSave(2000);
  }

  void turnOff(_supla_int_t duration = 0) override {
    (void)(duration);
    tryb = 0;
    wyslanoON = 0;
    wyslanoOFF = 0;
    Supla::Storage::ScheduleSave(2000);
  }

  void onLoadState() override {
    int tryb1 = 1;
    Supla::Storage::ReadState(reinterpret_cast<unsigned char *>(&tryb1),
                              sizeof(int));
    tryb = tryb1;
  }

  void onSaveState() override {
    int tryb1 = tryb;
    Supla::Storage::WriteState(reinterpret_cast<unsigned char *>(&tryb1),
                               sizeof(int));
  }
};
To działa jako virtual relay, ładnie mi zmienia zmienną, ale nie zmienia ikonek.
Dajcie jakiś przykład jak uźyć w ten sam sposób oryginalnego virtualrelay...
Albo co dopisać(o ile się da) do tego powyżej by te ikonki zmieniało.
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: 135 times
Been thanked: 137 times

Post

VirtualRelay to klasa, która już jest w bibliotece. Wystarczy dodać include i stworzyć obiekt w szkicu.
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

Jak to czytać w szkicu, że ktoś kliknął w apk?
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

SOYER wrote: Thu Jun 15, 2023 3:47 pm Jak to czytać w szkicu, że ktoś kliknął w apk?

Code: Select all

bool trybAuto;
#include <supla/control/virtual_relay.h>
Supla::Control::VirtualRelay *vrelay = nullptr;
setup() {
vrelay = new Supla::Control::VirtualRelay();
trybAuto = vrelay->isOn();
}
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

Dzięki, dokładnie o to mi chodziło. Czyli jednak isOn().
Ostatnią linijkę zastąpiłem przez:
if(vrelay->isOn()){xxx}
Dziękuję🍻
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79

Return to “Pomoc”