owner: gmikcon status: active last_reviewed: 2026-05-10 review_interval: 90d confidence: high
The smart-home environment is a separate operational domain inside the home infrastructure. It is connected to both local networks through the dual-homed smart-home server.
smart-home-server.intel-nuc-shome.192.168.1.101.192.168.2.101.The smart-home platform is a custom project deployed at /home/shome/smart-home-server.
Repository:
https://git.gnexus.space/git/root/smart-home-server.gitmaster4ef1bfa (Fix resilient device state)Runtime stack:
Fury.sh_core_esp8266.Important paths:
/home/shome/smart-home-server/server./home/shome/smart-home-server/webclient./home/shome/smart-home-server/devices./home/shome/smart-home-server/docs./home/shome/smart-home-server/database_dump.The deployed working tree had local modifications during inspection. Agents must not overwrite them without explicit owner approval.
Smart-home and IoT devices primarily belong to home-iot-lan:
192.168.2.0/24.192.168.2.1.re0 / LANTECH.home_iot_0, home_iot_1, home_iot_2.The smart-home server is also present on home-lan:
192.168.1.0/24.192.168.1.1.re2 / LANMAIN.Current policy allows full access between home-lan and home-iot-lan. Future policy may isolate the networks and may deny internet access from the IoT network.
Observed on smart-home-server:
22.80.443.111.2049.127.0.0.1:3306.5201.Panel endpoints:
http://panel.smarthome.arp/https://panel.smarthome.arp/http://192.168.1.101/https://192.168.1.101/The platform has three layers:
SHServ.Device communication uses local HTTP REST. Devices expose standard endpoints such as /about, /status, /action, /setup, /set_token, /reboot, /reset, /set_device_name, /channels_schema, and /set_channels_schema.
The key architectural rule is that neither the web client nor devices should directly control other devices through an external REST API. Device-control business logic belongs in ControlScripts.
ControlScripts have three main execution models:
Important server endpoints:
POST /events/new: accepts device events and triggers internal event handling.GET /cron/regular-scripts: runs registered periodic scripts.GET /cron/status-update-scanning: scans device state and updates connection status/device IPs.GET /api/v1/devices/scanning/setup: scans for devices in setup mode.POST /api/v1/devices/setup/new-device: provisions a new device.Devices use firmware based on sh_core_esp8266.
The shared firmware layer handles:
Known device concepts:
setup, normal, error, and updating;Authorization: Bearer <token>;The service uses MySQL locally. Database dumps in the repository indicate these logical tables:
areasdevicesdevice_authgroupslogsmetanotificationsscriptsuser_sessionsusersDo not document tokens, passwords, user session values, or raw database dumps in this repository.
The server exports /home/shome/backups over NFS to 192.168.1.0/24.
The export uses rw, async, no_subtree_check, and no_root_squash. This is powerful access and should be reviewed if the network is later segmented or hardened.
Document smart-home knowledge at three levels:
Do not promote every sensor, lamp, phone, TV, or temporary device into canonical inventory. Keep dynamic device sightings in discovery observations unless the device is infrastructure-relevant, has a static/reserved address, or participates in critical automation.
home-iot-lan.home-lan after future isolation.hostapd is intentionally part of the production topology and which SSID/interface it serves.