started work on pulling from config, setting up systemd services
This commit is contained in:
parent
d45d7c4a8a
commit
f41dfc4f86
6 changed files with 57 additions and 10 deletions
0
README.md
Normal file
0
README.md
Normal file
16
barco@.service
Normal file
16
barco@.service
Normal 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
|
||||
|
|
@ -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
4
generator_wrapper.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
poetry run python3 ~/unit_generator.py
|
5
install.sh
Normal file
5
install.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
poetry install
|
||||
cp ./generator_wrapper.sh /usr/lib/systemd/systemd-generators
|
||||
|
17
unit_generator.py
Executable file
17
unit_generator.py
Executable 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')
|
Loading…
Reference in a new issue