SGC01 smart wifi garage opener

Hi.

I bought a swing gate opener which included a SGC01 wifi smart control. I opened it up and it’s controlled by an ESP12 I believe. I managed to flash it with EspHome, but I am struggeling on controlling the relay.

I tried to do a continuity check between COM port on relay and the different pins on the ESP without luck.

Tried a couple of “random” pin configurations in EspHome, but if I choose the wrong one I have to solder back and re-flash. Any tips on how to find the correct pin for controlling the relay?

Figured it out. For future refernce if it can help others, this is the pins for momentary switch and door sensor for this board

esp8266:
  board: esp12e

switch:
  - platform: gpio
    pin: 15
    id: relay
    name: "Swing gate"
    icon: "mdi:gate"
    on_turn_on:
    - delay: 500ms
    - switch.turn_off: relay
    
binary_sensor:
  - platform: gpio
    device_class: opening
  # filters: 
  #   - invert:  depending on if reed switch is normally open or normally closed
    name: "Swing gate status"
    pin:
      number: 16
      mode: INPUT
1 Like

Do you know what the header pinouts are on the board to be able to flash it?

Thanks

Never mind, I’ve worked it out
SGC01-Flash Pins

Hi, i’m using the exact the same device(sgc01 smart wifi) on my sliding gate. It controlled by a xhouse app. xhouse app has no direct integration to HA. Can someone help me if there is a way to integrate this device into HA? Or can someone share how to flash this device to esphome? I would like to expose this into HA and have control locally.

Hi all, do you know if this works with Tuya / Smart Home app? Or do I have to sign up to ANOTHER app?

If you have a USB to serial adapter you can connect to the ESP chip on the SGC01 board as per @cygnus-x1 post above.

R to the serial adapters TX pin,
T to the serial adapters RX pin,
Power to power, and ground to ground.

More info on USB to serial adapters here: Getting Started - Tasmota Under Serial Programmers.

More info on connecting to the ESP board here : Physically Connecting to your Device — ESPHome Including some important notes about how to put the board in flashing/programming mode. You might have to install drivers, bridge GPIO0 and GND, and/or have to power cycle after erase and before uploading etc.

This is the code I used in ESPHome:

esp8266:
  board: esp12e

switch:
  - platform: gpio
    pin: 15
    id: relay
    name: "Swing gate"
    icon: "mdi:gate"
    on_turn_on:
    - delay: 500ms
    - switch.turn_off: relay
    
binary_sensor:
  - platform: gpio
    device_class: opening
    name: "Swing gate status"
    pin:
      number: 16
      mode: INPUT

I got this device working in Home Assistant using XHouse IOT API calls. Unfortunately there is no local API. It all goes via http://47.52.111.184:9010/xhouseAppEncapsulation
so no SSL encryption either. However they do use timestamps and tokens in their HTTP Headers so it is somewhat secure.

I would recommend if you can flash it with ESPHome or swap it out with, dare I say, a Tuya alternative as at least they have a local API. This would likely be a drop-in replacement: Wofea WiFi Smart Garage Door Opener Controller DC12 DC24V - AliExpress
or a Konnected door opener which comes with ESPHome pre-installed: Smart Garage Door Opener White (v2) – Konnected

Anyway for anyone that would prefer to leave their XHouse IOT device as is you can use this AppDaemon code: XHouse-IoT-Controller · GitHub

I tried really hard to instead use Node-Red or n8n but I couldn’t get it to work. However using AppDaemon is super easy.

Written guide below or follow along with the video guide. https://youtu.be/U8Lxwaw6P1E

Using XHouse IOT Device with Home Assistant via AppDaemon

Step 1: Install the AppDaemon Addon in Home Assistant

If you haven’t already, install AppDaemon through Home Assistant’s Add-on Store or as a Docker container.

Step 2: Add AppDaemon .py file

Download the xhouse.py file and put it in your AppDaemon apps directory e.g.

\addon_configs\a0d7b954_appdaemon\apps

Step 3: Update apps.yaml file

