SUPLA Pushover client

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Awatar użytkownika
PuteR
Posty: 1421
Rejestracja: śr gru 06, 2017 10:07 am

Beku pisze: czw lut 20, 2020 7:40 pm
PuteR pisze: czw lut 20, 2020 7:32 pm Ok, coś pozmieniałem (trafiła się jedna literówka) i pokazuje teraz dwa stany otwartą i zamkniętą problem w tym że odwrotnie. Gdy otwieram pokazuje że zamknięta a jak zamykam pokazuje że otwarta. Próbowałem ze zmianą wartość dla kanału 0/1 ale bez zmian. W cloud mam zaznaczoną odwróconą logikę.
zmień komunikaty w warunkach :P
Mogło by się wydawać że najprostsze rozwiązania są najlepsze, ale albo moja brama ze mną pogrywa, albo supla pushover potrzebuje czasu na przyjęcie nowych ustawień mimo resetu. Jak bym nie zmienił cały czas pokazuje mi odwrotnie.
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Wklej to co wypluwa klient i to jak masz warunki zdefiniowane.
Awatar użytkownika
PuteR
Posty: 1421
Rejestracja: śr gru 06, 2017 10:07 am

haha wygląda na to że naprawdę chciałem za szybko, sprawdzam przed chwilą i pokazuje ok :lol: :lol:
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Dzisiejsza aktualizacja:

Dodano nowy typ wyzwalacza: onconnection
Możemy ustawić sobie powiadomienia jeśli urządzenie rozłączy się z serwerem lub połączy się z serwerem. Można tworzyć warunki jak dla innych wyzwalaczy np. Powiadomienie jak urządzenie brama i dwie lampy będą offline. Nie wiem po co ale liczę na waszą kreatywność 😄,

Opis na github

Trzeba jedynie mieć świadomość że grzebanie w cloud na urządzeniach wszystkie rozłącza i łącza się ponownie co wygeneruje powiadomienia. Ale już myśle jak to obejść - minimalny czas bycia offline??
Awatar użytkownika
PuteR
Posty: 1421
Rejestracja: śr gru 06, 2017 10:07 am

jak prawidłowo powinien wyglądać warunek informujący że światło jest nadal włączone zrobiłem coś takiego

Kod: Zaznacz cały

- trigger: 'ontime'
    time: '0 0 */10 * * * *'
    condition: '%channel_414% == 1 && %channel_225% == 1'
    reset: 'none'
    message: 'Swiatło nadal włączone'
ale nie działa co mają oznaczać te 0 0 w time??

I jeszcze jedno pytanko mam taki warunek

Kod: Zaznacz cały


- trigger: 'onchange'
    condition: '%channel_223% == 0 && %channel_224% == 0 && %channel_225% == 0 && %channel_226% == 0'
    message: 'WYŁĄCZONO światło'
    
i działa prawidłowo, ale gdy włączę tylko jedno z tych świateł i później je wyłącze to też otrzymuję informację o wyłączeniu światła przed domem czy tak ma być??
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

A co chciałeś osiągnąć tym warunkiem na czas ?

Po pierwsze zawiera zbyt dużo elementów. Powinien zawierać ich 6, zawiera 7. Jak już to skasujesz i warunek będzie poprawny językowo to oznacza on że będzie występował 0 sekund i 0 minut po każdej 10 godzinie. O to Ci chodziło ?

https://crontab.guru/#*_*_*_*_*

Możesz warunki testować tutaj, pamiętaj jednak żeby po zrobieniu odpowiedniego warunku na powyższej stronie dopisać z przodu jeszcze jedną * (strona nie obsługuje sekund). Zobacz sobie jaka jest różnica pomiędzy 0 a *

Drugi warunek jest sprawdzany przy zmianie dowolnego z uwarunkowanych kanałów. Jak zmieni się jeden z nich sprawdzany jest cały warunek. Jeśli wszystkie światła są wtedy wyłączone - warunek jest prawdziwy.

Co chcesz osiągnąć ?
Awatar użytkownika
PuteR
Posty: 1421
Rejestracja: śr gru 06, 2017 10:07 am

Beku pisze: ndz lut 23, 2020 6:59 am A co chciałeś osiągnąć tym warunkiem na czas ?

Po pierwsze zawiera zbyt dużo elementów. Powinien zawierać ich 6, zawiera 7. Jak już to skasujesz i warunek będzie poprawny językowo to oznacza on że będzie występował 0 sekund i 0 minut po każdej 10 godzinie. O to Ci chodziło ?

https://crontab.guru/#*_*_*_*_*

