Powiadomienia
Wyczyść wszystko

[Rozwiązany] Astro i reguły

8 Wpisów
2 Użytkownicy
0 Likes
1,454 Wyświetleń
(@slawek_sp1)
Wpisów: 7
Bywalec
Autor tematu
 

Witam!

Posiadam taką regułe:

rule " garaz"
when
Item Sonoff03_sensor changed
then
if (Sonoff03_sensor.state == OPEN ) {
Sonoff03_Switch.sendCommand(ON)
createTimer(now.plusSeconds(120), [ |
Sonoff03_Switch.sendCommand("OFF")
])
}
end

rule "wylacz swiatlo w garazu"
when
Item Sonoff03_sensor changed
then
if (Sonoff03_sensor.state == CLOSED ) {
Sonoff03_Switch.sendCommand(OFF)
}
end

Czyli po otwarciu bramy lampa świeci 2 minuty i się wyłącza. Jak dodać do tej reguły wpis żeby lampa włączała się tylko po zachodzie słońca a po wschodzie już nie?

 
Dodane : 08/02/2020 2:51 pm
adrian
(@adrian)
Wpisów: 3981
Szefu Admin Zasłużony dla Forum, Patron Strony
 

Ja mam u siebie dwie reguły, które ustawiają mi dodatkowy item, który jest ON jak jest ciemno

Wykorzystuję astro binding

Item

Switch jest_ciemno

reguły

rule"Start of day light"
when
 Channel "astro:sun:local:daylight#event" triggered START
then
 jest_ciemno.sendCommand(OFF)
end

rule"End of day light"
when
 Channel "astro:sun:local:daylight#event" triggered END
then
 jest_ciemno.sendCommand(ON)
end
 
później do warunku włączania lampy możesz dodać
 
(...)

if (Sonoff03_sensor.state == OPEN && jest_ciemno.state == ON ) {

(...)

 
 
Dodane : 08/02/2020 6:10 pm
(@slawek_sp1)
Wpisów: 7
Bywalec
Autor tematu
 

Dziękuję, regułka działa, ale zastanawiam się czy jest możliwość zrobienia tego bez dodatkowego Switcha? Pozdrawiam! 😀 

 
Dodane : 09/02/2020 12:19 pm
adrian
(@adrian)
Wpisów: 3981
Szefu Admin Zasłużony dla Forum, Patron Strony
 

prawdopodobnie jest. Mi zależało na czasie w którym jest światło na zewnątrz, co nie jest jeden do jednego z czasem wschodu / zachodu słońca.

musisz poszukać jakiegoś item, który już informuje jaka jest pora dnia, może w astro binding jest już taki item lub jakiś systemowy openHab'owy

 
Dodane : 09/02/2020 1:10 pm
(@slawek_sp1)
Wpisów: 7
Bywalec
Autor tematu
 

Oki. Będziemy działać. Od niedawna używam OH jest super, ale kilka spraw nie daje mi spokoju. Żeby stwierdzić że jakiś sonoff jest offline,trzeba stworzyć dodatkowy switch (nie można wyłączyć lub wyszarzyć?) w tej chwili mam zrobione statusy sonoff i w ten sposób sprawdzam czy jest offline. Regułka astro dodatkowy switch.  I tak tworzymy kilka switchy jak dla mnie niepotrzebnie.

Dzięki za info i pozdawiam!

 
Dodane : 09/02/2020 2:55 pm
(@slawek_sp1)
Wpisów: 7
Bywalec
Autor tematu
 

Dobra, dałem radę. Uświadomiłem sobie że wcale nie muszę wyświetlać tego switcha w sitemap. Mama jeszcze jedno pytanie do Adriana. Gdzieś czytałem na forum, że zapisujesz stan switchy do bazy danych i przy restarcie są one przywracane do odpowiednich pozycji. Czy mógłbyś przybliżyć jak to robisz. Ja OH mam postawionego na QNAP i używam MySQL do gromadzenia danych.

 
Dodane : 09/02/2020 11:44 pm
adrian
(@adrian)
Wpisów: 3981
Szefu Admin Zasłużony dla Forum, Patron Strony
 

Do przechowywania ostatniej wartości używam bazy danych mapDB

http://www.mapdb.org/

oraz odpowiedniego dla niej bindingu w OH

https://www.openhab.org/addons/persistence/mapdb/

 

Mam tak ustawioną konfiguracje: 

mapdb.persist

Strategies {
default=everyChange, restoreOnStartup
}
Items {
   * : strategy = everyChange, restoreOnStartup
}

Zapisuje w niej wszystkie swoje item, bo chcę, żeby przy starcie była pokazana ostatnia wartość: obojętnie, czy to switch, czy temperatura

Baza mapdb przechowuje tylko ostatnią wartość

 

Oprócz tego ma normalną bazę ja używam influxDB do przechowywania danych pod analizy.

 

Jak dodasz do persist dla mysql 

default=everyChange, restoreOnStartup

oraz do items

, restoreOnStartup

to też powinno działać

 
Dodane : 10/02/2020 12:56 am
(@slawek_sp1)
Wpisów: 7
Bywalec
Autor tematu
 

Wielkie dzięki Adrian! Teraz już wszystko jest oki.

Pozdrawiam!

 
Dodane : 10/02/2020 7:04 am
Udostępnij: