Powiadomienia
Wyczyść wszystko

openHAB Sterowanie SCENAMI

7 Wpisów
3 Użytkownicy
0 Reactions
1,532 Wyświetleń
(@carpov)
Wpisów: 26
Kontrybutor
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
 
[#2498]

Cześć

Mam do włączników dotykowych przypisane reguły uruchamiające odpowiednie sceny. SW1 uruchamia SCENA_1, SW2 uruchamia SCENA_2.

rule "SCENE_1_ON"
when
    Item SW1 changed from OFF to ON
then
    Scene_1.sendCommand(ON)   
end

rule "SCENE_1_OFF"
when
        Item SW1 changed from ON to OFF
then
    Scene_1.sendCommand(OFF)
end

rule "SCENE_2_ON"
when 
    Item SW2 changed from OFF to ON    
then
    Scene_2.sendCommand(ON) 
end

rule "SCENE_2_OFF"
when
        Item SW2 changed from ON to OFF
then
    Scene_2.sendCommand(OFF)
end

 

W jaki sposób wykonać to przypisanie aby możliwe było uruchomienie tylko jednej z nich. Tzn wywołanie pierwszej deaktywuje drugą, a wywołanie drugiej deaktywuje pierwszą.

1) Uruchom SCENA_1

Jeśli SCENA_2 jest aktywna -> deaktywuj SCENA_2 i uruchom SCENA_1

2) Uruchom SCENA_2

Jeśli SCENA_1 jest aktywna -> Deaktywuj SCENA_1 i uruchom SCENA_2

 

Z góry dziękuję za pomoc


 
Dodane : 26/09/2021 10:14 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ść, wewnątrz reguły możesz odnosić się też do innych "itemów". Czyli nawet jeśli wyzwalaczem reguły jest switch1 to możesz wysłać polecenie do switch2. Generalnie jeśli masz sytuację w której potrzebujesz "resetować" stan to możesz zrobić grupę, która będzie miała wszystkie oprawy. Wówczas na początku każdej reguły dajesz G_Lights.sendCommand(OFF) i później już ON tylko do opraw, które powinny być aktywne w danej scenie.


 
Dodane : 26/09/2021 10:36 pm
(@carpov)
Wpisów: 26
Kontrybutor
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: @ldywicki

wewnątrz reguły możesz odnosić się też do innych "itemów". Czyli nawet jeśli wyzwalaczem reguły jest switch1 to możesz wysłać polecenie do switch2.

Tak zdaję sobie z tego sprawę. Kombinuję na różne sposoby. Z warunkowaniem i bez....efekt ten sam. tj:

Uruchom SCENA1 -> deaktywacja SCENA2 -> SCENA1 uruchamia się na chwilę i też się deaktywuje

 


 
Dodane : 26/09/2021 10:53 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
 

@carpov Pytanie, dość prozaiczne - czy nie masz jakoś połączonych itemów? Jeśli obserwujesz zachowanie takie jak wyżej to warto sprawdzić w logach czy nie dostajesz jakiegoś dodatkowego stanu po wykonaniu reguły (evnet.log).


 
Dodane : 26/09/2021 10:58 pm
(@carpov)
Wpisów: 26
Kontrybutor
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
 

Dobra mam. Może mało eleganckie rozwiązanie ale w końcu działa. Sprawdziłem logi. Rzeczywiście operację deaktywacji i aktywacji scen "nachodziły" na siebie wzajemnie. Ma tu też prawdopodobnie znaczenie szybkość działania sterownika RGBW.

INACZEJ mówiąc kiedy sterownik otrzymał polecenie aktywacji danej sceny , deaktywacja jeszcze trwała...dlatego dodałem opóźnienia przed aktywacją danych scen

rule "R1_BLUE_SCENE_ON"
when
    Item TSW1_SW1 changed from OFF to ON
then
    TSW1_SW2.sendCommand(OFF)
    Thread::sleep(500)
    Scene_BLUE.sendCommand(ON)
      
end

rule "R2_BLUE_SCENE_OFF"
when
        Item TSW1_SW1 changed from ON to OFF
then
    Scene_BLUE.sendCommand(OFF)
    
end

rule "R3_WHITE_SCENE_ON"
when 
    Item TSW1_SW2 changed from OFF to ON    
then
    TSW1_SW1.sendCommand(OFF)
    Thread::sleep(500)
    Scene_WHITE.sendCommand(ON) 
end

rule "R4_WHITE_SCENE_OFF"
when
        Item TSW1_SW2 changed from ON to OFF
then
    Scene_WHITE.sendCommand(OFF)
end

 

 

Potestuje to. Na razie jest OK


 
Dodane : 26/09/2021 11:26 pm
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
 

 

@carpov hej, do rozważenia może zamiast 4 items do scen zrobić jeden

np.: Item sceny, który może mieć np. 4 wartości (4 sceny)

A pózniej w zależności od wartości sceny robić odpowiednie akcje

- może trochę uprości.

Tak mam zrobione u siebie i efekt w UI jest jak na załączonych screenach z BasicUI oraz HabPanela. NIe trzeba się bawić w ustawianie/zmienianie stanów każdego z tych przycisków do Scen.

- u mnie te sceny odpowiadają za światło, security, TV, czujniki ruchu, domofon. 

U góry : Rano, Dzień itd

 

Screenshot from 2021 09 27 09 35 29

To samo co powyżej ale po lewej u góry przycisk [Tryb Dzienny], po wciśnięciu którego pojawiają się sceny do wyboru

habpanel 1
Screenshot from 2021 09 27 09 34 43

 
Dodane : 27/09/2021 9:46 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
 

Mogę dodać że w 2.5/3.0 można dla itemu w metadanych określić "stateDescription" a także mapowanie lcizb/cyfr/ciągów na wartość opisową. Pozwala to na korzystanie w logice z porównań opartych o liczby lub skróty.

Prezentowanie dla użytkownika jest wówczas niezależne od "identyfikatora technicznego" scen a w samym interfejsie użytkownika (pod 3.0) można zrobić pętlę po możliwych stanach itema (bodajże loop+item states).


 
Dodane : 27/09/2021 10:25 am
Udostępnij: