APNT-29 - Förlängning <tc>Fibaro</tc> HC2 Soluppgång/solnedgångsfunktioner

De Fibaro Home Center 2 har några begränsningar för solnedgångs- och soluppgångstider som du kan använda i dina scener. Du kan till exempel välja 15, 30, 45 och 60 minuter före soluppgång och 15, 30, 45 och 60 minuter efter solnedgången. Men du kan inte välja 60 minuter före solnedgång eller några andra värden.

Det är faktiskt väldigt enkelt att ändra en enda rad LUA-kod för att förlänga solnedgångs-/soluppgångstiderna till vilken tid du vill.

Som exempel använder vi solnedgångsscenen som vi använde i applikationsanteckning 28 -

Sunset On Scene

Den här scenen tänder en lampa exakt vid solnedgången. Detta fungerar bra för utomhusbelysning, men om du använde samma scen för en inomhusbelysning skulle du förmodligen vilja att den aktiveras före solnedgången eftersom det blir mörkare inuti en byggnad.

Så låt oss ändra detta så att scenen aktiveras 1 timme före solnedgången.

Visa LUA-koden

För att göra detta måste vi ändra en rad i LUA-koden som faktiskt kör den här scenen.

  • I scenens Avancerad fliken gå till Växla scenredigeringsläge till LUA-bas
  • Klicka på 'Ändra'
  • LUA-koden visas i ett HC2-fönster (visas nedan)

HC2 LUA Scene Code

  • Kodraden vi är intresserade av finns på Rad 14.

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

  • För att ändra detta så att scenen aktiveras 60 minuter före solnedgången ändrar vi rad 14 till:

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

  • Koden som styr tiden före eller efter solnedgången är markerad med fetstil - os.time()+60*60)
    • Om detta är positivt '+' Scenen aktiveras före solnedgången, om den är negativ '-' den aktiveras efteråt
    • Tiden före/efter bestäms av siffrorna, '+60*60'i det här exemplet aktiveras 60 minuter före solnedgången, 90 minuter skulle vara '+90*60'
  • Obs: För att testa den här koden ställde jag in den ursprungliga scenen till 1 timme efter solnedgången. LUA-koden för den scenen var identisk med den nya koden vi har använt ovan förutom att den för tillfället är os.time()-60*60)Så genom att helt enkelt ändra kodavsnittet till os.time()+60*60) Vi har nu en scen som spelas en timme före solnedgången.

Ändra LUA-koden

För att ändra LUA-koden för att använda vår nya kodrad (rad 14) måste vi aktivera LUA-redigeringsläget.

Viktig - Jag föreslår att du gör detta efter att resten av scenen fungerar korrekt - du kan inte gå tillbaka från den LUA-baserade editorn till grafikblockredigeraren.

När du är redo - ändra editorn till LUA-baserad.

  • Om du inte redan är i LUA-sektionen på fliken "Avancerat", gå till Växla scenredigeringsläge till LUA-bas, klicka på 'Ändra'
  • Klicka på 'Sätta på'

HC2 LUA Editor

  • Klicka på 'OK' i varningsdialogrutan
  • Ändra rad 14 till den nya koden
  • Klicka på 'Spara'-knappen i menyn till höger

HC2 final LUA Code


Scenen kommer nu att spelas 60 minuter före solnedgången.

Med hjälp av denna enkla kodändring kan vi köra våra scener före eller efter solnedgång/soluppgång och vid vilken tidpunkt vi vill.

Relaterad information