Skip to content

Instantly share code, notes, and snippets.

@mentisy
Last active January 13, 2022 06:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mentisy/6f5b38dd21ed09fb29d9a5cc247b9a74 to your computer and use it in GitHub Desktop.
Save mentisy/6f5b38dd21ed09fb29d9a5cc247b9a74 to your computer and use it in GitHub Desktop.
Kalkulerer VAV-pådrag basert på status lys og kjølepådrag
local LIGHT_STATUS = '32' -- Hovedgruppeadresse for Lys Status
local COOLING = '33' -- Hovedgruppeadresse for Kjølepådrag fra Termostat
local VAV = '34' -- Hovedgruppeadresse for VAVpådrag som sendes til VAV
local LEVEL_STANDBY = 30 -- Lys AV og Kjølepådrag AV
local LEVEL_LIGHT = 60 -- Lys PÅ og Kjølepådrag AV
-------------------------------------------------------------------------------------------
-------------------------------------- END CONSTANTS --------------------------------------
-------------------------------------------------------------------------------------------
-- Last inn KNX-scriptet mitt
require 'user.knx_lib'
-- Hent ut hovedgruppeadresse, mellomgruppeadresse og gruppeadresse fra senderadressen
local main, middle, sub = knx_lib:parse(event.dst)
-- Les lys status. Boolean (false/true)
local lightStatus = grp.getvalue(knx_lib:compile(LIGHT_STATUS, middle, sub))
-- Les kjølepådrag. Prosent
local coolingStatus = grp.getvalue(knx_lib:compile(COOLING, middle, sub))
-- Ønsket pådrag pga lys, før vi evt. øker om lyset er på
local wantedLightLevel = 0
-- Om lyset er på, sett ønsket pådrag pga lys til LEVEL_LIGHT
if (lightStatus) then
wantedLightLevel = LEVEL_LIGHT
end
-- Finn maks-verdien av STANDBY, ønsket pådrag pga lys og kjølepådrag
local requiredLevel = math.max(LEVEL_STANDBY, wantedLightLevel, coolingStatus)
-- Skriv VAV-pådrag basert på kalkulert nivå
grp.write(knx_lib:compile(VAV, middle, sub), requiredLevel, dt.scale)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment