Giter VIP home page Giter VIP logo

homey's Introduction

Homey

Your personal assistant with sole purpose to make your home smarter and your life easy than ever before. It gives you the power to control your house with just a single touch or just a command of your voice. If your are feeling lazy enough to switch off the lights before going to sleep, worry not, homey will do that for you on your single command.

Contents

This Readme is divided into several parts

  1. Structure
  2. Technology
  3. Future Planning

Homey can be broken down in 2 separate modules viz.

  1. Raspberry Pi Server
  2. Android App

Raspberry Pi Server

Raspberry Pi is used as the controlling using for all the appliances in the house. There can be various ways with which you can connect your appliances with Pi like connecting a Relay Board using wires and then using that board to control the switch or adding a wireless layer between Pi and Relay or making your own custom device to control the appliances.

Android App

This is the real remote control that the user uses to control all the appliances. User can control the appliances using one of the three methods viz. touch or voice or text command.

This section enlists various technologies used in the project.

Raspberry Pi Server

The server is a raspberry Pi setup that is connected to a router and running the server code. For the app to connect to server, both of them should be on same network.

The code is simple Python socket program that takes the command from Android app, analyze it and then provides the relevant output from GPIO pins towards the relay where it can switch on/off the appliance based on the output.

Android App

The app is simple Java based android application that acts as a medium between the server and user.

It opens a socket connection between server and send the command given by the user. As discussed earlier, It can take touch, voice or text command.

Touch command is directly analyzed converted to the server identified form.

Text command is analyzed using NLP based on Microsoft Luis and the results are then serialized and sent to server.

Voice commands are first converted to text using Speech to text API provided by Android and then analyzed further.

This is just a basic version of what I had in mind when its development began. This app has certain design and implementation flaws. Some of the knows bugs are listed below

  1. Supports only fixed no. of appliances and is hardcoded (both server and app)
  2. No authentication (both server and app)
  3. Server code is simple python without any standard protocol to follow (server)
  4. Minor design flaws in Android like unnecessary Toasts (app)
  5. No control over appliances/ server outside the home networking

There is always scope of improvement in anything we do. Some of the improvements/ fixes are suggested below

  1. Make the addition of appliances dynamic and use a secured Database to store it.
  2. Use a standard framework for standardization of protocol and enabling authentication. Major candidates include Django and Flask. Can also use Twisted for event driven programming.
  3. Enable port forwarding on server side.
  4. Improve the UI/UX.

Some Glimpses

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.