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ń.
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.5resetAllEvents
, 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
@janumix jak taki skrypt stworzyć ? Bo ja w skryptach to zero ?
To co podesłałeś to jakiś przykład ??
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 }
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.
@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.
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