boneIO 0.8.0.dev14__tar.gz → 0.8.0.dev16__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 (105) hide show
  1. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/PKG-INFO +1 -1
  2. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/sensor.py +35 -33
  3. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/single_sensor.py +4 -1
  4. boneIO-0.8.0.dev16/boneio/version.py +2 -0
  5. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/pyproject.toml +1 -1
  6. boneIO-0.8.0.dev14/boneio/version.py +0 -2
  7. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/LICENSE +0 -0
  8. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/README.md +0 -0
  9. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/__init__.py +0 -0
  10. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/bonecli.py +0 -0
  11. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/const.py +0 -0
  12. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/cover.py +0 -0
  13. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/__init__.py +0 -0
  14. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/adc.yaml +0 -0
  15. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/binary_sensor.yaml +0 -0
  16. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/binary_sensor_v_0_7.yaml +0 -0
  17. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/config.yaml +0 -0
  18. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/cover.yaml +0 -0
  19. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/event.yaml +0 -0
  20. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/event_all.yaml +0 -0
  21. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/event_v_0_7.yaml +0 -0
  22. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/led32x4A.yaml +0 -0
  23. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/output24x16A.yaml +0 -0
  24. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/output24x16A_v0.3.yaml +0 -0
  25. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/output32x10A.yaml +0 -0
  26. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/example_config/output32x5A.yaml +0 -0
  27. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/fonts/danube__.ttf +0 -0
  28. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/group/__init__.py +0 -0
  29. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/group/output.py +0 -0
  30. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/__init__.py +0 -0
  31. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/async_updater.py +0 -0
  32. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/click_timer.py +0 -0
  33. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/config.py +0 -0
  34. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/events.py +0 -0
  35. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/exceptions.py +0 -0
  36. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/filter.py +0 -0
  37. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/gpio.py +0 -0
  38. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/gpiod.py +0 -0
  39. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/ha_discovery.py +0 -0
  40. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/loader.py +0 -0
  41. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/logger.py +0 -0
  42. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/mqtt.py +0 -0
  43. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/oled.py +0 -0
  44. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/onewire/W1ThermSensor.py +0 -0
  45. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/onewire/__init__.py +0 -0
  46. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/onewire/ds2482.py +0 -0
  47. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/onewire/onewire.py +0 -0
  48. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/pcf8575.py +0 -0
  49. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/queue.py +0 -0
  50. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/sensor/ina_219_smbus.py +0 -0
  51. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/state_manager.py +0 -0
  52. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/stats.py +0 -0
  53. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/timeperiod.py +0 -0
  54. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/util.py +0 -0
  55. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/helper/yaml_util.py +0 -0
  56. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/input/__init__.py +0 -0
  57. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/input/gpio.py +0 -0
  58. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/input/gpio_new.py +0 -0
  59. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/manager.py +0 -0
  60. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/__init__.py +0 -0
  61. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/client.py +0 -0
  62. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/cwt.json +0 -0
  63. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/dts1964_3f.json +0 -0
  64. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/liquid-sensor.json +0 -0
  65. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/modbuscli.py +0 -0
  66. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/orno-or-we-517.json +0 -0
  67. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/pt100.json +0 -0
  68. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/r4dcb08.json +0 -0
  69. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/sdm120.json +0 -0
  70. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/sdm630.json +0 -0
  71. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/sht20.json +0 -0
  72. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/socomec_e03.json +0 -0
  73. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/socomec_e23.json +0 -0
  74. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/sofar.json +0 -0
  75. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/modbus/utils.py +0 -0
  76. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/mqtt_client.py +0 -0
  77. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/oled.py +0 -0
  78. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/relay/__init__.py +0 -0
  79. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/relay/basic.py +0 -0
  80. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/relay/gpio.py +0 -0
  81. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/relay/mcp.py +0 -0
  82. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/relay/pca.py +0 -0
  83. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/relay/pcf.py +0 -0
  84. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/runner.py +0 -0
  85. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/actions.yaml +0 -0
  86. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/actions_sensor.yaml +0 -0
  87. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/actions_switch.yaml +0 -0
  88. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/filters.yaml +0 -0
  89. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/filters_adc.yaml +0 -0
  90. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/id.yaml +0 -0
  91. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/schema.yaml +0 -0
  92. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/temp_unit.yaml +0 -0
  93. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/schema/update_interval.yaml +0 -0
  94. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/__init__.py +0 -0
  95. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/adc.py +0 -0
  96. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/gpio.py +0 -0
  97. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/gpio_new.py +0 -0
  98. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/ina219.py +0 -0
  99. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/temp/__init__.py +0 -0
  100. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/temp/dallas.py +0 -0
  101. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/temp/lm75.py +0 -0
  102. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/boneio/sensor/temp/mcp9808.py +0 -0
  103. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/tests/32_5_config.yaml +0 -0
  104. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/tests/bandit.yaml +0 -0
  105. {boneIO-0.8.0.dev14 → boneIO-0.8.0.dev16}/tests/relay_32_5.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: boneIO
