Anyone using IntesisHome WiFi control of mini-split AC?

Many/most/all(?) Mitsubishi units has a red serial connector which is really easy to connect a ESP8266 to, and FW available here on the forum. Interfaces with OH over MQTT super reliable. But maybe you know about this?

1 Like

Just means another layer to my setup tho with mqqt

So have setup today.
Thing stays offline until reboot.
Then i get this:

2019-05-23 17:05:27.708 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

yep, that’s the bug I periodically get. need to find some time to track it down.

Ah ok.
It was like every half a second continuously.

Workaround I use for “buggy” modules, is to periodically restart them. My rooted toon doesn’t always have the best wifi and the module for it tends to crash if it can’t reach it.

Periodical script I use to kick a module via a cronjob:

root@openhab-pi:/var/lib/openhab2# cat /home/pi/restart-toon.sh
#!/usr/bin/expect
set timeout 10
set countoffline 0
spawn ssh -p 8101 openhab@localhost
expect "Password: "
send “habopen\r”;
expect “openhab>”
send “smarthome:things disable localtoon:toon:0b1090f7\r”;
expect “openhab>”;
send “smarthome:things enable localtoon:toon:0b1090f7\r”;
expect “openhab>”;
send “logout\r”;

May work for this one as well. Will give it a try later this week.

Just an update.
I havnt been able to get the binding to work at all.
Have tried MAC only, IP Only, Both…
Thing says online when using MAC and IP together, otherwise stays offline.
I’m not able to get any items to work, it literally get the bug above every 2 milliseconds in my log until after about 5 minutes openhab/rpi falls over and i have to reboot.
I’m running 2.4 release btw

Thanks for the feedback. Can you use telnet and confirm you can connect to port 3310 of your IntesisBox, and if you send ID , it returns information? https://www.intesisbox.com/intesis/product/media/intesisbox_wmp_protocol_specs_en.pdf?v=2.1 are the full protocol specs if you want to try other things. For now, the MAC address setting won’t do anything, since discovery isn’t implemented. My only other suggestion would be to attempt using a 2.5.0 snapshot, since that’s what the binding was compiled against. But it’s been a bit old. Other than that, which particular model of IntesisBox are you using? On the IntesisHome devices, we’ve confirmed that different models don’t behave the same (@pelnet’s MH-AC-WIFI-1 has a local API of some sort, but my FJ-RC-WIFI-1 does not).

So i have just tested (using terminus on ios).
I can connect to it on port 3310 and it periodically (about every minute but havnt timed it) sends back:

CHN,1:AMBTEMP,210

however if i type ‘INFO’ and press return it doesn’t seem to respond to it.
Not used telnet before so you may have to bear with me :slight_smile:

And its a ME-AC-WMP-1
UPDATE:
Just downloaded the WMP Config program.
Was running firmaware 1.0.1, have just updated to 1.2.1 so ill test again (its also saying theres another new update)

Well, that’s good that it’s talking on the right port, and the protocol looks familiar. It may just be some feature of your HVAC that mine doesn’t support, and the binding isn’t handling it correctly.

I’ve not used terminus before, but the most likely reason is that it’s sending a newline, instead of a carriage return+newline that intesisbox requires (which is why I suggested telnet, instead of netcat).

1.2.1 didnt fix it

TIL WMP Config program. I’m running 1.0.7, but I don’t see any way to do a firmware update (and I’d be kind of terrified to do one, anyway). I’m guessing firmware versions are unique to the device type.

Now get this:

2019-05-29 18:08:23.320 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.321 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.322 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.323 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.324 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.325 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.326 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.327 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.328 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.329 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.329 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.330 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.331 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.332 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.333 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.334 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.335 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.336 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.337 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.338 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.339 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.340 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.341 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.342 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.343 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.344 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.345 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.346 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.346 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.347 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.348 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.349 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.350 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.351 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.351 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.352 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.353 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.354 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.355 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.356 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.357 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.358 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.359 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.360 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.360 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.361 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.362 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.363 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.364 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.365 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.366 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.367 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.368 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.369 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.370 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.371 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.373 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.374 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.375 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.376 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.377 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.378 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.378 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.379 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.380 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.381 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.382 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.383 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.384 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.385 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.386 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.387 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.388 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.389 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.390 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.391 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.392 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.393 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.395 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.396 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.397 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.398 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.399 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.400 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.401 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.402 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.403 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.404 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.405 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.406 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.407 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.408 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.409 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.410 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.411 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.412 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.412 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.413 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.414 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.416 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.416 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.418 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.419 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.420 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.421 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.422 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.422 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.423 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.424 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.425 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.426 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

