pymscada 0.1.8__tar.gz → 0.1.9__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 (85) hide show
  1. {pymscada-0.1.8 → pymscada-0.1.9}/PKG-INFO +1 -1
  2. {pymscada-0.1.8 → pymscada-0.1.9}/pyproject.toml +1 -1
  3. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/bus_client.py +1 -1
  4. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/accuweather.py +9 -4
  5. {pymscada-0.1.8 → pymscada-0.1.9}/LICENSE +0 -0
  6. {pymscada-0.1.8 → pymscada-0.1.9}/README.md +0 -0
  7. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/__init__.py +0 -0
  8. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/__main__.py +0 -0
  9. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/bus_server.py +0 -0
  10. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/checkout.py +0 -0
  11. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/config.py +0 -0
  12. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/console.py +0 -0
  13. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/README.md +0 -0
  14. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/__init__.py +0 -0
  15. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/accuweather.yaml +0 -0
  16. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/bus.yaml +0 -0
  17. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/files.yaml +0 -0
  18. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/history.yaml +0 -0
  19. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/logixclient.yaml +0 -0
  20. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/modbus_plc.py +0 -0
  21. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/modbusclient.yaml +0 -0
  22. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/modbusserver.yaml +0 -0
  23. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/opnotes.yaml +0 -0
  24. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/ping.yaml +0 -0
  25. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-bus.service +0 -0
  26. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-demo-modbus_plc.service +0 -0
  27. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-files.service +0 -0
  28. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-history.service +0 -0
  29. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-io-accuweather.service +0 -0
  30. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-io-logixclient.service +0 -0
  31. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-io-modbusclient.service +0 -0
  32. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-io-modbusserver.service +0 -0
  33. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-io-ping.service +0 -0
  34. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-io-snmpclient.service +0 -0
  35. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-opnotes.service +0 -0
  36. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/pymscada-wwwserver.service +0 -0
  37. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/snmpclient.yaml +0 -0
  38. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/tags.yaml +0 -0
  39. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/demo/wwwserver.yaml +0 -0
  40. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/files.py +0 -0
  41. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/history.py +0 -0
  42. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/__init__.py +0 -0
  43. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/logix_client.py +0 -0
  44. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/logix_map.py +0 -0
  45. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/modbus_client.py +0 -0
  46. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/modbus_map.py +0 -0
  47. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/modbus_server.py +0 -0
  48. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/ping_client.py +0 -0
  49. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/ping_map.py +0 -0
  50. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/snmp_client.py +0 -0
  51. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/iodrivers/snmp_map.py +0 -0
  52. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/main.py +0 -0
  53. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/misc.py +0 -0
  54. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/opnotes.py +0 -0
  55. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/pdf/__init__.py +0 -0
  56. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/pdf/one.pdf +0 -0
  57. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/pdf/two.pdf +0 -0
  58. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/periodic.py +0 -0
  59. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/protocol_constants.py +0 -0
  60. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/samplers.py +0 -0
  61. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/tag.py +0 -0
  62. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/tools/snmp_client2.py +0 -0
  63. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/tools/walk.py +0 -0
  64. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/validate.py +0 -0
  65. {pymscada-0.1.8 → pymscada-0.1.9}/src/pymscada/www_server.py +0 -0
  66. {pymscada-0.1.8 → pymscada-0.1.9}/tests/__init__.py +0 -0
  67. {pymscada-0.1.8 → pymscada-0.1.9}/tests/bus_echo.py +0 -0
  68. {pymscada-0.1.8 → pymscada-0.1.9}/tests/iodrivers/test_logix.py +0 -0
  69. {pymscada-0.1.8 → pymscada-0.1.9}/tests/iodrivers/test_modbus.py +0 -0
  70. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/busserver.yaml +0 -0
  71. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/db.sqlite +0 -0
  72. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/hist_tag_0_0.dat +0 -0
  73. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/hist_tag_0_10_2.dat +0 -0
  74. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/hist_tag_0_15.dat +0 -0
  75. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/hist_tag_0_26.dat +0 -0
  76. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_assets/hist_tag_0_50.dat +0 -0
  77. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_bus_server.py +0 -0
  78. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_config.py +0 -0
  79. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_history.py +0 -0
  80. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_misc.py +0 -0
  81. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_opnotes.py +0 -0
  82. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_periodic.py +0 -0
  83. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_samplers.py +0 -0
  84. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_tag.py +0 -0
  85. {pymscada-0.1.8 → pymscada-0.1.9}/tests/test_validate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymscada
3
- Version: 0.1.8
3
+ Version: 0.1.9
4
4
  Summary: Shared tag value SCADA with python backup and Angular UI
5
5
  Author-Email: Jamie Walton <jamie@walton.net.nz>
6
6
  License: GPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pymscada"
3
- version = "0.1.8"
3
+ version = "0.1.9"
4
4
  description = "Shared tag value SCADA with python backup and Angular UI"
5
5
  authors = [
6
6
  { name = "Jamie Walton", email = "jamie@walton.net.nz" },
@@ -109,7 +109,7 @@ class BusClient:
109
109
  self.ip, self.port)
110
110
  self.addr = self.writer.get_extra_info('sockname')
111
111
  self.write(pc.CMD_LOG, 0, 0, f'{self.module} connected'.encode())
112
- logging.info(f'connected {self.addr}')
112
+ logging.warning(f'connected {self.addr} {self.port}')
113
113
  for tag in Tag.get_all_tags().values():
114
114
  self.add_tag(tag)
115
115
  Tag.set_notify(self.add_tag)
@@ -29,6 +29,7 @@ class AccuWeatherClient:
29
29
  for x in api['locations'].values()]
30
30
  self.session = aiohttp.ClientSession()
31
31
  self.queue = asyncio.Queue()
32
+ self.init_run = True
32
33
 
33
34
  async def handle_response(self):
34
35
  """Unpack the weather values from the json response."""
@@ -65,15 +66,19 @@ class AccuWeatherClient:
65
66
  async def fetch_data(self, location, url, query):
66
67
  """HTTP get."""
67
68
  logging.warning(f'poll {location} {url}')
68
- async with self.session.get(url, params=query,
69
- proxy=self.proxy) as resp:
70
- self.queue.put_nowait([location, await resp.json()])
69
+ try:
70
+ async with self.session.get(url, params=query,
71
+ proxy=self.proxy) as resp:
72
+ self.queue.put_nowait([location, await resp.json()])
73
+ except asyncio.TimeoutError as e:
74
+ logging.warning('AccuWeather {e}')
71
75
 
72
76
  async def poll(self):
73
77
  """Poll the weather site near the start of each hour."""
74
78
  now = int(time())
75
- if now % 3600 != 120:
79
+ if now % 3600 != 120 and not self.init_run:
76
80
  return
81
+ self.init_run = False
77
82
  if not self.queue.empty():
78
83
  return
79
84
  # Get the weather forecasts
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes