pyhausbus 1.0.1__py2.py3-none-any.whl → 1.0.2__py2.py3-none-any.whl

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 (531) hide show
  1. pyhausbus/ABusFeature.py +22 -22
  2. pyhausbus/BusDataMessage.py +23 -23
  3. pyhausbus/BusHandler.py +110 -110
  4. pyhausbus/HausBusCommand.py +83 -83
  5. pyhausbus/HausBusDevice.py +70 -70
  6. pyhausbus/HausBusUtils.py +203 -203
  7. pyhausbus/HomeServer.py +86 -68
  8. pyhausbus/IBusDataListener.py +6 -6
  9. pyhausbus/Main.py +100 -100
  10. pyhausbus/ObjectId.py +22 -22
  11. pyhausbus/ResultWorker.py +53 -53
  12. pyhausbus/Templates.py +135 -0
  13. pyhausbus/UdpReceiveWorker.py +73 -73
  14. pyhausbus/WeekTime.py +55 -55
  15. pyhausbus/de/hausbus/homeassistant/proxy/AnalogEingang.py +139 -0
  16. pyhausbus/de/hausbus/homeassistant/proxy/Controller.py +357 -342
  17. pyhausbus/de/hausbus/homeassistant/proxy/Counter.py +65 -65
  18. pyhausbus/de/hausbus/homeassistant/proxy/CurrentReader.py +133 -121
  19. pyhausbus/de/hausbus/homeassistant/proxy/DaliLine.py +63 -63
  20. pyhausbus/de/hausbus/homeassistant/proxy/DigitalPort.py +40 -40
  21. pyhausbus/de/hausbus/homeassistant/proxy/Dimmer.py +91 -91
  22. pyhausbus/de/hausbus/homeassistant/proxy/Drucksensor.py +141 -0
  23. pyhausbus/de/hausbus/homeassistant/proxy/Ethernet.py +61 -61
  24. pyhausbus/de/hausbus/homeassistant/proxy/Feuchtesensor.py +77 -77
  25. pyhausbus/de/hausbus/homeassistant/proxy/Gateway.py +108 -97
  26. pyhausbus/de/hausbus/homeassistant/proxy/Helligkeitssensor.py +77 -77
  27. pyhausbus/de/hausbus/homeassistant/proxy/IRSensor.py +55 -55
  28. pyhausbus/de/hausbus/homeassistant/proxy/Led.py +117 -116
  29. pyhausbus/de/hausbus/homeassistant/proxy/LogicalButton.py +116 -116
  30. pyhausbus/de/hausbus/homeassistant/proxy/ModBusMaster.py +34 -34
  31. pyhausbus/de/hausbus/homeassistant/proxy/ModbusSlave.py +13 -13
  32. pyhausbus/de/hausbus/homeassistant/proxy/PCA9555.py +29 -0
  33. pyhausbus/de/hausbus/homeassistant/proxy/PCServer.py +67 -67
  34. pyhausbus/de/hausbus/homeassistant/proxy/PIDController.py +69 -64
  35. pyhausbus/de/hausbus/homeassistant/proxy/PT1000.py +153 -0
  36. pyhausbus/de/hausbus/homeassistant/proxy/PowerMeter.py +77 -77
  37. pyhausbus/de/hausbus/homeassistant/proxy/ProxyFactory.py +86 -12
  38. pyhausbus/de/hausbus/homeassistant/proxy/RFIDReader.py +78 -78
  39. pyhausbus/de/hausbus/homeassistant/proxy/RGBDimmer.py +63 -63
  40. pyhausbus/de/hausbus/homeassistant/proxy/Rollladen.py +110 -110
  41. pyhausbus/de/hausbus/homeassistant/proxy/Schalter.py +127 -104
  42. pyhausbus/de/hausbus/homeassistant/proxy/SnmpAgent.py +13 -13
  43. pyhausbus/de/hausbus/homeassistant/proxy/SystemTime.py +42 -42
  44. pyhausbus/de/hausbus/homeassistant/proxy/Taster.py +128 -118
  45. pyhausbus/de/hausbus/homeassistant/proxy/Taupunkt.py +77 -77
  46. pyhausbus/de/hausbus/homeassistant/proxy/TcpClient.py +38 -38
  47. pyhausbus/de/hausbus/homeassistant/proxy/Temperatursensor.py +78 -78
  48. pyhausbus/de/hausbus/homeassistant/proxy/Wetter.py +26 -26
  49. pyhausbus/de/hausbus/homeassistant/proxy/WiFi.py +60 -60
  50. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/_init_.py +1 -0
  51. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/commands/GetConfiguration.py +15 -0
  52. pyhausbus/de/hausbus/homeassistant/proxy/{gateway/commands/CheckBusTiming.py → analogEingang/commands/GetStatus.py} +8 -8
  53. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/commands/SetConfiguration.py +74 -0
  54. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/commands/_init_.py +1 -0
  55. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/data/Configuration.py +74 -0
  56. pyhausbus/de/hausbus/homeassistant/proxy/{gateway/commands/ResetBusTiming.py → analogEingang/data/EvHigh.py} +8 -8
  57. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/data/EvInRange.py +15 -0
  58. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/data/EvLow.py +15 -0
  59. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/data/EvStatus.py +33 -0
  60. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/data/Status.py +25 -0
  61. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/data/_init_.py +1 -0
  62. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/params/ELastEvent.py +28 -0
  63. pyhausbus/de/hausbus/homeassistant/proxy/analogEingang/params/_init_.py +1 -0
  64. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/EnableFeature.py +9 -9
  65. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GenerateRandomDeviceId.py +6 -6
  66. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetConfiguration.py +6 -6
  67. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetModuleId.py +9 -9
  68. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetRemoteObjects.py +6 -6
  69. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetRuleState.py +7 -7
  70. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetSystemVariable.py +9 -9
  71. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetTime.py +6 -6
  72. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetUnitGroupStatus.py +7 -7
  73. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/GetUnusedMemory.py +6 -6
  74. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/Ping.py +6 -6
  75. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/ReadMemory.py +7 -7
  76. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/ReadRules.py +7 -7
  77. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/Reset.py +6 -6
  78. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/ResetOneWireManager.py +25 -0
  79. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetConfiguration.py +10 -10
  80. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetDebugOptions.py +9 -9
  81. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetRuleState.py +7 -7
  82. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetSunTimes.py +9 -9
  83. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetSystemVariable.py +9 -9
  84. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetTime.py +9 -9
  85. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/SetUnitGroupState.py +7 -7
  86. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/TriggerRuleElement.py +7 -7
  87. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/WriteMemory.py +7 -7
  88. pyhausbus/de/hausbus/homeassistant/proxy/controller/commands/WriteRules.py +7 -7
  89. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/Configuration.py +10 -10
  90. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvConsole.py +7 -7
  91. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvDay.py +6 -6
  92. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvError.py +9 -9
  93. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvGroupOff.py +7 -7
  94. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvGroupOn.py +7 -7
  95. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvGroupUndefined.py +7 -7
  96. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvNewDeviceId.py +7 -7
  97. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvNight.py +6 -6
  98. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvResetWifi.py +6 -6
  99. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvStarted.py +9 -9
  100. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvSystemVariableChanged.py +9 -9
  101. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvTime.py +9 -9
  102. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/EvZeroCrossData.py +23 -9
  103. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/MemoryData.py +7 -7
  104. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/MemoryStatus.py +9 -9
  105. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/ModuleId.py +9 -9
  106. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/Pong.py +6 -6
  107. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/RemoteObjects.py +7 -7
  108. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/RuleState.py +7 -7
  109. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/RulesData.py +7 -7
  110. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/SystemVariable.py +9 -9
  111. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/Time.py +9 -9
  112. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/TimeDifference.py +7 -7
  113. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/TriggeredRule.py +7 -7
  114. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/UnitGroupStatus.py +7 -7
  115. pyhausbus/de/hausbus/homeassistant/proxy/controller/data/UnusedMemory.py +7 -7
  116. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EErrorCode.py +17 -4
  117. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EFeatureId.py +13 -4
  118. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EFirmwareId.py +15 -6
  119. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EIndex.py +12 -4
  120. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EReason.py +12 -4
  121. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/ESlotType.py +12 -4
  122. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EStatus.py +12 -4
  123. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/EType.py +12 -4
  124. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/MLogicalButtonMask.py +61 -61
  125. pyhausbus/de/hausbus/homeassistant/proxy/controller/params/MOption.py +61 -61
  126. pyhausbus/de/hausbus/homeassistant/proxy/counter/commands/GetConfiguration.py +6 -6
  127. pyhausbus/de/hausbus/homeassistant/proxy/counter/commands/GetStatus.py +6 -6
  128. pyhausbus/de/hausbus/homeassistant/proxy/counter/commands/SetConfiguration.py +9 -9
  129. pyhausbus/de/hausbus/homeassistant/proxy/counter/commands/SetCount.py +7 -7
  130. pyhausbus/de/hausbus/homeassistant/proxy/counter/data/Configuration.py +9 -9
  131. pyhausbus/de/hausbus/homeassistant/proxy/counter/data/EvError.py +9 -9
  132. pyhausbus/de/hausbus/homeassistant/proxy/counter/data/EvStatus.py +7 -7
  133. pyhausbus/de/hausbus/homeassistant/proxy/counter/data/Status.py +7 -7
  134. pyhausbus/de/hausbus/homeassistant/proxy/counter/params/EErrorCode.py +13 -4
  135. pyhausbus/de/hausbus/homeassistant/proxy/counter/params/MMode.py +61 -61
  136. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/ClearSignalCount.py +6 -6
  137. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/DecSignalCount.py +6 -6
  138. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/GetConfiguration.py +6 -6
  139. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/GetCurrent.py +6 -6
  140. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/GetPower.py +6 -6
  141. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/GetSignalCount.py +6 -6
  142. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/IncSignalCount.py +6 -6
  143. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/SetConfiguration.py +9 -9
  144. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/commands/SetSignalCount.py +7 -7
  145. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/Configuration.py +9 -9
  146. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/Current.py +7 -7
  147. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/EvCurrent.py +7 -7
  148. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/EvDebug.py +9 -9
  149. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/EvError.py +26 -0
  150. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/EvInterrupt.py +7 -7
  151. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/EvSignal.py +7 -7
  152. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/Power.py +7 -7
  153. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/data/SignalCount.py +7 -7
  154. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/params/EErrorCode.py +27 -0
  155. pyhausbus/de/hausbus/homeassistant/proxy/currentReader/params/MConfig.py +13 -13
  156. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/commands/AllOff.py +6 -6
  157. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/commands/AllOn.py +6 -6
  158. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/commands/GetConfiguration.py +7 -7
  159. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/commands/SendCommand.py +7 -7
  160. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/commands/SetConfiguration.py +7 -7
  161. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/data/Configuration.py +7 -7
  162. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/data/EvError.py +9 -9
  163. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/data/Status.py +7 -7
  164. pyhausbus/de/hausbus/homeassistant/proxy/daliLine/params/EErrorCode.py +12 -4
  165. pyhausbus/de/hausbus/homeassistant/proxy/digitalPort/commands/GetConfiguration.py +6 -6
  166. pyhausbus/de/hausbus/homeassistant/proxy/digitalPort/commands/SetConfiguration.py +11 -11
  167. pyhausbus/de/hausbus/homeassistant/proxy/digitalPort/data/Configuration.py +28 -28
  168. pyhausbus/de/hausbus/homeassistant/proxy/digitalPort/data/EvError.py +9 -9
  169. pyhausbus/de/hausbus/homeassistant/proxy/digitalPort/params/EErrorCode.py +13 -4
  170. pyhausbus/de/hausbus/homeassistant/proxy/digitalPort/params/EPin.py +13 -4
  171. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/commands/GetConfiguration.py +6 -6
  172. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/commands/GetStatus.py +6 -6
  173. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/commands/SetBrightness.py +7 -7
  174. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/commands/SetConfiguration.py +9 -9
  175. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/commands/Start.py +9 -9
  176. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/commands/Stop.py +6 -6
  177. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/data/Configuration.py +9 -9
  178. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/data/EvError.py +9 -9
  179. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/data/EvOff.py +6 -6
  180. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/data/EvOn.py +7 -7
  181. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/data/EvStart.py +9 -9
  182. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/data/Status.py +7 -7
  183. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/params/EDirection.py +12 -4
  184. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/params/EErrorCode.py +14 -4
  185. pyhausbus/de/hausbus/homeassistant/proxy/dimmer/params/EMode.py +12 -4
  186. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/_init_.py +1 -0
  187. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/commands/GetConfiguration.py +15 -0
  188. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/commands/GetStatus.py +15 -0
  189. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/commands/SetConfiguration.py +74 -0
  190. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/commands/_init_.py +1 -0
  191. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/Configuration.py +74 -0
  192. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/EvHigh.py +15 -0
  193. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/EvInRange.py +15 -0
  194. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/EvLow.py +15 -0
  195. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/EvStatus.py +33 -0
  196. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/Status.py +33 -0
  197. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/data/_init_.py +1 -0
  198. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/params/ELastEvent.py +28 -0
  199. pyhausbus/de/hausbus/homeassistant/proxy/drucksensor/params/_init_.py +1 -0
  200. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/commands/GetConfiguration.py +6 -6
  201. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/commands/GetCurrentIp.py +6 -6
  202. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/commands/SetConfiguration.py +10 -10
  203. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/commands/WakeUpDevice.py +7 -7
  204. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/data/Configuration.py +10 -10
  205. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/data/CurrentIp.py +7 -7
  206. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/data/EvError.py +9 -9
  207. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/params/EErrorCode.py +13 -4
  208. pyhausbus/de/hausbus/homeassistant/proxy/ethernet/params/MOptions.py +61 -61
  209. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/commands/GetConfiguration.py +6 -6
  210. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/commands/GetStatus.py +6 -6
  211. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/commands/SetConfiguration.py +7 -7
  212. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/Configuration.py +7 -7
  213. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/EvConfortable.py +6 -6
  214. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/EvDry.py +6 -6
  215. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/EvError.py +9 -9
  216. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/EvStatus.py +9 -9
  217. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/EvWet.py +6 -6
  218. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/data/Status.py +9 -9
  219. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/params/EErrorCode.py +14 -4
  220. pyhausbus/de/hausbus/homeassistant/proxy/feuchtesensor/params/ELastEvent.py +12 -4
  221. pyhausbus/de/hausbus/homeassistant/proxy/gateway/commands/GetConfiguration.py +6 -6
  222. pyhausbus/de/hausbus/homeassistant/proxy/gateway/commands/GetConnectedDevices.py +6 -6
  223. pyhausbus/de/hausbus/homeassistant/proxy/gateway/commands/{GetBusTiming.py → GetMinIdleTime.py} +8 -8
  224. pyhausbus/de/hausbus/homeassistant/proxy/gateway/commands/SetConfiguration.py +10 -10
  225. pyhausbus/de/hausbus/homeassistant/proxy/gateway/commands/SetMinIdleTime.py +25 -0
  226. pyhausbus/de/hausbus/homeassistant/proxy/gateway/commands/SetPreferLoxone.py +26 -0
  227. pyhausbus/de/hausbus/homeassistant/proxy/gateway/data/Configuration.py +10 -10
  228. pyhausbus/de/hausbus/homeassistant/proxy/gateway/data/ConnectedDevices.py +7 -7
  229. pyhausbus/de/hausbus/homeassistant/proxy/gateway/data/EvError.py +9 -9
  230. pyhausbus/de/hausbus/homeassistant/proxy/gateway/data/EvGatewayLoad.py +38 -17
  231. pyhausbus/de/hausbus/homeassistant/proxy/gateway/data/MinIdleTime.py +25 -0
  232. pyhausbus/de/hausbus/homeassistant/proxy/gateway/params/EErrorCode.py +14 -4
  233. pyhausbus/de/hausbus/homeassistant/proxy/gateway/params/EValue.py +27 -0
  234. pyhausbus/de/hausbus/homeassistant/proxy/gateway/params/MOptions.py +65 -65
  235. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/commands/GetConfiguration.py +6 -6
  236. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/commands/GetStatus.py +6 -6
  237. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/commands/SetConfiguration.py +7 -7
  238. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/Configuration.py +7 -7
  239. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/EvBright.py +6 -6
  240. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/EvDark.py +6 -6
  241. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/EvError.py +9 -9
  242. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/EvLight.py +6 -6
  243. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/EvStatus.py +9 -9
  244. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/data/Status.py +9 -9
  245. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/params/EErrorCode.py +14 -4
  246. pyhausbus/de/hausbus/homeassistant/proxy/helligkeitssensor/params/ELastEvent.py +12 -4
  247. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/commands/Off.py +6 -6
  248. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/commands/On.py +6 -6
  249. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/data/EvClicked.py +7 -7
  250. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/data/EvHoldEnd.py +7 -7
  251. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/data/EvHoldStart.py +7 -7
  252. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/data/EvOff.py +6 -6
  253. pyhausbus/de/hausbus/homeassistant/proxy/iRSensor/data/EvOn.py +6 -6
  254. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/Blink.py +7 -7
  255. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/GetConfiguration.py +6 -6
  256. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/GetMinBrightness.py +6 -6
  257. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/GetStatus.py +6 -6
  258. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/Off.py +7 -7
  259. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/On.py +7 -7
  260. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/SetConfiguration.py +9 -9
  261. pyhausbus/de/hausbus/homeassistant/proxy/led/commands/SetMinBrightness.py +7 -7
  262. pyhausbus/de/hausbus/homeassistant/proxy/led/data/Configuration.py +10 -10
  263. pyhausbus/de/hausbus/homeassistant/proxy/led/data/EvBlink.py +6 -6
  264. pyhausbus/de/hausbus/homeassistant/proxy/led/data/EvCmdDelay.py +7 -7
  265. pyhausbus/de/hausbus/homeassistant/proxy/led/data/EvError.py +10 -9
  266. pyhausbus/de/hausbus/homeassistant/proxy/led/data/EvOff.py +6 -6
  267. pyhausbus/de/hausbus/homeassistant/proxy/led/data/EvOn.py +7 -7
  268. pyhausbus/de/hausbus/homeassistant/proxy/led/data/MinBrightness.py +7 -7
  269. pyhausbus/de/hausbus/homeassistant/proxy/led/data/Status.py +7 -7
  270. pyhausbus/de/hausbus/homeassistant/proxy/led/params/EErrorCode.py +26 -0
  271. pyhausbus/de/hausbus/homeassistant/proxy/led/params/MOptions.py +61 -61
  272. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/Blink.py +7 -7
  273. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/GetConfiguration.py +6 -6
  274. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/GetMinBrightness.py +6 -6
  275. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/GetStatus.py +6 -6
  276. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/Off.py +7 -7
  277. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/On.py +7 -7
  278. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/SetButtonConfiguration.py +10 -10
  279. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/SetConfiguration.py +7 -7
  280. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/SetLedConfiguration.py +9 -9
  281. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/commands/SetMinBrightness.py +7 -7
  282. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/data/Configuration.py +7 -7
  283. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/data/EvBlink.py +6 -6
  284. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/data/EvError.py +9 -9
  285. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/data/EvOff.py +6 -6
  286. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/data/EvOn.py +7 -7
  287. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/data/Status.py +9 -9
  288. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/params/EErrorCode.py +14 -4
  289. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/params/EStatus.py +12 -4
  290. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/params/MEventMask.py +65 -65
  291. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/params/MOptionMask.py +61 -61
  292. pyhausbus/de/hausbus/homeassistant/proxy/logicalButton/params/MOptions.py +61 -61
  293. pyhausbus/de/hausbus/homeassistant/proxy/modBusMaster/commands/GetConfiguration.py +7 -7
  294. pyhausbus/de/hausbus/homeassistant/proxy/modBusMaster/commands/SetConfiguration.py +9 -9
  295. pyhausbus/de/hausbus/homeassistant/proxy/modBusMaster/data/Configuration.py +9 -9
  296. pyhausbus/de/hausbus/homeassistant/proxy/modBusMaster/params/ESensorType.py +12 -4
  297. pyhausbus/de/hausbus/homeassistant/proxy/pCA9555/_init_.py +1 -0
  298. pyhausbus/de/hausbus/homeassistant/proxy/pCA9555/data/EvError.py +26 -0
  299. pyhausbus/de/hausbus/homeassistant/proxy/pCA9555/data/_init_.py +1 -0
  300. pyhausbus/de/hausbus/homeassistant/proxy/pCA9555/params/EErrorCode.py +28 -0
  301. pyhausbus/de/hausbus/homeassistant/proxy/pCA9555/params/_init_.py +1 -0
  302. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/Exec.py +7 -7
  303. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/Quit.py +6 -6
  304. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/ReloadUserPlugin.py +6 -6
  305. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/Restart.py +6 -6
  306. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/SetVariable.py +7 -7
  307. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/Shutdown.py +6 -6
  308. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/commands/Standby.py +6 -6
  309. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/data/EvOffline.py +6 -6
  310. pyhausbus/de/hausbus/homeassistant/proxy/pCServer/data/EvOnline.py +6 -6
  311. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/commands/Enable.py +9 -9
  312. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/commands/GetConfiguration.py +6 -6
  313. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/commands/SetConfiguration.py +18 -10
  314. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/commands/SetTargetValue.py +7 -7
  315. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/data/Configuration.py +18 -10
  316. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/data/EvError.py +9 -9
  317. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/data/EvOff.py +6 -6
  318. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/data/EvOn.py +6 -6
  319. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/params/EEnable.py +12 -4
  320. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/params/EErrorCode.py +15 -4
  321. pyhausbus/de/hausbus/homeassistant/proxy/pIDController/params/MOptions.py +96 -0
  322. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/_init_.py +1 -0
  323. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/commands/GetConfiguration.py +15 -0
  324. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/commands/GetStatus.py +15 -0
  325. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/commands/SetConfiguration.py +74 -0
  326. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/commands/_init_.py +1 -0
  327. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/Configuration.py +74 -0
  328. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/EvError.py +26 -0
  329. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/EvHigh.py +15 -0
  330. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/EvInRange.py +15 -0
  331. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/EvLow.py +15 -0
  332. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/EvStatus.py +33 -0
  333. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/Status.py +33 -0
  334. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/data/_init_.py +1 -0
  335. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/params/EErrorCode.py +40 -0
  336. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/params/ELastEvent.py +28 -0
  337. pyhausbus/de/hausbus/homeassistant/proxy/pT1000/params/_init_.py +1 -0
  338. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/commands/GetConfiguration.py +6 -6
  339. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/commands/GetStatus.py +6 -6
  340. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/commands/SetConfiguration.py +7 -7
  341. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/Configuration.py +7 -7
  342. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/EvError.py +9 -9
  343. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/EvHighPower.py +6 -6
  344. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/EvLowPower.py +6 -6
  345. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/EvMediumPower.py +6 -6
  346. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/EvStatus.py +9 -9
  347. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/data/Status.py +9 -9
  348. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/params/EErrorCode.py +14 -4
  349. pyhausbus/de/hausbus/homeassistant/proxy/powerMeter/params/ELastEvent.py +12 -4
  350. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/commands/GetConfiguration.py +6 -6
  351. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/commands/GetLastData.py +6 -6
  352. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/commands/GetState.py +6 -6
  353. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/commands/SetConfiguration.py +6 -6
  354. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/data/Configuration.py +6 -6
  355. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/data/EvConnected.py +6 -6
  356. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/data/EvData.py +7 -7
  357. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/data/EvError.py +9 -9
  358. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/data/LastData.py +7 -7
  359. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/data/State.py +9 -9
  360. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/params/EErrorCode.py +13 -4
  361. pyhausbus/de/hausbus/homeassistant/proxy/rFIDReader/params/EState.py +12 -4
  362. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/commands/GetConfiguration.py +6 -6
  363. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/commands/GetStatus.py +6 -6
  364. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/commands/SetColor.py +7 -7
  365. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/commands/SetConfiguration.py +7 -7
  366. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/data/Configuration.py +7 -7
  367. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/data/EvOff.py +6 -6
  368. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/data/EvOn.py +7 -7
  369. pyhausbus/de/hausbus/homeassistant/proxy/rGBDimmer/data/Status.py +7 -7
  370. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/GetConfiguration.py +6 -6
  371. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/GetStatus.py +6 -6
  372. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/MoveToPosition.py +7 -7
  373. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/SetConfiguration.py +9 -9
  374. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/SetPosition.py +7 -7
  375. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/Start.py +9 -9
  376. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/commands/Stop.py +6 -6
  377. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/Configuration.py +9 -9
  378. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/EvClosed.py +7 -7
  379. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/EvError.py +9 -9
  380. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/EvNewMainState.py +9 -9
  381. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/EvNewSubState.py +9 -9
  382. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/EvOpen.py +6 -6
  383. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/EvStart.py +9 -9
  384. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/data/Status.py +7 -7
  385. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/params/EDirection.py +12 -4
  386. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/params/EErrorCode.py +14 -4
  387. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/params/ENewState.py +12 -4
  388. pyhausbus/de/hausbus/homeassistant/proxy/rollladen/params/MOptions.py +65 -65
  389. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/GetConfiguration.py +6 -6
  390. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/GetStatus.py +6 -6
  391. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/Off.py +7 -7
  392. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/On.py +7 -7
  393. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/SetConfiguration.py +9 -9
  394. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/Toggle.py +7 -7
  395. pyhausbus/de/hausbus/homeassistant/proxy/schalter/commands/ToggleByDuty.py +32 -0
  396. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/Configuration.py +9 -9
  397. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/EvCmdDelay.py +7 -7
  398. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/EvDisabled.py +6 -6
  399. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/EvError.py +9 -9
  400. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/EvOff.py +6 -6
  401. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/EvOn.py +7 -7
  402. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/EvToggle.py +31 -7
  403. pyhausbus/de/hausbus/homeassistant/proxy/schalter/data/Status.py +26 -12
  404. pyhausbus/de/hausbus/homeassistant/proxy/schalter/params/EErrorCode.py +14 -4
  405. pyhausbus/de/hausbus/homeassistant/proxy/schalter/params/EState.py +12 -4
  406. pyhausbus/de/hausbus/homeassistant/proxy/schalter/params/MOptions.py +61 -61
  407. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/commands/GetTime.py +6 -6
  408. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/commands/SetTime.py +10 -10
  409. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/data/EvError.py +9 -9
  410. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/data/Time.py +7 -7
  411. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/params/EDate.py +12 -4
  412. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/params/EErrorCode.py +13 -4
  413. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/params/EMonth.py +12 -4
  414. pyhausbus/de/hausbus/homeassistant/proxy/systemTime/params/EWeekDay.py +12 -4
  415. pyhausbus/de/hausbus/homeassistant/proxy/taster/commands/EnableEvents.py +9 -9
  416. pyhausbus/de/hausbus/homeassistant/proxy/taster/commands/GetConfiguration.py +6 -6
  417. pyhausbus/de/hausbus/homeassistant/proxy/taster/commands/GetEnabled.py +6 -6
  418. pyhausbus/de/hausbus/homeassistant/proxy/taster/commands/GetStatus.py +6 -6
  419. pyhausbus/de/hausbus/homeassistant/proxy/taster/commands/SetConfiguration.py +10 -10
  420. pyhausbus/de/hausbus/homeassistant/proxy/taster/commands/TriggerStatusEvent.py +15 -0
  421. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/Configuration.py +10 -10
  422. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/Enabled.py +7 -7
  423. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvClicked.py +9 -9
  424. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvCovered.py +9 -9
  425. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvDoubleClick.py +9 -9
  426. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvEnabled.py +7 -7
  427. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvError.py +10 -9
  428. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvFree.py +9 -9
  429. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvHoldEnd.py +9 -9
  430. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/EvHoldStart.py +9 -9
  431. pyhausbus/de/hausbus/homeassistant/proxy/taster/data/Status.py +9 -9
  432. pyhausbus/de/hausbus/homeassistant/proxy/taster/params/EEnable.py +12 -4
  433. pyhausbus/de/hausbus/homeassistant/proxy/taster/params/EErrorCode.py +27 -0
  434. pyhausbus/de/hausbus/homeassistant/proxy/taster/params/EState.py +12 -4
  435. pyhausbus/de/hausbus/homeassistant/proxy/taster/params/MEventMask.py +65 -65
  436. pyhausbus/de/hausbus/homeassistant/proxy/taster/params/MOptionMask.py +61 -61
  437. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/commands/GetConfiguration.py +6 -6
  438. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/commands/GetStatus.py +6 -6
  439. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/commands/SetConfiguration.py +7 -7
  440. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/Configuration.py +7 -7
  441. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/EvAbove.py +6 -6
  442. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/EvError.py +9 -9
  443. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/EvInRange.py +6 -6
  444. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/EvLow.py +6 -6
  445. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/EvStatus.py +9 -9
  446. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/data/Status.py +9 -9
  447. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/params/EErrorCode.py +14 -4
  448. pyhausbus/de/hausbus/homeassistant/proxy/taupunkt/params/ELastEvent.py +12 -4
  449. pyhausbus/de/hausbus/homeassistant/proxy/tcpClient/commands/AnnounceServer.py +7 -7
  450. pyhausbus/de/hausbus/homeassistant/proxy/tcpClient/commands/GetCurrentIp.py +6 -6
  451. pyhausbus/de/hausbus/homeassistant/proxy/tcpClient/data/CurrentIp.py +7 -7
  452. pyhausbus/de/hausbus/homeassistant/proxy/tcpClient/data/EvWhoIsServer.py +6 -6
  453. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/commands/GetConfiguration.py +6 -6
  454. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/commands/GetStatus.py +6 -6
  455. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/commands/SetConfiguration.py +8 -8
  456. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/Configuration.py +7 -7
  457. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/EvCold.py +6 -6
  458. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/EvError.py +9 -9
  459. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/EvHot.py +6 -6
  460. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/EvStatus.py +9 -9
  461. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/EvWarm.py +6 -6
  462. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/data/Status.py +9 -9
  463. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/params/EErrorCode.py +14 -4
  464. pyhausbus/de/hausbus/homeassistant/proxy/temperatursensor/params/ELastEvent.py +12 -4
  465. pyhausbus/de/hausbus/homeassistant/proxy/wetter/commands/GetWeather.py +6 -6
  466. pyhausbus/de/hausbus/homeassistant/proxy/wetter/data/Weather.py +9 -9
  467. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/commands/GetConfiguration.py +6 -6
  468. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/commands/GetCurrentIp.py +6 -6
  469. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/commands/SetConfiguration.py +8 -8
  470. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/commands/WakeUpDevice.py +7 -7
  471. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/data/Configuration.py +8 -8
  472. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/data/CurrentIp.py +7 -7
  473. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/data/EvError.py +9 -9
  474. pyhausbus/de/hausbus/homeassistant/proxy/wiFi/params/EErrorCode.py +14 -4
  475. pyhausbus/templates/AR8_30_8-fach-Relaismodul.tpl +18 -0
  476. pyhausbus/templates/ESP32C3_69_WLAN-Steckdose.tpl +5 -0
  477. pyhausbus/templates/ESP32_00_4-fach-0-10V-Dimmer.tpl +14 -0
  478. pyhausbus/templates/ESP32_01_4-fach-1-10V-Dimmer.tpl +10 -0
  479. pyhausbus/templates/ESP32_04_4-fach-Relaismodul.tpl +12 -0
  480. pyhausbus/templates/ESP32_08_8-fach-Relaismodul.tpl +18 -0
  481. pyhausbus/templates/ESP32_0A_12-fach-Relaismodul.tpl +22 -0
  482. pyhausbus/templates/ESP32_0C_16-fach-Relaismodul.tpl +26 -0
  483. pyhausbus/templates/ESP32_0D_8-fach-Motormodul.tpl +18 -0
  484. pyhausbus/templates/ESP32_10_22-fach-UP-IO.tpl +29 -0
  485. pyhausbus/templates/ESP32_18_6-fach-Taster.tpl +33 -0
  486. pyhausbus/templates/ESP32_19_4-fach-Taster.tpl +29 -0
  487. pyhausbus/templates/ESP32_1A_2-fach-Taster.tpl +25 -0
  488. pyhausbus/templates/ESP32_1B_1-fach-Taster.tpl +23 -0
  489. pyhausbus/templates/ESP32_1C_6-fach-Taster.tpl +29 -0
  490. pyhausbus/templates/ESP32_20_32-fach-IO.tpl +39 -0
  491. pyhausbus/templates/ESP32_28_8-fach-Dimmer.tpl +18 -0
  492. pyhausbus/templates/ESP32_30_2-fach-RGB-Dimmer.tpl +17 -0
  493. pyhausbus/templates/ESP32_31_2-fach-RGB-Dimmer.tpl +17 -0
  494. pyhausbus/templates/ESP32_65_LAN-RS485-Brueckenmodul.tpl +1 -0
  495. pyhausbus/templates/ESP32_99_LocalBroadcastDevice.tpl +1 -0
  496. pyhausbus/templates/FckmMapping.def +1 -0
  497. pyhausbus/templates/HBC_00_4-fach-0-10V-Dimmer.tpl +10 -0
  498. pyhausbus/templates/HBC_01_4-fach-1-10V-Dimmer.tpl +10 -0
  499. pyhausbus/templates/HBC_08_8-fach-Relaismodul.tpl +18 -0
  500. pyhausbus/templates/HBC_0C_16-fach-Relaismodul.tpl +26 -0
  501. pyhausbus/templates/HBC_10_24-fach-UP-IO.tpl +31 -0
  502. pyhausbus/templates/HBC_18_6-fach-Taster.tpl +34 -0
  503. pyhausbus/templates/HBC_19_4-fach-Taster.tpl +28 -0
  504. pyhausbus/templates/HBC_1A_2-fach-Taster.tpl +24 -0
  505. pyhausbus/templates/HBC_1B_1-fach-Taster.tpl +22 -0
  506. pyhausbus/templates/HBC_1C_6-fach-Taster.tpl +33 -0
  507. pyhausbus/templates/HBC_1D_4-fach-Taster.tpl +29 -0
  508. pyhausbus/templates/HBC_1E_2-fach-Taster.tpl +29 -0
  509. pyhausbus/templates/HBC_1F_1-fach-Taster.tpl +27 -0
  510. pyhausbus/templates/HBC_20_32-fach-IO.tpl +39 -0
  511. pyhausbus/templates/HBC_29_8-fach-Dimmer.tpl +18 -0
  512. pyhausbus/templates/HBC_30_2-fach-RGB-Dimmer.tpl +17 -0
  513. pyhausbus/templates/LoxoneHausBusMapping.txt +80 -0
  514. pyhausbus/templates/LoxoneModuleMapping.txt +11 -0
  515. pyhausbus/templates/SD485_1E_6-fach-Taster.tpl +30 -0
  516. pyhausbus/templates/SD485_28_24-fach-UP-IO.tpl +31 -0
  517. pyhausbus/templates/SD485_29_1-fach-Taster.tpl +24 -0
  518. pyhausbus/templates/SD485_2A_2-fach-Taster.tpl +26 -0
  519. pyhausbus/templates/SD485_2C_4-fach-Taster.tpl +26 -0
  520. pyhausbus/templates/SD485_2E_6-fach-Taster.tpl +30 -0
  521. pyhausbus/templates/SD485_2F_6-fach-Taster.tpl +30 -0
  522. pyhausbus/templates/SD6_14_Multitaster.tpl +26 -0
  523. pyhausbus/templates/SD6_1E_Multitaster.tpl +26 -0
  524. pyhausbus/templates/classMapping.def +9 -0
  525. pyhausbus/templates/deviceTypes.def +47 -0
  526. {pyhausbus-1.0.1.dist-info → pyhausbus-1.0.2.dist-info}/LICENSE +21 -21
  527. {pyhausbus-1.0.1.dist-info → pyhausbus-1.0.2.dist-info}/METADATA +2 -1
  528. pyhausbus-1.0.2.dist-info/RECORD +640 -0
  529. {pyhausbus-1.0.1.dist-info → pyhausbus-1.0.2.dist-info}/WHEEL +1 -1
  530. pyhausbus/de/hausbus/homeassistant/proxy/gateway/data/BusTiming.py +0 -25
  531. pyhausbus-1.0.1.dist-info/RECORD +0 -526
