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