Anyone Integrated a Mr. Cool Ductless w/ WiFi?

Agreed, I was just hoping for local control of the units like there is with the Daikin setup.

@mikenabhan I have created a homebridge plug-in if this is useful (or would serve as a useful reference design):

I have 4 units using Cielo Thermostat
I have tried to install your add-on but on HA but no success
I tried to make a copy using Python but I am begineer . Still trying hard :see_no_evil:
Finally I managed to install homebrdige on RPI using Portainer to use your homebridge addon
I hope there is someone can help us devolpe an integration for this thermostat :cry:

@be_adamant Do you have any logs or code to illustrate the problem you are encountering?

I am totally beginner in both Python and HA
I am trying to connect to cielosmart API using websocket
I just started 2 days ago and trying to figure out how to use Python websocket
As I notice in ur code there are alot of steps
Starting with session id next cookies … auth …etc
I think Python has a diffrenet way handling these data and that what I am trying to figure out

I was looking in custom component that using websocket API to learn from it but couldnt find any

@be_adamant an alternative might be to simply expose as node-smartcielo as a web service (optionally via docker) and make HTTP calls from hass.io.

Something similar to this:

So in case I do that
Will it be as an entity in HA or just calling services?

@be_adamant I leave that exercise to you, @mikenabhan and/or others.

To help with integration with hass.io I have created a simple HTTP-server wrapper for node-smartcielo:

Usage is pretty simple:

  1. Install:
$ npm install -g node-smartcielo-http
  1. Start the server
$ node-smartcielo-http -l 6969 -u <username> -p <password> -i <ip_address>
  1. Run commands using cURL:
# Get power state
$ curl http://localhost:6969/power
{"power":"off"}

# Send power on
$ curl http://localhost:6969/power/on
{"success":true}

# Get current mode
$ curl http://localhost:6969/mode
{"mode":"auto"}

# Set mode to cool
$ curl http://localhost:6969/mode/cool
{"success":true}

# Get current room temperature
$ curl http://localhost:6969/roomTemperature
{"roomTemperature":78}

# Get current thermostat temperature
$ curl http://localhost:6969/temperature
{"temperature":"75"}

# Set thermostat temperature tp 75
$ curl http://localhost:6969/temperature/75
{"success":true}

# Get current fan speed
$ curl http://localhost:6969/fanSpeed
{"fanSpeed":"auto"}

# Set fan speed to low
$ curl http://localhost:6969/fanSpeed/low
{"success":true}

# Send power off
$ curl http://localhost:6969/power/off
{"success":true}

I really appreciate your help

And I will keep trying and learing how to make an integration :smiley: I love challenges

Waiting for you :smiley:

:smiley: Hi
I managed to install Homebridge on docker
And install smartcielo
But I am little bit confused about the public IP and accessories

  1. Publci IP do you mean my Public IP??
    Or the website IP? Or the device local IP
  2. I have 3 devices under one username in smartcielo.com
    Should I add 3 accessories or one would be enough?

Appreciate that
I have tried it but it doesnt work for me
It shows one device and I dont know which one is it and when try to control it all devices doesnt reapone for it
I think I missing something here

@be_adamant the underlying driver does not support multiple devices. It is hardcoded to pick the first device only. Which one that is you would need to figure out experimentally!

Please file an issue against: https://github.com/nicholasrobinson/homebridge-smartcielo or https://github.com/nicholasrobinson/node-smartcielo
to start a conversation about adding multi device support.

It is interesting that you aren’t seeing any responses on your devices. It is possible that the smartcielo payloads are slightly different to the MRCOOL device. To investigate further you may want to run homebridge in debug mode or file an issue on my github.

I just post it :+1:

I made a python script to just pull the device status. I’m not concerned with remote control, but I was hoping to do datalogging so I could plot it and see how frequently the AC is running, etc.

Here is my code: https://gist.github.com/lukecyca/9f88aad1b6473047ec7a0d5a8afd37fe

Unfortunately there is almost no useful telemetry data provided. How is there so little useful data is such a large json blob? :frowning:

Here is what I get:

