theengsdecoder 2.3.0__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/CMakeLists.txt +1 -1
  2. {theengsdecoder-2.3.0/theengsdecoder.egg-info → theengsdecoder-2.4.0}/PKG-INFO +1 -1
  3. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/decoder.cpp +94 -6
  4. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/decoder.h +3 -0
  5. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BM2_json.h +2 -2
  6. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BM6_json.h +2 -2
  7. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ECOFLOW_ADV_json.h +2 -2
  8. theengsdecoder-2.4.0/src/devices/ODACE_WLBL_json.h +46 -0
  9. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBMP_json.h +7 -6
  10. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/VICTRON_BSC_json.h +2 -2
  11. theengsdecoder-2.4.0/src/devices/VICTRON_ORIONTR_json.h +86 -0
  12. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/VICTRON_ORIONXS_json.h +2 -2
  13. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/VICTRON_SBP_json.h +2 -2
  14. theengsdecoder-2.4.0/src/devices/VICTRON_SBS_json.h +95 -0
  15. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/VICTRON_SCC_json.h +2 -2
  16. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/VICTRON__ENCR_json.h +11 -7
  17. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices.h +4 -0
  18. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0/theengsdecoder.egg-info}/PKG-INFO +1 -1
  19. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/theengsdecoder.egg-info/SOURCES.txt +4 -0
  20. theengsdecoder-2.4.0/theengsdecoder.egg-info/scm_file_list.json +11 -0
  21. theengsdecoder-2.4.0/theengsdecoder.egg-info/scm_version.json +8 -0
  22. theengsdecoder-2.3.0/src/devices/VICTRON_SBS_json.h +0 -43
  23. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/README.md +0 -0
  24. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/TheengsDecoder/__init__.py +0 -0
  25. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/TheengsDecoder/_decoder.cpp +0 -0
  26. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/pyproject.toml +0 -0
  27. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/setup.cfg +0 -0
  28. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/setup.py +0 -0
  29. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.clang-format +0 -0
  30. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.devcontainer/Dockerfile +0 -0
  31. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.devcontainer/devcontainer.json +0 -0
  32. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.git +0 -0
  33. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.gitattributes +0 -0
  34. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.github/FUNDING.yml +0 -0
  35. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.github/ISSUE_TEMPLATE.md +0 -0
  36. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.github/workflows/ci.yml +0 -0
  37. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.github/workflows/lock.yml +0 -0
  38. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.github/workflows/release.yml +0 -0
  39. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.gitignore +0 -0
  40. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.mbedignore +0 -0
  41. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.prettierignore +0 -0
  42. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/.vscode/settings.json +0 -0
  43. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/ArduinoJson.h +0 -0
  44. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/CHANGELOG.md +0 -0
  45. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/CMakeLists.txt +0 -0
  46. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/CONTRIBUTING.md +0 -0
  47. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/LICENSE.md +0 -0
  48. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/README.md +0 -0
  49. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/SUPPORT.md +0 -0
  50. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/appveyor.yml +0 -0
  51. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/banner.svg +0 -0
  52. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/component.mk +0 -0
  53. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonConfigFile/JsonConfigFile.ino +0 -0
  54. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonFilterExample/JsonFilterExample.ino +0 -0
  55. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonGeneratorExample/JsonGeneratorExample.ino +0 -0
  56. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonHttpClient/JsonHttpClient.ino +0 -0
  57. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonParserExample/JsonParserExample.ino +0 -0
  58. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonServer/JsonServer.ino +0 -0
  59. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/JsonUdpBeacon/JsonUdpBeacon.ino +0 -0
  60. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/MsgPackParser/MsgPackParser.ino +0 -0
  61. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/ProgmemExample/ProgmemExample.ino +0 -0
  62. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/examples/StringExample/StringExample.ino +0 -0
  63. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ArduinoJsonConfig.cmake.in +0 -0
  64. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/CompileOptions.cmake +0 -0
  65. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ci/arduino.sh +0 -0
  66. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ci/espidf/CMakeLists.txt +0 -0
  67. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ci/espidf/main/CMakeLists.txt +0 -0
  68. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ci/espidf/main/component.mk +0 -0
  69. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ci/espidf/main/main.cpp +0 -0
  70. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/ci/particle.sh +0 -0
  71. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/CMakeLists.txt +0 -0
  72. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/Makefile +0 -0
  73. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_corpus/.gitignore +0 -0
  74. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_fuzzer.cpp +0 -0
  75. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/Comments.json +0 -0
  76. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/EmptyArray.json +0 -0
  77. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/EmptyObject.json +0 -0
  78. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/ExcessiveNesting.json +0 -0
  79. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/IntegerOverflow.json +0 -0
  80. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/Numbers.json +0 -0
  81. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/OpenWeatherMap.json +0 -0
  82. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/Strings.json +0 -0
  83. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/json_seed_corpus/WeatherUnderground.json +0 -0
  84. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_corpus/.gitignore +0 -0
  85. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_fuzzer.cpp +0 -0
  86. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/array16 +0 -0
  87. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/array32 +0 -0
  88. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/false +0 -0
  89. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/fixarray +0 -0
  90. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/fixint_negative +0 -0
  91. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/fixint_positive +0 -0
  92. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/fixmap +0 -0
  93. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/fixstr +0 -0
  94. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/float32 +0 -0
  95. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/float64 +0 -0
  96. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/int16 +0 -0
  97. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/int32 +0 -0
  98. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/int64 +0 -0
  99. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/int8 +0 -0
  100. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/map16 +0 -0
  101. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/map32 +0 -0
  102. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/nil +0 -0
  103. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/str16 +0 -0
  104. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/str32 +0 -0
  105. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/str8 +0 -0
  106. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/true +0 -0
  107. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/uint16 +0 -0
  108. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/uint32 +0 -0
  109. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/uint64 +0 -0
  110. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/msgpack_seed_corpus/uint8 +0 -0
  111. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/fuzzing/reproducer.cpp +0 -0
  112. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/particle/project.properties +0 -0
  113. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/particle/src/smocktest.ino +0 -0
  114. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/build-arduino-package.sh +0 -0
  115. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/build-single-header.sh +0 -0
  116. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/get-release-body.sh +0 -0
  117. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/get-release-page.sh +0 -0
  118. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/publish-particle-library.sh +0 -0
  119. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/publish.sh +0 -0
  120. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/wandbox/JsonGeneratorExample.cpp +0 -0
  121. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/wandbox/JsonParserExample.cpp +0 -0
  122. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/wandbox/MsgPackParserExample.cpp +0 -0
  123. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/scripts/wandbox/publish.sh +0 -0
  124. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/.clang-tidy +0 -0
  125. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/CMakeLists.txt +0 -0
  126. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp11/CMakeLists.txt +0 -0
  127. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp11/issue1120.cpp +0 -0
  128. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp11/nullptr.cpp +0 -0
  129. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp11/use_long_long_0.cpp +0 -0
  130. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp11/use_long_long_1.cpp +0 -0
  131. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp17/CMakeLists.txt +0 -0
  132. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Cpp17/string_view.cpp +0 -0
  133. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/CMakeLists.txt +0 -0
  134. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/Issue1189.cpp +0 -0
  135. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/Issue978.cpp +0 -0
  136. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/assign_char.cpp +0 -0
  137. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/delete_jsondocument.cpp +0 -0
  138. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/read_long_long.cpp +0 -0
  139. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/variant_as_char.cpp +0 -0
  140. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/FailingBuilds/write_long_long.cpp +0 -0
  141. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Helpers/Arduino.h +0 -0
  142. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Helpers/CustomReader.hpp +0 -0
  143. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Helpers/api/Print.h +0 -0
  144. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Helpers/api/Stream.h +0 -0
  145. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Helpers/api/String.h +0 -0
  146. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Helpers/progmem_emulation.hpp +0 -0
  147. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/IntegrationTests/CMakeLists.txt +0 -0
  148. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/IntegrationTests/gbathree.cpp +0 -0
  149. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/IntegrationTests/issue772.cpp +0 -0
  150. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/IntegrationTests/openweathermap.cpp +0 -0
  151. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/IntegrationTests/round_trip.cpp +0 -0
  152. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/CMakeLists.txt +0 -0
  153. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/add.cpp +0 -0
  154. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/clear.cpp +0 -0
  155. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/copyArray.cpp +0 -0
  156. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/createNested.cpp +0 -0
  157. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/equals.cpp +0 -0
  158. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/get.cpp +0 -0
  159. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/isNull.cpp +0 -0
  160. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/iterator.cpp +0 -0
  161. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/memoryUsage.cpp +0 -0
  162. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/nesting.cpp +0 -0
  163. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/remove.cpp +0 -0
  164. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/size.cpp +0 -0
  165. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/std_string.cpp +0 -0
  166. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/subscript.cpp +0 -0
  167. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonArray/undefined.cpp +0 -0
  168. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/CMakeLists.txt +0 -0
  169. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/DeserializationError.cpp +0 -0
  170. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/array.cpp +0 -0
  171. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/array_static.cpp +0 -0
  172. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/filter.cpp +0 -0
  173. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/incomplete_input.cpp +0 -0
  174. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/input_types.cpp +0 -0
  175. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/invalid_input.cpp +0 -0
  176. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/misc.cpp +0 -0
  177. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/nestingLimit.cpp +0 -0
  178. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/number.cpp +0 -0
  179. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/object.cpp +0 -0
  180. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/object_static.cpp +0 -0
  181. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDeserializer/string.cpp +0 -0
  182. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/BasicJsonDocument.cpp +0 -0
  183. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/CMakeLists.txt +0 -0
  184. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/DynamicJsonDocument.cpp +0 -0
  185. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/ElementProxy.cpp +0 -0
  186. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/MemberProxy.cpp +0 -0
  187. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/StaticJsonDocument.cpp +0 -0
  188. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/add.cpp +0 -0
  189. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/compare.cpp +0 -0
  190. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/containsKey.cpp +0 -0
  191. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/createNested.cpp +0 -0
  192. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/isNull.cpp +0 -0
  193. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/nesting.cpp +0 -0
  194. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/overflowed.cpp +0 -0
  195. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/remove.cpp +0 -0
  196. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/shrinkToFit.cpp +0 -0
  197. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/size.cpp +0 -0
  198. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonDocument/subscript.cpp +0 -0
  199. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/CMakeLists.txt +0 -0
  200. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/clear.cpp +0 -0
  201. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/containsKey.cpp +0 -0
  202. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/copy.cpp +0 -0
  203. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/createNestedArray.cpp +0 -0
  204. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/createNestedObject.cpp +0 -0
  205. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/equals.cpp +0 -0
  206. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/invalid.cpp +0 -0
  207. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/isNull.cpp +0 -0
  208. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/iterator.cpp +0 -0
  209. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/memoryUsage.cpp +0 -0
  210. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/nesting.cpp +0 -0
  211. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/remove.cpp +0 -0
  212. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/size.cpp +0 -0
  213. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/std_string.cpp +0 -0
  214. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonObject/subscript.cpp +0 -0
  215. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/CMakeLists.txt +0 -0
  216. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/CustomWriter.cpp +0 -0
  217. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/JsonArray.cpp +0 -0
  218. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/JsonArrayPretty.cpp +0 -0
  219. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/JsonObject.cpp +0 -0
  220. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/JsonObjectPretty.cpp +0 -0
  221. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/JsonVariant.cpp +0 -0
  222. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/misc.cpp +0 -0
  223. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/std_stream.cpp +0 -0
  224. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonSerializer/std_string.cpp +0 -0
  225. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/CMakeLists.txt +0 -0
  226. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/add.cpp +0 -0
  227. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/as.cpp +0 -0
  228. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/clear.cpp +0 -0
  229. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/compare.cpp +0 -0
  230. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/containsKey.cpp +0 -0
  231. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/converters.cpp +0 -0
  232. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/copy.cpp +0 -0
  233. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/createNested.cpp +0 -0
  234. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/is.cpp +0 -0
  235. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/isnull.cpp +0 -0
  236. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/memoryUsage.cpp +0 -0
  237. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/misc.cpp +0 -0
  238. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/nesting.cpp +0 -0
  239. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/or.cpp +0 -0
  240. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/overflow.cpp +0 -0
  241. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/remove.cpp +0 -0
  242. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/set.cpp +0 -0
  243. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/subscript.cpp +0 -0
  244. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/types.cpp +0 -0
  245. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/JsonVariant/undefined.cpp +0 -0
  246. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MemoryPool/CMakeLists.txt +0 -0
  247. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MemoryPool/StringCopier.cpp +0 -0
  248. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MemoryPool/allocVariant.cpp +0 -0
  249. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MemoryPool/clear.cpp +0 -0
  250. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MemoryPool/saveString.cpp +0 -0
  251. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MemoryPool/size.cpp +0 -0
  252. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/CMakeLists.txt +0 -0
  253. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/FloatParts.cpp +0 -0
  254. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/JsonString.cpp +0 -0
  255. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/Readers.cpp +0 -0
  256. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/StringAdapters.cpp +0 -0
  257. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/StringWriter.cpp +0 -0
  258. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/TypeTraits.cpp +0 -0
  259. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/Utf16.cpp +0 -0
  260. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/Utf8.cpp +0 -0
  261. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/arithmeticCompare.cpp +0 -0
  262. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/conflicts.cpp +0 -0
  263. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/custom_string.hpp +0 -0
  264. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/deprecated.cpp +0 -0
  265. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/printable.cpp +0 -0
  266. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/unsigned_char.cpp +0 -0
  267. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/version.cpp +0 -0
  268. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Misc/weird_strcmp.hpp +0 -0
  269. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/CMakeLists.txt +0 -0
  270. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/decode_unicode_0.cpp +0 -0
  271. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/decode_unicode_1.cpp +0 -0
  272. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_alignment_0.cpp +0 -0
  273. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_alignment_1.cpp +0 -0
  274. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_comments_0.cpp +0 -0
  275. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_comments_1.cpp +0 -0
  276. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_infinity_0.cpp +0 -0
  277. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_infinity_1.cpp +0 -0
  278. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_nan_0.cpp +0 -0
  279. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_nan_1.cpp +0 -0
  280. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_progmem_1.cpp +0 -0
  281. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_string_deduplication_0.cpp +0 -0
  282. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/enable_string_deduplication_1.cpp +0 -0
  283. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/use_double_0.cpp +0 -0
  284. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MixedConfiguration/use_double_1.cpp +0 -0
  285. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/CMakeLists.txt +0 -0
  286. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/deserializeArray.cpp +0 -0
  287. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/deserializeObject.cpp +0 -0
  288. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/deserializeStaticVariant.cpp +0 -0
  289. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/deserializeVariant.cpp +0 -0
  290. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/doubleToFloat.cpp +0 -0
  291. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/filter.cpp +0 -0
  292. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/incompleteInput.cpp +0 -0
  293. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/input_types.cpp +0 -0
  294. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/misc.cpp +0 -0
  295. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/nestingLimit.cpp +0 -0
  296. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackDeserializer/notSupported.cpp +0 -0
  297. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/CMakeLists.txt +0 -0
  298. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/destination_types.cpp +0 -0
  299. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/measure.cpp +0 -0
  300. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/misc.cpp +0 -0
  301. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/serializeArray.cpp +0 -0
  302. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/serializeObject.cpp +0 -0
  303. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/MsgPackSerializer/serializeVariant.cpp +0 -0
  304. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Numbers/CMakeLists.txt +0 -0
  305. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Numbers/convertNumber.cpp +0 -0
  306. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Numbers/parseDouble.cpp +0 -0
  307. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Numbers/parseFloat.cpp +0 -0
  308. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Numbers/parseInteger.cpp +0 -0
  309. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/Numbers/parseNumber.cpp +0 -0
  310. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/TextFormatter/CMakeLists.txt +0 -0
  311. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/TextFormatter/writeFloat.cpp +0 -0
  312. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/TextFormatter/writeInteger.cpp +0 -0
  313. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/TextFormatter/writeString.cpp +0 -0
  314. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/catch/.clang-format +0 -0
  315. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/catch/CMakeLists.txt +0 -0
  316. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/catch/catch.cpp +0 -0
  317. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/extras/tests/catch/catch.hpp +0 -0
  318. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/keywords.txt +0 -0
  319. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/library.json +0 -0
  320. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/library.properties +0 -0
  321. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/ArrayFunctions.hpp +0 -0
  322. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/ArrayImpl.hpp +0 -0
  323. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/ArrayIterator.hpp +0 -0
  324. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/ArrayRef.hpp +0 -0
  325. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/ArrayShortcuts.hpp +0 -0
  326. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/ElementProxy.hpp +0 -0
  327. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Array/Utilities.hpp +0 -0
  328. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Collection/CollectionData.hpp +0 -0
  329. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Collection/CollectionImpl.hpp +0 -0
  330. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Configuration.hpp +0 -0
  331. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/DeserializationError.hpp +0 -0
  332. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Filter.hpp +0 -0
  333. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/NestingLimit.hpp +0 -0
  334. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Reader.hpp +0 -0
  335. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +0 -0
  336. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +0 -0
  337. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +0 -0
  338. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +0 -0
  339. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +0 -0
  340. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +0 -0
  341. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +0 -0
  342. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Deserialization/deserialize.hpp +0 -0
  343. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Document/BasicJsonDocument.hpp +0 -0
  344. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Document/DynamicJsonDocument.hpp +0 -0
  345. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Document/JsonDocument.hpp +0 -0
  346. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Document/StaticJsonDocument.hpp +0 -0
  347. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/EscapeSequence.hpp +0 -0
  348. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/JsonDeserializer.hpp +0 -0
  349. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/JsonSerializer.hpp +0 -0
  350. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/Latch.hpp +0 -0
  351. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +0 -0
  352. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/TextFormatter.hpp +0 -0
  353. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/Utf16.hpp +0 -0
  354. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Json/Utf8.hpp +0 -0
  355. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Memory/Alignment.hpp +0 -0
  356. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Memory/MemoryPool.hpp +0 -0
  357. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Misc/SerializedValue.hpp +0 -0
  358. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Misc/Visitable.hpp +0 -0
  359. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +0 -0
  360. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +0 -0
  361. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/MsgPack/endianess.hpp +0 -0
  362. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/MsgPack/ieee754.hpp +0 -0
  363. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Namespace.hpp +0 -0
  364. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/Float.hpp +0 -0
  365. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/FloatParts.hpp +0 -0
  366. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/FloatTraits.hpp +0 -0
  367. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/Integer.hpp +0 -0
  368. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/arithmeticCompare.hpp +0 -0
  369. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/convertNumber.hpp +0 -0
  370. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Numbers/parseNumber.hpp +0 -0
  371. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/MemberProxy.hpp +0 -0
  372. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/ObjectFunctions.hpp +0 -0
  373. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/ObjectImpl.hpp +0 -0
  374. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/ObjectIterator.hpp +0 -0
  375. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/ObjectRef.hpp +0 -0
  376. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/ObjectShortcuts.hpp +0 -0
  377. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Object/Pair.hpp +0 -0
  378. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/alias_cast.hpp +0 -0
  379. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/assert.hpp +0 -0
  380. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/attributes.hpp +0 -0
  381. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/ctype.hpp +0 -0
  382. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/integer.hpp +0 -0
  383. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/limits.hpp +0 -0
  384. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/math.hpp +0 -0
  385. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/mpl/max.hpp +0 -0
  386. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/pgmspace.hpp +0 -0
  387. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +0 -0
  388. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/preprocessor.hpp +0 -0
  389. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/safe_strcmp.hpp +0 -0
  390. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/static_array.hpp +0 -0
  391. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +0 -0
  392. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/declval.hpp +0 -0
  393. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +0 -0
  394. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +0 -0
  395. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +0 -0
  396. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +0 -0
  397. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +0 -0
  398. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +0 -0
  399. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +0 -0
  400. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +0 -0
  401. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +0 -0
  402. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +0 -0
  403. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +0 -0
  404. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +0 -0
  405. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +0 -0
  406. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +0 -0
  407. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +0 -0
  408. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/make_void.hpp +0 -0
  409. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +0 -0
  410. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +0 -0
  411. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +0 -0
  412. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +0 -0
  413. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/type_traits.hpp +0 -0
  414. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Polyfills/utility.hpp +0 -0
  415. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/CountingDecorator.hpp +0 -0
  416. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writer.hpp +0 -0
  417. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +0 -0
  418. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +0 -0
  419. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +0 -0
  420. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +0 -0
  421. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +0 -0
  422. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +0 -0
  423. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/measure.hpp +0 -0
  424. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Serialization/serialize.hpp +0 -0
  425. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/StringStorage/StringCopier.hpp +0 -0
  426. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/StringStorage/StringMover.hpp +0 -0
  427. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/StringStorage/StringStorage.hpp +0 -0
  428. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/ArduinoStringAdapter.hpp +0 -0
  429. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/ConstRamStringAdapter.hpp +0 -0
  430. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/FlashStringAdapter.hpp +0 -0
  431. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/JsonStringAdapter.hpp +0 -0
  432. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/RamStringAdapter.hpp +0 -0
  433. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/SizedFlashStringAdapter.hpp +0 -0
  434. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/SizedRamStringAdapter.hpp +0 -0
  435. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/StdStringAdapter.hpp +0 -0
  436. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/Adapters/StringViewAdapter.hpp +0 -0
  437. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/IsWriteableString.hpp +0 -0
  438. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/StoragePolicy.hpp +0 -0
  439. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/String.hpp +0 -0
  440. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/StringAdapter.hpp +0 -0
  441. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Strings/StringAdapters.hpp +0 -0
  442. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/Converter.hpp +0 -0
  443. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/ConverterImpl.hpp +0 -0
  444. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/SlotFunctions.hpp +0 -0
  445. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantCompare.hpp +0 -0
  446. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantContent.hpp +0 -0
  447. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantData.hpp +0 -0
  448. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantFunctions.hpp +0 -0
  449. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantImpl.hpp +0 -0
  450. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantOperators.hpp +0 -0
  451. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantRef.hpp +0 -0
  452. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantShortcuts.hpp +0 -0
  453. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantSlot.hpp +0 -0
  454. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantTag.hpp +0 -0
  455. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/VariantTo.hpp +0 -0
  456. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/Variant/Visitor.hpp +0 -0
  457. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/compatibility.hpp +0 -0
  458. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson/version.hpp +0 -0
  459. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson.h +0 -0
  460. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/ArduinoJson.hpp +0 -0
  461. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/arduino_json/src/CMakeLists.txt +0 -0
  462. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/decoder_c.cpp +0 -0
  463. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ABN03_json.h +0 -0
  464. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ABN07_json.h +0 -0
  465. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ABTemp_json.h +0 -0
  466. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/APPLEAIRPODS_json.h +0 -0
  467. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/APPLEDEVICE_json.h +0 -0
  468. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/APPLEWATCH_json.h +0 -0
  469. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/APPLE_json.h +0 -0
  470. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ARANET4_json.h +0 -0
  471. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Amphiro_json.h +0 -0
  472. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BC08_json.h +0 -0
  473. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BM1IN1_json.h +0 -0
  474. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BM3IN1_json.h +0 -0
  475. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BM4IN1_json.h +0 -0
  476. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BPARASITEV2_json.h +0 -0
  477. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BPARASITE_json.h +0 -0
  478. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/BWBSDOO_json.h +0 -0
  479. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGD1_json.h +0 -0
  480. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGDK2_json.h +0 -0
  481. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGDN1_json.h +0 -0
  482. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGG1_json.h +0 -0
  483. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGH1_json.h +0 -0
  484. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGP1W_json.h +0 -0
  485. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGP22C_json.h +0 -0
  486. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGP23W_json.h +0 -0
  487. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/CGPR1_json.h +0 -0
  488. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/FEASY_json.h +0 -0
  489. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/GAEN_json.h +0 -0
  490. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5055_json.h +0 -0
  491. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5072_json.h +0 -0
  492. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5074_json.h +0 -0
  493. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5102_json.h +0 -0
  494. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5106_json.h +0 -0
  495. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5140_json.h +0 -0
  496. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/H5179_json.h +0 -0
  497. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/HHCCJCY01HHCC_json.h +0 -0
  498. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/HHCCJCY10_json.h +0 -0
  499. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/HHCCPOT002_json.h +0 -0
  500. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/HOBOMX2001_json.h +0 -0
  501. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/HOLYIOT_json.h +0 -0
  502. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/IBS_P02B_json.h +0 -0
  503. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/IBS_THBP01B_json.h +0 -0
  504. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/IBT_2X_json.h +0 -0
  505. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/IBT_4XS_json.h +0 -0
  506. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/IBT_6XS_SOLIS6_json.h +0 -0
  507. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/JAALEE_json.h +0 -0
  508. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/JQJCY01YM_json.h +0 -0
  509. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/KKM_K6P_json.h +0 -0
  510. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/KKM_K9_json.h +0 -0
  511. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/LYWSD02_json.h +0 -0
  512. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/LYWSD03MMC_ENCR_json.h +0 -0
  513. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/LYWSD03MMC_json.h +0 -0
  514. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/LYWSDCGQ_json.h +0 -0
  515. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/MBXPRO_json.h +0 -0
  516. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/MS_CDP_json.h +0 -0
  517. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/MUE4094RT_json.h +0 -0
  518. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Miband_json.h +0 -0
  519. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Mikrotik_json.h +0 -0
  520. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Mokobeacon_json.h +0 -0
  521. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Mopeka_json.h +0 -0
  522. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/NODONNIU_json.h +0 -0
  523. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/OTOD_json.h +0 -0
  524. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/OralB_json.h +0 -0
  525. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Oras_json.h +0 -0
  526. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/PH10_json.h +0 -0
  527. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/RDL52832_json.h +0 -0
  528. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/RuuviTag_RAWv1_json.h +0 -0
  529. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/RuuviTag_RAWv2_json.h +0 -0
  530. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBBT_002C_ENCR_json.h +0 -0
  531. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBBT_002C_json.h +0 -0
  532. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBBT_004CEU_US_json.h +0 -0
  533. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBBT_json.h +0 -0
  534. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBCS_json.h +0 -0
  535. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBCU_json.h +0 -0
  536. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBDW_002C_ENCR_json.h +0 -0
  537. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBDW_002C_json.h +0 -0
  538. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBHT_003C_ENCR_json.h +0 -0
  539. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBHT_003C_json.h +0 -0
  540. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBMO_003Z_ENCR_json.h +0 -0
  541. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBMO_003Z_json.h +0 -0
  542. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBMS_json.h +0 -0
  543. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBMT_json.h +0 -0
  544. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBOT_json.h +0 -0
  545. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SBS1_json.h +0 -0
  546. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SCD4X_json.h +0 -0
  547. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SE_MAG_json.h +0 -0
  548. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SE_RHT_json.h +0 -0
  549. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SE_TEMP_json.h +0 -0
  550. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SE_TPROBE_json.h +0 -0
  551. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SHT4X_json.h +0 -0
  552. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SensorP_HTP_json.h +0 -0
  553. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SensorP_HT_json.h +0 -0
  554. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ServiceData_json.h +0 -0
  555. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/Skale_json.h +0 -0
  556. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/SmartDry_json.h +0 -0
  557. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/T201_json.h +0 -0
  558. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/T301_json.h +0 -0
  559. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/THB1_json.h +0 -0
  560. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/TILT_json.h +0 -0
  561. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/TPMSBR_json.h +0 -0
  562. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/TPMS_json.h +0 -0
  563. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/TPTH_json.h +0 -0
  564. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/ThermoBeacon_json.h +0 -0
  565. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/UT363BT_json.h +0 -0
  566. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/VCH6003_json.h +0 -0
  567. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/XMTZC04HMKG_json.h +0 -0
  568. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/XMTZC04HMLB_json.h +0 -0
  569. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/XMTZC05HMKG_json.h +0 -0
  570. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/XMTZC05HMLB_json.h +0 -0
  571. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/XOSSX2_json.h +0 -0
  572. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/common_props.h +0 -0
  573. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/iBeacon_json.h +0 -0
  574. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/iNodeEM_json.h +0 -0
  575. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/src/devices/tracker_json.h +0 -0
  576. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/theengsdecoder.egg-info/dependency_links.txt +0 -0
  577. {theengsdecoder-2.3.0 → theengsdecoder-2.4.0}/theengsdecoder.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  cmake_minimum_required(VERSION 3.5)
