BOSWatch 3
Python Script to receive and decode German BOS Information with rtl_fm and multimon-NG
 
Loading...
Searching...
No Matches
plugin.telegram.BoswatchPlugin Class Reference

Public Member Functions

 __init__ (self, config)
 Do not change anything here!
 
 onLoad (self)
 Called by import of the plugin.
 
 setup (self)
 Called before alarm Remove if not implemented.
 
 fms (self, bwPacket)
 Called on FMS alarm.
 
 pocsag (self, bwPacket)
 Called on POCSAG alarm.
 
 zvei (self, bwPacket)
 Called on ZVEI alarm.
 
 msg (self, bwPacket)
 Called on MSG packet.
 
 teardown (self)
 Called after alarm Remove if not implemented.
 
 onUnload (self)
 Called by destruction of the plugin Remove if not implemented.
 
- Public Member Functions inherited from plugin.pluginBase.PluginBase
 parseWildcards (self, msg)
 Return the message with parsed wildcards.
 

Data Fields

 sender
 
- Data Fields inherited from plugin.pluginBase.PluginBase
 config
 

Additional Inherited Members

- Protected Member Functions inherited from plugin.pluginBase.PluginBase
 _cleanup (self)
 Cleanup routine calls onUnload() directly.
 
 _run (self, bwPacket)
 start an complete running turn of an plugin.
 
 _getStatistics (self)
 Returns statistical information's from last plugin run.
 
- Protected Attributes inherited from plugin.pluginBase.PluginBase
 _pluginName
 
 _bwPacket
 
 _sumTime
 
 _cumTime
 
 _setupTime
 
 _alarmTime
 
 _teardownTime
 
 _runCount
 
 _setupErrorCount
 
 _alarmErrorCount
 
 _teardownErrorCount
 
- Static Protected Attributes inherited from plugin.pluginBase.PluginBase
list _pluginsActive = []
 

Constructor & Destructor Documentation

◆ __init__()

plugin.telegram.BoswatchPlugin.__init__ (   self,
  config 
)

Do not change anything here!

Reimplemented from plugin.pluginBase.PluginBase.

142 def __init__(self, config):
143 r"""!Do not change anything here!"""
144 super().__init__(__name__, config) # you can access the config class on 'self.config'
145

Member Function Documentation

◆ onLoad()

plugin.telegram.BoswatchPlugin.onLoad (   self)

Called by import of the plugin.

Reimplemented from plugin.pluginBase.PluginBase.

146 def onLoad(self):
147 r"""!Called by import of the plugin"""
148 bot_token = self.config.get("botToken")
149 chat_ids = self.config.get("chatIds", default=[])
150
151 if not bot_token or not chat_ids:
152 logger.error("botToken oder chatIds fehlen in der Konfiguration!")
153 return
154
155 # configurable parameters with fallback defaults
156 max_retries = self.config.get("max_retries")
157 initial_delay = self.config.get("initial_delay")
158 max_delay = self.config.get("max_delay")
159 parse_mode = self.config.get("parse_mode")
160
161 self.sender = TelegramSender(
162 bot_token=bot_token,
163 chat_ids=chat_ids,
164 max_retries=max_retries,
165 initial_delay=initial_delay,
166 max_delay=max_delay,
167 parse_mode=parse_mode
168 )
169
170 startup_message = self.config.get("startup_message")
171 if startup_message and startup_message.strip():
172 self.sender.send_message(startup_message)
173

◆ setup()

plugin.telegram.BoswatchPlugin.setup (   self)

Called before alarm Remove if not implemented.

Reimplemented from plugin.pluginBase.PluginBase.

174 def setup(self):
175 r"""!Called before alarm
176 Remove if not implemented"""
177 pass
178

◆ fms()

plugin.telegram.BoswatchPlugin.fms (   self,
  bwPacket 
)

Called on FMS alarm.

Parameters
bwPacketbwPacket instance

Reimplemented from plugin.pluginBase.PluginBase.

179 def fms(self, bwPacket):
180 r"""!Called on FMS alarm
181 @param bwPacket: bwPacket instance"""
182 msg = self.parseWildcards(self.config.get("message_fms", default="{FMS}"))
183 self.sender.send_message(msg)
184

◆ pocsag()

plugin.telegram.BoswatchPlugin.pocsag (   self,
  bwPacket 
)

Called on POCSAG alarm.

Parameters
bwPacketbwPacket instance

Reimplemented from plugin.pluginBase.PluginBase.

185 def pocsag(self, bwPacket):
186 r"""!Called on POCSAG alarm
187 @param bwPacket: bwPacket instance"""
188 msg = self.parseWildcards(self.config.get("message_pocsag", default="{RIC}({SRIC})\n{MSG}"))
189 self.sender.send_message(msg)
190
191 if bwPacket.get("lat") is not None and bwPacket.get("lon") is not None:
192 lat, lon = bwPacket.get("lat"), bwPacket.get("lon")
193 logger.debug("Koordinaten gefunden – sende Standort.")
194 self.sender.send_location(lat, lon)
195

◆ zvei()

plugin.telegram.BoswatchPlugin.zvei (   self,
  bwPacket 
)

Called on ZVEI alarm.

Parameters
bwPacketbwPacket instance

Reimplemented from plugin.pluginBase.PluginBase.

196 def zvei(self, bwPacket):
197 r"""!Called on ZVEI alarm
198 @param bwPacket: bwPacket instance"""
199 msg = self.parseWildcards(self.config.get("message_zvei", default="{TONE}"))
200 self.sender.send_message(msg)
201

◆ msg()

plugin.telegram.BoswatchPlugin.msg (   self,
  bwPacket 
)

Called on MSG packet.

Parameters
bwPacketbwPacket instance

Reimplemented from plugin.pluginBase.PluginBase.

202 def msg(self, bwPacket):
203 r"""!Called on MSG packet
204 @param bwPacket: bwPacket instance"""
205 msg = self.parseWildcards(self.config.get("message_msg"))
206 self.sender.send_message(msg)
207

◆ teardown()

plugin.telegram.BoswatchPlugin.teardown (   self)

Called after alarm Remove if not implemented.

Reimplemented from plugin.pluginBase.PluginBase.

208 def teardown(self):
209 r"""!Called after alarm
210 Remove if not implemented"""
211 pass
212

◆ onUnload()

plugin.telegram.BoswatchPlugin.onUnload (   self)

Called by destruction of the plugin Remove if not implemented.

Reimplemented from plugin.pluginBase.PluginBase.

213 def onUnload(self):
214 r"""!Called by destruction of the plugin
215 Remove if not implemented"""
216 pass

Field Documentation

◆ sender

plugin.telegram.BoswatchPlugin.sender