Sterowanie Żaluzjami

W moim przypadku sterowanie żaluzji wewnętrznych Tasmota

Wymagany nod node-red-contrib-blindcontroller

https://github.com/alisdairjsmyth/node-red-contrib-blindcontroller

Dokumentacja: https://github.com/rdmtc/node-red-contrib-sun-position/wiki/blind-control

Kod:
blind_control.json (41,1 KB)

configuration: Należy ustawić swoje położenie geograficzne

Minimalne/maksymalne połozenie zaluzji


Reguły do sterowania żaluzjami

W razie pytań służę pomocą.

Dodany screenshot.

@Rafał_Kasperski

1 Like

Świetna sprawa. Dziękuje za przykłąd bo dużo przez niego się nauczyłem. Ale mam pytanko, jak kolega wyznaczył dokładnie azymut okna co do północy ?. Ja zrobiłem za pomocą kompasu w telefonie ale pytam może idzie jakoś dokładniej ??

Na :eye: potem poprawki, dokładnie nie miałem czasu tego zrobić, jestem w trakcje przenoszenia na nowy sprzęt. Tak na moje oko najlepiej wejść na Google map zmienić na Satelitę i określić azymut

1 Like

Dziękuje za odpowiedz. Ale najlepiej skierować tel z włączonym kompasem w strone gdzie zaczyna świecić i kończy i jest muszę to powiedzieć że nawet dokładne bo dosłownie 5 minut temu mi kończy się światło w oknie i zadziałało :stuck_out_tongue:

Trochę odkopuję. @artpc mam pytanie o sam nod blind i ustawienie reguł. Testuję to od wczoraj, więc na świeżo. Jak mam ustawione zamknięcie rolety wieczorem (godzina - słońce + ustawiona zmienna globalna) to się zamyka, tak jak powinno. Ale otwiera o północy. Czyli powinno być jeszcze coś, co będzie to trzymało zamknięte do rana?

Twoja Lokaluzacja i azymut.

Ustawiona praktycznie na początku, ale zastanawiam się, czy nie muszę zamienić ustawień samych rolet tam, gdzie azymut (ustawiłem wg. kompasu, na oko):


Tak się zastanawiam, czy jako min position nie powinno być właśnie zamknięcie.


Lokalizacja

No to wszystko mam ustawione. No nic, na razie jako antidotum ustawiłem regułę odpalaną o czasie 00:00, co zamyka rolety.

Zmień na swoje.
blinds.json (41,3 KB)

Set Cloud cover

Screenshot - 27.11.2023 , 01_07_33

Wrzuć swój flow zobaczę co i jak masz.

Twoje.

Moje.

Od początku używam Twojej koncepcji i kdu. Ale moze coś w regułach za bardzo namieszałem i to spowodowało wywołanie “stanu nieustalonego”. Miałem w rule gdzie sprawdza na podstawie zachmurzenia, by też sprawdzało czy house_mode jest na dzień. A u ciebie tego nie widzę to tego nie ma. Inna sprawa to kolejność ustawienia też ma pewnie znaczenie. Poprzestawiałem bardziej pod Ciebie i zobaczymy jak bedzie w nocy. Na teraz zadziałało tak, jak powinno.
—edit
@artpc zaczęło działać tak jak powinno, ale z małym wyjątkiem i może podpowiesz, bo nie bardzo rozumiem. Ta reguła co ustawia, że zamknięte do rana. Rozumiem, że po wschodzie słońca (nie dokońca, bo wybrany civil dawn, więc trochę wcześniej nawet) ale nie wcześniej niż o 7:00 w moim przypadku powinny być zamknięte, a potem się otworzyć?


Patrząc po czasach, to właśnie o 7 powinna być reakcja, a następuje o 7:20. Coś tu mi nie gra. Spojrzysz:
blind-duzy.json (16,0 KB)

odkopałem temat. Czy oprócz autoamatyzacji i różnych opcji w trybie śledzenia słońca roleta jest otwierana lub zamykana całkowicie? Interesuje mnie czy jest proporcjonalne otwieranie do pozycji słońca. Siedzę kilka dni nad testami i niestety nic mi sie nie udało wymodzić

Szukaj w opcjach Sun control. Do poprawnego działania wymagane jest zdefiniowanie azymutu (sun azimuth)

Dokumentacja: https://github.com/rdmtc/node-red-contrib-sun-position/wiki/blind-control

mam skonfigurowaną tą sekcje. Jak azymut jest poza zakresem pozycja rolety jest np. 100 otwarcia, a gdy tylko wchodzi w zakres azymutu to zamiast obliczać procent zamykania przeskakuje na 0% otwarcia czyli zamyka okno. Robiłem naprawde różne testy z różnymi wartościami, bez skutku.

Nie przerabiałem tego bo nie potrzebowałem, ale odpowiednie dane masz w domenie sun.sunazimuth, elevation

W node red.

już dołożyłem inny nod tzn. node-red-contrib-blindcontroller 4.8.6 i kombinacjami wymusiłem sterowanie roletami.

No i okazało się że jednak node-red się namyślił i jednak nod z tej paczki node-red-contrib-sun-position 3.0.0-alpha2 zaczął sterować proporcjonalnie co znacząco upraszcza kombinowanie. Teraz tylko to doszlifuję

poniżej moje wypociny
nod.json (74,9 KB)

No i lipa. Dzien chodziło ze blindcontroll sterował proporcjonalnie roletami a teraz steruje 0 i 100 czyli albo otwarte albo zamknięte.
Wrzucam debug z przykładowego okna