Paste in the apps.yaml configuration into your apps.yaml file. Change the email and password fields to your XHouse IOT account details.

Step 4: Restart AppDaemon

After saving both files, restart AppDaemon to load the app.

How It Works

  1. AppDaemon logs in to your XHouse IOT account when it starts
  2. It hopefully discovers all your devices and creates cover or switch entities in Home Assistant (it has only been tested with the SGC01 so it might not work with other devices)
  3. It refreshes the devices state every 5 minutes (configurable)
  4. You can control your device through Home Assistant’s UI

The entities will appear as a cover or switch with entity IDs such as cover.xhouse_800421019117424640.

Please note that using this will cause your app on your phone to log out. Ideally create a second XHouse IOT account and share the device with it. That way you can use the app and Home Assistant simultaneously.

I’ve a sliding gates and the installer is offering me to configure a SGC01 smart Wifi to control it… I don’t want to go on the trouble of going through the API on the Xhouse cloud (for security reason I’m filtering traffic) and I’m not keen to re flash the ESP module (sounds fun but don’t have time and all the equipment to do it).
Would it be easier to install a Shelly module (Shelly 1 Gen3) to control the gate ?

Actually yes the Shelly would be a great alternative to the SGC01. You would likely need to do a little bit of configuring on the Shelly to get it to work how you want it but there’s heaps of videos out there explaining wiring it up, how to use it with a dry contact sensor etc.

Just wanted to drop a thank you. I was relying on google to allow me to open/close my gate using home assistant but it frequently stopped working with google saying it was offline. I had no luck flashing my particular XH-SCG01 as mine has an ESP32c2-12 and I just couldn’t get anywhere with it. This is a great alternative solution.

1 Like

Thank you !
I got some improvement on the integration of my swing gate controller from the same supplier … ,However I am wrestling with a problem : “This entity (“switch.xhouse_978742808435232768”) does not have a unique identifier, therefore its settings cannot be managed from the user interface. See the documentation for details.”


What settings are you wanting to change? Unfortunately Appdaemon doesn’t allows for unique ID entities via the method I used. It could be expanded to use MQTT which would allow for unique ID’s. But perhaps the easiest method would be to edit configuration.yaml and add a template switch or cover.

template:
  # For a switch (replace DEVICE_ID with your actual device ID)
  - switch:
      - name: "XHouse Switch Name"
        unique_id: xhouse_switch_DEVICE_ID
        state: "{{ states('switch.xhouse_DEVICE_ID') }}"
        turn_on:
          service: switch.turn_on
          target:
            entity_id: switch.xhouse_DEVICE_ID
        turn_off:
          service: switch.turn_off
          target:
            entity_id: switch.xhouse_DEVICE_ID
        availability: "{{ states('switch.xhouse_DEVICE_ID') != 'unavailable' }}"
        icon: mdi:power-socket

  # For a cover/gate (replace DEVICE_ID with your actual device ID)
  - cover:
      - name: "Gate Opener"
        unique_id: xhouse_gate_DEVICE_ID
        state: "{{ states('cover.xhouse_DEVICE_ID') }}"
        device_class: gate
        open_cover:
          service: cover.open_cover
          target:
            entity_id: cover.xhouse_DEVICE_ID
        close_cover:
          service: cover.close_cover
          target:
            entity_id: cover.xhouse_DEVICE_ID
        availability: "{{ states('cover.xhouse_DEVICE_ID') != 'unavailable' }}"

Ideally this would be made into a HACS integration, but I figured Appdaemon would involve less maintenance and breaking changes from HA updates.

Thank you !

I have to dig a little bit further as my twin gate controller has three/four functions:
small pedestrian gate to open
twin gate to open
gate or gates closure
emergency stop

Thank you

Regards

Do all those functions work correctly for you in Home Assistant? This was only tested on a device that just has a simple open/close, but I did try to make it support multiple entities if applicable.

Hi @BenAndo, thank you for developing this solution. I’m using an EGA-18 WiFi+BLE Swing Gate opener, and your script successfully discovers and registers the device. However, I’m unable to control it and the state remains “open” even when the gate is physically closed.

