Skip to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Jimbo.Automates

Members
  • Joined

  • Last visited

Everything posted by Jimbo.Automates

  1. Thanks, yes I realized I had to put in some money, gave it $20 and used almost $1 tonight creating leak sensor monitors for new ones I installed today. Worked very well, but did make mistakes.
  2. Found one that works: gemini-3.5-flash-lite But would still prefer to use the more advanced models, but will play with this one.
  3. @Michel Kohanim Gemini says: The fact that you are now seeing this same 503 Service Unavailable error across multiple models—including the high-capacity gemini-3.8-flash—confirms that this is a broader, temporary platform-wide capacity issue on Google's end, not an issue with your Polyglot v3 (PG3x) plugin or API key. Here is what is happening and how to handle it in your adapter: 1. It is a Server-Side Capacity IssueA 503 error specifically means that Google's servers simply do not have enough computing power available at this exact moment to service the request. It is distinct from a 429 error, which would mean you hit your personal rate limit. Because you are getting 503s on both Pro and Flash models, the Generative AI API is likely experiencing a significant usage spike or temporary degradation. Upgrading to a paid tier does not resolve 503 errors, as they affect all users when server capacity is exhausted. 2. Implement Exponential Backoff Since your gemini_adapter.py is already smart enough to catch the streaming failure and fall back to standard generateContent, the next step for a robust node server is to implement a retry loop with exponential backoff. Instead of failing the turn immediately when generateContent returns a 503, your code should: Wait 2 seconds, then retry. If it fails again, wait 4 seconds. If it fails again, wait 8 seconds. Add a bit of "random jitter" (e.g., waiting 2.3 seconds instead of exactly 2.0) to prevent your retries from perfectly syncing up with other users retrying at the same time. 3. Wait it OutBecause this is entirely on Google's infrastructure, if exponential backoff still exhausts your retry limit, your only recourse is to let the plugin fail gracefully and wait for the demand spike to subside. These spikes usually resolve as load balancing adjusts to the traffic.
  4. I have a Pro subscription, and Gemini said I can use these: With a Google AI Pro subscription, your API key unlocks the paid tier in Google AI Studio, granting you access to Google's flagship "Pro" tier models that are unavailable to free users. It also removes the lower rate limits found on the free tier and ensures your API prompts are not used to train Google's models. You have access to the following primary models via the API: Pro Models (Advanced Reasoning) Gemini 3.1 Pro Preview (gemini-3.1-pro-preview): The latest flagship model with a 2-million token context window, designed for complex reasoning and coding. Gemini 2.5 Pro (gemini-2.5-pro): The previous generation advanced model. Flash Models (Fast & Multimodal) Gemini 3.8 Flash (gemini-3.8-flash): The newest, most intelligent Flash model engineered for long-horizon software engineering and enterprise workflows. Gemini 3.6 Flash and 3.7 Flash (gemini-3.6-flash, gemini-3.7-flash): Previous generation models for rapid multimodal tasks. Gemini 3.5 Flash and 2.5 Flash (gemini-3.5-flash, gemini-2.5-flash). Flash-Lite Models (High-Volume & Cost-Efficient) Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite): The fastest, most cost-effective 3.5 model for high-throughput execution. Gemini 3.1 Flash-Lite and 2.5 Flash-Lite (gemini-3.1-flash-lite, gemini-2.5-flash-lite).
  5. Tried different models, both give 503: 2026-10-25 18:22:55.860 Thread-11 (main) udi_interface DEBUG udi_interface:write: 2026-10-25 18:22:55 | INFO | httpx | HTTP Request: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:streamGenerateContent?alt=sse&key=__REDACTED___ "HTTP/1.1 503 Service Unavailable" 2026-10-25 18:22:55.861 Thread-11 (main) udi_interface ERROR udi_interface:write: 2026-10-25 18:22:55 | WARNING | unified.adapters.gemini_adapter | Gemini streamGenerateContent failed, falling back to generateContent: Server error '503 Service Unavailable' for url 'https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:streamGenerateContent?alt=sse&key=AQ.Ab8RN6L63oYj-tJ0134CTo_VuK1su2gu1j6upwK6wk5MEnlIQw' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503 Response body: { "error": { "code": 503, "message": "This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.", "status": "UNAVAILABLE" } } Gemini said the url should be as below, generateContent instead of streamGenerateContent https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent?key=YOUR_KEY
  6. Thanks @Michel Kohanim but it's happened 4 times in a row, also seeing these errors 2026-10-25 18:00:06.879 Thread-11 (main) udi_interface ERROR udi_interface:write: 2026-10-25 18:00:06 | WARNING | unified.adapters.gemini_adapter | Gemini streamGenerateContent failed, falling back to generateContent: 2026-10-25 18:03:58.965 Thread-11 (main) udi_interface ERROR udi_interface:write: 2026-10-25 18:03:58 | WARNING | unified.adapters.gemini_adapter | Gemini streamGenerateContent failed, falling back to generateContent: 2026-10-25 18:04:59.161 Thread-11 (main) udi_interface ERROR udi_interface:write: 2026-10-25 18:04:59 | ERROR | unified.run_unified_runtime | unified: turn failed:
  7. Installed with latest, I have paid Gemini because I got a deal so using it but I get a timeout in the plugin log: Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request raise exc from None File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 103, in handle_async_request return await self._connection.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/http11.py", line 136, in handle_async_request raise exc File "/usr/local/lib/python3.11/site-packages/httpcore/_async/http11.py", line 106, in handle_async_request ) = await self._receive_response_headers(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/http11.py", line 177, in _receive_response_headers event = await self._receive_event(timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/http11.py", line 217, in _receive_event data = await self._network_stream.read( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 32, in read with map_exceptions(exc_map): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions raise to_exc(exc) from exc httpcore.ReadTimeout The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/var/eisyui/ns/plugin_8/.local/lib/python3.11/site-packages/unified/run_unified_runtime.py", line 1017, in handler await _run_once(runtime, message, eisy_ui_context, session_id=fallback_session_id) File "/var/eisyui/ns/plugin_8/.local/lib/python3.11/site-packages/unified/run_unified_runtime.py", line 575, in _run_once results = await runtime.handle_query( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/eisyui/ns/plugin_8/.local/lib/python3.11/site-packages/unified/runtime.py", line 403, in handle_query final_text, _ = await loop.run( ^^^^^^^^^^^^^^^ File "/var/eisyui/ns/plugin_8/.local/lib/python3.11/site-packages/unified/loop.py", line 197, in run raw_response = await self.llm_client.generate( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/eisyui/ns/plugin_8/.local/lib/python3.11/site-packages/unified/provider_dispatch_adapter.py", line 145, in generate return await client.generate( ^^^^^^^^^^^^^^^^^^^^^^ File "/var/eisyui/ns/plugin_8/.local/lib/python3.11/site-packages/unified/adapters/gemini_adapter.py", line 257, in generate response = await client.post(url, json=payload) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1859, in post return await self.request( ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1540, in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1629, in send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1657, in _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1730, in _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 393, in handle_async_request with map_httpcore_exceptions(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ReadTimeout
  8. This is the new plugin interface which I've not tried yet. It looks like there is a problem since it says no configuration parameters. Download the log and PM it to me and link to this thread, I'll try to review during the week.
  9. It's a few steps, can you describe which you have done and where the problem is? Make sure to reload the config page as mentioned in #5 (thats a PG3 issue I can't control) and lok under Custom Typed Configuration Parameters for your ecobee. Quick pairing (DISCOVER)Add HomeKit Hub from the PG3 store and start the Node Server. Put the accessory in HomeKit pairing mode (see vendor docs). Confirm it is unpaired from Apple Home and other controllers. IoT / separate VLAN (optional): only when accessories are not on the Polisy primary LAN — see Discovery networks (setup) below. Skip on typical single-LAN installs. On the HomeKit Hub controller node, run DISCOVER. Read Notices on the Node Server Configuration page (Custom section): HomeKit discover includes scan results and a Zeroconf / hub diagnostic summary when the new build is installed. Open Configuration → Custom Typed Configuration Parameters → HomeKit pairing slots. Reload the Configuration page in your browser if the new row does not appear yet (the table refresh button alone may not be enough). Find the row for your device (id and name are filled in by DISCOVER). In HomeKit pairing code (hap_pin), enter the 8-digit code currently shown on the accessory while it is in pairing mode (12345678 or 123-45-678 — either format works). Save. Wait for pairing to finish. A Paired HomeKit device child node should appear; ST should show paired/connected. Check PG3 Notices or logs/debug.log if pairing fails. Order matters: run DISCOVER before entering hap_pin so id/name are prefilled. If you already typed a PIN, clear it, run DISCOVER with the device in pairing mode, then re-enter the current code.
  10. Did you follow the quick start instructions? You have to enter that code in the Homekit hub config as instructed. GitHubudi-poly-ecobee/CONFIG.md at master · UniversalDevicesInc...Contribute to UniversalDevicesInc-PG3/udi-poly-ecobee development by creating an account on GitHub.
  11. Discussing on the issue: https://github.com/UniversalDevicesInc-PG3/udi-poly-kasa/issues/27
  12. @bmercier, @Javi Is this an issue with plugin configuration, the migration or eisy-ui?
  13. @DNewkirk Thanks for the detailed email, and sorry for the delay. Issues should be fixed in 2.0.20 CHANGELOG
  14. HomeKitHub 2.0.19 released for Standard and Professional: CONFIG.md Please see OP for all the information on this Plugin.
  15. Hopefully this will now work with 2.0.19 which will be released soon.
  16. Should be fixed in HomeKitHub 2.0.18 which will be released soon
  17. PG3 Ecobee Node server 4.1.11 is released to production. See the README and CHANGELOG for more information.
  18. @photogeek54 Update to 4.1.11 and confirm @Cosmin Munteanu Update to 4.1.11 and confirm And everyone, please create a new thread if its a new issue instead of posting on this one.
  19. Please restart the plugin, let it run for an hour or so then go to the plugin log page and "Download Log Package" and email that file to me at jimbo.automates@gmail.com with a reference to this forum topic.
  20. When these messages are being displayed and you right click on a node you can't select the options that show up behind them.
  21. Try to pair one of them, then go to the plugin log page and download log package end email that to me with info about the thermostat you are trying to pair, and reference this post so I remember what it's about.
  22. Would be great to integrate support tickets into eisy-ui so it could report all version info and download necessary logs to attached to the ticket.
  23. This is the first production release of the Konnected Standard Production edition. Currently only supports the Konnected BLAQ. I will add support for the White sometime in the near future. See README, CHANGELOG and CONFIGfor more information. If you have issues or questions create a new post in this sub-forum. But if it's a bug please enter it at Konnected Plugin Issues so I can track it better, and if it has been discussed in the forum include a link to the post.
  24. Yes, it's there. I just meant the first time you open eisy-ui and look at programs and have not changed any sorting options it should sort by name ascending by default.
  25. First I'll say eisy-ui is awesome, you guys have done a great job so far. I feel like creating/editing programs is taking a lot more clicks & scrolls compared to the AC. Would be nice to reduce this if possible. When creating programs the AC remembered the last Action which a lot of times is very helpful especially if it's a complicated action like sending a UDMobile notification which requires many clicks to do the same thing, and when a different node is selected have it remember they last way that nodes options were selected. It would be great if UDMobile notification action as made a first class action instead of having to go find the node, but would be really nice if all Notification nodes were first class since I use a few. The "Select Notification Template" modal is great, suggestions: Sort by Name Open with details collapsed, otherwise it can be a lot of scrolling. newlines seem to be ignored when showing body? drag/drop programs to move into a folder cntl & shift click for selecting multiple programs to drag/drop into a folder That's it so far, but will add to this post if I have more suggestions or add yours if you have any. Jim

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.