dzVents switch+moti...
 
Powiadomienia
Wyczyść wszystko

Pomoc dzVents switch+motion

xeno
 xeno
(@xeno)
Początkujący

Witam! Poniższy skrypt działa tak jak chciałbym aby działał (wszystkie switche on/off), ale nie potrafię zamienić switcha "My" na switch on/off ping ustawiony jako motion. Moje próby nie przyniosły efektu.

return {
on = {
		devices = {
			'Noc', 'My',}
},
logging = {
           level = domoticz.LOG_DEBUG,
            marker = 'Lampa Noc',
},
execute = function(dz, item)
	local switch = dz.devices('Noc') 
	local switch1 = dz.devices('Lampa') 
	local switch2 = dz.devices('My') 
	if item == switch then
		if switch.state == 'On' and switch2.state == 'On' then 
			switch1.switchOn().checkFirst()
		else
			switch1.switchOff().checkFirst()
		end
	end
	if  item == switch2 and switch2.state =='Off' then
		switch1.switchOff().checkFirst()
	end
	end
}
Cytuj
Autor tematu Dodane : 13/05/2022 12:50 pm
steel_rat
(@steel_rat)
Ekspert

A w którym miejscu w kodzie kolega ustawia przełącznik "My" na ON czy tam OFF. Bo tu nie widać. Generalnie powinno działać.

Ewentualnie pokaż jak masz zdefiniowany ten przełącznik "My".

switch2.switchOff().checkFirst()
lub
switch2.switchOn().checkFirst()
OdpowiedzCytuj
Dodane : 13/05/2022 5:57 pm
xeno
 xeno
(@xeno)
Początkujący

@steel_rat  zamiast obecnego "My" chciałbym wstawić PIR (on/of z pinga ustawiony na motion) ale jak zastąpię switch2 --> motion.active to to nie działa.

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 6:06 pm
steel_rat
(@steel_rat)
Ekspert

Rozumiem że używasz plugina w Domoticzu do pingowania?

OdpowiedzCytuj
Dodane : 13/05/2022 6:22 pm
xeno
 xeno
(@xeno)
Początkujący

@steel_rat Tak dokładnie chcę użyć pinga (alive checker).

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 6:29 pm
steel_rat
(@steel_rat)
Ekspert

Czy przypadkiem nie wzorujesz się na tym temacie

https://www.smartnydom.pl/forum/domoticz/httpresponse/#post-23794

Tu praktycznie ten sam skrypt działa.Wtedy coś takiego stworzyłem

return {
on = {
		devices = {
			'GarażR', 'TVPhilips',}
},
logging = {
           level = domoticz.LOG_DEBUG,
            marker = 'PIR Garaż',
},
execute = function(dz, item)
	local motion = dz.devices('GarażR') -- nazwa czujnika
	local switch = dz.devices('TekstTV') -- nazwa włacznika
	local motion1 = dz.devices('TVPhilips') -- nazwa ping (ustawiony jako motion sensor)
	if item == motion then
		if motion.active and motion1.active then -- detekcja wyzwala skrypt
			switch.switchOn().checkFirst()
		else
			switch.switchOff().checkFirst()
		end
	end
	if  item == motion1 and not motion1.active then
		switch.switchOff().checkFirst()
	end
}

 

ten motion był ustawony jako "contact"

OdpowiedzCytuj
Dodane : 13/05/2022 6:33 pm
xeno
 xeno
(@xeno)
Początkujący

@steel_rat Tak patrzyłem jak to ustawiłeś tam --> akcja zależy od wykrycia ruchu i spełnienia warunku obecności 2 motion true. U mnie miało być tak, że akcja "Noc" powoduje załączenie switch1 ale wtedy kiedy motion jest aktiv.

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 6:50 pm
steel_rat
(@steel_rat)
Ekspert

Wystarczy usunąć "not" przed "motion1.active"

OdpowiedzCytuj
Dodane : 13/05/2022 6:52 pm
xeno
 xeno
