I was thinking, you who have quite a few Shelly devices, a Shelly integration would also be cool!! ![]()
Itâs true that I manage them all under Node-RED for that matter
Well spotted, thereâs a lot to do ^^ Iâm starting to have a small range ^^
Edit:
@pierre-gilles and what about Tuya? I can see that Iâm asking you a lot for these PRs since JanuaryâŠ
Could it fit into this format?
For me, Tuya is a perfect candidate for external integrations. I realize that today Iâm a bottleneck, whereas we could move much faster if you could develop independently. ![]()
I think you can ask Claude to port the work youâve already done to the new external integrations format. Normally, this V1 covers everything Tuya needs. If you identify a limitation, let me know and weâll evolve it.
Same goes for Netatmo, by the way. ![]()
And if, as you develop, you realize that there are missing interface components, APIs, or any other capability, let me know. My goal is really for external integrations to be able to do exactly the same thing as an internal integration.
At the end of the day, thatâs the whole philosophy of this architecture: today, the project progresses in a fairly linear way because many things go through me. I want Gladys to finally leverage the power of the collective and for its development to become exponential rather than linear.
I hadnât given my opinion yet, even though I was following the topic very closely.
I think itâs an excellent idea and especially that everything is so well defined.
It looks like HA, it looks like Jeedom, but itâs definitely Gladys!
The fact that we canât modify the frontend is really the foundation and itâs a great safeguard against developments that go in all directions and are difficult to maintain.
Well, itâs a non-developer saying that, but Iâm one of those who prefer to lock things down from the start to always have something functional afterwards.
That being said, Iâm not sure I understood everything on the dev side: will it work like the Matterbridge plugin factory?
Will a non-dev be able to automatically develop a plugin?
Iâd like to develop a MELCloud Home in addition to the Classic MELCloud that I tried to make with the factory. Unfortunately, there are missing things on the Matter side to manage everything on this air conditioner, for example.
I also have Onkyo and MarantzDenon (for music), Ecovacs (lawn mower robot), Freebox, and why not a watchdog for VM/LXC/docker/computer/servers that I thought Iâd do with the LAN Manager integration (which only does presence).
Thatâs all from me for now ![]()
We can imagine an integration factory in the future, but for now, the main goal is to drastically reduce the barrier to entry for developing integrations and, above all, to make it possible to publish integrations without my review.
The idea is to make the process so simple and accessible that any developer on the project can quickly create integrations without any friction, thus naturally increasing the number of available integrations.
If youâre motivated to help, even if youâre not a developer, you can assist us from the very beginning. You just need a GitHub account and a Claude/Cursor ![]()
@Terdious I asked Fable to analyze the missing points for migrating Netatmo and Tuya to external integrations:
I will evolve the spec and the implementation!
The gaps â four, one of which is blocking
1. OAuth2 authorization-code: blocking for Netatmo. The core flow (netatmo.retrieveTokens) is driven by the front end: it builds the authorization URL, the user consents on netatmo.com, is redirected to the Gladys front end which returns {codeOAuth, state, redirectUri} to the service. However, the generated Configuration screen has no « Connect » button, no callback route, nor a channel to transmit the code to the integration. We would need: an oauth2 field type in the config_schema (rendered as a button), a generic front-end callback route, and two serverâintegration relays (« give me your authorization URL » and « here is the code ») â the integration then exchanges the tokens itself and stores them in the config outside the schema.
2. command-result does not carry data. The ack only carries success/error. Point 1 requires that the integration respond with something (the authorization URL), and future commands as well (camera.get-imageâŠ). An optional data field is missing in command-result â a trivial, backward-compatible extension, but it is better to fix it in the v1 contracts now.
3. The application status is invisible. Netatmo core displays « Processing token », « Disconnected », « expired token, reconnect ». Our state machine only sees the health of the container: a Netatmo integration whose refresh token dies would be RUNNING (WS connected) but silently broken. A small POST /api/integration/v1/connection_status { connected, message: {en, fr} } displayed in the Configuration screen is missing.
4. Local broadcast discovery (Tuya local mode). tuya.localScan listens for UDP LAN broadcasts (ports 6666/6667/7000) â a container in bridge does not receive them (broadcasts do not cross Docker NAT; the core only gets away with it because it is in network=host). The local unicast poll to a known IP crosses the NAT, so the local mode would remain partially possible (IPs obtained via the cloud), but not the broadcast scan â this is exactly the « mediated discovery » already planned for phase 2, confirmed necessary by this case.
The core and SDK are being implementedâŠ
Ok, almost everything has been implemented by Fable:
- [untested] JS SDK with missing scope for Tuya/Netatmo/Frigate: feat: add OAuth2 relay, connection status and sub-container lifecycle (spec C.8 update) by Pierre-Gilles · Pull Request #5 · GladysAssistant/integration-sdk-js · GitHub
- [tested] Base Gladys PR that I tested this week: External integrations (RFC phase 1): Docker supervisor, host API, integration WebSocket, decentralized store and generic frontend by Pierre-Gilles · Pull Request #2665 · GladysAssistant/Gladys · GitHub
- [untested] Gladys « sub-containers » PR for Frigate: External integrations phase 2 : sous-conteneurs, réseau privé et accÚs matériel by Pierre-Gilles · Pull Request #2677 · GladysAssistant/Gladys · GitHub
- [untested] Gladys « Communication » PR for Telegram, etcâŠ: External integrations phase 2 : type « communication » (canaux de messagerie) by Pierre-Gilles · Pull Request #2678 · GladysAssistant/Gladys · GitHub
- [In development, almost done, untested] Gladys « Tuya/Netatmo » PR, probably 2680 once finished by Fable
Claudeâs words
:
So indeed, for Tuya, itâs essential.
Do you need me to test it? How? ^^
The only visible downside is that without UDP scanning, the user has to enter all the IP addresses of their devices. A minor issue but a shame compared to today ![]()
I thought Claude had already done that!! Iâll remind him
Iâll resume testing on Monday, and if you want to test your developments against the PRs Iâve made, you can ![]()
Iâm following the topic from afar, but itâs really a good idea ![]()
However, wouldnât it risk being a bit of a duplicate with the matterbridge-ai-plugin-factory if we can develop plugins like on the latter but directly integrated into Gladys?
I would have liked a Daikin and Overkiz plugin in the external integrations if possible ![]()
Thanks
@terdious Great!
The spec, Gladys, and the SDK are up to date with the integrated network scan, so you should have everything you need for Tuya. I havenât tested anything on my end yet; Iâll pick up the topic on Monday.
@prohand This is clearly in competition with Matterbridge, but the advantage here is that itâs directly integrated into Gladys, so itâs easier to set up and maintain. I think both have their place: each has its strengths and limitations, and a bit of competition is always healthy. ![]()
Today I was asking myself a similar question, but while rereading feature requests, I came across a request for a « fuel prices » plugin.
And for this kind of thing, we are (I think) exactly in what an external integration is supposed to do, whereas the Matterbridge plugin is not useful in this case.
Am I right?
Completely ![]()
Test Tuya, Intégration externe vs Intégration core :
Ca cause dans les logs ^^ :
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "child_lock" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "unix_time" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "log_server_url" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "log_server_port" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "dev_token" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "hydraulic_pressure" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "temp_mode_flag" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "program_num" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "irri_instant_flow" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "soft_ver" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "dev_state" code is not managed
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya function with "app_features" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "temp_set" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "temp_current" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "mode" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "heat" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "light" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "countdown_left" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "sleep" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "health" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "windspeed" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "mode_ECO" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "mode_dry" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "windshake" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "Fault" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "Countdown" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "use_number" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "total_time" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "electricity" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "electricity_number" code is not managed
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya function with "unit" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "horizontal" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "vertical" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "swing3d" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "clean" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "type" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "fault2" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "current_mode" code is not managed
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya function with "heat8" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "fan_speed_enum" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "eco" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "drying" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "cleaning" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "temp_unit_convert" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "temp_set" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "temp_current" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "mode" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "heat" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "light" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "countdown_left" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "sleep" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "health" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "windspeed" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "mode_ECO" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "mode_dry" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "windshake" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "Fault" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "Countdown" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "use_number" code is not managed
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya function with "total_time" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "electricity" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "electricity_number" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "unit" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "horizontal" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "vertical" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "swing3d" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "clean" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "type" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "fault2" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "current_mode" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "heat8" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "temp_set" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "temp_current" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "mode" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "heat" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "light" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "countdown_left" code is not managed
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya function with "sleep" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "health" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "windspeed" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "mode_ECO" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "mode_dry" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "windshake" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "Fault" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "Countdown" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "use_number" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "total_time" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "electricity" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "electricity_number" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "unit" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "horizontal" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "vertical" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "swing3d" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "clean" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "type" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "fault2" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "current_mode" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "heat8" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "mode" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "child_lock" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_1" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_2" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_3" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_4" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_5" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_6" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "week_program_7" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "vacation_duration" code is not managed
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya function with "boost_duration" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "electricity_statistics" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "elec_statistics_day" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "elec_statistics_month" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "elec_statistics_year" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "temp_current" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "average_power" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "temp_correction" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "fault" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "air_pressure_index" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "support_features" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "window_check" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "window_state" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "window_keep_time" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "temp_set" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "temp_unit_convert" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "app_features" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "switch_diff" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "upper_temp" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "lower_temp" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "running_mode" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "night_led_config" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "ecowatt_url" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "fan_speed_enum" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "eco" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "drying" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "cleaning" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "temp_unit_convert" code is not managed
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya function with "temp_set" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "temp_current" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "mode" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "heat" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "light" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "countdown_left" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "sleep" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "health" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "windspeed" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "mode_ECO" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "mode_dry" code is not managed
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya function with "windshake" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "Fault" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "Countdown" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "use_number" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "total_time" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "electricity" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "electricity_number" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "unit" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "horizontal" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "vertical" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "swing3d" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "clean" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "type" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "fault2" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "current_mode" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "heat8" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "mode" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "temp_set" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "timer_switch" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "travel_switch" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "cur_mode" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "travel_time" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "week_data" code is not managed
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya function with "lock_switch" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "VoltageA" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "CurrentA" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ActivePowerA" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "PowerFactorA" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ReactivePowerA" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "EnergyConsumedA" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "VoltageB" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "CurrentB" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ActivePowerB" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "PowerFactorB" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ReactivePowerB" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "EnergyConsumedB" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "VoltageC" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "CurrentC" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ActivePowerC" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "PowerFactorC" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ReactivePowerC" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "EnergyConsumedC" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "EnergyConsumed" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "Current" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ActivePower" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "ReactivePower" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "Frequency" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "Temperature" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "DeviceStatus" code is not managed
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya function with "voltage_phase_seq" code is not managed
[2026-07-18T23:59:12.193Z] [INFO] onScanRequest -> discovering Tuya devices
[2026-07-18T23:59:12.333Z] [INFO] [tuya] 10 Tuya devices found
[2026-07-18T23:59:13.233Z] [INFO] [tuya] [Tuya][localScan] Starting mediated udp-broadcast scan for 10s
On va maintenant tenter dâavancer ^^
Note that for the test, I took your dev branches that I launched locally in dev mode (outside container).
After some issues with:
- the manifest (description in/fr too long, Fable says itâs not explained)
- the SDK integration, I was able to download the tuya image from my branch
test-e2e-sdk-pr5:ghcr.io/terdious/gladys-tuya:dev
I have nothing in the discovery menu. But in the logs, I think I see the issue:
2026-07-19T01:54:32+0200 <debug> externalIntegration.saveStatus.js:15 (ExternalIntegration.saveStatus) External integration ext-dev-tuya: status LOADING
2026-07-19T01:54:32+0200 <debug> gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.
2026-07-19T01:54:33+0200 <info> externalIntegration.integrationConnected.js:19 (ExternalIntegration.integrationConnected) External integration ext-dev-tuya connected in websocket
2026-07-19T01:54:33+0200 <debug> externalIntegration.saveStatus.js:15 (ExternalIntegration.saveStatus) External integration ext-dev-tuya: status RUNNING
2026-07-19T01:54:33+0200 <debug> gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.
2026-07-19T01:55:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Sat, 18 Jul 2026 23:55:00 GMT
2026-07-19T01:55:13+0200 <debug> lan-manager.scanPresence.js:25 (LANManager.scanPresence) LANManager: 0 presence sensor features
2026-07-19T01:56:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Sat, 18 Jul 2026 23:56:00 GMT
2026-07-19T01:57:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Sat, 18 Jul 2026 23:57:00 GMT
2026-07-19T01:57:13+0200 <debug> lan-manager.scanPresence.js:25 (LANManager.scanPresence) LANManager: 0 presence sensor features
2026-07-19T01:58:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Sat, 18 Jul 2026 23:58:00 GMT
2026-07-19T01:58:40+0200 <debug> errorMiddleware.js:26 (errorMiddleware) BadParameters [Error]: devices[0].poll_frequency: invalid poll frequency
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:43:13
at Array.map (<anonymous>)
at ExternalIntegration.setDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:32:37)
at publishDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/controllers/integrationHost.controller.js:64:46)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:26
From previous event:
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:18
at Layer.handle [as handle_request] (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/route.js:144:13)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/externalIntegrationAuthMiddleware.js:30:5
2026-07-19T01:59:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Sat, 18 Jul 2026 23:59:00 GMT
2026-07-19T01:59:02+0200 <debug> errorMiddleware.js:26 (errorMiddleware) ConflictError: EXTERNAL_INTEGRATION_SCAN_ALREADY_RUNNING
at ExternalIntegration.runNetworkDiscoveryScan (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/networkDiscovery/networkDiscovery.runScan.js:47:11)
at networkDiscoveryScan (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/controllers/integrationHost.controller.js:104:54)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:26
From previous event:
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:18
at Layer.handle [as handle_request] (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/route.js:144:13)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/externalIntegrationAuthMiddleware.js:30:5
2026-07-19T01:59:02+0200 <debug> errorMiddleware.js:26 (errorMiddleware) BadParameters [Error]: devices[0].poll_frequency: invalid poll frequency
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:43:13
at Array.map (<anonymous>)
at ExternalIntegration.setDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:32:37)
at publishDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/controllers/integrationHost.controller.js:64:46)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:26
From previous event:
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:18
at Layer.handle [as handle_request] (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/route.js:144:13)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/externalIntegrationAuthMiddleware.js:30:5
After fixes, it works
![]()
But no local, because you need to declare the IP address in the device as well as the protocol version (the core version of Tuya scans the different protocols to determine the correct one once the IP is entered):
But it only works halfway for now (commands OK, status feedback KO.
To be continued ^^
A few remarks:
-
unless Iâm mistaken, in dev, it would be possible to update the image more easily, especially when the manifest doesnât change?
And ideally, when weâre on a dev tag, wouldnât it be possible to modify the manifest directly from the config? -
We canât add external integrations to favorites
-
Being able to filter external integrations would be great











