Controller/tsgrain_controller/config.py

87 lines
2.7 KiB
Python

# coding=utf-8
import cyra
class Config(cyra.Config):
builder = cyra.ConfigBuilder()
builder.comment('Anzahl Bewaesserungszonen')
n_zones = builder.define('n_zones', 7)
builder.comment('Pfad der Datenbankdatei')
db_path = builder.define('db_path', '')
builder.comment('Manuelle Bewaesserungszeit in Sekunden')
manual_time = builder.define('manual_time', 300)
builder.comment('Port für GRPC-Kommunikation')
grpc_port = builder.define('grpc_port', '[::]:50051')
builder.comment('Debug-Ausgaben loggen')
log_debug = builder.define('log_debug', False)
builder.push('io')
builder.comment('ID des I2C-Bus')
i2c_bus_id = builder.define('i2c_bus_id', 0)
builder.comment(
'GPIO-Pin, mit dem der Interrupt-Pin des MCP23017 verbunden ist')
gpio_interrupt = builder.define('gpio_interrupt', 17)
builder.comment('Entprellzeit in Sekunden')
gpio_delay = builder.define('gpio_delay', 0.05)
builder.pop()
builder.comment('Befehle für Konfiguration von Datum/Uhrzeit')
builder.push('timecfg')
builder.comment(
'Datum/Uhrzeit setzen. Verwende Python-strftime()-Platzhalter.')
cmd_set_datetime = builder.define('cmd_set_datetime',
"date -s '%Y-%m-%d %H:%M:%S'")
builder.comment('Zeitzone im Unix-Format abrufen')
cmd_get_timezone = builder.define('cmd_get_timezone', 'cat /etc/timezone')
builder.comment(
'Zeitzone setzen. Verwende {TZ} als Platzhalter für die Zeitzone.')
cmd_set_timezone = builder.define('cmd_set_timezone',
"timedatectl set-timezone '{TZ}'")
builder.pop()
builder.comment('Ausgaenge')
output_devices = builder.define(
'output_devices', {
'VALVE_1': '0x27/B0/!',
'VALVE_2': '0x27/B1/!',
'VALVE_3': '0x27/B2/!',
'VALVE_4': '0x27/B3/!',
'VALVE_5': '0x27/B4/!',
'VALVE_6': '0x27/B5/!',
'VALVE_7': '0x27/B6/!',
'LED_Z_1': '0x27/A0',
'LED_Z_2': '0x27/A1',
'LED_Z_3': '0x27/A2',
'LED_Z_4': '0x27/A3',
'LED_Z_5': '0x27/A4',
'LED_Z_6': '0x27/A5',
'LED_Z_7': '0x27/A6',
'LED_M_AUTO': '0x23/B0',
'LED_M_MAN': '0x23/B1',
})
builder.comment('Eingaenge')
input_devices = builder.define(
'input_devices', {
'BT_Z_1': '0x23/A0/!',
'BT_Z_2': '0x23/A1/!',
'BT_Z_3': '0x23/A2/!',
'BT_Z_4': '0x23/A3/!',
'BT_Z_5': '0x23/A4/!',
'BT_Z_6': '0x23/A5/!',
'BT_Z_7': '0x23/A6/!',
'BT_MODE': '0x23/A7/!',
})