28 lines
677 B
GDScript3
28 lines
677 B
GDScript3
|
const HASS_API = preload ("../hass.gd")
|
||
|
|
||
|
signal on_authenticated()
|
||
|
|
||
|
var api: HASS_API
|
||
|
var url: String
|
||
|
var token: String
|
||
|
|
||
|
var authenticated := false
|
||
|
|
||
|
func _init(hass: HASS_API, url: String, token: String):
|
||
|
self.api = hass
|
||
|
self.url = url
|
||
|
self.token = token
|
||
|
|
||
|
func handle_message(message):
|
||
|
match message["type"]:
|
||
|
"auth_required":
|
||
|
api.send_packet({"type": "auth", "access_token": self.token})
|
||
|
"auth_ok":
|
||
|
authenticated = true
|
||
|
on_authenticated.emit()
|
||
|
"auth_invalid":
|
||
|
EventSystem.notify("Failed to authenticate with Home Assistant. Check your token and try again.", EventNotify.Type.DANGER)
|
||
|
api.handle_disconnect()
|
||
|
|
||
|
func on_disconnect():
|
||
|
authenticated = false
|