Here are the device details from the attributes pane:

  • Detected model: EGA1800
  • Device type: WIFIANDBLE_EGA

When I attempt to control the device, I receive the following error:

INFO xhouse: DEBUG: Control response: 200 - {"code": "809000000002", "msg": "\u8bbe\u5907\u8d85\u65f6", "errorMap": null, "result": null}

Would it be possible to add support for this device model? I’m also open to provide any additional information needed. This device is the same with @Euge56’s and has the mentioned functions (e.g., pedestrian gate, main gate open/close, emergency stop). I may be able to help gather information for mapping the API behavior, though I’m not sure exactly how to proceed.

Hi @shrimpshark thanks for the detailed information. Yes I’d be happy to add support for that device. I’ve gone ahead and refactored the code a little bit and made it hopefully have better generic support other devices such as yours.

First override your xhouse.py code with the new version that I’ve just published and let me know if it’s any better. I’ve also added in better debugging where if debugging is enabled it’ll output the API response which will help me add official support for your device. If you paste it in I’ll take a look. It should look something like:

2026-03-09 09:11:18.998951 INFO xhouse: DEBUG: { "code": "0", "msg": "success!", "errorMap": null, "result": { "background": null, "groupName": null, "deviceInfos": [ { "id": 800421019117424640, "deviceId": "800421019117424640", "alias": "Garage Door", "deviceAlias": "Garage Door", "deviceType": "WIFI_CONTROL", "model": "XH-SGC01", "firmwareVersion": "3.0.3", "deviceName": "B0004365", "deviceNo": "B0004365", "hostNo": null, "isAdd": 0, "action": null, "hostId": null, "status": 1, "properties": [ { "key": "Switch_1", "type": "INT", "value": "1", "name": "\u5f00\u5173", "icon": "WIFI_CONTROL_8", "mode": null, "relayTime": null }, { "key": "VoiceControl", "type": "INT", "value": "1", "name": "VoiceControl", "icon": null, "mode": null, "relayTime": null }, { "key": "bleCode", "type": null, "value": "75903487", "name": null, "icon": null, "mode": null, "relayTime": null }, { "key": "wifiName", "type": null, "value": "", "name": null, "icon": null, "mode": null, "relayTime": null } ], "primaryUser": 0, "validStartTime": 978278400000, "validEndTime": 4102243200000, "subDeviceInfos": null } ], "icon": null } }

If the update did in fact add working support for your device then please also toggle all the entities and paste in the logs e.g.

2026-03-09 09:19:45.084626 INFO xhouse: Successfully sent close command to device 800421019117424640
2026-03-09 09:19:45.083737 INFO xhouse: DEBUG: { "code": "0", "msg": "success!", "errorMap": null, "result": " " }
2026-03-09 09:19:45.081254 INFO xhouse: DEBUG: === CONTROL RESPONSE (device 800421019117424640) ===
2026-03-09 09:19:44.727092 INFO xhouse: DEBUG: Control request body: {"deviceId": 800421019117424640, "userId": 965821322024194048, "propertyValue": {"Switch_1": 0}, "action": "Off"}
2026-03-09 09:19:44.725894 INFO xhouse: Sending 'Close' command to device 800421019117424640 (Gate Opener)
2026-03-09 09:19:44.723026 INFO xhouse: DEBUG: Cover event: close_cover for cover.xhouse_800421019117424640

This is a great integration and thanks. I can’t wait to get it working. Here’s my challenge:

26-03-26 09:54:43.147449 INFO AppDaemon: App initialization complete
2026-03-26 09:54:53.144788 INFO xhouse: Logging in to XHouse…
2026-03-26 09:54:53.283145 INFO xhouse: Login successful! User ID: nnnnnnnnnnnnnnnnn
2026-03-26 09:54:53.287654 INFO xhouse: Successfully logged in to XHouse
2026-03-26 09:54:53.292375 INFO xhouse: Discovering XHouse devices…
2026-03-26 09:54:53.436998 INFO xhouse: Found 1 XHouse device(s)
2026-03-26 09:54:53.445538 WARNING xhouse: Device 971501361982083072 (EGA1800) has no controllable properties

