supla script

User avatar
YoMan
Posts: 3521
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa
Has thanked: 3 times
Been thanked: 3 times

Post

amprsun wrote: Mon Mar 11, 2024 6:30 pm
YoMan wrote: Mon Mar 11, 2024 5:21 pm
amprsun wrote: Mon Mar 11, 2024 1:08 pm Chodzi mi głownie o to czy jest jakiś sposób by suwakiem ON/OFF włączyć lub wyłączyć czujnik np. kontrakton ? bo chcę tylko gdy jest potrzeby sprawdzał jaki jest na nim stan.
szeregowo lub równolegle spiąć z przekaźnikiem?
Niby okej ale w dalszej części ciężko. Wpadłem na pomysł dość prostacki ale w rezultacie osiągnę to co chce.Po prostu dwa Wemosy na jednym supla na drugim logika na arduino ide i to wystarczy do skończenia mojego projektu.
No właśnie zaproponowałem "prostacki" jak się wyraziłeś sposób. Kontaktron i włącznik na jednym wemosie. Przewód do kontaktrona przechodzi np. Równolegle przez przekaźnik NC. Więc więc kiedy przekaźnik jest wyłączony to obwód jest zawsze zamknięty i rozwarcie kontaktrona nie zmienia stanu na wejściu pin ergo nie jest otwarcie rejestrowane. Kiedy załączysz przekaźnik NC obwód przekaźnika zostaję rozwarty i teraz każde rozwarcie kontaktronu będzie powodowało przerwę w całym obwodzie -> zarejestrowanie go przez wemosa
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
amprsun
Posts: 23
Joined: Sat Jul 29, 2023 5:19 am

Post

:? :oops:
No właśnie zaproponowałem "prostacki" jak się wyraziłeś sposób. Kontaktron i włącznik na jednym wemosie. Przewód do kontaktrona przechodzi np. Równolegle przez przekaźnik NC. Więc więc kiedy przekaźnik jest wyłączony to obwód jest zawsze zamknięty i rozwarcie kontaktrona nie zmienia stanu na wejściu pin ergo nie jest otwarcie rejestrowane. Kiedy załączysz przekaźnik NC obwód przekaźnika zostaję rozwarty i teraz każde rozwarcie kontaktronu będzie powodowało przerwę w całym obwodzie -> zarejestrowanie go przez wemosa
„Prostacki” w odniesieniu do swojego pomysłu, a nie miałem na myśli twojego pomysłu :o :o :? :oops:

Tak tak to rozumiem wszystko co i jak, tylko apetyt rośnie w miarę jedzenia i z gotowca próbuje teraz zrobić coś podobnego. Tylko już w formie programowej. Stąd moje pytanie o formuły warunkowe do przekaźników gdzie takie rzeczy szukać.
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Mam nieodparte wrażenie, po tych linijkach które wstawiłeś, że nie za bardzo masz pojęcie nawet o podstawach.
Dlatego polecam:

https://forbot.pl/blog/kurs-arduino-pod ... rsu-id5290

https://forbot.pl/blog/kurs-arduino-ii- ... ci-id15494
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
amprsun
Posts: 23
Joined: Sat Jul 29, 2023 5:19 am

Post

Mam nieodparte wrażenie, po tych linijkach które wstawiłeś, że nie za bardzo masz pojęcie nawet o podstawach.
Dlatego polecam:
Hej. Ogólnie podstawy znam i coś już tam z samego esp8266 na arduino.ide napisałem i działa tyle że to nie ma ładnego interfejsu jak supla.

Problem mam z zrozumieniem jak pisać dla supla w środowisku arduino IDE. Tak to rozumiem ze gdy będę pisał bezpośrednio pod gpio to klient supla tego nie bedZie widział ? Tak to rozumiem.

Supla device nie chce się kąpilpwać i funkcje typu
SuplaDevice.addRelay(12, true); nie działają biblioteka dodana a jest problem i muszę korzystać po lini
Supla::Control::Relay *relay1 Co kompletnie jest mi opcje bo tutaj ciężko jak dla mnie wykonać jakieś operacje warunkowe. Tutaj się gubię i sobie nie radzę.
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

