Powiadomienia
Wyczyść wszystko

openHAB Sterowanie SCENAMI

7 Wpisów
3 Użytkownicy
0 Likes
665 Wyświetleń
(@carpov)
Wpisów: 23
Praktykant
Autor tematu
 

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
 

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: 23
Praktykant
Autor tematu
 
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
 

@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: 23
Praktykant
Autor tematu
 

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: 3981
Szefu Admin Zasłużony dla Forum, Patron Strony
 

 

@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
 

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: