Skip to content
This repository has been archived by the owner on May 17, 2021. It is now read-only.

Samples WAC Binding

westaflex edited this page Mar 12, 2014 · 21 revisions

Our WAC systems use default modbus data provided by Arduino barebones e.g. a Debian Rasberry server kit all year long. Binding is compatible with latest models since 2013' See Examples of typical WAC Bindings, if you have any suggestions or questions don't hesitate to contact us or use our Github account. The snapshot version of our industry4.0 binding can be downloaded, together with the rest of openhab.

Table of Contents

wac.items

/* * * Error * */ Contact HeatError "Plate Heat Frost Protection [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:0" } Contact FireError "Fire alarm: [MAP(alarm_en.map):%s]" <fire> {modbus="wxwacC:1"} Contact FilterError "Dirty Filter alarm [MAP(filter_en.map):%s]" <siren> { modbus = "wxwacC:2" } Contact FanError "Fans alarm [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:3" } //4 is missing? Contact LowPowerError "LowPower alarm [MAP(alarm_en.map):%s]" <energy> { modbus = "wxwacC:5" } Contact TemperatureExtractError "Temperature sensor alarm [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:6" } Contact TemperatureExhaustError "Exhaust air temperature sensor alarm [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:7" } Contact TemperatureImitError "Supply air temperature sensor alarm [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:8" } Contact RHError "DTJ(100) humidity sensor alarm \n <br/><small>(controller works in determing the moisture content of 70%)</small> [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:9" } Contact ReturnWaterError "Return water temperature sensor alarm [MAP(alarm_en.map):%s]" <siren> { modbus = "wxwacC:10" } Contact TemperatureOutDoorError "Outside air temperature sensor alarm \n <br/><small>(controller continues to work in determing <br/>ToutDoor less than zero degree)</small>" <siren> { modbus = "wxwacC:11" } /* * * Status Fields * */ Contact MotorActive "Fans [MAP(active_en.map):%s]" <fan> { modbus = "wxwacC:12" } Number Motor1 "Motor 1 fan speed value [%s]" <fan> { modbus = "wxwacI2:0"} Number Motor2 "Motor 2 fan speed value [%s]" <fan> { modbus = "wxwacI2:1"} Number Speed "Fans speed Settings [%s]" <fan> { modbus = "wxwacH:0"} Number InDumpper "Outside air damper actuator [%.1f &#37;]" <procentage> { modbus = "wxwacI1:0" } Contact Preheater "Preheater indication" <sensor> { modbus = "wxwacC:15" } Contact Heater "Heater indication" <sensor> { modbus = "wxwacC:15" } Number TemperatureSetPoint "Supply air temperature set [%.1f °C]" <temperature> { modbus = "wxwacH:1"} Number TemperatureLimit "Supply air temperature value [%.1f °C]" <temperature> { modbus = "wxwacI2:3"} Number RH_value "DTJ(100) humidity sensor value [%.1f &#37;]" <procent> { modbus = "wxwacI2:0"} Number TemperatureExhaust "DTJ(100) temperature sensor value [%.1f °C]" <temperature> { modbus = "wxwacI2:4"} Number TemperatureExtract "Exhaust air temperature sensor value [%.1f °C]" <temperature> { modbus = "wxwacI2:5"} Number TemperatureOutDoor "Outside air temperature sensor value [%.1f °C]" <temperature> { modbus = "wxwacI2:6"} Number TemperatureWater "Return water temperature value [%.1f °C]" <temperature> { modbus = "wxwacI2:7"}

users.cfg

user=password,user,role

wac.cfg

