Giter VIP home page Giter VIP logo

tgiachi / neon Goto Github PK

View Code? Open in Web Editor NEW
37.0 2.0 7.0 5.15 MB

Similar to 🏡 HomeAssistant and OpenHAB, but made with .net core and ❤️ in Florence, Italy

Home Page: https://neon-home-control.readthedocs.io

C# 77.64% Dockerfile 0.26% PowerShell 0.20% HTML 0.50% JavaScript 21.40%
home-automation homeassistant iot-platform iot-framework csharp dotnet-core mongodb litedb litedb-database radarr

neon's Introduction

Neon.HomeControl

Similar to HomeAssistant and OpenHAB, but made with .net core and ❤️ in Florence, Italy

Why

My goal is to explore the IoT world and create a completely versatile custom home management platform. The intent is not to compete with other systems, but create a good programming sandbox

Contributors

Thanks to: Bart Kardol (@bkardol) !

Help request

I'm looking for people to help me with the project, please contact me!

Features

  • .NET Core 3.0
  • Scripts Engine in JavaScript (using Jint 3.0.0 beta)
  • UTF-8 support
  • Metric and imperial measurements support
  • Routines (set of instructions)
  • Automatic device detection and discovery (via Bonjour/mDns protocol)
  • Docker native support
  • Simple config System (pluggable and in YAML format)
  • Multiple NoSQL database connectors: LiteDB, MongoDB, JsonFlatFile
  • Plugins System: API library on NuGet
  • Community driven development
  • Low memory comsumption (about 60 ~ 70 MB)
  • WebSocket server for dispatch events
  • OpenAPI / Swagger / ReDoc Api documentation (/redoc /swagger endpoints)
  • Isolated filesystem (secrets keys are stored encrypted)
  • States management (object and boolean states)
  • Metrics (with InfluxDB/Kibana/others support)
  • Telegram bot for notifications (you can also execute js code! )
  • WakeOnLan function (you can turn on your system!)
  • Alarm system for morning wake up 😂

Actual implemented components

  • MQTT Client
  • Weather (Dark sky API)
  • Spotify API
  • Sonoff-Tasmoda
  • Philip Hue (local and remote API)
  • Panasonic Air Conditioner API
  • OwnTracks (via MQTT)
  • Nest Thermo (disabled, because the api are changing)
  • Chromecast (thanks @kakone)
  • mDns/Bonjour devices listeners
  • Broadlink device
  • Plex hook receiver
  • Sonarr (here)
  • Radarr (here)

Running

Docker

docker pull tgiachi/neon:dev
docker run -it --rm  -p 5000:5000 -v /home/user/neon:/neon -e TZ="Europe/Rome" tgiachi/neon:dev

Default config file

You can download here and rename in neon-config.yaml

Script engine example

To make event management easier, I created a very simple system of rules

Add named rule

add_rule("test_rule", "Weather", "entity.Temperature > 30", function(entity)  
     log_info("test", "It's hot!")
end)

States

var isTommyAtHome = {
  is_home: true
}
set_state("i_m_at_home", isTommyAtHome)

Commands system

// Turn on philip hue lights group
send_command('light_status', 'Bedroom', 'ON')

Routines

// Add new routine
add_routine('my_test_routine', function() {
  log_info("Hi from Routine")
});

// Call routine
exec_routine('my_test_routine')

Alarm system

add_alarm("test_alarm", 07,32, function()
  log_info("It's time to wake up!");
end
)

Notify action via Telegram

  setTimeout(() => {
    telegram('Hi my name is Neon');
  }, 5000);

Wake On Lan

  wake_on_lan('00:00:00:00:00:00')

neon's People

Contributors

dependabot[bot] avatar tgiachi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.