added ip address writing to daemon

This commit is contained in:
Joel Klimont 2021-10-01 00:24:08 +02:00
parent 6eef4e7aa4
commit 7f00196680
3 changed files with 34 additions and 28 deletions

View file

@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi
-d "python3-pigpio" \ -d "python3-pigpio" \
-d "python3-numpy" \ -d "python3-numpy" \
-d "ffmpeg" \ -d "ffmpeg" \
-v 0.1.5-1 -t deb setup.py -v 0.2.1-0 -t deb setup.py
# --deb-changelog changelog \ # --deb-changelog changelog \
# --deb-upstream-changelog changelog \ # --deb-upstream-changelog changelog \

View file

@ -7,33 +7,39 @@ import LogstashLogging
from LogstashLogging import logstash_logger from LogstashLogging import logstash_logger
from threading import Thread from threading import Thread
import logging import logging
import socket
RUN_CHECK = False RUN_IP_CHECK = False
try: try:
from Battery import Battery from compLib.Display import Display
from Buzzer import Buzzer
RUN_CHECK = True
except Exception as e: except Exception as e:
logstash_logger.error(f"unable to import battery or buzzer in daemon -> {str(e)}") logstash_logger.warning(f"Could not import display for battery output {str(e)}")
__run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\""""
STREAM_RASPI = False if os.getenv("STREAM_RASPI", "false") == "false" else True STREAM_RASPI = False if os.getenv("STREAM_RASPI", "false") == "false" else True
IP_OUTPUT = False if os.getenv("IP_OUTPUT", "false") == "false" else True
def check_battery(): def get_ip():
while True: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
time.sleep(2) try:
battery = 0 s.connect(('10.255.255.255', 1))
try: IP = s.getsockname()[0]
battery = Battery.percent() except Exception:
except Exception as e: IP = '127.0.0.1'
logstash_logger.error(f"could not check battery -> {str(e)}") finally:
if -100 <= battery <= 15: s.close()
logstash_logger.warning(f"LOW BATTERY DETECTED: '{battery}'") return IP
Buzzer.set(True)
time.sleep(1)
Buzzer.set(False) def write_ip_to_screen():
while not os.getenv("IP_OUTPUT", "false") == "false":
ip = str(get_ip())
logstash_logger.info(f"writing {ip} to display")
Display.write(1, ip)
time.sleep(60)
if __name__ == '__main__': if __name__ == '__main__':
@ -43,12 +49,12 @@ if __name__ == '__main__':
logstash_logger.warning("Warning, old systemd version detected") logstash_logger.warning("Warning, old systemd version detected")
systemd.daemon.notify('READY=1') systemd.daemon.notify('READY=1')
logstash_logger.info("starting battery checker") logstash_logger.info("starting ip output")
battery_checker = None ip_output = None
if RUN_CHECK: if RUN_IP_CHECK and IP_OUTPUT:
try: try:
battery_checker = threading.Thread(target=check_battery) ip_output = threading.Thread(target=write_ip_to_screen)
battery_checker.start() ip_output.start()
logstash_logger.info("starting battery checker - DONE") logstash_logger.info("starting battery checker - DONE")
except Exception as e: except Exception as e:
logstash_logger.error(f"could not start battery checker -> {str(e)}") logstash_logger.error(f"could not start battery checker -> {str(e)}")
@ -59,8 +65,8 @@ if __name__ == '__main__':
logstash_logger.error("gstreamer stopped...") logstash_logger.error("gstreamer stopped...")
else: else:
logstash_logger.info("not starting gstreamer background process and only checking for battery") logstash_logger.info("not starting gstreamer background process and only checking for battery")
if battery_checker is not None: if ip_output is not None:
battery_checker.join() ip_output.join()
else: else:
logstash_logger.info("battery checker failed to initialize.. sleeping for a day, good night") logstash_logger.info("ip display output failed to initialize.. sleeping for a day, good night")
time.sleep(60*60*24) time.sleep(60*60*24)

View file

@ -12,7 +12,7 @@ else:
setuptools.setup( setuptools.setup(
name="complib", name="complib",
version="0.1.5-1", version="0.2.1-0",
author="F-WuTs", author="F-WuTs",
author_email="--", author_email="--",
description="", description="",