Neon.HomeControl.Api

Package Description


Keywords
home-automation, iot-platform, iot-framework, litedb, litedb-database, panasonic-air, mqtt, philips-hue-api, philips-hue-bridge, darksky-api, owntracks, nest, spotify-web-api, sonoff, sonoff-tasmota, ai, csharp, dotnet-core, dotnetcore22, homeassistant
License
MIT
Install
Install-Package Neon.HomeControl.Api -Version 0.0.5.3

Documentation

Neon.HomeControl

Similar to HomeAssistant, but made with .net core and ❤️

Contributors

Thanks to: Bart Kardol (@bkardol) !

Help request!

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

Actual implemented plugins

  • Weather (Dark sky API)
  • Spotify API
  • Sonoff-Tasmoda
  • Philip Hue
  • Panasonic Air Conditioner API
  • Own tracks (via MQTT)
  • MQTT Client
  • Nest Thermo (disabled, because the api are changing)
  • Chromecast and SSDP media player (thanks @kakone)

Features

  • .NET Core 2.2
  • Scripts Engine (for make rules): LUA - Events Database: LiteDB
  • Events Database: NoSQL Connectors (LiteDB and MongoDb)
  • Classic Database (can change in future): Sqlite

!!! NOTE !!!

Rename config neon.settings-default.json to neon.settings.json before start application

Simple event system

You can catch events in two different ways in LUA:

First Method

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

Second Method

on_event_name("weather", function(entity)
  if entity.Temperature >= 30 then
      log_info("test", "Temperature is {0} and is hot!", entity.Temperature);
  else
      log_info("test", "Temperature is {0} and is mid hot!", entity.Temperature);
  end
end
)

Simple commands system:

on_event_name("weather", function(entity)

  if entity.Temperature >= 30 then
      log_info("test", "Temperature is {0}", entity.Temperature);
      local airco_entity = cast_entity(get_entity_by_name("airco"))
      send_command(airco, "POWER", "ON")
  else      
end

Alarm system:

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