Spaces:
Running
Running
zzstoatzz commited on
Commit ·
f407523
1
Parent(s): 8d91200
no write config option
Browse files
examples/smart_home/src/smart_home/hub.py
CHANGED
|
@@ -18,11 +18,12 @@ hub_mcp = FastMCP(
|
|
| 18 |
@hub_mcp.tool()
|
| 19 |
def hub_status() -> str:
|
| 20 |
"""Checks the status of the main hub and connections."""
|
| 21 |
-
|
| 22 |
-
|
|
|
|
| 23 |
return "Hub OK. Hue Bridge Connected (via phue2)."
|
| 24 |
-
|
| 25 |
-
return "Hub Warning: Hue Bridge connection failed or not attempted
|
| 26 |
|
| 27 |
|
| 28 |
# Add mounting points for other services later
|
|
|
|
| 18 |
@hub_mcp.tool()
|
| 19 |
def hub_status() -> str:
|
| 20 |
"""Checks the status of the main hub and connections."""
|
| 21 |
+
try:
|
| 22 |
+
bridge = Bridge(str(settings.hue_bridge_ip), save_config=False)
|
| 23 |
+
bridge.connect()
|
| 24 |
return "Hub OK. Hue Bridge Connected (via phue2)."
|
| 25 |
+
except Exception as e:
|
| 26 |
+
return f"Hub Warning: Hue Bridge connection failed or not attempted: {e}"
|
| 27 |
|
| 28 |
|
| 29 |
# Add mounting points for other services later
|
examples/smart_home/src/smart_home/lights/server.py
CHANGED
|
@@ -14,7 +14,7 @@ from smart_home.settings import settings
|
|
| 14 |
BRIDGE_IP = str(settings.hue_bridge_ip)
|
| 15 |
|
| 16 |
try:
|
| 17 |
-
bridge = Bridge(BRIDGE_IP)
|
| 18 |
print(f"Attempting connection to Hue Bridge at {BRIDGE_IP} via phue2...")
|
| 19 |
bridge.connect() # Explicitly connect (needed for registration check)
|
| 20 |
print(f"Successfully connected to Hue Bridge at {BRIDGE_IP} via phue2.")
|
|
|
|
| 14 |
BRIDGE_IP = str(settings.hue_bridge_ip)
|
| 15 |
|
| 16 |
try:
|
| 17 |
+
bridge = Bridge(BRIDGE_IP, save_config=False)
|
| 18 |
print(f"Attempting connection to Hue Bridge at {BRIDGE_IP} via phue2...")
|
| 19 |
bridge.connect() # Explicitly connect (needed for registration check)
|
| 20 |
print(f"Successfully connected to Hue Bridge at {BRIDGE_IP} via phue2.")
|
examples/smart_home/uv.lock
CHANGED
|
@@ -82,7 +82,8 @@ wheels = [
|
|
| 82 |
|
| 83 |
[[package]]
|
| 84 |
name = "fastmcp"
|
| 85 |
-
|
|
|
|
| 86 |
dependencies = [
|
| 87 |
{ name = "dotenv" },
|
| 88 |
{ name = "fastapi" },
|
|
@@ -93,32 +94,6 @@ dependencies = [
|
|
| 93 |
{ name = "websockets" },
|
| 94 |
]
|
| 95 |
|
| 96 |
-
[package.metadata]
|
| 97 |
-
requires-dist = [
|
| 98 |
-
{ name = "dotenv", specifier = ">=0.9.9" },
|
| 99 |
-
{ name = "fastapi", specifier = ">=0.115.12" },
|
| 100 |
-
{ name = "mcp", specifier = ">=1.6.0,<2.0.0" },
|
| 101 |
-
{ name = "openapi-pydantic", specifier = ">=0.5.1" },
|
| 102 |
-
{ name = "rich", specifier = ">=13.9.4" },
|
| 103 |
-
{ name = "typer", specifier = ">=0.15.2" },
|
| 104 |
-
{ name = "websockets", specifier = ">=15.0.1" },
|
| 105 |
-
]
|
| 106 |
-
|
| 107 |
-
[package.metadata.requires-dev]
|
| 108 |
-
dev = [
|
| 109 |
-
{ name = "copychat", specifier = ">=0.5.2" },
|
| 110 |
-
{ name = "dirty-equals", specifier = ">=0.9.0" },
|
| 111 |
-
{ name = "ipython", specifier = ">=8.12.3" },
|
| 112 |
-
{ name = "pdbpp", specifier = ">=0.10.3" },
|
| 113 |
-
{ name = "pre-commit" },
|
| 114 |
-
{ name = "pyright", specifier = ">=1.1.389" },
|
| 115 |
-
{ name = "pytest", specifier = ">=8.3.3" },
|
| 116 |
-
{ name = "pytest-asyncio", specifier = ">=0.23.5" },
|
| 117 |
-
{ name = "pytest-flakefinder" },
|
| 118 |
-
{ name = "pytest-xdist", specifier = ">=3.6.1" },
|
| 119 |
-
{ name = "ruff" },
|
| 120 |
-
]
|
| 121 |
-
|
| 122 |
[[package]]
|
| 123 |
name = "h11"
|
| 124 |
version = "0.14.0"
|
|
@@ -130,15 +105,15 @@ wheels = [
|
|
| 130 |
|
| 131 |
[[package]]
|
| 132 |
name = "httpcore"
|
| 133 |
-
version = "1.0.
|
| 134 |
source = { registry = "https://pypi.org/simple" }
|
| 135 |
dependencies = [
|
| 136 |
{ name = "certifi" },
|
| 137 |
{ name = "h11" },
|
| 138 |
]
|
| 139 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 140 |
wheels = [
|
| 141 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 142 |
]
|
| 143 |
|
| 144 |
[[package]]
|
|
@@ -228,14 +203,14 @@ wheels = [
|
|
| 228 |
|
| 229 |
[[package]]
|
| 230 |
name = "phue2"
|
| 231 |
-
version = "0.0.
|
| 232 |
source = { registry = "https://pypi.org/simple" }
|
| 233 |
dependencies = [
|
| 234 |
{ name = "httpx" },
|
| 235 |
]
|
| 236 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 237 |
wheels = [
|
| 238 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 239 |
]
|
| 240 |
|
| 241 |
[[package]]
|
|
@@ -379,31 +354,22 @@ version = "0.1.0"
|
|
| 379 |
source = { editable = "." }
|
| 380 |
dependencies = [
|
| 381 |
{ name = "fastmcp" },
|
| 382 |
-
]
|
| 383 |
-
|
| 384 |
-
[package.optional-dependencies]
|
| 385 |
-
lights = [
|
| 386 |
{ name = "phue2" },
|
| 387 |
]
|
| 388 |
|
| 389 |
[package.dev-dependencies]
|
| 390 |
dev = [
|
| 391 |
{ name = "ruff" },
|
| 392 |
-
{ name = "smart-home", extra = ["lights"] },
|
| 393 |
]
|
| 394 |
|
| 395 |
[package.metadata]
|
| 396 |
requires-dist = [
|
| 397 |
-
{ name = "fastmcp",
|
| 398 |
-
{ name = "phue2"
|
| 399 |
]
|
| 400 |
-
provides-extras = ["lights"]
|
| 401 |
|
| 402 |
[package.metadata.requires-dev]
|
| 403 |
-
dev = [
|
| 404 |
-
{ name = "ruff" },
|
| 405 |
-
{ name = "smart-home", extras = ["lights"] },
|
| 406 |
-
]
|
| 407 |
|
| 408 |
[[package]]
|
| 409 |
name = "sniffio"
|
|
|
|
| 82 |
|
| 83 |
[[package]]
|
| 84 |
name = "fastmcp"
|
| 85 |
+
version = "2.0.0"
|
| 86 |
+
source = { git = "https://github.com/jlowin/fastmcp.git#b6b23d6866249c29dbef7021d305ca62400162c4" }
|
| 87 |
dependencies = [
|
| 88 |
{ name = "dotenv" },
|
| 89 |
{ name = "fastapi" },
|
|
|
|
| 94 |
{ name = "websockets" },
|
| 95 |
]
|
| 96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
[[package]]
|
| 98 |
name = "h11"
|
| 99 |
version = "0.14.0"
|
|
|
|
| 105 |
|
| 106 |
[[package]]
|
| 107 |
name = "httpcore"
|
| 108 |
+
version = "1.0.8"
|
| 109 |
source = { registry = "https://pypi.org/simple" }
|
| 110 |
dependencies = [
|
| 111 |
{ name = "certifi" },
|
| 112 |
{ name = "h11" },
|
| 113 |
]
|
| 114 |
+
sdist = { url = "https://files.pythonhosted.org/packages/9f/45/ad3e1b4d448f22c0cff4f5692f5ed0666658578e358b8d58a19846048059/httpcore-1.0.8.tar.gz", hash = "sha256:86e94505ed24ea06514883fd44d2bc02d90e77e7979c8eb71b90f41d364a1bad", size = 85385 }
|
| 115 |
wheels = [
|
| 116 |
+
{ url = "https://files.pythonhosted.org/packages/18/8d/f052b1e336bb2c1fc7ed1aaed898aa570c0b61a09707b108979d9fc6e308/httpcore-1.0.8-py3-none-any.whl", hash = "sha256:5254cf149bcb5f75e9d1b2b9f729ea4a4b883d1ad7379fc632b727cec23674be", size = 78732 },
|
| 117 |
]
|
| 118 |
|
| 119 |
[[package]]
|
|
|
|
| 203 |
|
| 204 |
[[package]]
|
| 205 |
name = "phue2"
|
| 206 |
+
version = "0.0.3"
|
| 207 |
source = { registry = "https://pypi.org/simple" }
|
| 208 |
dependencies = [
|
| 209 |
{ name = "httpx" },
|
| 210 |
]
|
| 211 |
+
sdist = { url = "https://files.pythonhosted.org/packages/c2/48/8dd58546dd9867e4e1d6ed912a3952e5aea5da49040fb61bd07df59b32d4/phue2-0.0.3.tar.gz", hash = "sha256:c05cb28286880b202da29b825c3124fa6c44119323930fd118a81c20f29be0f9", size = 71925 }
|
| 212 |
wheels = [
|
| 213 |
+
{ url = "https://files.pythonhosted.org/packages/88/58/5d4a080926d1862fac5524ac15fea38fd7b3dcdfa7315734b850e6051c63/phue2-0.0.3-py3-none-any.whl", hash = "sha256:d2717bcfe1f8572e8b6fff305aa7b051b2dc7818eb9f1bff5eb0941f80bde8b2", size = 27535 },
|
| 214 |
]
|
| 215 |
|
| 216 |
[[package]]
|
|
|
|
| 354 |
source = { editable = "." }
|
| 355 |
dependencies = [
|
| 356 |
{ name = "fastmcp" },
|
|
|
|
|
|
|
|
|
|
|
|
|
| 357 |
{ name = "phue2" },
|
| 358 |
]
|
| 359 |
|
| 360 |
[package.dev-dependencies]
|
| 361 |
dev = [
|
| 362 |
{ name = "ruff" },
|
|
|
|
| 363 |
]
|
| 364 |
|
| 365 |
[package.metadata]
|
| 366 |
requires-dist = [
|
| 367 |
+
{ name = "fastmcp", git = "https://github.com/jlowin/fastmcp.git" },
|
| 368 |
+
{ name = "phue2" },
|
| 369 |
]
|
|
|
|
| 370 |
|
| 371 |
[package.metadata.requires-dev]
|
| 372 |
+
dev = [{ name = "ruff" }]
|
|
|
|
|
|
|
|
|
|
| 373 |
|
| 374 |
[[package]]
|
| 375 |
name = "sniffio"
|