Compare commits
3 Commits
1a67a01928
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80debaf968 | ||
|
|
dc8cbf127c | ||
|
|
0f51041a04 |
@@ -7,7 +7,7 @@
|
|||||||
## HOSTS & HARDWARE
|
## HOSTS & HARDWARE
|
||||||
|
|
||||||
### VPS
|
### VPS
|
||||||
- **Primary:** 66.63.182.168 (vps.nianticbooks.com) | 2vCPU/4GB | Caddy, WireGuard, RustDesk relay
|
- **Primary:** 51.222.12.162 (vps.nianticbooks.com) | 2vCPU/4GB | Caddy, WireGuard, RustDesk (ID+Relay)
|
||||||
- **Gaming:** 51.222.12.162 (deadeyeg4ming.vip) | WireGuard VPN (10.0.9.1)
|
- **Gaming:** 51.222.12.162 (deadeyeg4ming.vip) | WireGuard VPN (10.0.9.1)
|
||||||
|
|
||||||
### Proxmox
|
### Proxmox
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
| 10.0.10.20 | PostgreSQL | 102 | 5432 | Shared DB (n8n, rustdesk, grafana, authentik) |
|
| 10.0.10.20 | PostgreSQL | 102 | 5432 | Shared DB (n8n, rustdesk, grafana, authentik) |
|
||||||
| 10.0.10.21 | Authentik | 121 | 9000 | SSO (admin: akadmin), OAuth2/OIDC |
|
| 10.0.10.21 | Authentik | 121 | 9000 | SSO (admin: akadmin), OAuth2/OIDC |
|
||||||
| 10.0.10.22 | n8n | 106 | 5678 | Workflow automation |
|
| 10.0.10.22 | n8n | 106 | 5678 | Workflow automation |
|
||||||
| 10.0.10.23 | RustDesk | 123 | 21115-18 | ID server, pubkey: sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0= |
|
| 51.222.12.162 | RustDesk | VPS | 21116-17 | ID+Relay, pubkey: EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk= |
|
||||||
| 10.0.10.25 | Prometheus/Grafana | 125 | 9090/3000 | Monitoring |
|
| 10.0.10.25 | Prometheus/Grafana | 125 | 9090/3000 | Monitoring |
|
||||||
| 10.0.10.26 | Uptime Kuma | 128 | 3001 | Status monitoring |
|
| 10.0.10.26 | Uptime Kuma | 128 | 3001 | Status monitoring |
|
||||||
|
|
||||||
@@ -91,9 +91,10 @@ ssh root@10.0.10.4 # pve-storage
|
|||||||
- ACME: `https://10.0.10.15:8443/acme/acme/directory`
|
- ACME: `https://10.0.10.15:8443/acme/acme/directory`
|
||||||
- Provisioners: JWK (admin@nianticbooks.home), ACME
|
- Provisioners: JWK (admin@nianticbooks.home), ACME
|
||||||
|
|
||||||
### RustDesk (10.0.10.23)
|
### RustDesk (51.222.12.162 / vps.nianticbooks.com)
|
||||||
- Public endpoint: 66.63.182.168:21117 (relay)
|
- ID Server: 51.222.12.162:21116
|
||||||
- Pubkey: `sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0=`
|
- Relay Server: 51.222.12.162:21117
|
||||||
|
- Pubkey: `EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk=`
|
||||||
|
|
||||||
### Home Assistant (10.0.10.24:8123)
|
### Home Assistant (10.0.10.24:8123)
|
||||||
- Never commit secrets.yaml | Use secrets.yaml.example template
|
- Never commit secrets.yaml | Use secrets.yaml.example template
|
||||||
|
|||||||
85
infrastructure/FOR-CLAUDE-CODE.md
Normal file
85
infrastructure/FOR-CLAUDE-CODE.md
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
# For Claude Code - Infrastructure Documentation
|
||||||
|
|
||||||
|
👋 **Hey Claude Code!**
|
||||||
|
|
||||||
|
This repo is the **single source of truth** for Fred's homelab infrastructure. Both you and Funky (OpenClaw agent) share this documentation to stay in sync.
|
||||||
|
|
||||||
|
## 📍 You Are Here
|
||||||
|
|
||||||
|
**Repo:** http://10.0.10.2:3000/fred/homelab-docs
|
||||||
|
**Local:** `/root/.openclaw/workspace/fred-infrastructure/`
|
||||||
|
**Branch:** `main`
|
||||||
|
|
||||||
|
## 🎯 How to Use This
|
||||||
|
|
||||||
|
### When You Need Infrastructure Info
|
||||||
|
|
||||||
|
Check these files first:
|
||||||
|
- **SERVICES.md** - All services, IPs, ports, access details
|
||||||
|
- **IP-ALLOCATION.md** - Network map and IP assignments
|
||||||
|
- **AGENT-REFERENCE.md** - Quick reference formatted for AI agents
|
||||||
|
- **RUNBOOK.md** - Common procedures and troubleshooting
|
||||||
|
|
||||||
|
### When You Discover New Info
|
||||||
|
|
||||||
|
**DO:** Update the relevant `.md` files with new discoveries
|
||||||
|
**DO:** Commit and push changes to Gitea
|
||||||
|
**DO:** Keep Fred's `/root/.openclaw/workspace/TOOLS.md` in sync with critical info
|
||||||
|
**DON'T:** Create duplicate documentation elsewhere
|
||||||
|
|
||||||
|
### Conflict Resolution
|
||||||
|
|
||||||
|
If you and Funky have conflicting information:
|
||||||
|
1. **Document both versions** in the file with a note
|
||||||
|
2. **Tag Fred** to investigate and decide the truth
|
||||||
|
3. **Update once resolved** with a commit noting what was clarified
|
||||||
|
|
||||||
|
## 🔄 Git Workflow
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Pull latest before making changes
|
||||||
|
cd /root/.openclaw/workspace/fred-infrastructure
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# Make your changes, then:
|
||||||
|
git add .
|
||||||
|
git commit -m "Your descriptive commit message"
|
||||||
|
git push origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
**Git credentials are already configured** - just commit and push!
|
||||||
|
|
||||||
|
## 📝 Documentation Standards
|
||||||
|
|
||||||
|
- **Be specific:** Include IPs, ports, container IDs, versions
|
||||||
|
- **Be current:** Update when you discover changes
|
||||||
|
- **Be helpful:** Think "what would another AI agent need to know?"
|
||||||
|
- **Use markdown:** Keep formatting clean and readable
|
||||||
|
|
||||||
|
## 🤝 Working With Funky
|
||||||
|
|
||||||
|
Funky monitors this repo and reads the same files you do. When you update infrastructure docs, Funky will see the changes on their next heartbeat or session start.
|
||||||
|
|
||||||
|
**Funky's main session context includes:**
|
||||||
|
- `TOOLS.md` (quick reference, points here)
|
||||||
|
- Memory files in `/root/.openclaw/workspace/memory/`
|
||||||
|
- This infrastructure repo
|
||||||
|
|
||||||
|
## 🚨 Critical Services (Handle With Care)
|
||||||
|
|
||||||
|
These services are production-critical for Fred:
|
||||||
|
- **OpenClaw Gateway** (10.0.10.28) - That's Funky's home!
|
||||||
|
- **Home Assistant** (10.0.10.24) - Smart home automation
|
||||||
|
- **n8n** (10.0.10.22) - Workflow automation & alerts
|
||||||
|
- **Uptime Kuma** (10.0.10.26) - Service monitoring
|
||||||
|
- **Proxmox Hosts** (10.0.10.3, 10.0.10.2) - Hypervisors
|
||||||
|
|
||||||
|
**Before making changes to these:** Confirm with Fred first.
|
||||||
|
|
||||||
|
## 📞 Need Help?
|
||||||
|
|
||||||
|
Ask Fred! He'll clarify conflicts, provide missing details, or guide architectural decisions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember:** We're a team. You, Funky, and Fred. Good documentation helps all of us work together smoothly. ✨
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
| 10.0.10.20 | postgresql | PostgreSQL (Shared DB) | main-pve | CT 102 | Active |
|
| 10.0.10.20 | postgresql | PostgreSQL (Shared DB) | main-pve | CT 102 | Active |
|
||||||
| 10.0.10.21 | authentik | Authentik SSO | main-pve | CT 121 | Active |
|
| 10.0.10.21 | authentik | Authentik SSO | main-pve | CT 121 | Active |
|
||||||
| 10.0.10.22 | n8n | n8n Workflow Automation | main-pve | CT 106 | Active |
|
| 10.0.10.22 | n8n | n8n Workflow Automation | main-pve | CT 106 | Active |
|
||||||
| 10.0.10.23 | rustdesk | RustDesk ID Server (hbbs) | main-pve | CT 123 | Active |
|
| 10.0.10.23 | rustdesk | RustDesk ID Server (DEPRECATED - moved to VPS) | main-pve | CT 123 | Inactive |
|
||||||
| 10.0.10.24 | homeassistant | Home Assistant OS | pve-router | VM 104 | Active |
|
| 10.0.10.24 | homeassistant | Home Assistant OS | pve-router | VM 104 | Active |
|
||||||
| 10.0.10.25 | prometheus | Prometheus + Grafana | main-pve | CT 125 | Active |
|
| 10.0.10.25 | prometheus | Prometheus + Grafana | main-pve | CT 125 | Active |
|
||||||
| 10.0.10.26 | uptime-kuma | Uptime Kuma Monitoring | main-pve | CT 128 | Active |
|
| 10.0.10.26 | uptime-kuma | Uptime Kuma Monitoring | main-pve | CT 128 | Active |
|
||||||
@@ -221,7 +221,7 @@ These devices receive dynamic IPs from UCG Ultra DHCP. Some have DHCP reservatio
|
|||||||
| 107 | pterodactyl-wings | 10.0.10.46 |
|
| 107 | pterodactyl-wings | 10.0.10.46 |
|
||||||
| 115 | ca-server | 10.0.10.15 |
|
| 115 | ca-server | 10.0.10.15 |
|
||||||
| 121 | authentik | 10.0.10.21 |
|
| 121 | authentik | 10.0.10.21 |
|
||||||
| 123 | rustdesk | 10.0.10.23 |
|
| 123 | rustdesk | 10.0.10.23 | DEPRECATED - RustDesk now on VPS (51.222.12.162) |
|
||||||
| 125 | prometheus | 10.0.10.25 |
|
| 125 | prometheus | 10.0.10.25 |
|
||||||
| 127 | dockge | 10.0.10.27 |
|
| 127 | dockge | 10.0.10.27 |
|
||||||
| 128 | uptime-kuma | 10.0.10.26 |
|
| 128 | uptime-kuma | 10.0.10.26 |
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ This document provides detailed information about all services running in the in
|
|||||||
| Calibre-Web | Home Lab | 10.0.10.27 | Media | ✅ Running | No |
|
| Calibre-Web | Home Lab | 10.0.10.27 | Media | ✅ Running | No |
|
||||||
| Caddy Internal Proxy | Home Lab | 10.0.10.27 | Proxy | ✅ Running | No |
|
| Caddy Internal Proxy | Home Lab | 10.0.10.27 | Proxy | ✅ Running | No |
|
||||||
| Vehicle Tracker | Home Lab | 10.0.10.35 | Web App | 🔄 In Development | No |
|
| Vehicle Tracker | Home Lab | 10.0.10.35 | Web App | 🔄 In Development | No |
|
||||||
| RustDesk ID Server | Home Lab | 10.0.10.23 | Remote Desktop | ✅ Running | No |
|
| RustDesk ID Server | VPS | 51.222.12.162 | Remote Desktop | ✅ Running | No |
|
||||||
| RustDesk Relay | VPS | 66.63.182.168 | Remote Desktop | ✅ Running | No |
|
| RustDesk Relay | VPS | 51.222.12.162 | Remote Desktop | ✅ Running | No |
|
||||||
| OpenClaw Gateway | Home Lab | 10.0.10.28 | AI Agent | ✅ Running | No |
|
| OpenClaw Gateway | Home Lab | 10.0.10.28 | AI Agent | ✅ Running | No |
|
||||||
| AD5M 3D Printer | Home Lab | 10.0.10.30 | IoT | ✅ Running | No |
|
| AD5M 3D Printer | Home Lab | 10.0.10.30 | IoT | ✅ Running | No |
|
||||||
| WireGuard VPN | Gaming VPS | 51.222.12.162 | Tunnel | ✅ Running | Yes |
|
| WireGuard VPN | Gaming VPS | 51.222.12.162 | Tunnel | ✅ Running | Yes |
|
||||||
@@ -737,30 +737,25 @@ See `CA-DEPLOYMENT-SUMMARY.md` for client certificate installation instructions.
|
|||||||
**Purpose**: Secure remote desktop access with self-hosted infrastructure
|
**Purpose**: Secure remote desktop access with self-hosted infrastructure
|
||||||
|
|
||||||
**Service Details**:
|
**Service Details**:
|
||||||
- **ID Server (hbbs)**: LXC 123 on main-pve
|
- **ID Server (hbbs)**: VPS (51.222.12.162 / vps.nianticbooks.com)
|
||||||
- **IP**: 10.0.10.23
|
- **Port**: 21116 (ID/Rendezvous)
|
||||||
- **Version**: 1.1.14
|
- **Relay Server (hbbr)**: VPS (51.222.12.162 / vps.nianticbooks.com)
|
||||||
- **Ports**: 21115 (NAT test), 21116 (ID/Rendezvous), 21118 (TCP punch)
|
|
||||||
- **Relay Server (hbbr)**: VPS (66.63.182.168)
|
|
||||||
- **Version**: 1.1.14
|
|
||||||
- **Port**: 21117 (Relay service)
|
- **Port**: 21117 (Relay service)
|
||||||
- **Public Key**: `sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0=`
|
- **Public Key**: `EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk=`
|
||||||
|
|
||||||
**Architecture**:
|
**Architecture**:
|
||||||
```
|
```
|
||||||
Internet → VPS Relay (hbbr)
|
Internet → VPS (51.222.12.162)
|
||||||
↓
|
↓
|
||||||
WireGuard Tunnel
|
RustDesk ID Server (hbbs) + Relay (hbbr)
|
||||||
↓
|
|
||||||
Home Lab ID Server (hbbs)
|
|
||||||
↓
|
↓
|
||||||
RustDesk Clients (P2P when possible)
|
RustDesk Clients (P2P when possible)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Client Configuration**:
|
**Client Configuration**:
|
||||||
- **ID Server**: `66.63.182.168`
|
- **ID Server**: `51.222.12.162`
|
||||||
- **Relay Server**: `66.63.182.168` (auto-configured)
|
- **Relay Server**: `51.222.12.162`
|
||||||
- **Key**: `sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0=`
|
- **Key**: `EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk=`
|
||||||
|
|
||||||
**Startup**:
|
**Startup**:
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
188
infrastructure/home-assistant/3d-printer-dashboard.yaml
Normal file
188
infrastructure/home-assistant/3d-printer-dashboard.yaml
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
title: 3D Printers
|
||||||
|
icon: mdi:printer-3d
|
||||||
|
path: 3d-printers
|
||||||
|
type: panel
|
||||||
|
cards:
|
||||||
|
- type: horizontal-stack
|
||||||
|
cards:
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────
|
||||||
|
# AD5M / ForgeX (Moonraker / Klipper)
|
||||||
|
# ⚠️ Connect Moonraker integration first:
|
||||||
|
# Settings → Devices → Add Integration → Moonraker
|
||||||
|
# Host: 10.0.10.30 Port: 7125
|
||||||
|
# Then verify entity IDs below match what HA reports
|
||||||
|
# ─────────────────────────────────────────
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: custom:mushroom-title-card
|
||||||
|
title: "🔧 AD5M (ForgeX)"
|
||||||
|
subtitle: Klipper / Moonraker
|
||||||
|
|
||||||
|
- type: picture-glance
|
||||||
|
title: ForgeX Webcam
|
||||||
|
camera_image: camera.ad5m_camera
|
||||||
|
entities: []
|
||||||
|
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: sensor.ad5m_print_status
|
||||||
|
name: Status
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
fill_container: false
|
||||||
|
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: "{{ states('sensor.ad5m_filename') | default('Idle') }}"
|
||||||
|
secondary: >
|
||||||
|
Layer {{ states('sensor.ad5m_current_layer') }} /
|
||||||
|
{{ states('sensor.ad5m_total_layer') }}
|
||||||
|
icon: mdi:file-cog
|
||||||
|
entity: sensor.ad5m_filename
|
||||||
|
|
||||||
|
- type: gauge
|
||||||
|
entity: sensor.ad5m_progress
|
||||||
|
name: Progress
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
severity:
|
||||||
|
green: 75
|
||||||
|
yellow: 40
|
||||||
|
red: 0
|
||||||
|
|
||||||
|
- type: glance
|
||||||
|
title: Temperatures
|
||||||
|
entities:
|
||||||
|
- entity: sensor.ad5m_nozzle_temperature
|
||||||
|
name: Nozzle
|
||||||
|
- entity: sensor.ad5m_nozzle_target_temperature
|
||||||
|
name: Nozzle Target
|
||||||
|
- entity: sensor.ad5m_bed_temperature
|
||||||
|
name: Bed
|
||||||
|
- entity: sensor.ad5m_bed_target_temperature
|
||||||
|
name: Bed Target
|
||||||
|
|
||||||
|
- type: history-graph
|
||||||
|
title: Temp History (4hr)
|
||||||
|
hours_to_show: 4
|
||||||
|
entities:
|
||||||
|
- entity: sensor.ad5m_nozzle_temperature
|
||||||
|
name: Nozzle
|
||||||
|
- entity: sensor.ad5m_bed_temperature
|
||||||
|
name: Bed
|
||||||
|
|
||||||
|
- type: glance
|
||||||
|
title: Job Info
|
||||||
|
entities:
|
||||||
|
- entity: sensor.ad5m_print_duration
|
||||||
|
name: Duration
|
||||||
|
- entity: sensor.ad5m_eta
|
||||||
|
name: ETA
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────
|
||||||
|
# Bambu Lab A1 (fully integrated ✅)
|
||||||
|
# ─────────────────────────────────────────
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: custom:mushroom-title-card
|
||||||
|
title: "🐼 Bambu A1"
|
||||||
|
subtitle: Bambu Lab Integration
|
||||||
|
|
||||||
|
- type: picture-glance
|
||||||
|
title: A1 Webcam
|
||||||
|
camera_image: camera.a1_03919d522604085_camera
|
||||||
|
entities: []
|
||||||
|
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: sensor.a1_03919d522604085_print_status
|
||||||
|
name: Status
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: "{{ states('sensor.a1_03919d522604085_task_name') | default('Idle') }}"
|
||||||
|
secondary: >
|
||||||
|
Layer {{ states('sensor.a1_03919d522604085_current_layer') }} /
|
||||||
|
{{ states('sensor.a1_03919d522604085_total_layer_count') }}
|
||||||
|
• {{ states('sensor.a1_03919d522604085_current_stage') }}
|
||||||
|
icon: mdi:file-cog
|
||||||
|
entity: sensor.a1_03919d522604085_task_name
|
||||||
|
|
||||||
|
- type: gauge
|
||||||
|
entity: sensor.a1_03919d522604085_print_progress
|
||||||
|
name: Progress
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
severity:
|
||||||
|
green: 75
|
||||||
|
yellow: 40
|
||||||
|
red: 0
|
||||||
|
|
||||||
|
- type: glance
|
||||||
|
title: Temperatures
|
||||||
|
entities:
|
||||||
|
- entity: sensor.a1_03919d522604085_nozzle_temperature
|
||||||
|
name: Nozzle
|
||||||
|
- entity: sensor.a1_03919d522604085_nozzle_target_temperature
|
||||||
|
name: Nozzle Target
|
||||||
|
- entity: sensor.a1_03919d522604085_bed_temperature
|
||||||
|
name: Bed
|
||||||
|
- entity: sensor.a1_03919d522604085_bed_target_temperature
|
||||||
|
name: Bed Target
|
||||||
|
|
||||||
|
- type: history-graph
|
||||||
|
title: Temp History (4hr)
|
||||||
|
hours_to_show: 4
|
||||||
|
entities:
|
||||||
|
- entity: sensor.a1_03919d522604085_nozzle_temperature
|
||||||
|
name: Nozzle
|
||||||
|
- entity: sensor.a1_03919d522604085_bed_temperature
|
||||||
|
name: Bed
|
||||||
|
|
||||||
|
- type: glance
|
||||||
|
title: Job Info
|
||||||
|
entities:
|
||||||
|
- entity: sensor.a1_03919d522604085_remaining_time
|
||||||
|
name: Remaining
|
||||||
|
- entity: sensor.a1_03919d522604085_speed_profile
|
||||||
|
name: Speed
|
||||||
|
|
||||||
|
- type: entities
|
||||||
|
title: Controls
|
||||||
|
entities:
|
||||||
|
- entity: light.a1_03919d522604085_chamber_light
|
||||||
|
name: Chamber Light
|
||||||
|
- type: button
|
||||||
|
entity: button.a1_03919d522604085_pause_printing
|
||||||
|
name: Pause
|
||||||
|
icon: mdi:pause
|
||||||
|
action_name: Pause
|
||||||
|
- type: button
|
||||||
|
entity: button.a1_03919d522604085_resume_printing
|
||||||
|
name: Resume
|
||||||
|
icon: mdi:play
|
||||||
|
action_name: Resume
|
||||||
|
- type: button
|
||||||
|
entity: button.a1_03919d522604085_stop_printing
|
||||||
|
name: Stop
|
||||||
|
icon: mdi:stop
|
||||||
|
action_name: Stop
|
||||||
|
|
||||||
|
- type: entities
|
||||||
|
title: AMS Filament Trays
|
||||||
|
entities:
|
||||||
|
- entity: sensor.a1_03919d522604085_active_tray
|
||||||
|
name: Active Tray
|
||||||
|
- entity: sensor.a1_03919d522604085_ams_1_tray_1
|
||||||
|
name: Tray 1
|
||||||
|
- entity: sensor.a1_03919d522604085_ams_1_tray_2
|
||||||
|
name: Tray 2
|
||||||
|
- entity: sensor.a1_03919d522604085_ams_1_tray_3
|
||||||
|
name: Tray 3
|
||||||
|
- entity: sensor.a1_03919d522604085_ams_1_tray_4
|
||||||
|
name: Tray 4
|
||||||
|
|
||||||
|
- type: glance
|
||||||
|
title: AMS Environment
|
||||||
|
entities:
|
||||||
|
- entity: sensor.a1_03919d522604085_ams_1_temperature
|
||||||
|
name: AMS Temp
|
||||||
|
- entity: sensor.a1_03919d522604085_ams_1_humidity
|
||||||
|
name: Humidity
|
||||||
Reference in New Issue
Block a user