{“topic”:“”,“payload”:{“reason”:{“code”:9,“state”:“sun control”,“description”:“sun control”,“stateComplete”:“0 - :sunny: sun control”},“blind”:{“isDisabled”:false,“levelTop”:100,“levelBottom”:0,“increment”:1,“levelDefault”:{“type”:“levelFixed”,“value”:“open (max)”},“levelMin”:{“type”:“levelFixed”,“value”:“closed (min)”},“levelMax”:{“type”:“levelFixed”,“value”:“open (max)”},“slat”:{“type”:“none”,“value”:“”},“topic”:“”,“addId”:{“type”:“none”,“value”:“”},“overwrite”:{“active”:false,“importance”:0,“expireDuration”:600000},“levelBottomSun”:0,“levelTopSun”:100},“autoTrigger”:{“defaultTime”:300000,“time”:300000,“type”:7,“timer”:{“_idleTimeout”:300000,“_idlePrev”:{“_idleTimeout”:300000,“_idlePrev”:{“_idleTimeout”:300000,“_idlePrev”:{“_idleTimeout”:300000,“_idlePrev”:{“_idleTimeout”:300000,“_idlePrev”:{“_idleTimeout”:300000,“_idlePrev”:{“_idleNext”:“[Circular ~.payload.autoTrigger.timer._idlePrev._idlePrev._idlePrev._idlePrev._idlePrev]”,“_idlePrev”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer]”,“_idleNext”:“[Circular ~.payload.autoTrigger.timer._idlePrev._idlePrev._idlePrev._idlePrev._idlePrev._idlePrev]”,“_idleStart”:1154358,“_repeat”:null,“_destroyed”:false},“expiry”:1416128,“id”:-9007199254735949,“msecs”:300000,“priorityQueuePosition”:8},“_idleNext”:“[Circular ~.payload.autoTrigger.timer._idlePrev._idlePrev._idlePrev._idlePrev]”,“_idleStart”:1154405,“_repeat”:null,“_destroyed”:false},“_idleNext”:“[Circular ~.payload.autoTrigger.timer._idlePrev._idlePrev._idlePrev]”,“_idleStart”:1154397,“_repeat”:null,“_destroyed”:false},“_idleNext”:“[Circular ~.payload.autoTrigger.timer._idlePrev._idlePrev]”,“_idleStart”:1154392,“_repeat”:null,“_destroyed”:false},“_idleNext”:“[Circular ~.payload.autoTrigger.timer._idlePrev]”,“_idleStart”:1154387,“_repeat”:null,“_destroyed”:false},“_idleNext”:“[Circular ~.payload.autoTrigger.timer]”,“_idleStart”:1154381,“_repeat”:null,“_destroyed”:false},“_idleNext”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer]”,“_idleNext”:{“_idleNext”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer._idleNext._idleNext]”,“_idleNext”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer._idleNext._idleNext._idleNext]”,“_idleNext”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer._idleNext._idleNext._idleNext._idleNext]”,“_idleNext”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer._idleNext._idleNext._idleNext._idleNext._idleNext]”,“_idleNext”:{“_idleTimeout”:300000,“_idlePrev”:“[Circular ~.payload.autoTrigger.timer._idleNext._idleNext._idleNext._idleNext._idleNext._idleNext]”,“_idleNext”:“[Circular ~.payload.autoTrigger.timer]”,“_idleStart”:1154381,“_repeat”:null,“_destroyed”:false},“_idleStart”:1154387,“_repeat”:null,“_destroyed”:false},“_idleStart”:1154392,“_repeat”:null,“_destroyed”:false},“_idleStart”:1154397,“_repeat”:null,“_destroyed”:false},“_idleStart”:1154405,“_repeat”:null,“_destroyed”:false},“_idlePrev”:“[Circular ~.payload.autoTrigger.timer._idleNext]”,“expiry”:1416128,“id”:-9007199254735949,“msecs”:300000,“priorityQueuePosition”:8},“_idleStart”:1154358,“_repeat”:null,“_destroyed”:false},“_idleStart”:1154369,“_repeat”:null,“_destroyed”:false}},“lastEvaluated”:{“ruleId”:-1,“ruleLevel”:100,“ruleTopic”:“”,“sunLevel”:0,“level”:0,“topic”:“”},“name”:“salon 2”,“id”:“fc633b8fac98ad51”,“srcId”:“fc633b8fac98ad51”,“path”:“d3cf0ee43306a21a/fc633b8fac98ad51”,“rule”:{“importance”:0,“resetOverwrite”:false,“hasMinimum”:false,“hasMaximum”:false,“active”:false,“id”:-1,“level”:100,“topic”:“”,“code”:1,“state”:“default”,“description”:“position is set to default position because no other rule matches”},“sunPosition”:{“azimuth”:113.18124134790715,“altitude”:24.505908141512002,“zenith”:65.49409185848799,“azimuthDegrees”:113.18124134790715,“altitudeDegrees”:24.505908141512002,“zenithDegrees”:65.49409185848799,“declination”:0.12507423013091262,“azimuthRadians”:0.4277087832606689,“altitudeRadians”:1.9753853130153245,“zenithRadians”:1.1430875435342276,“ts”:1744095793005,“lastUpdate”:“2025-04-08T07:03:13.005Z”,“lastUpdateStr”:“2025-04-08T09:03:13”,“latitude”:53.9691,“longitude”:17.31465,“height”:154.99997,“angleType”:“deg”,“InWindow”:true},“level”:0,“levelInverse”:100},“reason”:{“code”:9,“state”:“sun control”,“description”:“sun control”,“stateComplete”:“0 - :sunny: sun control”},“mode”:16,“_msgid”:"67d1c1628cc7c362