Any ideas?

Hey if you could edit your app.yaml and enable debugging

debug_mode: true

then provide the logs I should be able to add support for it.

Ben,
Thanks in advance. Here you go:

2026-03-28 01:52:12.707558 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:12.708926 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:17.858392 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:17.859975 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:22.963326 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:22.964972 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:28.066955 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:28.068463 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:33.148735 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:33.149997 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:38.239926 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:38.241181 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:43.324497 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:43.325878 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:48.407847 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:48.409201 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:53.495542 ERROR HASS: 502, message=‘Invalid response status’, url=‘http://supervisor/core/api/websocket
2026-03-28 01:52:53.496941 INFO HASS: Attempting reconnection in 5.0s
2026-03-28 01:52:58.640735 INFO HASS: Connected to Home Assistant 2026.3.4 with aiohttp websocket
2026-03-28 01:52:58.645782 INFO HASS: Authenticated to Home Assistant 2026.3.4
2026-03-28 01:52:58.736027 INFO HASS: Waiting for Home Assistant to start
2026-03-28 01:53:00.434930 INFO HASS: Completed initialization in 1.9s
2026-03-28 01:53:00.509866 INFO AppDaemon: Processing restart for plugin namespace ‘default’
2026-03-28 01:53:00.511991 INFO AppDaemon: Starting apps: [‘xhouse’]
2026-03-28 01:53:00.522169 INFO AppDaemon: Calling initialize() for xhouse
2026-03-28 01:53:00.530049 INFO xhouse: XHouse Controller initializing
2026-03-28 01:53:00.558680 INFO xhouse: XHouse Controller initialized
2026-03-28 01:53:10.549901 INFO xhouse: Logging in to XHouse…
2026-03-28 01:53:10.686980 INFO xhouse: Login successful! User ID: 1049157303678275584
2026-03-28 01:53:10.691386 INFO xhouse: Successfully logged in to XHouse
2026-03-28 01:53:10.695939 INFO xhouse: Discovering XHouse devices…
2026-03-28 01:53:10.836139 INFO xhouse: Found 1 XHouse device(s)
2026-03-28 01:53:10.841510 WARNING xhouse: Device 971501361982083072 (EGA1800) has no controllable properties
2026-03-28 10:51:57.004634 INFO AppDaemon: App config modified: xhouse
2026-03-28 10:51:57.064997 INFO AppDaemon: Stopping apps: [‘xhouse’]
2026-03-28 10:51:57.069524 INFO AppDaemon: Stopped app ‘xhouse’
2026-03-28 10:51:57.070940 INFO AppDaemon: Starting apps: [‘xhouse’]
2026-03-28 10:51:57.082596 INFO AppDaemon: Calling initialize() for xhouse
2026-03-28 10:51:57.089127 INFO xhouse: XHouse Controller initializing
2026-03-28 10:51:57.108562 INFO xhouse: XHouse Controller initialized
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service appdaemon: stopping
2026-03-28 10:52:06.976663 INFO AppDaemon: Received signal: SIGTERM
2026-03-28 10:52:06.978721 INFO AppDaemon: Stopping AppDaemon
2026-03-28 10:52:07.042079 INFO AppDaemon: Stopping apps: [‘xhouse’]
2026-03-28 10:52:07.046576 INFO AppDaemon: Stopped app ‘xhouse’
2026-03-28 10:52:07.052258 INFO AppDaemon: All plugins stopped gracefully
2026-03-28 10:52:07.060662 INFO AppDaemon: Scheduler finished gracefully
2026-03-28 10:52:07.062975 INFO AppDaemon: Stopped HTTP server gracefully
2026-03-28 10:52:07.064191 INFO AppDaemon: AppDaemon is stopped.
2026-03-28 10:52:07.065422 INFO AppDaemon: AppDaemon main() stopped gracefully in 87.527ms
[17:52:08] INFO: Service AppDaemon exited with code 0 (by signal 0)
s6-rc: info: service appdaemon successfully stopped
s6-rc: info: service init-appdaemon: stopping
s6-rc: info: service init-appdaemon successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service base-addon-log-level: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service base-addon-log-level successfully stopped
s6-rc: info: service base-addon-banner: stopping
s6-rc: info: service base-addon-banner successfully stopped
s6-rc: warning: service s6rc-oneshot-runner is marked as essential, not stopping it
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service base-addon-banner: starting

