Being kind of a geek I always wanted to have a smart house.
Having installed Philips Hue lights and sensors, HoneyWell thermostat with smart valves, TPLink smart sockets and other sensors I wanted to centralize everything in a single application in order to have everything in a single place.
What is this ?
It is a web application providing me with a simple control panel to manage everything in a single place.
How did I do this ?
A dedicated server node with a MySQL 5.7 database and a Tomcat8 application server hosts a Java application with an AngularJS frontend.
The backend application is based on Spring Boot and is a microservice connected to my personal microservices environment.
The following technologies are involved in the project:
- Apache gateway
- Static AngularJS application assets served by CDN
- Microservice: connected to Registry, UAA server and other microservices
- Java 8
- Spring Boot 2
- Spring Data JPA
- SendGrid email relay
- Tomcat8
- AngularJs 1.5
- Amon (infrastructure monitoring)
- UptimeRobot (service monitoring)
- Philips Hue API integration
- Honeywell EvoHome API integration
- TPLink API integration
- Google Cast API integration
- Jenkins remote-trigger integration
- CloudFlare SSL with SSO access policy
Access to the application is provided to me and my girlfriend and protected by SSO under CloudFlare Access policies.
Application performance and system status are monitored by my Amon and UptimeRobot systems, LogDNA service and in-application embedded HealthChecks.
How would this be instrumental in a business environment ?
Many of the technologies involved in this application are widely used nowadays (such as Java8+, Angular, Spring framework and the Microservices pattern).
External services integration (Google Cast API, Philips Hue API, …) are quite complex to integrate and require service integration skills.
Application-level and node-level resources monitoring are also useful topics that become critical in business environments.
Can I test this?
You can require access to the application at home.fabiofenoglio.it by writing me an email.