chkr1011/wirehome.core

Core is an open source Home Automation system for

This system is written in C# targeting

Core is an open source Home Automation system for



Wirehome.Core

Wirehome. .NET Core. .NET Standard 2.0+- It runs on Windows, macOS and Linux (e.g. a Raspberry Pi 2 Model B+).

The interaction with the physical home automation hardware is abstracted via adapters which are written in Python. They are available in a separate repository and can be downloaded into the local instance of Wirehome.Core. The engine for the Python code is IronPython.

The Python adapters can access a wide range of modules (Wirehome.API) which are providing access to GPIOs, I2C, MQTT, HTTP, COAP etc.

Wirehome.Core also includes a fully features MQTT broker and a HTTP server which can be used to host user content or for interaction with the devices.

Also automations and custom services are written in Python. The integration of Open Weather Map is completely written in Python and can be downloaded from the official Wirehome.Repositoriy. Also version updates are distributed from that repository.

Wirehome.App

A Web App which is hosted by Wirehome.Core is also part of this project. It runs on nearly all current devices like smartphones, tablets, PCs etc.

Issues

Quick list of the latest Issues we found

masterchen

masterchen

Icon For Comments1

in WireHome.Core project, i can see there are many controllers under Wirehome.Core.HTTP. and in the startup file there also configured swagger url, can you give a hint how to show this apis in swagger ui. i mean just like mvc project, when i open xxxx/swagger i can see the apis

LightVolk

LightVolk

Icon For Comments2

Why adapter code should write with Python? Can i write it on C#?