# This is the default configuration file, which comes with every openHAB distribution. # You should do a copy of it with the name 'openhab.cfg' and configure your personal # settings in there. This way you can be sure that they are not overwritten, if you # update openHAB one day. ####################################################################################### ##### General configurations ##### ####################################################################################### # Configuration folders (must exist as a subdirectory of "configurations"; the value # tells the number of seconds for the next scan of the directory for changes. A # value of -1 deactivates the scan). # A comma separated list can follow after the refresh value. This list defines a filter # for valid file extensions for the models. folder:items=10,items folder:sitemaps=10,sitemap folder:rules=10,rules folder:scripts=10,script folder:persistence=10,persist # configures the security options. The following values are valid: # ON = security is switched on generally # OFF = security is switched off generally # EXTERNAL = security is switched on for external requests # (e.g. originating from the Internet) only # (optional, defaults to 'OFF') #security:option= # the Netmask to define a range of internal IP-Addresses which doesn't require # authorization (optional, defaults to '192.168.1.0/24') #security:netmask= # The name of the default persistence service to use persistence:default=rrd4j # The refresh interval for the main configuration file. A value of '-1' # deactivates the scan (optional, defaults to '-1' hence scanning is deactivated) #mainconfig:refresh= ################################## Chart Servlet ###################################### # # This section defines the configuration for the chart servlet. chart:provider=default # # Set the default height of a chart if the client doesn't provide this in the request # defaults to 240 #chart:defaultHeight=240 # # Set the default width of a chart if the client doesn't provide this in the request # defaults to 480 #chart:defaultWidth=480 # # Set a scale factor. This is used if the client sets the size in the request. # defaults to 1 (ie no scaling) #chart:scale=1 ####################################################################################### ##### Action configurations ##### ####################################################################################### ######################## Mail Action configuration #################################### # # The SMTP server hostname, e.g. "smtp.gmail.com" #mail:hostname= # the SMTP port to use (optional, defaults to 25 (resp. 587 for TLS)) #mail:port= # the username and password if the SMTP server requires authentication #mail:username= #mail:password= # The email address to use for sending mails #mail:from= # set to "true", if TLS should be used for the connection # (optional, defaults to false) #mail:tls= # set to "true", if POP before SMTP (another authentication mechanism) # should be enabled. Username and Password are taken from the above # configuration (optional, default to false) #mail:popbeforesmtp= ########################## XMPP Action configuration ################################## # # The XMPP server to use, e.g. "jabber.org", "talk.google.com" or "talkx.l.google.com" #xmpp:servername= # The XMPP Proxyserver to use, e.g. "gmail.com" #xmpp:proxy= # the server port to use (optional, defaults to 5222) #xmpp:port= # the username and password for the sending XMPP account #xmpp:username= #xmpp:password= # a comma separated list of users that are allowed to use the XMPP console #xmpp:consoleusers= # the multi user chat to join, e.g. openhab@chat.example.com #xmpp:chatroom= # the nickname used in the multi user chat (optional, defaults to openhab-bot) #xmpp:chatnickname= # the password required to join the multi user chat #xmpp:chatpassword= ########################## Prowl Action configuration ################################# # # the apikey for authentication (generated on the Prowl website) #prowl:apikey= # the default priority of a Prowl notifications (optional, defaults to '0') #prowl:defaultpriority= # the url of the Prowl public api # (optional, defaults to 'https://prowl.weks.net/publicapi/') #prowl:url= ########################### Twitter Action configuration ############################## # # The ConsumerKey, ConsumerSecret combination (optional, defaults to official Twitter-App # Key-Secret-Combination) #twitter:key= #twitter:secret= # Flag to enable/disable the Twitter client (optional, defaults to 'false') #twitter:enabled= #################### Notify my Android (NAM) Action configuration ##################### # # The timeout for the communication with the NMA service (optional, defaults # to 10000 milliseconds) #nma:timeout= # If you have a developerKey from NMA you can set it here, but this completely optional #nma:developerKey= # The default api key to send messages to. Api keys can be created in your accounts dashboard. #nma:apiKey= # The application name which NMA will show (optional, defaults to 'openHAB'). #nma:appName= # The priority to use for messages if not specified otherwise. Can range from # -2 (lowest) to 2 (highest) #nma:defaultPriority= # The URL to attach to NMA messages by default if not specified otherwise. Can be left empty. #nma:defaultUrl= ####################################################################################### ##### I/O component configurations ##### ####################################################################################### ########################## Google Calendar configuration ############################## # # the username and password for Google Calendar Account #gcal:username= #gcal:password= # the url of the calendar feed #gcal:url= # the filter criteria for full text query (optional) #gcal:filter= # refresh interval in milliseconds (optional, defaults to 900000 [15 minutes]) #gcal:refresh= ############################# Dropbox configuration ################################### # # Operates the Synchronizer in fake mode which avoids up- or downloading files to and from Dropbox. # This is meant as testMode for the filter settings (optional, defaults to false) #dropbox:fakemode= # the up- and download interval as Cron-Expression. See the Quartz-Tutorial # http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06 # for more information on how to use them best (optional, defaults to '0 0/5 * * * ?' # which means every 5 minutes) #dropbox:uploadInterval= #dropbox:downloadInterval= # the AppKey, AppSecret combination (optional, defaults to official Dropbox-App # Key-Secret-Combination) #dropbox:appkey= #dropbox:appsecret= # defines the mode how files are synchronized with dropbox. Valid SyncModes are # 'DROPBOX_TO_LOCAL', 'LOCAL_TO_DROPBOX' and 'BIDIRECTIONAL' (optional, defaults # to 'LOCAL_TO_DROPBOX') #dropbox:syncmode= # the base directory to synchronize with openHAB, configure 'filter' to select # files (optional, defaults to '.') #dropbox:contentdir= # defines a comma separated list of regular expressions which matches the # filenames to upload to Dropbox (optional, defaults to '/configurations/.*, # /logs/.*, /etc/.*') #dropbox:uploadfilter= # defines a comma separated list of regular expressions which matches the # filenames to download from Dropbox (optional, defaults to '/configurations/.*') #dropbox:downloadfilter= ############################# MaryTTS configuration ################################### # # the default voice used by the MaryTTS engine. Available voices are: bits1-hsmm # (german, female), bits3-hsmm (german, male), cmu-slt-hsmm (english, male) (optional, # defaults to the systems' default voice or the first available voice) #marytts:voice= ####################################################################################### ##### Persistence configurations ##### ####################################################################################### ######################## Open.Sen.se Persistence Service ############################## # # the url of the Open.Sen.se public api (optional, defaults to # 'http://api.sen.se/events/?sense_key=') #sense:url= # the Open.Sen.se API-Key for authentication (generated on the Open.Sen.se website) #sense:apikey= ######################### Logging Persistence Service ################################# # # the logback encoder pattern to use to write log entries # see http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout for all options # the item name is available as the "logger" name, the state as the "msg" logging:pattern=%date{ISO8601} - %-25logger: %msg%n ########################### Db4o Persistence Service ################################## # # the backup interval as Cron-Expression (optional, defaults to '0 0 1 * * ?' # which means every morning at 1 o'clock) #db4o:backupinterval= # the commit interval in seconds (optional, default to '5') #db4o:commitinterval= # the amount of backup files allowed in DB_FOLDER_NAME (optional, defaults # to '7') #db4o:maxbackups= ############################ SQL Persistence Service ################################## # the database url like 'jdbc:mysql://<host>:<port>/<user>' #mysql:url= # the database user #mysql:user= # the database password #mysql:password= ############################ Cosm Persistence Service ################################# # # the url of the Cosm feed (optional, defaults to 'http://api.cosm.com/v2/feeds/') #cosm:url= # the Cosm API-Key for authentication (generated on the Cosm website) #cosm:apikey= ############################ GCal Persistence Service ################################# # # the username and password for Google Calendar Account #gcal-persistence:username= #gcal-persistence:password= # the url of the calendar feed #gcal-persistence:url= # the offset (in days) new calendar entries will be created in future (optional, # defaults to 14) #gcal-persistence:offset= # the base script which is written to the newly created Calendar-Events by # the GCal-based presence simulation. It must contain two format markers '%s'. # The first marker represents the Item to send the command to and the second # represents the State (optional, defaults to # '> if (PresenceSimulation.state == ON) sendCommand(%s,%s)') #gcal-persistence:executescript= ################################# MQTT Persistence ######################################### # # Name of the broker as defined in the section MQTT Transport # mqtt-persistence:broker= # The MQTT topic to which the persistence messages should be sent. # mqtt-persistence:topic= # A string representing the persistence message content. # mqtt-persistence:message= ####################################################################################### ##### Binding configurations ##### ####################################################################################### ################################ KNX Binding ########################################## # # KNX gateway IP address # (optional, if serialPort or connection type 'ROUTER' is specified) #knx:ip= # KNX IP connection type. Could be either TUNNEL or ROUTER (optional, defaults to TUNNEL) # Note: If you cannot get the ROUTER mode working (even if it claims it is connected), # use TUNNEL mode instead with setting both the ip of the KNX gateway and the localIp. #knx:type= # KNX gateway port (optional, defaults to 3671) #knx:port= # Local endpoint to specify the multicast interface, no port is used (optional) #knx:localIp= # Serial port of FT1.2 KNX interface (ignored, if ip is specified) # Valid values are e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux #knx:serialPort= # Pause in milliseconds between two read requests on the KNX bus during # initialization (optional, defaults to 50) #knx:pause= # Timeout in milliseconds to wait for a response from the KNX bus (optional, # defaults to 10000) #knx:timeout # Number of read retries while initialization items from the KNX bus (optional, # defaults to 3) #knx:readRetries # Seconds between connect retries when KNX link has been lost # 0 means never retry, it will only reconnect on next write or read request # Note: without periodic retries all events will be lost up to the next read/write # request # (optional, default is 0) #knx:autoReconnectPeriod=30 ############################# Bluetooth Binding ####################################### # # Bluetooth refresh rate in seconds # (defines, how often a new device detection scan is performed) #bluetooth:refresh=20 ############################## OneWire Binding ######################################## # # OwServer IP address #onewire:ip= # OwServer Port (optional, defaults to 4304) #onewire:port= # refresh interval in milliseconds (optional, defaults to 60000) #onewire:refresh= # the retry count in case no valid value was returned # upon read (optional, defaults to 3) #onewire:retry= # defines which temperature scale owserver should return temperatures in. Valid # values are CELSIUS, FAHRENHEIT, KELVIN, RANKIN (optional, defaults to CELSIUS). #onewire:tempscale= ########################### NetworkHealth Binding ##################################### # # Default timeout in milliseconds if none is specified in binding configuration # (optional, default to 5000) #networkhealth:timeout= # refresh interval in milliseconds (optional, default to 60000) #networkhealth:refresh= ############################### HTTP Binding ########################################## # # timeout in milliseconds for the http requests (optional, defaults to 5000) #http:timeout= # the interval in milliseconds when to find new refresh candidates # (optional, defaults to 1000) #http:granularity= # configuration of the first cache item # http:<id1>.url= # http:<id1>.updateInterval= # configuration of the second cache item # http:<id2>.url= # http:<id2>.updateInterval= ############################# Fritz!Box Binding ####################################### # # Please note: To be able to connect to the monitor port, the "CallMonitor" must be # activated by dialing "#96*5*" once on a telephone that is connected to the Fritz!Box. # IP address of Fritz!Box to connect to #fritzbox:ip=fritz.box ############################### Asterisk Binding ###################################### # # Please note: The Asterisk Management Interface (AMI) has to be activated in the # manager.conf file of your Asterisk PBX. # hostname of the AMI #asterisk:host= # the username and password to login to the AMI #asterisk:username= #asterisk:password= ################################ NTP Binding ########################################## # # refresh interval in milliseconds (optional, defaults to 900000 [15 minutes]) #ntp:refresh= # the hostname of the timeserver ntp:hostname=ptbtime1.ptb.de ################################ MPD Binding ########################################## # # Host and port of the first MPD to control # mpd:<player-id-1>.host= # mpd:<player-id-1>.port= # The password to authenticate against the MPD server (optional, can be null to # indicate that no authentication is required) # mpd:<player-id-1>.password= # Host and port of the second MPD to control # mpd:<player-id-2>.host= # mpd:<player-id-2>.port= # The password to authenticate against the MPD server (optional, can be null to # indicate that no authentication is required) # mpd:<player-id-2>.password= ################################ VDR Binding ########################################## # # Host and port of the first VDR to control # vdr:<vdr-id-1>.host= # vdr:<vdr-id-1>.port=6419 # Host and port of the second VDR to control # vdr:<vdr-id-2>.host= # vdr:<vdr-id-2>.port=6419 ################################ SNMP Binding ######################################### # # Listening Port (optional, defaults to '162') #snmp:port= # The SNMP community to listen to (optional, defaults to 'public') #snmp:community= # The SNMP retry timeout (in milliseconds). Defaults to 1500. # Sets the number of milliseconds between retries. #snmp:timeout= # The SNMP number of retries. Defaults to 0. # Sets the number of retries before aborting the request. #snmp:retries= ######################## Novelan (Siemens) Heatpump Binding ########################### # # IP address of the Novelan (Siemens) Heatpump to connect to #novelanheatpump:ip= # refresh interval in milliseconds (optional, defaults to 60000) #novelanheatpump:refresh= ############################### Cups Binding ########################################## # # CupsServer IP address or Host name #cups:host= # CupsServer Port (optional, defaults to 631) #cups:port= # refresh interval in milliseconds (optional, defaults to 60000) #cups:refresh= ############################ IHC / ELKO LS Binding #################################### # # Controller IP address #ihc:ip= # Username and password for Controller #ihc:username= #ihc:password= # Timeout for controller communication #ihc:timeout=5000 ############################## Plugwise Binding ####################################### # # "stick" is reserved plug wise id #plugwise:stick.port= # interval in ms to wait between messages sent on the ZigBee network #plugwise:stick.interval=150 # "circleplus" is reserved plug wise id #plugwise:circleplus.mac= #plugwise:<plugwise-id-1>.mac= ############################### Modbus Binding ######################################## # # sets refresh interval to Modbus polling service. # Value in milliseconds (optional, defaults to 200) modbus:poll=800 # host (mandatory) modbus:tcp.wxwacC.connection=192.168.1.144:502 # The data type, can be "coil" "discrete" "holding" "input" modbus:tcp.wxwacC.type=coil # the TCP port (optional, defaults to '502') #modbus:tcp.wxwacC.port=502 # The slave id (optional, defaults to '1') modbus:tcp.wxwacC.id=1 # The slave start address (optional, defaults to '0') modbus:tcp.wxwacC.start=0 # The number of data item to read # (optional, defaults to '0' - but set it to something meaningful) modbus:tcp.wxwacC.length=16 ### Air Dumper modbus:tcp.wxwacI.connection=192.168.1.144:502 modbus:tcp.wxwacI.id=1 modbus:tcp.wxwacI.type=input modbus:tcp.wxwacI.start=13 modbus:tcp.wxwacI.length=1 ### Fan temp and Air Temperature modbus:tcp.wxwacH.connection=192.168.1.144:502 modbus:tcp.wxwacH.id=1 modbus:tcp.wxwacH.type=holding modbus:tcp.wxwacH.start=16 modbus:tcp.wxwacH.length=2 ### misc modbus:tcp.wxwacI2.connection=192.168.1.144:502 modbus:tcp.wxwacI2.id=1 modbus:tcp.wxwacI2.type=input modbus:tcp.wxwacI2.start=18 modbus:tcp.wxwacI2.length=8 ############################### PLC Bus Binding ####################################### # # PLCBus adapter serial port #plcbus:port= ################################# DMX Binding ######################################### # # The combined connection String, e.g. 'localhost:9010' (optional, defaults to # 'localhost:9010' or 'localhost:9020' depending on the choosen connection type) #dmx:connection= ############################### Philips Hue Binding ################################### # # IP address of Hue Bridge (optional, default is auto-discovery) #hue:ip= # Default secret key for the pairing of the Philips Hue Bridge. # It has to be between 10-40 (alphanumeric) characters # This may be changed by the user for security reasons. hue:secret=openHABRuntime ################################ RFXCOM Binding ####################################### # # Serial port of RFXCOM interface # Valid values are e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux #rfxcom:serialPort= # Set mode command for controller (optional) # E.g. rfxcom:setMode=0D000000035300000C2F00000000 #rfxcom:setMode= ############################## Pulseaudio Binding ##################################### # # PulseaudioServer IP address #pulseaudio:Main.host= # PulseaudioServer Port (optional, defaults to 4712) #pulseaudio:Main.port= ############################### Homematic Binding ##################################### # # Hostname / IP address of the Homematic CCU #homematic:host= # Hostname / IP address for the callback server (optional, default is auto-discovery) # This is normally the IP / hostname of the local host # (but not "localhost" or "127.0.0.1"). #homematic:callback.host= # Port number for the callback server. (optional, defaults to 9123) #homematic:callback.port= ################################ Koubachi Binding ##################################### # # refresh interval in milliseconds (optional, defaults to 900000ms, 15m) #koubachi:refresh # The URL of the Device list (optional, defaults to # 'https://api.koubachi.com/v2/user/smart_devices?user_credentials=%1$s&app_key=%2$s') #koubachi:deviceurl # The URL of the Plant list (optional, defaults to # 'https://api.koubachi.com/v2/plants?user_credentials=%1$s&app_key=%2$s') #koubachi:planturl # The URL for care actions (optional, defaults to # 'https://api.koubachi.com/v2/plants/%3$s/tasks?user_credentials=%1$s&app_key=%2$s') #koubachi:tasksurl # The single access token configured at http://labs.kpubachi.com #koubachi:credentials # The personal appKey configured at http://labs.koubachi.com #koubachi:appkey ################################ Sonos Binding ######################################## # # Host and port of the first VDR to control #sonos:office.udn=RINCON_000XXXXXXXXX01400 #sonos:living.udn=RINCON_000YYYYYYYYY01400 ################################ SAMSUNG TV Binding ################################### # # Host of the first TV to control # samsungtv:<TVid1>.host= # Port of the TV to control (optional, defaults to 55000) # samsungtv:<TVid1>.port= # Host of the second TV to control # samsungtv:<TVid2>.host= # Port of the TV to control (optional, defaults to 55000) # samsungtv:<TVid2>.port= ################################# Onkyo Binding ###################################### # # Host of the first Onkyo device to control # onkyo:<OnkyoId1>.host= # Port of the Onkyo to control (optional, defaults to 60128) # onkyo:<OnkyoId1>.port= # Host of the second Onkyo device to control # onkyo:<OnkyoId2>.host= # Port of the Onkyo to control (optional, defaults to 60128) # onkyo:<OnkyoId2>.port= ################################ OpenSprinkler Binding ################################ # # The type of OpenSprinkler connection to make (optional, defaults to 'gpio'). # There are two valid options: # # gpio: this mode is only applicable when running openHAB on a Raspberry Pi, which # is connected directly to an OpenSprinkler Pi. In this mode the communication # is directly over the GPIO pins of the Raspberry Pi # http: this mode is applicable to both OpenSprinkler and OpenSprinkler Pi, as long as # they are running the interval program. Realistically though if you have an # OpenSprinkler Pi, it makes more sense to directly connect via gpio mode. # openSprinkler:mode= # If the http mode is used, you need to specify the url of the internal program, # and the password to access it. By default the password is 'opendoor'. # openSprinkler:httpUrl=http://localhost:8080/ # openSprinkler:httpPassword=opendoor # The number of stations available. By default this is 8, but for each expansion board # installed this number will can be incremented by 8 (optional, defaults to 8). # openSprinkler:numberOfStations= ############################ Epson Projector Binding ################################## # # Serial port or Host and port of the first Epson projector to control # epsonprojector:<devId1>.serialPort= # epsonprojector:<devId1>.host= # Port of the Epson projector to control (optional, defaults to 60128) # epsonprojector:<devId1>.port= # Serial port or Host and port of the second Epson projector to control # epsonprojector:<devId2>.serialPort= # epsonprojector:<devId2>.host= # Port of the Epson projector to control (optional, defaults to 60128) # epsonprojector:<devId2>.port= ################################# Zehnder ComfoAir #################################### # # Serial port of the Zehnder ComfoAir to connect to #comfoair:port=/dev/ttyS0 # refresh interval in milliseconds (optional, defaults to 60000) #comfoair:refresh= ############################### EDS OWSever Binding ################################### # # Host of the first OWServer device to control # owserver:<serverId1>.host= # Host of the second OWServer device to control # owserver:<serverId2>.host= ################################ digitalSTROM Binding ################################# # # URI of the digitalSTROM server (dSS) # digitalstrom:uri=https://dss.local:8080 # Connect timeout (defaults to 4000 ms) #digitalstrom:connectTimeout= # Connect timeout (defaults to 10000 ms) #digitalstrom:readTimeout= # to login without a user and password; loginToken must be enabled once #digitalstrom:loginToken= # to login with username and password; default user is dssadmin and default password # is dssadmin if you have loginToken and username with password the loginToken will # be prefered by default #digitalstrom:user= #digitalstrom:password= ################################## Squeezebox Binding ################################# # # Host of the first Squeezebox device to control #squeeze:<boxId1>.host= # Port of cli interface of the first Squeezebox device to control # (optional, defaults to 9090) #squeeze:<boxId1>.cliport= # Webport interface of the first Squeezebox device to control (optional, # defaults to 9000) #squeeze:<boxId1>.webport= # Host of the second Squeezebox device to control #squeeze:<boxId2>.host= # Port of cli interface of the second Squeezebox device to control (optional, # defaults to 9090) #squeeze:<boxId2>.cliport= # Webport interface of the second Squeezebox device to control (optional, # defaults to 9000) #squeeze:<boxId2>.webport= ################################### Milight Binding ################################### # # Host of the first Milight bridge to control #milight:<MilightId1>.host= # Port of the bridge to control (optional, defaults to 50000) #milight:<MilightId1>.port= # # Host of the second Milight bridge to control #milight:<MilightId2>.host= # Port of the bridge to control (optional, defaults to 50000) #milight:<MilightId2>.port= ############################### Systeminfo Binding #################################### # # Interval in milliseconds when to find new refresh candidates # (optional, defaults to 1000) #systeminfo:granularity= # Data Storage Unit, where B=Bytes, K=kB, M=MB, T=TB (optional, defaults to M) #systeminfo:units= ################################### PiFace Binding #################################### # # Watchdog polling interval (optional, defaults to 60000) #piface:watchdog.interval= # Host of the first Raspberry PI carrying a PiFace board #piface:<piface-id1>.host= # Port of the Piface listener of the first RasPi (optional, defaults to 15432) #piface:<piface-id1>.listenerport= # Port of the Piface monitor of the first RasPi (optional, defaults to 15433) #piface:<piface-id1>.monitorport= # Socket timeout when sending packets to the first RasPi (optional, defaults to 1000ms) #piface:<piface-id1>.sockettimeout= # Number of retry attempts before failing a packet for the first RasPi (optional, defaults to 3) #piface:<piface-id1>.maxretries= ############################# Fritz AHA Binding ####################################### # # refresh interval in milliseconds (optional, defaults to 10000) #fritzaha:refresh= # Binding supports multiple AHA hosts (e.g. FRITZ!Box, Fritz!Powerline 546E). Format is # fritzaha:<hostID>.<option>=<value>, where hostID is up to user choice # Host name of the first AHA host (e.g. fritz.box) #fritzaha:<hostID1>.host= # Port of the first AHA host (optional, defaults to protocol-specific default port) #fritzaha:<hostID1>.port= # Protocol to connect to web interface. Supports https and http. # Use of https requires SSL certificate to be trusted by the JRE. # (optional, defaults to http) #fritzaha:<hostID1>.protocol= # Username of the first AHA host. User must have HomeAuto permissions. # (optional for local networks, required for remote access) #fritzaha:<hostID1>.username= # Password of the first AHA host's web interface. # (optional, but required if password is set in host) #fritzaha:<hostID1>.password= # timeout for synchronous http-connections (optional, default 2000) #fritzaha:<hostID1>.synctimeout= # timeout for asynchronous http-connections (optional, default 4000) #fritzaha:<hostID1>.asynctimeout= ############################## Tinkerforge Binding ################################### # # IP addresses / Hostnames of the hosts running the brickd (optional port # separated by a colon, defaults to 4223) # tinkerforge:hosts= ######################## NIBE HEAT PUMP Binding ####################################### # # UDP port of the Heatpump Monitor (optional, defaults to 9999) #nibeheatpump:udpPort= # Switch on the Nibe HeatPump Simulator (for testing purpose only) #nibeheatpump:simulate=true ################################ Z-Wave Binding ###################################### # # The Z-Wave controller port. Valid values are e.g. COM1 for Windows and /dev/ttyS0 or # /dev/ttyUSB0 for Linux #zwave:port= # Z-Wave binding refresh value (optional, defaults to 10000) #zwave:refresh= # Z-Wave binding refresh interval threshold (optional, defaults to every 6 times) #zwave:refreshThreshold= ################################ Nikobus Binding ###################################### # # Serial Port connected to pc-link. Valid values are e.g. COM1 for Windows and /dev/ttyS0 or # /dev/ttyUSB0 for Linux #nikobus:serial.port= # Directory path where the command cache file should be created. # Optional. Defaults to the users' home directory. #nikobus:cache.location= # Perform a module status query every x seconds (optional, defaults to 600 (10 minutes)). #nikobus:refresh= ################################# EnOcean Binding ##################################### # # EnOcean USB adapter serial port #enocean:serialPort= ################################# TCP - UDP Binding ################################### # # all parameters can be applied to both the TCP and UDP binding unless # specified otherwise # Port to listen for incoming connections #tcp:port=25001 # Cron-like string to reconnect remote ends, e.g for unstable connection or remote ends #tcp:reconnectron='0 0 0 * * ?' # Interval between reconnection attempts when recovering from a communication error, # in seconds #tcp:retryinterval=5 # Queue data whilst recovering from a connection problem (TCP only) #tcp:queue=true # Maximum buffer size whilst reading incoming data #tcp:buffersize=1024 # Share connections within the Item binding configurations #tcp:itemsharedconnections=true # Share connections between Item binding configurations #tcp:bindingsharedconnections=true # Share connections between inbound and outbound connections #tcp:directionssharedconnections=false # Allow masks in ip:port addressing, e.g. 192.168.0.1:* etc #tcp:addressmask=true # Pre-amble that will be put in front of data being sent #tcp:preamble='' # Post-amble that will be appended to data being sent #tcp:postamble='\r\n' # Perform all write/read (send/receive) operations in a blocking mode, e.g. the binding # will wait for a reply from the remote end after data has been sent #tcp:blocking=false # timeout, in milliseconds, to wait for a reply when initiating a blocking write/read # operation #tcp:timeout=3000 # Update the status of Items using the response received from the remote end (if the # remote end sends replies to commands) #tcp:updatewithresponse=true # Timeout - or 'refresh interval', in milliseconds, of the worker thread tcp:refreshinterval=250 # Timeout, in milliseconds, to wait when "Selecting" IO channels ready for communication #tcp:selecttimeout=1000 ################################# Mqttitude Binding ################################### # # Mqttitude can track your presence in two ways; # # 1. Regions - by defining a region in your Mqttitude app (on your phone) you specify # a set of lat/lon coordinates, a geofence, and a name - by using this name # in your item binding openHAB will listen for enter/leave events for this # region and thus allow you to track your presence in multiple locations # 2. Home - by defining the lat/lon of your home, along with a geofence radius (below), # the binding will listen for location publishes from the Mqttitude app and # manually calculate the distance from your 'home' # # Optional. The latitude/longitude coordinates of 'home'. #mqttitude:home.lat= #mqttitude:home.lon= # Optional. The geofence radius. #mqttitude:geofence= ############################### OpenPaths Binding ##################################### # # The latitude/longitude coordinates of 'home'. #openpaths:home.lat= #openpaths:home.long # Interval in milliseconds to poll for user location (optional, defaults to 5mins). #openpaths:refresh= # Distance in metres a user must be from 'home' to be considered inside the # geofence (optional, defaults to 100m). #openpaths:geofence= # OpenPaths access/secret keys for each user. #openpaths:<name>.accesskey=<accesskey> #openpaths:<name>.secretkey=<secretkey> ######################## Swegon ventilation Binding ################################### # # UDP port (optional, defaults to 9998) #swegonventilation:udpPort= # Switch on the Swegon Simulator (for testing purpose only) #swegonventilation:simulate=true ################################ MAX!Cube Binding ########################################## # # MAX!Cube LAN gateway IP address #maxcube:ip= # MAX!Cube port (Optional, default to 62910) #maxcube:port= # MAX!Cube refresh interval in ms (Optional, default to 10000) #maxcube:refreshInterval= ################################### Tivo Binding ########################################### # # The TiVo binding simply acts as a network remote control for your Tivo device. To use # it you must therefore enable network remote control on your Tivo device. Once that is # done, all you need to do is specify the IP address of your Tivo in the configuration # below. # The IP address of the Tivo host #tivo:host= ################################ Insteon Hub Binding ####################################### # # The IP address of the Insteon Hub #insteonhub:host= ################################# Pioneer AVR Binding ###################################### # # Hostname/IP of the first Pioneer device to control #pioneeravr:livingroom.host= # Portnumber of the Pioneer device to control (optional, defaults to 23) #pioneeravr:livingroom.port= # Switch for disabling the connection check (optional, defaults to 1) #pioneeravr:livingroom.checkconn= ################################ Heatmiser Binding ######################################### # # Refresh interval in milliseconds (optional, defaults to 2000ms) #heatmiser:refresh # Set the heatmiser network address #heatmiser:address= # Set the port number for the Heatmiser interface #heatmiser:port= ################################### MQTT Transport ######################################### # # Define your MQTT broker connections here for use in the MQTT Binding or MQTT # Persistence bundles. Replace <broker> with a id you choose. # URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883 #mqtt:<broker>.url=tcp://<host>:1883 # Optional. Client id (max 23 chars) to use when connecting to the broker. # If not provided a default one is generated. #mqtt:<broker>.clientId=<clientId> # Optional. User id to authenticate with the broker. # mqtt:<broker>.user=<user> # Optional. Password to authenticate with the broker. #mqtt:<broker>.pwd=<password> # Optional. Set the quality of service level for sending messages to this broker. # Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2 # (Deliver exactly once). Defaults to 0. #mqtt:<broker>.qos=<qos> # Optional. True or false. Defines if the broker should retain the messages sent to # it. Defaults to false. #mqtt:<broker>.retain=<retain> # Optional. True or false. Defines if messages are published asynchronously or # synchronously. Defaults to true. #mqtt:<broker>.async=<async> ########################### Open Energy Monitor Binding ############################### # # UDP port of the Open Energy Monitor devices (optional, defaults to 9997) #openenergymonitor:udpPort=9997 # For testing purposes #openenergymonitor:simulate=true ############################## Netatmo Binding ############################## # # Refresh interval in milliseconds (optional, defaults to 300000) #netatmo:refresh= # The Netatmo client id (see http://dev.netatmo.com/dev/listapps) #netatmo:clientid= # The Netatmo client secret (see http://dev.netatmo.com/dev/listapps) #netatmo:clientsecret= # The Netatmo refresh token (see http://dev.netatmo.com/doc/authentication/usercred) #netatmo:refreshtoken= ########################### HDanywhere Binding ############################### # # Optional, specify the number of input and output ports for a given HDanywhere matrix #hdanywhere:192.168.0.88.ports=4

