{"id":15063374,"url":"https://github.com/demian85/home-server","last_synced_at":"2025-04-10T10:53:59.083Z","repository":{"id":42083054,"uuid":"129664754","full_name":"demian85/home-server","owner":"demian85","description":"Web App and server to manage appliances at home using ESP8266-based devices like Sonoff, NodeMCU and Wemos D1 Mini","archived":false,"fork":false,"pushed_at":"2023-11-13T17:16:47.000Z","size":4095,"stargazers_count":4,"open_issues_count":22,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-14T08:52:36.129Z","etag":null,"topics":["appliance","arduino","domotics","esp8266","firmware","home-automation","iot","javascript","mqtt","nodejs","nodemcu","sensor","sonoff","wemos-d1-mini"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/demian85.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-16T00:49:32.000Z","updated_at":"2024-05-20T22:59:03.849Z","dependencies_parsed_at":"2023-11-13T18:30:55.023Z","dependency_job_id":"39c847c0-adba-4e7a-be64-4eb1d7656309","html_url":"https://github.com/demian85/home-server","commit_stats":{"total_commits":356,"total_committers":2,"mean_commits":178.0,"dds":0.0196629213483146,"last_synced_commit":"30d153e93d7429d39b7f6b3a630362ca9a9cbab6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demian85%2Fhome-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demian85%2Fhome-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demian85%2Fhome-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demian85%2Fhome-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/demian85","download_url":"https://codeload.github.com/demian85/home-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248204971,"owners_count":21064955,"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":["appliance","arduino","domotics","esp8266","firmware","home-automation","iot","javascript","mqtt","nodejs","nodemcu","sensor","sonoff","wemos-d1-mini"],"created_at":"2024-09-24T23:55:45.945Z","updated_at":"2025-04-10T10:53:59.062Z","avatar_url":"https://github.com/demian85.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# home-server\n\nA custom server for managing appliances at home using ESP8266-based devices like [Sonoff](http://sonoff.itead.cc/en/) and [Wemos D1 Mini](https://wiki.wemos.cc/products:d1:d1_mini)\n\n_Screenshots_\n\n![Dashboard](./screenshot1.jpg)\n\n![Hardware setup](./hardware-setup1.jpg)\n\n## Motivation\n\nI bought a bunch of Sonoff devices and decided to upgrade their firmware to [Sonoff-Tasmota](https://github.com/arendst/Sonoff-Tasmota).\n\nBy replacing the stock firmware, I can have complete control over the device.\nSonoff-Tasmota uses MQTT as the underlying protocol for communication between a broker and the device.\n\nAfter using [MQTT Dash](https://play.google.com/store/apps/details?id=net.routix.mqttdash\u0026hl=en) for some time, I decided to build a Progressive Web App.\n\n## Setup\n\nServer runs on a local Raspberry PI model 3 B+ which has the following services:\n\n- [Mosquitto MQTT Broker](https://mosquitto.org/)\n- [Redis server](https://redis.io/)\n\nI currently own 6 Sonoff devices, which are connected to the following appliances:\n\n- Patio lamp\n- Desk lamp\n- Room lamp\n- Room heater 1 (this one also reports values from its SI7021 temperature and humidity sensor).\n- Room heater 2\n- Wall socket\n\nI also have a bunch of sensors connected to a Wemos D1 Mini (flashed with the same firmware above) in my living room:\n\n- [DHT22/AM2301](https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf) temperature and humidity sensor\n- [HC SR501](https://components101.com/hc-sr501-pir-sensor) PIR motion sensor\n- [BMP280](https://components101.com/sensors/bmp180-atmospheric-pressure-sensor) temperature and atmospheric pressure sensor\n- [BH1750](https://www.mysensors.org/build/light-bh1750) light level sensor\n- Infrared receiver and remote control\n- RF transmitter and receiver\n\n## How it works\n\nAll devices establish a connection to the MQTT broker and report their state while also subscribing to a control topic, allowing you to switch them on/off.\n\nServer runs as a daemon and subscribes to all sensor topics. Some logic decides when to switch the room heater on/off.\n\nThe UI is built on React and consists of simple components that allow the user to switch the appliances on/off and view sensor, weather and derived data, like the \"real feel\" temperature.\n\nThe browser keeps a connection to the MQTT broker over a Websocket.\n\n## What's next?\n\nNot sure, but I recently started playing with electronics and found home-automation to be my new hobby.\n\nI'll keep experimenting with dev boards like Arduino, NodeMCU, ESP8266 and Sonoff devices. They are low cost devices that allows easy customization.\n\n### Possible next projects:\n\n- Automatic plant watering for my garden 🌻\n- OLED display screen showing sensor data 📺\n- Remote controled car 🚙\n\n### Fix Redis AOF file if needed\n\n- `redis-check-aof --fix /var/lib/redis/appendonly.aof`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdemian85%2Fhome-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdemian85%2Fhome-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdemian85%2Fhome-server/lists"}