(@xeno)
Początkujący
Dodane przez: @steel_rat

Wystarczy usunąć "not" przed "motion1.active"

U mnie "Noc" i "Lampa" to są switche ON/OFF a "My" to switch (alive ping) ustawiony na motion. Więc jak zmienię jak proponujesz to w przypadku kiedy "My" bedzie aktiv wyłaczy "Lampę" a ma być jak jest czyli

if  item == switch2 and switch2.state =='Off' then
		switch1.switchOff().checkFirst()

 

 

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 7:05 pm
xeno
 xeno
(@xeno)
Początkujący

Coś w tym stylu :

return {
on = {
devices = {
'Noc', 'My',}
},
logging = {
level = domoticz.LOG_DEBUG,
marker = 'Lampa Noc',
},
execute = function(dz, item)
local switch = dz.devices('Noc')
local switch1 = dz.devices('Lampa')
local motion = dz.devices('My')
if item == switch then
if switch.state == 'On' and motion.state == 'On' then
switch1.switchOn().checkFirst()
else
switch1.switchOff().checkFirst()
end
end
if item == motion and motion.state == 'Off' then
switch1.switchOff().checkFirst()
end
end
}
OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 7:13 pm
steel_rat
(@steel_rat)
Ekspert

No to jak masz go jako motion to on ma wartości "ON" i "OFF" a nie "Active".

czyli powinno działać ostatni Twój wpis.

OdpowiedzCytuj
Dodane : 13/05/2022 7:13 pm
xeno
 xeno
(@xeno)
Początkujący
Dodane przez: @steel_rat

No to jak masz go jako motion to on ma wartości "ON" i "OFF" a nie "Active".

W Twoi skrypcie masz motion jako contact a on daje open i closed a używasz aktiv / not activ ??

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 7:24 pm
xeno
 xeno
(@xeno)
Początkujący
Dodane przez: @steel_rat

No to jak masz go jako motion to on ma wartości "ON" i "OFF" a nie "Active".

czyli powinno działać ostatni Twój wpis.

Czyli jak zmienię "zwykłego" mojego swicha "my" i ustawie go jako motion to powinno zadziałać ? bo nie zmieniam stanu tzn. dalej jest to on/off ?

OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 7:28 pm
steel_rat
(@steel_rat)
Ekspert
Dodane przez: @xeno
Dodane przez: @steel_rat

No to jak masz go jako motion to on ma wartości "ON" i "OFF" a nie "Active".

czyli powinno działać ostatni Twój wpis.

Czyli jak zmienię "zwykłego" mojego swicha "my" i ustawie go jako motion to powinno zadziałać ? bo nie zmieniam stanu tzn. dalej jest to on/off ?

Tak. A nawet możesz dodać jakieś akcje z poziomu domoticza.

 

OdpowiedzCytuj
Dodane : 13/05/2022 7:42 pm
xeno polubień
steel_rat
(@steel_rat)
Ekspert
Dodane przez: @xeno
Dodane przez: @steel_rat

No to jak masz go jako motion to on ma wartości "ON" i "OFF" a nie "Active".

W Twoi skrypcie masz motion jako contact a on daje open i closed a używasz aktiv / not activ ??

A po polsku mam Otwarte i Zamknięte. Ale wartości jego w skryptach zwraca zmienna Active. Czyli przycisk jest aktywny lub nie. Najlepiej popatrzeć do helpa. Ale tu metodą dedukcji jak "Active" wywala błąd to zostaje "State".

 

OdpowiedzCytuj
Dodane : 13/05/2022 7:47 pm
xeno
 xeno
(@xeno)
Początkujący

@steel_rat Dziękuję za pomoc i wyjaśnienia, skrypt podany na początku, który działał działa dalej (niepotrzebnie motałem się z tym motion.activ). Zauważyłem, że mogę ustawić "Plany" w moim "Noc" i też działa. Super jeszcze raz dziękuję.

 

 
OdpowiedzCytuj
Autor tematu Dodane : 13/05/2022 7:47 pm
Udostępnij: