Aktuelle Version unhb-mqtt.py
This commit is contained in:
parent
aef0244e63
commit
027c8ba063
1 changed files with 14 additions and 14 deletions
28
unhb-mqtt.py
Normal file → Executable file
28
unhb-mqtt.py
Normal file → Executable file
|
@ -3,9 +3,11 @@ import paho.mqtt.client as mqtt
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
import pyqrcode
|
import pyqrcode
|
||||||
|
import subprocess
|
||||||
from PIL import Image, ImageDraw, ImageFont
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
import cups
|
import cups
|
||||||
from matrix_client.client import MatrixClient
|
from matrix_client.client import MatrixClient
|
||||||
|
from unhb_mqtt_config import *
|
||||||
|
|
||||||
# Druckerinitialisierung
|
# Druckerinitialisierung
|
||||||
conn = cups.Connection()
|
conn = cups.Connection()
|
||||||
|
@ -47,20 +49,12 @@ def get_lastkey():
|
||||||
return lastkey
|
return lastkey
|
||||||
|
|
||||||
|
|
||||||
# Spaceapi definitions
|
|
||||||
space_status = "undefined"
|
|
||||||
# Test SilSon space_json = """{"api": "0.13","space": "UN-Hack-Bar","logo": "https://www.un-hack-bar.de/wp-content/uploads/2018/06/unhb_klein.png","url": "https://un-hack-bar.de","location": {"address": "Morgenstrasse 6, 59423 Unna, Germany","lon": 7.69172,"lat": 51.53575},"contact": {"email": "info@un-hack-bar.de","irc": "irc://irc.hackint.net/c3un","ml": "chaos-unna@lists.ctdo.de","twitter": "@un_hack_bar"},"state": {"open": null,"lastchange": 23},"feeds":{"calendar":{"type":"ical","url":"https://www.un-hack-bar.de/events.ics"}},"issue_report_channels": ["email"],"ext_ccc": "chaostreff"}"""
|
|
||||||
space_json = """{"api": "0.13","space": "UN-Hack-Bar","logo": "https://www.un-hack-bar.de/wp-content/uploads/2018/06/unhb_klein.png","url": "https://un-hack-bar.de","location": {"address": "Morgenstrasse 6, 59423 Unna, Germany","lon": 7.69172,"lat": 51.53575},"contact": {"email": "info@un-hack-bar.de","irc": "irc://irc.hackint.net/c3un","ml": "chaos-unna@lists.ctdo.de","twitter": "@un_hack_bar"},"state": {"open": null,"lastchange": 23},"feeds":{"calendar":{"type":"ical","url":"https://www.un-hack-bar.de/events.ics"}},"issue_report_channels": ["email"],"ext_ccc": "chaostreff", "state": { "icon": { "open": "https://matrix.un-hack-bar.de/_matrix/media/v1/download/matrix.un-hack-bar.de/AwzcZPKZlaFCiDjJGrbmhVqy", "closed": "https://matrix.un-hack-bar.de/_matrix/media/v1/download/matrix.un-hack-bar.de/rYahEOVyPMKJDQfLSnKLeHmn" } } }"""
|
|
||||||
space_obj = json.loads(space_json)
|
space_obj = json.loads(space_json)
|
||||||
|
with open("spaceapi.json", "w") as write_file:
|
||||||
|
json.dump(space_obj, write_file, sort_keys=True)
|
||||||
|
print(json.dumps(space_obj, sort_keys=True, indent=4))
|
||||||
|
|
||||||
|
|
||||||
# Matrix-Bot definitions
|
|
||||||
matrix_bot_user = "DaneelOlivaw" # Bot's username
|
|
||||||
matrix_bot_passwd = "xxxxxxxx" # Bot's password
|
|
||||||
matrix_server = "https://matrix.un-hack-bar.de"
|
|
||||||
matrix_roomid = "!qxbQFatOwXtPBXegqg:matrix.un-hack-bar.de"
|
|
||||||
matrix_open_json = {"url": "mxc://matrix.un-hack-bar.de/AwzcZPKZlaFCiDjJGrbmhVqy"}
|
|
||||||
matrix_closed_json = {"url": "mxc://matrix.un-hack-bar.de/rYahEOVyPMKJDQfLSnKLeHmn"}
|
|
||||||
matrix_unk_json = {"url": "mxc://matrix.un-hack-bar.de/SXmvTOGHLXRsYDCBQncTBhGl"}
|
|
||||||
|
|
||||||
|
|
||||||
# The callback for when the client receives a CONNACK response from the server.
|
# The callback for when the client receives a CONNACK response from the server.
|
||||||
|
@ -85,8 +79,9 @@ def spaceapi():
|
||||||
def on_message(client, userdata, msg):
|
def on_message(client, userdata, msg):
|
||||||
# print(msg.topic+" "+str(msg.payload))
|
# print(msg.topic+" "+str(msg.payload))
|
||||||
print("Received message '" + str(msg.payload) + "' on topic '" + msg.topic + "' with QoS " + str(msg.qos))
|
print("Received message '" + str(msg.payload) + "' on topic '" + msg.topic + "' with QoS " + str(msg.qos))
|
||||||
|
print("current Status of space: " + str(space_obj["state"]["open"]))
|
||||||
if msg.topic == '/UHB/status/public':
|
if msg.topic == '/UHB/status/public':
|
||||||
if msg.payload == "0":
|
if (msg.payload == "0" and not space_obj["state"]["open"]):
|
||||||
# space_obj["state"] = {u'open': True,u'lastchange': time.time()}
|
# space_obj["state"] = {u'open': True,u'lastchange': time.time()}
|
||||||
space_obj["state"]["open"] = True
|
space_obj["state"]["open"] = True
|
||||||
space_obj["state"]["lastchange"] = time.time()
|
space_obj["state"]["lastchange"] = time.time()
|
||||||
|
@ -94,7 +89,8 @@ def on_message(client, userdata, msg):
|
||||||
with open("spaceapi.json", "w") as write_file:
|
with open("spaceapi.json", "w") as write_file:
|
||||||
json.dump(space_obj, write_file, sort_keys=True)
|
json.dump(space_obj, write_file, sort_keys=True)
|
||||||
matrix_room.send_state_event("m.room.avatar", matrix_open_json)
|
matrix_room.send_state_event("m.room.avatar", matrix_open_json)
|
||||||
elif msg.payload == "1":
|
matrix_room.send_text("Der Space ist jetzt offen.")
|
||||||
|
elif (msg.payload == "1" and space_obj["state"]["open"] ):
|
||||||
# space_obj["state"] = {b'open': False,u'lastchange': time.time()}
|
# space_obj["state"] = {b'open': False,u'lastchange': time.time()}
|
||||||
space_obj["state"]["open"] = False
|
space_obj["state"]["open"] = False
|
||||||
space_obj["state"]["lastchange"] = time.time()
|
space_obj["state"]["lastchange"] = time.time()
|
||||||
|
@ -102,6 +98,9 @@ def on_message(client, userdata, msg):
|
||||||
json.dump(space_obj, write_file, sort_keys=True)
|
json.dump(space_obj, write_file, sort_keys=True)
|
||||||
print(json.dumps(space_obj, sort_keys=True, indent=4))
|
print(json.dumps(space_obj, sort_keys=True, indent=4))
|
||||||
matrix_room.send_state_event("m.room.avatar", matrix_closed_json)
|
matrix_room.send_state_event("m.room.avatar", matrix_closed_json)
|
||||||
|
matrix_room.send_text("Der Space ist jetzt geschlossen.")
|
||||||
|
p = subprocess.Popen('/home/amdash/fritzPower/allOff.sh')
|
||||||
|
p.wait()
|
||||||
if msg.topic == '/UHB/label/create':
|
if msg.topic == '/UHB/label/create':
|
||||||
new_keys = int(msg.payload)
|
new_keys = int(msg.payload)
|
||||||
print("anzahl neu zu generierender label: " + str(new_keys))
|
print("anzahl neu zu generierender label: " + str(new_keys))
|
||||||
|
@ -133,6 +132,7 @@ matrix_client = MatrixClient(matrix_server)
|
||||||
matrix_client.login_with_password_no_sync(matrix_bot_user, matrix_bot_passwd)
|
matrix_client.login_with_password_no_sync(matrix_bot_user, matrix_bot_passwd)
|
||||||
matrix_room = matrix_client.join_room(matrix_roomid)
|
matrix_room = matrix_client.join_room(matrix_roomid)
|
||||||
matrix_room.send_state_event("m.room.avatar", matrix_unk_json)
|
matrix_room.send_state_event("m.room.avatar", matrix_unk_json)
|
||||||
|
matrix_room.send_text("Ich wurde neu gestartet... kein Plan ob der Raum gerade offen oder geschlossen ist.")
|
||||||
|
|
||||||
# Blocking call that processes network traffic, dispatches callbacks and
|
# Blocking call that processes network traffic, dispatches callbacks and
|
||||||
# handles reconnecting.
|
# handles reconnecting.
|
||||||
|
|
Loading…
Reference in a new issue