add bundle:sdm630_mqtt
This commit is contained in:
parent
f0ebed5dba
commit
01a8d7a6db
4 changed files with 149 additions and 0 deletions
21
bundles/sdm630_mqtt/files/sdm630_printout.service
Normal file
21
bundles/sdm630_mqtt/files/sdm630_printout.service
Normal file
|
@ -0,0 +1,21 @@
|
|||
[Unit]
|
||||
Description=SDM630 stats printout
|
||||
Conflicts=getty@tty1.service
|
||||
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
|
||||
|
||||
[Service]
|
||||
User=sdm630_mqtt
|
||||
Group=sdm630_mqtt
|
||||
ExecStart=/opt/sdm630_mqtt/venv/bin/python printout.py /opt/sdm630_mqtt/config.toml
|
||||
WorkingDirectory=/opt/sdm630_mqtt/src
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardInput=tty
|
||||
StandardOutput=tty
|
||||
StandardError=journal
|
||||
TTYPath=/dev/tty1
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
14
bundles/sdm630_mqtt/files/sdm630_to_mqtt.service
Normal file
14
bundles/sdm630_mqtt/files/sdm630_to_mqtt.service
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Unit]
|
||||
Description=SDM630-to-MQTT bridge
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=sdm630_mqtt
|
||||
Group=sdm630_mqtt
|
||||
ExecStart=/opt/sdm630_mqtt/venv/bin/python sdm630_mqtt.py /opt/sdm630_mqtt/config.toml
|
||||
WorkingDirectory=/opt/sdm630_mqtt/src
|
||||
Restart=always
|
||||
RestartSec=1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
76
bundles/sdm630_mqtt/items.py
Normal file
76
bundles/sdm630_mqtt/items.py
Normal file
|
@ -0,0 +1,76 @@
|
|||
directories['/opt/sdm630_mqtt/src'] = {}
|
||||
|
||||
git_deploy['/opt/sdm630_mqtt/src'] = {
|
||||
'repo': 'https://git.franzi.business/kunsi/sdm630_mqtt.git',
|
||||
'rev': 'main',
|
||||
'triggers': {
|
||||
'action:sdm630_mqtt_install_deps',
|
||||
},
|
||||
}
|
||||
|
||||
actions['sdm630_mqtt_create_virtualenv'] = {
|
||||
'command': 'python3 -m virtualenv /opt/sdm630_mqtt/venv',
|
||||
'unless': 'test -x /opt/sdm630_mqtt/venv/bin/python3',
|
||||
'needs': {
|
||||
'directory:/opt/sdm630_mqtt/src',
|
||||
},
|
||||
}
|
||||
|
||||
actions['sdm630_mqtt_install_deps'] = {
|
||||
'command': 'cd /opt/sdm630_mqtt/src && /opt/sdm630_mqtt/venv/bin/pip install -r requirements.txt',
|
||||
'triggered': True,
|
||||
'needs': {
|
||||
'action:sdm630_mqtt_create_virtualenv',
|
||||
},
|
||||
}
|
||||
|
||||
users['sdm630_mqtt'] = {
|
||||
'home': '/opt/sdm630_mqtt',
|
||||
}
|
||||
|
||||
files['/opt/sdm630_mqtt/config.toml'] = {
|
||||
'content': repo.libs.faults.dict_as_toml(node.metadata.get('sdm630_mqtt/config')),
|
||||
'triggers': set(),
|
||||
}
|
||||
|
||||
if node.has_bundle('telegraf'):
|
||||
files['/opt/sdm630_mqtt/config.toml']['triggers'].add('svc_systemd:telegraf:restart')
|
||||
git_deploy['/opt/sdm630_mqtt/src']['triggers'].add('svc_systemd:telegraf:restart')
|
||||
|
||||
if node.metadata.get('sdm630_mqtt/enable_stats_collection', True):
|
||||
files['/usr/local/lib/systemd/system/sdm630_to_mqtt.service'] = {
|
||||
'triggers': {
|
||||
'action:systemd-reload',
|
||||
'svc_systemd:sdm630_to_mqtt:restart',
|
||||
},
|
||||
}
|
||||
|
||||
svc_systemd['sdm630_to_mqtt'] = {
|
||||
'needs': {
|
||||
'git_deploy:/opt/sdm630_mqtt/src',
|
||||
'action:sdm630_mqtt_install_deps',
|
||||
'file:/usr/local/lib/systemd/system/sdm630_to_mqtt.service',
|
||||
},
|
||||
}
|
||||
|
||||
files['/opt/sdm630_mqtt/config.toml']['triggers'].add('svc_systemd:sdm630_to_mqtt:restart')
|
||||
git_deploy['/opt/sdm630_mqtt/src']['triggers'].add('svc_systemd:sdm630_to_mqtt:restart')
|
||||
|
||||
if node.metadata.get('sdm630_mqtt/enable_local_printout', False):
|
||||
files['/usr/local/lib/systemd/system/sdm630_printout.service'] = {
|
||||
'triggers': {
|
||||
'action:systemd-reload',
|
||||
'svc_systemd:sdm630_printout:restart',
|
||||
},
|
||||
}
|
||||
|
||||
svc_systemd['sdm630_printout'] = {
|
||||
'needs': {
|
||||
'git_deploy:/opt/sdm630_mqtt/src',
|
||||
'action:sdm630_mqtt_install_deps',
|
||||
'file:/usr/local/lib/systemd/system/sdm630_printout.service',
|
||||
},
|
||||
}
|
||||
|
||||
files['/opt/sdm630_mqtt/config.toml']['triggers'].add('svc_systemd:sdm630_printout:restart')
|
||||
git_deploy['/opt/sdm630_mqtt/src']['triggers'].add('svc_systemd:sdm630_printout:restart')
|
38
bundles/sdm630_mqtt/metadata.py
Normal file
38
bundles/sdm630_mqtt/metadata.py
Normal file
|
@ -0,0 +1,38 @@
|
|||
defaults = {
|
||||
'sdm630_mqtt': {
|
||||
'config': {
|
||||
'modbus': {
|
||||
'host': '127.0.0.1',
|
||||
'port': 501,
|
||||
'unit_id': 1,
|
||||
},
|
||||
'mqtt': {
|
||||
'prefix': 'sdm630',
|
||||
'host': '127.0.0.1',
|
||||
'port': 1883,
|
||||
},
|
||||
'printout': {
|
||||
'title': 'SDM630',
|
||||
},
|
||||
'telegraf': {
|
||||
'identifier': 'unknown',
|
||||
},
|
||||
},
|
||||
},
|
||||
'telegraf': {
|
||||
'input_plugins': {
|
||||
'execd': {
|
||||
'sdm630_mqtt': {
|
||||
'command': [
|
||||
'/opt/sdm630_mqtt/venv/bin/python',
|
||||
'/opt/sdm630_mqtt/src/telegraf.py',
|
||||
'/opt/sdm630_mqtt/config.toml',
|
||||
],
|
||||
'signal': 'none',
|
||||
'restart_delay': '1s',
|
||||
'data_format': 'influx',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
Loading…
Reference in a new issue