Skip to content

ImperiHome Binding

TheKorn2 edited this page Apr 20, 2016 · 20 revisions

ImperiHome Binding

Please Note: This binding is in beta stage; currently available for download via the OpenHAB-Forum.


The binding will enable you to use the comercial ImperiHome UI.


Copy the .jar files provided into the ./addons directory of your OH installation.

Page Top

ImperiHome Configuration

After OpenHAB configuration is complete, on your ImperiHome device add a new system. Type should be ImperiHome Standard System. Local API base url should be of the form http://(your openhab server ip address):(openhab port)/imperihab

OpenHAB Configuration

The binding provides the API for ImperiHome to load the devices from openHAB and to control it.


Binding Format

#room the room you want the item to appear under in ImperiHome
#label Optional, the name of the item to appear in ImperiHome, if not specified the name will be the item name replacing _ with " ", so Outside_Porch_Light would become "Outside Porch Light" automatically
#type Optional, only needed if the type of the device cannot be guessed from the item. It first tries to find the type based on the values it support OpenClose, OnOff, Percentage etc and there's some best guesses for the item names e.g. if item name contains "Humidity" it thinks its a humidity sensor). If none of these work, or if you want to override the type it guesses, you can specify it. Using the device types for imperihome:
Device type string Description
DevCamera MJPEG IP Camera
DevCO2 CO2 sensor
DevCO2Alert CO2 Alert sensor
DevDimmer Dimmable light
DevDoor Door / window security sensor
DevElectricity Electricity consumption sensor
DevFlood Flood security sensor
DevGenericSensor Generic sensor (any value)
DevHygrometry Hygro sensor
DevLock Door lock
DevLuminosity Luminance sensor
DevMotion Motion security sensor
DevMultiSwitch Multiple choice actuator
DevNoise Noise sensor
DevPressure Pressure sensor
DevRain Rain sensor
DevScene Scene (launchable)
DevShutter Shutter actuator
DevSmoke Smoke security sensor
DevSwitch Standard on/off switch
DevTemperature Temperature sensor
DevThermostat Thermostat (extra parameters required)
DevUV UV sensor
DevWind Wind sensor
#wattsitem Optional, this lets you specify another item to be the "energy" value for an item, e.g. for a z-wave power outlet Switch Item, you can link this to the Number item that has the power reading. Then in imperihome it will show the power usage for that switch.
#persist Optional, this lets you specify another persist store to use instead of the default configured in openHAB.
#unit Optional lets you specify the units for a numeric value, for Fahrenheit temperatures use "F", eg unit:F
#stopable Optional, if present on a Shutter, this will show a "Stop" button for that shutter in imperiHome
#invert Optional (true|false), this lets you invert an on/off, open/closed state of an item. This is helpful if ImperiHome is showing the wrong state for a door. E.g. a garage door appears open when closed etc.

Page Top

Temperatures with Humidity

To combine a temperature with a humidity value (so they appear as a single item in imperiHome). You can specify a "hygroId" to the temperature binding. For example

Number	nOffice_Temperature { zwave="3:command=SENSOR_MULTILEVEL,sensor_type=1", imperihab="room:Office,label:Office Temperature,hygroId:nOffice_Humidity" }
Number	nOffice_Humidity { zwave="3:command=SENSOR_MULTILEVEL,sensor_type=5" }

In this case you do not specify a imperihab binding for the humidity just for the temperature.


DevThermostat should be attached to the item that defines the thermostat's set point. In addition, DevThermostat item needs several extra parameters to function. All of them are required. Finally, rules to convert between the strings that Imperihab uses for the thermostat's modes and whatever command(s) you need to send to your thermostat.

Name Type Description
curmodeid String Current thermostat mode
currentTempId Item Current temperature
minVal Number Minimum allowable value for thermostat set point
maxVal Number Maximum allowable value for thermostat set point
availableModes String dash separated modes. eg: Off-Auto-Cool-Heat

DevThermostat example

