{"id":20379933,"url":"https://github.com/tgiachi/neon","last_synced_at":"2025-04-12T08:33:26.428Z","repository":{"id":39378369,"uuid":"202708260","full_name":"tgiachi/Neon","owner":"tgiachi","description":"Similar to 🏡 HomeAssistant and OpenHAB, but made with .net core and ❤️ in Florence, Italy","archived":false,"fork":false,"pushed_at":"2023-01-04T10:42:24.000Z","size":5271,"stargazers_count":37,"open_issues_count":25,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T03:41:34.341Z","etag":null,"topics":["broadlink-rm","csharp","darksky-api","dotnet-core","home-automation","homeassistant","iot-framework","iot-platform","litedb","litedb-database","mongodb","mqtt","owntracks","panasonic-air","philips-hue-api","philips-hue-bridge","radarr","sonarr","sonoff-tasmota"],"latest_commit_sha":null,"homepage":"https://neon-home-control.readthedocs.io","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tgiachi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-16T10:28:10.000Z","updated_at":"2024-02-07T00:44:17.000Z","dependencies_parsed_at":"2023-02-02T09:00:37.248Z","dependency_job_id":null,"html_url":"https://github.com/tgiachi/Neon","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgiachi%2FNeon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgiachi%2FNeon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgiachi%2FNeon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgiachi%2FNeon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tgiachi","download_url":"https://codeload.github.com/tgiachi/Neon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248540537,"owners_count":21121375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["broadlink-rm","csharp","darksky-api","dotnet-core","home-automation","homeassistant","iot-framework","iot-platform","litedb","litedb-database","mongodb","mqtt","owntracks","panasonic-air","philips-hue-api","philips-hue-bridge","radarr","sonarr","sonoff-tasmota"],"created_at":"2024-11-15T02:05:33.460Z","updated_at":"2025-04-12T08:33:26.409Z","avatar_url":"https://github.com/tgiachi.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Neon.HomeControl\r\n\r\nSimilar to [HomeAssistant](http://home-assistant.io)  and [OpenHAB](https://www.openhab.org/), but made with .net core and ❤️ in Florence, Italy\r\n\r\n## Why\r\n\r\nMy 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\r\n\r\n## Contributors\r\n\r\nThanks to: Bart Kardol (@bkardol) !\r\n\r\n## Help request\r\n\r\nI'm looking for people to help me with the project, please contact me!\r\n\r\n## Features\r\n\r\n- .NET Core 3.0  \r\n- Scripts Engine in JavaScript (using [Jint](https://github.com/sebastienros/jint) 3.0.0 beta)\r\n- UTF-8 support\r\n- Metric and imperial measurements support\r\n- Routines (set of instructions)\r\n- Automatic device detection and discovery (via Bonjour/mDns protocol)\r\n- Docker native support\r\n- Simple config System (pluggable and in YAML format)\r\n- Multiple NoSQL database connectors: [LiteDB](https://www.litedb.org/),  [MongoDB](https://docs.mongodb.com/ecosystem/drivers/csharp/), [JsonFlatFile](https://github.com/ttu/json-flatfile-datastore)\r\n- Plugins System: API library on NuGet\r\n- Community driven development\r\n- Low memory comsumption (about 60 ~ 70 MB)\r\n- WebSocket server for dispatch events\r\n- OpenAPI / Swagger / ReDoc Api documentation (/redoc /swagger endpoints)\r\n- Isolated filesystem (secrets keys are stored encrypted)\r\n- States management (object and boolean states)\r\n- Metrics (with InfluxDB/Kibana/others support)\r\n- Telegram bot for notifications (you can also execute js code! )\r\n- WakeOnLan function (you can turn on your system!)\r\n- Alarm system for morning wake up 😂\r\n  \r\n## Actual implemented components\r\n\r\n- MQTT Client\r\n- Weather (Dark sky API)\r\n- Spotify API\r\n- Sonoff-Tasmoda  \r\n- Philip Hue (local and remote API)\r\n- Panasonic Air Conditioner API\r\n- OwnTracks (via MQTT)\r\n- ~~Nest Thermo (disabled, because the api are changing)~~\r\n- Chromecast (thanks @kakone)\r\n- mDns/Bonjour devices listeners \r\n- Broadlink device\r\n- Plex hook receiver\r\n- Sonarr  ([here](https://github.com/Sonarr/Sonarr))\r\n- Radarr ([here](https://github.com/Radarr/Radarr))\r\n\r\n## Running\r\n\r\n### Docker\r\n\r\n```shell\r\ndocker pull tgiachi/neon:dev\r\ndocker run -it --rm  -p 5000:5000 -v /home/user/neon:/neon -e TZ=\"Europe/Rome\" tgiachi/neon:dev\r\n```\r\n\r\n## Default config file\r\n\r\n You can download [here](https://github.com/tgiachi/Neon/blob/master/Neon.WebApi/default-neon-config.yaml) and rename in `neon-config.yaml`\r\n\r\n## Script engine example\r\n\r\nTo make event management easier, I created a very simple system of rules\r\n\r\n### Add named rule\r\n\r\n```javascript\r\nadd_rule(\"test_rule\", \"Weather\", \"entity.Temperature \u003e 30\", function(entity)  \r\n     log_info(\"test\", \"It's hot!\")\r\nend)\r\n```\r\n\r\n### States\r\n\r\n```javascript\r\nvar isTommyAtHome = {\r\n  is_home: true\r\n}\r\nset_state(\"i_m_at_home\", isTommyAtHome)\r\n```\r\n\r\n### Commands system\r\n\r\n```javascript\r\n// Turn on philip hue lights group\r\nsend_command('light_status', 'Bedroom', 'ON')\r\n```\r\n\r\n### Routines\r\n\r\n```javascript\r\n// Add new routine\r\nadd_routine('my_test_routine', function() {\r\n  log_info(\"Hi from Routine\")\r\n});\r\n\r\n// Call routine\r\nexec_routine('my_test_routine')\r\n```\r\n\r\n### Alarm system\r\n\r\n```js\r\nadd_alarm(\"test_alarm\", 07,32, function()\r\n  log_info(\"It's time to wake up!\");\r\nend\r\n)\r\n```\r\n\r\n## Notify action via Telegram\r\n\r\n```js\r\n  setTimeout(() =\u003e {\r\n    telegram('Hi my name is Neon');\r\n  }, 5000);\r\n```\r\n\r\n## Wake On Lan\r\n\r\n```js\r\n  wake_on_lan('00:00:00:00:00:00')\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftgiachi%2Fneon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftgiachi%2Fneon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftgiachi%2Fneon/lists"}