-
Notifications
You must be signed in to change notification settings - Fork 0
/
tremendousswampy.py
68 lines (52 loc) · 2.05 KB
/
tremendousswampy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import argparse
import logging
import sys
import paho.mqtt.client as mqtt
from influxdb import InfluxDBClient
from lib.swamp import Swamp
from time import sleep
from settings import PATTERNS
# all the cmdline foo
parser = argparse.ArgumentParser(
description='Daemon for mqtt2influxdb mapping')
parser.add_argument('--test', action="store_true",
dest="test", help='runs all test for the module')
parser.add_argument('--run', action="store_true",
dest="run", help='runs the module as daemon')
parser.add_argument('--verbose', action="store_true", dest="debug", help="verbose console output")
parser.add_argument("--mqtthost", type=str, help="MQTT Host",
default="localhost")
parser.add_argument("--mqttport", type=int, help="MQTT Port", default=1883)
parser.add_argument("--influxhost", type=str,
help="influxdb Host", default="localhost")
parser.add_argument("--influxport", type=int, help="influxdb Port", default=8086)
parser.add_argument("--influxuser", type=str,
help="influxdb User")
parser.add_argument("--influxpass", type=str,
help="influxdb Pass")
parser.add_argument("--influxdb", type=str,
help="influxdb Database")
args = parser.parse_args()
if args.run:
if args.debug:
print("Show debug log on console")
# logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
# influx client
influx_client = InfluxDBClient(
args.influxhost, args.influxport, args.influxuser, args.influxpass, args.influxdb)
# mqtt client
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc) + " to mqtt broker")
mqtt_client = mqtt.Client()
mqtt_client.on_connect = on_connect
mqtt_client.connect(args.mqtthost, args.mqttport, 60)
# Swamp stuff
swamp = Swamp(mqtt_client, influx_client, PATTERNS)
swamp.subscribe()
swamp.loop()
elif args.test:
import pytest
pytest.main([])
else:
pass
# print(args.accumulate(args.integers))