Raspberry Pi 3B+ z ...
 
Powiadomienia
Wyczyść wszystko

Raspberry Pi 3B+ z Domoticz - jak utrzymać stan GPIO po restarcie?

7 Wpisów
2 Użytkownicy
0 Reactions
117 Wyświetleń
Daro1003
(@daro1003)
Wpisów: 814
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 

Witam

Mam taki mały defekt mianowicie do GPIO Raspberry podłączone wejście Integry które informuje integre o zachodzie i wschodzie słońca. Czyli po zachodzie aktywacja GPIO które narusza wejście w Integrze.

Problem jest taki że np po utracie zasilania i powrocie raspberry do życia w domoticz odpowiadający za to przełącznik jest aktywny - włączony czyli wygląda że jest ok domoticz zapamiętał stan ale GPIO na płycie raspberry nie jest aktywne czyli nie narusza wejścia w integrze muszę przeklikać ten przełącznik w domoticz aby aktywować GPIO.

Jak to rozwiązać ? Olać GPIO i podłączyć jakieś drugie urządzenie np sonoff który będzie pamiętał stan po restarcie ??
Myślałem że wysterowanie z GPIO będzie najbardziej stabilne w działaniu bo bez pośrednich urządzeń.

 
Dodane : 28/12/2024 7:49 pm
(@janumix)
Wpisów: 5
Bywalec
 

Cześć. 

W Dzvents jest event wysyłany gdy Domoticz wstaje:

system = { …} 3.0.0

A list of one or more system triggers.

  • stop, start, manualBackupFinished, dailyBackupFinished, hourlyBackupFinished, monthlyBackupFinished, resetAllDeviceStatus, 3.1.5 resetAllEvents, 3.1.5
  • The name of the system-event followed by a time constraint, such as: ['start'] = { 'at 15:*', 'at 22:* on sat, sun' } The script will be executed if domoticz is started, and it is either between 15:00 and 16:00 or between 22:00 and 23:00 in the weekend. See <a href=" usunięty link :_next_generation_Lua_scripting#timer_trigger_rules">time trigger rules.
    • start - fired when Domoticz has started.

Może prosty skrypt, który w momencie startu Domoticz jeszcze raz ustawi GPIO ? 

To pomysł - nie używałem tego event-u nigdy.

Pozdr.

Jansuz

 

 
Dodane : 05/01/2025 1:28 pm
Daro1003
(@daro1003)
Wpisów: 814
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 

@janumix jak taki skrypt stworzyć ? Bo ja w skryptach to zero ?

To co podesłałeś to jakiś przykład ??

 
Dodane : 07/01/2025 8:26 pm
(@janumix)
Wpisów: 5
Bywalec
 

@daro1003 

to kawałek dokumentacji do skryptów dzVents w Domoticz:

https://wiki.domoticz.com/DzVents:_next_generation_Lua_scripting#system_=_{_%E2%80%A6}_3.0.0

Tak jak pisałem - nie korzystałem z tego eventu ani z GPIO w RPI ale spróbuj coś takiego prostego (Konfiguracja -> Więcej opcji -> Zdarzenia, potem + -> dzVents -> System events). 

return {
	on = {
		system = {
			'start',
		},
	},
	logging = {
		level = domoticz.LOG_INFO,
		marker = 'Set GPIO',
	},
	execute = function(domoticz, triggeredItem)
		domoticz.log('Domoticz has started')
		domoticz.devices('tu nazwa Twojego urządzenia w Domoticz').switchOn()
	end
}
 
Dodane : 07/01/2025 9:44 pm
Daro1003
(@daro1003)
Wpisów: 814
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 
domoticz.devices('tu nazwa Twojego urządzenia w Domoticz').switchOn()

Co w przypadku gdy mam kilka urządzeń - kilka przełączników ?

Pytanie czy ta funkcja: start - fired when Domoticz has started.

zawsze włączy przełącznik czy ustawie w takiej pozycji w jakiej aktualnie jest w domoticz. Bo w domoticz jest ok a gpio leży.

 

 
Dodane : 07/01/2025 9:54 pm
Daro1003
(@daro1003)
Wpisów: 814
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 

@janumix skrypt działa po restarcie uruchamia wejście teraz pytanie co będzie jeśli przełącznik w domoticz wyłączony czy też go włączy pewnie tak.

 
Dodane : 07/01/2025 11:01 pm
(@janumix)
Wpisów: 5
Bywalec
 

@daro1003 

dla kilku przełączników możesz zrobić w formie prostej tj. zwielokrotnić linię "

domoticz.devices('tu nazwa Twojego urządzenia w Domoticz').switchOn()

lub utworzyć grupę w Domoticz ze wszystkimi urządzeniami i wymuszać stan grupy.

Odzwierciedlenie stanu przełącznika możesz zrobić nie najpiękniejszym rozwiązaniem ale przejrzystym np.:

if (domoticz.devices('Nazwa przełącznika').state == 'On') then
	domoticz.devices('Nazwa GPIO do Integry').switchOn()
else
    domoticz.devices('Nazwa GPIO do Integry').switchOff()
end

  

 
Dodane : 07/01/2025 11:53 pm
Udostępnij: