caronc/apprise

APRS plugin gives always error: APRS-IS msg is too short

aendes opened this issue · 4 comments

Hello,

i try to use the APRS Notification Plugin Version v1.7.5 in DockerContainer.

I always get the error: WARNING socket_login: APRS-IS msg is too short - needs to have at least two lines
Which seems to be a timing issue from the sourcecode of file:
In case you receive too many
"Rx: APRS-IS msg is too short - needs to have at least two lines" error
messages, you might want to increase this value to a larger time span
Per previous experience, do not use values lower than 0.5 (seconds)
/apprise/plugins/NotifyAprs.py: request_rate_per_sec = 0.8

I am not sure where to edit this file in the Docker Container to adjust the settings? Would it be possible to give this as a parameter to the container?
@joergschultzelutter: Maybe you could give some advice?

Thanks for your help

Andreas DO9ABE

Hi Andreas

To my knowledge, the value in question is not configurable. For all previous tests, the 0.5 seconds setting was usually plenty of time for receiving the response from the socket server - but I decided to give the setting some additional leeway and add 0.3 secs on top.

You might be connected to a slow(er) APRS-IS server where those 0.8 secs are not enough. For a future-secure solution, I see two options:

  • Change the hardcoded timeout to a different value, e.g. 5 secs. Easy but not flexible.
  • Allow the user to adjust the value via external Apprise URL parameter, e.g. aprs://{userid}:{password}@{callsign1}/{callsign2}/{callsignN}?timeout={float value} with a timeout default value of e.g. 2 secs which could get adjusted externally in case the default setting is not enough.

@caronc : what is your preferred option?

Thank you!

Joerg / DF1JSL / AE0YP

I am okay with being able to add to the throttle, but not take away from it (so setting it explicityly wouldn't be ideal). But perhaps a ?bo=2 (like back-off), or ?delay=2 which would add 2.0 seconds to the 0.8 as an example. ?throttle= may be misleading (that you're actually changing the under-the-hood parameter which shouldn't be the case).

I pushed a PR just playing with options

Thank you Chris; both options ?bo=2 and ?delay=2 sound good to me. There is no need to go for float values which would probably even overcomplicate things.

?throttle= is indeed a little bit misleading.

Merge delay=, It's a float (as i already started it that way), but integers work fine too. I updated the wiki too. Closing this off; it will be part of next release.