Files
hotspring/custom_components/hotspring/strings.json
T
Hank MuellerandClaude Opus 5 cde2bbc772 Add lights/jets/salt control, app-traffic mimicry, and optional local read path
- New entities: number (salt output level 0-10), switch (lights, jets); the
  read-only salt sensor is replaced by the settable number.
- Look identical to the official app on the wire: send the app's Dalvik UA on
  REST, okhttp/4.12.0 on the mTLS creds fetch, and "mqtt-<uuid>" client ids.
- Consolidate every constant value into constants.py (well commented); protocol.py
  keeps only the command builders; const.py removed.
- Optional local read path: a `local_status_url` config option polls the dongle's
  local /status endpoint for telemetry instead of the cloud MQTT subscription
  (control stays cloud MQTT). State getters handle both schemas.

No private/internal values in the repo (the spa IP is runtime config only).

Fixes bug-41mqxddz7zeh

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F6B8b3iYNv6QUftK2FDfYb
2026-09-01 15:12:24 +00:00

42 lines
1.4 KiB
JSON

{
"config": {
"step": {
"user": {
"title": "Hot Spring Connected Spa",
"description": "Sign in with your Hot Spring Spas app account. The mutual-TLS client certificate must already be present on the host (see the integration README).",
"data": {
"email": "E-mail",
"password": "Password",
"cert_dir": "Certificate directory",
"local_status_url": "Local /status URL (optional)"
},
"data_description": {
"local_status_url": "If Home Assistant is on the spa's LAN, e.g. http://<spa-ip>/status, monitoring is polled locally instead of over the cloud; control still uses the cloud."
}
}
},
"error": {
"invalid_auth": "Invalid e-mail or password.",
"cannot_connect": "Could not reach the Hot Spring cloud.",
"missing_certs": "The client certificate files were not found in the certificate directory.",
"unknown": "Unexpected error."
},
"abort": {
"already_configured": "This spa account is already configured."
}
},
"entity": {
"sensor": {
"water_temperature": { "name": "Water temperature" },
"cartridge": { "name": "Salt cartridge" }
},
"number": {
"salt_output_level": { "name": "Salt output level" }
},
"switch": {
"lights": { "name": "Lights" },
"jets": { "name": "Jets" }
}
}
}