App: AppDaemon
Python Apps and Dashboard using AppDaemon 4.x for Home Assistant

App version: 0.18.1
You are running the latest version of this app.
System: Home Assistant OS 17.1 (aarch64 / green)
Home Assistant Core: 2026.3.4
Home Assistant Supervisor: 2026.03.2

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-appdaemon: starting
s6-rc: info: service init-appdaemon successfully started
s6-rc: info: service appdaemon: starting
s6-rc: info: service appdaemon successfully started
s6-rc: info: service legacy-services: starting
[17:52:14] INFO: Starting AppDaemon…
s6-rc: info: service legacy-services successfully started
2026-03-28 10:52:32.715551 INFO AppDaemon: ------------------------------------------------------------
2026-03-28 10:52:32.716374 INFO AppDaemon: AppDaemon Version 4.5.13 starting
2026-03-28 10:52:32.717139 INFO AppDaemon: ------------------------------------------------------------
2026-03-28 10:52:32.717932 INFO AppDaemon: Python version is 3.12.12
2026-03-28 10:52:32.718749 INFO AppDaemon: Configuration read from: /config/appdaemon.yaml
2026-03-28 10:52:32.721883 INFO AppDaemon: Using /config/apps as app_dir
2026-03-28 10:52:32.727768 INFO AppDaemon: Loading built-in plugin ‘HASS’ using ‘HassPlugin’ from ‘appdaemon.plugins.hass.hassplugin’
2026-03-28 10:52:32.729380 INFO HASS: HASS Plugin initialization complete
2026-03-28 10:52:32.730896 INFO AppDaemon: Initializing HTTP
2026-03-28 10:52:32.732822 INFO AppDaemon: Using ‘ws’ for event stream
2026-03-28 10:52:32.744871 INFO AppDaemon: Starting API
2026-03-28 10:52:32.752861 INFO AppDaemon: Starting Admin Interface
2026-03-28 10:52:32.754306 INFO AppDaemon: Starting Dashboards
2026-03-28 10:52:32.825035 INFO AppDaemon: Starting apps with 1 worker threads. Apps will all be assigned threads and pinned to them.
2026-03-28 10:52:32.838289 INFO AppDaemon: Running on port 5050
2026-03-28 10:52:32.840918 INFO AppDaemon: Waiting for plugins to be ready
2026-03-28 10:52:32.857159 INFO HASS: Connected to Home Assistant 2026.3.4 with aiohttp websocket
2026-03-28 10:52:32.862205 INFO HASS: Authenticated to Home Assistant 2026.3.4
2026-03-28 10:52:32.876105 INFO HASS: Waiting for Home Assistant to start
2026-03-28 10:52:32.902103 INFO AppDaemon: All plugins ready
2026-03-28 10:52:32.907334 INFO AppDaemon: Scheduler running in realtime
2026-03-28 10:52:33.104472 INFO HASS: Completed initialization in 342ms
2026-03-28 10:52:33.151607 INFO AppDaemon: Starting apps: [‘xhouse’]
2026-03-28 10:52:33.160602 INFO AppDaemon: Calling initialize() for xhouse
2026-03-28 10:52:33.415728 INFO xhouse: XHouse Controller initializing
2026-03-28 10:52:33.435718 INFO xhouse: XHouse Controller initialized
2026-03-28 10:52:33.439606 INFO AppDaemon: App initialization complete
2026-03-28 10:52:43.439637 INFO xhouse: Logging in to XHouse…
2026-03-28 10:52:43.581410 INFO xhouse: DEBUG: === LOGIN RESPONSE ===
2026-03-28 10:52:43.587483 INFO xhouse: DEBUG: {
“code”: “0”,
“msg”: “success!”,
“errorMap”: null,
“result”: {
“clientUser”: {
“id”: 1049157303678275584,
“name”: “GADbmDQO72”,
“saasCode”: “JUJIANG”,
“phone”: null,
“email”: “REDACTED”,
“nickName”: “REDACTED”,
“location”: null,
“thirdType”: null,
“thirdNo”: null,
“openId”: null,
“profilePhoto”: null,
“bindDevices”: null,
“status”: 1,
“createTime”: 1774429734607,
“lastLivelyTime”: null,
“registerApp”: null,
“thirdFirstLogin”: null,
“miniPhoto”: null,
“timezone”: null,
“timezoneOffset”: null,
“deviceToken”: null,
“userAgent”: null,
“appVersion”: “1.3.23”,
“regionCode”: “PH”
},
“token”: “REDACTED”,
“userId”: “1049157303678275584”
}
}
2026-03-28 10:52:43.594583 INFO xhouse: Login successful! User ID: 1049157303678275584
2026-03-28 10:52:43.600067 INFO xhouse: Successfully logged in to XHouse
2026-03-28 10:52:43.605366 INFO xhouse: Discovering XHouse devices…
2026-03-28 10:52:43.744588 INFO xhouse: DEBUG: === DISCOVER DEVICES RESPONSE ===
2026-03-28 10:52:43.750436 INFO xhouse: DEBUG: {
“code”: “0”,
“msg”: “success!”,
“errorMap”: null,
“result”: {
“background”: null,
“groupName”: null,
“deviceInfos”: [
{
“id”: 971501361982083072,
“deviceId”: “971501361982083072”,
“alias”: “WiFi+BLE Swing Gate”,
“deviceAlias”: “WiFi+BLE Swing Gate”,
“deviceType”: “WIFIANDBLE_EGA”,
“model”: “EGA1800”,
“firmwareVersion”: “2.1.1”,
“deviceName”: “6200EFFF”,
“deviceNo”: “6200EFFF”,
“hostNo”: null,
“isAdd”: 0,
“action”: null,
“hostId”: null,
“status”: 1,
“properties”: [
{
“key”: “1”,
“type”: “TEXT”,
“value”: “”,
“name”: “1”,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “2”,
“type”: “TEXT”,
“value”: “”,
“name”: “2”,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “3”,
“type”: “TEXT”,
“value”: “”,
“name”: “3”,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “4”,
“type”: “TEXT”,
“value”: “”,
“name”: “4”,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “Switch_1”,
“type”: null,
“value”: “1”,
“name”: null,
“icon”: “WIFI_CONTROL_9”,
“mode”: null,
“relayTime”: null
},
{
“key”: “status”,
“type”: null,
“value”: “412734355700020300000000000000010064000A0B”,
“name”: null,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “menuCode”,
“type”: null,
“value”: “”,
“name”: null,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “boardVersion”,
“type”: null,
“value”: “1.3.0”,
“name”: null,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “bleCode”,
“type”: null,
“value”: “27343557”,
“name”: null,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “wifiName”,
“type”: null,
“value”: “IoT”,
“name”: null,
“icon”: null,
“mode”: null,
“relayTime”: null
},
{
“key”: “updateStatusTime”,
“type”: null,
“value”: “1774719211019”,
“name”: null,
“icon”: null,
“mode”: null,
“relayTime”: null
}
],
“primaryUser”: 1,
“validStartTime”: null,
“validEndTime”: null,
“subDeviceInfos”: null
}
],
“icon”: null
}
}
2026-03-28 10:52:43.759293 INFO xhouse: Found 1 XHouse device(s)
2026-03-28 10:52:43.765124 WARNING xhouse: Device 971501361982083072 (EGA1800) has no controllable properties
2026-03-28 10:52:43.770897 INFO xhouse: DEBUG: Fetching device states for all online devices…Preformatted text