Coder Social home page Coder Social logo

pojd / hawa Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 4.0 1.22 MB

Home Automation Web Application - no longer active, will work on can-backend instead (based on can)

License: MIT License

Java 84.77% CSS 6.22% HTML 4.52% Shell 0.04% C 4.02% C++ 0.44%

hawa's People

Contributors

gmlewis avatar pojd avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

anhdenday daengky

hawa's Issues

NVD3 is sensitive to series lenghts

So if for any reason one of the outdoor sensors fails reading, the respective value is not stored into DB and the result graph data series lengths (pressure, temperature, humidity) have different lengths and nvd3 then fails to render the graph.

Fix this, so that the history is always there - maybe still log a warning about sensor, but try taking the previous reading instead of avoiding save. Issue is if e.g. a sensor fails completely from the startup (e.g. humidity sensor). Then nothing will be stored at al for that sensor. Maybe this could be somehow caught on startup too? E.g. take last valid value? Or throw an error straight away?

SImilar issue will also occur if tomcat is bounced in the middle of refresher doing its work. SOme readings then won't be saved either.

Or maybe split out the graphs to 3 separated graphs since the values do not really scale anyway...?

Find a way to run server locally again on laptop (no 1-Wire or GPIO or I2C)

Currently I can only run the app freely on RPi given all the dependencies. Change this so that I can continue working locally too, just getting false or random date and not being forced to hack the code to be able to do so. While still being able to easily deploy to tomcat using mvn tomcat7:redeploy

Security view

  • Display all rules now, allow them to be enabled/disabled
  • Allow the security mode to be switched from the web

Add weather forecast

Based on the logged data from outdoor, attempt some simple weather forecast (use humidity and evolution of pressure probably)
Show current state and show some sort of evolution?

Integration testing

  • start up local webapp from maven or at least par of it
  • simulate raising events from GPIO - potentially using mock
  • verify the net result (e.g. security, etc)

Window and door reed switches

  • Each room can have a list of window reed switches
  • Hookup changes to security system - either open should raise security event

MCP23017 test

  • raised to test MCP23017 real hookup to Raspberry Pi and perform any changes in the project that would be needed

DAO cleanup

  • A new DAOCleanup service should be created that should purge all data at regular intervals (e.g. say run evey 24 hours)

Add system view

portlets:

  • dmesg
  • system properties
  • uptime
  • file systems, etc
  • switch off raspberry pi - run "shutdown -h now" - or better add console - send system commands and paste their outputs back to console...
  • enhance system state service - get all the above data, but ideally zipped since the log could be MBs big....

Generic support for I2C + expander chips support

Right now only one sensor uses I2C, but that will change soon once the expander chips arrive. Then I will need to connect the relays through them and they will need some I2C setup code too. So refactor the current sensor generic code out (similar as Gpio) and control from one place only (including closing on spring context closing).

Use this new base logic to manipulate the expander chips and be able to control or read stuff through them

Alarm handler for security events

Probably play an audio through audio of raspberry if a security event is detected, could be more types of audio. Maybe play only if we are inside the house? Or better always?

RPi logs an I2C error now

Error about unable to connect to 0x29 - TSL light sensor in hall, fix that so that these errors are not there untill all is wired up together

Add live view

Live view page to see the actual state at home/around the house from the camera

Schedule every 5 mins read

Every 5 mins a scheduler should trigger some logic to read the actual sensor values and store into DB
Then anytime web invokes getAll, it would get the last state
All transparent via DAO
Tests added to cover this functionality

Add support for ADC MCP3008 and reading temperature

  • New LDR connected, translate its readings through SPI and connect this one up to the rooms and outdoor as opposed to the existing digital lux sensor (that one uses I2C, so we will not be able to route that through long wires in the house)

Security system base

  • new maven project to wrap up security
  • should use motion sensors, ftp server for camera uploads, email, potentially gtalk? Maybe google calendar too?

Create RoomService API

Create room service API, rest service, hook up into the main view and maybe some mock service to get some data to show

Motion sensor should depend on light sensor

Make it optional, but both outdoor and halls should now depend on a light sensor - only if it gives little light (configurable), then trigger the light, otherwise ignore

System view logging and start

  • links in portlets about system should lead to system state
  • the runtime logger should not see thread name and class name

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.