2
2
 
3
- project(decoder VERSION 2.2.0)
3
+ project(decoder VERSION 2.4.0)
4
4
  find_package(PythonExtensions REQUIRED)
5
5
 
6
6
  add_library(_decoder MODULE TheengsDecoder/_decoder.cpp src/decoder.cpp)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: theengsdecoder
3
- Version: 2.3.0
3
+ Version: 2.4.0
4
4
  Summary: A message decoder for the Internet of Things
5
5
  Author: Theengs
6
6
  License: GPL-3.0 License
@@ -125,6 +125,48 @@ double TheengsDecoder::value_from_hex_string(const char* data_str,
125
125
  return value;
126
126
  }
127
127
 
128
+ /*
129
+ * @brief Extracts bit-aligned values from a hex string.
130
+ * Bit 0 is the least significant bit of the first byte.
131
+ */
132
+ double TheengsDecoder::value_from_bit_string(const char* data_str,
133
+ int bit_offset, int bit_length,
134
+ bool canBeNegative) {
135
+ if (bit_offset < 0 || bit_length <= 0 || bit_length > 63) {
136
+ return 0;
137
+ }
138
+
139
+ size_t data_chars = strlen(data_str);
140
+ size_t required_chars = ((size_t)(bit_offset + bit_length + 7) / 8) * 2;
141
+ if (data_chars < required_chars) {
142
+ return 0;
143
+ }
144
+
145
+ unsigned long long value = 0;
146
+ for (int i = 0; i < bit_length; ++i) {
147
+ int abs_bit = bit_offset + i;
148
+ size_t byte_idx = (size_t)abs_bit / 8;
149
+ uint8_t bit_idx = (uint8_t)(abs_bit % 8);
150
+ size_t hex_idx = byte_idx * 2;
151
+
152
+ uint8_t byte = (uint8_t)((getBinaryData(data_str[hex_idx]) << 4) |
153
+ getBinaryData(data_str[hex_idx + 1]));
154
+ if ((byte >> bit_idx) & 0x01) {
155
+ value |= (1ULL << i);
156
+ }
157
+ }
158
+
159
+ long long signed_value = (long long)value;
160
+ if (canBeNegative) {
161
+ unsigned long long sign_bit = (1ULL << (bit_length - 1));
162
+ if (value & sign_bit) {
163
+ signed_value -= (long long)(1ULL << bit_length);
164
+ }
165
+ }
166
+
167
+ return (double)signed_value;
168
+ }
169
+
128
170
  /*
129
171
  * @brief Removes the underscores at the beginning of key strings
130
172
  * when duplicate properties exist in a device.
@@ -587,7 +629,7 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
587
629
  doc["type"] = "BODY"; // health monitoring devices
588
630
  break;
589
631
  case 12:
590
- doc["type"] = "ENRG"; // energy monitoring devices
632
+ doc["type"] = "ENRG"; // energy producing, monitoring and storing devices
591
633
  break;
592
634
  case 13:
593
635
  doc["type"] = "WCVR"; // window covering
@@ -610,9 +652,6 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
610
652
  case 19:
611
653
  doc["type"] = "WIND"; // Anemometers
612
654
  break;
613
- case 20:
614
- doc["type"] = "ENRG"; // Energy
615
- break;
616
655
  case 254:
617
656
  doc["type"] = "RMAC"; // random MAC address devices
618
657
  break;
@@ -670,6 +709,12 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
670
709
  doc["ctrl"] = true;
671
710
  jsondata["ctrl"] = doc["ctrl"];
672
711
  }
712
+
713
+ if (((data >> 2) & 0x01) == 1) { // BVPP - Battery and/or voltage are primary properties
714
+ doc.add("bvpp");
715
+ doc["bvpp"] = true;
716
+ jsondata["bvpp"] = doc["bvpp"];
717
+ }
673
718
  }
674
719
 
675
720
  // Octet Byte[2] - Encryption Model
@@ -692,7 +737,8 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
692
737
 
693
738
  if (checkPropCondition(prop["condition"], svc_data, mfg_data, dev_name)) {
694
739
  JsonArray decoder = prop["decoder"];
695
- if (strstr((const char*)decoder[0], "value_from_hex_data") != nullptr) {
740
+ if (strstr((const char*)decoder[0], "value_from_hex_data") != nullptr ||
741
+ strstr((const char*)decoder[0], "value_from_bit_data") != nullptr) {
696
742
  const char* src = svc_data;
697
743
  if (strstr((const char*)decoder[1], MFG_DATA)) {
698
744
  src = mfg_data;
@@ -703,7 +749,21 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
703
749
  static double cal_val = 0;
704
750
  std::string proc_str = "";
705
751
 
706
- if (data_index_is_valid(src, decoder[2].as<int>(), decoder[3].as<int>())) {
752
+ if (strstr((const char*)decoder[0], "value_from_bit_data") != nullptr) {
753
+ int bit_offset = decoder[2].as<int>();
754
+ int bit_length = decoder[3].as<int>();
755
+ size_t required_chars = ((size_t)(bit_offset + bit_length + 7) / 8) * 2;
756
+
757
+ if (data_index_is_valid(src, 0, required_chars)) {
758
+ temp_val = value_from_bit_string(
759
+ src,
760
+ bit_offset,
761
+ bit_length,
762
+ decoder[4].isNull() ? true : decoder[4].as<bool>());
763
+ } else {
764
+ break;
765
+ }
766
+ } else if (data_index_is_valid(src, decoder[2].as<int>(), decoder[3].as<int>())) {
707
767
  decoder_function dec_fun = &TheengsDecoder::value_from_hex_string;
708
768
 
709
769
  if (strstr((const char*)decoder[0], "bf") != nullptr) {
@@ -816,6 +876,28 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
816
876
  }
817
877
  }
818
878
 
879
+ /* Optional enum-style lookup for numeric decoders. */
880
+ if (prop.containsKey("lookup")) {
881
+ JsonArray lookup = prop["lookup"];
882
+ for (unsigned int i = 0; i + 1 < lookup.size(); i += 2) {
883
+ long long lookup_key = LLONG_MIN;
884
+
885
+ if (lookup[i].is<const char*>()) {
886
+ const char* key_str = lookup[i].as<const char*>();
887
+ if (key_str != nullptr) {
888
+ lookup_key = strtoll(key_str, NULL, 16);
889
+ }
890
+ }
891
+
892
+ if (lookup_key != LLONG_MIN &&
893
+ (long long)temp_val == lookup_key &&
894
+ lookup[i + 1].is<const char*>()) {
895
+ proc_str = lookup[i + 1].as<const char*>();
896
+ break;
897
+ }
898
+ }
899
+ }
900
+
819
901
  /* If there is any underscores at the beginning of the property name, there is multiple
820
902
  * properties of this type, we need remove the underscores for creating the key.
821
903
  */
