Intesisbox/Intesishome with Domoticz
Moderator: leecollings
-
- Posts: 11
- Joined: Monday 11 June 2018 21:07
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Intesisbox/Intesishome with Domoticz
Hello,
Has anyone dedicated time to integrate IntesisBox/IntesisHome with Domoticz?
I have seen that there are some drivers for some home automation platforms (https://www.intesisbox.com/en/fujitsu-a ... 1/gateway/)
I have installed recently a Fujitsu duct air conditioner and I'm in doubt about to buy IntesisHome (FJ-RC-WIFI-1) or IntesisBox (FJ-RX-WMP-1) to control and monitor this equipment.
Is there another module that I can integrate with the AC to control with Domoticz?
Regards
Has anyone dedicated time to integrate IntesisBox/IntesisHome with Domoticz?
I have seen that there are some drivers for some home automation platforms (https://www.intesisbox.com/en/fujitsu-a ... 1/gateway/)
I have installed recently a Fujitsu duct air conditioner and I'm in doubt about to buy IntesisHome (FJ-RC-WIFI-1) or IntesisBox (FJ-RX-WMP-1) to control and monitor this equipment.
Is there another module that I can integrate with the AC to control with Domoticz?
Regards
-
- Posts: 16
- Joined: Saturday 12 November 2016 11:07
- Target OS: Windows
- Domoticz version:
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hello,
We have asked several questions about IntesisHome, it would be good if it was compatible since it covers a wide variety of air conditioner brands and also has an APi.
We could do a survey to find out how many people are interested
Regards,
We have asked several questions about IntesisHome, it would be good if it was compatible since it covers a wide variety of air conditioner brands and also has an APi.
We could do a survey to find out how many people are interested
Regards,
Re: Intesisbox/Intesishome with Domoticz
Hi All,
I am in no way a programmer but took the risk and bought a IntesisBox PA-RC2-WMP-1 which is matched to my Panasonic whole home inverter in the hope of getting a plugin working and learning something along the way.
The PA-AC-RC2-WMP-1 uses the WMP protocol and I am sure the WMP protocol is standard across the IntesisBox range. Good news is that I have the plugin working and it feels very tightly integrated to Domoticz. I have been tweaking over a number of months but generally works well for me.
Connected is way, way, sooooo much better than the timer that comes standard with the unit.
It supports:
Power: On|Off
Mode: Auto|Heat|Dry|Cool|Fan
Fan: Auto|1|2|3
Set temp
Ambient temp
Error LED and Error Message (later is untested because the Pana AC has never gone into error state)
It reads out the vanes limits to the log but does nothing with them.
So some of it is hard coded but you could easily adapt to your unit.
I am happy to share the code if you are willing to go the WMP route. My unit does not have vanes for left/right and or up/down, since it is mounted in the roof space and has ceiling ducts in each room. This will mean no control for the vanes on units with a wall mounted indoor unit. It would be simple to add control.
Cheers
CV8R
I am in no way a programmer but took the risk and bought a IntesisBox PA-RC2-WMP-1 which is matched to my Panasonic whole home inverter in the hope of getting a plugin working and learning something along the way.
The PA-AC-RC2-WMP-1 uses the WMP protocol and I am sure the WMP protocol is standard across the IntesisBox range. Good news is that I have the plugin working and it feels very tightly integrated to Domoticz. I have been tweaking over a number of months but generally works well for me.

Connected is way, way, sooooo much better than the timer that comes standard with the unit.
It supports:
Power: On|Off
Mode: Auto|Heat|Dry|Cool|Fan
Fan: Auto|1|2|3
Set temp
Ambient temp
Error LED and Error Message (later is untested because the Pana AC has never gone into error state)
It reads out the vanes limits to the log but does nothing with them.
So some of it is hard coded but you could easily adapt to your unit.
I am happy to share the code if you are willing to go the WMP route. My unit does not have vanes for left/right and or up/down, since it is mounted in the roof space and has ceiling ducts in each room. This will mean no control for the vanes on units with a wall mounted indoor unit. It would be simple to add control.
Cheers
CV8R
-
- Posts: 70
- Joined: Tuesday 01 November 2016 16:22
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hello
I could integrate IntesisHome to my domoticz.
What you need is
1- Python 3.5
2- IntesiHome library / You can find the IntesisHome library here: https://github.com/jnimmo/pyIntesisHome
3- Python script with json api of domoticz
So first, In the directory home/pi/domoticz/scripts/python copy the file pyintesishome.py and change properties to be executable.
Second create a script in the same directory like this
To find the value of your device you had to run
print (CannesCoreail.get_devices())
Hope to help
Xavier
I could integrate IntesisHome to my domoticz.
What you need is
1- Python 3.5
2- IntesiHome library / You can find the IntesisHome library here: https://github.com/jnimmo/pyIntesisHome
3- Python script with json api of domoticz
So first, In the directory home/pi/domoticz/scripts/python copy the file pyintesishome.py and change properties to be executable.
Second create a script in the same directory like this
Code: Select all
#!/usr/bin/env python3.5
# -*- coding: utf-8 -*-
import requests
from optparse import OptionParser
from pyintesishome import IntesisHome
import sys
import pycurl
import re
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
import time
from datetime import datetime
try:
from io import BytesIO
except ImportError:
from StringIO import StringIO as BytesIO
def main():
username="xxxxxxxx" # IntesisHome login
password="yyyyyyyy" # IntesisHome password
idd = 111111111111 # IntesisHome device id
CannesCorail = None
temp_idx = 638 # Domoticz IDX
set_point_idx = 637 # Domoticz IDX
CannesCorail = IntesisHome(username, password)
CannesCorail.poll_status()
print(CannesCorail.get_setpoint(idd))
print(CannesCorail.get_temperature(idd))
clim_temp_set = CannesCorail.get_setpoint(idd)
clim_temp_actuelle = CannesCorail.get_temperature(idd)
#passage de la temperature récupérée a Domoticz
url='https://myserver:myport/json.htm?username=YYYYYYYYYYY==&password=ZZZZZZZZZZ==&type=command¶m=udevice&idx=' + str(temp_idx) + '&nvalue=0&svalue=' + str(clim_temp_actuelle)
r = requests.get(url)
print(r)
url='https://myserver:myport/json.htm?username=YYYYYYYYYY==&password=ZZZZZZZZZZZZZZZZZZZZ==&type=command¶m=udevice&idx=' + str(set_point_idx) + '&nvalue=0&svalue=' + str(clim_temp_set)
r = requests.get(url)
print(r)
if __name__ == "__main__":
main()
print (CannesCoreail.get_devices())
Hope to help
Xavier
-
- Posts: 11
- Joined: Monday 11 June 2018 21:07
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Thanks CV8R!! Good news for all of us...CV8R wrote: ↑Monday 19 August 2019 10:39 Hi All,
I am in no way a programmer but took the risk and bought a IntesisBox PA-RC2-WMP-1 which is matched to my Panasonic whole home inverter in the hope of getting a plugin working and learning something along the way.
The PA-AC-RC2-WMP-1 uses the WMP protocol and I am sure the WMP protocol is standard across the IntesisBox range. Good news is that I have the plugin working and it feels very tightly integrated to Domoticz. I have been tweaking over a number of months but generally works well for me.
Connected is way, way, sooooo much better than the timer that comes standard with the unit.
It supports:
Power: On|Off
Mode: Auto|Heat|Dry|Cool|Fan
Fan: Auto|1|2|3
Set temp
Ambient temp
Error LED and Error Message (later is untested because the Pana AC has never gone into error state)
It reads out the vanes limits to the log but does nothing with them.
So some of it is hard coded but you could easily adapt to your unit.
I am happy to share the code if you are willing to go the WMP route. My unit does not have vanes for left/right and or up/down, since it is mounted in the roof space and has ceiling ducts in each room. This will mean no control for the vanes on units with a wall mounted indoor unit. It would be simple to add control.
Cheers
CV8R

I adquired a FJ-RC-WMP-1 and I integrated with Domoticz with some scripts. One to receive info from IntesisBox and others to send commands to the unit. Basically I am using netcat as communication tool between IntesisBox and my R3. It is working for me, I have sensors and switches updated in Domoticz and I have the control of the AC unit. The installation and configuration of switches and sensors are totally manual, and if you don't follow the instructions literally your installation could not work fine (many points of fail)
Now I'm inmersed in a new proyect making a plugin totally integrated with domoticz. No extra software needed and automatic installation. But this will take some time to have a first working version. At the moment, all switches and sensors are created in Domoticz automatically, and I can read intesis status... a lot of work to do at the time...
I'm testing the plugin in Raspbian and Debian, when a working version could release I'll try to test it on Windows and MAC.
As your, my AC has ducts and no vanes, but I'll try to integrate them in the plugin.
If you want to colaborate with the plugin ask me...
Regards
Re: Intesisbox/Intesishome with Domoticz
Hi, here is my plugin. I'm sure its not pretty but it works!
Copy it into a folder in your plugins directory, restart domoticz and see how you go.
Copy it into a folder in your plugins directory, restart domoticz and see how you go.
Code: Select all
# Basic Python Plugin Example
#
# Author: GizMoCuz
#
"""
<plugin key="BasePlug" name="IntesisBox WMP-1 Protocol" author="CV8R" version="0.0.9" >
<description>
<h2>IntesisBox WMP-1</h2><br/>
<ul style="list-style-type:square">
<li>IntesisBox WMP-1 interface for air conditioners into IP based control systems</li>
</ul>
<ul style="list-style-type:square">
<h3>Configuration</h3><br/>
<li>IP Address and Port number default 3310 </li>
</ul>
</description>
<params>
<param field="Address" label="IP Address" width="200px" required="true" default=""/>
<param field="Port" label="Port" width="30px" required="true" default="3310"/>
<param field="Mode1" label="Debug" width="75px">
<options>
<option label="True" value="Debug"/>
<option label="False" value="Normal" default="true" />
</options>
</param>
</params>
</plugin>
"""
from typing import List
# Global var definitions
InitHeartbeatCount = 0
unitmode = "N/A"
oustandingPings = -1
lastHeartbeat = 0
# Limits as Global vars
minTempLimit = 180
maxTempLimit = 280
import Domoticz
import base64
import datetime
import re
class BasePlugin:
enabled = True
powerOn = 0
runCounter = 0
WMPConn = None
oustandingPings = 0
lastHeartbeat = datetime.datetime.now()
def __init__(self):
#self.var = 123
return
def onStart(self):
Domoticz.Log("onStart called")
Domoticz.Heartbeat(20) # Set heartbeat interval slower than default
if Parameters["Mode1"] == "Debug":
Domoticz.Debugging(1)
if (len(Devices) == 0):
Domoticz.Device(Name="Power", Unit=1, Image=16, TypeName="Switch", Used=1).Create()
Domoticz.Device(Name="Ambient Temp", Unit=2, TypeName="Temperature", Used=1).Create()
Options = {"LevelActions" : "|||||",
"LevelNames" : "|Auto|Heat|Dry|Cool|Fan",
"LevelOffHidden" : "true",
"SelectorStyle" : "0"}
Domoticz.Device(Name="Mode", Unit=3, TypeName="Selector Switch", Image=16, Options=Options, Used=1).Create()
Options = {"LevelActions" : "||||",
"LevelNames" : "|Auto|L1|L2|L3",
"LevelOffHidden" : "true",
"SelectorStyle" : "0"}
Domoticz.Device(Name="Fan Speed", Unit=4, TypeName="Selector Switch", Image=7, Options=Options, Used=1).Create()
Domoticz.Device(Name="Set Temp", Unit=5, Type=242, Subtype=1, Image=16, Used=1).Create()
Domoticz.Device(Name="Error LED", Unit=6, Image=13, TypeName="Switch", Used=1).Create()
Domoticz.Device(Name="Error Text", Unit=7, TypeName="Text", Used=1).Create()
Domoticz.Log("Device created.")
DumpConfigToLog()
def onStop(self):
Domoticz.Log("onStop called")
def onConnect(self, Connection, Status, Description):
Domoticz.Log("onConnect called")
global ConnectState
Domoticz.Log("Connecting")
if (Connection == self.WMPConn):
if (Status == 0):
Domoticz.Log("Connected successfully to: " + Connection.Address + ":" + Connection.Port)
self.WMPConn.Send('ID\n') # Get ID at startup
else:
if (Description.find("Only one usage of each socket address") > 0):
Domoticz.Log(Connection.Address + ":" + Connection.Port + " is busy, waiting.")
else:
Domoticz.Log("Failed to connect (" + str(Status) + ") to: " + Connection.Address + ":" + Connection.Port + " with error: " + Description)
self.WMPConn = None
def onMessage(self, Connection, Data):
Domoticz.Debug("onMessage called")
global unitmode
global oustandingPings
global lastHeartbeat
global minTempLimit
global maxTempLimit
strData = Data.decode("utf-8", "ignore")
Domoticz.Debug("onMessage called with Data: '" + str(strData) + "'")
#msgDataListRaw = re.split(r':+|,', strData) # type: List[str]
msgDataListRaw = re.split(r':+|,+|\[+|\]', strData) # split string to list of strings
msgDataList = list(filter(None, msgDataListRaw)) # Remove consecutive delimiters note: filter does not return a list, use list to turn into list
# Dump stripped messages in to Domoticz Log
count = 0
for msgData in msgDataList:
Domoticz.Debug("Stripped Message[" + str(count) + "] = " + msgData ) # Log the messages incoming and their stripped count
count = count + 1
Domoticz.Debug("Resetting Ping to 0")
oustandingPings = 0 # Reset ping counter onmessage for making sure connection is up in Heartbeat
# Is it a status update
if (msgDataList[0] == 'ACK'):
Domoticz.Debug("Message Acknowledged with response: " + msgDataList[0])
elif (msgDataList[0] == 'ERR'):
Domoticz.Error("WMP Message ########## SENDING MESSAGE ERROR ########## with response: " + msgDataList[0])
Devices[6].Update(nValue=1, sValue="100") # Set the Error LED switch to ON to flag for a send error
elif (msgDataList[0] == 'LIMITS'): #Get the limits from the AC unit
DataValues = '|'.join(msgDataList[2:])
if (msgDataList[1] == 'ONOFF'): #Get the ONOFF limits from the AC unit
Domoticz.Log("ONOFF Limits from unit: " + DataValues)
elif (msgDataList[1] == 'MODE'): #Get the MODE limits from the AC unit
Domoticz.Log("MODE Limits from unit: " + DataValues)
elif (msgDataList[1] == 'FANSP'): #Get the FANSP limits from the AC unit
Domoticz.Log("FANSP Limits from unit: " + DataValues)
elif (msgDataList[1] == 'VANEUD'): #Get the VANEUD limits from the AC unit
Domoticz.Log("VANEUD Limits from unit: " + DataValues)
elif (msgDataList[1] == 'VANELR'): #Get the VANELR limits from the AC unit
Domoticz.Log("VANELR Limits from unit: " + DataValues)
elif (msgDataList[1] == 'SETPTEMP'): #Get the SETPTEMP temp limits from the AC unit
Domoticz.Debug("SETPTEMP Temp limit values from unit: " + DataValues)
minTempLimit = int(msgDataList[2])
maxTempLimit = int(msgDataList[3])
Domoticz.Status("Min Temp Limit: " + str(minTempLimit) + " Max Temp Limit: " + str(maxTempLimit))
if (msgDataList[0] == 'CHN'):
Domoticz.Debug("Status Update - Unit: " + msgDataList[1] + " Function: " + msgDataList[2] + " Value = " + msgDataList[3])
# Update the status to Domoticz
if (msgDataList[2] == 'ONOFF'):
if (msgDataList[3] == 'ON'):
Domoticz.Status("Update status to On")
Devices[1].Update(nValue=1, sValue="100") # AC Power
elif (msgDataList[3] == 'OFF'):
Domoticz.Status("Update status to Off")
Devices[1].Update(nValue=0, sValue="0")
elif (msgDataList[2] == 'AMBTEMP'):
ambtemp = str(float(msgDataList[3])/10)
Domoticz.Log("Ambient temp")
Domoticz.Debug("Current ambient temp: " + ambtemp + " Degrees")
Devices[2].Update(nValue=0, sValue=ambtemp)
#Domoticz.Debug("Resetting Ping to 0") # using AMBTEMP
#oustandingPings = 0 # Reset ping counter for making sure connection is up in Heartbeat
elif (msgDataList[2] == 'SETPTEMP'):
settemp = str(int(msgDataList[3])/10)
if (unitmode != 'FAN'):
Domoticz.Status("Set temp is set to: " + settemp + " Degrees")
Devices[5].Update(nValue=1, sValue=settemp) # Update the temp display in the set temp device
else:
Domoticz.Debug("FAN MODE setting temp to not display")
Devices[5].Update(nValue=1, sValue="22") # N/A to have a temp displayed
elif (msgDataList[2] == 'MODE'):
unitmode = msgDataList[3]
if (unitmode == "AUTO"):
Domoticz.Status("Mode to: " + unitmode)
Devices[3].Update(nValue=1, sValue="10") # Auto
elif (unitmode == "HEAT"):
Domoticz.Status("Mode to: " + unitmode)
Devices[3].Update(nValue=1, sValue="20") # Heat
elif (unitmode == "DRY"):
Domoticz.Status("Mode to: " + unitmode)
Devices[3].Update(nValue=1, sValue="30") # Dry
elif (unitmode == "COOL"):
Domoticz.Status("Mode to: " + unitmode)
Devices[3].Update(nValue=1, sValue="40") # Cool
elif (unitmode == "FAN"):
Domoticz.Status("Mode to: " + unitmode)
Devices[3].Update(nValue=1, sValue="50") # Fan
Devices[3].Refresh()
elif (msgDataList[2] == 'FANSP'):
fspeed = msgDataList[3]
if (fspeed == "AUTO"):
Domoticz.Status("Fan Speed to: " + fspeed)
Devices[4].Update(nValue=1, sValue="10") # Fan Auto
elif (fspeed == "1"):
Domoticz.Status("Fan Speed to: " + fspeed)
Devices[4].Update(nValue=1, sValue="20") # Fan Level 1
elif (fspeed == "2"):
Domoticz.Status("Fan Speed to: " + fspeed)
Devices[4].Update(nValue=1, sValue="30") # Fan Level 2
elif (fspeed == "3"):
Domoticz.Status("Fan Speed to: " + fspeed)
Devices[4].Update(nValue=1, sValue="40") # Fan Level 3
Devices[4].Refresh()
elif (msgDataList[2] == 'VANEUD'):
vaneud = msgDataList[3]
Domoticz.Status("Vane Up/Down: " + vaneud)
elif (msgDataList[2] == 'VANELR'):
vanelr = msgDataList[3]
Domoticz.Status("Vane Left/Right: " + vanelr)
elif (msgDataList[2] == 'ERRSTATUS'):
errorstatus = msgDataList[3]
if (errorstatus != "OK"):
Domoticz.Status("Error Status: " + errorstatus)
Devices[6].Update(nValue=1, sValue="100") # Set the Error LED switch to ON to flag for an ERROR
elif (errorstatus == "OK"):
Domoticz.Status("Error Status: " + errorstatus)
Devices[6].Update(nValue=0, sValue="0") # Set the Error LED switch to OFF to clear ERROR
elif (msgDataList[2] == 'ERRCODE'):
errorcode = msgDataList[3]
Domoticz.Status("Error Code: " + errorcode)
Devices[7].Update(nValue=1, sValue=errorcode) # Set error text
else:
Domoticz.Error("Unrecognised status command")
def onCommand(self, Unit, Command, Level, Hue):
Domoticz.Log("onCommand called for Unit " + str(Unit) + ": Parameter '" + str(Command) + "', Level: " + str(Level))
if (Unit == 1):
if (Command == "On"):
Domoticz.Status("Sending Power ON")
self.powerOn = 1
self.WMPConn.Send('SET,1:ONOFF,ON\n')
elif(Command == "Off"):
Domoticz.Status("Sending Power OFF")
self.powerOn = 0
self.WMPConn.Send('SET,1:ONOFF,OFF\n')
elif (Unit == 3):
if (Command == "Set Level"):
Domoticz.Debug("Sending Mode")
if (str(Level) == '10'):
Domoticz.Status("Sending Mode Auto")
self.WMPConn.Send('SET,1:MODE,auto\n')
elif (str(Level) == '20'):
Domoticz.Status("Sending Mode Heat")
self.WMPConn.Send('SET,1:MODE,heat\n')
elif (str(Level) == '30'):
Domoticz.Status("Sending Mode Dry")
self.WMPConn.Send('SET,1:MODE,dry\n')
elif (str(Level) == '40'):
Domoticz.Status("Sending Mode Cool")
self.WMPConn.Send('SET,1:MODE,cool\n')
elif (str(Level) == '50'):
Domoticz.Status("Sending Mode Fan")
self.WMPConn.Send('SET,1:MODE,fan\n')
self.WMPConn.Send('LIMITS:SETPTEMP\n') # Check temp limits again when changing modes
elif (Unit == 4):
if (Command == "Set Level"):
Domoticz.Debug("Sending Fan Speed")
if (str(Level) == '10'):
Domoticz.Status("Sending Fan Speed Auto")
self.WMPConn.Send('SET,1:FANSP,AUTO\n')
elif (str(Level) == '20'):
Domoticz.Status("Sending Fan Speed Level 1")
self.WMPConn.Send('SET,1:FANSP,1\n')
elif (str(Level) == '30'):
Domoticz.Status("Sending Fan Speed Level 2")
self.WMPConn.Send('SET,1:FANSP,2\n')
elif (str(Level) == '40'):
Domoticz.Status("Sending Fan Speed Level 3")
self.WMPConn.Send('SET,1:FANSP,3\n')
elif (Unit == 5):
if (Command == "Set Level"):
settemp = Level
Domoticz.Debug("String of Set Temp raw value = " + str(Level))
settemp = round((int((float(settemp) * 10)))/5)*5 #includes complex rounding to nearest 5
Domoticz.Debug("Set Temp converted value = " + str(settemp))
if settemp < minTempLimit: #Adjusting for minLimit of unit
Domoticz.Status("Set temp point less than min limit setting to min value = " + str(minTempLimit / 10) + " Degrees")
settemp = minTempLimit #Send the minimum of unit
if settemp > maxTempLimit: #Adjusting for minLimit of unit
Domoticz.Status("Set temp point greater than max limit setting to max value = " + str(maxTempLimit / 10) + " Degrees")
settemp = maxTempLimit
Domoticz.Status("Setting Temp to: " + str(settemp / 10) + " Degrees")
Domoticz.Debug("Sending Set Temp to: " + str(settemp))
self.WMPConn.Send('SET,1:SETPTEMP,' + str(settemp) + '\n')
elif (Unit == 6):
if (Command == "Off"):
Domoticz.Log("User cleared the ERROR Status LED")
Devices[6].Update(nValue=0, sValue="0") # Set the Error LED switch to Off
else:
Domoticz.Error("No command available to send")
def onNotification(self, Name, Subject, Text, Status, Priority, Sound, ImageFile):
Domoticz.Log("Notification: " + Name + "," + Subject + "," + Text + "," + Status + "," + str(Priority) + "," + Sound + "," + ImageFile)
def onDisconnect(self, Connection):
Domoticz.Log("onDisconnect called")
self.WMPConn = None
def onHeartbeat(self):
global InitHeartbeatCount # Counter for first heartbeats
global oustandingPings # Counter for the Pings for check alive using AMBTEMP
global lastHeartbeat
Domoticz.Debug("onHeartbeat called")
Domoticz.Debug("onHeartbeat called, last response seen " + str(oustandingPings) + " heartbeats ago.")
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount))
lastHeartbeat = datetime.datetime.now()
if (self.WMPConn == None):
Domoticz.Log("Connect to WMP")
InitHeartbeatCount = 0 # reset heartbeat count
oustandingPings = -1 # reset ping count
self.handleConnect()
else:
if (self.WMPConn.Name == "WMP_Connection") and (self.WMPConn.Connected()):
oustandingPings = oustandingPings + 1 # Increment Ping Counter, reset at AMPTEMP Status
if InitHeartbeatCount <= 6:
InitHeartbeatCount = InitHeartbeatCount + 1
Domoticz.Debug("Heartbeat Init Count Incremented now = " + str(InitHeartbeatCount))
if InitHeartbeatCount == 1: #Need to delay these inital messages or some are missed
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting ONOFF")
self.WMPConn.Send('GET,1:ONOFF\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting MODE")
self.WMPConn.Send('GET,1:MODE\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting SETPTEMP")
self.WMPConn.Send('GET,1:SETPTEMP\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting FANSP")
self.WMPConn.Send('GET,1:FANSP\n')
if InitHeartbeatCount == 3:
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting VANEUD")
self.WMPConn.Send('GET,1:VANEUD\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting VANELR")
self.WMPConn.Send('GET,1:VANELR\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting ERRSTATUS")
self.WMPConn.Send('GET,1:ERRSTATUS\n')
if InitHeartbeatCount == 4:
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting ERRCODE")
self.WMPConn.Send('GET,1:ERRCODE\n')
if InitHeartbeatCount == 5:
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting LIMITS ONOFF")
self.WMPConn.Send('LIMITS:ONOFF\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting LIMITS MODE")
self.WMPConn.Send('LIMITS:MODE\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting LIMITS FANSP")
self.WMPConn.Send('LIMITS:FANSP\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting LIMITS VANEUD")
self.WMPConn.Send('LIMITS:VANEUD\n')
if InitHeartbeatCount == 6:
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting LIMITS VANELR")
self.WMPConn.Send('LIMITS:VANELR\n')
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount) + " Getting LIMITS SETPTEMP")
self.WMPConn.Send('LIMITS:SETPTEMP\n')
Domoticz.Heartbeat(20) # Extending heartbeat at last Limit
if InitHeartbeatCount == 7: # when count gets to this number and is connected, it will not increment and commence AMBTEMP Heartbeats
Domoticz.Debug("Getting Ambient Temp")
self.WMPConn.Send('GET,1:AMBTEMP\n') # Get AMBTEMP at Heartbeat to confirm connected
if (oustandingPings == 3):
Domoticz.Log(self.WMPConn.Name + " has not responded to 3 heartbeats terminating connection.")
if (self.WMPConn.Connected()):
self.WMPConn.Disconnect()
Domoticz.Debug("Heartbeat Init Count = " + str(InitHeartbeatCount))
self.WMPConn = None
def handleConnect(self):
self.WMPConn = None
Domoticz.Debug("Settings shorter heartbeat to speed up initialisation")
Domoticz.Heartbeat(5) # Setting the inital hearbeat timeout used for delaying startup messages - extended in onHeartbeat after counter reached
self.WMPConn = Domoticz.Connection(Name="WMP_Connection", Transport="TCP/IP", Protocol="Line", Address=Parameters["Address"], Port=Parameters["Port"])
self.WMPConn.Connect()
global _plugin
_plugin = BasePlugin()
def onStart():
global _plugin
_plugin.onStart()
def onStop():
global _plugin
_plugin.onStop()
def onConnect(Connection, Status, Description):
global _plugin
_plugin.onConnect(Connection, Status, Description)
def onMessage(Connection, Data):
global _plugin
_plugin.onMessage(Connection, Data)
def onCommand(Unit, Command, Level, Hue):
global _plugin
_plugin.onCommand(Unit, Command, Level, Hue)
def onNotification(Name, Subject, Text, Status, Priority, Sound, ImageFile):
global _plugin
_plugin.onNotification(Name, Subject, Text, Status, Priority, Sound, ImageFile)
def onDisconnect(Connection):
global _plugin
_plugin.onDisconnect(Connection)
def onHeartbeat():
global _plugin
_plugin.onHeartbeat()
# Generic helper functions
def DumpConfigToLog():
for x in Parameters:
if Parameters[x] != "":
Domoticz.Debug( "'" + x + "':'" + str(Parameters[x]) + "'")
Domoticz.Debug("Device count: " + str(len(Devices)))
for x in Devices:
Domoticz.Debug("Device: " + str(x) + " - " + str(Devices[x]))
Domoticz.Debug("Device ID: '" + str(Devices[x].ID) + "'")
Domoticz.Debug("Device Name: '" + Devices[x].Name + "'")
Domoticz.Debug("Device nValue: " + str(Devices[x].nValue))
Domoticz.Debug("Device sValue: '" + Devices[x].sValue + "'")
Domoticz.Debug("Device LastLevel: " + str(Devices[x].LastLevel))
return
-
- Posts: 11
- Joined: Monday 11 June 2018 21:07
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hi CV8R!!
You have done a very good job!!! Plugin works perfectly.
I'm trying to find any error but no one found
I will make a change in temperature selector, when fan is active could show temp "Off"
Regards
You have done a very good job!!! Plugin works perfectly.
I'm trying to find any error but no one found

I will make a change in temperature selector, when fan is active could show temp "Off"
Regards
Re: Intesisbox/Intesishome with Domoticz
You're welcome. I'm glad my tinkering has helped someone else!
Re the Fan, I did start looking at setting the devices off when the unit was off but ran into problems with the setting the selector off and remembering the status of the selector. In the end I decided it wasn't worth the complexity and left it as is.
I just noticed that the fan levels are added as L1, L2 and L3 at initialisation.
I would change these to 1, 2 and 3 dropping the L. It simplifies things later such as Google Home integration. I've changed mine in the selector but forgot to change the plugin code.
Cheers
CV8R
Re the Fan, I did start looking at setting the devices off when the unit was off but ran into problems with the setting the selector off and remembering the status of the selector. In the end I decided it wasn't worth the complexity and left it as is.
I just noticed that the fan levels are added as L1, L2 and L3 at initialisation.
Code: Select all
"LevelNames" : "|Auto|L1|L2|L3"
Cheers
CV8R
-
- Posts: 59
- Joined: Monday 03 December 2018 11:49
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hi frirnds,
A question. This plugin and scripts can work with intesis home IS-IR-WIFI-1? Y have 2 units for work with two airs conditioner.
Thanks in advanced.
Best regards
A question. This plugin and scripts can work with intesis home IS-IR-WIFI-1? Y have 2 units for work with two airs conditioner.
Thanks in advanced.
Best regards
Re: Intesisbox/Intesishome with Domoticz
Hi @kitopopo,
My plugin will not work with your IntesisHome which works via their cloud service. My plugin is for IntesisBox which is for direct IP control.
The post by @xavierlp is where you need to start.
Regards,
CV8R
My plugin will not work with your IntesisHome which works via their cloud service. My plugin is for IntesisBox which is for direct IP control.
The post by @xavierlp is where you need to start.
Regards,
CV8R
-
- Posts: 59
- Joined: Monday 03 December 2018 11:49
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hi @xavierlp ,xavierlp wrote: ↑Thursday 22 August 2019 16:24 Hello
I could integrate IntesisHome to my domoticz.
What you need is
1- Python 3.5
2- IntesiHome library / You can find the IntesisHome library here: https://github.com/jnimmo/pyIntesisHome
3- Python script with json api of domoticz
So first, In the directory home/pi/domoticz/scripts/python copy the file pyintesishome.py and change properties to be executable.
Second create a script in the same directory like this
To find the value of your device you had to runCode: Select all
#!/usr/bin/env python3.5 # -*- coding: utf-8 -*- import requests from optparse import OptionParser from pyintesishome import IntesisHome import sys import pycurl import re import paho.mqtt.client as mqtt import paho.mqtt.publish as publish import time from datetime import datetime try: from io import BytesIO except ImportError: from StringIO import StringIO as BytesIO def main(): username="xxxxxxxx" # IntesisHome login password="yyyyyyyy" # IntesisHome password idd = 111111111111 # IntesisHome device id CannesCorail = None temp_idx = 638 # Domoticz IDX set_point_idx = 637 # Domoticz IDX CannesCorail = IntesisHome(username, password) CannesCorail.poll_status() print(CannesCorail.get_setpoint(idd)) print(CannesCorail.get_temperature(idd)) clim_temp_set = CannesCorail.get_setpoint(idd) clim_temp_actuelle = CannesCorail.get_temperature(idd) #passage de la temperature récupérée a Domoticz url='https://myserver:myport/json.htm?username=YYYYYYYYYYY==&password=ZZZZZZZZZZ==&type=command¶m=udevice&idx=' + str(temp_idx) + '&nvalue=0&svalue=' + str(clim_temp_actuelle) r = requests.get(url) print(r) url='https://myserver:myport/json.htm?username=YYYYYYYYYY==&password=ZZZZZZZZZZZZZZZZZZZZ==&type=command¶m=udevice&idx=' + str(set_point_idx) + '&nvalue=0&svalue=' + str(clim_temp_set) r = requests.get(url) print(r) if __name__ == "__main__": main()
print (CannesCoreail.get_devices())
Hope to help
Xavier
I am trying to follow in his steps in a raspberry pi4 and intesis home IS-IR-WIFI-1with raspbian buster but probably i make somothing wrong:
1) I download the library here: https://github.com/jnimmo/pyIntesisHome
2) In the directory home/pi/domoticz/scripts/python copy the file pyintesishome.py and change properties to be executable. also i make this in your scriptfile.py
3) I have created yourscriptfile.py in the same folder (directory)
4) I restar domoticz service
After make these steps i don found any change. I have inserted my user and password in your script but same result.
I don't know the idd of my devices, inside of the intesishome web i can found the MAC adress but no the idd
I have executed: print (CannesCoreail.get_devices()) but error message is received (name 'CannesCoreail' is not defined) , also i test python print (CannesCoreail.get_devices()) and running firs python and after writing print (CannesCoreail.get_devices()).
Any devices appear in domoticz after follow your steps. Can you helpme please? i am very interest in use intesishome with domoticz.
I wait news from you.
Thanks in advanced
Any idea for use my 2 devices of intesis home with domoticz?
Last edited by kitopopo on Tuesday 28 January 2020 17:33, edited 1 time in total.
-
- Posts: 59
- Joined: Monday 03 December 2018 11:49
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hi @ CV8R, i try with the @xavierlp but no satisfactory result , i have write to @xavierlp. I wish someone could help me. Thanks for your reply
-
- Posts: 70
- Joined: Tuesday 01 November 2016 16:22
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hello
You had to change cannes corail by the name of your facility
Cannes corail is mine
Envoyé de mon iPhone en utilisant Tapatalk
You had to change cannes corail by the name of your facility
Cannes corail is mine

Envoyé de mon iPhone en utilisant Tapatalk
-
- Posts: 70
- Joined: Tuesday 01 November 2016 16:22
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
You had to have the same name between controller = IntesisHome(username, password)xavierlp wrote:Hello
You had to change cannes corail by the name of your facility
Cannes corail is mine
Envoyé de mon iPhone en utilisant Tapatalk
And controler.get_devices
Hope to help
Xavier
Envoyé de mon iPhone en utilisant Tapatalk
-
- Posts: 74
- Joined: Monday 26 December 2016 16:30
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.11590
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hello everyone,
I’m going to have a toshiba AC installed tomorrow, anything else needed beside the TO-RC-WMP-1 module from intesis to have it working with domoticz ?
Thanks.
I’m going to have a toshiba AC installed tomorrow, anything else needed beside the TO-RC-WMP-1 module from intesis to have it working with domoticz ?
Thanks.
-
- Posts: 70
- Joined: Tuesday 01 November 2016 16:22
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Hello @DrMacabre
Domoticz will "discuss" with the intesis module directly.
Then the module will discuss with your AC.
The two steps you have to do is to set the wifi on the module and set up an account on intesis.
Hope to help
Domoticz will "discuss" with the intesis module directly.
Then the module will discuss with your AC.
The two steps you have to do is to set the wifi on the module and set up an account on intesis.
Hope to help
Re: Intesisbox/Intesishome with Domoticz
Hi @DrMacabre,
If you are using an Intesis WMP-1 device then you will not require an Intestishome login or account. The Intesis Gateway WiFi (ASCII) Interface unit piggy backs off the wiring from a controller and connects directly to your WiFi network. The gateway was called Intesisbox but looks to have changed names now but still uses the WMP protocol. The WMP protocol provides a direct connection from the Domoticz server to the WMP device. If your Domoticz server is on the same WiFi network then the plugin that I wrote should allow you to control it.
You will need to copy the plugin to your plugins directory on the Domoticz server, inside a folder (important) and then restart Domoticz. Go to your hardware and add the IntesisBox WMP-1 Protocol device add IP and Port number.
You can first try the Configuration software tool that is available on the Intesis website to ensure you can discover and control the A/C unit via the WMP Device. If the configuration tool works, then the plugin should.
CV8R
If you are using an Intesis WMP-1 device then you will not require an Intestishome login or account. The Intesis Gateway WiFi (ASCII) Interface unit piggy backs off the wiring from a controller and connects directly to your WiFi network. The gateway was called Intesisbox but looks to have changed names now but still uses the WMP protocol. The WMP protocol provides a direct connection from the Domoticz server to the WMP device. If your Domoticz server is on the same WiFi network then the plugin that I wrote should allow you to control it.
You will need to copy the plugin to your plugins directory on the Domoticz server, inside a folder (important) and then restart Domoticz. Go to your hardware and add the IntesisBox WMP-1 Protocol device add IP and Port number.
You can first try the Configuration software tool that is available on the Intesis website to ensure you can discover and control the A/C unit via the WMP Device. If the configuration tool works, then the plugin should.
CV8R
-
- Posts: 74
- Joined: Monday 26 December 2016 16:30
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.11590
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
Ok, pretty straight forward. Thank you guys 
-
- Posts: 74
- Joined: Monday 26 December 2016 16:30
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.11590
- Location: France
- Contact:
Re: Intesisbox/Intesishome with Domoticz
hello,CV8R wrote: ↑Monday 01 June 2020 13:44 Hi @DrMacabre,
If you are using an Intesis WMP-1 device then you will not require an Intestishome login or account. The Intesis Gateway WiFi (ASCII) Interface unit piggy backs off the wiring from a controller and connects directly to your WiFi network. The gateway was called Intesisbox but looks to have changed names now but still uses the WMP protocol. The WMP protocol provides a direct connection from the Domoticz server to the WMP device. If your Domoticz server is on the same WiFi network then the plugin that I wrote should allow you to control it.
You will need to copy the plugin to your plugins directory on the Domoticz server, inside a folder (important) and then restart Domoticz. Go to your hardware and add the IntesisBox WMP-1 Protocol device add IP and Port number.
You can first try the Configuration software tool that is available on the Intesis website to ensure you can discover and control the A/C unit via the WMP Device. If the configuration tool works, then the plugin should.
CV8R
i finally received my intesisbox, set it up on my wifi network but that's how far i've managed to go. I tried to get the device on the configuration software tool with no success. I can see the device on my network but can't get into it with it's IP. Before setting the network, i checked a few things on the web interface, it was communicating with my AC. Did i miss something ?
Re: Intesisbox/Intesishome with Domoticz
If the Intesisbox wmp config tool cannot connect to the intesisbox then there isn't much I can help with. I recommend contacting their support. The plugin will not work unless the config tool can connect as they use the same WMP protocol.
When I open the IBOX-WMP-CONFIG application I get a spinner and a window that says "obtaining data". That always times out and I need to select the check box for Periodic Discover, then the Intesisbox appears in the tool.
Good luck!
CV8R
When I open the IBOX-WMP-CONFIG application I get a spinner and a window that says "obtaining data". That always times out and I need to select the check box for Periodic Discover, then the Intesisbox appears in the tool.
Good luck!
CV8R
Who is online
Users browsing this forum: No registered users and 1 guest