pyhausbus/Main.py CHANGED
@@ -1,100 +1,100 @@
1
- from pyhausbus.HomeServer import HomeServer
2
- from pyhausbus.ResultWorker import ResultWorker
3
- from pyhausbus.IBusDataListener import IBusDataListener
4
- from pyhausbus.de.hausbus.homeassistant.proxy.Controller import Controller
5
- from pyhausbus.de.hausbus.homeassistant.proxy.Taster import Taster
6
- from pyhausbus.de.hausbus.homeassistant.proxy.Led import Led
7
- from pyhausbus.de.hausbus.homeassistant.proxy.Dimmer import Dimmer
8
- from pyhausbus.de.hausbus.homeassistant.proxy.Schalter import Schalter
9
- from pyhausbus.de.hausbus.homeassistant.proxy.controller.data.ModuleId import ModuleId
10
- from pyhausbus.de.hausbus.homeassistant.proxy.controller.data.RemoteObjects import RemoteObjects
11
- from pyhausbus.de.hausbus.homeassistant.proxy.LogicalButton import LogicalButton
12
- from pyhausbus.de.hausbus.homeassistant.proxy.controller.params import EIndex
13
- from pyhausbus.de.hausbus.homeassistant.proxy.taster.data.Configuration import Configuration
14
- from pyhausbus.de.hausbus.homeassistant.proxy.dimmer.params.EDirection import EDirection
15
- from pyhausbus.de.hausbus.homeassistant.proxy.dimmer.data.EvOn import EvOn
16
- from pyhausbus.de.hausbus.homeassistant.proxy.dimmer.data.EvOff import EvOff
17
- from pyhausbus.de.hausbus.homeassistant.proxy.Feuchtesensor import Feuchtesensor
18
- import pyhausbus.HausBusUtils
19
- from pyhausbus.ObjectId import ObjectId
20
- import time
21
-
22
- class Main(IBusDataListener):
23
-
24
- def __init__(self):
25
-
26
- '''
27
- Instantiate Homeserver, add as Lister and search Devices
28
- Afterwards all devices respond with their moduleId. See method busDataReceived
29
- '''
30
- self.server = HomeServer()
31
- self.server.addBusEventListener(self)
32
- '''self.server.searchDevices()'''
33
-
34
- ''' Example how to directly create a feature with given class and instance id'''
35
- Dimmer.create(22784, 5).setBrightness(100, 0)
36
-
37
- ''' Example how to directly create a feature with given ObjectId and wait for the result '''
38
- taster = Taster(1313542180)
39
- ''' Then we call the method'''
40
- taster.getConfiguration()
41
- ''' And then wait for the Result with a timeout of 2 seconds'''
42
- configuration = ResultWorker().waitForResult(2)
43
- print("configuration = "+str(configuration))
44
-
45
- self.doTests()
46
-
47
-
48
-
49
-
50
- def busDataReceived(self, busDataMessage):
51
- print("got: " + str(busDataMessage.getData()) + " from " + str(ObjectId(busDataMessage.getSenderObjectId())) + " to " + str(ObjectId(busDataMessage.getReceiverObjectId())))
52
-
53
- if (isinstance(busDataMessage.getData(), RemoteObjects)):
54
- instances = self.server.getDeviceInstances(busDataMessage.getSenderObjectId(), busDataMessage.getData())
55
- for actInstance in instances:
56
- print (actInstance)
57
-
58
-
59
- def doTests(self):
60
-
61
- controller = Controller.create(3359, 1)
62
- controller.getConfiguration()
63
- print("Controller.configuration = "+str(ResultWorker().waitForResult(2)))
64
- controller.getModuleId(EIndex.EIndex.RUNNING)
65
- print("Controller.moduleId = "+str(ResultWorker().waitForResult(2)))
66
- controller.ping()
67
- print("Controller.pong = "+str(ResultWorker().waitForResult(2)))
68
-
69
- dimmer = Dimmer.create(22784, 5)
70
- dimmer.getConfiguration()
71
- print("Dimmer.configuration = "+str(ResultWorker().waitForResult(2)))
72
- dimmer.getStatus()
73
- print("Dimmer.status = "+str(ResultWorker().waitForResult(2)))
74
- dimmer.start(EDirection.TO_LIGHT)
75
- print("Dimmer.evOn = "+str(ResultWorker().waitForEvent(EvOn, dimmer.getObjectId(), 5)))
76
- dimmer.start(EDirection.TO_DARK)
77
- print("Dimmer.evOff = "+str(ResultWorker().waitForEvent(EvOff, dimmer.getObjectId(), 5)))
78
-
79
- feuchtesensor = Feuchtesensor.create(25661 , 88)
80
- feuchtesensor.getConfiguration()
81
- print("Feuchtesensor.configuration = "+str(ResultWorker().waitForResult(2)))
82
- feuchtesensor.getStatus()
83
- print("Feuchtesensor.status = "+str(ResultWorker().waitForResult(2)))
84
-
85
- led = Led.create(20043,54)
86
- led.getConfiguration()
87
- print("Led.configuration = "+str(ResultWorker().waitForResult(2)))
88
- led.getStatus()
89
- print("Led.status = "+str(ResultWorker().waitForResult(2)))
90
- led.on(50, 5, 0)
91
- led.getStatus()
92
- print("Led.status = "+str(ResultWorker().waitForResult(2)))
93
- time.sleep(2)
94
- led.getStatus()
95
- print("Led.status = "+str(ResultWorker().waitForResult(2)))
96
- time.sleep(3)
97
- led.getStatus()
98
- print("Led.status = "+str(ResultWorker().waitForResult(2)))
99
-
100
- Main()
1
+ from pyhausbus.HomeServer import HomeServer
2
+ from pyhausbus.ResultWorker import ResultWorker
3
+ from pyhausbus.IBusDataListener import IBusDataListener
4
+ from pyhausbus.de.hausbus.homeassistant.proxy.Controller import Controller
5
+ from pyhausbus.de.hausbus.homeassistant.proxy.Taster import Taster
6
+ from pyhausbus.de.hausbus.homeassistant.proxy.Led import Led
7
+ from pyhausbus.de.hausbus.homeassistant.proxy.Dimmer import Dimmer
8
+ from pyhausbus.de.hausbus.homeassistant.proxy.Schalter import Schalter
9
+ from pyhausbus.de.hausbus.homeassistant.proxy.controller.data.ModuleId import ModuleId
10
+ from pyhausbus.de.hausbus.homeassistant.proxy.controller.data.RemoteObjects import RemoteObjects
11
+ from pyhausbus.de.hausbus.homeassistant.proxy.LogicalButton import LogicalButton
12
+ from pyhausbus.de.hausbus.homeassistant.proxy.controller.params import EIndex
13
+ from pyhausbus.de.hausbus.homeassistant.proxy.taster.data.Configuration import Configuration
14
+ from pyhausbus.de.hausbus.homeassistant.proxy.dimmer.params.EDirection import EDirection
15
+ from pyhausbus.de.hausbus.homeassistant.proxy.dimmer.data.EvOn import EvOn
16
+ from pyhausbus.de.hausbus.homeassistant.proxy.dimmer.data.EvOff import EvOff
17
+ from pyhausbus.de.hausbus.homeassistant.proxy.Feuchtesensor import Feuchtesensor
18
+ import pyhausbus.HausBusUtils
19
+ from pyhausbus.ObjectId import ObjectId
20
+ import time
21
+
22
+ class Main(IBusDataListener):
23
+
24
+ def __init__(self):
25
+
26
+ '''
27
+ Instantiate Homeserver, add as Lister and search Devices
28
+ Afterwards all devices respond with their moduleId. See method busDataReceived
29
+ '''
30
+ self.server = HomeServer()
31
+ self.server.addBusEventListener(self)
32
+ '''self.server.searchDevices()'''
33
+
34
+ ''' Example how to directly create a feature with given class and instance id'''
35
+ Dimmer.create(22784, 5).setBrightness(100, 0)
36
+
37
+ ''' Example how to directly create a feature with given ObjectId and wait for the result '''
38
+ taster = Taster(1313542180)
39
+ ''' Then we call the method'''
40
+ taster.getConfiguration()
41
+ ''' And then wait for the Result with a timeout of 2 seconds'''
42
+ configuration = ResultWorker().waitForResult(2)
43
+ print("configuration = "+str(configuration))
44
+
45
+ self.doTests()
46
+
47
+
48
+
49
+
50
+ def busDataReceived(self, busDataMessage):
51
+ print("got: " + str(busDataMessage.getData()) + " from " + str(ObjectId(busDataMessage.getSenderObjectId())) + " to " + str(ObjectId(busDataMessage.getReceiverObjectId())))
52
+
53
+ if (isinstance(busDataMessage.getData(), RemoteObjects)):
54
+ instances = self.server.getDeviceInstances(busDataMessage.getSenderObjectId(), busDataMessage.getData())
55
+ for actInstance in instances:
56
+ print (actInstance)
57
+
58
+
59
+ def doTests(self):
60
+
61
+ controller = Controller.create(3359, 1)
62
+ controller.getConfiguration()
63
+ print("Controller.configuration = "+str(ResultWorker().waitForResult(2)))
64
+ controller.getModuleId(EIndex.EIndex.RUNNING)
65
+ print("Controller.moduleId = "+str(ResultWorker().waitForResult(2)))
66
+ controller.ping()
67
+ print("Controller.pong = "+str(ResultWorker().waitForResult(2)))
68
+
69
+ dimmer = Dimmer.create(22784, 5)
70
+ dimmer.getConfiguration()
71
+ print("Dimmer.configuration = "+str(ResultWorker().waitForResult(2)))
72
+ dimmer.getStatus()
73
+ print("Dimmer.status = "+str(ResultWorker().waitForResult(2)))
74
+ dimmer.start(EDirection.TO_LIGHT)
75
+ print("Dimmer.evOn = "+str(ResultWorker().waitForEvent(EvOn, dimmer.getObjectId(), 5)))
76
+ dimmer.start(EDirection.TO_DARK)
77
+ print("Dimmer.evOff = "+str(ResultWorker().waitForEvent(EvOff, dimmer.getObjectId(), 5)))
78
+
79
+ feuchtesensor = Feuchtesensor.create(25661 , 88)
80
+ feuchtesensor.getConfiguration()
81
+ print("Feuchtesensor.configuration = "+str(ResultWorker().waitForResult(2)))
82
+ feuchtesensor.getStatus()
83
+ print("Feuchtesensor.status = "+str(ResultWorker().waitForResult(2)))
84
+
85
+ led = Led.create(20043,54)
86
+ led.getConfiguration()
87
+ print("Led.configuration = "+str(ResultWorker().waitForResult(2)))
88
+ led.getStatus()
89
+ print("Led.status = "+str(ResultWorker().waitForResult(2)))
90
+ led.on(50, 5, 0)
91
+ led.getStatus()
92
+ print("Led.status = "+str(ResultWorker().waitForResult(2)))
93
+ time.sleep(2)
94
+ led.getStatus()
95
+ print("Led.status = "+str(ResultWorker().waitForResult(2)))
96
+ time.sleep(3)
97
+ led.getStatus()
98
+ print("Led.status = "+str(ResultWorker().waitForResult(2)))
99
+
100
+ Main()
pyhausbus/ObjectId.py CHANGED
@@ -1,22 +1,22 @@
1
- import pyhausbus.HausBusUtils as HausBusUtils
2
-
3
- class ObjectId:
4
- objectId:int=0
5
-
6
- def __init__ (self, objectId:int):
7
- self.objectId = objectId
8
-
9
- def getValue(self) -> int:
10
- return self.objectId
11
-
12
- def getDeviceId(self) -> int:
13
- return HausBusUtils.getDeviceId(self.objectId)
14
-
15
- def getClassId(self) -> int:
16
- return HausBusUtils.getClassId(self.objectId)
17
-
18
- def getInstanceId(self) -> int:
19
- return HausBusUtils.getInstanceId(self.objectId)
20
-
21
- def __str__(self):
22
- return f"Object(DeviceId={self.getDeviceId()}, ClassId={self.getClassId()}, InstanceId={self.getInstanceId()} - {hex(self.objectId)} ({self.objectId}))"
1
+ import pyhausbus.HausBusUtils as HausBusUtils
2
+
3
+ class ObjectId:
4
+ objectId:int=0
5
+
6
+ def __init__ (self, objectId:int):
7
+ self.objectId = objectId
8
+
9
+ def getValue(self) -> int:
10
+ return self.objectId
11
+
12
+ def getDeviceId(self) -> int:
13
+ return HausBusUtils.getDeviceId(self.objectId)
14
+
15
+ def getClassId(self) -> int:
16
+ return HausBusUtils.getClassId(self.objectId)
17
+
18
+ def getInstanceId(self) -> int:
19
+ return HausBusUtils.getInstanceId(self.objectId)
20
+
21
+ def __str__(self):
22
+ return f"Object(DeviceId={self.getDeviceId()}, ClassId={self.getClassId()}, InstanceId={self.getInstanceId()} - {hex(self.objectId)} ({self.objectId}))"
pyhausbus/ResultWorker.py CHANGED
@@ -1,53 +1,53 @@
1
- from pyhausbus.HausBusUtils import LOGGER
2
- import time
3
- import threading
4
-
5
-
6
- class ResultWorker:
7
- _instance = None
8
- _resultClass = None
9
- _resultSenderObjectId = 0
10
- _resultObject = None
11
- _condition = threading.Condition()
12
-
13
- def __new__(cls, *args, **kwargs):
14
- if not cls._instance:
15
- cls._instance = super().__new__(cls, *args, **kwargs)
16
- return cls._instance
17
-
18
- def _setResultInfo(self, resultClass, resultSenderObjectId:int):
19
- '''print("resultInfo " + str(resultClass) + ", ID " + str(resultSenderObjectId))'''
20
- self._resultClass = resultClass
21
- self._resultSenderObjectId = resultSenderObjectId
22
- self._resultObject=None
23
-
24
- def waitForResult(self, timeoutInSeconds:int):
25
- start_time = time.time()
26
- end_time = start_time + timeoutInSeconds
27
-
28
- with self._condition:
29
- while self._resultObject == None and time.time() < end_time:
30
- self._condition.wait(1)
31
-
32
- return self._resultObject
33
-
34
- def waitForEvent(self, event, eventSenderObjectId, timeoutInSeconds:int):
35
- self._resultClass = event
36
- self._resultSenderObjectId = eventSenderObjectId
37
- self._resultObject=None
38
-
39
- start_time = time.time()
40
- end_time = start_time + timeoutInSeconds
41
-
42
- with self._condition:
43
- while self._resultObject == None and time.time() < end_time:
44
- self._condition.wait(1)
45
-
46
- return self._resultObject
47
-
48
- def busDataReceived(self, busDataMessage):
49
- '''print("got "+str(busDataMessage))'''
50
- if (self._resultClass != None and busDataMessage.getSenderObjectId()==self._resultSenderObjectId and isinstance(busDataMessage.getData(), self._resultClass)):
51
- with self._condition:
52
- self._resultObject = busDataMessage.getData()
53
- self._condition.notify()
1
+ from pyhausbus.HausBusUtils import LOGGER
2
+ import time
3
+ import threading
4
+
5
+
6
+ class ResultWorker:
7
+ _instance = None
8
+ _resultClass = None
9
+ _resultSenderObjectId = 0
10
+ _resultObject = None
11
+ _condition = threading.Condition()
12
+
13
+ def __new__(cls, *args, **kwargs):
14
+ if not cls._instance:
15
+ cls._instance = super().__new__(cls, *args, **kwargs)
16
+ return cls._instance
17
+
18
+ def _setResultInfo(self, resultClass, resultSenderObjectId:int):
19
+ '''print("resultInfo " + str(resultClass) + ", ID " + str(resultSenderObjectId))'''
20
+ self._resultClass = resultClass
21
+ self._resultSenderObjectId = resultSenderObjectId
22
+ self._resultObject=None
23
+
24
+ def waitForResult(self, timeoutInSeconds:int):
25
+ start_time = time.time()
26
+ end_time = start_time + timeoutInSeconds
27
+
28
+ with self._condition:
29
+ while self._resultObject == None and time.time() < end_time:
30
+ self._condition.wait(1)
31
+
32
+ return self._resultObject
33
+
34
+ def waitForEvent(self, event, eventSenderObjectId, timeoutInSeconds:int):
35
+ self._resultClass = event
36
+ self._resultSenderObjectId = eventSenderObjectId
37
+ self._resultObject=None
38
+
39
+ start_time = time.time()
40
+ end_time = start_time + timeoutInSeconds
41
+
42
+ with self._condition:
43
+ while self._resultObject == None and time.time() < end_time:
44
+ self._condition.wait(1)
45
+
46
+ return self._resultObject
47
+
48
+ def busDataReceived(self, busDataMessage):
49
+ '''print("got "+str(busDataMessage))'''
50
+ if (self._resultClass != None and busDataMessage.getSenderObjectId()==self._resultSenderObjectId and isinstance(busDataMessage.getData(), self._resultClass)):
51
+ with self._condition:
52
+ self._resultObject = busDataMessage.getData()
53
+ self._condition.notify()
pyhausbus/Templates.py ADDED
@@ -0,0 +1,135 @@
1
+ import os
2
+ from collections import defaultdict
3
+ from typing import List, Dict, Optional
4
+ from pyhausbus.de.hausbus.homeassistant.proxy.controller.params.EFirmwareId import EFirmwareId
5
+
6
+ def load_file(path: str) -> list[str]:
7
+ try:
8
+ with open(path, "r", encoding="latin1") as file:
9
+ return [line.strip() for line in file if line.strip()]
10
+ except FileNotFoundError:
11
+ print(f"Datei nicht gefunden: {path}")
12
+ return []
13
+ except Exception as e:
14
+ print(f"Fehler beim Laden der Datei {path}: {e}")
15
+ return []
16
+
17
+ class Templates:
18
+ template_root_dir = "pyhausbus/templates/"
19
+ filter_non_existing = True
20
+ _instance = None
21
+ class_mappings: Dict[str, str] = {}
22
+
23
+ def __init__(self):
24
+ self.module_types: Dict['ModuleType', str] = {}
25
+ self.feature_names: Dict['ModuleType', List['FeatureEntry']] = {}
26
+
27
+ try:
28
+ lines = load_file(self.template_root_dir + "deviceTypes.def")
29
+ for line in lines:
30
+ tokens = line.split(",")
31
+ firmware_id = EFirmwareId.value_of(tokens[0])
32
+ fcke = int(tokens[1].replace("0x", ""), 16)
33
+ name = tokens[2]
34
+ self.module_types[ModuleType(firmware_id, fcke)] = name
35
+
36
+
37
+ root_dir = self.template_root_dir
38
+ if not os.path.exists(root_dir):
39
+ root_dir = "../JavaLib/" + self.template_root_dir
40
+
41
+ for act_file in os.listdir(root_dir):
42
+ if act_file.endswith(".tpl"):
43
+ tokens = act_file.split("_")
44
+ firmware_id = EFirmwareId.value_of(tokens[0])
45
+ fcke = int(tokens[1], 16)
46
+ features = []
47
+ self.feature_names[ModuleType(firmware_id, fcke)] = features
48
+
49
+ lines = load_file(os.path.join(root_dir, act_file))
50
+ for line in lines:
51
+ if line.strip():
52
+ features.append(FeatureEntry(line))
53
+
54
+ '''for module_type, features in self.feature_names.items():
55
+ print(module_type)
56
+ for entry in features:
57
+ print(entry)
58
+
59
+ quit()'''
60
+
61
+ lines = load_file(self.template_root_dir + "classMapping.def")
62
+ if lines:
63
+ for line in lines:
64
+ tokens = line.split(",")
65
+ orig_name = tokens[0]
66
+ mapped_name = tokens[1]
67
+ Templates.class_mappings[orig_name] = mapped_name
68
+
69
+ except Exception as e:
70
+ print(f"Fehler beim Initialisieren der Templates: {e}")
71
+
72
+ @classmethod
73
+ def get_instance(cls):
74
+ if cls._instance is None:
75
+ cls._instance = Templates()
76
+ return cls._instance
77
+
78
+ def get_feature_name_from_template(self, firmware_id, fcke, class_id, instance_id) -> Optional[str]:
79
+ if fcke != -1 & (firmware_id == EFirmwareId.ESP):
80
+
81
+ ''' print("get_feature_name_from_template firmware_id = ",firmware_id," fcke = ",fcke," class_id = ",class_id," instance_id = ",instance_id)'''
82
+ features = self.get_features(firmware_id, fcke)
83
+
84
+ if features:
85
+ for entry in features:
86
+ if entry.suits(class_id, instance_id):
87
+ return entry.name
88
+ return None
89
+
90
+ def get_features(self, firmware_id, fcke) -> Optional[List['FeatureEntry']]:
91
+ for module_type, features in self.feature_names.items():
92
+ if module_type.suits(firmware_id, fcke):
93
+ return list(features)
94
+ return None
95
+
96
+
97
+ class FeatureEntry:
98
+ def __init__(self, line: str):
99
+ tokens = line.split(",")
100
+ self.class_id = int(tokens[0])
101
+ self.instance_id = int(tokens[1])
102
+ self.name = tokens[2]
103
+ self.loxone_aktor_type = tokens[3] if len(tokens) > 3 else ""
104
+
105
+ def suits(self, class_id: int, instance_id: int) -> bool:
106
+ return self.class_id == class_id and self.instance_id == instance_id
107
+
108
+ def __str__(self):
109
+ return f"FeatureEntry(classId={self.class_id}, instanceId={self.instance_id}, name='{self.name}', loxoneAktorType='{self.loxone_aktor_type}')"
110
+
111
+
112
+ class ModuleType:
113
+ def __init__(self, firmware_id, fcke):
114
+ self.firmware_id = firmware_id
115
+ self.fcke = fcke
116
+
117
+ def suits(self, check_firmware_id, check_fcke) -> bool:
118
+ if check_fcke != self.fcke:
119
+ return False
120
+ if check_firmware_id == self.firmware_id:
121
+ return True
122
+ if str(check_firmware_id).startswith("HB") and str(self.firmware_id).startswith("HB"):
123
+ return True
124
+ return False
125
+
126
+ def __eq__(self, other):
127
+ if not isinstance(other, ModuleType):
128
+ return False
129
+ return self.firmware_id == other.firmware_id and self.fcke == other.fcke
130
+
131
+ def __hash__(self):
132
+ return hash((self.firmware_id, self.fcke))
133
+
134
+ def __str__(self):
135
+ return f"ModuleType(firmwareId={self.firmware_id}, fcke={self.fcke})"
@@ -1,73 +1,73 @@
1
- import socket
2
- import threading
3
- import traceback
4
- from pyhausbus.HausBusUtils import *
5
- from pyhausbus.de.hausbus.homeassistant.proxy import *
6
- import time
7
-
8
- BROADCAST_SEND_IP = "192.255.255.255"
9
- BROADCAST_RECEIVE_IP = "0.0.0.0"
10
- BUFFER_SIZE = 10000
11
-
12
- class UdpReceiveWorker:
13
- UDP_GATEWAY = "#UDP#"
14
-
15
- def __init__(self, func):
16
- LOGGER.debug("init UdpReceiveWorker")
17
- self.func = func
18
-
19
- def startWorker(self):
20
- LOGGER.debug("starting udp receive worker")
21
- t = threading.Thread(target=self.runable)
22
- t.start()
23
-
24
- def runable(self):
25
- while(True):
26
- try:
27
- UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
28
- UDPServerSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
29
- UDPServerSocket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
30
- UDPServerSocket.bind((BROADCAST_RECEIVE_IP, UDP_PORT))
31
- LOGGER.debug("UDP server up and listening")
32
-
33
- while(True):
34
- bytesAddressPair = UDPServerSocket.recvfrom(BUFFER_SIZE)
35
- message = bytesAddressPair[0]
36
- address = bytesAddressPair[1]
37
- LOGGER.debug("Message from Client "+format(address)+": "+bytesToDebugString(message))
38
-
39
-
40
- if (len(message) == 0):
41
- LOGGER.debug("got empty message")
42
- continue
43
-
44
- if (message[0] != 0xef | message[1] != 0xef):
45
- LOGGER.debug("invalid header")
46
- continue
47
-
48
- if (len(message) < 15):
49
- LOGGER.debug("message size " + len(message) + " is too short")
50
- continue
51
-
52
- # 2 = Kontrollbyte 3 = MessageCounter
53
- offset = [4]
54
- senderObjectId = bytesToDWord(message, offset)
55
- LOGGER.debug("senderObjectId = "+str(senderObjectId))
56
-
57
- receiverObjectId = bytesToDWord(message, offset)
58
- LOGGER.debug("receiverObjectId = "+str(receiverObjectId))
59
-
60
- dataLength = bytesToWord(message, offset)
61
- if (len(message) < 14 + dataLength):
62
- LOGGER.debug("message size " + str(len(message)) + " is too short for data length " + str(dataLength) + ": " + bytesToDebugString(message))
63
- dataLength = len(message) - 14
64
- # continue
65
- functionId = bytesToInt(message, offset)
66
- functionData = message[15:]
67
-
68
- LOGGER.debug("functionId " + str(functionId) + ", functionData " + bytesToDebugString(functionData))
69
-
70
- self.func(senderObjectId, receiverObjectId, functionId, functionData, self.UDP_GATEWAY, False)
71
- except (Exception) as err:
72
- LOGGER.error(err,exc_info=True,stack_info=True)
73
- time.sleep(5)
1
+ import socket
2
+ import threading
3
+ import traceback
4
+ from pyhausbus.HausBusUtils import *
5
+ from pyhausbus.de.hausbus.homeassistant.proxy import *
6
+ import time
7
+
8
+ BROADCAST_SEND_IP = "192.255.255.255"
9
+ BROADCAST_RECEIVE_IP = "0.0.0.0"
10
+ BUFFER_SIZE = 10000
11
+
12
+ class UdpReceiveWorker:
13
+ UDP_GATEWAY = "#UDP#"
14
+
15
+ def __init__(self, func):
16
+ LOGGER.debug("init UdpReceiveWorker")
17
+ self.func = func
18
+
19
+ def startWorker(self):
20
+ LOGGER.debug("starting udp receive worker")
21
+ t = threading.Thread(target=self.runable)
22
+ t.start()
23
+
24
+ def runable(self):
25
+ while(True):
26
+ try:
27
+ UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
28
+ UDPServerSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
29
+ UDPServerSocket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
30
+ UDPServerSocket.bind((BROADCAST_RECEIVE_IP, UDP_PORT))
31
+ LOGGER.debug("UDP server up and listening")
32
+
33
+ while(True):
34
+ bytesAddressPair = UDPServerSocket.recvfrom(BUFFER_SIZE)
35
+ message = bytesAddressPair[0]
36
+ address = bytesAddressPair[1]
37
+ LOGGER.debug("Message from Client "+format(address)+": "+bytesToDebugString(message))
38
+
39
+
40
+ if (len(message) == 0):
41
+ LOGGER.debug("got empty message")
42
+ continue
43
+
44
+ if (message[0] != 0xef | message[1] != 0xef):
45
+ LOGGER.debug("invalid header")
46
+ continue
47
+
48
+ if (len(message) < 15):
49
+ LOGGER.debug("message size " + len(message) + " is too short")
50
+ continue
51
+
52
+ # 2 = Kontrollbyte 3 = MessageCounter
53
+ offset = [4]
54
+ senderObjectId = bytesToDWord(message, offset)
55
+ LOGGER.debug("senderObjectId = "+str(senderObjectId))
56
+
57
+ receiverObjectId = bytesToDWord(message, offset)
58
+ LOGGER.debug("receiverObjectId = "+str(receiverObjectId))
59
+
60
+ dataLength = bytesToWord(message, offset)
61
+ if (len(message) < 14 + dataLength):
62
+ LOGGER.debug("message size " + str(len(message)) + " is too short for data length " + str(dataLength) + ": " + bytesToDebugString(message))
63
+ dataLength = len(message) - 14
64
+ # continue
65
+ functionId = bytesToInt(message, offset)
66
+ functionData = message[15:]
67
+
68
+ LOGGER.debug("functionId " + str(functionId) + ", functionData " + bytesToDebugString(functionData))
69
+
70
+ self.func(senderObjectId, receiverObjectId, functionId, functionData, self.UDP_GATEWAY, False)
71
+ except (Exception) as err:
72
+ LOGGER.error(err,exc_info=True,stack_info=True)
73
+ time.sleep(5)