npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-midea-hvac

v1.2.5

Published

Nodes for controlling Midea HVAC in Node-RED

Downloads

52

Readme

node-red-contrib-midea-hvac

platform Min Node Version GitHub version GitHub stars Package Quality

issues GitHub last commit NPM Total Downloads NPM Downloads per month Repo size

About

Nodes for controlling Midea HVAC in Node-RED.

Thanks Rene Klootwijk for project node-mideahvac (more information and description)

  • midea: get/set value of device (support OSK103/SK103 and serialbridge)

Status

All common functions of Airconditioners are supported, but support for specific features only available on some airconditioners might be incomplete or missing because it is unknown how they work and the inability to test.

The direct communication with the original dongle, the SmartKey, has been tested with a OSK103/SK103 running firmware 3.0.8 (+test 3.0.6). The discover command required to obtain the token and key required for direct communication only supports accounts that have been migrated to the MSmartHome app.

:warning: :warning: :warning: The OSK103/SK103 module, when using the OSK103/SK103 communication method and poll the status frequently, might disconnect from your WiFi network and a powercycle is required to reconnect. Lowering the frequency of polling might prevent this.

Prerequisites

For the direct communication method using an OSK103/SK103 original SmartKey dongle is required running firmware version 3.0.8 (+test 3.0.6) and a MSmartHome account (Midea Air or NetHome Plus accounts do not work anymore because Midea removed the ability to retrieve the required key and token for these type of accounts).

For the serialbridge (see ADAPTER.md) test esp-link 3.0.14

Methods and Command support

The following methods are provided:

  • getCapabilities, this method requests the AC unit for its supported capabilities (0xB5 query). This command is not supported by all AC units and the reported values are not always correct (e.g. my Artel units report the left/right fan can be controlled while it can only be manually controlled and Fahrenheit as unit is not supported while it is).

    The default values specify which value is reported by this module when the AC unit does not report this capability at all.

| Capability | Type | Default | Description | | --- | --- | --- | --- | | activeClean | boolean | false | active cleaning mode | | autoMode | boolean | false | auto mode (cooling or heating is automatically selected) | | autoSetHumidity | boolean | false | humidity setpoint automatically determined | | breezeControl | boolean | false | breeze mode can be controlled | | buzzer | boolean | false | buzzer can be disabled | | coolMode | boolean | false | cooling mode | | decimals | boolean | false | setpoint in decimals | | downNoWindFeel | boolean | false | | | dryMode | boolean | false |dry mode | | ecoMode | boolean | false | eco mode | | electricAuxHeating | boolean | false | | | fanSpeedControl | boolean | true | fan speed can be controlled | | frostProtectionMode | boolean | false | temperature is maintained at 8C to protect against frost | | heatMode | boolean | false | heat mode | | indoorHumidity | boolean | false | indoor humidity is reported| | leftrightFan | boolean | false | left/right fan can be controlled | | lightControl | boolean | false | display can be dimmed | | manualSetHumidity | boolean | false | humidity setpoint can be specified | | maxTempAuto | number | 30 | maximum setpoint in auto mode | | maxTempCool | number | 30 | maximum setpoint in cool mode | | maxTempHeat | number | 30 | maximum setpoint in heat mode | | minTempAuto | number | 17 | minimum setpoint in auto mode | | minTempCool | number | 17 | minimum setpoint in cool mode | | minTempHeat | number | 17 | minimum setpoint in heat mode | | nestCheck | boolean | false | | | nestNeedChange | boolean | false | | | oneKeyNoWindOnMe | boolean | false | | | oneKeyNoWindOnMe | boolean | false | | | powerCal | boolean | false | power usage can be reported | | powerCalSetting | boolean | false | | | silkyCool | boolean | false | | | smartEye | boolean | false | | | specialEco | boolean | false | | | turboCool | boolean | false | cool mode supports turbo mode | | turboHeat | boolean | false | heat mode supports turbo mode | | unitChangeable | boolean | false | the temperature unit can be changed from Celsius to Fahrenheit | | updownFan | boolean | false | up/down fan can be controlled | | upNoWindFeel | boolean | false | | | windOffMe | boolean | false | | | windOnMe | boolean | false | |

  • getPowerUsage, this method requests the current power usage of the unit (specific 0x41 command).

| Property | Type | Description | | --- | --- | --- | | powerUsage | number | Power usage in kWh |

  • getStatus, this method requests the current status of the unit (0x41 command).

