Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/demian85/home-server
Web App and server to manage appliances at home using ESP8266-based devices like Sonoff, NodeMCU and Wemos D1 Mini
https://github.com/demian85/home-server
appliance arduino domotics esp8266 firmware home-automation iot javascript mqtt nodejs nodemcu sensor sonoff wemos-d1-mini
Last synced: 3 months ago
JSON representation
Web App and server to manage appliances at home using ESP8266-based devices like Sonoff, NodeMCU and Wemos D1 Mini
- Host: GitHub
- URL: https://github.com/demian85/home-server
- Owner: demian85
- Created: 2018-04-16T00:49:32.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-11-13T17:16:47.000Z (about 1 year ago)
- Last Synced: 2024-04-14T08:52:36.129Z (9 months ago)
- Topics: appliance, arduino, domotics, esp8266, firmware, home-automation, iot, javascript, mqtt, nodejs, nodemcu, sensor, sonoff, wemos-d1-mini
- Language: JavaScript
- Homepage:
- Size: 3.91 MB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# home-server
A 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)
_Screenshots_
![Dashboard](./screenshot1.jpg)
![Hardware setup](./hardware-setup1.jpg)
## Motivation
I bought a bunch of Sonoff devices and decided to upgrade their firmware to [Sonoff-Tasmota](https://github.com/arendst/Sonoff-Tasmota).
By replacing the stock firmware, I can have complete control over the device.
Sonoff-Tasmota uses MQTT as the underlying protocol for communication between a broker and the device.After using [MQTT Dash](https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=en) for some time, I decided to build a Progressive Web App.
## Setup
Server runs on a local Raspberry PI model 3 B+ which has the following services:
- [Mosquitto MQTT Broker](https://mosquitto.org/)
- [Redis server](https://redis.io/)I currently own 6 Sonoff devices, which are connected to the following appliances:
- Patio lamp
- Desk lamp
- Room lamp
- Room heater 1 (this one also reports values from its SI7021 temperature and humidity sensor).
- Room heater 2
- Wall socketI also have a bunch of sensors connected to a Wemos D1 Mini (flashed with the same firmware above) in my living room:
- [DHT22/AM2301](https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf) temperature and humidity sensor
- [HC SR501](https://components101.com/hc-sr501-pir-sensor) PIR motion sensor
- [BMP280](https://components101.com/sensors/bmp180-atmospheric-pressure-sensor) temperature and atmospheric pressure sensor
- [BH1750](https://www.mysensors.org/build/light-bh1750) light level sensor
- Infrared receiver and remote control
- RF transmitter and receiver## How it works
All 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.
Server runs as a daemon and subscribes to all sensor topics. Some logic decides when to switch the room heater on/off.
The 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.
The browser keeps a connection to the MQTT broker over a Websocket.
## What's next?
Not sure, but I recently started playing with electronics and found home-automation to be my new hobby.
I'll keep experimenting with dev boards like Arduino, NodeMCU, ESP8266 and Sonoff devices. They are low cost devices that allows easy customization.
### Possible next projects:
- Automatic plant watering for my garden 🌻
- OLED display screen showing sensor data 📺
- Remote controled car 🚙### Fix Redis AOF file if needed
- `redis-check-aof --fix /var/lib/redis/appendonly.aof`