3
- Version: 0.8.0.dev14
3
+ Version: 0.8.0.dev16
4
4
  Summary: Python App for BoneIO
5
5
  License: GNU General Public License v3.0
6
6
  Author-email: Paweł Szafer <pszafer@gmail.com>
@@ -65,42 +65,42 @@ class ModbusSensor(BasicMqtt, AsyncUpdater, Filter):
65
65
  k.lower(): v for k, v in sensors_filters.items()
66
66
  }
67
67
  self._modbus_sensors = []
68
- for data in self._db[REGISTERS_BASE]:
68
+ for index, data in enumerate(self._db[REGISTERS_BASE]):
69
69
  base = data[BASE]
70
+ self._modbus_sensors.append({})
70
71
  for register in data[REGISTERS]:
71
- name = register.get("name")
72
- self._modbus_sensors.append(
73
- SingleSensor(
74
- name=name,
75
- parent={
76
- NAME: self._name,
77
- ID: self._id,
78
- MODEL: self._model,
79
- },
80
- register_address=register[ADDRESS],
81
- base_address=base,
82
- unit_of_measurement=register.get("unit_of_measurement"),
83
- state_class=register.get("state_class"),
84
- device_class=register.get("device_class"),
85
- value_type=register.get("value_type"),
86
- user_filters=self._sensors_filters.get(
87
- name.replace(" ", "").lower(), []
88
- ),
89
- return_type=register.get("return_type", "regular"),
90
- filters=register.get("filters", []),
91
- send_message=self._send_message,
92
- config_helper=self._config_helper,
93
- ha_filter=register.get("ha_filter", "round(2)"),
94
- ),
72
+ single_sensor = SingleSensor(
73
+ name=register.get("name"),
74
+ parent={
75
+ NAME: self._name,
76
+ ID: self._id,
77
+ MODEL: self._model,
78
+ },
79
+ register_address=register[ADDRESS],
80
+ base_address=base,
81
+ unit_of_measurement=register.get("unit_of_measurement"),
82
+ state_class=register.get("state_class"),
83
+ device_class=register.get("device_class"),
84
+ value_type=register.get("value_type"),
85
+ return_type=register.get("return_type", "regular"),
86
+ filters=register.get("filters", []),
87
+ send_message=self._send_message,
88
+ config_helper=self._config_helper,
89
+ ha_filter=register.get("ha_filter", "round(2)"),
90
+ )
91
+ single_sensor.set_user_filters(
92
+ self._sensors_filters.get(single_sensor.decoded_name, [])
95
93
  )
94
+ self._modbus_sensors[index][
95
+ single_sensor.decoded_name
96
+ ] = single_sensor
96
97
  event_bus.add_haonline_listener(target=self.set_payload_offline)
97
98
  AsyncUpdater.__init__(self, **kwargs)
98
99
 
99
100
  def get_sensor_by_name(self, name: str) -> Optional[SingleSensor]:
100
101
  """Return sensor by name."""
101
- for sensor in self._modbus_sensors:
102
- if sensor.decoded_name == name:
103
- return sensor
102
+ for sensors in self._modbus_sensors:
103
+ return sensors.get(name)
104
104
  return None
105
105
 
106
106
  def set_payload_offline(self):
@@ -108,8 +108,9 @@ class ModbusSensor(BasicMqtt, AsyncUpdater, Filter):
108
108
 
109
109
  def _send_discovery_for_all_registers(self) -> datetime:
110
110
  """Send discovery message to HA for each register."""
111
- for sensor in self._modbus_sensors:
112
- sensor.send_ha_discovery()
111
+ for sensors in self._modbus_sensors:
112
+ for sensor in sensors.values():
113
+ sensor.send_ha_discovery()
113
114
  return datetime.now()
114
115
 
115
116
  async def check_availability(self) -> None:
@@ -147,7 +148,7 @@ class ModbusSensor(BasicMqtt, AsyncUpdater, Filter):
147
148
  """Fetch state periodically and send to MQTT."""
148
149
  update_interval = self._update_interval.total_in_seconds
149
150
  await self.check_availability()
150
- for data in self._db[REGISTERS_BASE]:
151
+ for index, data in enumerate(self._db[REGISTERS_BASE]):
151
152
  values = await self._modbus.read_registers(
152
153
  unit=self._address,
153
154
  address=data[BASE],
@@ -184,7 +185,8 @@ class ModbusSensor(BasicMqtt, AsyncUpdater, Filter):
184
185
  elif update_interval != self._update_interval.total_in_seconds:
185
186
  update_interval = self._update_interval.total_in_seconds
186
187
  output = {}
187
- for sensor in self._modbus_sensors:
188
+ current_modbus_sensors = self._modbus_sensors[index]
189
+ for sensor in current_modbus_sensors.values():
188
190
  if not sensor.value_type:
189
191
  # Go with old method. Remove when switch Sofar to new.
190
192
  decoded_value = CONVERT_METHODS[sensor.return_type](
@@ -208,7 +210,7 @@ class ModbusSensor(BasicMqtt, AsyncUpdater, Filter):
208
210
  sensor.name,
209
211
  sensor.address,
210
212
  sensor.base_address,
211
- sensor.length,
213
+ data[LENGTH],
212
214
  e,
213
215
  )
214
216
  decoded_value = None
@@ -23,12 +23,12 @@ class SingleSensor(Filter):
23
23
  device_class: str,
24
24
  value_type: str,
25
25
  return_type: str,
26
- user_filters: list,
27
26
  filters: list,
28
27
  send_message: Callable[
29
28
  [str, Union[str, int, dict, None], Optional[bool]], None
30
29
  ],
31
30
  config_helper: ConfigHelper,
31
+ user_filters: Optional[list] = [],
32
32
  ha_filter: str = "round(2)",
33
33
  ) -> None:
34
34
  """
@@ -67,6 +67,9 @@ class SingleSensor(Filter):
67
67
  f"/{self._parent[ID]}{self._decoded_name_low.replace('_', '')}/config"
68
68
  )
69
69
 
70
+ def set_user_filters(self, user_filters: list) -> None:
71
+ self._user_filters = user_filters
72
+
70
73
  def set_value(self, value):
71
74
  for filter in self._filters:
72
75
  for key, _v in filter.items():
@@ -0,0 +1,2 @@
1
+ # flake8: noqa
2
+ __version__ = "0.8.0dev16"
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "Adafruit-BBIO>=1.2.0",
31
31
  ]
32
32
  requires-python = ">=3.7"
33
- version = "0.8.0.dev14"
33
+ version = "0.8.0.dev16"
34
34
 
35
35
  [project.license]
36
36
  text = "GNU General Public License v3.0"
@@ -1,2 +0,0 @@
1
- # flake8: noqa
2
- __version__ = "0.8.0dev14"
File without changes
File without changes