Telemetry parse fails: TelemetryColorLogicLight.special_effect required but MSP R4.4 omits @specialEffect
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 88/100
Direzione di ricerca
Inizia in models/telemetry.py da TelemetryColorLogicLight e segui Telemetry.load_xml attraverso Telemetry.model_validate(). Riproduci il parsing con l’elemento ColorLogic-Light mostrato privo di @specialEffect; il lavoro è completato quando la telemetria viene convalidata correttamente senza quell’attributo, preservando il comportamento predefinito senza effetto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Telemetry.load_xml() raises OmniParsingError for a controller whose <ColorLogic-Light> telemetry element does not include a specialEffect attribute. TelemetryColorLogicLight.special_effect is declared as a required field with no default, so Telemetry.model_validate() fails with a pydantic missing error and the whole telemetry fetch dies. For the haomnilogic-local HA integration this makes setup impossible — the config flow is permanently stuck on cannot_connect.
Environment
python-omnilogic-local5.0.2 (also present onmain—models/telemetry.pyline ~269)- Hayward OmniLogic, MSP firmware R4.4
- Equipment: 1 variable-speed filter pump, 1 ColorLogic light, 1 valve-actuator water feature, 1 HydraPure, unconfigured CSAD slot, virtual heater (no physical heater)
- Consumed via
cryptk/haomnilogic-local2.0.2 on Home Assistant
Actual telemetry element from this controller
<ColorLogic-Light systemId="4" lightState="0" currentShow="11" speed="4" brightness="4" />
No specialEffect attribute. (Backyard, BodyOfWater, Filter, VirtualHeater, Relay, CSAD, Group all parse fine — this is the only failure, so CSAD empty ph/orp is not currently an issue for this system.)
Traceback
File ".../pyomnilogic_local/models/telemetry.py", line 559, in load_xml
instance = Telemetry.model_validate(data["STATUS"])
pydantic_core._pydantic_core.ValidationError: 1 validation error for Telemetry
ColorLogic-Light.0.@specialEffect
Field required [type=missing, input_value={'@systemId': 4, '@lightState': 0, '@currentShow': 11, '@speed': 4, '@brightness': 4}, input_type=dict]
The above exception was the direct cause of the following exception:
...
pyomnilogic_local.models.exceptions.OmniParsingError: Failed to parse Telemetry: 1 validation error for Telemetry
ColorLogic-Light.0.@specialEffect
Field required [type=missing, ...]
Suggested fix
special_effect isn't required for correct operation (the HA light entity doesn't read it). Give it a default:
# pyomnilogic_local/models/telemetry.py (class TelemetryColorLogicLight)
special_effect: ColorLogicSpecialEffect = Field(
alias="@specialEffect", default=ColorLogicSpecialEffect.NO_EFFECT
)
Older / simple-mode ColorLogic configs and some MSP firmwares just don't send the attribute. A quick audit of the other Telemetry* models for required fields that older firmware may omit (e.g. @lastSpeed, CSAD @ph/@orp when empty-string) would likely prevent similar reports.
Workaround (in case it helps others)
Monkey-patched Telemetry.load_xml in the HA custom component's __init__.py to catch the specialEffect OmniParsingError, inject specialEffect="0" into <ColorLogic-Light .../>, and re-parse. Integration then sets up and all entities (light, valve, pump speed/presets, HydraPure, schedules, sensors) work.
- Lingua principale
- Python
- Stelle
- 10
- Fork
- 13
- Merge medio
- 5m
- PR unite (30g)
- 2
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cryptk/python-omnilogic-local
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
cryptk/python-omnilogic-local#156 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
cryptk/python-omnilogic-local#150 ·
-
feat(cli): Add control commands (set temperature, on/off, speed)Forse già presa @tonyfruzza l’ha presa 141 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
cryptk/python-omnilogic-local#145 · 1 commento ·
-
Pumps can be VSPs as well as featuresForse già presa @tonyfruzza l’ha presa 140 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
cryptk/python-omnilogic-local#99 · 8 commenti ·
Tutte le issue di cryptk/python-omnilogic-local
Issue simili
-
area/i18n comp/desktop P3 type/feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
NousResearch/hermes-agent#134377 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue needs-triage priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
melodic-software/claude-code-plugins#6499 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ssciwr/clang-format-wheel#167 ·
-
conda skeleton cran has SSL_NO_VERIFY check inverted and TLS verification off by defaultForse già presa @matthewfeickert l’ha presa oggi. Apertatype::bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
conda/conda-build#6202 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno