Device integration platform for your smart home
JavaScript CSS Python HTML Other
Clone or download
msinn Merge remote-tracking branch 'origin/release-1.5.1'
* origin/release-1.5.1:
  Documentation updates
  Documentation updates
  Updated documentation
  Updated build_requirements.py
  Documentation updates
  Documentation updates
  Documentation updates
  Documentation updates
  Documentation updates
  Python 3.3 removed from travis tests
  Documentation updates; updated requirements (all.txt)
  Bootstrap Datepicker: small bugfix
  Updated Bootstrap to 4.1.2
  smarthome.py: Added platform info to logging of Python version
  utils.py: Ensured that Utils.string_to_list converts a string to a list of len 1 (if the string doesn't start with '[' and ends with ']'
  smarthome.py: On startup the used Python version is written to the logfile
  tools/build_requirements: Resolved most cases for duplicate entries that can't be handled by pip3
  Documentation updates; updated requirements (all.txt)
  Documentation updates; updated requirements (all.txt)
  Documentation updates
Latest commit cc1288d Jul 14, 2018
Permalink
Failed to load latest commit information.
bin Merge remote-tracking branch 'origin/release-1.5.1' Jul 14, 2018
deprecated/tools Documentation changes; moved owmonitor, owsensors2items and print_lib… Aug 5, 2017
dev Added tabcount and title for 2 tabs to index.html of sample plugin webif Jul 8, 2018
doc Documentation updates Jul 14, 2018
etc Modifications to default configuration files May 6, 2018
examples yaml examples Mar 9, 2018
items Revert "sonos plugin release v1.1" Sep 23, 2014
lib Merge remote-tracking branch 'origin/release-1.5.1' Jul 14, 2018
logics Adjusted minimum Python Version and completed second example logic Apr 30, 2018
media provided media/logo* with text to path and optimized exports Jun 5, 2017
modules Bootstrap Datepicker: small bugfix Jul 13, 2018
requirements Updated build_requirements.py Jul 13, 2018
scenes initial scenes plugin Feb 4, 2013
tests Reworked Core: Bugfix for test environment Jan 7, 2018
tools Updated build_requirements.py Jul 13, 2018
var Merge core(bin,lib) and tools,examples,dev,var from develop branch Mar 31, 2016
.gitignore Documentation changes May 30, 2018
.travis.sh Remove checkout move in Travis-CI build: the repo should already be t… Jan 29, 2018
.travis.yml Python 3.3 removed from travis tests Jul 13, 2018
CHANGELOG.md minor changes Dec 9, 2016
LICENSE init Sep 12, 2012
README.md Updated global README May 6, 2018
setup.py commented out outdated requirements in setup.py to quiet warnings in … May 5, 2018
tox.ini Python 3.3 removed from travis tests Jul 13, 2018

README.md

SmartHomeNG

Build Status on TravisCI Join the chat at https://gitter.im/smarthomeNG/smarthome

This file contains basic information about the basic directories of SmartHomeNG.

Developer documentation (english) can be found on www.smarthomeNG.de

Additional information / documentation can be found in the SmartHomeNG Wiki. The Wiki ist in german for the greatest part.

directory description
bin the main python file is based here
dev if you plan to create a plugin then this is the folder you want to have a closer look at
doc Source files for the user- and developer documentation
etc the three basic configuration files smarthome.yaml, module.yaml, plugin.yaml, logic.yaml and logging.yaml are located here, you will edit these files to reflect your basic settings
examples some examples of items, etc. this is only for informational purpose
items put here your own files for your items
lib some more core python modules are in this directory. You won't need to change anything here
logics here your logic files are put
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 travis tests is stored here
tools there are some tools which help you for 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 will be moved out of the docs since it's 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/plugin.yaml

Upon installation you will need to create this file and configure the plugins and their attributes. An example is shown below

# plugin.yaml
knx:
    class_name: KNX
    class_path: plugins.knx
    host: 127.0.0.1
    port: 6720

# send_time = 600 # update date/time every 600 seconds, default none
# time_ga = 1/1/1 # default none
# date_ga = 1/1/2 # default none
ow:
    class_name: OneWire
    class_path: plugins.onewire

visu:
    class_name: WebSocket
    class_path: plugins.visu_websocket

smartvisu:
    class_name: SmartVisu
    class_path: plugins.visu_smartvisu
    smartvisu_dir: /var/www/html/smartVISU

cli:
    class_name: CLI
    class_path: plugins.cli
    ip: 0.0.0.0
    update: 'True'

sql:
    class_name: SQL
    class_path: plugins.sqlite

etc/logic.yaml

In the logic.conf you specify your logics and when they will be run. 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.gloabl.sun(False)  # set it to False