Ik probeer mijn SOMFY IO motoren (Connexoon) te grouperen zodat ik ze met 1 switch kan bedienen.
Daarvoor heb ik een Dummy switch gemaakt van type Blinds Percentage Inverted.
Daarna een test Dzvents script gemaakt, waarbij 1204 de Dummy switch is en 1192 1 van de rolluiken.
script:
code:
1
2
3
4
5
6
7
8
9
10
11
| return {
on = {
devices = {
1204
}
},
execute = function(domoticz, test)
domoticz.log(test.rawData[1])
domoticz.devices(1192).setLevel(test.rawData[1])
end
} |
Nu gebeurt het volgende:
Als ik de slider gebruik zie ik de waarde in de logs en stelt deze rolluik 1192 in op dat niveau. Dat lijkt te werken.
Als ik de CLOSE knop gebruik dan werkt deze pas na de 2e keer.
Dit zie ik in de logs:
Eerste event is OPEN met slider verandert naar 49%:
code:
1
2
3
4
5
6
| 2020-04-15 12:13:45.609 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-04-15 12:13:46.042 Status: User: Admin initiated a switch command (1204/Test-switch/Set Level)
2020-04-15 12:13:46.278 Status: dzVents: Info: Handling events for: "Test-switch", value: "On"
2020-04-15 12:13:46.279 Status: dzVents: Info: ------ Start internal script: Test: Device: "Test-switch (Dummy)", Index: 1204
2020-04-15 12:13:46.279 Status: dzVents: Info: 49
2020-04-15 12:13:46.281 Status: dzVents: Info: ------ Finished Test |
Dan druk ik de CLOSE knop in en zie ik de value veranderen naar Closed, maar er gebeurt niets met het raam zelf, dus switch 1192 verandert niet.
code:
1
2
3
4
5
6
| 2020-04-15 12:13:46.285 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-04-15 12:14:00.290 Status: User: Admin initiated a switch command (1204/Test-switch/Off)
2020-04-15 12:14:00.521 Status: dzVents: Info: Handling events for: "Test-switch", value: "Closed"
2020-04-15 12:14:00.521 Status: dzVents: Info: ------ Start internal script: Test: Device: "Test-switch (Dummy)", Index: 1204
2020-04-15 12:14:00.521 Status: dzVents: Info: 49
2020-04-15 12:14:00.524 Status: dzVents: Info: ------ Finished Test |
Als ik dan een 2e keer op CLOSE druk, werkt het wel, maar dat komt omdat hij dan door heeft dat de Dummy op 0 staat en daarom dicht gaat. Dat zie je ook in de interface zelf, pas na het drukken verandert de slider en DAARNA pas staat deze dan ook op 0 CLOSED of 100 OPEN:
code:
1
2
3
4
5
| 2020-04-15 12:15:22.740 Status: User: Admin initiated a switch command (1204/Test-switch/Off)
2020-04-15 12:15:22.981 Status: dzVents: Info: Handling events for: "Test-switch", value: "Closed"
2020-04-15 12:15:22.981 Status: dzVents: Info: ------ Start internal script: Test: Device: "Test-switch (Dummy)", Index: 1204
2020-04-15 12:15:22.982 Status: dzVents: Info: 0
2020-04-15 12:15:22.984 Status: dzVents: Info: ------ Finished Test |
Iemand een idee hoe ik naast het percentage ook direct het CLOSED en OPEN command kan overnemen in het script?
Het uiteindelijke doel is om verschillende switches toe te voegen en op deze manier meerdere luiken tegelijk aan te sturen. Dat is gewoon een kwestie van de devices toevoegen met het juiste command. Als het met 1 werkt zou het relatief makkelijk moeten zijn met meerdere devices.
UPDATE:
Ik weet niet of ik het efficient doe, want dit is mijn allereerste DzVentz avontuur en ben geen scripter:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| return {
on = {
devices = {
1204
}
},
execute = function(domoticz, test)
domoticz.log(test.rawData[1])
domoticz.log(test.state)
if (test.state == 'Closed') then
domoticz.devices(1192).close()
elseif (test.state == 'Open') then
domoticz.devices(1192).open()
else
domoticz.devices(1192).setLevel(test.rawData[1])
end
end
} |
Dit lijkt wel te werken met mijn test-switch, omdat ik nu eerst op state (Open, Closed, On) selecteer en daar de actie op zet en anders het percentage pak van de slider.
Alleen, toeval of niet, mijn Domoticz lijkt nu wel te crashen na een paar pogingen:
code:
1
2
| 2020-04-15 14:47:29.068 Error: Domoticz(pid:7153, tid:7194('Plugin_ASIO')) received fatal signal 11 (Segmentation fault)
2020-04-15 14:47:29.068 Error: siginfo address=0x1bf1, address=(nil) |
Dan lijkt de database wel op zijn gat te gaan en is mijn domoticz interface "leeg" en na een domoticz restart werkt het weer..
UPDATE 2:
Dat lijk ik nu gefixt te hebben door de commands vertraagd na elkaar te sturen ipv exact tegelijk.
domoticz.devices(1192).close()
domoticz.devices(1193).close().afterSec(1)
Voor mensen die net als mij voor het eerst aan de gang (willen) gaan met DzVentz: Deze YouTube video helpt je echt op gang voor de simpele scripts:
YouTube: dzVents - getting started
[
Voor 18% gewijzigd door
Hann1BaL op 15-04-2020 15:45
]