Enables the delivery of automated daily and weekly home automation usage reports, including appliance activity summaries and energy/water consumption trends, using Gmail SMTP.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Home Controllerstart the dryer on low heat for 60 minutes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Home Controller - Smart Home MCP Integration
A unified home automation system for controlling Miele, LG ThinQ, HUUM Sauna, Phyn Water Monitor, A.O. Smith Water Heater, and Tedee Smart Lock appliances through Claude Code using the Model Context Protocol (MCP).
Features
Miele Integration (Custom Node.js MCP Server)
Get list of all connected Miele devices
Get detailed status of any device (oven, refrigerator, freezer, etc.)
Control devices (start, stop, pause, power on/off)
Set refrigerator/freezer temperatures with zone support
Real-time device monitoring
LG ThinQ Integration (Official Python MCP Server)
Control LG washers and dryers
Monitor device status in real-time
Get device capabilities and available programs
Subscribe to device events
HUUM Sauna Integration (Custom Node.js MCP Server)
Monitor sauna temperature and status
Start and stop sauna heating remotely
Set target temperature (40-110°C)
Control sauna lighting
Check door state and safety status
Phyn Water Monitor Integration (Custom Node.js MCP Server)
Monitor water pressure, temperature, and flow rate
Get historical water consumption data (daily/monthly/yearly)
Control main water shutoff valve (Phyn Plus)
Support for multiple Phyn devices (Plus and Smart Sensors)
Perfect for building water usage reports
A.O. Smith Water Heater Integration (Custom Node.js MCP Server)
Monitor heat pump water heater temperature and status
Set target water temperature (95-140°F)
Change operation mode (Heat Pump, Hybrid, Electric, Vacation)
View energy consumption data
Check hot water availability status
Tedee Smart Lock Integration (Custom Node.js MCP Server)
Monitor lock status (locked/unlocked/semi-locked)
Check door state (open/closed)
Lock and unlock doors remotely
View battery level and charging status
Access lock activity history
Support for multiple locks
Requires Tedee bridge for remote access
Automated Email Reports
Daily reports at 10pm with usage recap
Weekly reports on Saturday 8am with trends
Tracks: water usage, laundry cycles, sauna sessions, oven uses
Historical comparisons: vs yesterday, 7-day avg, 4-week avg, 12-week avg
12-week sparkline trends in weekly reports
Gmail SMTP with macOS launchd scheduling
Slash Commands
/laundry-status- Quick check on washers and dryers/kitchen-status- Check all Miele kitchen appliances/set-fridge-temp- Set refrigerator or freezer temperature/sauna-status- Check HUUM sauna status/home-status- Complete overview of all devices/start-washer- Interactive washer control/start-dryer- Interactive dryer control/start-sauna- Interactive sauna control/stop-sauna- Turn off the sauna/check-alerts- Check for notifications and alerts/water-status- Check water system pressure and flow/water-report- Get water consumption report/water-heater-status- Check heat pump water heater status/set-water-heater- Interactive water heater control/get_device_status- Check smart lock status/lock_doors- Lock one or all doors/unlock_doors- Unlock one or all doors/get_activity_logs- View lock activity history
Prerequisites
For Miele:
Miele account with connected appliances
Miele Developer Portal credentials (Client ID and Client Secret)
Node.js v18+ installed
For LG ThinQ:
LG ThinQ account with connected appliances
LG ThinQ Personal Access Token (PAT)
Python 3.11+ installed
For HUUM Sauna:
HUUM sauna with UKU WiFi controller
HUUM mobile app account
Node.js v18+ installed
For Phyn Water Monitor:
Phyn Plus and/or Phyn Smart Water Sensors
Phyn mobile app account
Node.js v18+ installed
For A.O. Smith Water Heater:
A.O. Smith iComm-enabled water heater (Voltex, etc.)
iComm mobile app account
Node.js v18+ installed
For Tedee Smart Locks:
Tedee smart lock (GO or PRO)
Tedee bridge (required for remote API access)
Tedee mobile app account
Personal Access Key (PAK) from Tedee Portal
Node.js v18+ installed
Setup
Miele Setup
Step 1: Get Miele API Credentials
Go to Miele Developer Portal
Create an account or log in
Create a new application
Add redirect URI:
http://localhost:3000/callbackNote your Client ID and Client Secret
Step 2: Configure Miele Environment
Edit
.envand add your credentials:MIELE_CLIENT_ID=your_client_id_here MIELE_CLIENT_SECRET=your_client_secret_here
Step 3: Authenticate with Miele
Run the authentication helper:
Important for US Users:
The auth script uses the legacy OAuth endpoint (
api.mcs3.miele.com)This is required for US Miele accounts
EU users may need different endpoint configuration
This will:
Open your browser to authenticate with Miele
Exchange the authorization code for an access token
Save the token to your
.envfile (valid for 30 days)
LG ThinQ Setup
Step 1: Get LG ThinQ Personal Access Token
Create an account or log in
Navigate to the PAT (Personal Access Token) section
Generate a new token with these permissions:
View all devices and statuses
Device control and event subscription
Device push notifications
Energy consumption inquiry
Step 2: Configure LG ThinQ Environment
Edit
.envand add your credentials:THINQ_PAT=your_personal_access_token_here THINQ_COUNTRY=US
Step 3: Install LG ThinQ MCP Server
The LG ThinQ MCP server is already installed via pipx:
HUUM Sauna Setup
Step 1: Get HUUM Account Credentials
Download the HUUM mobile app (iOS/Android)
Create an account or log in
Connect your HUUM sauna with UKU WiFi controller
Note your login credentials (email and password)
Step 2: Configure HUUM Environment
Edit
.envand add your credentials:HUUM_USERNAME=your_email@example.com HUUM_PASSWORD=your_password_here
Note: The HUUM API uses Basic Authentication with the same credentials you use in the mobile app.
Step 3: Install Dependencies
The HUUM MCP server uses the same Node.js dependencies as the Miele server:
Phyn Water Monitor Setup
Step 1: Get Phyn Account Credentials
Download the Phyn mobile app (iOS/Android)
Create an account or log in
Connect your Phyn devices (Plus or Smart Sensors)
Note your login credentials (email and password)
Step 2: Configure Phyn Environment
Edit
.envand add your credentials:PHYN_USERNAME=your_email@example.com PHYN_PASSWORD=your_password_here PHYN_API_KEY=E7nfOgW6VI64fYpifiZSr6Me5w1Upe155zbu4lq8
Note: The Phyn API uses AWS Cognito authentication with the same credentials you use in the mobile app. The API key is a public key used by the Phyn service.
Step 3: Install Dependencies
The Phyn MCP server uses the same Node.js dependencies plus the Cognito library:
A.O. Smith Water Heater Setup
Step 1: Get iComm Account Credentials
Download the A.O. Smith iComm mobile app (iOS/Android)
Create an account or log in
Connect your iComm-enabled water heater
Note your login credentials (email and password)
Step 2: Configure A.O. Smith Environment
Edit
.envand add your credentials:AOSMITH_EMAIL=your_email@example.com AOSMITH_PASSWORD=your_password_here
Note: The A.O. Smith API uses the same credentials you use in the iComm mobile app.
Step 3: Install Dependencies
The A.O. Smith MCP server uses the same Node.js dependencies:
Tedee Smart Lock Setup
Step 1: Get Personal Access Key (PAK)
Log in to Tedee Portal
Click your initials in the upper right corner
Select "Personal Access Keys"
Click "Add Key"
Enter a name (e.g., "Home Controller")
Set validity period (up to 5 years)
Select permissions:
Device - Read (required)
Lock - Operate (required for lock/unlock)
Device Activity - Read (required for activity logs)
Save the key immediately - it won't be shown again!
Step 2: Configure Tedee Environment
Edit
.envand add your PAK:TEDEE_API_KEY=your_personal_access_key_here
Note: The Tedee API uses Personal Access Keys for authentication. These are different from OAuth - they're simple API keys that work directly with the Tedee cloud API.
Step 3: Ensure Bridge Connection
Your Tedee lock must be connected via a Tedee bridge for remote API access. If you only have Bluetooth connection, the API will not be able to communicate with your lock.
Step 4: Install Dependencies
The Tedee MCP server uses the same Node.js dependencies:
Email Reports Setup
Step 1: Configure Gmail SMTP
Enable 2-Factor Authentication on your Gmail account
Go to Google Account → Security → App passwords
Generate an app password for "Mail"
Add to
.env:GMAIL_USER=your-email@gmail.com GMAIL_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx REPORT_RECIPIENT=recipient@email.com
Step 2: Test Email Reports
Step 3: Schedule with launchd (macOS)
Copy and customize the template plist files:
cp launchd/com.homecontroller.daily-report.plist.example launchd/com.homecontroller.daily-report.plist cp launchd/com.homecontroller.weekly-report.plist.example launchd/com.homecontroller.weekly-report.plistEdit the plist files to replace
/path/to/Home Controllerwith your actual pathInstall the launchd jobs:
cp launchd/*.plist ~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/com.homecontroller.daily-report.plist launchctl load ~/Library/LaunchAgents/com.homecontroller.weekly-report.plistVerify they're loaded:
launchctl list | grep homecontroller
Testing Your Setup
Test Miele Integration
Test LG ThinQ Integration
Test HUUM Sauna Integration
This will:
Initialize the HUUM MCP server
List available tools
Get current sauna status (temperature, door state, etc.)
Test Phyn Water Monitor Integration
This will:
Initialize the Phyn MCP server
List available tools
Get all Phyn devices
Get current device status (pressure, temperature, flow)
Get water consumption data
Test A.O. Smith Water Heater Integration
This will:
Initialize the A.O. Smith MCP server
List available tools
Get all water heaters
Get current device status (temperature, mode, hot water status)
Get energy usage data
Test Tedee Smart Lock Integration
This will:
Initialize the Tedee MCP server
List available tools
Get all locks
Sync all lock states
Get current device status (lock state, battery, door state)
Get recent activity log
Available Tools
Miele MCP Server
get_devices
Get all Miele devices connected to your account.
get_device_status
Get detailed status for a specific device.
Parameters:
deviceId(string)
device_action
Perform an action on a device.
Parameters:
deviceId(string)action(string): one of "start", "stop", "pause", "powerOn", "powerOff"
set_temperature
Set target temperature for a refrigerator or freezer.
Parameters:
deviceId(string)temperature(number): Target temperature in Celsiuszone(number, optional): Temperature zone (default: 1)
get_temperature_settings
Get current temperature settings and valid ranges for a cooling appliance.
Parameters:
deviceId(string)Returns: current temps, target temps, and valid ranges per zone
LG ThinQ MCP Server
The official LG ThinQ MCP server provides:
Device list query
Device status monitoring
Device control (start, stop, settings)
Device capabilities query
See thinqconnect-mcp documentation for full details.
HUUM Sauna MCP Server
get_sauna_status
Get current status of the HUUM sauna including:
Current temperature
Target temperature
Heater on/off state
Door state (open/closed)
Humidity level
Start/end times
start_sauna
Start the sauna and set target temperature.
Parameters:
targetTemperature(number): Target temperature in Celsius (40-110)
Safety: Always verifies door is closed before starting
stop_sauna
Stop/turn off the sauna heater.
toggle_light
Toggle the sauna light on/off.
Phyn Water Monitor MCP Server
get_devices
Get all Phyn devices connected to your account (Phyn Plus and Smart Sensors).
get_device_status
Get detailed status for a specific device.
Parameters:
device_id(string)Returns: pressure, temperature, flow rate, valve status, online status
get_consumption
Get historical water consumption data.
Parameters:
device_id(string)duration(string):YYYY/MM/DDfor daily,YYYY/MMfor monthly,YYYYfor yearly
shutoff_valve
Open or close the main water shutoff valve (Phyn Plus only).
Parameters:
device_id(string)action(string): "open" or "close"
A.O. Smith Water Heater MCP Server
get_devices
Get all A.O. Smith water heaters linked to your iComm account.
get_device_status
Get detailed status for a specific water heater.
Parameters:
junction_id(string)Returns: temperature setpoint, mode, hot water status, online status
set_temperature
Set the target water temperature.
Parameters:
junction_id(string)temperature(number): Target temperature in Fahrenheit (95-140)
set_mode
Change the water heater operation mode.
Parameters:
junction_id(string)mode(string): "HEAT_PUMP", "HYBRID", "ELECTRIC", or "VACATION"
get_energy_usage
Get energy consumption data for a water heater.
Parameters:
junction_id(string)Returns: lifetime kWh, average daily usage, recent usage history
Tedee Smart Lock MCP Server
get_devices
Get all Tedee smart locks linked to your account.
get_device_status
Get detailed status for a specific lock.
Parameters:
lock_id(number)Returns: lock state, door state, battery level, connection status
sync_all_locks
Refresh and get current status of all locks.
Returns: Array of all locks with current states
lock_door
Lock a specific door.
Parameters:
lock_id(number)Returns: operation ID for tracking
unlock_door
Unlock a specific door.
Parameters:
lock_id(number)mode(number, optional): 2=force, 3=no auto-pull, 4=unlock or pull
pull_spring
Pull spring (for locks with auto-pull disabled).
Parameters:
lock_id(number)
get_operation_status
Check the status of an async lock/unlock operation.
Parameters:
operation_id(string)Returns: status (PENDING/COMPLETED), result code
get_activity_log
Get recent activity history for a lock.
Parameters:
lock_id(number)count(number): max 200 events
Returns: Array of events with timestamps, users, and sources
Using with Claude Code
Project-Level Configuration (Recommended)
The .mcp.json file in this directory configures all six servers:
Note: Wrapper scripts automatically load environment variables from .env.
Global Configuration
To use these servers from anywhere, copy the config:
Then restart Claude Code.
Slash Commands
Slash commands are available in .claude/commands/:
/laundry-status- Quick status check for washers/dryers/kitchen-status- Check all Miele kitchen appliances/set-fridge-temp- Set refrigerator or freezer temperature/sauna-status- Check HUUM sauna temperature and status/home-status- Dashboard view of all appliances/start-washer- Interactive washer program selection/start-dryer- Interactive dryer program selection/start-sauna- Interactive sauna control with temperature/stop-sauna- Turn off the sauna/check-alerts- View notifications and completed cycles/water-status- Check water pressure and flow/water-report- Get water consumption report/water-heater-status- Check heat pump water heater status/set-water-heater- Interactive water heater control/get_device_status- Check smart lock status/lock_doors- Lock one or all doors/unlock_doors- Unlock one or all doors/get_activity_logs- View lock activity history
Example Usage
Once configured in Claude Code, you can use natural language:
Troubleshooting
Miele Issues
"401 Unauthorized" errors
Your access token has expired (tokens last 30 days)
Run
npm run authto get a new token
Device not responding
Ensure device is powered on and connected to WiFi
Verify the device supports Miele@mobile app
Check that remote control is enabled on the device
US Region Issues
US accounts must use the legacy OAuth endpoint
The auth script is pre-configured for US accounts
EU users may need to modify
auth.jsto use the new endpoint
LG ThinQ Issues
PAT not working
Verify your PAT at https://thinq.developer.lge.com
Check that all required permissions are granted
Ensure
THINQ_COUNTRYmatches your account region
Server not found
Verify pipx installation:
which thinqconnect-mcpCheck PATH includes
~/.local/binRun
pipx ensurepathif needed
HUUM Sauna Issues
"401 Unauthorized" or authentication errors
Verify your HUUM credentials in
.envEnsure you're using the same email/password as the HUUM mobile app
Try logging out and back into the HUUM app to verify credentials
Sauna not responding
Check that the UKU WiFi controller is powered on and connected
Verify the sauna is online in the HUUM mobile app
Ensure your HUUM account is connected to the sauna
Cannot start sauna remotely
The sauna door must be closed for safety
Check door state with
/sauna-statusbefore startingVerify remote safety state is not disabled
Temperature not updating
The sauna may be off or cooling down (shows low temperature like 2°C)
Start the sauna to see temperature changes
Check that the heater is functioning properly
Phyn Water Monitor Issues
"401 Unauthorized" or authentication errors
Verify your Phyn credentials in
.envEnsure you're using the same email/password as the Phyn mobile app
Check that PHYN_API_KEY is set correctly
Devices not showing
Make sure your Phyn devices are online in the Phyn app
Verify your Phyn account has devices registered
Check WiFi connectivity on your Phyn devices
Water consumption not loading
The Phyn Plus is required for consumption data
Smart Water Sensors (PW1) don't provide consumption data
Try different duration formats: YYYY/MM/DD, YYYY/MM, or YYYY
Cannot control shutoff valve
Only Phyn Plus (PP2) devices have shutoff capability
Smart Water Sensors (PW1) are monitoring-only
Ensure the valve is not manually locked
A.O. Smith Water Heater Issues
"401 Unauthorized" or authentication errors
Verify your iComm credentials in
.envEnsure you're using the same email/password as the iComm mobile app
Try logging out and back into the iComm app to verify credentials
Water heater not responding
Check that the water heater is powered on and connected to WiFi
Verify the water heater is online in the iComm mobile app
Ensure your iComm account is connected to the water heater
Energy data not available
Energy tracking may need to be enabled in the iComm app
Some older models may not support energy monitoring
Wait for the water heater to collect usage data
Tedee Smart Lock Issues
"401 Unauthorized" or authentication errors
Verify your TEDEE_API_KEY is correct in
.envCheck that the PAK hasn't expired (max 5 years)
Ensure the PAK has required permissions (Device.Read, Lock.Operate, DeviceActivity.Read)
Lock not responding
Verify the Tedee bridge is powered on and connected to WiFi
Check lock connectivity in the Tedee mobile app
Ensure the lock has battery charge
Cannot lock/unlock remotely
The lock must be connected via Tedee bridge (not Bluetooth only)
Verify remote access is enabled in Tedee app settings
Check that your PAK has Lock.Operate permission
Operation times out
Lock/unlock operations take 2-3 seconds
Use
get_operation_statusto verify completionRate limit: max 1000 requests/hour
MCP Server Issues
Servers not loading in Claude Code
Verify
.mcp.jsonis in the correct locationCheck that all environment variables are set in
.envRestart Claude Code after configuration changes
Review Claude Code logs for errors
Token Maintenance
Miele Token Refresh
Miele access tokens expire after 30 days. When expired:
LG ThinQ PAT
LG Personal Access Tokens don't expire unless revoked. No maintenance needed.
HUUM Credentials
HUUM uses your mobile app login credentials. No token refresh needed - credentials remain valid as long as your account is active.
Phyn Credentials
Phyn uses AWS Cognito authentication with your mobile app login credentials. Tokens are automatically refreshed by the MCP server. No manual maintenance needed.
A.O. Smith Credentials
A.O. Smith uses JWT authentication with your iComm mobile app login credentials. Tokens are automatically refreshed by the MCP server. No manual maintenance needed.
Tedee PAK
Tedee Personal Access Keys can last up to 5 years. Check expiration at https://portal.tedee.com/personal-access-keys and regenerate before expiration.
Project Structure
Security Notes
✅ Credentials stored in
.env(not committed to git)✅
.mcp.jsonreferences environment variables✅
.gitignoreprevents accidental credential commits✅ Tokens are stored locally, never transmitted to Claude
Resources
Miele
LG ThinQ
HUUM Sauna
HUUM Mobile App (iOS/Android)
PyHuum Library (Python API reference)
Phyn Water Monitor
Phyn Mobile App (iOS/Android)
aiophyn Library (Python API reference)
A.O. Smith Water Heater
iComm Mobile App (iOS/Android)
py-aosmith Library (Python API reference)
General
Contributing
This is a personal home automation project. Feel free to fork and customize for your own setup!
License
ISC
Support
For issues:
Miele API: Contact partner.developer@miele.com
LG ThinQ API: Check the LG Developer Portal
MCP/Claude Code: See Claude Code documentation