started work on pulling from config, setting up systemd services

This commit is contained in:
katsu 2025-01-14 23:01:44 +01:00
parent d45d7c4a8a
commit f41dfc4f86
6 changed files with 57 additions and 10 deletions

0
README.md Normal file
View file

16
barco@.service Normal file
View file

@ -0,0 +1,16 @@
[Unit]
Description=Barco projector control
After=mqtt_init.service
[Service]
ExecStart=/usr/bin/python3 /home/rpi/barco_telnet_control.py %name
User=rpi
Group=rpi
Type=simple
Restart=always
[Install]
WantedBy=mqtt_init.service

View file

@ -4,6 +4,7 @@ import aiomqtt
import telnetlib3
import toml
from socket import gethostname
import sys
mainBarcoIP = '192.168.192.12'
sideBarcoIP = '192.168.192.13'
@ -83,22 +84,23 @@ async def barco_telnet_query_status(writer, select: str):
# await asyncio.gather(task_status_query, task_status_reader, task_control)
async def main():
#conf = toml.load('config.toml')
async def main(mqttIP=localhost, barcoIP=localhost, mqttPort=1883, telnetPort=3023):
conf = toml.load('config.toml')
barco
# mainBarcoIP = conf[gethostname()]['projektor_glavni']
# sideBarcoIP = conf[gethostname()]['projektor_stranski']
mainReader, mainWriter = await telnetlib3.open_connection('localhost', 3023)
sideReader, sideWriter = await telnetlib3.open_connection('localhost', 3024)
async with aiomqtt.Client('localhost', 1883) as client:
mainReader, mainWriter = await telnetlib3.open_connection(barcoIP, telnetPort)
#sideReader, sideWriter = await telnetlib3.open_connection('localhost', 3024)
async with aiomqtt.Client(mqttIP, mqttPort) as client:
task_status_query_main = asyncio.create_task(barco_telnet_query_status(mainWriter, 'glavni'))
task_status_reader_main = asyncio.create_task(barco_telnet_read_status(client, mainReader, 'glavni'))
task_control_main = asyncio.create_task(barco_telnet_command(client, mainWriter, 'glavni'))
task_status_query_side = asyncio.create_task(barco_telnet_query_status(sideWriter, 'stranski'))
task_status_reader_side = asyncio.create_task(barco_telnet_read_status(client, sideReader, 'stranski'))
task_control_side = asyncio.create_task(barco_telnet_command(client, sideWriter, 'stranski'))
#task_status_query_side = asyncio.create_task(barco_telnet_query_status(sideWriter, 'stranski'))
#task_status_reader_side = asyncio.create_task(barco_telnet_read_status(client, sideReader, 'stranski'))
#task_control_side = asyncio.create_task(barco_telnet_command(client, sideWriter, 'stranski'))
await asyncio.gather(task_status_query_main, task_status_reader_main, task_control_main,
task_status_query_side, task_status_reader_side, task_control_side)
await asyncio.gather(task_status_query_main, task_status_reader_main, task_control_main)
#task_status_query_side, task_status_reader_side, task_control_side)
### fuj to, ne tk delat
@ -112,4 +114,7 @@ async def main():
# reader, writer = loop.run_until_complete(coro)
# loop.run_until_complete(writer.protocol.waiter_closed)
#mqttIP = sys.argv[1]
#barcoIP = sys.argv[2]
asyncio.run(main())

4
generator_wrapper.sh Normal file
View file

@ -0,0 +1,4 @@
#!/bin/sh
poetry run python3 ~/unit_generator.py

5
install.sh Normal file
View file

@ -0,0 +1,5 @@
#!/bin/sh
poetry install
cp ./generator_wrapper.sh /usr/lib/systemd/systemd-generators

17
unit_generator.py Executable file
View file

@ -0,0 +1,17 @@
#!/bin/python3
import toml
import os
conf: dict
conf = toml.load('./config.toml')
barcos: dict
barcos = conf.get('barco', None)
noviBarcos = barcos.get('novi', None)
stariBarcos = barcos.get('stari', None)
if noviBarcos:
for k,v in noviBarcos.items():
print(f'barco_novi@{k}.service') #to rabjo bit symlinki
os.symlink('./barco@.service', f'./barco@{k}.service')