Configuration
Description
Configuration is done through config.yml
The parent folder of the file can be specified with -c PATH
or --config PATH
.
If nothing is specified the file config.yml
is searched in the subdirectory HABApp
in
the current working directory
the venv directory
the user home
If the config does not yet exist in the folder a blank configuration will be created
Example
directories:
logging: log # If the filename for the logfile in logging.yml is not absolute it will be placed in this directory
rules: rules # All *.py files in this folder (and subfolders) will be loaded. Load order will be alphabetical by path.
params: params # Optional, this is the folder where the parameter files will be created and loaded from
config: config # Folder from which configuration files for openHAB will be loaded
lib: lib # Custom modules, libraries and files can be placed there.
# (!) Attention (!):
# Don't create rule instances in files inside the lib folder! It will lead to strange behaviour.
# Specify the location where your HABApp instance is running
location:
# The coordinates are used to calculate the Sunrise/Sunset etc
latitude: 0.0
longitude: 0.0
elevation: 0.0
# The country and optional subdivision is used to calculate the holidays
country: DE # ISO 3166-1 Alpha-2 country code - here Germany
subdivision: BE # ISO 3166-2 Subdivision code or alias - here Berlin
openhab:
ping:
enabled: true # If enabled the configured item will show how long it takes to send an update from HABApp
# and get the updated value back in milliseconds
item: 'HABApp_Ping' # Name of the NumberItem that will show the ping
interval: 10 # Seconds between two pings
connection:
url: http://localhost:8080
user: ''
password: ''
general:
listen_only: False # If True HABApp will not change any value on the openHAB instance.
# Useful for testing rules from another machine.
wait_for_openhab: True # If True HABApp will wait for items from the openHAB instance
# before loading any rules on startup
mqtt:
connection:
identifier: HABApp
host: ''
port: 8883
user: ''
password: ''
tls:
enabled: false # Enable TLS for the connection
insecure: false # Validate server hostname in server certificate
ca cert: '' # Path to a CA certificate that will be treated as trusted
# (e.g. when using a self signed certificate)
subscribe: # Changes to Subscribe get picked up without restarting HABApp
qos: 0 # Default QoS for subscribing
topics:
- '#' # Subscribe to this topic, qos is default QoS
- ['my/topic', 1] # Subscribe to this topic with explicit QoS
publish:
qos: 0 # Default QoS when publishing values
retain: false # Default retain flag when publishing values
general:
listen_only: False # If True HABApp will not publish any value to the broker.
# Useful for testing rules from another machine.
It’s possible to use environment variables and files (e.g. docker secrets) in the configuration. See the easyconfig documentation for the exact syntax and examples.
Configuration Reference
All possible configuration options are described here. Not all entries are created by default in the config file and one should take extra care when changing those entries.
- settings ApplicationConfig
Structure that contains the complete configuration
-
field directories:
DirectoriesConfig
[Optional]
-
field habapp:
HABAppConfig
[Optional]
-
field location:
LocationConfig
[Optional]
-
field mqtt:
MqttConfig
[Optional]
-
field openhab:
OpenhabConfig
[Optional]
-
field directories:
Directories
Location
- settings LocationConfig
location where the instance is running. Is used to calculate Sunrise/Sunset and holidays.
MQTT
- settings MqttConfig
MQTT configuration
-
field connection:
Connection
[Optional]
-
field connection:
Connection
- settings Connection
-
-
field identifier:
str
= 'HABApp-yiCuZsugllmxs' Identifier that is used to uniquely identify this client on the mqtt broker.
-
field tls:
TLSSettings
[Optional]
-
field identifier:
TLS
Subscribe
Publish
General
Openhab
- settings OpenhabConfig
-
field connection:
Connection
[Optional]
-
field connection:
Connection
- settings Connection
- settings Websocket
-
field event filter:
WebsocketEventFilter
[Optional] Configuration of server side event filters which will be applied to the websocket connection.
-
field maximum message size:
ByteSize
= '4Mib' Maximum message size for a websocket message. Increase only if you get error messages or disconnects e.g. if you use large images.
-
field event filter:
Ping
General
HABApp
- settings HABAppConfig
HABApp internal configuration. Only change values if you know what you are doing!
-
field debug:
DebugConfig
[Optional]
-
field logging:
LoggingConfig
[Optional]
-
field thread pool:
ThreadPoolConfig
[Optional]
-
field debug:
ThreadPool
Logging
Debug
- settings DebugConfig
Debugging options for HABApp
-
field periodic traceback:
PeriodicTracebackDumpConfig
[Optional]
-
field traceback on shutdown signal:
bool
= False Dump the traceback of all currently running threads into a file when receiving a shutdown signal. Not available on Windows!
-
field watch event loop:
WatchEventLoopConfig
[Optional]
-
field periodic traceback:
- settings PeriodicTracebackDumpConfig
Periodically dump the traceback of all currently running threads into a file
- settings WatchEventLoopConfig
Watch the asyncio event loop. If the loop is blocked dump the traceback of all running threads and shut down HABApp