Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
b993abc
Update index.md
isystemsautomation Sep 15, 2025
a0b1e1b
Add ESP32_Relay_X4_Modbus_v1.3 (#1234)
nagyrobi Sep 20, 2025
23b4854
add generic 2 channel wifi curtain module based on BK7231N (#806)
W-y-v-e-r-n Sep 20, 2025
586889e
Update Lanbon L9 configuration (#1227)
greyburn Sep 20, 2025
7531171
Correct name and simpifiy conf for ESP32_Relay X4 (#1238)
nagyrobi Sep 21, 2025
b2149d5
Update index.md (#1223)
pjwebster Sep 21, 2025
36e8bb3
Fix for OTA Platform for ESPHome 2025.7+ (#1226)
andrewjswan Sep 21, 2025
c20649b
Update index.md - Minor fixes (#1228)
PaulSchulz Sep 21, 2025
2dc5f1b
Add KinCony AIO (#1232)
idreamshen Sep 21, 2025
7410f7c
[Feit-DIMSMART-3-CAN] Provide additional detail in words and images. …
ChadMatsalla Sep 21, 2025
ec11003
Add Tuya Smart Weather Station (#1224)
vitoralb Sep 21, 2025
f6d1c6d
Add KinCony DM16 (#1222)
idreamshen Sep 21, 2025
e210965
Add shelly 2pm gen 4 (#1236)
DannyN2222 Sep 21, 2025
835b7ff
Add Homemaster MicroPLC (#1225)
isystemsautomation Sep 21, 2025
27ab982
Shelly 1pm gen 4 (#1237)
DannyN2222 Sep 21, 2025
0498173
Add dimensions & LVGL (#1240)
RAR Sep 27, 2025
713231d
Add ESR35xx by EttroIT (#1242)
SaschaKP Sep 27, 2025
98eb877
Update index.md
isystemsautomation Oct 7, 2025
ed0e59d
Update index.md
isystemsautomation Oct 7, 2025
0dbf406
Update index.md
isystemsautomation Oct 7, 2025
b0ae5ed
Add files via upload
isystemsautomation Oct 7, 2025
41a7a18
Update index.md
isystemsautomation Oct 7, 2025
745ecd0
Delete src/docs/devices/Homemaster-OpenthermGateway/improv_connected.png
isystemsautomation Oct 7, 2025
e274a01
Delete src/docs/devices/Homemaster-OpenthermGateway/take_control.png
isystemsautomation Oct 7, 2025
62af9df
Delete src/docs/devices/Homemaster-OpenthermGateway/improv.png
isystemsautomation Oct 7, 2025
c9f6d8d
Add files via upload
isystemsautomation Oct 7, 2025
a053a85
Update index.md
isystemsautomation Oct 7, 2025
ef8db18
Delete src/docs/devices/Homemaster-OpenthermGateway/improv_connected.png
isystemsautomation Oct 7, 2025
a8ad823
Delete src/docs/devices/Homemaster-OpenthermGateway/take_control.png
isystemsautomation Oct 7, 2025
a1e2122
Delete src/docs/devices/Homemaster-OpenthermGateway/improv.png
isystemsautomation Oct 7, 2025
87d2a9e
Add files via upload
isystemsautomation Oct 7, 2025
8fcf068
Update index.md
isystemsautomation Oct 7, 2025
eeac618
Update index.md
isystemsautomation Oct 7, 2025
f459f68
Update index.md
isystemsautomation Oct 7, 2025
108f3e8
Update index.md
isystemsautomation Oct 7, 2025
0312a86
Merge branch 'main' into Update-index.md,-Changed-Made-for-ESPHome-to…
isystemsautomation Oct 7, 2025
ae8eb12
Simplify Guition 4848s040 config, add photos (#1266)
nagyrobi Oct 10, 2025
ca16e11
Fix for issue 1201 (#1243)
SaschaKP Oct 11, 2025
a2be530
add Hama 176601 (#1244)
j-paulus Oct 11, 2025
dbca1c6
Add Hama 176598 (#1245)
j-paulus Oct 11, 2025
7af80fd
Add example for monochromatic channels (#1248)
yuksbg Oct 11, 2025
9bc7071
Add Device: LUTEC WiZ Origo (#1249)
thomashondema Oct 11, 2025
2b696d8
Wyze Bulb Color V2 (#1250)
kpelzel Oct 11, 2025
e3e6052
Wyze Bulb Color (#1251)
kpelzel Oct 11, 2025
4966f09
New device: Tuya S11 (#1254)
duhow Oct 11, 2025
419102b
New device configuration: Shelly 2 PM Gen3 (#1253)
3VAbdAVE Oct 11, 2025
e7279e2
Add Aubess Mini Smart Switch (#1256)
madistuisk Oct 11, 2025
b0b158f
Inverted the button in the Sonoff s60 listing (#1258)
mlewand Oct 11, 2025
05634c0
[FeatherS3D] Initial version (#1259)
chtitux Oct 11, 2025
32985fe
Feature/martin jerry rp fc01 (#1260)
irvintim Oct 11, 2025
450510f
Update index.md - Added a few tips (#1265)
dbrand666 Oct 11, 2025
a27419e
Add support for WaveShare ESP32-S3-POE-ETH-8DI-8DO (#1268)
anthonysecco Oct 18, 2025
17429d7
UM FeatherS3[D]: add advanced config (#1272)
chtitux Oct 18, 2025
f3a2222
Update index.md (#1274)
ldelvalleh Oct 18, 2025
be13a67
Yozisital Surge Protector (#1270)
netman74501 Oct 18, 2025
a8181af
Fix ESPhome -> ESPHome (#1278)
jesserockz Oct 22, 2025
b5f28c9
[ImgBot] Optimize images (#1269)
imgbot[bot] Oct 22, 2025
dd8a1ab
Lint (#1279)
jesserockz Oct 22, 2025
75c53c4
Move to Docusaurus (#1291)
tekmaven Oct 25, 2025
9b4cd4a
Add documentation for Tinxy 1 Node 16A Relay (#1290)
Dr-Blank Oct 25, 2025
705f056
Update index.md (#1276)
ThomDietrich Oct 25, 2025
e22b223
Add Waveshare-ESP32-S3-Touch-AMOLED-1.75 (#1) (#1286)
TheBassEngineer Oct 25, 2025
56e2a7a
Add KinCony N10 (#1280)
idreamshen Oct 25, 2025
1f543e7
feat: add kincony n20 (#1281)
idreamshen Oct 25, 2025
fb79bd6
feat: add kincony n30 (#1282)
idreamshen Oct 25, 2025
8518c08
Enhance M5Tab battery monitoring configuration (#1283)
lboue Oct 25, 2025
43c9442
Speeling error (#1239)
ChadMatsalla Oct 25, 2025
2ccb892
Add documentation for HomeMate 4 Gang Touch Switch (#1277)
Dr-Blank Oct 26, 2025
fbde9cb
Add image (#1287)
ldelvalleh Oct 26, 2025
191f975
Remove parentheses in device folders, add redirect rules for those de…
tekmaven Oct 26, 2025
916546e
Add ESP32 board configuration to example (#1275)
janick Oct 26, 2025
03c063d
Add documentation for TESLA Smart Switch Dimmer Touch (#1293)
d0tkom Oct 26, 2025
ad8efce
Merge branch 'main' into Update-index.md,-Changed-Made-for-ESPHome-to…
isystemsautomation Oct 28, 2025
141745a
Update index.md
isystemsautomation Oct 28, 2025
83d0c87
Update index.md
isystemsautomation Oct 28, 2025
965651e
Update index.md
isystemsautomation Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
12 changes: 12 additions & 0 deletions .cursor/rules/docusaurus-app-rules.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
description: Docusaurus App
alwaysApply: true
---

# Docusaurus App

- This is a Docusaurus react app, written in Typescript using pnpm package manager.
- Try to reuse existing state instead of creating new state
- Check for existing components before suggesting new ones
- Ensure react code is performance optimized: Use useMemo, useCallback, and React.memo where needed.
- Ensure minimal re-renders: Suggest best state management practices, as much as possible stay away from external libraries. Let's prioritize React's native state management capabilities.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: markdownlint-cli
uses: nosborn/github-action-markdown-cli@v1.1.1
uses: nosborn/github-action-markdown-cli@508d6cefd8f0cc99eab5d2d4685b1d5f470042c1 # v3.5.0
with:
config_file: ".markdownlintrc"
files: .
files: src
yaml_lint:
name: YAML Lint
runs-on: ubuntu-latest
Expand Down
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,17 @@ yarn-error.log
.pnp.js
# Yarn Integrity file
.yarn-integrity

# Production
/build

# Generated files
.docusaurus
.cache-loader

.env.local
.env.development.local
.env.test.local
.env.production.local

src/data/device-metadata.json
15 changes: 12 additions & 3 deletions .markdownlintrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
{
"MD013": false,
"MD034": false,
"MD033": { "allowed_elements": ["details", "summary"] }
"MD013": {
"line_length": 120,
"code_blocks": false,
"tables": false,
"headings": false
},
"MD033": {
"allowed_elements": [
"details",
"summary"
]
}
}
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,22 @@ Go to <https://devices.esphome.io> to view the website.

## How To Contribute

Content on devices.esphome.io is generated by [Gatsby](https://www.gatsbyjs.com/). Pages are written in Markdown which anyone can learn. How to add a new device is [documented here](https://devices.esphome.io/adding-devices).
Content on devices.esphome.io is generated by [Docusaurus](https://docusaurus.io/). Pages are written in Markdown which anyone can learn. How to add a new device is [documented here](https://devices.esphome.io/adding-devices).

When you create a merge request, Netlify will automatically compile your proposed changes for you to preview what gets rendered. It puts a comment in the PR on Github.

## Development of site

The site requires Node 18 to build. Once that is running, to build locally:
The site requires Node 20 and pnpm to build. Once that is running, to build locally:

```bash
# Now install gatsby as configured in the esphome-devices repository:
npm install
# Run a development gatsby server so you can see your copy of the site:
npm run start
# Open a browser to http://localhost:8000/
# Now install Docusaurus as configured in the esphome-devices repository:
pnpm install
# Run a development Docusaurus server so you can see your copy of the site:
pnpm start
# A browser will open to http://localhost:3000/
```

You can learn more about [Gatsby develop mode here](https://www.gatsbyjs.com/docs/reference/gatsby-cli#develop).

## Code of Conduct

When contributing to this project please abide by our [Code of Conduct](CODE-OF-CONDUCT.md)
Expand Down
132 changes: 132 additions & 0 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
import { themes as prismThemes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";

// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)

const config: Config = {
title: "ESPHome Devices",
tagline:
"This website is a repository of device configuration templates and setup guides for devices running ESPHome firmware.",
favicon: "img/favicon.png",

// Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future
future: {
v4: true, // Improve compatibility with the upcoming Docusaurus v4
},

// Set the production url of your site here
url: "https://devices.esphome.io",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",

// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "esphome", // Usually your GitHub org/user name.
projectName: "esphome-devices", // Usually your repo name.

onBrokenLinks: "throw",

// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
},

presets: [
[
"classic",
{
docs: {
sidebarPath: "./sidebars.ts",
routeBasePath: "/devices",
path: "src/docs/devices",

// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
"https://github.com/esphome/esphome-devices/tree/main/",
},
blog: false,
theme: {
customCss: "./src/css/custom.css",
},
} satisfies Preset.Options,
],
],

themes: [
["@getcanary/docusaurus-theme-search-pagefind",
{
styles: {
"--canary-color-primary-c": 0.15,
"--canary-color-primary-h": 150,
},
includeRoutes: ["/devices/**/*"]
}
]
],

markdown: {
hooks: {
onBrokenMarkdownImages: "throw",
},
},

themeConfig: {
// Replace with your project's social card
image: "img/social-card.svg",
colorMode: {
respectPrefersColorScheme: true,
},
navbar: {
title: "ESPHome Devices",
logo: {
alt: "ESPHome Devices Logo",
src: "img/logo.svg",
},
items: [],
},
footer: {
style: "dark",
links: [],
copyright: `Built by the ESPHome community.`,
},
prism: {
theme: prismThemes.oneLight,
darkTheme: prismThemes.oneDark,
},
plugins: [
[
"@docusaurus/plugin-ideal-image",
{
quality: 70,
max: 1030, // max resized image's size.
min: 640, // min resized image's size. if original is lower, use that size.
steps: 2, // the max number of images generated between min and max (inclusive)
disableInDev: true,
},
],
[
"@docusaurus/plugin-sitemap",
{
lastmod: null,
changefreq: "weekly",
priority: 0.5,
// ignorePatterns: ["/tags/**"],
filename: "sitemap.xml",
// createSitemapItems: async (params) => {
// const { defaultCreateSitemapItems, ...rest } = params;
// const items = await defaultCreateSitemapItems(rest);
// return items.filter((item) => !item.url.includes("/page/"));
// },
},
],
],
} satisfies Preset.ThemeConfig,
};

export default config;
80 changes: 0 additions & 80 deletions gatsby-config.js

This file was deleted.

3 changes: 3 additions & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build]
command = "pnpm build"
publish = "build"
Loading