This commit is contained in:
2024-10-07 15:46:06 +02:00
parent 3574c4aaaf
commit 0ce7470b46

View File

@@ -4,15 +4,15 @@
# #
#pylint: disable=line-too-long #pylint: disable=line-too-long
""" """
<plugin key="Auroras.live" name="Auroras Forecast" author="fjumelle" version="1.0.0" wikilink="" externallink=""> <plugin key="Auroras" name="Auroras" author="fjumelle" version="1.0.0" wikilink="" externallink="">
<description> <description>
<h2>Auroras Forecast</h2><br/> <h2>Auroras</h2><br/>
Powered by Auroras.live.<br/> Powered by Auroras.live
</description> </description>
<params> <params>
<param field="Mode1" label="Latitude" width="40px" required="true" default="45.0"/> <param field="Mode1" label="Latitude" width="100px" default="45"/>
<param field="Mode2" label="Longitude" width="40px" required="true" default="3.0"/> <param field="Mode2" label="Longitude" width="100px" default="5"/>
<param field="Mode5" label="Polling interval (min)" width="40px" required="true" default="60"/> <param field="Mode5" label="Pooling (min)" width="200px" default="60"/>
<param field="Mode6" label="Logging Level" width="200px"> <param field="Mode6" label="Logging Level" width="200px">
<options> <options>
<option label="Normal" value="0" default="true"/> <option label="Normal" value="0" default="true"/>
@@ -49,28 +49,24 @@ class BasePlugin(object):
# See https://www.domoticz.com/wiki/Developing_a_Python_plugin#Available_Device_Types # See https://www.domoticz.com/wiki/Developing_a_Python_plugin#Available_Device_Types
# Unit, Name, Type, Subtype, Switchtype, Options, Icon, Used # Unit, Name, Type, Subtype, Switchtype, Options, Icon, Used
_UNIT_BZ: ["Bz", 243, 31, 0, {"Custom": "0;nt Bz"}, None, 1,], _UNIT_BZ: ["Bz", 243, 31, 0, {"Custom": "0;nt Bz"}, None, 1,],
_UNIT_DENSITY: ["Density", 243,316, 0, {"Custom": "0;p/cm3"}, None, 1,], _UNIT_DENSITY: ["Density", 243,31, 0, {"Custom": "0;p/cm3"}, None, 1,],
_UNIT_SPEED: ["Speed", 243, 31, 0, {"Custom": "0;km/s"}, None, 1,], _UNIT_SPEED: ["Speed", 243, 31, 0, {"Custom": "0;km/s"}, None, 1,],
_UNIT_KP: ["KP", 243, 31, 0, None, None, 1], _UNIT_KP: ["KP", 243, 31, 0, None, None, 1],
_UNIT_LOCAL_VALUE: ["Local Value", 243, 6, 0, None, None, 1], _UNIT_LOCAL_VALUE: ["Local Value", 243, 6, 0, None, None, 1],
} }
def __init__(self): def __init__(self):
self.debug = False self._pooling = 30
self.pooling = 30 self._pooling_steps = 1
self.pooling_steps = 1 self._pooling_current_step = 1
self.pooling_current_step = 1
self.devices = []
def on_start(self): def on_start(self):
"""At statup""" """At statup"""
# setup the appropriate logging level # setup the appropriate logging level
debuglevel = int(Parameters["Mode6"]) debuglevel = int(Parameters["Mode6"])
if debuglevel != 0: if debuglevel != 0:
self.debug = True
Domoticz.Debugging(debuglevel) Domoticz.Debugging(debuglevel)
else: else:
self.debug = False
Domoticz.Debugging(0) Domoticz.Debugging(0)
# Polling interval = X sec # Polling interval = X sec
@@ -78,9 +74,10 @@ class BasePlugin(object):
pooling = int(Parameters["Mode5"])*60 pooling = int(Parameters["Mode5"])*60
except ValueError: except ValueError:
pooling = self._DEFAULT_POOLING pooling = self._DEFAULT_POOLING
self.pooling_steps = math.ceil(pooling/30) self._pooling_steps = math.ceil(pooling/30)
self.pooling = pooling // self.pooling_steps self._pooling_current_step = self._pooling_steps #To heartbeat at the first beat
Domoticz.Heartbeat(self.pooling) self._pooling = pooling // self._pooling_steps
Domoticz.Heartbeat(self._pooling)
# Create devices # Create devices
for u, unit in self._UNITS.items(): for u, unit in self._UNITS.items():
@@ -113,7 +110,7 @@ class BasePlugin(object):
def on_heartbeat(self): def on_heartbeat(self):
"""Time to heartbeat :)""" """Time to heartbeat :)"""
if self.pooling_current_step == self.pooling_steps: if self._pooling_current_step >= self._pooling_steps:
query = { query = {
'lat': Parameters["Mode1"], 'lat': Parameters["Mode1"],
'long': Parameters["Mode2"], 'long': Parameters["Mode2"],
@@ -148,9 +145,9 @@ class BasePlugin(object):
except requests.exceptions.RetryError as exc: except requests.exceptions.RetryError as exc:
Domoticz.Error(str(exc)) Domoticz.Error(str(exc))
self.pooling_current_step = 1 self._pooling_current_step = 1
else: else:
self.pooling_current_step = self.pooling_current_step + 1 self._pooling_current_step = self._pooling_current_step + 1
_plugin = BasePlugin() _plugin = BasePlugin()