Vraag


Acties:
  • 0 Henk 'm!

  • plofkip
  • Registratie: Oktober 2002
  • Laatst online: 30-05 19:17
Hi,

Ik zou graag het dimmer niveau aanpassen zodra ik een film of tv ga kijken, beide zijn Logitech Harmony activiteiten (Harmony Elite/Hub).
In Domoticz heb ik 4 gebeurtenissen toegevoegd op basis van dzVents, 2 daarvan zien er als volgt uit (de andere 2 zijn bijna hetzelfde):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
return {
    active = true,
    on = {
        devices = {
            'TV kijken',
        }
    },
    execute = function(domoticz, device)
        local light = domoticz.devices('LED spots')
        if (device.state == 'On') then
            domoticz.globalData.LEDSpotsLevel = light.level
            light.dimTo(40)
        end
    end
}


Het uitschakelen event ziet er zo uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return {
    active = true,
    on = {
        devices = {
            'TV kijken',
        }
    },
    execute = function(domoticz, device)
        local light = domoticz.devices('LED spots')
        if (device.state == 'Off') then
            light.dimTo(domoticz.globalData.LEDSpotsLevel)
        end
    end
}


Het probleem is, zodra ik schakel van TV kijken naar Film kijken, wordt de dimmer ingesteld op LEDSpotsLevel, gevolgd door het gebeurtenis niveau. Maar deze volgt zo snel op, dat de 2e instructie genegeerd wordt (waarschijnlijk omdat er nog gewerkt wordt aan de 1e instructie).
2018-02-19 20:04:34.976 Harmony Hub: Changing activity
2018-02-19 20:04:42.558 Harmony Hub: Finished changing activity
2018-02-19 20:04:42.633 dzVents: Info: Handling events for: "Film kijken", value: "Off"
2018-02-19 20:04:42.633 dzVents: Info: ------ Start internal script: Film kijken start: Device: "Film kijken (Harmony)", Index: 10
2018-02-19 20:04:42.641 dzVents: Info: ------ Finished Film kijken start
2018-02-19 20:04:42.641 dzVents: Info: ------ Start internal script: Film kijken stop: Device: "Film kijken (Harmony)", Index: 10
2018-02-19 20:04:42.642 dzVents: Off
2018-02-19 20:04:42.642 dzVents: Info: ------ Finished Film kijken stop
2018-02-19 20:04:42.643 EventSystem: Script event triggered: /usr/local/domoticz/var/scripts/dzVents/runtime/dzVents.lua
2018-02-19 20:04:42.720 dzVents: Info: Handling events for: "TV kijken", value: "On"
2018-02-19 20:04:42.721 dzVents: Info: ------ Start internal script: TV kijken start: Device: "TV kijken (Harmony)", Index: 9
2018-02-19 20:04:42.722 dzVents: Info: ------ Finished TV kijken start
2018-02-19 20:04:42.722 dzVents: Info: ------ Start internal script: TV kijken stop: Device: "TV kijken (Harmony)", Index: 9
2018-02-19 20:04:42.723 dzVents: Info: ------ Finished TV kijken stop
2018-02-19 20:04:42.723 EventSystem: Script event triggered: /usr/local/domoticz/var/scripts/dzVents/runtime/dzVents.lua
De vraag is dus; hoe zorg ik ervoor dat de 2e instructie netjes uitgevoerd wordt, of hoe kan ik voorkomen dat de 'restore' instructie verstuurd wordt in deze situatie?

Alle reacties


Acties:
  • 0 Henk 'm!

  • MewBie
  • Registratie: April 2002
  • Laatst online: 01-06 13:27
Ik weet niet of het mogelijk is met domoticz maar ik denk dat de beste manier is om het daadwerkelijk aanpassen van het licht niveau uit deze funties te halen. Deze functies zetten dus alleen maar de waardes die je wilt.
Het dimmen gebeurd dan ergens anders.

Je krijgt dan dus een stuk code wiens enige functie is om te kijken of de huidige output gelijk is aan de gewenste output, en indien dat niet het geval is de output aanpast naar de gewenste output.

Please leave a message after the beep.
*beeeeep*


Acties:
  • 0 Henk 'm!

  • plofkip
  • Registratie: Oktober 2002
  • Laatst online: 30-05 19:17
Ik begrijp niet helemaal wat je bedoelt?

Acties:
  • 0 Henk 'm!

  • MewBie
  • Registratie: April 2002
  • Laatst online: 01-06 13:27
Stel dat het 5 seconden duurt om een dim actie te voltooien.

Je drukt op een knop en je programma stuurt een signaal om te dimmen naar 40%.
Het duurt vervolgens 5 seconden voor de actie om te voltooien en gedurende die tijd is je programma bezig met dimmen en negeert nieuwe waardes voor je verlichtingsniveau.

Als je dit veranderd in iets dat bijvoorbeeld 10x per seconde de outputwaarde van je dim vergelijkt met de waarde die verwacht wordt.
Je drukt op de knop en je programma past de verwachte outputwaarde aan naar 40%.
Je programma pakt binnen 0,1 seconde op dat de huidige output waarde niet klopt met de verwachte output en begint de output aan te passen.
Doordat het deel van je programma dat input verwerkt niet actief bezig is met het regelen van de output kan het nieuwe input ontvangen die de verwachte outputwaarde aan kan passen terwijl de vorige actie nog niet is afgelopen.

Maar ik ben niet bekend genoeg met domoticz om te kunnen zeggen of zoiets mogelijk is.

[ Voor 4% gewijzigd door MewBie op 20-02-2018 15:03 ]

Please leave a message after the beep.
*beeeeep*


Acties:
  • 0 Henk 'm!

  • plofkip
  • Registratie: Oktober 2002
  • Laatst online: 30-05 19:17
Ik ben bang van niet.

  • plofkip
  • Registratie: Oktober 2002
  • Laatst online: 30-05 19:17
Maar dit lijkt me toch iets wat wel vaker gedaan is met Domoticz? Niemand ervaring mee?
Pagina: 1