| Property | Values | Description | | --- | --- | --- | | braceletControl | true/false | | braceletSleep | true/false | | catchCold | true/false | | childSleep | true/false | | coolFan | true/false | | cosySleep | 0: no sleep1: sleep 12: sleep 23: sleep 3 | sleep mode, reported as the following JSON object:{ value: n, description: text } | | downWindControl | true/false | | downWindControlLR | true/false | | dryClean | true/false | | dualControl | true/false | probably to the follow me mode is active where the remote control acts as the temperature sensor | | dustFull | true/false | | ecoMode | true/false | eco mode is enabled | | ecoSleepRunningHours | 0-15 | | ecoSleepRunningMinutes | 0-59 | | ecoSleepRunningSeconds | 0-59 | | fanSpeed | 0-20: silent21-59: low60-79: medium80-100: high101: fixed102: auto | reported as the following JSON object:{ value: n, description: text } | | fastCheck | true/false | | feelOwn | true/false | | frostProtection | true/false | frost protection is active | | humiditySetpoint | 0-100% | humidity setpoint | | indoorTemperature | -25-102°C-13-215°F | indoor temprature | | inError | true/false | the unit is in error | | keepWarm | true/false | | leftrightFan | true/false | left/right fan is active | | light | 0-7 | brightness level of display light | | lowFrequencyFan | true/false | | mode | 1: auto2: cool3: dry4: heat5: fanonly6: customdry | reported as the following JSON object:{ value: n, description: text } | | naturalFan | true/false | | nightLight | true/false | | offTimer | true/false | scheduled to turn on | | offTimerHours | 0 - 24 | number of hours until the unit will be turned off | | offTimerMinutes | 0 - 59 | number of minutes until the unit will be turned off | | onTimer | true/false | scheduled to turn on | | onTimerHours | 0 - 24 | number of hours until the unit will be turned on | | onTimerMinutes | 0 - 59 | number of minutes until the unit will be turned on | | outdoorTemperature | -25-102°C-13-215°F | outdoor temperature | | peakValleyElectricitySaving | true/false | | pmv | 99: off-3: cold-2.5: chill-2: chill-1.5: cool-1: cool-0.5: comfortable0: comfortable0.5: comfortable1: slightly warm1.5: slightly warm2: warm 2.5: warm | predicted mean vote (the experienced temperature), reported as the following JSON object:{ value: n, description: text } | | powerOn | true/false | power status | | ptcHeater | true/false | | purify | true/false | | resume | true/false | automatically resume after recovery from power failure | | save | true/false | | selfCosySleep | true/false | | selfFeelOwn | true/false | | sleepMode | true/false | sleep mode is activated | | smartEye | true/false | | smartWind | true/false | | statusCode | see Status codes | reported as the following JSON object:{ value: n, description: text } | | temp | 0-32 | probably the temperature reported by the remote control sensor in follow me mode | | tempDecimal | true/false | probably indicates decimals are supported for the temperature reported by the remote control | | temperatureSetpoint | 17 - 30°C62-86°F | temperature setpoint | | temperatureUnit | 0: Celsius1: Fahrenheit | unit used to report temperatures | | timerMode | 0: relative1: absolute | how to specify the time for the timer (only relative mode is supported) | | turboMode | true/false | turbo mode enabled | | updownFan | true/false | up/down fan is active | | ventilation | true/false | | windBlowing | true/false |

  • (properties), this payload must be used to change the status of the unit. The properties parameter is an object containing all the properties and their values that need to be changed. To prevent changing properties unintentionaly, before calling the setStatus command a getStatus command must be send to retrieve the current values of all properties.

The following properties can be set:

Property | Type | Possible values | Description | | --- | --- | --- | --- | | beep | boolean | true, false | en/disable a beep as feedback | | fanSpeed | string | number | silent, low, medium, high, auto or 0 - 100% | set the fan speed | | frostProtectionMode | boolean | true, false | turn frost protection mode (min. temperature is 8°C) on/off. This is only supported in heat mode | | humiditySetpoint | number | 35 - 85 | set the desired humidity in % | | leftrightFan | boolean | true, false | turn the left/right (vertical) fan on/off | | mode | string | cool, heat, fanonly, dry, auto, customdry | set the operational mode | | powerOn | boolean | true, false | power the unit on/off | | temperatureSetpoint | number | 16 - 31 / 60 - 87| set the desired temperature in °C or °F| | sleepMode | boolean | true, false | turn the sleep mode on/off | | temperatureUnit | string | fahrenheit, celsius | set the temperature unit to fahrenheit/celsius | | turboMode | boolean | true, false | turn turbo mode on/off | | updownFan | boolean | true, false | turn the up/down (horizontal) fan on/off |

Example (more): Turn the unit on, set the temperature setpoint to 24°C.

{ powerOn: true, temperatureSetpoint: 24 }