https://github.com/twocolors/node-red-contrib-esphome
Node-RED nodes to ESPhome devices
https://github.com/twocolors/node-red-contrib-esphome
diy esphome iot node-red nodejs
Last synced: about 1 month ago
JSON representation
Node-RED nodes to ESPhome devices
- Host: GitHub
- URL: https://github.com/twocolors/node-red-contrib-esphome
- Owner: twocolors
- License: mit
- Created: 2023-01-10T03:25:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-05T06:51:44.000Z (about 1 month ago)
- Last Synced: 2025-05-05T07:41:06.525Z (about 1 month ago)
- Topics: diy, esphome, iot, node-red, nodejs
- Language: HTML
- Homepage:
- Size: 380 KB
- Stars: 28
- Watchers: 4
- Forks: 9
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-red-contrib-esphome
[](https://flows.nodered.org/node/node-red-contrib-esphome)
[](https://nodejs.org/en/)
[](https://www.npmjs.com/package/node-red-contrib-esphome)
[](https://github.com/twocolors/node-red-contrib-esphome/stargazers)
[](https://packagequality.com/#?package=node-red-contrib-esphome)[](https://github.com/twocolors/node-red-contrib-esphome/issues)



## About
### !!! Alpha, Alpha, Alpha release
### !!! Need help writing documentationNode-RED nodes to ESPhome devices
## Prerequisites
Your ESPHome device must be configured with the ESPHome API enabled.In your device.yaml configuration file:
```yaml
# Example configuration entry
api:
```See [ESPHome documentation on api configuration](https://esphome.io/components/api.html) for more information.
## Installation
```bash
$ npm i node-red-contrib-esphome
```## Inputs
Inputs are sent to the node as JSON payloads. The list below provides a list of keys and values (and their expected value type) that may be sent to the "esphome out" nodes. It is helpful to watch the "esphome in" messages to learn which type and range of commands are expected by your device.
Some example message payloads are:
```js
// to set a light on:
msg.payload = {'state': true}// set a door lock to unlock:
msg.payload = {'command':0}// to toggle a light to 42% brightness:
msg.payload = {'brightness': 42}// to press a button:
msg.payload = true
```#### Button
Button inputs may be triggered with any payload in the input message. Simply send a timestamp, `true`, or other payload to the button node. Button type nodes provide no messages into Node-RED.
#### Climate
- `mode` - optional. 0 - OFF, 1 - AUTO, 2 - COOL, 3 - HEAT, 4 - FAN_ONLY, 5 - DRY. See `supportedModesList` attr in config
- `targetTemperature`- optional. float
- `targetTemperatureLow`- optional. float
- `targetTemperatureHigh`- optional. float
- `legacyAway` - optional. Boolean. Deprecated: use `preset` with AWAY
- `fanMode` - optional. 0 - ON, 1 - OFF, 2 - AUTO, 3 - LOW, 4 - MEDIUM, 5 - HIGH, 6 - MIDDLE, 7 - FOCUS, 8 - DIFFUSE, 9 - QUIET. See `supportedFanModesList` attr in config
- `swingMode` - optional. 0 - OFF, 1 - BOTH, 2 - VERTICAL, 3 - HORIZONTAL. See `supportedSwingModesList` attr in config
- `customFanMode` - optional. string. See `supportedCustomFanModesList` attr in config
- `preset` - optional. 0 - NONE, 1 - HOME, 2 - AWAY, 3 - BOOST, 4 - COMFORT, 5 - ECO, 6 - SLEEP, 7 - ACTIVITY. See `supportedPresetsList` attr in config
- `customPreset` - optional. string. See `supportedCustomPresetsList` attr in config
#### Cover
- `legacyCommand` - optional. 0 - OPEN, 1 - CLOSE, 2 - STOP. Deprecated: use `position`
- `position` - optional. float. 0.0 - CLOSED, 1.0 - OPEN. See `supportsPosition` attr in config
- `tilt` - optional. float. 0.0 - CLOSED, 1.0 - OPEN. See `supportsTilt` attr in config
- `stop` - optional. boolean
#### Fan
- `state` - optional. boolean
- `speed` - optional. 0 - LOW, 1 - MEDIUM, 2 - HIGH
- `oscillating` - optional. boolean
- `direction` - optional. 0 - FORWARD, 1 - REVERSE
- `speedLevel` - optional. integer. See `supportedSpeedLevels` attr in config
#### Light
- `state` - optional. boolean
- `brightness` - optional. float
- `red` - optional. integer 0-255
- `green` - optional. integer 0-255
- `blue` - optional. integer 0-255
- `colorMode` - optional. integer. See `supportedColorModesList` attr in config
- `colorBrightness` - optional. float
- `white` - optional. integer 0-255
- `colorTemperature` - optional. integer
- `coldWhite` - optional. float
- `warmWhite` - optional. float
- `flashLength` - optional. integer
- `effect` - optional. string. effect from effects array in config list
#### Lock
- `command` - REQUIRED. 0 - UNLOCK, 1 - LOCK, 2 - OPEN
- `code` - optional. string. See `requiresCode` attr in config
#### MediaPlayer
- `command` - REQUIRED. 0 - MEDIA_PLAYER_COMMAND_PLAY, 1 - MEDIA_PLAYER_COMMAND_PAUSE, 2 - MEDIA_PLAYER_COMMAND_STOP, 3 - MEDIA_PLAYER_COMMAND_MUTE, 4 - MEDIA_PLAYER_COMMAND_UNMUTE
- `volume` - optional. float
- `mediaUrl` - optional. string
#### Number
- `state` - REQUIRED. float. See `minValue`, `maxValue`, and `step` attrs in config
#### Select
- `state` - REQUIRED. string. See `optionsList` attr in config
#### Siren
- `state` - REQUIRED. boolean
- `tone` - optional. string. See `tonesList` attr in config
- `duration` - optional. integer. See `supportsDuration` attr in config
- `volume` - optional. integer. See `supportsVolume` attr in config
#### Switch
- `state` - REQUIRED. boolean
#### Text
- `state` - REQUIRED. string. See `minLength`, `maxLength` attrs in config## Pictures
![]()
![]()