This commit is contained in:
quoije
2022-10-19 03:12:02 -04:00
parent 24f4bafb7f
commit 13f6000768
+55 -27
View File
@@ -1,4 +1,4 @@
from xml.sax import handler from logging import handlers
from requests import get from requests import get
from requests import post from requests import post
from json import loads from json import loads
@@ -14,15 +14,18 @@ haLight = "light.sb50_l4"
haUrl = "http://" + haAddress + ":8123/api/states/" + haLight haUrl = "http://" + haAddress + ":8123/api/states/" + haLight
haHeaders = { haHeaders = {
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI0ZmQ4MzQxNTZjNjg0YThlYTFjY2NiYmNkNWEzYTI4OSIsImlhdCI6MTY2NjExMDcwMiwiZXhwIjoxOTgxNDcwNzAyfQ.5KVla7Y72yKFrWhF01EupQpSHX0Rbr0CQ-LMLW6v6VU", "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI0ZmQ4MzQxNTZjNjg0YThlYTFjY2NiYmNkNWEzYTI4OSIsImlhdCI6MTY2NjExMDcwMiwiZXhwIjoxOTgxNDcwNzAyfQ.5KVla7Y72yKFrWhF01EupQpSHX0Rbr0CQ-LMLW6v6VU",
"content-type": "application/json", "content-type": "application/json"
} }
haResponse = get(haUrl, headers=haHeaders)
haData = loads(haResponse.text)
haLightColor = haData['attributes']['rgb_color']
gsAddress = "http://127.0.0.1:50786" gsAddress = "http://127.0.0.1:50786"
gsGame = "HA_LIGHT_SYNC" gsGame = "HA_LIGHT_SYNC"
gsEvent = "SYNC" gsEvent = "SYNC"
def checkLight():
""" Check HA light color """
haResponse = get(haUrl, headers=haHeaders)
haData = loads(haResponse.text)
return haData['attributes']['rgb_color']
def registerGame(): def registerGame():
"""Registers this application to Engine.""" """Registers this application to Engine."""
print("[+] registerGame()") print("[+] registerGame()")
@@ -35,6 +38,15 @@ def registerGame():
r = post(endpoint, json=payload) r = post(endpoint, json=payload)
print(r.text) print(r.text)
def removeGame():
"""Removes this application from Engine."""
endpoint = f'{gsAddress}/remove_game'
payload = {
"game": gsGame
}
r = post(endpoint, json=payload)
print(r.text)
def removeGameEvent(): def removeGameEvent():
"""Removes a lighting event from Engine.""" """Removes a lighting event from Engine."""
print("[+] removeGameEvent()") print("[+] removeGameEvent()")
@@ -43,47 +55,63 @@ def removeGameEvent():
"game" : gsGame, "game" : gsGame,
"event" : gsEvent "event" : gsEvent
} }
post(endpoint, json=payload) r = post(endpoint, json=payload)
print(r.text)
def bindGameEvent(): def bindGameEvent():
"""Binds a lighting event to Engine.""" """Binds a lighting event to Engine."""
print("[+] bindGameEvent()") print("[+] bindGameEvent()")
endpoint = f'{gsAddress}/register_game_event' endpoint = f'{gsAddress}/bind_game_event'
payload = { payload = {
"game" : gsGame, "game": gsGame,
"event": gsEvent, "event": gsEvent,
"handlers" : "handlers": [{
{ "mode": "color",
"device-type": "rgb-zoned-device", "device-type": "keyboard",
"zone": "two", "zone": "all",
"color": {"red": 0, "green": 255, "blue": 0}, "color": {"red": 255,"green": 0,"blue": 255}
"mode": "color" }]
} }
} r = post(endpoint, json=payload)
post(endpoint, json=payload) print(r.text)
def sendGameEvent(event, kill_switch): def sendGameEvent(kill_switch):
"""Sends a lighting event/frame to Engine.""" """Sends a lighting event/frame to Engine."""
print("[+] sendGameEvent(kill_switch)") print("[+] sendGameEvent(kill_switch)")
if event == "init":
print("ayyy")
elif event == gsEvent:
endpoint = f'{gsAddress}/game_event' endpoint = f'{gsAddress}/game_event'
payload = { payload = {
"game": gsGame, "game": gsGame,
"event": gsEvent, "event": gsEvent,
"data": { "data" : {
"value" : 50 "value": 1
} }
} }
with Session() as s: with Session() as s:
while kill_switch == 0: while kill_switch == 0:
""" DEBUG """
print("[+] loopyloop") print("[+] loopyloop")
s.post(endpoint, json=payload) """ DEBUG """
r = s.post(endpoint, json=payload)
print(r.text)
if kill_switch == 1: break if kill_switch == 1: break
sleep(0.01)
""" DEBUG """
print("[+] HA RGB: " + str(checkLight()[0]) + " " + str(checkLight()[1]) + " " + str(checkLight()[2]))
""" DEBUG """
sleep(1.01)
print("[+] removing game event for debug")
removeGameEvent()
print("[+] removing game for debug")
removeGame()
print("[+] register game for debug")
registerGame()
print("[+] bind game for debug")
bindGameEvent() bindGameEvent()
sendGameEvent(gsEvent, 0) print("[+] send game for debug")
sendGameEvent(0)