ul-data-gateway-sdk 2.0.0.dev1__tar.gz → 2.0.2__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 (200) hide show
  1. ul_data_gateway_sdk-2.0.0.dev1/README.md → ul_data_gateway_sdk-2.0.2/PKG-INFO +31 -5
  2. ul_data_gateway_sdk-2.0.0.dev1/ul_data_gateway_sdk.egg-info/PKG-INFO → ul_data_gateway_sdk-2.0.2/README.md +1 -36
  3. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/device_data_protocol.py +3 -1
  4. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/__tests__/test_device_protocol.py +175 -1
  5. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/smpm_device_packet.py +29 -7
  6. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_metano_x_rb_24b_emergency.py +394 -0
  7. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_metano_x_rb_40b_daily.py +3008 -0
  8. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_metano_x_rf_16b_emergency.py +59 -0
  9. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_metano_x_rf_64b_daily.py +2131 -0
  10. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/smpm_ul_device_metano_x_rb_24b_emergency.py +310 -0
  11. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/smpm_ul_device_metano_x_rb_40b_daily.py +429 -0
  12. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/smpm_ul_device_metano_x_rf_16b_emergency.py +272 -0
  13. ul_data_gateway_sdk-2.0.2/data_gateway_sdk/protocols/smpm/smpm_ul_device_metano_x_rf_64b_daily.py +458 -0
  14. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/pyproject.toml +9 -13
  15. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2/ul_data_gateway_sdk.egg-info}/PKG-INFO +10 -15
  16. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/ul_data_gateway_sdk.egg-info/SOURCES.txt +8 -0
  17. ul_data_gateway_sdk-2.0.2/ul_data_gateway_sdk.egg-info/requires.txt +17 -0
  18. ul_data_gateway_sdk-2.0.0.dev1/ul_data_gateway_sdk.egg-info/requires.txt +0 -18
  19. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/__init__.py +0 -0
  20. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/__tests__/__init__.py +0 -0
  21. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/__tests__/test_encryption.py +0 -0
  22. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/__init__.py +0 -0
  23. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/__tests__/__init__.py +0 -0
  24. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/__tests__/crypto_test.py +0 -0
  25. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/constants/__init__.py +0 -0
  26. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/constants/constants_aes.py +0 -0
  27. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/constants/constants_kuz.py +0 -0
  28. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/constants/kuz_tables.bin +0 -0
  29. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/crypto_aes.py +0 -0
  30. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/crypto_kuznechik.py +0 -0
  31. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/crypto_xtea.py +0 -0
  32. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/extensions/__init__.py +0 -0
  33. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/extensions/errors.py +0 -0
  34. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/crypto_algorithms/extensions/type_alias.py +0 -0
  35. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/device_data.py +0 -0
  36. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/device_data_encryption.py +0 -0
  37. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/errors.py +0 -0
  38. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/messages/__init__.py +0 -0
  39. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/messages/input_bs_http_nero_message.py +0 -0
  40. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/nero_bs_protocol.py +0 -0
  41. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/__init__.py +0 -0
  42. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/__init__.py +0 -0
  43. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/__tests__/__init__.py +0 -0
  44. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/device_packet.py +0 -0
  45. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/ncp_smp_device_packet.py +0 -0
  46. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/smp_device_packet.py +0 -0
  47. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/device_packet/water5_device_packet.py +0 -0
  48. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/nero_bs_packet/__init__.py +0 -0
  49. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/nero_bs_packet/__tests__/__init__.py +0 -0
  50. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/nero_bs_packet/__tests__/http_nero_bs_packet.py +0 -0
  51. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/nero_bs_packet/__tests__/test_bs_protocol.py +0 -0
  52. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/nero_bs_packet/http_nero_bs_packet.py +0 -0
  53. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/nero_bs_packet/nero_bs_packet.py +0 -0
  54. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__init__.py +0 -0
  55. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/__init__.py +0 -0
  56. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_dl_device_energy_16b_get_data.py +0 -0
  57. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_dl_device_energy_16b_set_regular_data_sending.py +0 -0
  58. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_dl_device_energy_8b_get_data.py +0 -0
  59. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_dl_device_energy_8b_set_clock.py +0 -0
  60. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_dl_device_energy_8b_set_relay.py +0 -0
  61. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_dl_answer.py +0 -0
  62. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_3phase_consumed.py +0 -0
  63. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_3phase_generated.py +0 -0
  64. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_daily.py +0 -0
  65. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_device_info.py +0 -0
  66. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_electricity_params.py +0 -0
  67. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_info.py +0 -0
  68. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_journal.py +0 -0
  69. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h1_energy.py +0 -0
  70. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h2_energy.py +0 -0
  71. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h3_energy.py +0 -0
  72. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h_ar.py +0 -0
  73. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h_energy.py +0 -0
  74. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h_f.py +0 -0
  75. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_profile_8h_pqs.py +0 -0
  76. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_retrospective_energy.py +0 -0
  77. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_status_info.py +0 -0
  78. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_tariff_consumed.py +0 -0
  79. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_energy_16b_tariff_generated.py +0 -0
  80. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_gaz_flow_08b_daily.py +0 -0
  81. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_gaz_flow_16b_daily.py +0 -0
  82. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_gaz_flow_32b_daily.py +0 -0
  83. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_heat_group_meter_56b_daily.py +0 -0
  84. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_heat_group_meter_daily.py +0 -0
  85. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_heat_proxy_meter_16b_daily.py +0 -0
  86. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_internal_info.py +0 -0
  87. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_08b_counter.py +0 -0
  88. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_08b_counter_ch1.py +0 -0
  89. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_08b_counter_ch2.py +0 -0
  90. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_08b_counter_volume.py +0 -0
  91. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_12b_counter.py +0 -0
  92. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_12b_counter_volume.py +0 -0
  93. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_jupiter_16b_counter.py +0 -0
  94. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_04b_event.py +0 -0
  95. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_08b_daily.py +0 -0
  96. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_08b_daily_new.py +0 -0
  97. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_08b_info.py +0 -0
  98. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_12b_daily.py +0 -0
  99. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_16b_daily.py +0 -0
  100. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/smpm_ul_device_water_meter_nbiot_16b_daily.py +0 -0
  101. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/__tests__/test_self_package_tests.py +0 -0
  102. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_dl_device_energy_16b_get_data.py +0 -0
  103. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_dl_device_energy_16b_set_regular_data_sending.py +0 -0
  104. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_dl_device_energy_8b_get_data.py +0 -0
  105. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_dl_device_energy_8b_set_clock.py +0 -0
  106. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_dl_device_energy_8b_set_relay.py +0 -0
  107. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_dl_answer.py +0 -0
  108. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_3phase_consumed.py +0 -0
  109. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_3phase_generated.py +0 -0
  110. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_daily.py +0 -0
  111. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_device_info.py +0 -0
  112. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_electricity_params.py +0 -0
  113. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_info.py +0 -0
  114. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_journal.py +0 -0
  115. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h1_energy.py +0 -0
  116. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h2_energy.py +0 -0
  117. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h3_energy.py +0 -0
  118. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h_ar.py +0 -0
  119. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h_energy.py +0 -0
  120. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h_f.py +0 -0
  121. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_profile_8h_pqs.py +0 -0
  122. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_retrospective_energy.py +0 -0
  123. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_status_info.py +0 -0
  124. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_tariff_consumed.py +0 -0
  125. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_energy_16b_tariff_generated.py +0 -0
  126. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_gaz_flow_08b_daily.py +0 -0
  127. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_gaz_flow_16b_daily.py +0 -0
  128. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_gaz_flow_32b_daily.py +0 -0
  129. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_heat_group_meter_56b_daily.py +0 -0
  130. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_heat_group_meter_daily.py +0 -0
  131. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_heat_proxy_meter_16b_daily.py +0 -0
  132. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_internal_info.py +0 -0
  133. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_08b_counter.py +0 -0
  134. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_08b_counter_ch1.py +0 -0
  135. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_08b_counter_ch2.py +0 -0
  136. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_08b_counter_volume.py +0 -0
  137. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_12b_counter.py +0 -0
  138. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_12b_counter_volume.py +0 -0
  139. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_jupiter_16b_counter.py +0 -0
  140. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_04b_event.py +0 -0
  141. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_08b_daily.py +0 -0
  142. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_08b_daily_new.py +0 -0
  143. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_08b_info.py +0 -0
  144. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_12b_daily.py +0 -0
  145. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_16b_daily.py +0 -0
  146. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/smpm/smpm_ul_device_water_meter_nbiot_16b_daily.py +0 -0
  147. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/udp_wrapper/__init__.py +0 -0
  148. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/udp_wrapper/__tests__/__init__.py +0 -0
  149. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/udp_wrapper/__tests__/unbp_len.py +0 -0
  150. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/udp_wrapper/unbp_len.py +0 -0
  151. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__init__.py +0 -0
  152. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/__init__.py +0 -0
  153. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/test_self_package_tests.py +0 -0
  154. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_cold_reset.py +0 -0
  155. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_daily.py +0 -0
  156. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_info_ch1.py +0 -0
  157. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_info_ch2.py +0 -0
  158. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_magnet.py +0 -0
  159. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_warm_reset_v_fluo_a.py +0 -0
  160. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_warm_reset_v_fluo_freescale.py +0 -0
  161. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_warm_reset_v_fluo_stm.py +0 -0
  162. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_warm_reset_v_jupiter_freescale.py +0 -0
  163. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_warm_reset_v_jupiter_stm.py +0 -0
  164. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_warm_reset_v_metano_a.py +0 -0
  165. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_weekly_ch1.py +0 -0
  166. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_weekly_ch1_impulse.py +0 -0
  167. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_weekly_ch1_impulse_v2.py +0 -0
  168. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_weekly_ch2.py +0 -0
  169. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_weekly_ch2_impulse.py +0 -0
  170. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/__tests__/water5_device_weekly_ch2_impulse_v2.py +0 -0
  171. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_cold_reset.py +0 -0
  172. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_daily.py +0 -0
  173. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_info_ch1.py +0 -0
  174. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_info_ch2.py +0 -0
  175. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_magnet.py +0 -0
  176. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_warm_reset_v_fluo_a.py +0 -0
  177. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_warm_reset_v_fluo_freescale.py +0 -0
  178. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_warm_reset_v_fluo_stm.py +0 -0
  179. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_warm_reset_v_jupiter_freescale.py +0 -0
  180. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_warm_reset_v_jupiter_stm.py +0 -0
  181. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_warm_reset_v_metano_a.py +0 -0
  182. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_weekly_ch1.py +0 -0
  183. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_weekly_ch1_impulse.py +0 -0
  184. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_weekly_ch1_impulse_v2.py +0 -0
  185. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_weekly_ch2.py +0 -0
  186. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_weekly_ch2_impulse.py +0 -0
  187. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/protocols/water5_v_nero/water5_device_weekly_ch2_impulse_v2.py +0 -0
  188. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/py.typed +0 -0
  189. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/__init__.py +0 -0
  190. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/__tests__/__init__.py +0 -0
  191. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/__tests__/timestamp_calculation.py +0 -0
  192. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/buf_ref.py +0 -0
  193. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/days_ago_calculation.py +0 -0
  194. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/first_day_of_month.py +0 -0
  195. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/packet.py +0 -0
  196. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/timestamp_calculation.py +0 -0
  197. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/data_gateway_sdk/utils/true_round.py +0 -0
  198. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/setup.cfg +0 -0
  199. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/ul_data_gateway_sdk.egg-info/dependency_links.txt +0 -0
  200. {ul_data_gateway_sdk-2.0.0.dev1 → ul_data_gateway_sdk-2.0.2}/ul_data_gateway_sdk.egg-info/top_level.txt +0 -0