airflow.rules

import org.openhab.core.library.types.* import org.openhab.core.persistence.* import org.openhab.model.script.actions.* import java.lang.Math rule "Change Filter Message by Mail" when Item FilterError changed then if( (FilterError.state as StringType) != "Ok" ){ send("wac@westaflex.net", "Please change the Filter for you Westaflex Air Control unit.") } end

wac.sitemap

sitemap WAC label="Main" { Frame label="Westaflex Air Control" { Text label="Settings" icon="climate" { Frame label="Inside" { Setpoint item=TemperatureSetPoint minValue=0 maxValue=30 step=1 } Frame label="Outside" { Text item=TemperatureOutDoor Text item=InDumpper /* minValue=0 maxValue=90 step=1 */ } /* maybe to technical for normal usage */ Frame label="Motor Settings" { Text item=MotorActive Setpoint item=Speed minValue=0 maxValue=4 step=1 Setpoint item=Motor1 minValue=0 maxValue=3 step=1 Setpoint item=Motor2 minValue=0 maxValue=3 step=1 } } Text label="Maintenance" icon="settings" { Frame label="Environment" { Text item=HeatError Text item=FireError Text item=TemperatureExtractError Text item=TemperatureExhaustError Text item=TemperatureImitError Text item=RHError Text item=TemperatureOutDoorError } Frame label="System"{ Text item=FilterError Text item=LowPowerError Text item=ReturnWaterError } } Text label="Statistics" icon="pie" { Text label="Consumption" icon="pie" { Text label="by Date" icon="pie"{ Frame { Text item=MotorActive } Frame label="Hourly" { Chart item=Motor1 period=H refresh=10000 Chart item=Motor2 period=H refresh=10000 Chart item=Preheater period=H refresh=10000 Chart item=Heater period=H refresh=10000 } Frame label="Weekly" { Chart item=Motor1 period=W refresh=10000 Chart item=Motor2 period=W refresh=10000 Chart item=Preheater period=W refresh=10000 Chart item=Heater period=W refresh=10000 } Frame label="Monthly" { Chart item=Motor1 period=M refresh=10000 Chart item=Motor2 period=M refresh=10000 Chart item=Preheater period=M refresh=10000 Chart item=Heater period=M refresh=10000 } Frame label="Yearly" { Chart item=Motor1 period=Y refresh=10000 Chart item=Motor2 period=Y refresh=10000 Chart item=Preheater period=Y refresh=10000 Chart item=Heater period=Y refresh=10000 } } Text label="by Consumer" icon="pie" { Frame { Text item=MotorActive } Frame label="Motor 1"{ Chart item=Motor1 period=H refresh=10000 Chart item=Motor1 period=W refresh=86400 Chart item=Motor1 period=M refresh=86400 Chart item=Motor1 period=Y refresh=86400 } Frame label="Motor 2"{ Chart item=Motor2 period=H refresh=10000 Chart item=Motor2 period=W refresh=86400 Chart item=Motor2 period=M refresh=86400 Chart item=Motor2 period=Y refresh=86400 } Frame label="Preheater"{ Chart item=Preheater period=H refresh=10000 Chart item=Preheater period=W refresh=86400 Chart item=Preheater period=M refresh=86400 Chart item=Preheater period=Y refresh=86400 } Frame label="Heater"{ Chart item=Heater period=H refresh=10000 Chart item=Heater period=W refresh=86400 Chart item=Heater period=M refresh=86400 Chart item=Heater period=Y refresh=86400 } } } Text label="Environment" icon="pie" { Frame { Text item=TemperatureOutDoor } Frame { Chart item=TemperatureOutDoor period=D refresh=10000 Chart item=TemperatureOutDoor period=W refresh=10000 Chart item=TemperatureOutDoor period=M refresh=86400 Chart item=TemperatureOutDoor period=Y refresh=86400 } } } } }

