Innova Air Conditioner Control API
Project description
Innova Control API
Tested on a Innova 2.0 unit
Also supports AirLeaf
Installation
pip install innova_controls
Innova class usage
Communication protocol
Local Mode
All commands are sent to the unit itself through http at its network IP address: http://[IP_ADDRESS]/api/v/1.
Cloud Mode
Commands are sent to Innova's cloud services at http://innovaenergie.cloud/api/v/1. The serial number and the MAC Address of the unit are needed when using cloud mode.
Protocol definition
We just need to append the following commands and parameters where needed.
Ex: curl http://192.168.1.155/api/v/1/status
It is highly recommended to set the IP of your unit to a static DHCP address.
2.0 Commands and Statuses
| Action | HTTP Verb | API Endpoint | Data Needed | Extra Info |
|---|---|---|---|---|
| Status | GET | /status | Returns json object | |
| Power ON | POST | /power/on | ||
| Power OFF | POST | /power/off | ||
| Scheduling ON | POST | /set/calendar/on | Not implemented by this library | |
| Scheduling OFF (Manual) | POST | /set/calendar/off | Not implemented by this library | |
| Night Mode ON | POST | /set/feature/night | value=1 | |
| Night Mode OFF | POST | /set/feature/night | value=0 | |
| Set point | POST | /set/setpoint | p_temp=24 | |
| Rotation ON | POST | /set/feature/rotation | value=0 | |
| Rotation OFF | POST | /set/feature/rotation | value=7 | |
| Fan Speed | POST | /set/fan | value=[0-4] | 0=auto,1=low,2=med,3=high,4=high++ |
| Cooling | POST | /set/mode/cooling | ||
| Heating | POST | /set/mode/heating | ||
| Dehumidification | POST | /set/mode/dehumidification | ||
| Fan Only | POST | /set/mode/fanonly | ||
| Auto | POST | /set/mode/auto |
JSON returned by status endpoint:
{
"RESULT": {
"a": [],
"cci": 0,
"ccv": 0,
"cfg_lastWorkingMode": 4,
"cloudConfig": 1,
"cloudStatus": 4,
"cm": 0, <--- Scheduling Mode: 0=off, 1=on
"connectionStatus": 2,
"coolingDisabled": 0,
"cp": 0,
"daynumber": 0,
"fr": 7, <--- Fan Rotation: 0=on, 7=off
"fs": 0, <--- Fan Speed: 0=auto, 1=low, 2=med, 3=high, 4=high++
"heap": 11760,
"heatingDisabled": 1,
"heatingResistance": 0,
"hotelMode": 0,
"inputFlags": 0,
"kl": 0,
"lastRefresh": 3956,
"ncc": 0,
"nm": 0, <--- Night Mode: 0=off, 1=on
"ns": 0,
"ps": 0, <--- Power: 0=off, 1=on
"pwd": "************",
"sp": 26, <--- Temperature Set point
"t": 16, <--- Ambient Temperature
"timerStatus": 0,
"uptime": 159660,
"uscm": 0,
"wm": 4 <--- Mode: 0=heating, 1=cooling, 3=dehumidification, 4=fanonly. 5=auto
},
"UID": "[MAC ADDRESS]",
"deviceType": "001",
"net": {
"dhcp": "1",
"gw": "XXX.XXX.XXX.XXX",
"ip": "XXX.XXX.XXX.XXX",
"sub": "255.255.255.0"
},
"setup": {
"name": "Device Name",
"serial": "YYYYYYYYY"
},
"success": true,
"sw": {
"V": "1.0.42"
},
"time": {
"d": 5,
"h": 17,
"i": 40,
"m": 2,
"y": 2022
}
}
AirLeaf Commands and Statuses
| Action | HTTP Verb | API Endpoint | Data Needed | Extra Info |
|---|---|---|---|---|
| Status | GET | /status | Returns json object | |
| Power ON | POST | /power/on | ||
| Power OFF | POST | /power/off | ||
| Scheduling ON | POST | /set/calendar/on | Not implemented by this library | |
| Scheduling OFF (Manual) | POST | /set/calendar/off | Not implemented by this library | |
| Set point | POST | /set/setpoint | p_temp=240 | |
| Fan Function | POST | /set/fan | value=[1-4] | 1=auto,2=night,3=min,4=max |
| Cooling | POST | /set/mode/cooling | ||
| Heating | POST | /set/mode/heating | ||
| Auto | POST | /set/mode/auto |
JSON returned by status endpoint:
{
"success": true,
"sw": {
"V": "1.0.3"
},
"UID": "f4:cf:a2:5f:29:ef",
"deviceType": "002",
"time": {
"d": 18,
"m": 10,
"y": 2022,
"h": 6,
"i": 14
},
"net": {
"gw": "XXX.XXX.XXX.XXX",
"ip": "XXX.XXX.XXX.XXX",
"sub": "255.255.255.0"
"dhcp": "1"
},
"setup": {
"name": "Device Name",
"serial": "YYYYYYYYY"
},
"RESULT": {
"sp": 200, <--- Temperature Set point (x10)
"wm": 3, <--- Mode: 0=auto, 3=heating. 5=cooling
"fn": 1, <--- Fan Function: 1=auto, 2=night, 3=min, 4=max
"kl": 0,
"lastworkingModeSet": 0,
"ps": 0, <--- Power: 0=off, 1=on
"cm": 0, <--- Scheduling Mode: 0=off, 1=on
"a": [],
"ta": 210, <--- Ambient Temperature (x10)
"tw": 219, <--- Water Temperature (x10)
"ns": 0,
"cloudStatus": 4,
"connectionStatus": 2,
"cloudConfig": 1,
"timerStatus": 0,
"inputFlags": 0,
"ncc": 0,
"lcc": 0,
"pwd": "",
"heap": 11496,
"ccv": 0,
"cci": 0,
"daynumber": 0,
"uptime": 90675,
"fclFw": 24,
"uscm": 0,
"lastRefresh": 2
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file innova-controls-2.0.4.tar.gz.
File metadata
- Download URL: innova-controls-2.0.4.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fc7adc266a63774a4ce69e52a86c4521ce46ed4ed388a800422a0eb9a5b1f14
|
|
| MD5 |
2e118332b294c801e10260ca1a8eaa2d
|
|
| BLAKE2b-256 |
8b1c05b7259e38bcd01c113d703a76cdd6536ee3822cab56911b5025cef09009
|
File details
Details for the file innova_controls-2.0.4-py3-none-any.whl.
File metadata
- Download URL: innova_controls-2.0.4-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e61d09e6f4604df05e070ad12e22068437e1e8533bd0685dc288a498d105b09
|
|
| MD5 |
e9028998780e6e1a7894f4ac60b992f9
|
|
| BLAKE2b-256 |
02ae4c58dbaa9306daa0a917a1e616d2ac1a7bfb22fca9742b2282ac36e32497
|