-
v1.5.2 in Beta, Launch!
This is meant as a plugin to integrate the newish Unifi Protect api to your Eisy. The api is a bit limited but is growing as time goes on. By sticking to the api we stay out of needing local logins or the issue of global/local alarms (search the unifi forums if you're interested). You can see in the log I changed the name to stay out of the way of the legacy UniFi Protect project. Mostly the focus here is to get camera and sensor events to the Eisy so you can use them in your programs. Cameras: People, Animal, Faces(generic), Vehicle(generic), Line Cross, Motion, All the specific audio. Sensors: Motion, Door, Temp, Humidity, Tamper, etc. Doorbells: (I don't have one yet as they are not in stock but the api has them there) The indicators have been set up in Status and Control so you can use them in your programs. As always give me feedback and/or requests, but I am going to limit this to the api in its current form and grow with it. So no local login or other work arounds. ## 1.5.2 - Complete NLS command names for all nodedefs (fixes missing Control triggers on AI+Audio cameras) - Add CONNECTED/DISCONNECTED control commands for online/offline transitions - Add profile test ensuring every send command has an ISY program label - Rename project to Unifi Protect api udi-unifiprotectapi-pg3x) ## 1.5.1 - Fix line crossing ignored on public API cameras (``hasLineCrossing`` omitted from featureFlags) - Log line crossing events at INFO for easier EISY troubleshooting ## 1.5.0 - Capability-based camera nodedefs: detect, AI (face/LPR/line), AI+audio, doorbell - Expand camera events: line crossing, audio detections (smoke, CO, siren, etc.), doorbell ring - Capability-based sensor nodedefs: contact, motion, leak, glass, environmental — no unused drivers at 0 - Add temperature_units config (C or F; default F) for UP Sense environmental sensors - Detection and sensor state changes emit ISY control commands reportCmd) for program triggers - Document Public API scope, read-only design, and Global Alarm Manager alignment in README ## 1.3.2 - Fix sensor live updates dropped after partial WebSocket messages recalculated capabilities - Only refresh sensor capability map when config fields change; infer modelKey from device id - Apply driver updates only for fields present in each WebSocket payload ## 1.3.1 - Fix sensor Connected flapping on WebSocket partial updates (merge cached state) - Fix environmental UOMs: °C=4, lux=36 (was inches/wind direction) ## 1.3.0 - Add USL / UP Sense sensor nodes via GET /integration/v1/sensors - Per-sensor drivers: motion, contact, leak, tamper, alarm, glass break, temp, humidity, light - Capability-aware driver mapping from Protect featureFlags ## 1.2.0 - Migrate to UniFi Protect Public Integration API (v1) with API-key-only auth - Camera discovery via GET /integration/v1/cameras - Live updates via subscribe/events and subscribe/devices WebSockets - Remove legacy private bootstrap API and username/password configuration - Drop doorbell ringtone/volume commands until official API support is added ## 1.1.0 - Real-time WebSocket motion and smart detection drivers - Doorbell ringtone, volume, and repeat control - Standard PG3x bootstrap, server.json, and version sync tooling
-
Tahoma Somfy v0.0.23 to production
Well I know who to talk about if I need to know anything about this device!
-
sjenkins started following v0.50.6 in production and Feature Request: User Accounts & Access Restrictions
-
v3.2.0 in Beta ; fixed yaml load, drive to common
Sorry for a bit of churn but have been working on getting my plugins more common and up to newer UD standards. As I inherited some older pg2 plugins there are a few things. In that process I have uncovered a bug or two. User facing I have fixed the .zip upload to .yaml config file ; this gets stored in the data directory and should survive most UD upgrades coming. Works well on my machine, let me know. Will push to production after a bit. 3.2.0 \ DONE PG3 store manifest (server.json) with executable udi-virtual-pg3x.py — use Update from the store \ DONE rename entry script from udi-Virtual-pg3.py to udi-virtual-pg3x.py \ DONE load devFile YAML from data/ when given a bare filename (matches MQTT devfile behavior) \ DONE standard bootstrap; VersionHistory.md renamed to CHANGELOG.md \ DONE developer toolchain: uv, pytest profile sync test, Makefile, CONTRIBUTING (runtime install unchanged: install.sh + requirements.txt) 3.1.29 \ DONE upgrade dependencies to address Dependabot security alerts (aiohttp, requests, urllib3, ujson, black, and others) \ DONE setuptools remains pinned <81 for pyisy/pkg_resources compatibility (udi_interface Node import) 3.1.28 \ DONE fix Controller/Temp ready_event poll gating (.is_set) \ DONE temp reset_stats clears prevVal; CtoF/FtoC mutual exclusion \ DONE VirtualTempC commands match nodedef; QUERY in nodedefs \ DONE onDelay TIMER report; generic SETST naming; NLS ctl QUERY typo
-
v0.50.10 in beta : fixes and making common
Fixed where there is a delay at normal startup for the waiting on user connection message to clear. As well have fixed the upload to the data folder for your devfile. This and other communications and moving to the modern UD standards on things. Tests out on my system, give it a try: ## 0.50.10 - Fix stop() crash on early shutdown: remove legacy mqttc teardown path that raised AttributeError when discovery failed before the MQTT bridge was created (common during eisy-ui config) ## 0.50.9 - Clear MQTT waiting notice promptly after broker connects: drain Paho callbacks at startup and at DISCOVER so "Waiting on user MQTT connection" does not linger for a full poll cycle when the broker is already up - Fix devfile path resolution: bare filename (e.g. virtualconfig.yaml) resolves to data/<name>; empty devfile no longer silently loads mqtt-devices.yaml — use an explicit devfile or devlist - Fix startup log (was incorrectly labeled "Virtual Devices") - PG3 store manifest server.json) with executable udi-mqtt-pg3x.py — use Update from the store - Rename entry script from mqtt-poly.py to udi-mqtt-pg3x.py - Standard bootstrap (error handling; version in VERSION / profile/version.txt / server.json) - Developer toolchain: uv, pytest profile sync test, Makefile, CONTRIBUTING (runtime install unchanged: install.sh + requirements.txt)
-
v0.50.8 in production : debug
Pushing to production the bugfix @mike2545 found for us. ## 0.50.8 - Enable Paho MQTT automatic reconnect with exponential backoff (2–30s) - Start with connect_async() and keep retrying when the broker is offline at startup - Show a persistent notice while waiting for or recovering the user MQTT connection - Reject publishes while disconnected instead of silently dropping commands - Resubscribe to status topics only after a successful connect callback - Defer MQTT connect/disconnect handling to the Polyglot thread to avoid races - Subscribe only newly discovered topics during DISCOVER; skip node queries on reconnect - Add on_connect_fail logging for TCP connection failures before CONNACK
-
Hunter Douglas BETA v1.14.0
Another beta before production, I have been working on making my plugins more common and to UD current standards. This should all be back office. Tests well on my system, let me know how it goes. ## 1.14.0 - DONE PG3 store manifest server.json) with executable udi-hunterdouglas-pg3x.py - DONE rename entry script from hunterdouglas-poly.py to udi-hunterdouglas-pg3x.py (use Update from the store; delete/reinstall if the node server fails to start) - DONE standard bootstrap (error handling, version in VERSION / profile/version.txt / server.json) - DONE rename versionHistory.md to CHANGELOG.md (template standard) - DONE default branch and documentation links aligned with udi-hunterdouglas-pg3x naming - DONE developer toolchain: uv, pytest profile sync test, Makefile (runtime install unchanged: install.sh + requirements.txt) - DONE includes aiohttp 3.14.3 security updates from 1.13.6 ## 1.13.6 - DONE package updates "dependabot" — aiohttp 3.14.3 security fixes ## 1.13.5 - DONE sync versionHistory.md with udi-hunterdouglas-pg3x.py; older history in versionHistory.md only - DONE fix ready_event poll checks (Controller, Shade, Scene) - DONE fix updateAllFromServer throttling and in-progress guard - DONE fix parameterHandler startup flag after checkParams - DONE replace eval() with json/ast parsing for gatewayip list - DONE accept gateway hostnames in addition to IP addresses - DONE thread-safe stale gateway event cleanup - DONE reset controller event_polling_in on thread exit - DONE add HTTP GET timeout to match PUT - DONE G3 shade discovery sets roomId and default batteryStatus - DONE Shade updateData null guards for missing shade data - DONE fix battery-alert event batteryLevel key handling - DONE fix Scene Gen2 active check (generation not gateway IP) - DONE safe scene-deactivated remove from sceneIdsActive - DONE consolidate PowerView URL constants into utils/urls.py - DONE consolidate gateway event lookup helpers in utils/gateway_events.py - DONE shared start_event_poll_thread helper for node event polling - DONE fix start_event_poll_thread when called from Controller - DONE get_gateway_event wait timeout so pollers cannot block indefinitely - DONE SSE Not Found handling restarts stream without stopping node pollers - DONE G2 updateAllFromServerG2 fails if rooms/shades/scenes fetch fails
-
v0.0.24 to production
Small improvement to clear the server connection error quicker during normal start. Everything else is me getting my plugins more common to and to UD standards. Let me know how it goes on yours, worked for my set-up. ## 0.0.24 - Clear server error sooner when the TaHoma gateway recovers: auto-reconnect restores controller Connection status (ST=1) and clears the Polyglot error notice without a NodeServer restart - PG3 store manifest server.json) with executable udi-tahoma-pg3x.py — use Update from the store (validated on beta) - Rename entry script from udi-tahoma-pg3x (no extension) to udi-tahoma-pg3x.py - Standard bootstrap (error handling; version in VERSION / profile/version.txt / server.json) - Rename VersionHistory.md to CHANGELOG.md (template standard) - Developer toolchain: uv, pytest profile sync test, Makefile, CONTRIBUTING (runtime install unchanged: install.sh + requirements.txt)
-
v0.50.6 in production
Thanks for pointing out the opportunity!
-
v0.50.8 in beta : debug
Based on a bug report from @mike2545 I have pushed a bugfix for external mqtt servers which also benefits stability for the whole plugin. Give it a try, then I will push to production. ## 0.50.8 - Enable Paho MQTT automatic reconnect with exponential backoff (2–30s) - Start with connect_async() and keep retrying when the broker is offline at startup - Show a persistent notice while waiting for or recovering the user MQTT connection - Reject publishes while disconnected instead of silently dropping commands - Resubscribe to status topics only after a successful connect callback - Defer MQTT connect/disconnect handling to the Polyglot thread to avoid races - Subscribe only newly discovered topics during DISCOVER; skip node queries on reconnect - Add on_connect_fail logging for TCP connection failures before CONNACK
-
v0.50.6 in production
@mike2545 just pushed a beta v0.50.8 to the non-production store, give it a try thanks again
-
v0.50.6 in production
@mike2545 , good find, this looks like its not new to this version but has been around a bit. I have not been testing with an external mqtt server but likely should add this to my tests. I would normally say to just write a pull request but today the repo is on the move (should not effect downloads or updates) and may move twice before the day is up. Can you attach your patch files in a response & I will incorporate them into the solution, likely with a test or two to lock it in. Again, thanks so much for the thoughtful bug report!
-
IoX 6.1.1 let's discuss it!
, if it's a local only plugin, you need to reinstall it. @Michel Kohanim , Just to be clear, local only, with no beta or production with same id, or all local? Thx
-
v0.50.7 in beta : dependabot updates
should just be simple dependabot updates, no user facing changes. ## 0.50.7 - Bump pip dependencies in Pipfile.lock to resolve 12 Dependabot security alerts - urllib3 2.5.0 → 2.7.0, requests 2.32.5 → 2.33.0, pytest 7.4.4 → 9.0.3, and related transitive updates
-
v3.1.29 in Beta ; dependabot & branch cleanup
@Guy Lavoie ,Should not be customer facing but I treat any change with suspicion, that’s why I roll from local to beta to production.
-
Hunter Douglas BETA v1.13.6
Dependabot updates: VERSION = "1.13.6" """ 1.13.6 DONE package updates "dependabot" — aiohttp 3.14.3 security fixes