Roller shutter 595 dlaczego się nie kompiluje przykład z bibiolteki Supli?

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

Post

veeroos wrote: Wed Jul 29, 2026 7:30 am W teorii tak, ale Virtual relay zajmuje nam jeden kanał, gdyby coś było takiego jak Virtual Internal Output, to by było idealne 😉.
Nie rozumiem.

Ideą "virtual relay" jest dodanie kanału przekaźnika, który trzyma stan w pamięci, zamiast sterować jakimś sprzętem.
Ideą "internal pin output" jest dodanie prostszego sterowania fizycznym urządzeniem mechanizmami SD, bez eskponowania tego jako kanału.

Jeśli chcesz coś w stylu "internal virtual output" to w zasadzie dodaj sobie

Code: Select all

 bool moj_wirtualny_internal_output = false;
:P

Dlatego powtarzam, że chyba nie rozumiem co i po co chcesz robić, ani czym jest "wirtualny ekspander".
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

Zwykłej zmiennej bool z tego co pamiętam nie możesz dodać jako wyjście do kanału rolety. Więc robię sobie wirtualny expander dziedziczący po Supla::Io::Base dodaję go pod wyjścia rolety i jak roleta jedzie w górę to wystawiam na mostek H informację załóżmy pin z prawej +, pin z lewej -, a jak roleta w dół to na odwrót, załóżmy że nie mogę wykorzystać istniejących IO do przypisania do kanału rolety więc wykorzystuję ten ekspander, wiem że można sprawdzić czy roleta się porusza itd, ale wolałem użyć znaczników "binarnych" do tej funkcji (prościej według mnie). A dokładnie robię coś takiego:

Code: Select all


class VirtualExpander : public Supla::Io::Base {
  public:
    VirtualExpander() : Supla::Io::Base() {}
    void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) override {
      VIRTUAL_VARIABLE[pin] = val;
    }
    int customDigitalRead(int channelNumber, uint8_t pin) override {
      return VIRTUAL_VARIABLE[pin];
    }
  private:
    bool VIRTUAL_VARIABLE[8];
};

Wiesz jak coś jest głupie, ale działa to nie jest głupie ;). Z tą roletą to tylko przykład, można to wykorzystać do innych celów, kiedyś miałem wirtualne wyjście do termostatu (nie pamiętam już nawet po co :lol: :lol: :lol: ), wiem, że używałem jeszcze do czegoś ale już nie pamiętam :D
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
User avatar
klew
Posts: 13905
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

veeroos wrote: Wed Jul 29, 2026 9:04 am Wiesz jak coś jest głupie, ale działa to nie jest głupie ;). Z tą roletą to tylko przykład, można to wykorzystać do innych celów, kiedyś miałem wirtualne wyjście do termostatu (nie pamiętam już nawet po co :lol: :lol: :lol: ), wiem, że używałem jeszcze do czegoś ale już nie pamiętam :D
Nie jest to głupie :P. Brakowało mi tu dwóch informacji, aby zrozumieć co robisz:
1. podpięcie tego pod roletę
2. Twoje "ekspander" to mój "interfejs IO"

Po prostu wiele razy na różne sposoby używam klas pochodnych od Supla::Io::Base, np.
- ekspandery ;)
- mapowanie sygnału AC 50/100 Hz na stabilny stan 0 lub 1 (dla przycisków)
- mapowanie pomiaru analogowego na 0/1
- teraz do SmartBoba dodałem diodę statusową, która miga na ekranie :), bo tam nie mam zielonej diody, a stan cfg trzeba pokazać odpowiednim miganiem, bo kreator w apkach o tym mówi użytkownikom itd.
Najlepsze suple dla Twojego domu :mrgreen:
radzik_r
Posts: 468
Joined: Sun Aug 11, 2019 5:32 pm
Has thanked: 1 time
Been thanked: 2 times

Post

nebraska wrote: Mon Jul 27, 2026 10:42 am
sprawdź z tymi plikami
You do not have the required permissions to view the files attached to this post.

Return to “supla-dev”