package Ġk home . ext ending . entities . sensors Ċ Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġk home . K home Application Ċ import Ġk home . entities . Attributes Ċ import Ġk home . entities . State Ċ import Ġk home . entities . devices . Sensor Ċ import Ġk home . ext ending . entities . Sensor Ċ import Ġk home . observ ability . Switch able Ċ import Ġk home . values . Az imuth Ċ import Ġk home . values . Elevation Ċ import Ġk home . values . EntityId Ċ import Ġk home . values . Friendly Name Ċ import Ġk home . values . R ising Ċ import Ġk home . values . UserId Ċ import Ġk home . values . domain Ċ import Ġk home . values . objectId Ċ import Ġjava . time . Instant Ċ Ċ type alias ĠSun Ġ= ĠSensor < Sun State , ĠSun Attributes > Ċ Ċ @ Suppress (" FunctionName ") Ċ fun ĠK home Application . Sun (): ĠSun Ġ= ĊĠĠĠ ĠSensor ( EntityId . from Pair (" sun ". domain Ġto Ġ" sun ". objectId )) Ċ Ċ data Ġclass ĠSun State ( override Ġval Ġvalue : ĠSun Value ) Ġ: ĠState < Sun Value > Ċ Ċ enum Ġclass ĠSun Value Ġ{ ĊĠĠĠ Ġ@ SerializedName (" above _ horizon ") ĊĠĠĠ ĠA BO VE _ H ORIZ ON , ĊĊĠĠĠ Ġ@ SerializedName (" below _ horizon ") ĊĠĠĠ ĠBE LOW _ H ORIZ ON Ċ } Ċ Ċ data Ġclass ĠSun Attributes ( ĊĠĠĠ Ġval Ġnext _ d awn : ĠInstant , ĊĠĠĠ Ġval Ġnext _ d us k : ĠInstant , ĊĠĠĠ Ġval Ġnext _ mid night : ĠInstant , ĊĠĠĠ Ġval Ġnext _ no on : ĠInstant , ĊĠĠĠ Ġval Ġnext _ ris ing : ĠInstant , ĊĠĠĠ Ġval Ġnext _ setting : ĠInstant , ĊĠĠĠ Ġval Ġelevation : ĠE levation , ĊĠĠĠ Ġval Ġaz imuth : ĠAz imuth , ĊĠĠĠ Ġval Ġr ising : ĠR ising , ĊĠĠĠ Ġoverride Ġval ĠuserId : ĠUserId ?, ĊĠĠĠ Ġoverride Ġval Ġlast Changed : ĠInstant , ĊĠĠĠ Ġoverride Ġval Ġlast Updated : ĠInstant , ĊĠĠĠ Ġoverride Ġval Ġfriendly Name : ĠFriend ly Name Ċ ) Ġ: ĠAttributes Ċ Ċ val ĠSun . is Above H orizon ĊĠĠĠ Ġget () Ġ= Ġmeasurement . value Ġ== ĠSun Value . AB O VE _ H ORIZ ON Ċ Ċ val ĠSun . is Below H orizon ĊĠĠĠ Ġget () Ġ= Ġmeasurement . value Ġ== ĠSun Value . BE LOW _ H ORIZ ON Ċ Ċ val ĠSun . is R ising ĊĠĠĠ Ġget () Ġ= Ġattributes . ris ing Ġ== ĠR ising . TRUE Ċ Ċ fun ĠSun . on Sun rise ( f : ĠSun .( Switch able ) Ġ-> ĠUnit ) Ġ= ĊĠĠĠ Ġon Measurement ValueChanged From ( Sun Value . BE LOW _ H ORIZ ON Ġto ĠSun Value . AB O VE _ H ORIZ ON , Ġf ) Ċ Ċ fun ĠSun . on S unset ( f : ĠSun .( Switch able ) Ġ-> ĠUnit ) Ġ= ĊĠĠĠ Ġon Measurement ValueChanged From ( Sun Value . AB O VE _ H ORIZ ON Ġto ĠSun Value . BE LOW _ H ORIZ ON , Ġf ) Ċ