Hey Dave, out of curiosity, have you ever had a chance to run the add-on? org.openhab.binding.intesisbox-2.5.1-6.jar 1
Has been working fine for me over these months but would be good to know how it plays with the Mitsubishi box.
Cheers.
Hey Dave, out of curiosity, have you ever had a chance to run the add-on? org.openhab.binding.intesisbox-2.5.1-6.jar 1
Has been working fine for me over these months but would be good to know how it plays with the Mitsubishi box.
@rb44 Noticed this in my logs today. Havenāt had a chance to look at the code yet to see whats causing it.
I tried with my original tweaked version and your newest one
2020-07-16 08:17:08.691 [ERROR] [ntesisbox.internal.IntesisBoxHandler] - openConnection(): Socket Exception: No route to host (Host unreachable)
2020-07-16 08:17:08.691 [ERROR] [ntesisbox.internal.IntesisBoxHandler] - write(): Unable to write to socket: null
java.lang.NullPointerException: null
at org.openhab.binding.intesisbox.internal.IntesisBoxHandler.write(IntesisBoxHandler.java:378) ~[?:?]
at org.openhab.binding.intesisbox.internal.IntesisBoxHandler.sendAlive(IntesisBoxHandler.java:291) ~[?:?]
at org.openhab.binding.intesisbox.internal.IntesisBoxHandler.polling(IntesisBoxHandler.java:340) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_241]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_241]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_241]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_241]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_241]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_241]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
2020-07-16 08:17:08.694 [INFO ] [ntesisbox.internal.IntesisBoxHandler] - keep alive sent
2020-07-16 08:17:08.694 [ERROR] [ntesisbox.internal.IntesisBoxHandler] - write(): Unable to write to socket: null
java.lang.NullPointerException: null
@rb44 So just checked my router and one of my units hasnt got a dhcp lease. I did update fw the other day and havnt restarted it yetā¦
Either a new firmware issue or i just need to restart.
Will let you know once Iāve restarted and had a better look
Hi @delid4ve, yes that does sound like a network issue. Anyway just to confirm no changes to the network layer within the add-on. Thanks for the heads up.
Finally, I got my AC installed with IntesisHome/AirconWithMe WiFi adapters.
I will soon start development to get it fully implemented into openHAB.
@rb44 @delid4ve @ccutrer As you guys alreday implemented a IntesisBox Binding, I would suggest to merge the two appeoaches into a general Intesis Binding with seperate handlers for Home and Box devices. WDYT?
I already saw that yor Binding needs some refactoring, as it has channels implemented with static information, that should be changed into properties.
Best
Hans-Jƶrg
@hmerk One Intesis binding that just does the right thing, think that would simplify life for many Intesis device owners.
Update on IntesisHome integration:
First binding version for testing will be available by end of the week.
Just have to fix some minor issues on channel updates, clean up code and write documentation.
As promised, there is a first version available for testing.
Binding jar and README can be found here:
Pull Request for official integration is created as #8231
A new version can be found in my repo, see link above. Improved error handling in case of session fails.
Up and running at the moment with my MH-AC-WIFI-1. Will let you know if I have any troubles over coming days. Thanks for your hard work!
IntensisHome binding running great thus far. Would really like to interact with it through the HomeKit Addon but canāt quite get the metadata tags to line up. Does anyone else have experience implementing a openHAB HeaterCooler with HomeKit successfully?
Any guidance on whatās not quite right with my code would be greatly appreciated! (ac power and acAmbientTemp link up fine but canāt seem to poll or register changes to the acMode / acSetPoint)
Group gAC "AC" {homekit="HeaterCooler"}
Switch ac "Power" (gAC) {channel="intesis:intesisHome:70c70687:power", homekit="ActiveStatus"}
Number acMode "Mode" (gAC) {channel="intesis:intesisHome:70c70687:mode", homekit="CurrentHeaterCoolerState, TargetHeaterCoolerState" [HEATING="1", COOLING="4", AUTO="0", HEAT="1", COOL="4"]}
Number acFanSpeed "Fan Speed" <fan> (gAC) {channel="intesis:intesisHome:70c70687:windspeed"}
Number acVanesUpDown "Vanes U/D Position" (gAC) {channel="intesis:intesisHome:70c70687:swingUpDown"}
Number:Temperature acSetPoint "Set Temperature [%.1f Ā°C]" <heating> (gAC) {channel="intesis:intesisHome:70c70687:temperature", homekit="CoolingThresholdTemperature, HeatingThresholdTemperature" [minValue=18, maxValue=30, step=1]}
Number:Temperature acAmbientTemp "Current Temperature [%.1f Ā°C]" <temperature> (gAC) {channel="intesis:intesisHome:70c70687:returnTemp", homekit="CurrentTemperature"}
Number:Temperature acOutdoorTemp "Outside Temperature [%.1f Ā°C]" <temperature> (gAC) {channel="intesis:intesisHome:70c70687:outdoorTemp"}
This might be more difficult. As you can see in my readme, most channels are of type Number, whereas Homekit expects Strings. You will need Proxy Items of type String and a rule converting the Number type Modes to the respective String. Your mappings are incorrect and wonāt work at all.
Please update to latest Dev Version from my repo. Found some possible NPEs and solved them.
Hi Hmerk,
iām trying to install the intesisbinding from the github repo. but i get an access denied.
Actually i am a very big noob at this sort of things.
Iām trying to install the source on a raspberry pi with openhab2 running on it.
What am i doing wrong?
wget -o org.openhab.binding.intesis-2.5.8-SNAPSHOT.jar https://github.com/hmerk/IntesisBinding.git
wget: org.openhab.binding.intesis-2.5.8-SNAPSHOT.jar: Toegang geweigerd
thanks for your help
Did You try
wget -o https://github.com/hmerk/IntesisBinding/blob/master/org.openhab.binding.intesis-2.5.8-SNAPSHOT.jar
Managed to get my MH-AC-WIFI-1 working with the HomeKit add-on. Iām sure thereās cleaner ways to accomplish it but details below for anyone thatās interestedā¦
.items
Group gAC "AC" { homekit="HeaterCooler" }
Switch ac "Power" (gAC) { channel="intesis:intesisHome:ac:power", homekit="ActiveStatus" }
String acMode "Mode" (gAC) { channel="intesis:intesisHome:ac:mode", homekit="TargetHeaterCoolerState, CurrentHeaterCoolerState" [HEATING="Heat", COOLING="Cool"] }
String acFanSpeed "Fan Speed" <fan> (gAC) { channel="intesis:intesisHome:ac:fanSpeed" }
String acVanesUpDown "Vanes U/D Position" (gAC) { channel="intesis:intesisHome:ac:vanesUpDown" }
String acVanesLeftRight "Vanes L/R Position" (gAC) { channel="intesis:intesisHome:ac:vanesLeftRight" }
Number:Temperature acSetPoint "Setpoint Temperature" <heating> (gAC) { channel="intesis:intesisHome:ac:targetTemperature" }
Number:Temperature acAmbientTemp "Current Temperature" <temperature> (gAC) { channel="intesis:intesisHome:ac:ambientTemperature", homekit="CurrentTemperature" }
Number:Temperature acOutdoorTemp "Outdoor Temperature" <temperature> (gAC) { channel="intesis:intesisHome:ac:outdoorTemperature" }
Number acCoolThrs "Proxy Cool Setpoint [%.1f C]" (gAC) { homekit="CoolingThresholdTemperature" [minValue=18, maxValue=30, step=1] }
Number acHeatThrs "Proxy Heat Setpoint [%.1f C]" (gAC) { homekit="HeatingThresholdTemperature" [minValue=18, maxValue=30, step=1] }
Number acRotation "Proxy Rotation" (gAC) { homekit="RotationSpeed" }
Number acSwing "Proxy Swing" (gAC) { homekit="SwingMode" }
.rules
//Homekit CoolingThresholdTemperature and HeatingThresholdTemperature
rule "Convert acSetPoint to acHeatThrs and acCoolThrs"
when
Item acSetPoint received update or
System started
then
val setp = acSetPoint.state.toString.replace(".0 Ā°C","")
if(acHeatThrs.state != setp) acHeatThrs.postUpdate(setp)
if(acCoolThrs.state != setp) acCoolThrs.postUpdate(setp)
end
rule "Convert acHeatThrs to acSetPoint"
when
Item acHeatThrs changed
then
val hthr = acHeatThrs.state.toString.replace(".0","")
if(acMode.state != 4 && acSetPoint.state != hthr) {
acSetPoint.sendCommand(hthr)
}
end
rule "Convert acCoolThrs to acSetPoint"
when
Item acCoolThrs changed
then
val cthr = acCoolThrs.state.toString.replace(".0","")
if(acMode.state != 1 && acSetPoint.state != cthr) {
acSetPoint.sendCommand(cthr)
}
end
//Homekit RotationSpeed
rule "Limit and convert acRotation to acFanSpeed"
when
Item acRotation changed
then
val rot = acRotation.state
if(rot >= 0 && rot < 37) {
acRotation.postUpdate(25)
acFanSpeed.sendCommand(1)
}
if(rot > 36 && rot < 64) {
acRotation.postUpdate(50)
acFanSpeed.sendCommand(2)
}
if(rot > 63 && rot < 87) {
acRotation.postUpdate(75)
acFanSpeed.sendCommand(3)
}
if(rot > 86) {
acRotation.postUpdate(100)
acFanSpeed.sendCommand(4)
}
end
rule "Convert acFanSpeed to acRotation"
when
Item acFanSpeed received update or
System started
then
val fan = Float::parseFloat(acFanSpeed.state.toString)
if(fan == 1 && acRotation.state != 25) acRotation.postUpdate(25)
if(fan == 2 && acRotation.state != 50) acRotation.postUpdate(50)
if(fan == 3 && acRotation.state != 75) acRotation.postUpdate(75)
if(fan == 4 && acRotation.state != 100) acRotation.postUpdate(100)
end
//Homekit SwingMode
rule "Convert acSwing to acVanesUpDown"
when
Item acSwing changed
then
if(acSwing.state == 0 && acVanesUpDown != 4) acVanesUpDown.sendCommand(4)
else acVanesUpDown.sendCommand("SWING")
end
rule "Convert acVanesUpDown to acSwing"
when
Item acVanesUpDown received update or
System started
then
val vud = acVanesUpDown.state
if(vud == "SWING") acSwing.postUpdate(1)
else acSwing.postUpdate(0)
end
Have noticed a possible bug or perhaps just a difference between our units. Selecting fan speed āAutoā from the binding doesnāt work - after about 5-10 seconds it switches to āLowā and stays there. Interestingly I can set the fan speed to āAutoā using the physical IR remote so it does exist. Any ideas or have you tested it on your unit?
Yes, have seen this as well. There is a difference between the API documentations and the allowed values reported from the device. Auto (0) is not an allowed value.
I am trying to find a workaroundā¦