I think that stront type language (C#) are more safe in this Domain (home automation) instead Python.

palmtreefrb

palmtreefrb

Icon For Comments2

Two questions... Have you tried opening up the solution and projects in VS 2019? Can plugins/components be developed in c#. Not worried about runtime errors because c# project cannot even compile with errors anyway.

MedBouc

MedBouc

Icon For Comments1

Hi Christian Can you please elaborate a bit the architecture of this project I saw the document but still not clear Thanks for starting this .net home automation project

tenove

tenove

Icon For Comments2

Hello, may I ask what time can supplement complete tutorial?

mkrumov

mkrumov

Icon For Comments1

Hi, can you explain the installation in detail - I mean haw to add repository, how to set up json config files. I started successfully Wirehome.Core on raspberry, but don't know how to add repository.

Regards, Mario

FlaynGordt

FlaynGordt

Icon For Comments1

I would like to use an old tablet in the kitchen which is only turned off at night. Currently the background is too bright to keep it on all the time. I would prefer a very dark (preferably black) background without the blue borders and with white text. The theme information should not be a global configuration, because I want to keep the current theme with the bright background on my PC.

Versions

Quick list of the latest released versions

v4.2.1 - May 22, 2020

  • Added CoAP (including DTLS) protocol support.
  • Updated nuget packages.
  • Exposed MQTT broker via Web Sockets.
  • Performance improvements.

v4.2.0 - Mar 17, 2020

  • Performance improvements.
  • New Python APIs.
  • Upgraded to .NET Core 3.1 including all nugets.
  • Removed all dependencies to other apps. The Core can now run as a standalone .NET Core application.
  • Huge performance improvements in Cloud communication.
  • Security improvements for Cloud connections.
  • Added dark theme for the App.

v1.0.0 - Sep 22, 2019

  • Added service for creating configuration backups.
  • Updated nuget packages.
  • Optimized cloud message format.
  • Extended HTTP APIs for Configurator app.
  • Increased MQTT performance.
  • Added support for components with custom scripts (no packages required).
  • Updated nuget packages.
  • Updated build script.

Please find example configuration here: /docs/exampleConfiguration

v1.0.0-beta1 - Mar 25, 2019

  • Added Python standard library to binaries.
  • Optimized service initialization process.
  • Added API for note management.
  • Updated nuget packages.
  • Added support for tags (components).
  • Added lots of new HTTP API methods.
  • Renamed /swagger to /api.
  • Migrated automations to components.
  • Added support for custom panels in App.
  • Optimized system startup.
  • Performance improvements.
  • Rebuild reverse proxy in cloud project.
  • Added statistics API for cloud project.
  • Added support for macOS hosts (thanks to @Horizon0156).
  • The app is moved to a package ([email protected]) which must be downloaded after install.
  • Optimized cloud access speed and traffic size.
  • Fixed some broken APIs.
  • The configurator is moved to ([email protected]) which must be downloaded after install.
  • Added API for initial system setup.
  • Configurator is now default UI when opening HTTP root.

Please find example configuration here: /docs/exampleConfiguration

!!! All packages must be re-downloaded from the repo due to breaking changes. New versions of packages will be introduced when the core enters the BETA status.

v1.0.0-alpha7 - Dec 15, 2018

  • Migrated to .NET Core 2.2 (including ASP.NET).
  • Updated nuget packages.
  • Added initial support for user macros.
  • Added new HTTP APIs for several services.
  • Added new APIs for Python proxies.
  • Improved initialization of services, component logics etc.
  • Removed dedicated component logic from app.

Please refer to the example configuration (/docs/exampleConfiguration) for proper examples.

!!! All adapters, logics, services must be re-downloaded from the repo due to breaking changes. New versions of packages will be introduced when the core enters the BETA status.

v1.0.0-alpha6 - Nov 25, 2018

  • Renamed "repository item" to "package" (BREAKING CHANGE!).
  • Optimized file access for retained MQTT messages.
  • Updated icon set.
  • Added new HTTP APIs.
  • Added new Python proxies.
  • Updated nuget packages.
  • Removed obsolete views from app.
  • Added different app icon for the cloud version.
  • Performance and stability improvements.

Migration (before starting new version):

  1. Rename folder Repository to Packages.
  2. Rename file RepositoryServiceConfiguration.json to PackageManagerServiceConfiguration.json.
  3. Use Python proxy package_manager instead of repository.

Please refer to the example configuration (/docs/exampleConfiguration) for proper examples.

!!! All adapters, logics, services must be re-downloaded from the repo due to breaking changes. New versions of packages will be introduced when the core enters the BETA status.

v1.0.0-alpha5 - Nov 04, 2018

  • Repository items do no longer have a type (Breaking change in UIDs)
  • Component views are moved from the App to logic entities in repository.
  • Several new Python proxies.
  • Added Python libs of local system to IronPython so support using local libraries from PIP.
  • Added Wirehome.Cloud service for remote access to App.
  • Extend exception handling in Tools controller.
  • Created Python scratchpad controller for Python code testing.
  • Add debugger Python proxy for logic, service etc. debugging.
  • Added MySQL based history functionality for all component status.
  • Performance optimizations.
  • Added lots of new HTTP APIs as preparation for Wirehome.Configurator.
  • Encapsulated all Python proxies in wirehome class.
  • Lots of minor changes and code cleanup.
  • Added initial support for SSDP device discovery.

Please refer to the example configuration (/docs/exampleConfiguration) for proper examples.

!!! All adapters, logics, services must be re-downloaded from the repo due to breaking changes. New versions of repo items will be introduced when the Core enters the BETA status.

v1.0.0-alpha4 - Oct 17, 2018

  • Changed branding color.
  • Add python proxy for starting a process and receiving the output.
  • Added HTTP models for the Scheduler API.
  • Removed the old Web App.
  • Removed obsolete files from Web App.
  • Updated nuget packages.
  • Added new display component.
  • Added EF based database for historical data collection.
  • Performance optimizations (especially MQTT broker).
  • Migrated to Font Awesome as icon source.
  • Updated to AngularJS 1.7.5.
  • Added lots of new HTTP APIs.
  • Refactored and extended Python proxies (BREAKING CHANGES!).
  • Added support for credentials in topic import.
  • Added new UnitTests.
  • Added new HTTP APIs for automations.
  • Exposed folder "CustomContent" from data directory to allow hosting of custom user content.
  • Exposed local repository for HTTP access.
  • Many minor improvements and refactorings.

v1.0.0-alpha3 - Oct 07, 2018

  • Added an API controller for automations.
  • The WebApp is now restoring the connection automatically.
  • Added support for startup scripts.
  • Added new python proxies.
  • Added an API controller for the scheduler.
  • Updated nuget packages.
  • Migrated "Area" to "ComponentGroups" (Breaking change in config files. Please review sample configs).
  • Added an API controller for MQTT access.
  • Refactored configuration files for services (Breaking change in config files. Please review sample configs).
  • The scheduler now provides debug information.
  • Added scope information for logics and adapters (variable scope).
  • Removed not used files at the WebApp.
  • Added support for RGB devices (Logic, Adapter (MQTT) and App view).
  • Improved performance.
  • Several refactorings.

!!! All adapters, logics, services must be re-downloaded from the repo due to breaking changes. New versions of repo items will be introduced when the Core enters the BETA status.

v1.0.0-alpha2 - Sep 30, 2018

  • Moved all logics to python implementations.
  • Fixed some UI issues in WebApp.
  • Fixed startup scripts for Linux.
  • Added new python proxies.
  • Updated nuget packages.

!!! All adapters, logics, services must be re-downloaded from the repo due to breaking changes. New versions of repo items will be introduced when the Core enters the BETA status.

v1.0.0-alpha1 - Sep 21, 2018

This is a version of Wirehome.Core which is tested by invited users only.

Library Stats (Sep 12, 2022)

Subscribers: 31
Stars: 236
Forks: 56
Issues: 14

csharp-data-visualization

I've always wanted to learn how to visualize data in C#

csharp-data-visualization

C Sharp Helper Methods

Bu bir Windows Form uygulamasıdır ve içerisinde genel olarak ERP projelerinde sıkça kullanılabilecek bazı metotları ve kullanımlarını içermektedir

C Sharp Helper Methods

CSharp-Collection

Challenges, projects, educational files

CSharp-Collection

CSharp_Veri_Tipleri

byte, sbyte, short, ushort, int, uint, long, ulong, decimal, bool, char, string, var, object veri tipleri incelenmistir

CSharp_Veri_Tipleri

CSharp-CodeSnippet

Wide variety of sample code snippets from the topics related in C#

CSharp-CodeSnippet

csharp-aspnet-microservices

Course on building microservices on

csharp-aspnet-microservices

CSharp "C#" WAVE "

Parses the audio data and the format chunk info from a WAVE-Format audio file "

CSharp "C#" WAVE "

CSharp_ChromaStreamApp

C# Chroma Stream App for Chroma RGB streaming

CSharp_ChromaStreamApp

CSharp-SMTP-Server

Simple (receive only) SMTP server library for C#

CSharp-SMTP-Server

CSharp To Mindustry Logic

This is a code transpiler that will transpile C# code to mlog

CSharp To Mindustry Logic