What is APRSParser?
APRSParser is used to capture and parse amateur radio APRS data from either your own internal server, or an APRS-IS server then trigger events based on location. Right now the focus of the plugin is to grab location information of specified SSIDs, calculate the distance based on specified locations, then trigger events accordingly. It will also allow you to map locations of the SSIDs you specify, and even track them on a Historical basis. Weather data can also be decoded for received weather stations.
What is APRS?
See here for information: http://web.usna.navy.mil/~bruninga/aprs.html
What servers do you support?
It currently can grab information from Xastir or from an APRS-IS server. It can grab both clear text and Mic-E location data, all except for direct NMEA transmissions at this time. In theory just about any application that outputs clear text APRS data should work as long as you know the port to connect to.
APRS-IS servers can be found here: http://www.aprs-is.net/APRSServers.htm
Xastir information can be found here: http://www.xastir.org
What ports do I connect to on my server/aprs software?
All depends on the server you are using. Xastir defaults to port 2023, while APRS-IS supports multiple ports depending on the data you require. You can often connect to the server by clicking on the link above, and it will list the currently supported ports. By default the plugin is read only so does not send any data to the APRS-IS server. However for location filtering, there is an option when connecting to the APRS-IS server to send your location information from the Options page in order to do filtering such as m/30, etc.
What version of Homeseer does this require?
Plugin utilizes .Net Framework 2.0 and has been written for Homeser 2.1 or higher.
What kind of mapping does it support?
You can map with either Google Maps or Microsoft Live Maps.
Why doesn't the Google Maps link work?
First you need a Google Maps API key which can be requested by following the link inside of the Options link. You will need to request it based on http://machinename. Google is very specific on the url, so if you specified http://homeseer, http://localhost or http://www.my-dynamic-dns-name.com won't work. Also please note Google Maps does not fully support mapping outside the US and Canada, so it may display grey boxes.
How do I enable debugging?
To enable, check the Debug checkbox under Options. I wouldn't let it run to long as it currently logs to the Homeseer log for now (will be changing that hopefully in the future.) However it should dump all incoming data it receives as it tries to decode it. When done, just uncheck the Debug checkbox under Options.
Will this be a free plugin?
My goal is to leave this plugin free. It does have an option for donations in the About screen, but is not required (but is appreciated ).
What features are coming/maybe coming?
Potentially the ability to send Homeseer weather station information direct to an APRS-IS server without the need for another client. Change debug logging to write to log files rather than HS log. Database management needs to be done as well... ie compact, clear, etc. Lastly a Help file is badly needed.
APRSParser isn't decoding my location from my packet, what can I do?
I'm trying to write the parser to support as many APRS packets as possible. It's possible I haven't gotten to that one yet... or it may be transmitting bad data believe it or not. In any case, feel free to send me the packet string and I'll do my best to see what's wrong and try to add support as well. Here's some examples of what to send:
KB1MTS-1>APX185,N1NCI-3,WIDE1,K1DF-7,WIDE2*,qAR,K2RRT-1:=4232.90N/07133.65W_360/001g001t020r000P000p000h56b10142XOWW
KB1MTS-7>4R3R9P,WIDE2-2,qAo,KB1MTS-1:'c=]l [/>
Another great resource as well is to check FindU. Many times stations are transmitting bad location data that can't be decoded so it's being thrown out.
Scripting Functions:
return_ssidlocation(devicecode) - Returns text string of SSID location; i.e. "Home", "Work", "Boston", etc.
Example:
Version Information:
LATEST STABLE BETA VERSION can be found here: http://forums.homeseer.com/showpost....&postcount=118
Changes for 1.1.14
- Added option to only decode Weather information if the station is being tracked
- Added preliminary support for database management, currently just a placeholder at this point
- Added ability to hide Latitude/Longitude from being added to the HS device string. Note you will lose ability to display map by clicking on the device inside of the HS interface with this enabled, however all other maps will work fine.
- Added option for GeoNames to return City Only
Known Issues:
- Running the plugin while Homeseer is in Service mode may not work correctly
- Edit button in Locations does not function
- Some data is still not decoded; ie $ULTW000000000000000000000000
- Some incoming packet data may throw a warning into the HS Log. This should not cause you any problems however.
Important Notes for Build 1.0.8 and later:
Starting with 1.0.8, only HS 2.1 or higher is supported.
Adding SSIDs:
To get started, click the APRSParser button and go to Devices; this is where you can add SSIDs you want to watch inside of Homeseer. They will show up under the APRSParser location, and initially be set to 0 until the first packet is received with a valid position. If the station has already been heard by FindU, you can do a manual update from here as well.
Updating to a specific location:
To update the location rather than just using Geocode, create an event for the SSID you want to update it's location. For the Trigger, set it to some distance less than the location you want. For the Action, specify the SSID, then the location you want to set it to. For example I have mine set the location to Home if less than 3 miles from Home. To set it to Away/Unknown, create a new event with the Condition of SSID and specify a location; add all of your locations for you sides to this condition group. The default distant value is 3 (miles/km/etc) which is settable in the options now. Finally set for the Action Away or Unknown depending on your preference. What this will do is create a single event so if the SSID goes outside out any of your specified locations, it will set it as Away or Unknown.
If you do not want to set the values as Away or Unknown, you can use the GeoNames lookup option which is enabled by default. Geonames lets me pass it a lat/lon position, and return thru XML it's location information. This information contains its unique ID, location name closest to it, location coorids and country. For United States locations, it can also try to guess the street number and address location. This level of detail can be changed in Options. If you have an event to set it to "Home" or "Work", etc, these should override the Geoname lookup.
Tracking Stations:
Version 1.1.10 added the ability to track stations on a historical basis. Go to the Received Stations link and click the Track button next to the SSID you wish to track. The station should now show up under the Track Stations link. Whenever a packet is received for that station, it is logged to a seperate database. You can then display on a map locations where that station has been, and filter based on home many to display as well as over what time frame.
Update Stations via FindU:
New for version 1.1.13 is the ability to update locations from FindU. To update an existing SSID, go to the APRSParser plugin and then select Devices. Select the SSID you want to download from FindU and hit update. This will pull down the last known location last seen on FindU.
73,
Mike
KB1MTS
APRSParser is used to capture and parse amateur radio APRS data from either your own internal server, or an APRS-IS server then trigger events based on location. Right now the focus of the plugin is to grab location information of specified SSIDs, calculate the distance based on specified locations, then trigger events accordingly. It will also allow you to map locations of the SSIDs you specify, and even track them on a Historical basis. Weather data can also be decoded for received weather stations.
What is APRS?
See here for information: http://web.usna.navy.mil/~bruninga/aprs.html
What servers do you support?
It currently can grab information from Xastir or from an APRS-IS server. It can grab both clear text and Mic-E location data, all except for direct NMEA transmissions at this time. In theory just about any application that outputs clear text APRS data should work as long as you know the port to connect to.
APRS-IS servers can be found here: http://www.aprs-is.net/APRSServers.htm
Xastir information can be found here: http://www.xastir.org
What ports do I connect to on my server/aprs software?
All depends on the server you are using. Xastir defaults to port 2023, while APRS-IS supports multiple ports depending on the data you require. You can often connect to the server by clicking on the link above, and it will list the currently supported ports. By default the plugin is read only so does not send any data to the APRS-IS server. However for location filtering, there is an option when connecting to the APRS-IS server to send your location information from the Options page in order to do filtering such as m/30, etc.
What version of Homeseer does this require?
Plugin utilizes .Net Framework 2.0 and has been written for Homeser 2.1 or higher.
What kind of mapping does it support?
You can map with either Google Maps or Microsoft Live Maps.
Why doesn't the Google Maps link work?
First you need a Google Maps API key which can be requested by following the link inside of the Options link. You will need to request it based on http://machinename. Google is very specific on the url, so if you specified http://homeseer, http://localhost or http://www.my-dynamic-dns-name.com won't work. Also please note Google Maps does not fully support mapping outside the US and Canada, so it may display grey boxes.
How do I enable debugging?
To enable, check the Debug checkbox under Options. I wouldn't let it run to long as it currently logs to the Homeseer log for now (will be changing that hopefully in the future.) However it should dump all incoming data it receives as it tries to decode it. When done, just uncheck the Debug checkbox under Options.
Will this be a free plugin?
My goal is to leave this plugin free. It does have an option for donations in the About screen, but is not required (but is appreciated ).
What features are coming/maybe coming?
Potentially the ability to send Homeseer weather station information direct to an APRS-IS server without the need for another client. Change debug logging to write to log files rather than HS log. Database management needs to be done as well... ie compact, clear, etc. Lastly a Help file is badly needed.
APRSParser isn't decoding my location from my packet, what can I do?
I'm trying to write the parser to support as many APRS packets as possible. It's possible I haven't gotten to that one yet... or it may be transmitting bad data believe it or not. In any case, feel free to send me the packet string and I'll do my best to see what's wrong and try to add support as well. Here's some examples of what to send:
KB1MTS-1>APX185,N1NCI-3,WIDE1,K1DF-7,WIDE2*,qAR,K2RRT-1:=4232.90N/07133.65W_360/001g001t020r000P000p000h56b10142XOWW
KB1MTS-7>4R3R9P,WIDE2-2,qAo,KB1MTS-1:'c=]l [/>
Another great resource as well is to check FindU. Many times stations are transmitting bad location data that can't be decoded so it's being thrown out.
Scripting Functions:
return_ssidlocation(devicecode) - Returns text string of SSID location; i.e. "Home", "Work", "Boston", etc.
Example:
Code:
hs.Plugin("APRSParser").return_ssidlocation("t1")
LATEST STABLE BETA VERSION can be found here: http://forums.homeseer.com/showpost....&postcount=118
Changes for 1.1.14
- Added option to only decode Weather information if the station is being tracked
- Added preliminary support for database management, currently just a placeholder at this point
- Added ability to hide Latitude/Longitude from being added to the HS device string. Note you will lose ability to display map by clicking on the device inside of the HS interface with this enabled, however all other maps will work fine.
- Added option for GeoNames to return City Only
Known Issues:
- Running the plugin while Homeseer is in Service mode may not work correctly
- Edit button in Locations does not function
- Some data is still not decoded; ie $ULTW000000000000000000000000
- Some incoming packet data may throw a warning into the HS Log. This should not cause you any problems however.
Important Notes for Build 1.0.8 and later:
Starting with 1.0.8, only HS 2.1 or higher is supported.
Adding SSIDs:
To get started, click the APRSParser button and go to Devices; this is where you can add SSIDs you want to watch inside of Homeseer. They will show up under the APRSParser location, and initially be set to 0 until the first packet is received with a valid position. If the station has already been heard by FindU, you can do a manual update from here as well.
Updating to a specific location:
To update the location rather than just using Geocode, create an event for the SSID you want to update it's location. For the Trigger, set it to some distance less than the location you want. For the Action, specify the SSID, then the location you want to set it to. For example I have mine set the location to Home if less than 3 miles from Home. To set it to Away/Unknown, create a new event with the Condition of SSID and specify a location; add all of your locations for you sides to this condition group. The default distant value is 3 (miles/km/etc) which is settable in the options now. Finally set for the Action Away or Unknown depending on your preference. What this will do is create a single event so if the SSID goes outside out any of your specified locations, it will set it as Away or Unknown.
If you do not want to set the values as Away or Unknown, you can use the GeoNames lookup option which is enabled by default. Geonames lets me pass it a lat/lon position, and return thru XML it's location information. This information contains its unique ID, location name closest to it, location coorids and country. For United States locations, it can also try to guess the street number and address location. This level of detail can be changed in Options. If you have an event to set it to "Home" or "Work", etc, these should override the Geoname lookup.
Tracking Stations:
Version 1.1.10 added the ability to track stations on a historical basis. Go to the Received Stations link and click the Track button next to the SSID you wish to track. The station should now show up under the Track Stations link. Whenever a packet is received for that station, it is logged to a seperate database. You can then display on a map locations where that station has been, and filter based on home many to display as well as over what time frame.
Update Stations via FindU:
New for version 1.1.13 is the ability to update locations from FindU. To update an existing SSID, go to the APRSParser plugin and then select Devices. Select the SSID you want to download from FindU and hit update. This will pull down the last known location last seen on FindU.
73,
Mike
KB1MTS
Comment