Powiadomienia
Wyczyść wszystko

[Rozwiązany] Jak dorobić WŁĄCZNIK do reguły ?

9 Wpisów
4 Użytkownicy
4 Reactions
1,292 Wyświetleń
(@edass)
Wpisów: 225
Weteran
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#2012]

Cześć

Mam bardzo prostą regułę do wyłączania zasilania komputera codziennie w nocy.

 

rule "Wyłącz Kompa"
when
    Time cron "0 35 0 1/1 * ? *"
then
    
    Komputer_AFE.sendCommand(OFF)
    
end
 

 

Chciałbym aby w sitemap był przełącznik, który będzie sterował regułą (czasami potrzebuje aby komp działał całą noc) tzn. jeżeli przełącznik jest na pozycji ON to reguła się wykonuje , jeżeli na OFF to reguła się nie wykonuje ( fajnie aby też ten przełącznik po przestawianiu na OFF sam się następnego dnia ustawiał na ON).  

 

Pozdrawiam!


 
Dodane : 14/11/2020 5:28 pm
(@ldywicki)
Wpisów: 78
Kontrybutor
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Cześć,

Nie jestem pewien dokładnej składni, reguł, natomiast masz możliwość określenia warunku dla wyzwalacza (część when) lub wewnątrz reguły poprzez warunek if. Potrzebujesz wówczas odwołać się do itemu. Pseudokod:


rule "Wyłącz Kompa"
when
Time cron "0 35 0 1/1 * ? *"
then
if (Komputer_AFE.state == ON) {
Komputer_AFE.sendCommand(OFF)
}
end

Oczywiście całość do zweryfikowania. 🙂


 
Dodane : 13/01/2021 2:38 pm
edass zareagował
adrian
(@adrian)
Wpisów: 4083
Szefu Admin Zasłużony dla Forum, Patron Strony
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

do tego co napisał @ldywicki musisz zdefiniować dodatkowy Item, nie może to być ten sam co włącza / wyłącza komputer

Switch Automate_Komputer_OnOff

Przełącznik oznacza to:

  • jeśli ON to automatyzuje wyłączanie kompa
  • jeśli OFF to nie ma automatycznego wyłączania kompa

Oczywiście możesz sobie zrobić odwrotnie

 

rule "Wyłącz Kompa"
when
Time cron "0 35 0 1/1 * ? *"
then
if (Automate_Komputer_OnOff.state!=OFF && Komputer_AFE.state!=OFF) {
Komputer_AFE.sendCommand(OFF)
}

if (Automate_Komputer_OnOff.state!=ON) {
Automate_Komputer_OnOff.postUpdate(ON)
}

end

 
Dodane : 14/01/2021 10:24 am
edass zareagował
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@adrian z czystej ciekawości , w OH nie ma możliwości użycia innych zależności czasowych niż cron ? Już któryś raz widzę regułę która bazuje na zdarzeniach w cron i zastanawia mnie czy nie można użyć innego mechanizmu - skryptu ?

A może tak jest po prostu wygodniej ?


 
Dodane : 14/01/2021 11:40 am
(@edass)
Wpisów: 225
Weteran
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dzięki za info. W przyszłości przetestuje.

U mnie rozwiązanie bazujące na cronie jest wystarczające ale zastanawiam się czy nie było by wygodniej stworzyć element , który z pozycji aplikacji na telefonie pozwoli nam wybrać/wprowadzić godzinę zdarzenia . Coś jakby harmonogram ale z możliwością konfiguracji z telefonu a nie na sztywno w regule. 

 

Pozdrawiam


 
Dodane : 14/01/2021 11:53 am
(@ldywicki)
Wpisów: 78
Kontrybutor
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @isom

@adrian z czystej ciekawości , w OH nie ma możliwości użycia innych zależności czasowych niż cron ? Już któryś raz widzę regułę która bazuje na zdarzeniach w cron i zastanawia mnie czy nie można użyć innego mechanizmu - skryptu ?

A może tak jest po prostu wygodniej ?

