Giter VIP home page Giter VIP logo

chewie's Introduction

Image of Chewbacca

Chewie

version status coverage dependencies devDependencies node

Chewie is a home assistant. It allows you to control your home without any limit. The system is entirely based on plugins that extend its base and functionalities. The main goal of Chewie is to be completely open and act as a very simple base for plugins from community while being evolutive to last in time. The project is free of use and open source. Please your are welcome to contribute :)

Why another home assistant?

Well, at first it was a personal project started before all these home assistant where released and popular. At that time I wanted to learn node.js and play with my raspberry. Then I rapidly took alot of fun developing it and decided to make a complete plateform based on plugins. My philosophy is to develop a solid base system which may be extended thanks to plugins and live for a long time. Chewie is very open minded.

Installing

Prerequisites

Installation of assistant itself is globally the same on Windows/Linux.

Installation on Windows

s

  1. git clone https://github.com/mbret/chewie.git.
  2. Move to newly created chewie folder and run npm install. You now have the assistant installed and ready.
  3. To run chewie move inside chewie folder and run npm run start

Installation on Linux

  1. git clone https://github.com/mbret/chewie.git.
  2. Move to newly created chewie folder and run npm install. You now have the assistant installed and ready.
  3. To run chewie move inside chewie folder and run npm run start or npm run start:debug if you want more debug information.

*yarn may works way better on low CPU devices as they are many dependencies. Unlike npm yarn proceed some parallel tasks

Quick overview

Getting started

To start chewie move to the assistant folder. By default it's chewie and run:

npm run start

You should have access to https://localhost:3000 to get the web app.

If you may want to have more information and debug you can use:

npm run start:debug

What next?

You may want to check out these common and popular packages:

How to install hooks and plugins

Install a hook

  1. Use npm to install your package. Ex: npm install git+https://github.com/mbret/chewie-hook-thirdparty-auth-provider.
  2. Now you need to tell chewie to use it. Locate your config file (by default settings.json) and add the config:
{
    ...,
    "hooks": {
        "chewie-hook-thirdparty-auth-provider": true
    },
    ...
}

Install a plugin

Web interface

Simply go to https://localhost:3000/#!/dashboard/repository/list. Take note that the remote repository is not available yet.

You can set up a local repository (a folder) and place inside it the plugins you want to use. Chewie will browse the folder and let you manage it through web interface.

  • Add this config to specify a local repository:
{
    ...,
    "pluginsLocalRepositoryDir": "/path/to/my/folder",
    ...
}
  • Use the web interface.

FAQ

What is the difference between hooks and plugins

The purpose of a hook is to extend chewie in term of functionality while a plugin provide new actions for scenarios. A hook is a node package that is installed locally as module and is loaded on system startup. It has access to the entire system and can add/remove/change the behavior of Chewie. The plugin is managed through the app and is "mounted" / "unmounted" during runtime when a scenario that use it need to start.

I have updated node.js and I get some errors when starting the app. (ex Please install sqlite3 package manually)

Try to run npm rebuild to see if it helps.

Troubleshootings

The startup crash and I get an error who looks like No such driver found, please try to install it via npm install db-migrate-sqlite3... This error appears sometimes on raspberry for example:

You probably have invalid or badly installed sqlite3 dependency. Try to do npm install sqlite3 --build-from-source again to see if it helps.

I want to create a plugin

Read the contributing guide

Bruh I found a bug!

Read the contributing guide

I want to contribute to the core project

Read the contributing guide

Work in progess

  • complete cli to manage chewie

chewie's People

Contributors

mbret avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.