Możesz warunki testować tutaj, pamiętaj jednak żeby po zrobieniu odpowiedniego warunku na powyższej stronie dopisać z przodu jeszcze jedną * (strona nie obsługuje sekund). Zobacz sobie jaka jest różnica pomiędzy 0 a *

Drugi warunek jest sprawdzany przy zmianie dowolnego z uwarunkowanych kanałów. Jak zmieni się jeden z nich sprawdzany jest cały warunek. Jeśli wszystkie światła są wtedy wyłączone - warunek jest prawdziwy.

Co chcesz osiągnąć ?
OK, a więc chcę uzyskać coś takiego żeby co 10 min informowało mnie że dane światło lub światła nadal jest włączone i tak aż do jego wyłączenia. Ustawiłem coś takiego

Kod: Zaznacz cały

trigger: 'ontime'
    time: '* */2 * * * *'
    condition: '%channel_414% == 1 && %channel_225% == 1'
ale działa to dziwnie, powiadomienie wyskakuje mi tylko raz i to odrazu po minucie mimo w tym przypadku ustawienia 2 min (dla testu) i później się już nie pojawia w ogóle.
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Nie przeczytałeś opisu na github.
Poczytaj o parametrze reset.

By default, the notification will only be sent the first time the condition is checked (if it is met). For example, for the temperature condition% channel_12% <15, it is met if the temperature value of channel 12 falls below 15 degrees - a notification will be sent. However, it will not be sent again until the temperature rises above 15 degrees and falls below it again. If you set the reset mode parameter to none, notifications will be sent each time the condition is checked, if the temperature is still below 15 degrees.
To co wpisałeś oznacza ze warunek będzie sprawdzany co sekundę po każdej 2 minucie każdej godziny (oczywiście z uwzględnieniem mechanizmu reset).

Zobacz sobie jaka jest różnica pomiędzy tym:

https://crontab.guru/#0_*/2_*_*_*

a tym:

https://crontab.guru/#*_*/2_*_*_*

Tam możesz kliknąć na tej stronie na next to pokaże Ci kiedy będą kolejne wywołania.

Oczywiście jak już pisałem wcześniej tam nie ma sekund wiec pokazałem Ci analogiczny przykład na godzinach i minutach.
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

* AKTUALIZACJA *

- dodano możliwość przetestowania warunku czasowego.
W tym celu należy wywołać:

Kod: Zaznacz cały

./supla-pushover -ct "0 0 22 * * *" 
Program wypisze na ekran 20 kolejnych wywołań warunku wprowadzonego w cudzysłów.

Kod: Zaznacz cały


./supla-pushover -ct "0 0 22 * * *"
SUPLA-PUSHOVER v1.0.0
next 20 executions: 
Sun Feb 23 22:00:00 2020
Mon Feb 24 22:00:00 2020
Tue Feb 25 22:00:00 2020
Wed Feb 26 22:00:00 2020
Thu Feb 27 22:00:00 2020
Fri Feb 28 22:00:00 2020
Sat Feb 29 22:00:00 2020
Sun Mar  1 22:00:00 2020
Mon Mar  2 22:00:00 2020
Tue Mar  3 22:00:00 2020
Wed Mar  4 22:00:00 2020
Thu Mar  5 22:00:00 2020
Fri Mar  6 22:00:00 2020
Sat Mar  7 22:00:00 2020
Sun Mar  8 22:00:00 2020
Mon Mar  9 22:00:00 2020
Tue Mar 10 22:00:00 2020
Wed Mar 11 22:00:00 2020
Thu Mar 12 22:00:00 2020
Fri Mar 13 22:00:00 2020

Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

* AKTUALIZACJA *

- dodano możliwość wykonywania dowolnego polecenia systemowego.

w definicji warunku doszła możliwość zdefiniowania właściwości command: "tresc polecenia"

Dzięki temu możemy wykonywać polecenia (np. wywoływać linki, poberać dane, wysyłać dane odpalać skrypty) kiedy dany warunek jest spełniony.

Przypominam, że do dyspozycji są 3 rodzaje wyzwalaczy: onchange (jeśli którykolwiek z owarunkowanych kanałów się zmieni), ontime (zadany czas), onconnection (zmiana stanu online/offline) kanału.

Do każdego z powyższych możemy dopisać command.

Do czego to może służyć:

Np, możemy budować proste sceny:

Kod: Zaznacz cały

 - trigger: 'onchange'
    condition: '%channel_12% == 1'
    command: 'curl direct_link/direct/3XXXX/turn-on'
    message: 'enabling channel 13!'
    

 - trigger: 'onchange'
    condition: '%channel_13% == 1'
    message: 'it's working!'
    
  


ODPOWIEDZ

Wróć do „Pomysły i koncepcje”