Ogólnie większość skryptów, które widziałem działało w oparciu o timery. Na przykład gdy chcesz odbić przycisk po 2 minutach to uruchamiasz timer i robisz to nim. W OH3 do tego typu scenariuszy wprowadzili oficjalną obsługę czegoś co się nazywa `expiry`.

Nie mniej sama obsługa zdarzenia w danym czasie, np codziennie o 5 (gdzie jest to parametr) sprowadza się do stworzenia itema typu DateTime widocznego z UI, który przetrzymuje sam czas (DateTime w OH jest kontenerem na datę, czas lub obydwie rzeczy). W drugim miejscu skrypt/reguła wykorzystuje to jako parametr do podjęcia akcji.

Na oficjalnym forum jest to określone jako "time of day design pattern".


 
Dodane : 14/01/2021 12:47 pm
edass zareagował
adrian
(@adrian)
Wpisów: 4083
Szefu Admin Zasłużony dla Forum, Patron Strony
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@isom w zależności jak jest potrzeba, wybrałem co mi przyszło do głowy z czasem

- jest cron, czyli tak jak wyżej on determinuje kiedy odpalić regułę, np o godzine, co 5 sek itd wiesz jak działa na 100%
- jest też wyzwalacz: at a fixed time of the day - wybierasz godzinne np. o 1:10 i leci cos tam
- jest takie czasowo - zdarzeniowe, np. wschód słońca, skończyła się noc, jest ciemno - na bazie lokalizacji i astro danych - dokładny czas zmienia się każdego dnia oczywiście
- jest coś jeszcze takiego jak Efemerydy, ale mam to najmniej rozpykane. Efemerydy są regionalne. Mniej więcej co dostajesz to informacje typu: dzisiaj jest święto narodowe lub następne święto narodowe jest za X dni - no i możesz to wykorzystać. Możesz to sobie jeszcze pod siebie zrobić wprowadzając własne wydarzenia np. "oświadczyłem się żonie", "Urodziny żony: - tego typu "Efemerydy" żeby nie dostać ścierą później. Natomiast moje rozumienie Efemerydów jest bardzie astrologiczne, a w OH jest bardziej wydarzeniowe.


 
Dodane : 14/01/2021 1:33 pm
edass zareagował
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Ok dzięki Panowie @ldywicki i @adrian , nie będę drążył dalej bo to mnie satysfakcjonuje , Efemerydy mi się podobają :)) Ja muszę sobie takie Efemerydy zbudować sam , uzywająć narzędzi LUA i cron 


 
Dodane : 14/01/2021 1:56 pm
(@edass)
Wpisów: 225
Weteran
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @adrian

do tego co napisał @ldywicki musisz zdefiniować dodatkowy Item, nie może to być ten sam co włącza / wyłącza komputer

Switch Automate_Komputer_OnOff

Przełącznik oznacza to:

  • jeśli ON to automatyzuje wyłączanie kompa
  • jeśli OFF to nie ma automatycznego wyłączania kompa

Oczywiście możesz sobie zrobić odwrotnie

 

rule "Wyłącz Kompa"
when
Time cron "0 35 0 1/1 * ? *"
then
if (Automate_Komputer_OnOff.state!=OFF && Komputer_AFE.state!=OFF) {
Komputer_AFE.sendCommand(OFF)
}

if (Automate_Komputer_OnOff.state!=ON) {
Automate_Komputer_OnOff.postUpdate(ON)
}

end

 

 

Dzięki nie pomyślałem, żeby zrobić wirtualny switch...

Jak już pisałem słaby jestem z programowania ale dlaczego robisz tak skomplikowaną regułę? Ja się ograniczyłem do tego:

items

Switch  Rules_komputer              "Automatyczne wyłączanie komputera"
 
rules
rule "Wyłącz Kompa"

when

    Time cron "0 35 0 1/1 * ? *"

then

    if (Rules_komputer.state == ON)

        Komputer_AFE.sendCommand(OFF)

    else

        Rules_komputer.postUpdate(ON)

end
 

 
Dodane : 30/01/2021 5:59 pm
Udostępnij: