TISControlProtocol 1.0.65__tar.gz → 1.0.66__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 (71) hide show
  1. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/PKG-INFO +1 -1
  2. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/pyproject.toml +1 -1
  3. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/api.py +34 -23
  4. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/.gitignore +0 -0
  5. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/.vscode/c_cpp_properties.json +0 -0
  6. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/.vscode/launch.json +0 -0
  7. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/.vscode/settings.json +0 -0
  8. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/.vscode/tasks.json +0 -0
  9. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/LICENSE +0 -0
  10. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/MANIFEST.in +0 -0
  11. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/README.md +0 -0
  12. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/dev/pump_version.py +0 -0
  13. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/BytesHelper.py +0 -0
  14. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/__init__.py +0 -0
  15. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/AckCoordinator.py +0 -0
  16. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketDispatcher.py +0 -0
  17. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketExtractor.py +0 -0
  18. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/AnalogFeedbackHandler.py +0 -0
  19. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/AutoBinaryFeedbackHandler.py +0 -0
  20. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/BinaryFeedbackHandler.py +0 -0
  21. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/ClimateBinaryFeedbackHandler.py +0 -0
  22. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/ClimateControlFeedbackHandler.py +0 -0
  23. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/ControlResponseHandler.py +0 -0
  24. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/DiscoveryFeedbackHandler.py +0 -0
  25. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/EnergyFeedbackHandler.py +0 -0
  26. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/FloorBinaryFeedbackHandler.py +0 -0
  27. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/HealthFeedbackHandler.py +0 -0
  28. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/LunaTempFeedbackHandler.py +0 -0
  29. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/RealTimeFeedbackHandler.py +0 -0
  30. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/SearchResponseHandler.py +0 -0
  31. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/SecurityFeedbackHandler.py +0 -0
  32. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/UpdateResponseHandler.py +0 -0
  33. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/UpdateSecurityHandler.py +0 -0
  34. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/WeatherFeedbackHandler.py +0 -0
  35. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketHandlers/__init__.py +0 -0
  36. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketProtocol.py +0 -0
  37. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketReceiver.py +0 -0
  38. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/PacketSender.py +0 -0
  39. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/ProtocolHandler.py +0 -0
  40. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/UpdateCoordinator.py +0 -0
  41. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/Protocols/udp/__init__.py +0 -0
  42. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/__init__.py +0 -0
  43. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/__init__.py +0 -0
  44. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/bill_config_endpoint.py +0 -0
  45. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/change_password_endpoint.py +0 -0
  46. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/get_bill_config_endpoint.py +0 -0
  47. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/get_key_endpoint.py +0 -0
  48. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/password_dashboard.py +0 -0
  49. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/password_form_endpoint.py +0 -0
  50. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/passwords_endpoint.py +0 -0
  51. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/restart_endpoint.py +0 -0
  52. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/scan_devices_endpoint.py +0 -0
  53. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/shared.py +0 -0
  54. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/submit_password.py +0 -0
  55. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/tis_endpoint.py +0 -0
  56. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/apis/update_endpoint.py +0 -0
  57. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/crc.py +0 -0
  58. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/logo.png +0 -0
  59. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/package-lock.json +0 -0
  60. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/package.json +0 -0
  61. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/postcss.config.mjs +0 -0
  62. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/public/__init__.py +0 -0
  63. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/public/dashboard.css +0 -0
  64. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/public/password_dashboard_loader.js +0 -0
  65. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/shared.py +0 -0
  66. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/views/__init__.py +0 -0
  67. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/views/password_dashboard/index.html +0 -0
  68. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/views/password_dashboard/styles.css +0 -0
  69. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/views/password_form/index.html +0 -0
  70. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/src/TISControlProtocol/views/password_form/styles.css +0 -0
  71. {tiscontrolprotocol-1.0.65 → tiscontrolprotocol-1.0.66}/tests/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TISControlProtocol
3
- Version: 1.0.65
3
+ Version: 1.0.66
4
4
  Summary: A library for TIS Control Protocol
5
5
  Project-URL: Homepage, https://github.com/TISControlHass
6
6
  Project-URL: Issues, https://github.com/TISControlHass/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "TISControlProtocol"
7
- version = "1.0.65"
7
+ version = "1.0.66"
8
8
  description = "A library for TIS Control Protocol"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -32,11 +32,13 @@ from .apis import (
32
32
  )
33
33
 
34
34
  try:
35
- import RPi.GPIO as GPIO
36
- import ST7789
35
+ import board
36
+ import digitalio
37
+ import busio
38
+ from adafruit_rgb_display import st7789
37
39
 
38
40
  HAS_ST7789 = True
39
- except (ImportError, RuntimeError) as e:
41
+ except (ImportError, RuntimeError, NotImplementedError) as e:
40
42
  HAS_ST7789 = False
41
43
  logging.error(
42
44
  "Failed to load display dependencies. Display will be disabled. Error: %s", e
@@ -219,27 +221,32 @@ class TISApi:
219
221
  def run_display(self, style="dots"):
220
222
  try:
221
223
  if HAS_ST7789:
222
- self.display = ST7789.ST7789(
224
+ # 1. Initialize the SPI bus
225
+ spi = board.SPI()
226
+
227
+ # 2. Define the GPIO pins
228
+ cs_pin = digitalio.DigitalInOut(board.CE0)
229
+ dc_pin = digitalio.DigitalInOut(board.D23)
230
+ rst_pin = digitalio.DigitalInOut(board.D25)
231
+ bl_pin = digitalio.DigitalInOut(board.D12)
232
+
233
+ # 3. Turn on the backlight physically
234
+ bl_pin.direction = digitalio.Direction.OUTPUT
235
+ bl_pin.value = True
236
+ self._bl_pin = bl_pin # Store to prevent garbage collection
237
+
238
+ # 4. Initialize the ST7789 Display
239
+ self.display = st7789.ST7789(
240
+ spi,
241
+ cs=cs_pin,
242
+ dc=dc_pin,
243
+ rst=rst_pin,
244
+ baudrate=60000000,
223
245
  width=320,
224
246
  height=240,
225
- rotation=0,
226
- port=0,
227
- cs=0,
228
- dc=23,
229
- rst=25,
230
- backlight=12,
231
- spi_speed_hz=60 * 1000 * 1000,
232
- offset_left=0,
233
- offset_top=0,
247
+ rotation=0
234
248
  )
235
- GPIO.setwarnings(False)
236
- GPIO.setmode(GPIO.BCM)
237
- GPIO.setup(12, GPIO.OUT)
238
- self._display_pwm = GPIO.PWM(12, 1000)
239
- self._display_pwm.start(100)
240
-
241
- # Initialize display.
242
- self.display.begin()
249
+
243
250
  self.set_display_image()
244
251
  else:
245
252
  logging.error("Can't start display, some packages are missing")
@@ -254,12 +261,16 @@ class TISApi:
254
261
  version_text = f"V {self.version}"
255
262
 
256
263
  draw = ImageDraw.Draw(img)
257
- font = ImageFont.load_default(size=28)
264
+ try:
265
+ font = ImageFont.load_default(size=28)
266
+ except TypeError:
267
+ font = ImageFont.load_default()
268
+
258
269
  x, y = 78, 235
259
270
  draw.text((x, y), version_text, font=font, fill=(255, 255, 255))
260
271
  img = img.rotate(-90, expand=True)
261
272
 
262
- self.display.display(img)
273
+ self.display.image(img)
263
274
 
264
275
  async def parse_device_manager_request(self, data: dict) -> None:
265
276
  """Parse the device manager request."""