A fully personal smart home, built with NetDaemon 26 on .NET 10 on top of Home Assistant, together with a hand-made Home Assistant dashboard that brings it all together.
This project implements the automation logic of the house as C# apps on NetDaemon, and ships the Lovelace dashboard that shows it. The apps react to sensors, schedules and people, and manage lighting, presence, the cat, laundry, energy, parcels, notifications and more.
Project Type: Personal NetDaemon-based Home Automation System
Highlights:
- Smart lighting β motion, time of day, circadian colour temperature and per-room scenes
- Presence and routines β per-person presence, work schedules (office, home or off per day), sleep and wake-up
- The cat, Pixel β automatic feeding, litter box and fountain monitoring, his medication (with reminders, stock and costs) and a log of when he threw up
- Energy β dynamic prices, warnings for extreme prices, the cost of working from home, and power estimates for devices that only report kWh
- Household β laundry advice and monitoring, garbage pickup, parcels from PostNL, DHL, DPD and GLS
- Notifications β Discord, the mobile app, text-to-speech and a WhatsApp assistant (text and voice notes)
- Self-maintaining β creates its own Home Assistant helpers, reloads failing integrations and auto-updates
The dashboard lives in dashboard/ as a YAML-mode Lovelace dashboard, built mainly with
button-card, Bubble Card and
Navbar Card and the "Glass Home" theme. Installation and the
required HACS cards are described in dashboard/README.md.
The screenshots below are rendered from the real dashboard templates with made-up data.
The heart of the Home page: a live sky (sun and moon at their real position, generated clouds, rain, snow, fog and storms, KNMI weather warnings, and planes overhead from Flightradar24) over a landscape that changes with the season. Our house on the hill tells what is going on at home:
- Who is home β smoke from the chimney and a lit window; on warm days an open window with a waving curtain instead
- Inside β music notes rising from the roof when a speaker plays, blue TV light behind the window
- Outside β the laundry on the line (swaying in the wind), garbage bags or the paper bin at the curb, a paddling pool with a rubber duck on hot sunny days
- Post β the letterbox fills up when there is mail, and today's parcels stand stacked at the door
- On vacation β curtains closed, a sign by the path and a banner plane; the light is on when the house sitter is there
- Pixel β he wanders around and, ten minutes before his food, sits at the front door wagging his tail, wearing a hat that fits the day: a Santa hat, a mitre, bunny ears, a crown on King's Day, a party hat on birthdays, a rain hat, a woolly hat when it freezes or a straw hat with sunglasses when it's hot
Holidays and our own days get their own decorations: Sinterklaas, Christmas, New Year, Easter, Halloween, King's Day,
Valentine's Day, Liberation Day, Remembrance Day (the flag at half-mast), our birthdays (also Pixel's) and our
anniversary. The birthday dates live in Home Assistant helpers, not in this repository. The pills show who is home,
asleep or working, and kitchen timers count down live. For testing, ?test in the URL shows drop-downs to pick a
theme, a time of day and a scenario (weather, warnings, music and TV, post, vacation, ...).
Everything that needs attention right now gets an eye-catching card on Home, and disappears again when it no longer matters: extreme electricity prices, the running washing machine with its phase and time left, laundry outside when rain is coming, Pixel's medicine when it is due or running out, problems with his things and batteries below 10%.
A two-week timeline of when Pixel threw up, where days with more moments get more room so the times stay readable. Vincent and Carleen each have a private page with their own work schedule (tap a day for off, home or office) and, for Vincent, the stock of cigarette packs.
Pixel gets a quarter of a prednison pill every evening and half an antibraak pill when needed. A tap on the pill gives a dose; the circle shows how much of the started pill is left, with the piece you give next softly blinking. From the reminder time Home shows a card until it is given, and an hour later both phones get a notification with a "Given" button (the next morning a "forgotten" one). The stock comes with the price per pill, per dose and per box and what it cost so far; a two-week chart and the full history (kept forever, with undo as a correction line) complete the page.
Hourly prices for today, parcels per carrier, and per day how much electricity working from home used and cost β imports at the all-in price, feed-in at the market price, without the washing machine.
# Build the project
dotnet build
# Run tests
dotnet test
# Deploy (local network)
./automation/Scripts/Build\ and\ deploy\ over\ LAN.ps1Note: This documentation was generated and structured with assistance from Claude (Anthropic).
- Technical Specifications - C# version, NetDaemon version, and architecture details
- Integrations & Connections - Discord, Home Assistant, external services
- Logging & Monitoring - Discord logging, error handling, debugging
- Configuration - App configuration, settings and customizations
- Testing Framework - Details on Rx testing, AppTestContext, and time manipulation
- Product List - Smart home devices and integrations used
- Alarm System - Security monitoring, high temperature and energy price warnings
- Auto Update - Monthly Home Assistant updates with notifications
- Away Manager - Away and welcome-home state machine
- Battery Monitoring - Low battery notifications for all devices
- Cat Care - Automatic feeding, litter box and fountain monitoring
- Cat Vomit Tracker - Remembers when Pixel threw up and publishes the last two weeks for the dashboard
- CoC Monitoring - Clash of Clans activity monitoring via social media
- Fun App - Entertainment and special occasion automations
- Google Assistant Translate - Voice command translation and automation
- Helper Manager - Creates the missing Home Assistant helpers (input_boolean, input_select, counter, ...) from code
- Holiday Manager - Days off from the calendar and the matching alarm reminders
- Home Work Energy Tracker - Electricity use and costs per day while working from home
- House State Manager - House states (morning/day/evening/night) and per-person working hours
- Integration Monitor - Detects failing integrations and reloads them
- Laundry - Washing machine monitoring and advice on drying the laundry outside
- NetDaemon System - System monitoring and lifecycle management
- Parcel Notifications - Notifications for new parcels, status changes and PostNL letters
- PC Manager - PC-related automations and device control
- Pixel Medication - Pixel's doses, stock, prices and reminders, with the full history kept forever
- Power Estimator - Estimated power for devices that only report an energy meter (such as the washing machine)
- Presence Manager - Per-person presence and the shared away state
- Presence Simulation - Makes the house look lived-in while on vacation
- Reset App - System reset and restoration capabilities
- Save In State - Device state management and restoration
- Sleep Manager - Sleep routines, roller blind and wake-up
- Vacuum - Robot vacuum automation and room-specific cleaning
- WhatsApp Assistant - Answers text and voice messages from Vincent and Carleen through the Home Assistant assistant
- Bathroom - Motion detection, shower mode, music automation
- Bedroom - Light automation for the bedroom
- Hall - Motion detection and light brightness in the hallway
- Kitchen Music - Music in the kitchen on motion when nobody is working
- Living Room - Lighting, TV automation and gaming mode
# Code generation for NetDaemon (after adding entities or helpers in Home Assistant)
dotnet tool run nd-codegen
# Local build and deployment
dotnet publish -c Release -o ./ReleaseNew helpers are added in automation/Configuration/HelperDefinitions.cs: the Helper Manager creates them in Home
Assistant on the next start, after which code generation makes them available as typed entities.
automation/
βββ apps/ # All automation apps
β βββ General/ # General automations
β βββ Rooms/ # Room-specific automations
βββ Configuration/ # Configuration classes and the helper definitions
βββ Core/ # Core services (entity manager, assistant clients)
βββ CustomLogger/ # Logging, including Discord
βββ Enum/ # Enumerations
βββ Extensions/ # Extension methods (Dutch-time scheduling, ...)
βββ Helpers/ # Utility classes
βββ Interfaces/ # Service interfaces
βββ Models/ # Data models
βββ Repository/ # Data persistence
dashboard/ # Home Assistant dashboard (YAML), theme and templates
TestAutomation/ # Unit tests
TestIntegration/ # Integration tests
docs/ # Documentation and dashboard screenshots
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or support:
- Open a GitHub Issue
- Join the NetDaemon Discord server