{
  "isTurboDisplay": 1, 
  "deviceName": "Upstairs", 
  "deviceTypeVersion": "BI03", 
  "blockMessage": "Unblocked", 
  "latEnv": {
    "temp": "25.0", 
    "humidity": "0.0"
  }, 
  "macAddress": "2CF4323E87FE", 
  "isOnceSyncedState": 0, 
  "userId": "<redacted>", 
  "deviceStatus": "1", 
  "turboFailureAttempts": "0", 
  "broadcastName": "SmartHVAC_BI03_3E87FE", 
  "createdAt": "1595173640", 
  "deviceImageUrl": null, 
  "isFaren": 0, 
  "latestAction": {
    "turbo": "off", 
    "uirules": "default:default:vanish", 
    "ontimestamp": "1595173723", 
    "temp": "24", 
    "timestamp": "1595182402", 
    "startTurboTimestamp": "1595173640", 
    "light": null, 
    "swing": "pos3", 
    "deviceStatus": "on", 
    "statustimestamp": 1595173643, 
    "endTurboTimestamp": "1595173640", 
    "power": "on", 
    "mode": "auto", 
    "moderules": "default:default:auto", 
    "fanspeed": "auto"
  }, 
  "fwVersion": "2.4.2,2.4.1", 
  "deviceType": "BREEZ-I", 
  "deviceSettings": {
    "defaultImage": null, 
    "downtbpower": null, 
    "screenDisplayValue": null, 
    "tbenabled": null, 
    "tbsensitivity": null, 
    "transmitterValue": null, 
    "brightnessValue": null
  }, 
  "applianceID": 1664, 
  "turbo": "off:on", 
  "latestBucketError": "0", 
  "fpFailureAttempts": "0", 
  "isEnergyDevice": 0, 
  "applianceType": "AC", 
  "wifiName": "<redacted>", 
  "deviceId": "o34fPD", 
  "groupId": "-1", 
  "deviceFilterDuration": "0", 
  "isBlocked": 0, 
  "deviceFilterFlag": 1, 
  "isScreenLess": 0, 
  "isFreezePointDisplay": 1, 
  "lastAction": null, 
  "turboConfig": "default,default:Turbo:heat,cool,auto:temp,swing,light:0:1", 
  "myRules": [], 
  "applianceSubtype": 1, 
  "freezePointConfig": "heat,FP,10,FP:FP:heat:swing,light:1", 
  "deviceTimeZone": "-7:0"
}

I was really hoping to observe the duty cycle and power level. Since this is an inverter-style heat pump air conditioner, the compressor should be able to ramp up or down rather than traditional compressor systems that are either fully on or fully off. Unfortunately there is no indication of current compressor power level, or even whether it is running at all!

Thats great :smiley:
I managed to make a python code to connect to websocket ,send commands and get devices list.
but I am totally beginner in Pyhton (in fact this is my first code after Hello World in Python ) so I am trying hard to use ASYNCIO to change my code from regular request to Asyncio but find it hard and need more time to do it :smiley:

1 Like

That is really awesome work. I have no clue in python or I’d love to help. I’m just really interested in getting this working for Home Assistant also.

I just installed my AC and would LOVE to see it on my dashboard!

Thank you very much for working on this! Being new to HA has been a HUGE learning curve but I’m hoping to get it figured out soon :slight_smile:
Again, Thank you!

I would also love to see this! Mr Cool is great. Pretty new to HA, but I’ve managed to get just about everything I could ever want running, besides my HVAC. Anything I can do to help keep this ball rolling!

I’m also new to HA and just trying to learn but this is just about the only big thing that I don’t have running through HA :slight_smile: I’m still hoping someone has done it or will figure it out. I know it’s not cool just sitting here waiting for someone else to do the work but until I understand this all better I know it won’t be me LOL.

Well I just came across if you have a MR Cool unit and you use Smartthings you can in fact integrate it in HA! I have it in smartthings working and now HA sees it…but what to do with it now is another mystery I’ll have to solve LOL

2 Likes

I have installed nicholasrobinson/node-smartcielo-http but homebridge is giving me this error below.

Any ideas?

[SmartCielo] TypeError: Cannot read property 'getAttribute' of null
    at getAppUserAndSessionId (/homebridge/node_modules/homebridge-smartcielo/node_modules/node-smartcielo/SmartCielo.js:127:64)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Promise.all (index 0)