GithubHelp home page GithubHelp logo

cybear-jinni / cbj_smart-home Goto Github PK

View Code? Open in Web Editor NEW
45.0 4.0 10.0 211.36 MB

🏑 If you are searching for an easy way to connect all your smart home devices with one app CyBear Jinni πŸ¦ΎπŸΌπŸ§žβ€β™‚οΈ is here for you. Join the community and make your home smarter than yesterday.

Home Page: https://cybearjinni.com

License: GNU Affero General Public License v3.0

Shell 100.00%
smartdevice smarthome smart-home smartthings iot iot-platform iot-platforms iot-application iot-device hacktoberfest2020 hacktoberfest hacktoberfest-2020

cbj_smart-home's Introduction

CyBear Jinni Smart Home

License: AGPL v3 Open Source Love

CyBear Jinni image

Welcome!

This repository let you control your existing smart home.

Here at CyBear Jinni we give the community the power of smart home by providing the code and instructions to set up a Hub that will let you control your smart devices and connect them even if they are from different form factors.

Project structure

The project is made out of two main parts:

CyBear Jinni App

CyBear Jinni App is the app to control your CyBear Jinni Hub.

This is an Android, IOS, Web Browser app written in Flutter that let you control the Hub using local Wi-Fi and remotely through cbj remote pipes which transfer requests to the Hub without collecting any data.

Android Badge

CyBear Jinni Hub is software written in dart and runs in parallel with MQTT broker.

The Hub talks to all the supported smart devices from different form factors and gives the app an easy and uniform way to control them as if they are from the same company.

Get it from the Snap Store

Social Media Links

Twitter Instagram Linkedin Discord Github

Disclaimers

Use at Your Own Risk, we do not take responsibility on any outcome using anything in this repo.

The project is under heavy work and may contain bugs and incorrect instructions.

cbj_smart-home's People

Contributors

aaryanporwal avatar amitech avatar chandlerklein avatar devanshh avatar guyluz11 avatar tamir198 avatar urvisinghal avatar vikash485 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cbj_smart-home's Issues

How you can help the platform

List of ways you can take a part in CyBear Jinni dream of making the world better

Everybody

  • Support the platform simply by joining, following, staring ⭐, ranking ❀️‍πŸ”₯, commenting βœ”οΈ, liking πŸ‘ on our social media accounts and more:
    GitHub, Instagram, LinkedIn, Twitter, YouTube, Discord, Reddit, Facebook, Android App, AlternativeTo.
    This will help us by showing the popularity of the project and help us get suggested to more people by the algorithm of each platform.
  • Translate the app to your language.
  • Help spread the word out by talking about it with your friends, if they feel interested or connected to our vision (to make the world better for everyone) suggest them to follow on social media.
  • Create a video showcasing the platform and upload it to your selected platform (would be nice if you can tag us in it).
  • Create a fan art of the logo, you can also upload fan art from relatives and close friends.
  • Get the word out
  • Join our group in Folding@home, group number: 267789
    Do this only if you have extra computing power, f@h

help scientists develop new therapeutics for a variety of diseases by the means of simulating protein dynamics

and it uses the community computers power for that.

  • Vote for your language in Firefox common voice, if it already exists you can add more translations for it.

Makers

  • Install CBJ Hub on Linux (with snap) or raspberry (cbj image) and use it daily.
    Instructions can be found on the site CyBearJinni.com inside "Set Up" page.
  • Create Tasmota or ESPHome devices and test them with CBJ Hub.

People who have CBJ Hub running:

  • Test features.
  • Report missing features.
  • Ask for devices support.

Programmers

  • Add support for missing features and device vendors.
  • Try working on some issues, mainly from cbj_hub and cbj_app repos.

Designers

  • Make professional editing to the existing images.
  • Suggest changes for the app and the website.
  • Help us create our next social media posts.

Find a different solution than locking IP of each smart device in the router settings

Currently the flutter app need the IP of the device to talk LAN in case there is no connection to the internet (using grpc).

If we do not lock the device to specific IP in the router setting manually it will change in random time and will stop working on the LAN without internet connection or without updating the IP that the app talking to.

(It can continue with internet connection because it can also talk through Cloud FireBase which does not depend on IP address to communicate with the device).

We don't want to open the server (smart device) to the outside world! only local network.
Getting into the router setting is messy and not ideal so we need to find other way to do this.

Possible solutions:

  1. Find a way to make the smart device IP locked without needing to touch the router settings, this fix is preferred right now.
  2. Make the app scan all the IPs in the network each time that it can detect that it is connected to home WiFi and home WiFi does not have internet access (very messy and slow but can be done).
  3. Find a way to make the app and the smart device talk without the need relying on the IP address, if there is a way to send the message by device mac address or something that I am not aware of this can be the best fix (beware of security problems from this one).

You can contact me on the discord channel