@@ -897,6 +979,12 @@ int TheengsDecoder::decodeBLEJson(JsonObject& jsondata) {
897
979
 
898
980
  std::string value(src + decoder[2].as<int>(), decoder[3].as<int>());
899
981
 
982
+ if (strstr((const char*)decoder[0], "reverse_") != nullptr) {
983
+ std::string reversed(value.length(), '\0');
984
+ reverse_hex_data(value.c_str(), &reversed[0], value.length());
985
+ value = reversed;
986
+ }
987
+
900
988
  /* Lookup table */
901
989
  if (prop.containsKey("lookup")) {
902
990
  JsonArray lookup = prop["lookup"];
@@ -177,6 +177,7 @@ public:
177
177
  UT363BT,
178
178
  VICTRON_ENCR,
179
179
  VICTBSC,
180
+ VICTORIONTR,
180
181
  VICTORIONXS,
181
182
  VICTSBP,
182
183
  VICTSBS,
@@ -185,6 +186,7 @@ public:
185
186
  SE_TEMP,
186
187
  SE_TPROBE,
187
188
  SE_MAG,
189
+ ODACE_WLBL,
188
190
  SBBT_002C,
189
191
  SBBT_002C_ENCR,
190
192
  SBBT_004CEU_US,
@@ -201,6 +203,7 @@ public:
201
203
  private:
202
204
  void reverse_hex_data(const char* in, char* out, int l);
203
205
  double value_from_hex_string(const char* data_str, int offset, int data_length, bool reverse, bool canBeNegative = true, bool isFloat = false);
206
+ double value_from_bit_string(const char* data_str, int bit_offset, int bit_length, bool canBeNegative = true);
204
207
  double bf_value_from_hex_string(const char* data_str, int offset, int data_length, bool reverse, bool canBeNegative = true, bool isFloat = false);
205
208
  bool data_index_is_valid(const char* str, size_t index, size_t len);
206
209
  bool data_length_is_valid(size_t data_len, size_t default_min, const JsonArray& condition, int *idx);
@@ -1,11 +1,11 @@
1
- const char* _BM2_json = "{\"brand\":\"GENERIC\",\"model\":\"BM2 Battery Monitor\",\"model_id\":\"BM2\",\"tag\":\"0808\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"4c000215655f83caae16a10a702e31f30d58dd82\"],\"properties\":{\"batt\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",48,2,false]},\"device\":{\"decoder\":[\"static_value\",\"BM2 Tracker\"]}}}";
1
+ const char* _BM2_json = "{\"brand\":\"GENERIC\",\"model\":\"BM2 Battery Monitor\",\"model_id\":\"BM2\",\"tag\":\"0848\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"4c000215655f83caae16a10a702e31f30d58dd82\"],\"properties\":{\"batt\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",48,2,false]},\"device\":{\"decoder\":[\"static_value\",\"BM2 Tracker\"]}}}";
2
2
 
