Asystent AI
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
590 Wyświetleń
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#5981]

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 8:49 pm
(@janumix)
Wpisów: 5
Bywalec
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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 2:28 pm
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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

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


 
Dodane : 07/01/2025 9:26 pm
(@janumix)
Wpisów: 5
Bywalec
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@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 10:44 pm
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
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 10:54 pm
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@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 : 08/01/2025 12:01 am
(@janumix)
Wpisów: 5
Bywalec
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@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 : 08/01/2025 12:53 am
Udostępnij: