Giter VIP home page Giter VIP logo

smarthomeng's Introduction

SmartHomeNG

Made with Python Made with Angular Forum Chat on Gitter Website smarthomeng.de GitHub forks GitHub license

Github Tag Aktuelles Release

develop: Aktuelles Release

SmartHomeNG [1] ist eine Software die eine Basis für eine Heimautomation bereitstellt. Über Plugins können spezielle Schnittstellen angesprochen und damit die Funktionalität des Gesamtsystems erweitert werden.

Auf der (Webseite des Projektes) kann eine Benutzerdokumentation eingesehen werden.

Ein Wiki existiert zumeist in deutscher Sprache.

Die Kernfunktionalität wird alle 6-9 Monate in einem Release erweitert und freigegeben.

Benutzte Werkzeuge

Werkzeug beschreibung
SmartHomeNG wird mit der Pycharm IDE entwickelt.
Das Admin Interface von SmartHomeNG wird mit WebStorm IDE entwickelt.

SmartHomeNG and other languages

SmartHomeNG [1] is a software that serves as a basis for home automation. It interconnects multiple devices using plugins to access their specific interfaces.

User documentation (german) and developer documentation (now part of the unified documentation) can be found on www.smarthomeNG.de

Additional information can be found in the SmartHomeNG Wiki.

It is possible to read the documentation with Google's translation service in other languages as well.

This readme file contains basic information about the root directories of SmartHomeNG for an overview.

Used Tools

Tool Description
SmartHomeNG was built using the Pycharm IDE.
The admin interface of SmartHomeNG was built using the WebStorm IDE.

Directory Structure

directory description
bin the main python file is based here
dev sample files for creating own plugins and modules
doc Source files for the user- and developer documentation
etc the five basic configuration files smarthome.yaml, module.yaml, plugin.yaml, logic.yaml and logging.yaml are located here, you need to edit these files to reflect your basic settings
items put your own files for your items here
lib some more core python modules are in this directory. You won't need to change anything here
logics put your own files for your logics here
modules here are all loadable core-modules located (one subdirectory for every module)
plugins here are all plugins located (one subdirectory for every plugin). The plugins have to be installed from a separate repository (smarthomeNG/plugins)
scenes the scenes are stored here
tests the code for the automated tests is stored here
tools there are some tools which help you with creating an initial configuration
var everything that is changed by smarthome is put here, e.g. logfiles, cache, sqlite database etc.

Some more detailed info on the configuration files

As of Version 1.5 the old conf format will still be valid but is removed from the docs since it's been deprecated now for some time.

etc/smarthome.yaml

Upon installation you will need to create this file and specify your location.

# smarthome.yaml
# look e.g. at http://www.mapcoordinates.net/de
lat: '52.52'
lon: '13.40'
elev: 36
tz: Europe/Berlin

etc/module.yaml

Upon installation you will need to create this file and configure the modules and their parameters. On first start of SmartHomeNG this file is created from etc/module.yaml.default, if not already present.

An example is shown below:

# module.yaml
http:
    module_name: http
    starturl: admin

admin:
    module_name: admin

#enable, if mqtt protocol is going to be used
#mqtt:
#    module_name: mqtt

etc/plugin.yaml

Upon installation you will need to create this file and configure the plugins and their parameters. On first start of SmartHomeNG this file is created from etc/plugin.yaml.default, if not already present.

An example is shown below:

# plugin.yaml
database:
    plugin_name: database
    driver: sqlite3
    connect:
    -   database:./var/db/smarthomeng.db
    -   check_same_thread:0

cli:
    plugin_name: cli
    ip: 0.0.0.0
    update: true

websocket:
    plugin_name: visu_websocket


knx:
    plugin_name: knx
    host: 127.0.0.1
    port: 6720

ow:
    plugin_name: onewire

smartvisu:
    plugin_name: visu_smartvisu
    smartvisu_dir: /var/www/html/smartVISU

etc/logic.yaml

In the logic.conf you specify your logics and when they will be run. On first start of SmartHomeNG this file is created from etc/logic.yaml.default.

An example is shown below

# etc/logic.yaml
AtSunset:
    filename: sunset.py
    crontab: sunset

items/

This directory contains one or more item configuration files. The filename does not matter, except it has to end with '.yaml'.

# items/global.yaml
global:
    sun:
        type: bool
        attribute: foo

logics/

This directory contains your logic files. Simple or sophisitcated python scripts. You could address your smarthome item by sh.item.path. If you want to read an item call sh.item.path() or to set an item sh.item.path(Value).

# logics/sunset.py
if sh.global.sun():       # if sh.global.sun() == True:
    sh.global.sun(False)  # set it to False

smarthomeng's People

Contributors

msinn avatar mknx avatar morg42 avatar psilo909 avatar onkelandy avatar ohinckel avatar bmxp avatar cstrassburg avatar aschwith avatar 4d4mu avatar encbladexp avatar walldi avatar greentux avatar spfuu avatar sisamiwe avatar henfri avatar mptei avatar wvhn avatar datobu avatar richih avatar mode2k avatar stoepf avatar jumi2006 avatar sagl1 avatar smailee avatar m-callidomus avatar hasenradball avatar mzanier avatar mworion avatar muhler 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.