Anyone using IntesisHome WiFi control of mini-split AC?

Getting ready to install some new A/C in our house, I took a quick look to see if any mini split systems had IP-based control instead of their non-standard wired and IR control schemes. Fujitsu is offering a solution from IntesisHome which seems to be exactly what I want, just not integrated into the unit, but instead providing a universal IP-to-IR and IP-to-wired via cloud solution. Looks like it works with IFTTT and has a REST API – has anyone else used one of these, and is anyone working on a binding?

I’ve just ordered an IntesisHome unit for our ducted Fujitsu A/C; so will be interested to try and develop a binding

Sorry to dig up this old thread but I’m looking at a Fujitsu Mini split system to augment my forced hot water heat. Did either of you ever get anything going with this?

I really can’t see myself putting in a cooling system I can’t control from OH.

I never tried anything, as my renovation was split into phases and that part is still being planned. But, I did recently find quite a number of wifi-based mini-split controllers on Amazon, many of which have at least IFTTT, promises of Alexa and HomeKit integration, and possibly open APIs. Here’s a few to get started (follow “related product” links to find more:



hmm, I’m not familiar with ifttt myself. I’ll have to look more into that. I was hoping to avoid dropping an ir blaster with wall wart in all of my rooms to the tune of $170+ per. I think the evaporator heads are like 400-500 making a $170 add on pretty pricey and I know inevitably the blaster will get blocked without noticing…

I could probably roll my own with a little work and an esp8266 IR transceiver… Just don’t really feel like it :slight_smile:

There were some much cheaper ones when I looked before, but I was more suspicious of their capability, and they weren’t popping up yesterday. Rolling your own is a good way to go if you have the skills. One big issue is the complexity of the IR commands these things use – the remote keeps track of state, and the entire state is transmitted with each button press.

As far as the blaster getting blocked, I’d probably put an outlet above the blower, and rest the blaster on top or wall mount it. Should be able to bounce off other walls and reach the sensor on the unit.

Yeah, I was afraid that the IR stream would be packed like that.

It looks like Mitsubishi have a thermostat interface that can talk directly to a standard wall mount tstat like my zwave ones. Maybe I’ll push for Mitsu instead of fujitsu… if contractors will ever call back… how do these people actually make money…:confused:

I ended up getting a Mitsubishi 5 zone heatpump installed. I’m just starting the interfacing but I found an ESP8266 library for talking directly to the wall units via serial!

I currently have a Huzzah directly connected to a heatpump wall unit and can control it via MQTT on cli.

I need to decide if I’m going to tweak the sample esp code to not use json or if I want to try to get OH to work with the json.

All in all, $10 for a huzzah and about a $1 for the connector and pins to plug it into the HP control board. It is powered off of the control board. Compared to >$150 for these other options will save a ton of money for me.

Hello,

i have a Sanyo/Panasonic A/C running with an Intesishome WLAN interface. Intesishome is supported by IFTTT. Thus i have setup an Alexa switch item using the HUE-emulation within openHAB2. This switch item exposes an ON/OFF if checked to be exposed on the myopenhab.org cloud service. This is linked to IFTTT which executes the Intesishome applets “Turn A/C On” and “Turn A/C Off” if the ON/OFF state provided by the openHAB cloud service changes. Sounds a bit strange but works out fine. The only disadvantage is a time delay because IFTTT is not processing realtime.

Best regards,

Willi

1 Like

Hello,

in the meantime i moved forward to make things happen realtime, I use IR-Kit, a small Arduino based WLAN device from Japan. This can be operated by any IR-signal and applied for any openHAB “WLAN to Infrared” automation job. Furthermore i apply “Curl for windows” to send http requests to the IR-Kit. The Curl commands are setup and executed using rules. Curl is also used to read the IR-signal which has initially been received by the IR-Kit from the original A/C remote control.

Best regards,

Willi

Hi,

A couple of days ago it would appear a new firmware was released for some of the IntesisHome or AirconWithMe re-branded A/C and heatpump WiFi controllers. This update introduced a a change to the HTTP interface which allowed me to completely map the protocol and commands. Although no specific binding is in place, I have a proof-of-concept Perl script which can retrieve values, set values and dump all the info from the controller/unit. It also supports the Identify function where the controller blinks a white LED for 10 seconds. Obviously I’ve got this set up with rules and executeCommandLine() right now, but I can gladly share the API info and script with anyone who happens to be interested and maybe someone might feel like creating a binding.

Cheers,

PelliX

I’d love a binding for this! It would be awesome to get our ducted Daikin system integrated with OH

What kind of controller are you using for the Daikin?

Cheers,

PelliX

we haven’t got one yet but the one that daikin nz have just started using as of a week ago is
https://www.intesisbox.com/en/daikin-ascii-wifi-vrv-dk-rc-wmp-1/gateway/
we were just wanting something that’ll integrate into oh so are open to suggestions?

Well, the controller certainly would fit the bill, although probably with a litte custom scripting. According to the product description “The aim of this integration is to monitor and control your Daikin VRV air conditioning system, remotely, from your Control Center using any commercial SCADA or monitoring software that includes the possibility to communicate through simple ASCII messages on a TCP/IP network.”.
So, in a nutshell you can control it using SCADA, and you can integrate it find into OH.

Cheers,

PelliX

I would love if you could share what you’ve mapped of the API. I’ll be getting some FJ-RC-WIFI-1NA for my new mini-splits.

ac.pl.txt (15.8 KB)

Hi there,

I’ve attached a rudimentary Perl script that you can easily extend for your particular device or needs.

Cheers,

PelliX

Please share away!!!
I have seen that you posted your script below but there is not info on how it is linked with openHAB.
Could you write a quick tutorial with your script and some examples of items and rules, please?

Thanks

I wouldn’t say there’s really much to it. The approach I used is pretty spartan, honestly. Basically, there’s a wrapper script around the ac.pl script I posted which basically gets “all” the items from the AC unit and pushes these to the REST API. This is called by cron at regular intervals. Polling too often (resulting in multiple simultaneous requests) may crash/hang the controller. Rule of thumb; not more that once or twice a minute to be on the safe side.

#!/usr/bin/perl
#
# This script retrieves data from the IntesisHome WiFi 
# controller for the Mitsubishi A/C in the server room.
# It forwards the values by means of an HTTP PUT request 
# to the OpenHAB REST API.
#
# PelliX 2018
#
use strict;
use warnings;

use LWP::UserAgent;
use HTTP::Request;

my $debug = 0;

my @items;
$items[0][0] = 'Power';
$items[0][1] = 'SR_AIRCO';

$items[1][0] = 'User Mode';
$items[1][1] = 'SR_AC_USERMODE';

$items[2][0] = 'Fan Speed';
$items[2][1] = 'SR_AC_FANSPEED';

$items[3][0] = 'Vane Up/Down Position';
$items[3][1] = 'SR_AC_UPDOWN';

$items[4][0] = 'Setpoint Temperature';
$items[4][1] = 'SR_AC_SETPOINT';

$items[5][0] = 'Return Path Temperature';
$items[5][1] = 'SR_AC_RETTEMP';

$items[6][0] = 'Remote Disable';
$items[6][1] = 'SR_AC_REMOTE';

$items[7][0] = 'On Time';
$items[7][1] = 'SR_AC_ONTIME';

$items[8][0] = 'Alarm Status';
$items[8][1] = 'SR_AC_ALARM';

$items[9][0] = 'Error Code';
$items[9][1] = 'SR_AC_ERROR';

$items[10][0] = 'Outdoor Temperature';
$items[10][1] = 'SR_AC_OUTSTEMP';

my $i = 0;
foreach (@items) {
        my $oh_item = $items[$i][1];
        my $oh_rest_url = 'http://<YOUROH>:8480';
        my $oh_url = $oh_rest_url . '/rest/items/' . $oh_item . '/state';

        # get data using ac.pl script
        my $itemvalue = `perl /mnt/openhab/scripts/ac.pl -g "$items[$i][0]" -r <YOURAIRCOHERE>`;
        $itemvalue = substr($itemvalue, 0, index($itemvalue, ' '));

        # send data to REST API
        my $ua = LWP::UserAgent->new;
        my $req = HTTP::Request->new("PUT", $oh_url);
        # exception for the remote toggle
        if ($oh_item eq "SR_AC_REMOTE") {
                if ($itemvalue == 0) {
                        $req->content('OFF');
                } elsif ($itemvalue == 1) {
                        $req->content('ON');
                }
        } else { 
                $req->content($itemvalue);
        }
        my $return = $ua->request($req);
        if ($debug == 1) {
                open(my $fh, '>>', '/tmp/ac.log');
                say $fh `date`;
                say $fh "URL: " . $oh_url;
                say $fh "OH Item: " . $oh_item;
                say $fh "New Val: " . $itemvalue . "\n";
                close($fh);
                print "URL: " . $oh_url . "\n";
                print "OH Item: " . $oh_item . "\n";
                print "New Val: " . $itemvalue . "\n\n";
        }
        sleep 1;
        $i++;
}
exit;

Like I said, not beautiful, but it gets the job done. That gives you an indication of the items that are in use, too. Then you have rules which translate the commands sent to the OH items to script arguments:

rule "Mitsubishi Control"
        when
                Item SR_AC_UPDOWN received command
        then
                switch(receivedCommand) {
                        case "1" : executeCommandLine("/bin/sh@@-c@@/usr/bin/perl /mnt/openhab/scripts/ac.pl -p 'Vane Up/Down Position' -v 1 -r <YOURAIRCOHERE>")
                        case "2" : executeCommandLine("/bin/sh@@-c@@/usr/bin/perl /mnt/openhab/scripts/ac.pl -p 'Vane Up/Down Position' -v 2 -r <YOURAIRCOHERE>")
                        case "3" : executeCommandLine("/bin/sh@@-c@@/usr/bin/perl /mnt/openhab/scripts/ac.pl -p 'Vane Up/Down Position' -v 3 -r <YOURAIRCOHERE>")
                        case "4" : executeCommandLine("/bin/sh@@-c@@/usr/bin/perl /mnt/openhab/scripts/ac.pl -p 'Vane Up/Down Position' -v 4 -r <YOURAIRCOHERE>")
                        case "10" : executeCommandLine("/bin/sh@@-c@@/usr/bin/perl /mnt/openhab/scripts/ac.pl -p 'Vane Up/Down Position' -v 10 -r <YOURAIRCOHERE>")
                }
    end

rule "Mitsubishi Setpoint"
        when
                Item SR_AC_SETPOINT received command
        then
                /* The unit accepts temps using celsius multiplied by ten (21 degrees is "210", etc)  */
                var Number ACSetPVal = (Integer::parseInt(receivedCommand.toString) * 10)
                executeCommandLine("/bin/sh@@-c@@perl /mnt/openhab/scripts/ac.pl -p 'Setpoint Temperature' -v " + ACSetPVal + " -r <YOURAIRCOHERE>")
end

And of course a bunch more for the rest of the functions. It’s basically just more of the same. Apart from that I have some custom rules for alerting in case a fault or a temperature that’s too high, etc.

As the items themselves are ‘rule driven’ the definition in the items file is merely the item name, a description and its group membership.

Does that sum it up?

Cheers

PelliX

I finally got my IntesisHome WiFi devices today, with Fujitsu mini splits. I’m looking at your script, and I’m a bit confused. Are you talking directly to your IntesisHome device, on port 80? Or are you talking to the user.intesishome.com web service? Mine don’t seem to be listening on port 80. If that latter, it looks like there’s a REST API now (https://www.intesishome.com/developers/rest-api-documentation/).