87 lines
2.7 KiB
Python
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/!',
|
|
})
|