2019-05-29 18:08:23.427 [ERROR] [ternal.IntesisBoxHandler$TCPListener] - TCPListener(): Message not handled by thing: null

2019-05-29 18:08:23.428 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: null

I’m assuming there’s no dependencies for the binding i need to add in?

Final bits in case it helps on removal of thing:

*UPDATE 10/19:

Did you get around to looking into the error at all?
I can give you all the responses / allowed limits from my system now as I have got it all working through the tcp binding instead.
I’m using the Mitsubishi electric box for reference.

Just got a bunch of TO-RC-WIFI-1 units for the Toshiba Ducted units.

In case anyone’s interested, the boot process seems to be:

  1. Unit powers on
  2. Downloads two files:
  3. If it already doesn’t have the latest firmware - downloads the latest. Presently:
    • ota/1/cfg/ISH_CA-2.0.17-app1.bin
    • /ota/1/cfg/ISH_CA-2.0.17-app2.bin
    • Reboots, then downloads another file:
    • /ota/1/pic/OTA-Head001F00.bin
  4. Normal operation. Connects out to 212.36.84.207 port 4000; then a random port starting with 4200.

Port 42xx seems to be the command connection. Alas, seems to be some sort of binary protocol.

Seems like previous versions of the firmware are still available; e.g.
http://ota.intesishome.com/ota/1/cfg/ISH_CA-2.0.0-app1.bin

My TO-RC-WIFI-1 units unfortunately don’t appear to have port 80 open. In fact, they don’t seem to have any ports listening.

@ccutrer so having just started developing I thought I’d revisit this.
Downloaded your source files and loads of errors when importing into VSCODE.
Couldn’t resolve anything (like org.eclipse).
Created a new skeleton and copied over the content of all your files, compiled and tested…
Working now, however still getting the message on the tcp listener so I’ll have a look into it

Yeah, it was written in early 2.4 age, so before the massive refactor of the build system, and exit from the ESH foundation. I haven’t had a chance to update the code for those yet - my current build still works on 2.5 as is.

Wouldn’t work on my 2.5, didn’t ever connect.
Have at least confirmed it controls my a/c unit now.
Just need to do some research on the tcp listener to understand how it works.
Getting a null message back from somewhere

@ccutrer So done some testing.
Added closeConnection() under the inner exception catch for the tcp listener class
This stopped the log flooding so I could see what was going on.

What’s going on is…
If there is no message sent by either the client or server the connection times out after exactly 2 minutes.

For the time being I have added a send query (on/off) to below the connection check in polling job to keep the connection alive.

Hasn’t disconnected since.

Interesting. I get updates pretty frequently from mine, but definitely less often than 2 minutes occasionally. I wonder if yours behaves differently because it’s controlling a different brand of minisplit, or if it’s an OS difference where you’re running OpenHAB.

2020-02-03 15:56:18.668 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 195
2020-02-03 15:57:19.870 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,200
2020-02-03 15:57:19.870 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 200
2020-02-03 16:02:17.169 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,195
2020-02-03 16:02:17.170 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 195
2020-02-03 16:03:11.422 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,190
2020-02-03 16:03:11.422 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 190
2020-02-03 16:05:06.190 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,195
2020-02-03 16:05:06.191 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 195
2020-02-03 16:06:03.749 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,200
2020-02-03 16:06:03.749 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 200
2020-02-03 16:11:32.635 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,195
2020-02-03 16:11:32.636 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 195
2020-02-03 16:12:10.262 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,190
2020-02-03 16:12:10.262 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 190
2020-02-03 16:13:28.433 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - read(): Message Received: CHN,1:AMBTEMP,195
2020-02-03 16:13:28.434 [DEBUG] [ntesisbox.internal.IntesisBoxHandler] - receivedUpdate(): AMBTEMP 195