diff --git a/.github/workflows/pio-publish.yaml b/.github/workflows/pio-publish.yaml
new file mode 100644
index 00000000..8966ab60
--- /dev/null
+++ b/.github/workflows/pio-publish.yaml
@@ -0,0 +1,30 @@
+name: Publish to PlatformIO
+
+on:
+  workflow_dispatch:
+
+jobs:
+  publish:
+    runs-on: ubuntu-latest
+
+    defaults:
+      run:
+        working-directory: .
+
+    steps:
+      - uses: actions/checkout@v3
+      - uses: actions/cache@v3
+        with:
+          path: |
+            ~/.cache/pip
+            ~/.platformio/.cache
+          key: ${{ runner.os }}-pio
+      - uses: actions/setup-python@v4
+        with:
+          python-version: "3.9"
+      - name: Install PlatformIO Core
+        run: pip install --upgrade platformio
+      - name: Publish
+        env:
+          PLATFORMIO_AUTH_TOKEN: ${{ secrets.PLATFORMIO_PAT }}
+        run: pio pkg publish --owner sinricpro --no-interactive