3
3
  /*R""""(
4
4
  {
5
5
  "brand":"GENERIC",
6
6
  "model":"BM2 Battery Monitor",
7
7
  "model_id":"BM2",
8
- "tag":"0808",
8
+ "tag":"0848",
9
9
  "condition":["manufacturerdata", "=", 50, "index", 0, "4c000215655f83caae16a10a702e31f30d58dd82"],
10
10
  "properties":{
11
11
  "batt":{
@@ -1,10 +1,10 @@
1
- const char* _BM6_json = "{\"brand\":\"GENERIC\",\"model\":\"BM6 Battery Monitor\",\"model_id\":\"BM6\",\"tag\":\"0808\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"4c0002153ba29cd9a42c894856badaf2606ef777\"],\"properties\":{\"batt\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",42,2,false]},\"device\":{\"decoder\":[\"static_value\",\"BM6 Tracker\"]}}}";
1
+ const char* _BM6_json = "{\"brand\":\"GENERIC\",\"model\":\"BM6 Battery Monitor\",\"model_id\":\"BM6\",\"tag\":\"0848\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"4c0002153ba29cd9a42c894856badaf2606ef777\"],\"properties\":{\"batt\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",42,2,false]},\"device\":{\"decoder\":[\"static_value\",\"BM6 Tracker\"]}}}";
2
2
  /*R""""(
3
3
  {
4
4
  "brand":"GENERIC",
5
5
  "model":"BM6 Battery Monitor",
6
6
  "model_id":"BM6",
7
- "tag":"0808",
7
+ "tag":"0848",
8
8
  "condition":["manufacturerdata", "=", 50, "index", 0, "4c0002153ba29cd9a42c894856badaf2606ef777"],
9
9
  "properties":{
10
10
  "batt":{
@@ -1,10 +1,10 @@
1
- const char* _ECOFLOW_ADV_json = "{\"brand\":\"EcoFlow\",\"model\":\"Power Station\",\"model_id\":\"ECOFLOW_ADV\",\"tag\":\"1409\",\"condition\":[\"manufacturerdata\",\"=\",52,\"index\",0,\"b5b5\"],\"properties\":{\"version\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",6,6],\"lookup\":[\"00\",\"off\",\"523630\",\"RIVER 2\",\"523631\",\"RIVER 2 Max\",\"523632\",\"RIVER 2 Pro\",\"523635\",\"RIVER 3\",\"523333\",\"DELTA 2\"]},\"batt\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",38,2,false,false],\"post_proc\":[\"&\",127]}}}";
1
+ const char* _ECOFLOW_ADV_json = "{\"brand\":\"EcoFlow\",\"model\":\"Power Station\",\"model_id\":\"ECOFLOW_ADV\",\"tag\":\"0c49\",\"condition\":[\"manufacturerdata\",\"=\",52,\"index\",0,\"b5b5\"],\"properties\":{\"version\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",6,6],\"lookup\":[\"00\",\"off\",\"523630\",\"RIVER 2\",\"523631\",\"RIVER 2 Max\",\"523632\",\"RIVER 2 Pro\",\"523635\",\"RIVER 3\",\"523333\",\"DELTA 2\"]},\"batt\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",38,2,false,false],\"post_proc\":[\"&\",127]}}}";
2
2
  /*R""""(
3
3
  {
4
4
  "brand":"EcoFlow",
5
5
  "model":"Power Station",
6
6
  "model_id":"ECOFLOW_ADV",
7
- "tag":"1409",
7
+ "tag":"0c49",
8
8
  "condition":["manufacturerdata", "=", 52, "index", 0, "b5b5"],
9
9
  "properties":{
10
10
  "version":{
@@ -0,0 +1,46 @@
1
+ const char* _ODACE_WLBL_json = "{\"brand\":\"Schneider Electric\",\"model\":\"Odace WLBL\",\"model_id\":\"S520104\",\"tag\":\"1104\",\"condition\":[\"manufacturerdata\",\">=\",24,\"index\",0,\"b6028e44\"],\"properties\":{\"uid\":{\"decoder\":[\"reverse_string_from_hex_data\",\"manufacturerdata\",14,6]},\"action\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",22,2],\"lookup\":[\"00\",\"off\",\"01\",\"on\",\"02\",\"toggle\",\"03\",\"dim_up\",\"04\",\"dim_down\",\"05\",\"up\",\"06\",\"down\",\"07\",\"stop\",\"08\",\"scene_user\",\"09\",\"scene_in\",\"0a\",\"scene_out\"]}}}";
2
+
3
+ /*R""""(
4
+ {
5
+ "brand":"Schneider Electric",
6
+ "model":"Odace WLBL",
7
+ "model_id":"S520104",
8
+ "tag":"1104",
9
+ "condition":["manufacturerdata", ">=", 24, "index", 0, "b6028e44"],
10
+ "properties":{
11
+ "uid":{
12
+ "decoder":["reverse_string_from_hex_data", "manufacturerdata", 14, 6]
13
+ },
14
+ "action":{
15
+ "decoder":["string_from_hex_data", "manufacturerdata", 22, 2],
16
+ "lookup":["00", "off",
17
+ "01", "on",
18
+ "02", "toggle",
19
+ "03", "dim_up",
20
+ "04", "dim_down",
21
+ "05", "up",
22
+ "06", "down",
23
+ "07", "stop",
24
+ "08", "scene_user",
25
+ "09", "scene_in",
26
+ "0a", "scene_out"]
27
+ }
28
+ }
29
+ })"""";*/
30
+
31
+ const char* _ODACE_WLBL_json_props = "{\"properties\":{\"uid\":{\"unit\":\"string\",\"name\":\"device UID\"},\"action\":{\"unit\":\"event\",\"name\":\"button action\",\"events\":[\"off\",\"on\",\"toggle\",\"dim_up\",\"dim_down\",\"up\",\"down\",\"stop\",\"scene_user\",\"scene_in\",\"scene_out\"]}}}";
32
+
33
+ /*R""""(
34
+ {
35
+ "properties":{
36
+ "uid":{
37
+ "unit":"string",
38
+ "name":"device UID"
39
+ },
40
+ "action":{
41
+ "unit":"event",
42
+ "name":"button action",
43
+ "events":["off", "on", "toggle", "dim_up", "dim_down", "up", "down", "stop", "scene_user", "scene_in", "scene_out"]
44
+ }
45
+ }
46
+ })"""";*/
@@ -1,13 +1,13 @@
1
1
  #include "common_props.h"
