Powiadomienia
Wyczyść wszystko
Domoticz
103
Wpisów
6
Użytkownicy
2
Reactions
10.4 K
Wyświetleń
Oczywiście że nie będzie działać, nawet nie wstawiłeś tego skryptu żeby zobaczyć jakie błędy wywala ?
Dodane : 24/12/2021 10:26 am
adrian reacted
Autor tematu
Niestety nie rozumiem znaczenia tych błędów.
Potrzebny skrypt nawet bez łącznika gdzie którakolwiek z grupy czujek włącza przełącznik sonoff na zadany czas kolejne naruszenia resetują czas - zastosowania do pompki CWU.
Skrypt z łącznikiem i grupą czujek też dobry dla oświetlenia które ma być włączany z różnych czujek.
Dodane : 02/01/2022 7:47 pm
@daro1003 bez urazy, ale pomoc na forum nie polega na robieniu gotowych skryptów na życzenie. Robienie za kogoś wszystkiego to dawanie ryby a co jak już się ją zje ? Kolejna ryba ? A jak rybak się zbuntuje i nie da kolejnej to leżymy tak ? Masz problem bo nie rozumiesz zacznij od podstawowych skryptów , albo wspieraj się tym co ogarniasz. Możesz sobie zrobić bloczek z kilkoma PIR i wirtualnym "motion" a potem podstawić ten motion do skryptu dzvents.
Dodane : 03/01/2022 11:28 am
Autor tematu
Tak masz rację z tym że ciężko znając instrukcje żeby wyczaic co za co odpowiada w tych skryptach. Próbowałem wstawić tabele z twojego skryptu odnośnie gaszenia świateł. Ale nie poszło, najpewniej uda się to zrobić na integrze bo w blokach też chyba tego się nie da zrobić aby którąkolwiek z grupy czujek odpalała przelacznik na dany czas.
Dodane : 03/01/2022 11:56 am
@daro1003 właśnie przez to, że bazujesz praktycznie na gotowcach nie widzisz , albo nie chcesz zobaczyć prostych rozwiązań , mając problem z korzystaniem z tabeli w dzVents , ja bym zrobił to tak , prosty blok jak poniżej
i do skryptu dzVents , który już masz sprawdzony wstawiasz motion . Cała filozofia
Dodane : 03/01/2022 6:20 pm
Autor tematu
Witam
Teraz jak już mieszkam i testuję zauważyłem że skrypt v3:
return { on = { devices = { 'Łazienka', -- nazwa wlacznik w domoticz 'Czujka Pir Łazienka' -- nazwa czujnika w domoticz } }, data = { warunek = { initial = false }, }, logging = { level = domoticz.LOG_DEBUG, marker = 'PIR Lampa', }, execute = function(dz, item) local maxSeconds = 120 local motion = dz.devices('Czujka Pir Łazienka') -- nazwa czujnika local switch = dz.devices('Łazienka') -- nazwa włacznika if item == motion then -- detekcja aktywna if motion.active and not switch.active then -- detekcja wyzwala skrypt dz.data.warunek = true switch.cancelQueuedCommands() switch.switchOn().checkFirst() elseif motion.active and switch.active and dz.data.warunek == true then switch.cancelQueuedCommands() elseif not motion.active and dz.data.warunek == true then switch.switchOff().afterSec(maxSeconds).checkFirst() end elseif item == switch and item.active and not motion.active then dz.data.warunek = false end end }
I tu pytanie do autora @isom :
Czujka zapala i gasi po ustalonym czasie - ok
Łącznik lokalny zapala i gasi ok a gdy czujka zapali i świeci się światło gaszę je łącznikiem i chcę zapalić na stałe klikam ponownie łącznikiem światło się zapala więc powinno być na stałe ale i tak zgasi je czujka. Jeśli w trakcie zapalonego światła przez czujkę zgaszę je łącznikiem i zaraz zapale łącznikiem oświetlenie nie jest na stałe. Coś mam źle w skrypcie czy po prostu tak działa ?
Zauważyłem to jeśli wszedłem do pomieszczenie zacząłem coś robić i czujka mnie nie wkrawały zgasiła światło więc ruszyłem do drzwi aby zapalić na stałe czujka mnie wtenczas wykryła zapalała ja kliknąłem zgasło kliknąłem zapaliło grzebie w pomieszczeniu i światło gaśnie.
Czy to działa prawidłowo ? Kiedy mogę sterować łącznikiem tylko jeśli wcześniej czujka nie zapaliła światła ?
Dodane : 02/04/2022 9:09 pm
@daro1003 skrypt działa jak linia opóźniona wewnętrzna w satel , włączenie na stałe nastąpi tylko wtedy gdy pierwszy zostanie użyty włącznik na ścianie. W każdym innym przypadku PIR ma priorytet.
Jak coś nie działa jak trzeba to usuń z folderu domoticz/scripts/dzVents/data
wartości trwałych danych dotyczących tego skryptu , czyli szukasz __data_scriptName.lua , gdzie scriptName to nazwa tego skryptu i usuwasz ten wpis .
Albo wstaw skrypt poniżej i po testach dostosuj czas działania czujnika
return { on = { devices = { 'Łazienka', -- nazwa wlacznik w domoticz 'Czujka Pir Łazienka' -- nazwa czujnika w domoticz } }, data = { tylko_pir = { initial = false }, }, logging = { level = domoticz.LOG_DEBUG, marker = 'PIR Lampa', }, execute = function(dz, item) local maxSec = 20 local motion = dz.devices('Czujka Pir Łazienka') -- nazwa czujnika local switch = dz.devices('Łazienka') -- nazwa włacznika if item == motion then if switch.active and motion.active then if dz.data.tylko_pir then switch.cancelQueuedCommands() switch.switchOff().afterSec(maxSec).silent().checkFirst() end elseif motion.active and not switch.active then dz.data.tylko_pir = true switch.cancelQueuedCommands() switch.switchOn().forSec(maxSec).silent().checkFirst() end else -- switch if switch.active and not motion.active then dz.data.tylko_pir = false end end end }
Dodane : 03/04/2022 10:26 am
Autor tematu
Na początek wrzuciłem skrypt działa tak samo jak ten co mam od Ciebie v3.
Usunąłem ten plik z folderu ale nadal działanie jest identyczne.
Jeśli tak musi być ok ale fajne by było jak by się dało zrobić że użycie łącznika po wcześniejszym użyciu czujki daje oświetlenie aż do zgaszenia.
Mam dwa pomieszczenia gdzie są przejściowe i zawsze jak wejdę czujka mnie złapie i zapala i częsty tylko przechodzę ale czasem wchodzę i siadam w pomieszczeniu czujka mnie nie widzi gasi ruszę do łącznika zapala no i nie włączę na stałe.
Dodane : 03/04/2022 11:26 am
Odseparuj włącznik od lampy to się da , w innym przypadku to tak jak bym Cię poprosił żebyś zrobił czujnik opóźniony warunkowy ale żeby zawsze dawał opóźnienie nawet jak wcześniej nie naruszę czujki od której ten warunek zależy.
Możesz też dołożyć w tym pomieszczeniu jakiś włącznik tam gdzie siedzisz , ten włącznik ma nic nie włączać tylko blokować wyłączenie przez PIR
Dodane : 03/04/2022 12:10 pm
Autor tematu
Pewno tak zostanie bo żeby to odseparować musiałbym lokalny przycisk wpiąć do innego ESP i ustawić włączanie tego Switcha do którego wpięta jest żarówka ?
A siadam przed kompem więc zawsze mogę odpalić jak zgaśnie z dashticza na stałe.
Ogólnie skrypt jest ok wykorzystuje go do oświetlenia nocnego korytarzy tam mam opcje z wschodem i zachodem więc w dzień nie odpala.
Kilka postów wcześniej pisałeś mi @isom że mogę w jednym bloku zrobić konwersje czujek z wskaźnika Satela 0 / 3 na ON / OFF w domoticz jeśli walne to w jednym bloku to nie działa. A gdy rozdzielę to na osobne bloki działa.
Dodane : 03/04/2022 12:18 pm
@daro1003 w szereg linii czujnika kontaktron na biurku , nawet radiowy i jak siedzisz to rozwierasz kontaktron . Albo jakieś radio jednokanałowe i po sprawie . Ewentualnie nawet sonoff basic który będzie widziany w domoticz , ale nic nie będzie włączał , wtedy zmiany w skrypcie i też będzie ok.
Co do blockly to wstaw foto bo trudno się zgaduje co tam stworzyłeś
Dodane : 03/04/2022 12:23 pm
Autor tematu
Pewno zle konstruuje blok:
I kolejne czujki dodaje w dół i nie działa jeśli natomiast każdy jest osobny jest ok.
Dodane : 03/04/2022 12:39 pm
@daro1003 w każdym układzie bloczków może być tylko jeden IF z tym niebieskim trybikiem , zamiast nieprawidłowo łączyć bloki tak jak teraz musisz klepnąć w ten trybik i dodać sobie tyle IF ile potrzebujesz
Dodane : 03/04/2022 12:57 pm
Autor tematu
A jeszcze zapytam @isom o ten blok co mi podesłałeś:
1. Czy do niego też potrzeba konwertować czujki czy mogę lecieć te co widzi Domoticz jako 1 / 3 ? Czy lepiej zrobić konwertowanie wszystkich czujek ? Teraz konwertuje tylko te które używam w skryptach do oświetlenia.
2. Czy Motion jest wirtualnym przełącznikiem który tworze i używam w skrypcie v3 jako czujnik pir ? Dzięki temu blokowi wirtualny przełącznik Motion jest aktywowany z dodanych innych pirów ?
I jeszcze pytanie odnośnie skryptów:
Skrypt Bez Lux v3 i skrypt nowy który dziś wysłałeś jakie są różnice w nich ??
Dodane : 03/04/2022 3:13 pm
Ad 1 Nic nie trzeba konwertować
Ad 2 Motion to jest wirtualny przełącznik ustawiony na typ motion , a to po to żeby ktoś go przypadkiem nie przełączył ręcznie
Ad3 to są identyczne skrypty , tylko nazwa trwałych danych jest inna , dodałem to gdybyś nie wiedział jak usunąć stare dane z folderu scripts/dzVents
Dodane : 03/04/2022 6:09 pm
Autor tematu
Ad 2 Motion - Mam w typach coś takiego jak Motion Sensor czyli to jest to ? Czy mogę wykorzystać do włączania urządzeń które mają być sterowane tylko przez system a żeby nie zostały ręcznie włączone przez przypadek czy wyłączone ?
Dodane : 03/04/2022 9:20 pm
@daro1003 zanim zadasz kolejne pytania, sprawdź czy możesz używać danego typu urządzenia do swoich potrzeb , bo pytania o oczywiste rzeczy robią śmietnik na tym forum
Dodane : 04/04/2022 10:21 am
Autor tematu
Hej @isom dopiero teraz testuję Twój skrypt do gaszenia pozostawionych świateł który wstawiłeś w tym temacie:
local THRESHOLD = 10 -- czas w minutach przez jaki oświetlenie może być ON local devicesToCheck = { 'Wiata', -- Tabela przełączników zmień nazwy na swoje 'Garaż', 'Lampki Wiatrołap', 'Lampki Korytarz', 'Strych Bok Tył', 'Strych Bok Front', 'Strych Nad Kotłownią', 'Strych Nad Domem', } return { on = { devices = devicesToCheck, timer = {'every 5 minutes between 22:00 and 06:00'},
Ustawiłem testowo na 10 minut no i niestety nie działa nie gasi a w logach błędy:
Zaradź coś jak zawsze.
Dodane : 28/03/2023 9:59 pm
Ustawiłem testowo na 10 minut no i niestety nie działa nie gasi a w logach błędy:
Pokaż jak to ustawiłeś , masz błąd w 18 linii kodu
PS. zobacz tu
local THRESHOLD = 30 local devicesToCheck = { 'lampa1', 'lampa2', 'lampa3', } return { on = { devices = devicesToCheck, timer = { 'every 5 minutes between 22:00 and 05:30' }, }, data = { warunek = { initial = {} }, }, logging = {level = domoticz.LOG_DEBUG, marker = 'Dogaszanie oświetlenia', }, execute = function(dz, item) if item.isTimer then for index, deviceName in ipairs(devicesToCheck) do local device = dz.devices(deviceName) dz.log('device name ' .. device.name, dz.LOG_DEBUG) dz.log('device state ' .. device.state, dz.LOG_DEBUG) dz.log('device lastUpdate ' .. device.lastUpdate.minutesAgo, dz.LOG_DEBUG) if device.state == 'On' and device.lastUpdate.minutesAgo >= THRESHOLD and dz.data.warunek[deviceName] ~= true then device.switchOff() dz.data.warunek[deviceName] = true end end else dz.data.warunek[item.name] = false end end }
Dodane : 28/03/2023 10:35 pm