smarthomeNG / smarthome

Device integration platform for your smart home
https://www.smarthomeNG.de
GNU General Public License v3.0
122 stars 92 forks source link
1-wire avm enocean home-automation homeautomation homematic hue iot knx mqtt onewire raspberry-pi smarthome smarthomeng smartmeter sonos zigbee

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](http://docs.smarthomeNG.de)) and developer documentation ([now part of the unified documentation](http://docs.smarthomeng.de/entwicklung/entwicklung.html)) can be found on [www.smarthomeNG.de](https://www.smarthomeNG.de) Additional information can be found in the [SmartHomeNG Wiki](https://github.com/smarthomeNG/smarthome/wiki). It is possible to read the documentation with [Google's translation service](https://translate.google.com/translate?hl=&sl=de&tl=en&u=https://www.smarthomeng.de/dev/user/) 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. ```yaml # 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: ```yaml # 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: ```yaml # 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 ```yaml # 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'. ```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)`. ```python # logics/sunset.py if sh.global.sun(): # if sh.global.sun() == True: sh.global.sun(False) # set it to False ```