2
2
 
3
- const char* _SBMP_json = "{\"brand\":\"SwitchBot\",\"model\":\"Meter Pro (CO2)\",\"model_id\":\"W490001X\",\"tag\":\"0f02\",\"condition\":[\"uuid\",\"index\",0,\"fd3d\",\"&\",\"servicedata\",\"=\",6,\"index\",0,\"35\",\"&\",\"manufacturerdata\",\"=\",36,\"index\",0,\"6909\"],\"properties\":{\".cal\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",21,1,false,false],\"post_proc\":[\"/\",10]},\"tempc\":{\"condition\":[\"manufacturerdata\",22,\"bit\",3,0],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2,true,false],\"post_proc\":[\"+\",\".cal\",\"*\",-1]},\"_tempc\":{\"condition\":[\"manufacturerdata\",22,\"bit\",3,1],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2,true,false],\"post_proc\":[\"+\",\".cal\",\"-\",128]},\"hum\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,2,false,false],\"post_proc\":[\"&\",127]},\"co2\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",30,4,false,false]},\"batt\":{\"decoder\":[\"value_from_hex_data\",\"servicedata\",4,2,false,false],\"post_proc\":[\"&\",127]},\"mac\":{\"decoder\":[\"mac_from_hex_data\",\"manufacturerdata\",4]}}}";
3
+ const char* _SBMP_json = "{\"brand\":\"SwitchBot\",\"model\":\"Meter Pro (CO2)\",\"model_id\":\"W490001X\",\"tag\":\"0202\",\"condition\":[\"servicedata\",\"=\",6,\"index\",0,\"35\",\"|\",\"servicedata\",\"=\",6,\"index\",0,\"34\",\"&\",\"uuid\",\"index\",0,\"fd3d\",\"&\",\"manufacturerdata\",\">=\",30,\"index\",0,\"6909\"],\"properties\":{\".cal\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",21,1,false,false],\"post_proc\":[\"/\",10]},\"tempc\":{\"condition\":[\"manufacturerdata\",22,\"bit\",3,0],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2,true,false],\"post_proc\":[\"+\",\".cal\",\"*\",-1]},\"_tempc\":{\"condition\":[\"manufacturerdata\",22,\"bit\",3,1],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2,true,false],\"post_proc\":[\"+\",\".cal\",\"-\",128]},\"hum\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,2,false,false],\"post_proc\":[\"&\",127]},\"batt\":{\"decoder\":[\"value_from_hex_data\",\"servicedata\",4,2,false,false],\"post_proc\":[\"&\",127]},\"mac\":{\"decoder\":[\"mac_from_hex_data\",\"manufacturerdata\",4]},\"co2\":{\"condition\":[\"manufacturerdata\",\"=\",36],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",30,4,false,false]}}}";
4
4
  /*R""""(
5
5
  {
6
6
  "brand":"SwitchBot",
7
7
  "model":"Meter Pro (CO2)",
8
8
  "model_id":"W490001X",
9
- "tag":"0f02",
10
- "condition":["uuid", "index", 0, "fd3d", "&", "servicedata", "=", 6, "index", 0, "35", "&", "manufacturerdata", "=", 36, "index", 0, "6909"],
9
+ "tag":"0202",
10
+ "condition":["servicedata", "=", 6, "index", 0, "35", "|", "servicedata", "=", 6, "index", 0, "34", "&", "uuid", "index", 0, "fd3d", "&", "manufacturerdata", ">=", 30, "index", 0, "6909"],
11
11
  "properties":{
12
12
  ".cal":{
13
13
  "decoder":["value_from_hex_data", "manufacturerdata", 21, 1, false, false],
@@ -27,15 +27,16 @@ const char* _SBMP_json = "{\"brand\":\"SwitchBot\",\"model\":\"Meter Pro (CO2)\"
27
27
  "decoder":["value_from_hex_data", "manufacturerdata", 24, 2, false, false],
28
28
  "post_proc":["&", 127]
29
29
  },
30
- "co2":{
31
- "decoder":["value_from_hex_data", "manufacturerdata", 30, 4, false, false]
32
- },
33
30
  "batt":{
34
31
  "decoder":["value_from_hex_data", "servicedata", 4, 2, false, false],
35
32
  "post_proc":["&", 127]
36
33
  },
37
34
  "mac":{
38
35
  "decoder":["mac_from_hex_data", "manufacturerdata", 4]
36
+ },
37
+ "co2":{
38
+ "condition":["manufacturerdata", "=", 36],
39
+ "decoder":["value_from_hex_data", "manufacturerdata", 30, 4, false, false]
39
40
  }
40
41
  }
41
42
  })"""";*/
