GithubHelp home page GithubHelp logo

nikolaognjenovic / ihome Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 6.58 MB

A full-stack, Generative AI powered mobile application which helps people control activities & sensors of their smart IoT home systems.

Home Page: https://www.hackster.io/nikola31023/smart-home-fb74cf

License: GNU General Public License v3.0

Java 0.08% Swift 0.39% Objective-C 0.02% Dart 10.44% CMake 10.93% C++ 13.37% C 0.80% HTML 0.69% Jupyter Notebook 42.33% Python 20.80% Dockerfile 0.14%
ai django flutter generative-ai home-assistant iot llama mobile postgresql

ihome's Introduction

IHome

A full-stack, Generative AI powered mobile application which helps people control activities & sensors of their smart IoT home systems. IHome depends on the backend, a RESTFul API built with Django which uses a local PostgreSQL database.


Running & setup

Prerequisites

Before running IHome, ensure you have the following installed:

App setup

Clone the application from GitHub.

git clone https://github.com/NikolaOgnjenovic/EESTech.git

Backend setup

mv example.env .env

Navigate to the backend directory and run docker-compose.yml.

cd backend
docker-compose up -d

Frontend setup

cd ../frontend
flutter pub get

To run IHome on a connected device or emulator, use the following command:

flutter run

API documentation

When the application starts, you can access the Swagger documentation.

Accessing data via pgAdmin

Go to the pgAdmin web UI and login with the following credentials:

pgAdmin login

Right click the Servers row and press Create in the Register menu.

pgAdmin server registration

Name the server any way you want.

pgAdmin server name

Enter the following values: db for the host name/address user for the username anad password Afterwards, press Save.

pgAdmin server connection

View the tables by opening the dev_smart_home_db database, the public schema and the tables collection.

pgAdmin tables

App usage

When you run the flutter application, you will be presented with a home screen with buttons that lead to two menus.

Home screen

The first button takes you to the Preferences screen, on which you can toggle preferences that you have for the system: the system will adhere to them and prioritise them when performing actions after analyzing data.

Some preferences also have optional input which is used to enhance the action that the system takes when performing one based on a user preference. For example, if the system is playing music when it detects that someone is showering, it will play the song that the user manually inputed, or a hardcoded one otherwise.

Preferences screen

The second button on the homepage takes yo uto the Sensors screen, on which you can toggle sensors that collect different types of data and enhance the experience of the user in the home system.

Sensors screen

Troubleshooting

If you encounter problems with speech-to-text mp3 files when the AI talks, execute the following command:

sudo chown $USER:$USER speech.mp3

ihome's People

Contributors

nikolaognjenovic avatar damjanvincic avatar nikola352 avatar

Watchers

 avatar

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.