Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix add light in hue app #993

Merged
merged 19 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
50b3468
Update discover.py
hendriksen-mark Dec 17, 2023
0fb0da6
Update configHandler.py
hendriksen-mark Dec 17, 2023
59d6416
end wake up
hendriksen-mark Dec 25, 2023
0744d29
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Dec 25, 2023
054975b
Update v2restapi.py
hendriksen-mark Dec 26, 2023
1cee7ec
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Dec 26, 2023
8622dd9
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Dec 28, 2023
a4447a2
wrong response
hendriksen-mark Dec 28, 2023
cf35307
add all buttons to response
hendriksen-mark Dec 28, 2023
a48cbd8
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Dec 31, 2023
5e72c8d
Update discover.py
hendriksen-mark Jan 7, 2024
2a55e82
Merge branch 'diyhue:master' into master
hendriksen-mark Jan 7, 2024
253525d
Merge branch 'diyhue:master' into master
hendriksen-mark Jan 20, 2024
dcdbcf7
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Jan 22, 2024
32d64b5
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Feb 5, 2024
68d4ce0
update wake-up
hendriksen-mark Feb 9, 2024
32189d3
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Feb 9, 2024
e15cc9d
Merge branch 'master' of https://github.com/hendriksen-mark/diyHue
hendriksen-mark Feb 14, 2024
4ec90bc
fix add light in hue app
hendriksen-mark Feb 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions BridgeEmulator/configManager/configHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ def load_config(self):
config["elgato"] = {"enabled": True}
if "port" not in config:
config["port"] = {"enabled": False,"ports": [80]}
if "zigbee_device_discovery_info" not in config:
config["zigbee_device_discovery_info"] = {"status": "ready"}

if int(config["swversion"]) < 1958077010:
config["swversion"] = "1958077010"
Expand Down Expand Up @@ -108,6 +110,7 @@ def load_config(self):
"hyperion": {"enabled":True},
"tpkasa": {"enabled":True},
"elgato": {"enabled":True},
"zigbee_device_discovery_info": {"status": "ready"},
}
# load lights
if os.path.exists(self.configDir + "/lights.yaml"):
Expand Down
24 changes: 23 additions & 1 deletion BridgeEmulator/flaskUI/v2restapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
from datetime import datetime
from functions.scripts import behaviorScripts
from pprint import pprint
from lights.discover import scanForLights

logging = logManager.logger.get_logger(__name__)

bridgeConfig = configManager.bridgeConfig.yaml_config

v2Resources = {"light": {}, "scene": {}, "grouped_light": {}, "room": {}, "zone": {
}, "entertainment": {}, "entertainment_configuration": {}, "zigbee_connectivity": {}, "device": {}, "device_power": {},
}, "entertainment": {}, "entertainment_configuration": {}, "zigbee_connectivity": {}, "zigbee_device_discovery": {}, "device": {}, "device_power": {},
"geofence_client": {}}


Expand Down Expand Up @@ -103,6 +104,17 @@ def v2BridgeZigBee():
"type": "zigbee_connectivity"
}

def v2BridgeZigBeeDiscovery():
return{"id": str(uuid.uuid5(
uuid.NAMESPACE_URL, bridgeConfig["config"]["bridgeid"] + 'zigbee_device_discovery')),
"owner": {
"rid": str(uuid.uuid5(uuid.NAMESPACE_URL, bridgeConfig["config"]["bridgeid"] + 'device')),
"rtype": "device"
},
"status": bridgeConfig["config"]["zigbee_device_discovery_info"]["status"],
"type": "zigbee_device_discovery",
}


def v2GeofenceClient():
user = authorizeV2(request.headers)
Expand Down Expand Up @@ -178,6 +190,7 @@ def v2BridgeDevice():
result["services"] = [
{"rid": str(uuid.uuid5(uuid.NAMESPACE_URL, bridge_id + 'bridge')), "rtype": "bridge"},
{"rid": str(uuid.uuid5(uuid.NAMESPACE_URL, bridge_id + 'zigbee_connectivity')), "rtype": "zigbee_connectivity"},
{"rid": str(uuid.uuid5(uuid.NAMESPACE_URL, bridge_id + 'zigbee_device_discovery')), "rtype": "zigbee_device_discovery"},
{"rid": str(uuid.uuid5(uuid.NAMESPACE_URL, bridge_id + 'entertainment')), "rtype": "entertainment"}
]
return result
Expand Down Expand Up @@ -218,6 +231,7 @@ def get(self):
for key, sensor in bridgeConfig["sensors"].items():
if sensor.getZigBee() != None:
data.append(sensor.getZigBee())
data.append(v2BridgeZigBeeDiscovery())
# entertainment
data.append(v2BridgeEntertainment())
for key, light in bridgeConfig["lights"].items():
Expand Down Expand Up @@ -316,6 +330,8 @@ def get(self, resource):
if device != None:
response["data"].append(device)
response["data"].append(v2BridgeDevice()) # the bridge
elif resource == "zigbee_device_discovery":
response["data"].append(v2BridgeZigBeeDiscovery())
elif resource == "bridge":
response["data"].append(v2Bridge())
elif resource == "bridge_home":
Expand Down Expand Up @@ -491,6 +507,8 @@ def get(self, resource, resourceid):
return {"errors": [], "data": [object.getDevice()]}
elif resource == "zigbee_connectivity":
return {"errors": [], "data": [object.getZigBee()]}
elif resource == "zigbee_device_discovery":
return {"errors": [], "data": [object.getZigBeeDiscovery()]}
elif resource == "entertainment":
return {"errors": [], "data": [object.getV2Entertainment()]}
elif resource == "entertainment_configuration":
Expand Down Expand Up @@ -564,6 +582,10 @@ def put(self, resource, resourceid):
attrs['is_at_home'] = putDict['is_at_home']
if hasattr(object, 'update_attr') and callable(getattr(object, 'update_attr')):
object.update_attr(attrs)
elif resource == "zigbee_device_discovery":
if putDict["action"]["action_type"] == "search":
bridgeConfig["config"]["zigbee_device_discovery_info"]["status"] = "active"
Thread(target=scanForLights).start()
else:
return {
"errors": [{
Expand Down
1 change: 1 addition & 0 deletions BridgeEmulator/lights/discover.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ def scanForLights(): # scan for ESP8266 lights and strips
elgato.discover(detectedLights, elgato_ips)
bridgeConfig["temp"]["scanResult"]["lastscan"] = datetime.now().strftime(
"%Y-%m-%dT%H:%M:%S")
bridgeConfig["config"]["zigbee_device_discovery_info"]["status"] = "ready"
for light in detectedLights:
# check if light is already present
lightIsNew = True
Expand Down