{"id":14963417,"url":"https://github.com/twocolors/node-red-contrib-esphome","last_synced_at":"2026-02-24T07:27:04.734Z","repository":{"id":65231747,"uuid":"587137289","full_name":"twocolors/node-red-contrib-esphome","owner":"twocolors","description":"Node-RED nodes to ESPhome devices","archived":false,"fork":false,"pushed_at":"2025-05-05T06:51:44.000Z","size":389,"stargazers_count":28,"open_issues_count":10,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-05T07:41:06.525Z","etag":null,"topics":["diy","esphome","iot","node-red","nodejs"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twocolors.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-10T03:25:45.000Z","updated_at":"2025-05-05T06:51:41.000Z","dependencies_parsed_at":"2024-02-26T09:26:57.246Z","dependency_job_id":"7f2376fc-f43d-46e5-9ed2-81fa5cdd0160","html_url":"https://github.com/twocolors/node-red-contrib-esphome","commit_stats":{"total_commits":76,"total_committers":4,"mean_commits":19.0,"dds":0.3421052631578947,"last_synced_commit":"17aabcc787b15b267ac1703e00a3b69cdf647f61"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twocolors%2Fnode-red-contrib-esphome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twocolors%2Fnode-red-contrib-esphome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twocolors%2Fnode-red-contrib-esphome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twocolors%2Fnode-red-contrib-esphome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twocolors","download_url":"https://codeload.github.com/twocolors/node-red-contrib-esphome/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253166502,"owners_count":21864475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diy","esphome","iot","node-red","nodejs"],"created_at":"2024-09-24T13:31:28.712Z","updated_at":"2025-12-05T10:04:45.468Z","avatar_url":"https://github.com/twocolors.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-red-contrib-esphome\n\n[![platform](https://img.shields.io/badge/platform-Node--RED-red?logo=nodered)](https://flows.nodered.org/node/node-red-contrib-esphome)\n[![Min Node Version](https://img.shields.io/node/v/node-red-contrib-esphome.svg)](https://nodejs.org/en/)\n[![GitHub version](https://img.shields.io/github/package-json/v/twocolors/node-red-contrib-esphome?logo=npm)](https://www.npmjs.com/package/node-red-contrib-esphome)\n[![GitHub stars](https://img.shields.io/github/stars/twocolors/node-red-contrib-esphome)](https://github.com/twocolors/node-red-contrib-esphome/stargazers)\n[![Package Quality](https://packagequality.com/shield/node-red-contrib-esphome.svg)](https://packagequality.com/#?package=node-red-contrib-esphome)\n\n[![issues](https://img.shields.io/github/issues/twocolors/node-red-contrib-esphome?logo=github)](https://github.com/twocolors/node-red-contrib-esphome/issues)\n![GitHub last commit](https://img.shields.io/github/last-commit/twocolors/node-red-contrib-esphome)\n![NPM Total Downloads](https://img.shields.io/npm/dt/node-red-contrib-esphome.svg)\n![NPM Downloads per month](https://img.shields.io/npm/dm/node-red-contrib-esphome)\n![Repo size](https://img.shields.io/github/repo-size/twocolors/node-red-contrib-esphome)\n\n## About\n\n### !!! Alpha, Alpha, Alpha release\n### !!! Need help writing documentation\n\nNode-RED nodes to ESPhome devices\n\n## Prerequisites\nYour ESPHome device must be configured with the ESPHome API enabled.\n\nIn your device.yaml configuration file:\n\n```yaml\n# Example configuration entry\napi:\n```\n\nSee [ESPHome documentation on api configuration](https://esphome.io/components/api.html) for more information.\n\n## Installation\n\n```bash\n$ npm i node-red-contrib-esphome\n```\n\n## Inputs\n\nInputs 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.\n\nSome example message payloads are:\n\n```js\n// to set a light on:\nmsg.payload = {'state': true}\n\n// set a door lock to unlock:\nmsg.payload = {'command':0}\n\n// to toggle a light to 42% brightness:\nmsg.payload = {'brightness': 42}\n\n// to press a button:\nmsg.payload = true\n```\n\n\n#### Button\n\nButton 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.\n\n#### Climate\n  - `mode` - optional. 0 - OFF, 1 - AUTO, 2 - COOL, 3 - HEAT, 4 - FAN_ONLY, 5 - DRY.  See `supportedModesList` attr in config\n  - `targetTemperature`- optional. float\n  - `targetTemperatureLow`- optional. float\n  - `targetTemperatureHigh`- optional. float\n  - `legacyAway` - optional. Boolean. Deprecated: use `preset` with AWAY\n  - `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\n  - `swingMode` - optional. 0 - OFF, 1 - BOTH, 2 - VERTICAL, 3 - HORIZONTAL. See `supportedSwingModesList` attr in config\n  - `customFanMode` - optional. string. See `supportedCustomFanModesList` attr in config\n  - `preset` - optional. 0 - NONE, 1 - HOME, 2 - AWAY, 3 - BOOST, 4 - COMFORT, 5 - ECO, 6 - SLEEP, 7 - ACTIVITY. See `supportedPresetsList` attr in config\n  - `customPreset` - optional. string. See `supportedCustomPresetsList` attr in config\n#### Cover\n  - `legacyCommand` - optional. 0 - OPEN, 1 - CLOSE, 2 - STOP. Deprecated: use `position`\n  - `position` - optional. float. 0.0 - CLOSED, 1.0 - OPEN. See `supportsPosition` attr in config\n  - `tilt` - optional. float. 0.0 - CLOSED, 1.0 - OPEN. See `supportsTilt` attr in config\n  - `stop` - optional. boolean\n#### Fan\n  - `state` - optional. boolean\n  - `speed` - optional. 0 - LOW, 1 - MEDIUM, 2 - HIGH\n  - `oscillating` - optional. boolean\n  - `direction` - optional. 0 - FORWARD, 1 - REVERSE\n  - `speedLevel` - optional. integer. See `supportedSpeedLevels` attr in config\n#### Light\n  - `state` - optional. boolean\n  - `brightness` - optional. float\n  - `red` - optional. integer 0-255\n  - `green` - optional. integer 0-255\n  - `blue` - optional. integer 0-255\n  - `colorMode` - optional. integer. See `supportedColorModesList` attr in config\n  - `colorBrightness` - optional. float\n  - `white` - optional. integer 0-255\n  - `colorTemperature` - optional. integer\n  - `coldWhite` - optional. float\n  - `warmWhite` - optional. float\n  - `flashLength` - optional. integer\n  - `effect` - optional. string. effect from effects array in config list\n#### Lock\n  - `command` - REQUIRED. 0 - UNLOCK, 1 - LOCK, 2 - OPEN\n  - `code` - optional. string. See `requiresCode` attr in config\n#### MediaPlayer\n  - `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\n  - `volume` - optional. float\n  - `mediaUrl` - optional. string\n#### Number\n  - `state` - REQUIRED. float. See `minValue`, `maxValue`, and `step` attrs in config\n#### Select\n  - `state` - REQUIRED. string. See `optionsList` attr in config\n#### Siren\n  - `state` - REQUIRED. boolean\n  - `tone` - optional. string. See `tonesList` attr in config\n  - `duration` - optional. integer. See `supportsDuration` attr in config\n  - `volume` - optional. integer. See `supportsVolume` attr in config\n#### Switch\n  - `state` - REQUIRED. boolean\n#### Text\n  - `state` - REQUIRED. string. See `minLength`, `maxLength` attrs in config\n\n## Pictures\n\n\u003cimg src=\"https://github.com/twocolors/node-red-contrib-esphome/raw/main/readme/device.png\"\u003e\n\u003cimg src=\"https://github.com/twocolors/node-red-contrib-esphome/raw/main/readme/flow.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwocolors%2Fnode-red-contrib-esphome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwocolors%2Fnode-red-contrib-esphome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwocolors%2Fnode-red-contrib-esphome/lists"}