MLEchelonThermo Plugin
From Tallus LLC Wiki
Contents |
About
The MLEchelonThermo plugin supports an Echelon commercial controller based HVAC system. Due to the highly customized capability of the Echelon controller, the MLEchelonThermo plugin may or may not work with a particular system.
This plug-in supports a heating and air conditioning system connected via the Echelon system. It supports the following functionality:
• Ability to support multiple zones (thermostat)
• Ability to turn on and off the various HVAC devices
• Get / Set various parameters like heat point, cool point etc
• Ability to increase / decrease temperatures where applicable
• Settings panel to setup communication parameters and other settings
• Is a member of the MLServer family concept
Hardware Requirements
Echelon Controller
Download Link
The plugin installs in a 30 day trial mode. Once you have decided to purchase it from [Tallus's shopping cart], just apply the software license you will receive from Tallus via email on purchase of the plugin. After the plugin is installed, the license is then applied to MLServer3's Software Registration Menu (in MLServer: Help/Manage License Keys) which you must then Activate to that PC by sending your purchased license, your MLServer's Hardware ID (found at bottom of the Registration Menu window) to: info(at)talluscorp.com. You will soon receive an Activation code via email that is applied to the Registration Menu which makes that plugin permenant to that PC.
You should perform the above within the 30 day trial period to enjoy uninterrupted usage of the plugin with no rework needed between trial and licensed useage. Please allow up to two days for Tallus processing time for your requests. Most requests are processed within a few hours.
Software Requirements
MLServer3 v 3.0.559 and later
MLEchelonThermo plugin
.NET Framework
Installation
Shutdown MLServer3
Ensure PC has .NET framework installed.
Download and launch the MLEchelonThermo_Setup.exe file.
Run the installable executable or follow the instructions below for manual installation.
The installer will copy MLEchelonThermo.dll file into MLServer plug-in folder. It will copy MLEchelonThermo.mdb file into MLServer data folder and copy or create MLEchelonThermo.ini in the MLServer folder.
Start MLServer. Various MLEchelonThermo variables will be initialized which can be seen in MLServer Server Variable window. Any error during startup will be recorded in mlechelonthermo_lasterror variable. MLEchelonThermo.log files created in the MLServer installation folder can be used for further troubleshooting.
Change the LogLevel to 2 under [Log] section of MLEchelonThermo.ini file to record all log messages.
Simulation mode simulates echelon controller locally. Any data point value written to the controller goes to a table. Any data point value read comes from that table. It was developed to assist with testing. Note that Simulation mode is not controllable via UI.
By default the plugin is not in the simulation mode.
You may get a "...thread error" suggesting time out. This is because it is not able to connect to the IP
address for the existing aliases. You can change the simulation mode to true in the
MLEchelonThermo.ini to view the plugin functions without being connected to the Echelon controller.
Components:
MLEchelonThermo.dll – This is the heart of the plug-in and is installed to the MLServer\Plugins directory.
MLEchelonThermo.tlb – This works with the .dll plug-in.
MLEchelonThermo.ini – This file is located in the MLServer installation folder. Create a new MLEchelonThermo.ini if it doesn’t exist. It has the following directives:
LogLevel
Sets the log level Set:
0 for error
1 for warn
2 for info
3 for debug.
Example
LogLevel=3 for debug level
VisualLog
Turns on or off the visual log setting. Set
True to enable visual logging and False to disable.
VisualLog=true
Simulation
Turns on or turns off plug-in simulation mode. This is for debugging purpose.
True to enable simulation and false to disable simulation.
Simulation=false
Example ini file settings:
[Log]
LogLevel=3
VisualLog=true
[iLON]
Simulation=false
MLEchelonThermo.log – This file is located in the MLServer installation folder. It records all the logs. The log level is specified in the MLEchelonThermo.ini file.
MLEchelonThermo.mdb – This file is a MS Access database file located in the data folder of MLServer installation folder. It has the necessary tables to hold the plug-in and user defined data.
Settings
This plug-in uses Echelon’s Web Services interface for communication. It uses the following data points in the specific format,
Data Point Name Purpose
NVE_{0}_temp Current Temperature
NVE_{0}_mode_status Current Thermostat Mode
NVE_{0}_rel_hum Current Humidity
NVE_{0}_hvac_mode HVAC Mode
NVE_{0}_day_htg_sp Daytime Heating Set Point
NVE_{0}_night_htg_sp Nighttime Heating Set Point
NVE_{0}_day_clg_sp Daytime Cooling Set Point
NVE_{0}_night_clg_sp Nighttime Cooling Set Point
NVE_{0}_hum_sp Humidity Set Point
NVE_{0}_htg_sp Heating Set Point
Where {0} is the name of the room. The Alias Name defined on the Settings panel should exactly match the name of the room.
Image:MLEchelonThermo Settings.jpg
The tabs are enabled by either selecting an existing alias or adding a new alias.
Description of Settings Fields
Field
Name
Purpose
Alias ID
This number is auto generated. Alias ID used within MLServer variable names and while sending command to the plug-in.
Alias Name (required)
Alias Name should exactly match the name of room specified in the data point name.
Thermostat IP Address (required)
IP Address of the Echelon Controller
Thermostat Port (optional)
Specify port number only if the Echelon Web Services are running on a different port other than port 80.
Administrator Username (optional)
Web Services Username.
Administrator Password (optional)
Web Services Password.
Update interval
The plugin will update MLServer variable for specified interval.
Display Unit
Temperature unit for display purpose.
Image:MLEchelonThermo Control.jpg
Settings Control Screen
Image:MLEchelonThermo State.jpg
Plug-in State Screen
Image:MLEchelonThermo Log.jpg
Plug-in Log Screen
MLServer Commands
MLEchelonThermo commands (direct):
Command
Parameters
Description
Example
MLServeCmd.MLEchelonThermo|ToggleTempDisplay~<<ID>>
ID
This command toggles the temperature display between Fahrenheit and Celsius.
MLServeCmd.MLEchelonThermo|ToggleTempDisplay~1
MLServeCmd.MLEchelonThermo|SetTempDisplay~<<Display>>~<<ID>>
ID, Display
This command sets the temperature display to the specified scale.
MLServeCmd.MLEchelonThermo|SetTempDisplay~F~1
MLServeCmd.MLEchelonThermo|SetTempDisplay~C~1
MLServeCmd.MLEchelonThermo|UpdateThermostatInfo~<<ID>>
ID
This command gets all thermostat information from the device.
MLServeCmd.MLEchelonThermo|UpdateThermostatInfo~1
MLServeCmd.MLEchelonThermo|HVAC~<<State>>~<<ID>>
ID, State
This command sets the thermostat to the specified HVAC state.
When next is specified, next state is set.
When prev is specified, previous state is set.
The state cycle is as follows:
OFF -> HEAT -> COOL -> AUTO -> OFF
MLServeCmd.MLEchelonThermo|HVAC~Off~1
MLServeCmd.MLEchelonThermo|HVAC~Heat~1
MLServeCmd.MLEchelonThermo|DayHeatPoint~<<Point>>~<<ID>>
ID, Point
This command sets the day heat point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures. When up is specified for the Point, the heat point will be incremented by 1 degree. When down is specified for the Point, the heat point will be decremented by 1 degree.
MLServeCmd.MLEchelonThermo|DayHeatPoint~50~1
MLServeCmd.MLEchelonThermo|DayHeatPoint~Up~1
MLServeCmd.MLEchelonThermo|NightHeatPoint~<<Point>>~<<ID>>
ID, Point
This command sets the night heat point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the heat point will be incremented by 1 degree.
When down is specified for the Point, the heat point will be decremented by 1 degree.
MLServeCmd.MLEchelonThermo|NightHeatPoint~50~1
MLServeCmd.MLEchelonThermo|NightHeatPoint~Up~1
MLServeCmd.MLEchelonThermo|DayCoolPoint~<<Point>>~<<ID>>
ID, Point
This command sets the day cool point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the cool point will be incremented by 1 degree.
When down is specified for the Point, the cool point will be decremented by 1 degree.
MLServeCmd.MLEchelonThermo|DayCoolPoint~50~1
MLServeCmd.MLEchelonThermo|DayCoolPoint~Up~1
MLServeCmd.MLEchelonThermo|NightCoolPoint~<<Point>>~<<ID>>
ID, Point
This command sets the night cool point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the cool point will be incremented by 1 degree.
When down is specified for the Point, the cool point will be decremented by 1 degree.
MLServeCmd.MLEchelonThermo|NightCoolPoint~50~1
MLServeCmd.MLEchelonThermo|NightCoolPoint~Up~1
MLServeCmd.MLEchelonThermo|HumidityPoint~<<Point>>~<<ID>>
ID, Point
This command sets the humidity point for the thermostat. When up is specified for the Point, the humidity cool point will be incremented by 1 degree. When down is specified for the Point, the humidity cool point will be decremented by 1 degree.
MLServeCmd.MLEchelonThermo|HumidityPoint~50~1
MLServeCmd.MLEchelonThermo|HumidityPoint~Up~1
MLServeCmd.MLEchelonThermo|HeatPoint~<<Point>>~<<ID>>
ID, Point
This command sets the heat point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures. When up is specified for the Point, the heat point will be incremented by 1 degree. When down is specified for the Point, the heat point will be decremented by 1 degree.
MLServeCmd.MLEchelonThermo|HeatPoint~50~1
MLServeCmd.MLEchelonThermo|HeatPoint~Up~1
Parameter
Description
Values
ID
The ID or alias of the thermostat unit to control.
1,2
Display
The new display scale
F = Fahrenheit, C = Celsius
State (HVAC)
The new HVAC state.
Off, Heat, Cool, Auto
Point (Hear / Cool)
The new heat / cool point for the thermostat.
45.0 95.0F, 7.2 35 C, Up, Down
Point (Humidity)
The new humidity point for the thermostat.
5 95 %, Up, Down
- Support for the MLEchelonThermo commands and variable discussed above are subject to the Echelon Controller support.
MLEchelonThermo commands (family):
Command
Parameters
Description
Example
HVAC.<<ID>>|ToggleTempDisplay
ID
This command toggles the temperature display between Fahrenheit and Celsius.
HVAC.1|ToggleTempDisplay
HVAC.<<ID>>|SetTempDisplay~<<Display>>
ID, Display
This command sets the temperature display to the specified scale.
HVAC.1| SetTempDisplay~F
HVAC.1| SetTempDisplay~C
HVAC.<<ID>>|UpdateThermostatInfo
ID
This command gets all thermostat information from the device.
HVAC.1|UpdateThermostatInfo
HVAC.<<ID>>|HVAC~<<State>>
ID, State
This command sets the thermostat to the specified HVAC state.
When next is specified, next state is set.
When prev is specified, previous state is set.
The state cycle is as follows:
OFF -> HEAT -> COOL -> AUTO -> OFF
HVAC.1|HVAC~Off
HVAC.1|HVAC~Heat
HVAC.<<ID>>|DayHeatPoint~<<Point>>
ID, Point
This command sets the day heat point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the heat point will be incremented by 1 degree.
When down is specified for the Point, the heat point will be decremented by 1 degree.
HVAC.1|DayHeatPoint~50
HVAC.1|DayHeatPoint~Up
HVAC.1|DayHeatPoint~Down
HVAC.<<ID>>|NightHeatPoint~<<Point>>
ID, Point
This command sets the night heat point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the heat point will be incremented by 1 degree.
When down is specified for the Point, the heat point will be decremented by 1 degree.
HVAC.1|NightHeatPoint~50
HVAC.1|NightHeatPoint~Up
HVAC.<<ID>>|DayCoolPoint~<<Point>>
ID, Point
This command sets the day cool point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the cool point will be incremented by 1 degree.
When down is specified for the Point, the cool point will be decremented by 1 degree.
HVAC.1|DayCoolPoint~50
HVAC.1|DayCoolPoint~Up
HVAC.<<ID>>|NightCoolPoint~<<Point>>
ID, Point
This command sets the night cool point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the cool point will be incremented by 1 degree.
When down is specified for the Point, the cool point will be decremented by 1 degree.
HVAC.1|NightCoolPoint~50
HVAC.1|NightCoolPoint~Up
HVAC.<<ID>>|HumidityPoint~<<Point>>
ID, Point
This command sets the humidity point for the thermostat. When up is specified for the Point, the humidity cool point will be incremented by 1 degree. When down is specified for the Point, the humidity cool point will be decremented by 1 degree.
HVAC.1|HumidityPoint~50
HVAC.1|HumidityPoint~Up
HVAC.<<ID>>|HeatPoint~<<Point>>
ID, Point
This command sets the heat point for the thermostat.
When the temp display is set to Fahrenheit 45.0 95.0 is the range of acceptable temperatures.
When the temp display is set to Celsius 7.2 35.0 is the range of acceptable temperatures.
When up is specified for the Point, the heat point will be incremented by 1 degree.
When down is specified for the Point, the heat point will be decremented by 1 degree.
HVAC.1|HeatPoint~50
HVAC.1|HeatPoint~Up
Parameter
Description
Values
ID
The ID or alias of the thermostat unit to control.
1,2
Display
The new display scale
F = Fahrenheit, C = Celsius
State (HVAC)
The new HVAC state.
Off, Heat, Cool, Auto
Point (Hear / Cool)
The new heat / cool point for the thermostat.
45.0 95.0F, 7.2 35 C, Up, Down
Point (Humidity)
The new humidity point for the thermostat.
5 95 %, Up, Down
- Support for the MLEchelonThermo commands and variable discussed above are subject to the Echelon Controller support.
MLServer Variables
Variable Name
Description
Example
MLEchelonThermo_<<ID>>_Current_Temperature
Current temperature of the thermostat. F or C at the end denotes Fahrenheit or Celsius.
66.0 F, 23.0 C
MLEchelonThermo_<<ID>>_Daytime_Heating_Set_Point
Daytime Heating Set Point. F or C at the end denotes Fahrenheit or Celsius. This variable is also used for thermostat with only Heating Set Point.
66.0 F, 23.0 C
MLEchelonThermo_<<ID>>_Nighttime_Heating_Set_Point
Nighttime Heating Set Point. F or C at the end denotes Fahrenheit or Celsius.
66.0 F, 23.0 C
MLEchelonThermo_<<ID>>_ Daytime_Cooling_Set_Point
Daytime Cooling Set Point. F or C at the end denotes Fahrenheit or Celsius.
66.0 F, 23.0 C
MLEchelonThermo_<<ID>>_Nighttime_Cooling_Set_Point
Nighttime Cooling Set Point. F or C at the end denotes Fahrenheit or Celsius.
66.0 F, 23.0 C
MLEchelonThermo_<<ID>>_Humidity_Set_Point
Humidity Set Point in percentage
70%
MLEchelonThermo_<<ID>>_Temperature_Unit
Current unit used for displaying temperature values
Fahrenheit or Celsius
MLEchelonThermo_<<ID>>_Current_Thermostat_State
Current thermostat state.
Daytime Heating, Night Heating, Daytime Cooling, Night Cooling
MLEchelonThermo_<<ID>>_Current_Humidity_Level
Current humidity level in percentage
75%
MLEchelonThermo_<<ID>>_HVAC_Mode
HVAC Mode
AUTO, HEAT, COOL, OFF
ID = The ID or alias of the thermostat unit.