APNT-29 - Udvidelse <tc>Fibaro</tc> HC2 Solopgang/Solnedgang-funktioner

De Fibaro Home Center 2 har et par begrænsninger på de tidspunkter for solnedgang og solopgang, du kan bruge i dine scener. For eksempel kan du vælge 15, 30, 45 og 60 minutter før solopgang og 15, 30, 45 og 60 minutter efter solnedgang. Men du kan ikke vælge 60 minutter før solnedgang eller andre værdier.

Det er faktisk meget nemt at ændre en enkelt linje LUA-kode for at udvide solnedgangs-/solopgangstiderne til et hvilket som helst tidspunkt, du ønsker.

Som et eksempel bruger vi solnedgangsscenen, som vi brugte i applikationsnote 28 -

Sunset On Scene

Denne scene tænder et lys præcis ved solnedgang. Dette fungerer godt til udendørs lys, men hvis du brugte den samme scene til et indendørs lys, ville du sandsynligvis ønske, at det aktiveres før solnedgang, da det bliver mørkere inde i en bygning.

Så lad os ændre dette, så scenen aktiveres 1 time før solnedgang.

Se LUA-koden

For at gøre dette skal vi ændre én linje i LUA-koden, der rent faktisk kører denne scene.

  • I scenens Fremskreden fanen gå til Skift sceneredigeringstilstand til LUA-base
  • Klik på 'Forandring'
  • LUA-koden vises i et HC2-vindue (vist nedenfor)

HC2 LUA Scene Code

  • Den kodelinje, vi er interesserede i, er på Linje 14.

( ((currentDate.wday == 2 eller currentDate.wday == 3 eller currentDate.wday == 4 eller currentDate.wday == 5 eller currentDate.wday == 6) og string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "solnedgangstime")) )

  • For at ændre dette, så scenen aktiveres 60 minutter før solnedgang, ændrer vi linje 14 til:

( ((currentDate.wday == 2 eller currentDate.wday == 3 eller currentDate.wday == 4 eller currentDate.wday == 5 eller currentDate.wday == 6) og os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "solnedgangstime")) )

  • Koden, der styrer tiden før eller efter solnedgang, er markeret med fed skrift - os.time()+60*60)
    • Hvis dette er positivt '+' Scenen aktiveres før solnedgang, hvis den er negativ '-' den aktiveres bagefter
    • Tiden før/efter bestemmes af tallene, '+60*60'i dette eksempel aktiveres 60 minutter før solnedgang, 90 minutter ville være '+90*60'
  • Bemærk: For at teste denne kode satte jeg den oprindelige scene til 1 time efter solnedgang. LUA-koden for den scene var identisk med den nye kode, vi har brugt ovenfor, bortset fra at den foreløbig er os.time()-60*60)Så ved blot at ændre kodeafsnittet til os.time()+60*60) Vi har nu en scene, der kører 1 time før solnedgang.

Ændr LUA-koden

For at ændre LUA-koden til at bruge vores nye kodelinje (linje 14), skal vi aktivere LUA-redigeringstilstanden.

Vigtig - Jeg vil foreslå, at du gør dette, når du har fået resten af ​​scenen til at fungere korrekt - du kan ikke gå fra den LUA-baserede editor tilbage til grafikblokeditoren.

Når du er klar - skift editoren til LUA-baseret.

  • Hvis du ikke allerede er i LUA-sektionen under fanen 'Avanceret', skal du gå til Skift sceneredigeringstilstand til LUA-base, klik på 'Forandring'
  • Klik på 'Tænd'

HC2 LUA Editor

  • Klik på 'Okay' i advarselsdialogboksen
  • Skift linje 14 til den nye kode
  • Klik på 'Spare'-knappen i menuen til højre

HC2 final LUA Code


Scenen vil nu køre 60 minutter før solnedgang.

Ved at bruge denne simple kodeændring kan vi få vores scener til at køre før eller efter solnedgang/solopgang og på et hvilket som helst tidspunkt, vi ønsker.

Relaterede oplysninger