My home Automation
I have gathered some basic info and ideas that I have implemented at my home. Most automations are working without a need of internet connection.
Notification Systems
- Pushbullet
- TTS (Speaker, Google home)
- Screen (chromecast, Kodi, nfandroidtv)
- Mobile notifications
- MQTT (IOT Link, LNX Link)
Devices
- Wifi devices with ESPHome firmware (Sonoff Dual R2, Sonoff Basic, ESP32, ESP8266)
- Computer (Ubuntu server, Raspberry PI)
- Zigbee HUB (CC2531 USB stick)
- Zigbee Devices (Xiaomi Cube, Xiaomi Aqara Switch, Xiaomi contact & motion sensor)
- Smart Bulbs (Yeelight, Xiaomi Philips)
- IR Remote (Broadlink RM mini 3)
- Speaker/Microphone
- USB TV Tuner (Crypto ReDi PC 50 A)
- Smart TV
- Smart Speaker (Google Home, Echo Dot)
- Cameras (Hikvision, etc…)
- Electric Water Valve
- VoIP Analog FXO (Linksys SPA3102, Grandstream HT503)
- UPS (APC Back-UPS 950VA, 18650 Battery Shield)
- Router (Asus RT-AC56U)
- Temperature/Humidity sensors (DHT11 module)
- Smart Lock (DIY using Stepper or DC motor)
- R503 Fingerprint sensor
- WiFi AC Units (Inventor, Toyotomi)
How devices are controlled
- Voice Commands through Google assistant
- Sensors/Switches from AlarmPI or Zigbee or Camera Image Processing
- WebUI through Home-Assistant Lovelace interface
- Automations based on events
- Scanning NFC Tags
Automations Honorable Mentions
- Easily activate/deactivate the alarm with the phone through NFC tags that are outside and inside the home. This way the security cannot be breached because the authentication is done on the phone side.
- Create a switch for the living room which disables all automations there in case we need to watch a movie or sleep. This requires the use of the condition on each automation.
- Using a Sonoff Dual the window cover can be controlled. It closes before the sun shines in the morning.
- Turn on the AC when the door or window is closed and the room temperature is above 29°.
- The lights are turned on when specific sensors are triggered and stay on until they close.
- Scan the network for new devices and notify when they appear. Also checks for specific devices if they are online or not.
- By pressing a specific button on my switch, I can turn on/off my PC, IR speakers, light, AC and window cover.
- When the camera linecrossing is triggered, the image of the event is displayed on the TV.
- Turns off the water heater after a specified time. It uses a Sonoff device with a high-current load contactor.
- Scripts in the UI for checking the status of system services which can be disabled/enabled. Also there are scripts for updating specific services.
- When the thermostat is turned on, all magnetic sensors are checked and I get a notification telling me which windows/doors I should close.
- Lock the door when I start brushing my teeth with a Bluetooth toothbrush.
Apps
-
AlarmPI
- Home security system for the whole house with PIR sensors and Door sensors installed on Raspberry PI.
-
LNX Link
- Linux control and monitor through MQTT messages.
-
MQTT Network Scanner
- Scans the network and sends events when a new device is connected.
-
Asterisk
- Calls internal phones and routes outbound phone calls based on the dialed number. The inbound calls are filtered when they are on an unwanted list, the rest a caller identification is added and then a notification with the contact details is displayed on the TV.
-
Pihole
- A DNS based ad-blocker for network devices.
-
TV-Headend
- Watch TV from any device on the network.
-
zigbee2mqtt
- Connects through zigbee hub to the zigbee devices and converts them to MQTT messages to be read by Home Assistant.
-
Multimedia
- Plex media center with apps for auto download episodes, movies, subtitles.
-
WallPanel
- Android App to show the home-assistant interface on a wall mounted phone.
-
Cameras NVR
- Video surveillance system for recording events from IP cameras using AgentDVR and Hikvision-Site.
-
Syncthing
- Peer-to-peer file synchronization application.
-
Baackup
- Backup tool for local and remote machines.
Security
- Expose the least required services to the internet
- Use of 2 Factor Authentication when possible
- Use Fail2Ban to block connections with multiple wrong authentication requests
- Block internet access to non trusted devices
- Access internal network from the internet through VPN