Proof‑of‑Concept to control REMKO devices via the smartweb.remko.media cloud (MQTT over WebSockets).
Status: PoC. Not affiliated with REMKO. Use at your own risk.
# 1) Read status
REMKO_DEVICE_NAME="YOUR DEVICE NAME" REMKO_ESP_STATUS=1 REMKO_READ_SUMMARY=1 python remko_probe.py
# 2) Turn ON
REMKO_DEVICE_NAME="YOUR DEVICE NAME" REMKO_TX_HEX="AA24AC00000000000302404341667F7F003000000000000000000000000000000000006073" REMKO_NO_RESPONSE_OK=1 python remko_probe.py
# 3) Turn OFF
REMKO_DEVICE_NAME="YOUR DEVICE NAME" REMKO_TX_HEX="AA24AC00000000000302404241667F7F00300000000000000000000000000000000000CD07" REMKO_NO_RESPONSE_OK=1 python remko_probe.py
# 4) Set mode/temperature/fan and read back
REMKO_DEVICE_NAME="YOUR DEVICE NAME" REMKO_ESP_STATUS=1 REMKO_SET_POWER=on REMKO_SET_MODE=cool REMKO_SETPOINT=22.0 REMKO_SET_FAN=medium REMKO_SET_SWING=vertical REMKO_READBACK_AFTER_SET=1 python remko_probe.py- Logs into the REMKO SmartWeb portal
- Resolves device IDs (by name) from
/rest/liste - Connects to the cloud MQTT broker
- Sends a UART frame to the WiFi‑stick (
/ESPtopic) to toggle power
This was built as a minimal starting point for later Home Assistant integration.
- Python 3.10+
pip
python -m pip install requests paho-mqtt python-dotenvCreate a .env file (see .env.example) or export the variables:
export REMKO_EMAIL="your@email"
export REMKO_PASS="yourPassword"REMKO_DEVICE_NAME="YOUR DEVICE NAME" \
REMKO_ESP_STATUS=1 \
REMKO_READ_SUMMARY=1 \
python remko_probe.pyREMKO_DEVICE_NAME="YOUR DEVICE NAME" \
REMKO_ESP_STATUS=1 \
REMKO_SET_POWER=on \
REMKO_SET_MODE=cool \
REMKO_SETPOINT=22.0 \
REMKO_SET_FAN=medium \
REMKO_SET_SWING=vertical \
REMKO_SET_ECO=off \
REMKO_SET_TURBO=off \
REMKO_SET_SLEEP=off \
REMKO_SET_BIOCLEAN=off \
python remko_probe.pyNote: The SET frame uses defaults for timer bytes, which may reset active timers.
REMKO_DEVICE_NAME="YOUR DEVICE NAME" \
REMKO_TX_HEX="AA24AC00000000000302404341667F7F003000000000000000000000000000000000006073" \
REMKO_NO_RESPONSE_OK=1 \
python remko_probe.pyREMKO_DEVICE_NAME="YOUR DEVICE NAME" \
REMKO_TX_HEX="AA24AC00000000000302404241667F7F00300000000000000000000000000000000000CD07" \
REMKO_NO_RESPONSE_OK=1 \
python remko_probe.pyREMKO_TX_HEXis a UART frame captured from the Web UI (WebSocket → MQTT frames).- The frame can be device/model specific. Capture your own frame:
- DevTools → Network → WS → MQTT connection → power toggle
- Copy the JSON sent to
.../ESPand use theTxfield.
- Some devices do not send a response after writes; use
REMKO_NO_RESPONSE_OK=1.
REMKO_EMAIL,REMKO_PASS— SmartWeb loginREMKO_DEVICE_NAME— exact device name from the listREMKO_ESP_STATUS=1— send UART status request via/ESPREMKO_READ_SUMMARY=1— print decoded status valuesREMKO_SET_POWER=on|off— power control via SET frameREMKO_SET_MODE=auto|cool|dry|heat|fan— set modeREMKO_SETPOINT=21.0— set target temperature (Celsius)REMKO_SET_FAN=auto|low|medium|high|silent— set fan speedREMKO_SET_SWING=off|vertical|horizontal|both— set swingREMKO_SET_ECO=on|off— eco modeREMKO_SET_TURBO=on|off— turbo modeREMKO_SET_SLEEP=on|off— sleep modeREMKO_SET_BIOCLEAN=on|off— bioclean/ionREMKO_READBACK_AFTER_SET=1— request fresh status after SET and print summaryREMKO_TX_HEX— UART frame to send to/ESPREMKO_TX_CLIENT_ID— defaults toSMTACUARTTESTREMKO_NO_RESPONSE_OK=1— do not error if no MQTT response arrivesREMKO_TIMEOUT_SEC,REMKO_CONNECT_TIMEOUT_SEC— optional tuning
This is a proof‑of‑concept for interoperability. It is unofficial and may break if REMKO changes the backend.