amprsun wrote: Tue Mar 12, 2024 10:08 am Supla device nie chce się kąpilpwać i funkcje typu
SuplaDevice.addRelay(12, true); nie działają biblioteka dodana a jest problem i muszę korzystać po lini
Supla::Control::Relay *relay1 Co kompletnie jest mi opcje bo tutaj ciężko jak dla mnie wykonać jakieś operacje warunkowe. Tutaj się gubię i sobie nie radzę.
"addRelay" było usuniete z biblioteki kilka lat temu i całość była przerobiona na C++ i użycie klas.

Ten "relay1" to wskaźnik na instancję klasy. Można na nim wykonywać operacje relay1->turnOn(); itp a także czytać stan relay1->isOn().

Podstawowe dostępne funkcje najlpiej sprwadzać w plikach nagłówkowych danej klasy:
https://github.com/SUPLA/supla-device/b ... elay.h#L69

Aby sobie z tym poradzić, to trzeba znać podstawy C++ i programowania obiektowego.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
YoMan
Posts: 3521
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa
Has thanked: 3 times
Been thanked: 3 times

Post

amprsun wrote: Tue Mar 12, 2024 6:05 am „Prostacki” w odniesieniu do swojego pomysłu, a nie miałem na myśli twojego pomysłu :o :o :? :oops:

Tak tak to rozumiem wszystko co i jak, tylko apetyt rośnie w miarę jedzenia i z gotowca próbuje teraz zrobić coś podobnego. Tylko już w formie programowej. Stąd moje pytanie o formuły warunkowe do przekaźników gdzie takie rzeczy szukać.
Spoko .. bo on jest jaki jest i określenie "prostacki" w sumie trochę pasuje. Ale ja nie bardzo umiem w "arduina" i inne więc według zasady co nie zrobię to dowyglądam (... a nie ... czekaj ... to też u mnie nie działa ;) ) sporo musiałem takich kombinacji zrobić i co do zasady w 99% one działają tak, że o nich zapomniałem. (jeśli coś jest głupie ale działa to nie jest głupie)
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
amprsun
Posts: 23
Joined: Sat Jul 29, 2023 5:19 am

Post

Dziękuje kolegom z wskazanie braków, nie poddałem się i napisałem to co chciałem. to jest prosty projekt alarmu który jest połączony z satelem. Mam dwie krańcówki w domu jedną w drzwiach piwnicy drugą w drzwiach parteru. Dodatkowo w warsztacie mam już satela.

Suwakami ON/OFF aktywuje wyłączniki krańcowe które z kolei gdy pojawi się stan HIGH włączają przekaźnik NO/NC i przerywają obwód sabotażowy drzwiczek od centrali aktywując alarm Satela. A warsztat uzbrajam i rozbrajam poprzez podanie 1,5s impulsu na jedno z wejść programowalnych centrali satel.

Może się komuś przyda.

Code: Select all

Supla::Control::VirtualRelay* piwnica;
Supla::Control::VirtualRelay* dom;
Supla::Control::VirtualRelay* warsztat;

const int SENSOR_piwnica = 14; 
const int SENSOR_dom = 4; 

Supla::Control::Relay* alarm;
Supla::Control::Relay* uzbrajanie;
void setup() {

 Serial.begin(115200);
 pinMode(SENSOR_piwnica, INPUT_PULLUP);
 pinMode(SENSOR_dom, INPUT_PULLUP);

 piwnica = new Supla::Control::VirtualRelay();
  dom = new Supla::Control::VirtualRelay();
  warsztat = new Supla::Control::VirtualRelay();
  alarm = new Supla::Control::Relay(ALARM_PIN);
  uzbrajanie = new Supla::Control::Relay(UZBRAJANIE_PIN);
  void loop() {
SuplaDevice.iterate();


 bool sensorStatePiwnica = digitalRead(SENSOR_piwnica);
  
  // Sprawdź stan czujnika domu
  bool sensorStateDom = digitalRead(SENSOR_dom);

  if ((sensorStatePiwnica == HIGH && piwnica->isOn()) || (sensorStateDom == HIGH && dom->isOn())) {
    alarm->turnOn();
  } else {
    alarm->turnOff();
  }
}
Jeszcze raz dziękuje kolegom. pozdro.

Return to “Pomoc”