faradayrf / aprs2influxdb Goto Github PK
View Code? Open in Web Editor NEWInterfaces ham radio APRS-IS servers and saves packet data into an influxdb database
Home Page: https://www.faradayrf.com
License: GNU General Public License v3.0
Interfaces ham radio APRS-IS servers and saves packet data into an influxdb database
Home Page: https://www.faradayrf.com
License: GNU General Public License v3.0
Start testing this code. Might need to rework seperate functions to perform tasks for this.
https://docs.python.org/2/library/unittest.html
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
aprslib provides parsing of scaling values and channel names. We should use these...
http://aprs-python.readthedocs.io/en/latest/parse_formats.html#telemetry-configuration
Provide a more in-depth explanation of the problem or feature if applicable
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
Remove use of configuration files as use is simple and we can rely on command line arguments ever time we need to run the code and that seems much more simple.
It seems like a lot of work to keep supporting configuration files and this program aims to be simple. I think we should just use command line arguments instead.
Should run as a linux service able to start/stop/restart. Operation should also be in background.
Provide a more in-depth explanation of the problem or feature if applicable
https://stackoverflow.com/questions/16420092/how-to-make-python-script-run-as-service
Pull in CWOP weather stations from the CWOP source. This is distinctly different than APRS-IS. I've known about this for a few weeks but poking from @el-iso makes me think this is probably more useful than originally thought.
Provide a more in-depth explanation of the problem or feature if applicable
Make this program more robust, It seems to exit often. Maybe I should log to file as well so I can figure out what goes wrong easier.
For some reason the program exits every hour or so. I am not sure if it is running out of memory or a network connection is failing. Need to investigate more.
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
I am missing some information provided my aprslib
which Faraday doesn't send. I should also consider compressed formats.
Provide a more in-depth explanation of the problem or feature if applicable
aprs2influxdb_UncompressedPackets.zip is a zip file of valid (should be) uncompressed packets over about 30 seconds. Should contain most relevant data
Pretty sure this gets lost in the uncompressed format parsing but never parse out the special keys such as rain levels.
http://aprs-python.readthedocs.io/en/latest/parse_formats.html#comment-field
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
Logging into APRS-IS appears to require unique callsigns. This is problematic because I only have one! I want to connect faraday-aprs
client to APRS-IS and also aprs2influxdb
. What ends up happening is that APRS-IS just ignores the second connection. This means if aprs2influxdb
is connected then Faraday data never gets to APRS-IS. Need a path around this.
ping @PhirePhly would you know any fix for this? Seems pretty restrictive.
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
Mic-E format packets can send data in the destination address ("TO") which aprs2influxdb
currently creates tags from. This isn't good since that would increase the tag values substantially for each station. This slows the server down.
http://www.aprs.org/doc/APRS101.PDF
Not all packets are as expected. I have seen some compressed
packets that have some super long comments and have altitudes among other items such as timestamps. I should support them.
This could easily be proper APRS format but the aprslib
documentation led me not to know if this is to be expected. Moving on and not supporting at the time of this ticket creation. Will do later.
{'comment': u'L3>4JOAlBXLAAzE9JOAlBXLAA+g4JOAlBXLAAip4JOAlBXLAAAo9JOAlBXLAAnk9JOAlBXLAA"<3JOAlBXLAA]k8JOAlBXLAABh3JOAlBXLAANn3JOAlBXLAA4Y3JOAlBXLAAZc4JOAlBXLAALO4JOAlBXLAA-08JOAlBXLAAT(3JOAlBXLAAVs3JOAlBXLAA', 'via': u'DL7AD', 'from': u'DL7AD-13', 'to': u'APECAN', 'messagecapable': False, 'altitude': 0.3048, 'format': 'compressed', 'longitude': 0.0, 'raw': u'DL7AD-13>APECAN,WIDE1-1,qAO,DL7AD:/044031h/NN!!NN!!O!!6L3>4JOAlBXLAAzE9JOAlBXLAA+g4JOAlBXLAAip4JOAlBXLAAAo9JOAlBXLAAnk9JOAlBXLAA"<3JOAlBXLAA]k8JOAlBXLAABh3JOAlBXLAANn3JOAlBXLAA4Y3JOAlBXLAAZc4JOAlBXLAALO4JOAlBXLAA-08JOAlBXLAAT(3JOAlBXLAAVs3JOAlBXLAA', 'symbol_table': u'/', 'timestamp': 1507610431, 'latitude': 0.0, 'path': [u'WIDE1-1', u'qAO', u'DL7AD'], 'symbol': u'O', 'raw_timestamp': u'044031h'}
Allow logging to file from command line option. This is useful to allow proper packet saving for debug as well as error handling.
Use Python logging to log to file properly.
Provide a generic configuration file setup for a base install of influxdb settings. Allow user to edit this as needed with command line options.
Installation should be easy and configuration also easy.
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
Use setuptools and pbr much like faraday-software
to install aprs2influxdb
Running aprs2db
on a server should be simple and therefore this should be installed via pip
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
Timestamps are local to when the server receives the APRS-IS packet. Not sure there's much I can do about this with APRS-IS as I don't think many stations at all provide a timestamp. I should put some thought into this however.
Provide a more in-depth explanation of the problem or feature if applicable
This is a handy spot to post any screenshots or file outputs in order to better support this issue. We want to keep the top of the ticket clutter-free as possible.
Using a virtualenv to install makes the installation work better. This is also self-contained and apparently suggested practice in general. It's difficult to install between Linux and Windows without virtual environments too.
Installing on Windows and Debian Linux is a pain without virtualenv. This makes sense to move to and it just streamlines the operation.
I don't feel that it's necessary to isolate just this program with virtualenv but the user should probably specially use one OR just use one that they use for all packages on their computer as to isolate the python bin/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.