ActionTrigger wywoływany "programowo"?

KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Cześć,
mam pewien pomysł i z tego pojawił się problem - potrzebuje uruchomić jakąś akcje programowo na podstawie zbioru warunków. Akcja z góry nie jest znana, ale jest wśród moich kanałów. Wymyśliłem sobie, ze użyję ActionTrigger, ale niestety wygląda na to, ze jest on przypinany jedynie do buttonów.

Czy jest jakaś możliwość programowego uruchamiania ActionTrigger? A mo ze coś w rodzaju "virtual_button"? Zrobiłem kilka różnych podejść i na razie bez skutku. Wszelkie sugestie mile widziane.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Z założenia AT można tylko wywołać z poziomu urządzenia.
SUPLA.... Nareszcie w domu.
Zibi
Posts: 646
Joined: Wed Jul 31, 2019 9:20 am
Location: Białogard

Post

Tez ostatnio kombinowałem i chciałem użyć AT do programowego wyzwolenia taki Virtual AT, ale jednak się nie dalo. Chciałem tego użyć do pilota od TV żeby nie mieć wiadro pilotów to wykorzystuje pilot od TV ma sporo wolnych przycisków zasłaniam rolety itp i ostatnio chciałem zrobić w lampce która ma 2 żarówki.
To zrobiłem to inaczej napisałem logikę pod IR zaciągnąłem do Supli i śmiga aż miło taka Supla IR AT :mrgreen: jednym przyciskiem na pilocie wykonuje akcje:
1 klik włącz/wyłącz pierwszą żarówkę
2 klik włącz/ wyłącz drugą żarówkę
Przytrzymanie przycisku wyłącza 2 żarówki.
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Tutaj jest przykład jak dodać AT do dowolnego warunku: viewtopic.php?t=9503
Najlepsze suple dla Twojego domu :mrgreen:
KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Prawdę mówiąc zanim napisałem posta przeczytałem ten watek pare razy, ale mnie nie naprowadził. @klew - napisałeś tam: "Gorzej będzie jak ludzie się zorientują, że sensor poczty może wysyłać AT. Albo gdy pobór/produkcja prądu jest powyżej/poniżej jakiejś wartości. Albo gdy termometr pokaże pewną temperaturę" i właśnie o cos podobnego mi chodzi :) Mam zestaw parametrów jakie śledzę w oczku wodnym i przy określonej ich kombinacji chcę wyłączyć pompę (lub jakąś grupę urządzeń). Można to zrobić za pomocą direct linków, ale nie udaje mi się nawiązać połączenia https jak działa supla i elmaya doradził/a mi by używać ActionTrigger. W tamtym przypadku problem rozwiązałem, ale było to oparte na "buttonach". Tu nie mam pomysłu.
Ponieważ, @klew, napisałeś również, że "Biblioteka nie ma tutaj żadnych ograniczeń i wyzwalacze można przypisywać do dowolnych zdarzeń w ramach urządzenia (np. do sensorów binarnych, albo po przekroczeniu zadanej temperatury, itd.)" - próbowałem zrobić coś takiego:

Code: Select all

auto at = new Supla::Control::ActionTrigger(); 

auto virtual_binary= new Supla::Sensor::VirtualBinary();

virtual_binary->addAction([tu coś 1],at,[tu coś2]);
w tu coś 1 i 2 wstawiałem rozmaite wartości z actions i zmieniałem stan sensora poprzez set()/clear() - niestety tez nie działało. Prosiłbym o jakąś wskazówkę w jaki sposób sensor może wywoływać AT (być może gdzieś się zagmatwałem) i spróbuję pójść tą drogą.
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

KaDet wrote: Wed Jun 22, 2022 7:30 am Ponieważ, @klew, napisałeś również, że "Biblioteka nie ma tutaj żadnych ograniczeń i wyzwalacze można przypisywać do dowolnych zdarzeń w ramach urządzenia (np. do sensorów binarnych, albo po przekroczeniu zadanej temperatury, itd.)" - próbowałem zrobić coś takiego:

Code: Select all

auto at = new Supla::Control::ActionTrigger(); 
auto virtual_binary= new Supla::Sensor::VirtualBinary();
virtual_binary->addAction([rodzaj wysyłanej akcji na AT], at, [rodzja zdarzenia generowanego przez virtual_binary]);
VirtualBinary generuje zdarzenia ON_TURN_ON, ON_TURN_OFF oraz ON_CHANGE.
ActionTrigger może wysyłać akcje wymienione tutaj: https://github.com/SUPLA/supla-arduino/ ... ions.h#L78

Czyli np.:

Code: Select all

virtual_binary->addAction(Supla::SEND_AT_SHORT_PRESS_x1, at, Supla::ON_TURN_ON);
Rodzaj wysłanej akcji może być dowolny. Nazwy są dostosowane do przycisków, ale tak naprawdę nie ma to znaczenia.
Oczywiście, aby akcja się odpaliła, to musisz w Cloud przypisać jakąś akcję do tego AT. Jeśli w Cloud nie przypiszesz akcji, to urządzenie dostanie informację, że akcja nie jest włączona i nie będzie wysyłać akcji do serwera.
Najlepsze suple dla Twojego domu :mrgreen:
KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Królu złoty!!! Działa :!: :!: :!: Wielkie dzięki za pomoc.

Wiem co mnie myliło i wstawiałem do AddAction złe parametry... SEND_AT_.... czytałem jako wyślij przy.... a to jest wyślij Action Trigger event.....

Echhh. Moja głupota :oops: .
Jeszcze raz dzięki - i w ten sposób, naokoło udało się zrobić by AT było wysyłane "programowo"

Return to “Ogólna dyskusja”