@@ -1,3 +1,33 @@
1
+ Metadata-Version: 2.4
2
+ Name: ul-data-gateway-sdk
3
+ Version: 2.0.2
4
+ Summary: Data gateway sdk
5
+ Author: Unic-lab
6
+ License: MIT
7
+ Classifier: Intended Audience :: Developers
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Programming Language :: Python
10
+ Classifier: Programming Language :: Python :: 3.14
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.14
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: asyncio>=3.4.3
15
+ Requires-Dist: asyncio-dgram>=3.0.0
16
+ Requires-Dist: ul-pyncp>=1.0.5
17
+ Requires-Dist: ul-pysmp>=1.0.3
18
+ Requires-Dist: ul-api-utils>=10.0.11
19
+ Requires-Dist: ul-db-utils>=6.0.2
20
+ Requires-Dist: ul-py-tool>=3.0.3
21
+ Requires-Dist: ul-data-logger-sdk>=4.0.0
22
+ Requires-Dist: ul-data-logger-api-sdk>=3.0.0
23
+ Requires-Dist: ul-data-aggregator-sdk>=11.0.1
24
+ Requires-Dist: timezonefinder>=8.2.1
25
+ Requires-Dist: pytest-env>=1.6.0
26
+ Requires-Dist: aiormq>=6.9.3
27
+ Requires-Dist: tenacity>=9.1.4
28
+ Provides-Extra: dev
29
+ Requires-Dist: uv-script>=0.1.9; extra == "dev"
30
+
1
31
  # Data adapter
