Added report capability
This commit is contained in:
parent
07c25f1d45
commit
549768f1d1
30
src/app.py
30
src/app.py
@ -4,10 +4,11 @@ import sentry_sdk
|
|||||||
from sentry_sdk.integrations.logging import LoggingIntegration
|
from sentry_sdk.integrations.logging import LoggingIntegration
|
||||||
from utils import config, LoopingTimer
|
from utils import config, LoopingTimer
|
||||||
from signal_processor import SoundSignalProcessor
|
from signal_processor import SoundSignalProcessor
|
||||||
from birbnetes_iot_platform_raspberry import BirbnetesIoTPlatformStatusDriver
|
from birbnetes_iot_platform_raspberry import BirbnetesIoTPlatformStatusDriver, BirbnetesIoTPlatformRecordDriver
|
||||||
from actuator import Loudspeaker
|
from actuator import Loudspeaker
|
||||||
import paho.mqtt.client
|
import paho.mqtt.client
|
||||||
import json
|
import json
|
||||||
|
import requests
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -71,6 +72,24 @@ def mqtt_on_command(client, userdata, message):
|
|||||||
userdata.act()
|
userdata.act()
|
||||||
|
|
||||||
|
|
||||||
|
def do_report():
|
||||||
|
report = {
|
||||||
|
"client": config.DEVICE_ID,
|
||||||
|
"cloud": config.API_URL,
|
||||||
|
"measurements": {
|
||||||
|
"queue": BirbnetesIoTPlatformRecordDriver.get_queue_length()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print("Reporting queue length of", report)
|
||||||
|
|
||||||
|
r = requests.post(config.REPORT_URL, json=report)
|
||||||
|
|
||||||
|
r.raise_for_status()
|
||||||
|
if r.status_code != 201:
|
||||||
|
print(config.REPORT_URL, "Wrong response")
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
"""
|
"""
|
||||||
Main function
|
Main function
|
||||||
@ -83,6 +102,12 @@ def main() -> None:
|
|||||||
loopingtimer = LoopingTimer(function=timer_tick, tick_args=listofabcsignaprocessors, interval=config.TICK_INTERVAL)
|
loopingtimer = LoopingTimer(function=timer_tick, tick_args=listofabcsignaprocessors, interval=config.TICK_INTERVAL)
|
||||||
loopingtimer.start()
|
loopingtimer.start()
|
||||||
|
|
||||||
|
report_timer = None
|
||||||
|
if config.REPORT_URL:
|
||||||
|
print("Setting up queue length reporting...")
|
||||||
|
report_timer = LoopingTimer(function=do_report, tick_args=None, interval=config.REPORT_INTERVAL)
|
||||||
|
report_timer.start()
|
||||||
|
|
||||||
client = paho.mqtt.client.Client(userdata=Loudspeaker(config.ENEMY_SOUNDS), client_id=config.DEVICE_ID)
|
client = paho.mqtt.client.Client(userdata=Loudspeaker(config.ENEMY_SOUNDS), client_id=config.DEVICE_ID)
|
||||||
client.on_connect = mqtt_on_connect
|
client.on_connect = mqtt_on_connect
|
||||||
client.on_disconnect = mqtt_on_disconnect
|
client.on_disconnect = mqtt_on_disconnect
|
||||||
@ -98,6 +123,9 @@ def main() -> None:
|
|||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
logging.info("SIGINT recieved! Stopping...")
|
logging.info("SIGINT recieved! Stopping...")
|
||||||
|
|
||||||
|
if report_timer:
|
||||||
|
report_timer.stop()
|
||||||
|
|
||||||
client.disconnect()
|
client.disconnect()
|
||||||
loopingtimer.stop()
|
loopingtimer.stop()
|
||||||
BirbnetesIoTPlatformStatusDriver.cleanup()
|
BirbnetesIoTPlatformStatusDriver.cleanup()
|
||||||
|
@ -29,4 +29,6 @@ MQTT_PASSWORD = os.getenv("GUARD_MQTT_PASSWORD", None)
|
|||||||
|
|
||||||
SVM_MODEL_ID = os.environ.get("SVM_MODEL_ID")
|
SVM_MODEL_ID = os.environ.get("SVM_MODEL_ID")
|
||||||
|
|
||||||
API_URL = os.environ.get("API_URL", "http://localhost:8080")
|
API_URL = os.environ.get("API_URL", "http://localhost:8080")
|
||||||
|
REPORT_URL = os.environ.get("REPORT_URL", None)
|
||||||
|
REPORT_INTERVAL = float(os.environ.get("REPORT_INTERVAL", 15))
|
||||||
|
Loading…
Reference in New Issue
Block a user