Skip to content

Latest commit

 

History

History
170 lines (116 loc) · 5.19 KB

README.md

File metadata and controls

170 lines (116 loc) · 5.19 KB

HomeBlaze - Home Automation with .NET/Blazor

HomeBlaze is a home automation software built using .NET/C# and ASP.NET Core Blazor, designed to help you automate various tasks and control devices in your smart home. It supports integration with popular smart home devices and protocols like Philips Hue, Z-Wave or MQTT. With HomeBlaze, you can create custom automations and rules based on various triggers such as time, weather, device states, or user interactions. HomeBlaze provides a web-based user interface that allows you to monitor and control your smart home devices.

HomeBlaze is built as a Blazor Server-Side application using the MudBlazor UI library. This choice is done because a home automation software usually runs in the local network (low latency) with a low number of users (no scaling issues) and it gives the possibility to build a framework in which is very simple to build new device integrations and dashboard widgets (no Web API required between FE/BE, projects with device implementation and UIs, etc.).

The software is still in preview and APIs might change.

Currently the software supports the following devices:

  • Philips Hue
  • MQTT
  • Z-Wave Controllers (door sensors, temperature sensors, smoke detectors, etc.)
  • Tesla Vehicles
  • Tesla Wall Connector (Gen 3)
  • Logitech Harmony Hub
  • Microsoft Xbox
  • ASUS Routers
  • OpenWeatherMap Temperatures
  • PushOver (Push Notifications)
  • Gardena Irrigation Control (control garden watering)
  • Luxtronik Heaters
  • myStrom Switches
  • Nuki Bridges (door lock)
  • Sonos
  • ThanksMister WallPanel (Android app for wall panels)

We hope to find more people from the .NET community to provide support for more devices, new widgets, bug fixes and new features.

Screenshots

Custom built dashboard (in German):

192 168 1 200_9800_

Dashboard editor:

192 168 1 200_9800_

Things with properties in Thing manager (Philips Hue Lamp):

192 168 1 200_9800_

Thing property details:

192 168 1 200_9800_

Thing property history graph:

192 168 1 200_9800_

Trigger automation to send push notification to close a window after 15 minutes:

192 168 1 200_9800_

State machine automation to change light brightness at night:

192 168 1 200_9800_

192 168 1 200_9800_

Custom script to be used in an automation (blinking lights can be used as alarm):

192 168 1 200_9800_

Installation

Supported platforms:

  • linux/amd64 (x64)
  • linux/arm64 (e.g. Raspberry Pi 4/5)

Docker

To run HomeBlaze on port 9800 via Docker, create a HomeBlaze directory in your C: drive and run:

docker run -d --restart unless-stopped -v C:/HomeBlaze:/app/Config --name homeblaze -p 9800:80 ghcr.io/ricosuter/homeblaze:main

All configuration and state history files are now written to your C:/HomeBlaze directory.

To get the latest version, delete the docker instance and pull the latest version with:

docker stop homeblaze
docker rm homeblaze
docker pull ghcr.io/ricosuter/homeblaze:main

After this, run the docker run command above again.

Docker-Compose

Example docker-compose.yml using Azure Blobs:

version: "3"

services:
  homeblaze:
    image: ghcr.io/ricosuter/homeblaze:main
    restart: always
    environment:
      - Storage__Type=AzureBlobs
      - Storage__Container=...
      - Storage__ConnectionString=...
    ports:
      - 9800:80

Initial run:

docker-compose up -d

Update:

docker-compose pull
docker-compose up -d

Support Z-Wave

For Z-Wave you need to run the Docker image in priviledge mode:

version: "3"

services:
  homeblaze:
    image: ghcr.io/ricosuter/homeblaze:main
    restart: always
    privileged: true
    ports:
      - 9800:80

Support UDP

Some things require "special" network capabilities (e.g. Philips Hue Bridge requires UDP):

version: "3"

services:
  homeblaze:
    image: ghcr.io/ricosuter/homeblaze:main
    restart: always
    privileged: true
    network_mode: host
    environment:
      - ASPNETCORE_URLS=http://0.0.0.0:9800

Change timezone

It seems that the docker container is run in UTC timezone and not in the host's timezone, to change that set the TZ environment variable:

version: "3"

services:
  homeblaze:
    image: ghcr.io/ricosuter/homeblaze:main
    environment:
      - TZ=Europe/Zurich