Number LIVINGROOM_THERMOSTAT_MODE "Livingroom Thermostat Mode: [MAP(]"  {zwave="40:0:command=THERMOSTAT_MODE"}
Number LIVINGROOM_THERMOSTAT_TEMPERATURE "Livingroom Thermostat Temperature: [%.1f F]" <temperature> {zwave="40:0:command=SENSOR_MULTILEVEL,sensor_type=1"}
Number LIVINGROOM_THERMOSTAT_HEAT_SETPOINT "Livingroom Thermostat Heating Set Point [%.1f F]" <heating2_small> (Group_Thermostat, Group_Persistence)  {zwave="40:0:command=THERMOSTAT_SETPOINT,setpoint_type=1,setpoint_scale=1", imperihab="room:Livingroom,label:Thermostat (heat),unit:F,curmodeid:IMPERIHAB_THERMOSTAT_MODE,currentTempId:LIVINGROOM_THERMOSTAT_TEMPERATURE,minVal:60,maxVal:90,availableModes:Off-Heat-Cool"}
String IMPERIHAB_THERMOSTAT_MODE "Imperihab thermostat mode" 

DevThermostat example rules

rule "Thermostat mode changed -- tell Imperihab"
  Item LIVINGROOM_THERMOSTAT_MODE received command
	switch receivedCommand
			case 0: {
				logInfo("openhab","Thermostat mode set to 0 (Off).  Informing Imperihab.")
			case 1: {
				logInfo("openhab","Thermostat mode set to 1 (Heat).  Informing Imperihab.")
			case 2: {
				logInfo("openhab","Thermostat mode set to 2 (Cool).  Informing Imperihab.")

rule "Imperihab changed thermostat mode -- change thermostat"
  Item IMPERIHAB_THERMOSTAT_MODE received command
	switch receivedCommand
		case "Off":
				logInfo("openhab","Imperihab switched thermostat state to Off")
		case "Heat":
				logInfo("openhab","Iperihab switched thermostat state to Heat")				
		case "Cool":
				logInfo("openhab","Iperihab switched thermostat state to Cool")				


Number zWaveSensor23_1 "L1 [%.1f W]" <energy> (gZWaveNode23, gPower) {zwave="23:1:command=METER", imperihab="room:Keller,label:Verbrauch L1,type:DevElectricity,watts:zWaveSensor23_1"}
Dimmer zWaveLightOGBedroom "Licht [%d %%]" <light> (gZWaveNode20, gLights, gHomeOGBedroom) {zwave="20:0:command=SWITCH_MULTILEVEL", imperihab="room:Schlafzimmer,label:Licht,type:DevDimmer,watts:zWaveLightOGBedroom"}
Rollershutter zWaveShutterEGLivingroomLeft "Rollladen" <rollershutter> (gZWaveNode16, gHomeShuttersEG, gHomeEGLivingRoom) {zwave="16:0:command=SWITCH_MULTILEVEL", imperihab="room:Wohnraum,label:Rollladen,type:DevShutter,watts:zWaveShutterEGLivingroomLeft"}
Number zWaveSensor2Temperatur "Temperatur EG [%.1f °C]" <temperature> (gZWaveNode2, gTemperature, gHomeEGTV) {zwave="2:3:command=SENSOR_MULTILEVEL, sensor_type=1, sensor_scale=0", imperihab="room:TV,label:Temperatur,type:DevTemperature,watts:zWaveSensor2Temperatur"} 
Number	nOffice_Temperature { zwave="3:command=SENSOR_MULTILEVEL,sensor_type=1", imperihab="room:Office,label:Office Temperature,hygroId:nOffice_Humidity" }
Number	nOffice_Humidity { zwave="3:command=SENSOR_MULTILEVEL,sensor_type=5" }

Page Top

feature overview


Setup intro

Linux and OS X





User Interfaces



(link to openHAB forum)



Application Integration



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.

Binding configurations

Use case examples

Item definition examples

Sitemap definition examples

Collections of Rules on a single page

Single Rules


Syntax highlighting for external editors

Release Notes

Clone this wiki locally
You can’t perform that action at this time.