* [solax] Add handler-level integration tests for all supported inverter types and EV charger
Introduces Mockito-based handler tests that verify the full data flow from
raw JSON API response through parsing, inverter type detection, and handler
channel population. Tests cover X1 Hybrid G4, X1 Boost Air Mini,
X3 Hybrid G4, X3 Mic/Pro G2, and the EV charger — all 17 tests pass.
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix Paradox EVOHD zone parsing fail #10572
* Root cause is that EVOHD and EVO192 have much more zones which are
stored in a different memory map model. They should be treated the same
way. Fix is simple and can be downported to 3.x if decided by the
maintainers
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Reduce warnings 1
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* 2
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* 3
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Initial files and package refactoring
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Implemented zone commands without checksum calculation
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* More stuff
* Added the checksum functionality
* Added more examples to the test
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Implement ZoneCommand and necessary classes
* Refactor the common logic
* Extract interface Command
* CHange the Response class to use Switch/case
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fully implement the test for creating zone command payload
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix build / add headers and author to the new files
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add command handling to the zone handler
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add command channel to the Zone thing
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Research of zone states and some TODO notes
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Retrieval of zone special states from the panel
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix build
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add the new channels to the metadata file
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add new channels to zone handler
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix indexing in memory map and add more logging
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Refactoring and potential NPE access fixes
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add new property "label" to the discovered zones and partitions
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix zone command issues
* Fix checksum creation
* Fix the parse and confirmation of the response
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add the new channels to the README.md
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fixed issue with not updating new channels in the zones
* A silly copy/paste mistake
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Change the type of the new channels from contact to switch
As per community discussion this makes more sense and will be more
intuitive - when something is true -> make it ON, when it's false ->
make it OFF. OPEN and CLOSED are not fitting so well here...
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix issue that the channel label is always NULL
* For both zone and partitions
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add new types and channels to the i18n
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
---------
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>