@@ -1,10 +1,10 @@
1
- const char* _VICTBSC_json = "{\"brand\":\"Victron Energy\",\"model\":\"Blue Smart Charger\",\"model_id\":\"VICTBSC\",\"tag\":\"1400\",\"condition\":[\"manufacturerdata\",\"=\",46,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"08ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",20,2]},\"_device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_batt_1\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,false],\"post_proc\":[\"&\",8191,\"/\",100]},\"current_batt_1\":{\"condition\":[\"manufacturerdata\",26,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",26,4,true,false],\"post_proc\":[\">\",5,\"&\",2047,\"/\",10]},\"volt_batt_2\":{\"condition\":[\"manufacturerdata\",30,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",30,4,true,false],\"post_proc\":[\"&\",8191,\"/\",100]},\"current_batt_2\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\">\",5,\"&\",2047,\"/\",10]},\"volt_batt_3\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false],\"post_proc\":[\"&\",8191,\"/\",100]},\"current_batt_3\":{\"condition\":[\"manufacturerdata\",38,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",38,4,true,false],\"post_proc\":[\">\",5,\"&\",2047,\"/\",10]},\"tempc\":{\"condition\":[\"manufacturerdata\",42,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",42,2],\"post_proc\":[\"&\",127,\"-\",40]},\"current_ac\":{\"condition\":[\"manufacturerdata\",44,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",42,4,false,false],\"post_proc\":[\"&\",511,\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
1
+ const char* _VICTBSC_json = "{\"brand\":\"Victron Energy\",\"model\":\"Blue Smart Charger\",\"model_id\":\"VICTBSC\",\"tag\":\"0c40\",\"condition\":[\"manufacturerdata\",\"=\",46,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"08ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",20,2]},\"_device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_batt_1\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,false],\"post_proc\":[\"&\",8191,\"/\",100]},\"current_batt_1\":{\"condition\":[\"manufacturerdata\",26,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",26,4,true,false],\"post_proc\":[\">\",5,\"&\",2047,\"/\",10]},\"volt_batt_2\":{\"condition\":[\"manufacturerdata\",30,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",30,4,true,false],\"post_proc\":[\"&\",8191,\"/\",100]},\"current_batt_2\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\">\",5,\"&\",2047,\"/\",10]},\"volt_batt_3\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false],\"post_proc\":[\"&\",8191,\"/\",100]},\"current_batt_3\":{\"condition\":[\"manufacturerdata\",38,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",38,4,true,false],\"post_proc\":[\">\",5,\"&\",2047,\"/\",10]},\"tempc\":{\"condition\":[\"manufacturerdata\",42,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",42,2],\"post_proc\":[\"&\",127,\"-\",40]},\"current_ac\":{\"condition\":[\"manufacturerdata\",44,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",42,4,false,false],\"post_proc\":[\"&\",511,\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
2
2
  /*R""""(
3
3
  {
4
4
  "brand":"Victron Energy",
5
5
  "model":"Blue Smart Charger",
6
6
  "model_id":"VICTBSC",
7
- "tag":"1400",
7
+ "tag":"0c40",
8
8
  "condition":["manufacturerdata", "=", 46, "index", 0, "e10211", "&", "manufacturerdata", "index", 12, "08ffff"],
9
9
  "properties":{
10
10
  "device_state":{
@@ -0,0 +1,86 @@
1
+ const char* _VICTORIONTR_json = "{\"brand\":\"Victron Energy\",\"model\":\"Orion TR\",\"model_id\":\"VICTORIONTR\",\"tag\":\"0c48\",\"condition\":[\"manufacturerdata\",\"=\",40,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",8,\"d0a3\",\"&\",\"manufacturerdata\",\"index\",12,\"04ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power_supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_in\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"ff7f\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,true],\"post_proc\":[\"/\",100]},\"current_out\":{\"condition\":[\"manufacturerdata\",28,\"!\",\"ff7f\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",28,4,true,true],\"post_proc\":[\"/\",10]},\"volt_out\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\"/\",100]},\"current_in\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false],\"post_proc\":[\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
2
+ /*R""""(
3
+ {
4
+ "brand":"Victron Energy",
5
+ "model":"Orion TR",
6
+ "model_id":"VICTORIONTR",
7
+ "tag":"0c48",
8
+ "condition":["manufacturerdata", "=", 40, "index", 0, "e10211", "&", "manufacturerdata", "index", 8, "d0a3", "&", "manufacturerdata", "index", 12, "04ffff"],
9
+ "properties":{
10
+ "device_state":{
11
+ "decoder":["string_from_hex_data", "manufacturerdata", 20, 2],
12
+ "lookup":["00", "off",
13
+ "01", "low power",
14
+ "02", "fault",
15
+ "03", "bulk",
16
+ "04", "absorption",
17
+ "05", "float",
18
+ "06", "storage",
19
+ "07", "equalize manual",
20
+ "09", "inverting",
21
+ "0b", "power_supply",
22
+ "f5", "starting up",
23
+ "f6", "repeated absorption",
24
+ "f7", "recondition",
25
+ "f8", "battery safe",
26
+ "f9", "active",
27
+ "fc", "external control",
28
+ "ff", "N/A"]
29
+ },
30
+ "volt_in":{
31
+ "condition":["manufacturerdata", 24, "!", "ff7f"],
32
+ "decoder":["value_from_hex_data", "manufacturerdata", 24, 4, true, true],
33
+ "post_proc":["/", 100]
34
+ },
35
+ "current_out":{
36
+ "condition":["manufacturerdata", 28, "!", "ff7f"],
37
+ "decoder":["value_from_hex_data", "manufacturerdata", 28, 4, true, true],
38
+ "post_proc":["/", 10]
39
+ },
40
+ "volt_out":{
41
+ "condition":["manufacturerdata", 32, "!", "ffff"],
42
+ "decoder":["value_from_hex_data", "manufacturerdata", 32, 4, true, false],
43
+ "post_proc":["/", 100]
44
+ },
45
+ "current_in":{
46
+ "condition":["manufacturerdata", 36, "!", "ffff"],
47
+ "decoder":["value_from_hex_data", "manufacturerdata", 36, 4, true, false],
48
+ "post_proc":["/", 10]
49
+ },
50
+ "error_code":{
51
+ "condition":["manufacturerdata", 22, "!", "ff"],
52
+ "decoder":["value_from_hex_data", "manufacturerdata", 22, 2]
53
+ }
54
+ }
55
+ })"""";*/
56
+
57
+ const char* _VICTORIONTR_json_props = "{\"properties\":{\"device_state\":{\"unit\":\"string\",\"name\":\"device state\"},\"volt_out\":{\"unit\":\"V\",\"name\":\"voltage\"},\"current_out\":{\"unit\":\"A\",\"name\":\"current\"},\"volt_in\":{\"unit\":\"V\",\"name\":\"voltage\"},\"current_in\":{\"unit\":\"A\",\"name\":\"current\"},\"error_code\":{\"unit\":\"int\",\"name\":\"error code\"}}}";
58
+ /*R""""(
59
+ {
60
+ "properties":{
61
+ "device_state":{
62
+ "unit":"string",
63
+ "name":"device state"
64
+ },
65
+ "volt_out": {
66
+ "unit": "V",
67
+ "name": "voltage"
68
+ },
69
+ "current_out": {
70
+ "unit": "A",
71
+ "name": "current"
72
+ },
73
+ "volt_in": {
74
+ "unit": "V",
75
+ "name": "voltage"
76
+ },
77
+ "current_in": {
78
+ "unit": "A",
79
+ "name": "current"
80
+ },
81
+ "error_code":{
82
+ "unit":"int",
83
+ "name":"error code"
84
+ }
85
+ }
86
+ })"""";*/
@@ -1,10 +1,10 @@
1
- const char* _VICTORIONXS_json = "{\"brand\":\"Victron Energy\",\"model\":\"Orion XS\",\"model_id\":\"VICTORIONXS\",\"tag\":\"1408\",\"condition\":[\"manufacturerdata\",\"=\",48,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"0fffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power_supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_out\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,true],\"post_proc\":[\"/\",100]},\"current_out\":{\"condition\":[\"manufacturerdata\",28,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",28,4,true,true],\"post_proc\":[\"/\",10]},\"volt_in\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\"/\",100]},\"current_in\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false],\"post_proc\":[\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
1
+ const char* _VICTORIONXS_json = "{\"brand\":\"Victron Energy\",\"model\":\"Orion XS\",\"model_id\":\"VICTORIONXS\",\"tag\":\"0c48\",\"condition\":[\"manufacturerdata\",\"=\",48,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"0fffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power_supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_out\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,true],\"post_proc\":[\"/\",100]},\"current_out\":{\"condition\":[\"manufacturerdata\",28,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",28,4,true,true],\"post_proc\":[\"/\",10]},\"volt_in\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\"/\",100]},\"current_in\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false],\"post_proc\":[\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
2
2
  /*R""""(
3
3
  {
4
4
  "brand":"Victron Energy",
5
5
  "model":"Orion XS",
6
6
  "model_id":"VICTORIONXS",
7
- "tag":"1408",
7
+ "tag":"0c48",
8
8
  "condition":["manufacturerdata", "=", 48, "index", 0, "e10211", "&", "manufacturerdata", "index", 12, "0fffff"],
9
9
  "properties":{
10
10
  "device_state":{
@@ -1,10 +1,10 @@
1
- const char* _VICTSBP_json = "{\"brand\":\"Victron Energy\",\"model\":\"Smart BatteryProtect\",\"model_id\":\"VICTSBP\",\"tag\":\"1408\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"09ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power_supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"output_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",22,2],\"lookup\":[\"00\",\"off\",\"01\",\"on\",\"ff\",\"N/A\"]},\"volt_in\":{\"condition\":[\"manufacturerdata\",34,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",34,4,true,true],\"post_proc\":[\"&\",32767,\"/\",100]},\"volt_out\":{\"condition\":[\"manufacturerdata\",38,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",38,4,true,false],\"post_proc\":[\"/\",100]},\"error_code\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,2]},\"alarm_reason\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",26,4]},\"warning_reason\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",30,4]}}}";
1
+ const char* _VICTSBP_json = "{\"brand\":\"Victron Energy\",\"model\":\"Smart BatteryProtect\",\"model_id\":\"VICTSBP\",\"tag\":\"0c48\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"09ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power_supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"output_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",22,2],\"lookup\":[\"00\",\"off\",\"01\",\"on\",\"ff\",\"N/A\"]},\"volt_in\":{\"condition\":[\"manufacturerdata\",34,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",34,4,true,true],\"post_proc\":[\"&\",32767,\"/\",100]},\"volt_out\":{\"condition\":[\"manufacturerdata\",38,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",38,4,true,false],\"post_proc\":[\"/\",100]},\"error_code\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,2]},\"alarm_reason\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",26,4]},\"warning_reason\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",30,4]}}}";
2
2
  /*R""""(
3
3
  {
4
4
  "brand":"Victron Energy",
5
5
  "model":"Smart BatteryProtect",
6
6
  "model_id":"VICTSBP",
7
- "tag":"1408",
7
+ "tag":"0c48",
8
8
  "condition":["manufacturerdata", "=", 50, "index", 0, "e10211", "&", "manufacturerdata", "index", 12, "09ffff"],
9
9
  "properties":{
10
10
  "device_state":{
@@ -0,0 +1,95 @@
1
+ const char* _VICTSBS_json = "{\"brand\":\"Victron Energy\",\"model\":\"Battery Monitor/Smart Battery Sense/SmartShunt\",\"model_id\":\"VICTSBS\",\"tag\":\"0c48\",\"condition\":[\"manufacturerdata\",\"=\",50,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"02ffff\"],\"properties\":{\"ttg\":{\"condition\":[\"manufacturerdata\",20,\"!\",\"ffff\"],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",80,16,false]},\"volt\":{\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",96,16,true],\"post_proc\":[\"/\",100]},\"volt_aux\":{\"condition\":[\"manufacturerdata\",37,\"bit\",0,0,\"&\",\"manufacturerdata\",37,\"bit\",1,0],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",128,16,true],\"post_proc\":[\"/\",100]},\"volt_mid\":{\"condition\":[\"manufacturerdata\",37,\"bit\",0,1,\"&\",\"manufacturerdata\",37,\"bit\",1,0],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",128,16,true],\"post_proc\":[\"/\",100]},\"tempc\":{\"condition\":[\"manufacturerdata\",37,\"bit\",0,0,\"&\",\"manufacturerdata\",37,\"bit\",1,1],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",128,16,true],\"post_proc\":[\"-\",27315,\"/\",100]},\"current\":{\"condition\":[\"manufacturerdata\",38,\"!\",\"ff\"],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",146,22,true],\"post_proc\":[\"/\",1000]},\"consumed_ah\":{\"condition\":[\"manufacturerdata\",41,\"!\",\"fffff\"],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",168,20,true],\"post_proc\":[\"/\",-10]},\"soc\":{\"condition\":[\"manufacturerdata\",46,\"!\",\"fff\"],\"decoder\":[\"value_from_bit_data\",\"manufacturerdata\",188,10,false],\"post_proc\":[\"/\",10]},\"alarm_reason\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",28,4]}}}";
2
+ /*R""""(
3
+ {
4
+ "brand":"Victron Energy",
5
+ "model":"Battery Monitor/Smart Battery Sense/SmartShunt",
6
+ "model_id":"VICTSBS",
7
+ "tag":"0c48",
8
+ "condition":["manufacturerdata", "=", 50, "index", 0, "e10211", "&", "manufacturerdata", "index", 12, "02ffff"],
9
+ "properties":{
10
+ "ttg":{
11
+ "condition":["manufacturerdata", 20, "!", "ffff"],
12
+ "decoder":["value_from_bit_data", "manufacturerdata", 80, 16, false]
13
+ },
14
+ "volt":{
15
+ "decoder":["value_from_bit_data", "manufacturerdata", 96, 16, true],
16
+ "post_proc":["/", 100]
17
+ },
18
+ "volt_aux":{
19
+ "condition":["manufacturerdata", 37, "bit", 0, 0, "&", "manufacturerdata", 37, "bit", 1, 0],
20
+ "decoder":["value_from_bit_data", "manufacturerdata", 128, 16, true],
21
+ "post_proc":["/", 100]
22
+ },
23
+ "volt_mid":{
24
+ "condition":["manufacturerdata", 37, "bit", 0, 1, "&", "manufacturerdata", 37, "bit", 1, 0],
25
+ "decoder":["value_from_bit_data", "manufacturerdata", 128, 16, true],
26
+ "post_proc":["/", 100]
27
+ },
28
+ "tempc":{
29
+ "condition":["manufacturerdata", 37, "bit", 0, 0, "&", "manufacturerdata", 37, "bit", 1, 1],
30
+ "decoder":["value_from_bit_data", "manufacturerdata", 128, 16, true],
31
+ "post_proc":["-", 27315, "/", 100]
32
+ },
33
+ "current":{
34
+ "condition":["manufacturerdata", 38, "!", "ff"],
35
+ "decoder":["value_from_bit_data", "manufacturerdata", 146, 22, true],
36
+ "post_proc":["/", 1000]
37
+ },
38
+ "consumed_ah":{
39
+ "condition":["manufacturerdata", 41, "!", "fffff"],
40
+ "decoder":["value_from_bit_data", "manufacturerdata", 168, 20, true],
41
+ "post_proc":["/", -10]
42
+ },
43
+ "soc":{
44
+ "condition":["manufacturerdata", 46, "!", "fff"],
45
+ "decoder":["value_from_bit_data", "manufacturerdata", 188, 10, false],
46
+ "post_proc":["/", 10]
47
+ },
48
+ "alarm_reason":{
49
+ "decoder":["value_from_hex_data", "manufacturerdata", 28, 4]
50
+ }
51
+ }
52
+ })"""";*/
53
+
54
+ const char* _VICTSBS_json_props = "{\"properties\":{\"ttg\":{\"unit\":\"min\",\"name\":\"duration\"},\"volt\":{\"unit\":\"V\",\"name\":\"voltage\"},\"volt_aux\":{\"unit\":\"V\",\"name\":\"voltage\"},\"volt_mid\":{\"unit\":\"V\",\"name\":\"voltage\"},\"tempc\":{\"unit\":\"°C\",\"name\":\"temperature\"},\"current\":{\"unit\":\"A\",\"name\":\"current\"},\"consumed_ah\":{\"unit\":\"Ah\",\"name\":\"consumed ampere hours\"},\"soc\":{\"unit\":\"%\",\"name\":\"state of charge\"},\"alarm_reason\":{\"unit\":\"int\",\"name\":\"alarm reason\"}}}";
55
+ /*R""""(
56
+ {
57
+ "properties":{
58
+ "ttg":{
59
+ "unit":"min",
60
+ "name":"duration"
61
+ },
62
+ "volt": {
63
+ "unit": "V",
64
+ "name": "voltage"
65
+ },
66
+ "volt_aux":{
67
+ "unit":"V",
68
+ "name":"voltage"
69
+ },
70
+ "volt_mid":{
71
+ "unit":"V",
72
+ "name":"voltage"
73
+ },
74
+ "tempc":{
75
+ "unit":"°C",
76
+ "name":"temperature"
77
+ },
78
+ "current":{
79
+ "unit":"A",
80
+ "name":"current"
81
+ },
82
+ "consumed_ah":{
83
+ "unit":"Ah",
84
+ "name":"consumed ampere hours"
85
+ },
86
+ "soc":{
87
+ "unit":"%",
88
+ "name":"state of charge"
89
+ },
90
+ "alarm_reason":{
91
+ "unit":"int",
92
+ "name":"alarm reason"
93
+ }
94
+ }
95
+ })"""";*/
@@ -1,10 +1,10 @@
1
- const char* _VICTSCC_json = "{\"brand\":\"Victron Energy\",\"model\":\"Solar Charge Controller\",\"model_id\":\"VICTSCC\",\"tag\":\"1408\",\"condition\":[\"manufacturerdata\",\"=\",44,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"01ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",20,2]},\"_device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_batt\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,true],\"post_proc\":[\"&\",32767,\"/\",100]},\"current_batt\":{\"condition\":[\"manufacturerdata\",28,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",28,4,true,true],\"post_proc\":[\"&\",32767,\"/\",10]},\"yield_today\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\"/\",100]},\"pv_power\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false]},\"current_load\":{\"condition\":[\"manufacturerdata\",40,\"!\",\"01ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",40,4,true,false],\"post_proc\":[\"&\",511,\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
1
+ const char* _VICTSCC_json = "{\"brand\":\"Victron Energy\",\"model\":\"Solar Charge Controller\",\"model_id\":\"VICTSCC\",\"tag\":\"0c48\",\"condition\":[\"manufacturerdata\",\"=\",44,\"index\",0,\"e10211\",\"&\",\"manufacturerdata\",\"index\",12,\"01ffff\"],\"properties\":{\"device_state\":{\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",20,2]},\"_device_state\":{\"decoder\":[\"string_from_hex_data\",\"manufacturerdata\",20,2],\"lookup\":[\"00\",\"off\",\"01\",\"low power\",\"02\",\"fault\",\"03\",\"bulk\",\"04\",\"absorption\",\"05\",\"float\",\"06\",\"storage\",\"07\",\"equalize manual\",\"09\",\"inverting\",\"0b\",\"power supply\",\"f5\",\"starting up\",\"f6\",\"repeated absorption\",\"f7\",\"recondition\",\"f8\",\"battery safe\",\"f9\",\"active\",\"fc\",\"external control\",\"ff\",\"N/A\"]},\"volt_batt\":{\"condition\":[\"manufacturerdata\",24,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",24,4,true,true],\"post_proc\":[\"&\",32767,\"/\",100]},\"current_batt\":{\"condition\":[\"manufacturerdata\",28,\"!\",\"7fff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",28,4,true,true],\"post_proc\":[\"&\",32767,\"/\",10]},\"yield_today\":{\"condition\":[\"manufacturerdata\",32,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",32,4,true,false],\"post_proc\":[\"/\",100]},\"pv_power\":{\"condition\":[\"manufacturerdata\",36,\"!\",\"ffff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",36,4,true,false]},\"current_load\":{\"condition\":[\"manufacturerdata\",40,\"!\",\"01ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",40,4,true,false],\"post_proc\":[\"&\",511,\"/\",10]},\"error_code\":{\"condition\":[\"manufacturerdata\",22,\"!\",\"ff\"],\"decoder\":[\"value_from_hex_data\",\"manufacturerdata\",22,2]}}}";
2
2
  /*R""""(
3
3
  {
4
4
  "brand":"Victron Energy",
5
5
  "model":"Solar Charge Controller",
6
6
  "model_id":"VICTSCC",
7
- "tag":"1408",
7
+ "tag":"0c48",
8
8
  "condition":["manufacturerdata", "=", 44, "index", 0, "e10211", "&", "manufacturerdata", "index", 12, "01ffff"],
9
9
  "properties":{
10
10
  "device_state":{