DeviceTwin ¶ GetMQTTDeviceTwin (FunctionBlock) SubscribeMQTTDeviceTwinDesiredProperties (FunctionBlock) UpdateMQTTDeviceTwin (FunctionBlock)
DirectMethods ¶ IMethodInvoker (Interface) Invoke (Method) IMethodInvoker2 (Interface) Invoke (Method) SubscribeMQTTMethods (FunctionBlock) SubscribeMQTTMethods2 (FunctionBlock)
EnergyLevelSetpoint (FB) ¶ FUNCTION_BLOCK EnergyLevelSetpoint Selects the energy level releated setpoint of a building (part) or system part (like a HVAC plant powering a building). The purpose of selecting an energy level is to optimize energy consumption. EnergyLevelSetpoint differentiates between four levels with increasing energy demands: “protection” “economy” “pre-comfort” “comfort” The “protection” energy level is using the minimum energy amount to prevent damage to the building fabric and the building technical installation. The building / system part is controlled using this level if temporarily out of use. The “economy” energy level is an energy saving mode of a building or system part which is not occupied or not being used for longer periods (at night, weekend etc.). The “pre-comfort” energy level is an energy saving mode of a building or system part which is supposed to reach “comfort” level within a short period. The “comfort” energy level is the state intended for nomal usage of an occupied building. VDI 3814 reference ¶ EnergyLevelSetpoint is oriented towards VDI 3814 3.1 “Optimisation functions” “Energy Mode” (6.3.6.1), but is different in some aspects. VDI 3814 “Energy Mode” (6.3.6.1) implies some aspects which at least give room for discussions: room occupation state and window contact Operation mode computation in room controllers is more complex than those two aspects. So EnergyLevelSetpoint doesnt provide those isolated aspects and leaves them up to a more complex room controller function block. Because of this there is no need for an output “current operation mode”. hysteresis for building protection limit The “no energy zone” between heat setpoint and cool setpoint is sufficient to ensure building protection and avoiding unneccesary energy consumption. Requesting a hysteresis does imply kind of two-position control - which is neither needed to request nor fully specified in VDI 3814 “Energy Mode”. So EnergyLevelSetpoint doesnt provide this and leaves this aspect up to a more complex room controller function block. current setpoint Providing just one current setpoint does imply single sequence control driven by this setpoint. Control algorithm tend to be more complex than this, multi-sequence-control is quiet often the default. So EnergyLevelSetpoint provides the current heat setpoint and cool setpoint. InOut: Scope Name Type Initial Comment Input eLevel EnergyLevel Energy level rSetptHeatComfort REAL 21.0 Heat setpoint comfort level rSetptCoolComfort REAL 23.0 Cool setpoint comfort level rSetptHeatPreComfort REAL 19.0 Heat setpoint pre-comfort level rSetptCoolPreComfort REAL 25.0 Cool setpoint pre-comfort level rSetptHeatEconomy REAL 16.0 Heat setpoint economy level rSetptCoolEconomy REAL 28.0 Cool setpoint economy level rSetptHeatProtection REAL 10.0 Heat setpoint protection level rSetptCoolProtection REAL 40.0 Cool setpoint protection level Output rSetptHeat REAL Current heat setpoint rSetptCool REAL Current cool setpoint
Message ¶ SendMQTTMessage (FunctionBlock) SubscribeMQTTMessage (FunctionBlock)
Functions ¶ GenerateSasToken (Function) SignMessage (Function) StringTokenizer (Function)
GenerateSasToken (FUN) ¶ FUNCTION GenerateSasToken : WSTRING(255) SaS Token Generator InOut: Scope Name Type Initial Comment Return GenerateSasToken WSTRING(255) Input strUrl STRING(255) Url to device for example: myHub.azure- devices.net/devices/device1 strPrimaryKey STRING Primary key of device (see Azure IoT Hub Portal) strPolicyName STRING ‘’ Policy name, e.g. empty string (‘’) for c2d or d2c messages or (‘iothubowner’) to read/write device twins. uiExpiry UINT 3600 Expiry in seconds default 3600
HeatCoolUsingOutdoorAir (FB) ¶ FUNCTION_BLOCK HeatCoolUsingOutdoorAir Using passiv cooling (and eventually heating) using outdoor air (and an outdoor air actuator) in “economy” energy level to get the indoor air temperature in the “comfort” energy level setpoint range. For an explanation of the different energy levels see EnergyLevelSetpoint . The purpose of this functionality is to optimize energy consumption. Functionality ¶ HeatCoolUsingOutdoorAir provides a optimization strategy for room temperature control using an outdoor air actuator for passive cooling (and eventually but unlikely heating). WindowActuator or an outdoor air damper / fan assembly can be used as an outdoor air actuator. Operating the outdoor air actuator is enabled only if the room is set to “economy” energy level and the outdoor air temperature is inbetween the “protection” energy level setpoints. Cooling mode ¶ In case indoor air temperature is above (comfort level) cool setpoint plus hysteresis and outdoor air temperature is below cool setpoint minus treshold the outdoor air actuator is opened. In case the indoor air temperature is falling below (comfort level) cool setpoint the outdoor air actuator is closed. Heating mode ¶ Heating mode operates vise versa, is unlikely given typical building usage and climate patterns, but it’s no hazzle to use it by chance. HeatCoolUsingOutdoorAir is oriented towards VDI 3814 3.1 “Optimisation functions” “Night-time cooling” (6.3.6.5). InOut: Scope Name Type Initial Comment Input xEnable BOOL TRUE Enable eLevel EnergyLevel Energy level rSetptHeatComfort REAL 21.0 Heat setpoint comfort level rSetptCoolComfort REAL 23.0 Cool setpoint comfort level rSetptHeatProtection REAL 10.0 Heat setpoint protection level rSetptCoolProtection REAL 40.0 Cool setpoint protection level rOdaTemp REAL 10.0 Outdoor air temperature rIdaTemp REAL 22.0 Indoor air temperature rTreshold REAL 2.0 Treshold to switch on passiv cooling / heating (in K) rHysteresis REAL 0.5 Hysteresis to switch off passiv cooling / heating (in K) Output xOpenOdaActuator BOOL Open outdoor air actuator
SignMessage (FUN) ¶ FUNCTION SignMessage : ULINT InOut: Scope Name Type Return SignMessage ULINT Input sMessage REFERENCE TO STRING(255) sKey STRING abySignature REFERENCE TO ARRAY [0..255] OF BYTE
StringTokenizer (FUN) ¶ FUNCTION StringTokenizer : BOOL InOut: Scope Name Type Return StringTokenizer BOOL Input pbIn POINTER TO WORD pbDelim POINTER TO WORD Output asTokens ARRAY [0..9] OF WSTRING
GlobalConstants ¶ IoTHubClientConstants (GVL)