Tasks to do before product is ready for the market

  • Complete #29 getting the code out into the world.

  • Fix #28 network connection of the app drop after number of days.
    If #29 is done we can build the snap on Canonical remote serves, warning that will be public to all peoples who look at the remote snapcraft server.
    This will solve the first section #28 issue.

  • Fix #30 find a different solution than locking IP of each smart device in the router settings.

  • #32 Make the snap update automatically.

  • #34 Decide on Cloud Firestore structure and #35 make good rules to make it secure.

Easy way for the app to connect new smart devices to the WiFi

We need an easy and straight forward way for the users to add new Smart Device into the home WiFi.

As of now the Security Bear will connect the Smart Device to a default WiFi/hotspot if it is open around it.
But this is not enough for the app to talk to it as it does not have the functionality to know what Smart Devices IP have connected to the App device hotspot.
Without the Smart Device IP in the App we cannot talk to it and update it to have the home WiFi credentials.

After that is done we need to show the user the list of all the connected Smart Devices with their names.
For new Smart Devices we need to show the user their type as in Light or home blinds, for old devices that have connected we will show the name that the user gave it and device type.

Get the word out πŸ“°

Here is a list of ways that you can help CyBear Jinni to be more popular and known.

Open source IoT repositories

There are several repositories that show what open source IoT options there are out there.
We would love to get into those lists and keep track of it here.

Social Sites

Tell people in forums about your experience with the platform and invite them to check it out

  • reddit
  • Facebook smart home groups

Company icon should be add to

If you found more please post them here as a comment and we will add them to this list.
Feel free to notify us if you decided to add us there.

Readme chnages

As our focus is now on the Hub the readme should talk about it.

Also we moved our snap of the smart device to the snap of the hub because it used the needed name.
So the snap link in the readme is under the incorrect category and should move to the CyBear Jinni Hub instead.

Error "HiveError: Cannot read, unknown typeId: 74"

Did not noticed any functionality change in the smart home program.

To create download the snap, change the light name, restart the snap, and look at the demon snap output with this sudo systemctl status -n 100 snap.smart-home.smart-home.

Log:
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: Smart device is activaited
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: PATH: /snap/smart-home/15
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: phyc type is PhysicalDeviceType.NanoPiDuo2
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: This device is of type: NanoPiDuo2
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: This was the exception here: HiveError: Cannot read, unknown typeId: 74. Did you forget to register an adapter?
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: Path of hive: /home/root/Documents/hive
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: Adding from local db light object
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: one
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: Pin is 8
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: Two 8
Aug 10 16:14:43 nanopiduo2 smart-home.smart-home[13763]: This is the pin number off: 8

Logo in readme need some editing

We have logo of CyBear Jinni in the readme.
CyBear Jinni have the following repository's Smart Device, App, Smart Home so we need some change to the logo to distinguish between them.

For the Smart Home I suggest to put the logo inside a house.

Please be creative and take it to new place.

Make the code open "source"

Things that need to be take care of before we open this code to the word.

  • Move password out
    All password needed to be stored in privet repository of the company or being inserted with the first connection of the device.

  • Cloud password: for the flutter application in each new station it is needed to be inserted manually, the one from the store will include the one to our (Firebase) cloud. In the smart device it will be inserted automatically from the flutter app on first connection.

  • WiFi password: In the project NetworkManager the WiFi password should be inserted from the flutter app along side the cloud cardinals that we talked about in section one (not necessary for the open source).

  • Decide on a license
    We need license that 1. permit only this company to earn money from it 2. lets every body do anything that they want with the code 3. does not let one to change the license (copyleft).
    Currently I think that this one "Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)" is good but this is need to be taken and asked to professional on software licenses.
    Decided GPL3 license will be the right one for this project.

GIF in readme file need love and care

The GIF in the readme file need a little attention.

  • The GIF currently have big black bezels that need to be removed.
  • Speed of the GIF is to fast, re uploading the GIF in slower speed is needed.

Markdown License badges change in readme

Found out that we put the wrong badge for the license in the readme.
Please update the license badge to the new one.

License: AGPL v3
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)

Decide what is the best Cloud FireStore structure

We need to decide what is the best structure for our Cloud FireStore that will be scalable and secure.

Secure with good structure that can be used with the FireStore rules correctly.

This database will save the following and more:

  • Smart home devices and configurations.
  • Rooms names and details that the smart devices are located in.
  • Pictures that the user uploaded for each room and device.
  • List of all the actions that was made for each smart device.
  • Will save the different permissions for each device and only the admin will have full access to all by default.
  • Passwords that grant access to debugging the smart devices and are accessible only for the admin by default.
  • Each user app configuration.

Choosing structure is big part in this project so lets discuss this before starting the work, this way we will do the best choice for this project.

You can contact me on the discord channel

Reade badge need to be updated

Open Source badge in readme file is low res

Please open pr to dev with this one instead

[<img src="https://badges.frapsoft.com/os/v1/open-source-200x33.png?v=103" height="20">](https://en.wikipedia.org/wiki/Open_source)

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.