wac_active.map

CLOSED=Deactivated OPEN=Active undefined=unknown -=not set

wac_error.map

CLOSED=Ok OPEN=Alarm undefined=unknown -=not set

TLDR

Tradename Tags Keynote Shortcut
WAC metal components Industry4.0 HVAC
New generation of ERV Energy Recovery Ventilation Systems in multi-zone modular or ceiling installation. It's perfect for the needs of craftsmen.
Quadroflex metal-to-metal-joint any-shape tube Fittings
Westaflex products are used in a variety of applications including automotive production, train technology (ICE ventilation), for the air supply and ventilation of living spaces, exhaust technology and water treatment.
Modbus Utility, SCADA, Statistics RS-232, RS-485 DIY, Maker
Modbus is a serial communications protocol for use with its programmable logic controllers (PLCs). Modbus enables communication between many (approximately 240) devices connected to a supervisory computer with a remote terminal unit (RTU) in supervisory control and data acquisition (SCADA) systems.
Westaflex aluminium, stainless steel, plastic since 1933 SME
Westaflex is a manufacturer of HVAC appliances, commercial equipment, based in Gütersloh, Germany. It was founded as a family business and has always been a privately held, family-owned, family-run company.

Installation


User Interfaces


Community

(link to openHAB forum)

Development



Misc


Samples

A good source of inspiration and tips from users gathered over the years. Be aware that things may have changed since they were written and some examples might not work correctly.

Please update the wiki if you do come across any out of date information.

Use case examples

Collections of Rules on a single page

Single Rules

Scripts


Release Notes

Clone this wiki locally