2
32
  Входной слой поступления данных от приборов или других источников
3
33
 
@@ -51,14 +81,10 @@ ____
51
81
  - bash
52
82
  - make
53
83
  - python `3.14` (см. `pyproject.toml` / `.python-version`)
54
- - uv ([Astral uv](https://docs.astral.sh/uv/) — для `uv sync`, `uv run`)
84
+ - uv
55
85
  - docker-compose `1.27.4`
56
86
  - docker `19.03.13`
57
87
 
58
- ## Переход с Pipenv на uv
59
-
60
- Зависимости проекта задаются в **`pyproject.toml`**, зафиксированное дерево — в **`uv.lock`**. Установка зависимостей: **`uv sync`** (в CI и Docker для воспроизводимости используется **`uv sync --frozen`**). Команды **`lint`** и **`tests`** в `Makefile` и в GitLab CI вызывают **`.venv/bin/uvs`** (скрипты из **`[tool.uvs.scripts]`** в `pyproject.toml`). **Локально**, чтобы набрать просто **`uvs lint`** / **`uvs test`** без префикса `uv run`, активируйте venv: **`source .venv/bin/activate`** после **`uv sync`** — тогда **`uvs`** попадёт в `PATH`. Файлы **`Pipfile`** / **`Pipfile.lock`** могут оставаться в репозитории на время перехода; целевой рабочий процесс — **uv**, не Pipenv.
61
-
62
88
  ## Команды
63
89
 
64
90
  ### обновление репозитория до последнего состояния в ветке
@@ -1,34 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: ul-data-gateway-sdk
3
- Version: 2.0.0.dev1
4
- Summary: Data gateway sdk
5
- Author: Unic-lab
6
- License: MIT
7
- Classifier: Intended Audience :: Developers
8
- Classifier: License :: OSI Approved :: MIT License
9
- Classifier: Programming Language :: Python
10
- Classifier: Programming Language :: Python :: 3.14
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.14
13
- Description-Content-Type: text/markdown
14
- Requires-Dist: ul-unipipeline>=2.0.0
15
- Requires-Dist: asyncio>=3.4.3
16
- Requires-Dist: asyncio-dgram>=3.0.0
17
- Requires-Dist: ul-pyncp==1.0.5
18
- Requires-Dist: ul-pysmp==1.0.3
19
- Requires-Dist: ul-api-utils==10.0.0.dev6
20
- Requires-Dist: ul-db-utils==6.0.0.dev3
21
- Requires-Dist: ul-py-tool==3.0.2.dev1
22
- Requires-Dist: ul-data-logger-sdk==3.0.4
23
- Requires-Dist: ul-data-logger-api-sdk==2.0.1
24
- Requires-Dist: ul-data-aggregator-sdk==10.6.5
25
- Requires-Dist: timezonefinder>=8.2.1
26
- Requires-Dist: pytest-env>=1.6.0
27
- Requires-Dist: aiormq>=6.9.3
28
- Requires-Dist: tenacity>=9.1.4
29
- Provides-Extra: dev
30
- Requires-Dist: uv-script>=0.1.9; extra == "dev"
31
-
32
1
  # Data adapter
33
2
  Входной слой поступления данных от приборов или других источников
34
3
 
@@ -82,14 +51,10 @@ ____
82
51
  - bash
83
52
  - make
84
53
  - python `3.14` (см. `pyproject.toml` / `.python-version`)
85
- - uv ([Astral uv](https://docs.astral.sh/uv/) — для `uv sync`, `uv run`)
54
+ - uv
86
55
  - docker-compose `1.27.4`
87
56
  - docker `19.03.13`
88
57
 
89
- ## Переход с Pipenv на uv
90
-
91
- Зависимости проекта задаются в **`pyproject.toml`**, зафиксированное дерево — в **`uv.lock`**. Установка зависимостей: **`uv sync`** (в CI и Docker для воспроизводимости используется **`uv sync --frozen`**). Команды **`lint`** и **`tests`** в `Makefile` и в GitLab CI вызывают **`.venv/bin/uvs`** (скрипты из **`[tool.uvs.scripts]`** в `pyproject.toml`). **Локально**, чтобы набрать просто **`uvs lint`** / **`uvs test`** без префикса `uv run`, активируйте venv: **`source .venv/bin/activate`** после **`uv sync`** — тогда **`uvs`** попадёт в `PATH`. Файлы **`Pipfile`** / **`Pipfile.lock`** могут оставаться в репозитории на время перехода; целевой рабочий процесс — **uv**, не Pipenv.
92
-
93
58
  ## Команды
94
59
 
95
60
  ### обновление репозитория до последнего состояния в ветке
@@ -10,7 +10,7 @@ from data_gateway_sdk.protocols.device_packet.smpm_device_packet import SmpMGasM
10
10
  SmpMWaterMeter08BV0DevicePacket, SmpMWaterMeter12BV0DevicePacket, SmpMWaterMeter04BV0DevicePacket, \
11
11
  SmpMJupiter16BV0DevicePacket, SmpMWaterMeter16BV0DevicePacket, \
12
12
  SmpMInternalInfoDataV0DevicePacket, SmpMHeatProxyMeter16BV0DevicePacket, SmpMHeatGroupMeterV0DevicePacket, \
13
- SmpMEnergyMeterV1DevicePacket, SmpMDownlinkV0DevicePacket
13
+ SmpMEnergyMeterV1DevicePacket, SmpMDownlinkV0DevicePacket, SmpMGasMeterMetanoXV0DevicePacket
14
14
  from data_gateway_sdk.protocols.device_packet.water5_device_packet import Water5NeroV0DevicePacket, \
15
15
  Water5JupiterFreeScaleV0DevicePacket, Water5JupiterSTMV0DevicePacket, Water5FluoSTMV0DevicePacket, \
16
16
  Water5FluoFreeScaleV0DevicePacket, Water5FluoAV0DevicePacket, Water5GasV0DevicePacket, \
@@ -35,6 +35,7 @@ class DeviceProtocolType(Enum): # DO NOT CHANGE VALUE because it should be comp
35
35
  NCP_SMP_V0 = 'NCP_SMP_V0' # only for jupiter NbIoT
36
36
  SMP_V0 = 'SMP_V0' # only for jupiter NbIoT
37
37
  SMP_M_GAS_METER_V0 = 'SMP_M_GAS_METER_V0'
38
+ SMP_M_GAS_METANO_X_V0 = 'SMP_M_GAS_METANO_X_V0' # only for Metano X
38
39
  SMP_M_ENERGY_METER_V0 = 'SMP_M_ENERGY_METER_V0'
39
40
  SMP_M_ENERGY_METER_V1 = 'SMP_M_ENERGY_METER_V1'
40
41
  SMP_M_JUPITER_08B_V0 = 'SMP_M_JUPITER_08B_V0'
@@ -76,6 +77,7 @@ DEVICE_PROTOCOL_MAP = {
76
77
  DeviceProtocolType.NCP_SMP_V0: NcpSmpV0DevicePacket,
77
78
  DeviceProtocolType.SMP_V0: SmpV0DevicePacket,
78
79
  DeviceProtocolType.SMP_M_GAS_METER_V0: SmpMGasMeterV0DevicePacket,
80
+ DeviceProtocolType.SMP_M_GAS_METANO_X_V0: SmpMGasMeterMetanoXV0DevicePacket,
79
81
  DeviceProtocolType.SMP_M_ENERGY_METER_V0: SmpMEnergyMeterV0DevicePacket,
80
82
  DeviceProtocolType.SMP_M_ENERGY_METER_V1: SmpMEnergyMeterV1DevicePacket,
81
83
  DeviceProtocolType.SMP_M_JUPITER_08B_V0: SmpMJupiter08BV0DevicePacket,
@@ -7,7 +7,7 @@ from data_gateway_sdk.protocols.device_packet.smpm_device_packet import SmpMGasM
7
7
  SmpMEnergyMeterV0DevicePacket, SmpMJupiter08BV0DevicePacket, \
8
8
  SmpMJupiter12BV0DevicePacket, SmpMJupiter16BV0DevicePacket, SmpMWaterMeter04BV0DevicePacket, \
9
9
  SmpMWaterMeter08BV0DevicePacket, SmpMWaterMeter12BV0DevicePacket, \
10
- SmpMWaterMeter16BV0DevicePacket
10
+ SmpMWaterMeter16BV0DevicePacket, SmpMGasMeterMetanoXV0DevicePacket
11
11
  from data_gateway_sdk.protocols.device_packet.water5_device_packet import Water5NeroV0DevicePacket
12
12
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_3phase_consumed import \
13
13
  SmpmUlDeviceEnergy16B3PhaseConsumedData
@@ -31,6 +31,12 @@ from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_08b_counter_ch1 impo
31
31
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_08b_counter_ch2 import SmpmUlDeviceJupiter08BCounterCh2Data
32
32
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_12b_counter import SmpmUlDeviceJupiter12BCounterData
33
33
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_16b_counter import SmpmUlDeviceJupiter16BCounterData
34
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rb_24b_emergency import \
35
+ SmpmUlDeviceMetanoXRb24BEmergencyData
36
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rb_40b_daily import SmpmUlDeviceMetanoXRb40BDailyData
37
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rf_16b_emergency import \
38
+ SmpmUlDeviceMetanoXRf16BEmergencyData
39
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rf_64b_daily import SmpmUlDeviceMetanoXRf64BDailyData
34
40
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_water_meter_04b_event import SmpmUlDeviceWaterMeter04BEventData
35
41
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_water_meter_08b_daily import SmpmUlDeviceWaterMeter08BDailyData
36
42
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_water_meter_08b_daily_new import \
@@ -295,6 +301,174 @@ def test_protocol_smpm_gaz_v0() -> None:
295
301
  )]
296
302
 
297
303
 
304
+
305
+ def test_protocol_smpm_gaz_metano_x_v0() -> None:
306
+ # daily rb 40b
307
+ assert DeviceProtocolType.SMP_M_GAS_METANO_X_V0.parse(bytes.fromhex('9c0c8380521e00c4c912008033e101c0a80000ee224e00e1272a5b5e97e803450100000000000000')) == [SmpMGasMeterMetanoXV0DevicePacket( # type: ignore
308
+ packet=SmpmUlDeviceMetanoXRb40BDailyData(
309
+ days_ago=timedelta(days=3),
310
+ sync_time_days_ago=timedelta(days=4),
311
+ timestamp_s=timedelta(days=23),
312
+ direct_flow_volume=1231.3,
313
+ duration_normal=timedelta(days=365),
314
+ duration_error=timedelta(hours=12),
315
+ temperature=20.0,
316
+ pressure=250.0,
317
+ battery_volts_1=3.3,
318
+ battery_volts_2=3.1,
319
+ radio_quality=2,
320
+ rssi=-70,
321
+ rsrp=-90,
322
+ rsrq=-9,
323
+ snr=10,
324
+ ecl=1,
325
+ tx_power=23,
326
+ ncell_id=1000,
327
+ earfcn=5,
328
+ earfcn_offset=10,
329
+ event_reset=False,
330
+ event_case_was_opened=False,
331
+ event_battery_case_was_opened=False,
332
+ event_magnet=False,
333
+ event_impact_radio=False,
334
+ event_low_battery_level_1=False,
335
+ event_low_battery_level_2=False,
336
+ event_low_signal_nbiot=False,
337
+ event_sensor_error_ambient_temperature=False,
338
+ event_low_ambient_temperature=False,
339
+ event_sensor_error_temperature=False,
340
+ event_temperature_limits=False,
341
+ event_sensor_error_pressure=False,
342
+ event_pressure_limits=False,
343
+ event_sensor_error_flow=False,
344
+ event_flow_speed_is_over_limit=False,
345
+ event_flow_speed_lower_limit=False,
346
+ event_flow_reverse=False,
347
+ event_valve_failure=False,
348
+ event_valve_leakage=False,
349
+ event_gas_concentration_limit=False,
350
+ ),
351
+ )]
352
+ # daily rf 64b
353
+ assert DeviceProtocolType.SMP_M_GAS_METANO_X_V0.parse(bytes.fromhex('9ecce01e80521e00c4c91200ee224e0000011d006400e127265b5e97e803450140fd4356bafa0400e0c7910a900300e47d371822c10100000000000000000000')) == [SmpMGasMeterMetanoXV0DevicePacket( # type: ignore
354
+ packet=SmpmUlDeviceMetanoXRf64BDailyData(
355
+ days_ago=timedelta(days=3),
356
+ sync_time_days_ago=timedelta(days=4),
357
+ direct_flow=0.123,
358
+ timestamp_s=timedelta(days=23),
359
+ direct_flow_volume=1231.3,
360
+ temperature=20.0,
361
+ pressure=250.0,
362
+ comm_timestamp=timedelta(days=22),
363
+ comm_count=100,
364
+ battery_volts_1=3.3,
365
+ battery_volts_2=3.1,
366
+ radio_quality=2,
367
+ rssi=-86,
368
+ rsrp=-90,
369
+ rsrq=-9,
370
+ snr=10,
371
+ ecl=1,
372
+ tx_power=23,
373
+ ncell_id=1000,
374
+ earfcn=5,
375
+ earfcn_offset=10,
376
+ icc_id=89701000000000000,
377
+ imsi=250700000000000,
378
+ imei=123456789012345,
379
+ event_reset=False,
380
+ event_case_was_opened=False,
381
+ event_battery_case_was_opened=False,
382
+ event_magnet=False,
383
+ event_impact_radio=False,
384
+ event_low_battery_level_1=False,
385
+ event_low_battery_level_2=False,
386
+ event_low_signal_nbiot=False,
387
+ event_sensor_error_temperature=False,
388
+ event_temperature_limits=False,
389
+ event_sensor_error_ambient_temperature=False,
390
+ event_low_ambient_temperature=False,
391
+ event_sensor_error_pressure=False,
392
+ event_pressure_limits=False,
393
+ event_sensor_error_flow=False,
394
+ event_flow_speed_is_over_limit=False,
395
+ event_flow_speed_lower_limit=False,
396
+ event_flow_reverse=False,
397
+ event_valve_failure=False,
398
+ event_valve_leakage=False,
399
+ event_gas_concentration_limit=False,
400
+ ),
401
+ )]
402
+ # emergency rb 24b
403
+ assert DeviceProtocolType.SMP_M_GAS_METANO_X_V0.parse(bytes.fromhex('9d0c80521e000100c4c91200c0a80000ee224e007b000004')) == [SmpMGasMeterMetanoXV0DevicePacket( # type: ignore
404
+ packet=SmpmUlDeviceMetanoXRb24BEmergencyData(
405
+ timestamp_s=timedelta(days=23),
406
+ error_code=1,
407
+ direct_flow_volume=1231.3,
408
+ duration_error=timedelta(hours=12),
409
+ temperature=20.0,
410
+ pressure=250.0,
411
+ direct_flow=0.123,
412
+ event_reset=False,
413
+ event_case_was_opened=False,
414
+ event_battery_case_was_opened=False,
415
+ event_magnet=False,
416
+ event_impact_radio=False,
417
+ event_low_battery_level_1=False,
418
+ event_low_battery_level_2=False,
419
+ event_low_signal_nbiot=False,
420
+ event_sensor_error_temperature=False,
421
+ event_temperature_limits=False,
422
+ event_sensor_error_ambient_temperature=False,
423
+ event_low_ambient_temperature=False,
424
+ event_sensor_error_pressure=False,
425
+ event_pressure_limits=False,
426
+ event_sensor_error_flow=False,
427
+ event_flow_speed_is_over_limit=False,
428
+ event_flow_speed_lower_limit=False,
429
+ event_flow_reverse=True,
430
+ event_valve_failure=False,
431
+ event_valve_leakage=False,
432
+ event_gas_concentration_limit=False,
433
+ ),
434
+ )]
435
+ # emergency rf 16b
436
+ assert DeviceProtocolType.SMP_M_GAS_METANO_X_V0.parse(bytes.fromhex('9f0c80521e000140f801000800000000')) == [SmpMGasMeterMetanoXV0DevicePacket( # type: ignore
437
+ packet=SmpmUlDeviceMetanoXRf16BEmergencyData(
438
+ timestamp_s=timedelta(days=23),
439
+ error_code=1,
440
+ battery_volts_1=3.3,
441
+ battery_volts_2=3.1,
442
+ event_reset=False,
443
+ event_case_was_opened=False,
444
+ event_battery_case_was_opened=False,
445
+ event_magnet=False,
446
+ event_impact_radio=False,
447
+ event_low_battery_level_1=False,
448
+ event_low_battery_level_2=False,
449
+ event_low_signal_nbiot=False,
450
+ event_sensor_error_temperature=False,
451
+ event_temperature_limits=False,
452
+ event_sensor_error_ambient_temperature=False,
453
+ event_low_ambient_temperature=False,
454
+ event_sensor_error_pressure=False,
455
+ event_pressure_limits=False,
456
+ event_sensor_error_flow=False,
457
+ event_flow_speed_is_over_limit=False,
458
+ event_flow_speed_lower_limit=False,
459
+ event_flow_reverse=True,
460
+ event_valve_failure=False,
461
+ event_valve_leakage=False,
462
+ event_gas_concentration_limit=False,
463
+ ),
464
+ )]
465
+
466
+
467
+
468
+
469
+
470
+
471
+
298
472
  def test_protocol_ncp_smp_v0() -> None:
299
473
  assert DeviceProtocolType.NCP_SMP_V0.parse(bytes.fromhex("0603000000000609800605030000016ed88d016fd999051f1620dc02318b9a9ffc052df2")) == [NcpSmpV0DevicePacket(
300
474
  mac=3,
@@ -8,12 +8,14 @@ from data_gateway_sdk.protocols.smpm.smpm_dl_device_energy_8b_get_data import Sm
8
8
  from data_gateway_sdk.protocols.smpm.smpm_dl_device_energy_8b_set_clock import SmpmDlDeviceEnergy8BSetClockData
9
9
  from data_gateway_sdk.protocols.smpm.smpm_dl_device_energy_8b_set_relay import SmpmDlDeviceEnergy8BSetRelayData
10
10
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_dl_answer import SmpmUlDeviceDlAnswerData
11
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_3phase_consumed import SmpmUlDeviceEnergy16B3PhaseConsumedData
11
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_3phase_consumed import \
12
+ SmpmUlDeviceEnergy16B3PhaseConsumedData
12
13
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_3phase_generated import \
13
14
  SmpmUlDeviceEnergy16B3PhaseGeneratedData
14
15
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_daily import SmpmUlDeviceEnergy16BDailyData
15
16
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_device_info import SmpmUlDeviceEnergy16BDeviceInfoData
16
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_electricity_params import SmpmUlDeviceEnergy16BElectricityParamsData
17
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_electricity_params import \
18
+ SmpmUlDeviceEnergy16BElectricityParamsData
17
19
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_info import SmpmUlDeviceEnergy16BInfoData
18
20
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_journal import SmpmUlDeviceEnergy16BJournalData
19
21
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h1_energy import \
@@ -23,10 +25,13 @@ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h2_energ
23
25
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h3_energy import \
24
26
  SmpmUlDeviceEnergy16BProfile8H3EnergyData
25
27
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h_ar import SmpmUlDeviceEnergy16BProfile8HArData
26
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h_energy import SmpmUlDeviceEnergy16BProfile8HEnergyData
28
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h_energy import \
29
+ SmpmUlDeviceEnergy16BProfile8HEnergyData
27
30
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h_f import SmpmUlDeviceEnergy16BProfile8HFData
28
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h_pqs import SmpmUlDeviceEnergy16BProfile8HPqsData
29
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_retrospective_energy import SmpmUlDeviceEnergy16BRetrospectiveEnergyData
31
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_profile_8h_pqs import \
32
+ SmpmUlDeviceEnergy16BProfile8HPqsData
33
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_retrospective_energy import \
34
+ SmpmUlDeviceEnergy16BRetrospectiveEnergyData
30
35
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_status_info import SmpmUlDeviceEnergy16BStatusInfoData
31
36
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_tariff_consumed import \
32
37
  SmpmUlDeviceEnergy16BTariffConsumedData
@@ -35,9 +40,11 @@ from data_gateway_sdk.protocols.smpm.smpm_ul_device_energy_16b_tariff_generated
35
40
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_gaz_flow_08b_daily import SmpmUlDeviceGazFlow08BDailyData
36
41
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_gaz_flow_16b_daily import SmpmUlDeviceGazFlow16BDailyData
37
42
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_gaz_flow_32b_daily import SmpmUlDeviceGazFlow32BDailyData
38
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_heat_group_meter_56b_daily import SmpmUlDeviceHeatGroupMeter56BDailyData
43
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_heat_group_meter_56b_daily import \
44
+ SmpmUlDeviceHeatGroupMeter56BDailyData
39
45
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_heat_group_meter_daily import SmpmUlDeviceHeatGroupMeterDailyData
40
- from data_gateway_sdk.protocols.smpm.smpm_ul_device_heat_proxy_meter_16b_daily import SmpmUlDeviceHeatProxyMeter16BDailyData
46
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_heat_proxy_meter_16b_daily import \
47
+ SmpmUlDeviceHeatProxyMeter16BDailyData
41
48
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_internal_info import SmpmUlDeviceInternalInfoData
42
49
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_08b_counter import SmpmUlDeviceJupiter08BCounterData
43
50
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_08b_counter_ch1 import SmpmUlDeviceJupiter08BCounterCh1Data
@@ -48,6 +55,12 @@ from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_12b_counter import S
48
55
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_12b_counter_volume import \
49
56
  SmpmUlDeviceJupiter12BCounterVolumeData
50
57
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_jupiter_16b_counter import SmpmUlDeviceJupiter16BCounterData
58
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rb_24b_emergency import \
59
+ SmpmUlDeviceMetanoXRb24BEmergencyData
60
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rb_40b_daily import SmpmUlDeviceMetanoXRb40BDailyData
61
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rf_16b_emergency import \
62
+ SmpmUlDeviceMetanoXRf16BEmergencyData
63
+ from data_gateway_sdk.protocols.smpm.smpm_ul_device_metano_x_rf_64b_daily import SmpmUlDeviceMetanoXRf64BDailyData
51
64
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_water_meter_04b_event import SmpmUlDeviceWaterMeter04BEventData
52
65
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_water_meter_08b_daily import SmpmUlDeviceWaterMeter08BDailyData
53
66
  from data_gateway_sdk.protocols.smpm.smpm_ul_device_water_meter_08b_daily_new import \
@@ -68,6 +81,15 @@ class SmpMGasMeterV0DevicePacket(DevicePacketTyped):
68
81
  )
69
82
 
70
83
 
84
+ class SmpMGasMeterMetanoXV0DevicePacket(DevicePacketTyped):
85
+ _SUPPORTED_PACKETS: Tuple[Type[Packet], ...] = (
86
+ SmpmUlDeviceMetanoXRb40BDailyData,
87
+ SmpmUlDeviceMetanoXRf64BDailyData,
88
+ SmpmUlDeviceMetanoXRb24BEmergencyData,
89
+ SmpmUlDeviceMetanoXRf16BEmergencyData,
90
+ )
91
+
92
+
71
93
  class SmpMEnergyMeterV0DevicePacket(DevicePacketTyped):
72
94
  _SUPPORTED_PACKETS: Tuple[Type[Packet], ...] = (
73
95
  SmpmUlDeviceEnergy16B3PhaseConsumedData,