Giter Site home page Giter Site logo

kf7eel / hbnet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hblink-org/hblink3

44.0 14.0 23.0 9.09 MB

HBNet is a fork of HBlink that includes a web GUI, APRS, SMS decoding, and other features.

Home Page: https://hbnet.xyz

License: GNU General Public License v3.0

Python 93.34% HTML 6.49% Dockerfile 0.17%
dmr ham-radio amateur-radio python3 aprs hblink3 mmdvm

hbnet's Introduction

HBNet is still under heavy development and currently undergoing a partiaql rewrite. Documentation is being added to the Wiki as I write it, so check perodically to see if there is any new information. V1.0 will be ready in the next few months. See here for the development news.

HBNet is a fork of HBlink3 that extends the functionality of HBLink through several features, making it more of a usable application and less of a framework. HBNet aims to be complete and ready to use application that can be used to build and run a DMR network.

HBNet consists of 2 parts, HBNet Web Service and the actual DMR server, based on HBLink. The HBNet Web Service handles user administration, server configuration, and is a content management system for your DMR network.

This project originally started as a not so simple set of scripts to decode GPS locations and generate APRS positions. Through other modifications and additions, it has grown into a fully featured fork.

User end features:

  • Handles user registration and email verification

  • Individual hotspot passphrases for each user

  • Automatic retrieval of DMR IDs on registration

  • Automatically generate talkgroup pages

  • Automatically generates a script for Pi-Star setup (WORK IN PROGRESS)

  • Map of currently connected peers

Administrative features:

  • Administrate multiple DMR servers through a single web service

  • Optional manual approval of new users

  • Multiple Admin user logins

OpenBridge additions

  • Enhanced unit call routing between connected servers. Every server known which server every subscribers is on.

  • Optionally encrypt data sent over OpenBridge

Data Gateway (APRS/SMS)

  • Compatable with HBNet and original HBLink.

  • Connect your server via OpenBridge or MMDVM.

  • Decodes GPS positions and generates APRS positions

  • Simple web dashboard

Other features

  • SQLite or MySQL backend

  • APRS and SMS features (WORK IN PROGRESS)


FOR SUPPORT, DISCUSSION, GETTING INVOLVED

Please join the DVSwitch group at groups.io for online forum support, discussion, and to become part of the development team.

[email protected]

A voluntary registry for HBlink systems with public access has been created at http://hblink-register.com.es Please consider listing your system if you allow open access.


Git Repositories

https://codeberg.org/kf7eel/hbnet

https://gitea.com/kf7eel/hbnet

https://linux.us.org/HBNet/HBNet

https://gitlab.com/hbnet2/hbnet

https://github.com/kf7eel/hbnet


PROJECT: Open Source HomeBrew Repeater Proctol Client/Master.

UPDATES:

PURPOSE: Thanks to the work of Jonathan Naylor, G4KLX; Hans Barthen, DL5DI; Torsten Shultze, DG1HT we have an open protocol for internetworking DMR repeaters. Unfortunately, there's no generic client and/or master stacks. This project is to build an open-source, python-based implementation. You are free to use this software however you want, however we ask that you provide attribution in some public venue (such as project, club, organization web site). This helps us see where the software is in use and track how it is used.

For those who will ask: This is a piece of software that implements an open-source, amateur radio networking protocol. It is not a network. It is not intended to be a network. It is not intended to replace or circumvent a network. People do those things, code doesn't.

PROPERTY:
This work represents the author's interpretation of the HomeBrew Repeater Protocol, based on the 2015-07-26 documents from DMRplus, "IPSC Protocol Specs for homebrew DMR repeater" as written by Jonathan Naylor, G4KLX; Hans Barthen, DL5DI; Torsten Shultze, DG1HT, also licenced under Creative Commons BY-NC-SA license.

WARRANTY None. The owners of this work make absolutely no warranty, express or implied. Use this software at your own risk.

PRE-REQUISITE KNOWLEDGE:
This document assumes the reader is familiar with Linux/UNIX, the Python programming language and DMR.

MORE DOCUMENTATION TO COME

0x49 DE N0MJS

Copyright (C) 2016-2020 Cortney T. Buffington, N0MJS [email protected]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

hbnet's People

Contributors

andytaylortweet avatar k2ie avatar kc1awv avatar kf7eel avatar m0glj avatar millaguie avatar mw0mwz avatar n0mjs710 avatar n4irs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hbnet's Issues

Disable transmiting GPS info to APRS server.

Hello. Could you please emplement ability in config file to turn of sending coordinates to APRS servers and disable all APRS part of code. In case when you need only GPS coordinates from radios for exemple any custom tracking system.

Thx. Also it will be nice to have ability to gather GPS info to any sort of database by the radio ID. For exemple SQLite or Mysql.

Implementation GPS parse script to pi-star.

Hi. It can be a nice idea to implement decode all GPS/SMS data on the fly outgoing from pi-star. How I can move your gps_data.py on MMDVM HS or Repeater controller. To work without HBlink ? In cases when you have a poor network between pi-star and HB link. But u still need to get GPS data from your radios and forward it in some kind of dashboard?

Sending SMS

Send SMS messages. This would be a wonderful feature to have someday.

Docker Compose Datagateway Remote Config Error

hbnet_web_service | {'get_config': 'XXXXXDG01', 'secret': 'xxxxx'}
hbnet_web_service | [2021-12-13 08:33:55,642] ERROR in app: Exception on /svr [POST]
hbnet_web_service | Traceback (most recent call last):
hbnet_web_service | File "/home/hbnet_web/.local/lib/python3.9/site-packages/flask/app.py", line 2073, in wsgi_app
hbnet_web_service | response = self.full_dispatch_request()
hbnet_web_service | File "/home/hbnet_web/.local/lib/python3.9/site-packages/flask/app.py", line 1518, in full_dispatch_request
hbnet_web_service | rv = self.handle_user_exception(e)
hbnet_web_service | File "/home/hbnet_web/.local/lib/python3.9/site-packages/flask/app.py", line 1516, in full_dispatch_request
hbnet_web_service | rv = self.dispatch_request()
hbnet_web_service | File "/home/hbnet_web/.local/lib/python3.9/site-packages/flask/app.py", line 1502, in dispatch_request
hbnet_web_service | return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
hbnet_web_service | File "./app.py", line 7298, in svr_endpoint
hbnet_web_service | config=server_get(hblink_req['get_config']),
hbnet_web_service | File "./app.py", line 3937, in server_get
hbnet_web_service | 'PATH': i.global_path,
hbnet_web_service | AttributeError: 'NoneType' object has no attribute 'global_path'
hbnet_web_service | [pid: 20|app: 0|req: 8/9] 172.20.0.1 () {40 vars in 514 bytes} [Mon Dec 13 08:33:55 2021] POST /svr => generated 290 bytes in 21 msecs (HTTP/1.1 500) 4 headers in 253 bytes (1 switches on core 0)
hbnet_data_gateway | Traceback (most recent call last):
hbnet_data_gateway | File "/opt/hbnet_data_gateway/data_gateway.py", line 1867, in
hbnet_data_gateway | CONFIG = download_config(CONFIG, cli_args.CONFIG_FILE)
hbnet_data_gateway | File "/opt/hbnet_data_gateway/data_gateway.py", line 332, in download_config
hbnet_data_gateway | resp = json.loads(req.text)
hbnet_data_gateway | File "/usr/lib/python3.9/json/init.py", line 346, in loads
hbnet_data_gateway | return _default_decoder.decode(s)
hbnet_data_gateway | File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
hbnet_data_gateway | obj, end = self.raw_decode(s, idx=_w(s, 0).end())
hbnet_data_gateway | File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
hbnet_data_gateway | raise JSONDecodeError("Expecting value", s, err.value) from None
hbnet_data_gateway | json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
hbnet_data_gateway exited with code 1

Radio compatibility

Lets start logging test results for radio compatibility.

GPS tested and working:
Anytone D878
Anytone D578

SMS tested and working:
Anytone D878 - M-SMS setting
MD-380 (md380tools firmware)

ipsc_to_MMDVM Config

Good Afternoon,

Looks like for ipsc_to_mmdvm.py there should be a ipsc_to_mmdvm.cfg file somehwere? Can you advise on where that is or how to create it?

Thanks!!
73

Dashboard-error.

Hi Eric,
I recive this error when open traking station and View Station on Map in emergency activation:

Screenshot_20210301-233025_Samsung Internet

73' Andrea IW5EDX.

Single Mode, similar to FreeDMR

Add code to disconnect a TG when a different TG is keyed, only in PROXY. Net effect, only one TG on a single PROXY instance at a time.

UNIT calling is disabled for this system (INGRESS

How I can fix this error???
ERROR 2021-01-03 13:32:34,403 (APRS) UNIT CALL NOT FORWARDED UNIT calling is disabled for this system (INGRESS)
ERROR 2021-01-03 13:32:34,460 (APRS) UNIT CALL NOT FORWARDED UNIT calling is disabled for this system (INGRESS)

aprs_features not work fine.

Last update of aprs_features not send aprs data of repeater and hotspots to server because had a bug in string:

if self._config['APRS_ENABLED'] in hblink.py

I would like to suggest to update my aprs section in your works with my ultimate release because first version generate mooooore packet on aprs server.

Thanks for your time spent on this project.
If you need an hand i would helps you.

73s de IU7IGU

D-APRS Dashboard

Similar to lastheard, but for APRS locations. Will also feature a bulletin board feature, usable via SMS.

Execute script via SMS

Trigger a script or command on host via APRS command.

Implement OTP for administrative functions? Maybe.

Testing sent-mail.

Hi Eric, I did some tests on sending mail ... but I found that the sending of the first mail is done successfully, while from the second on the email is no longer sent.
the email logs are as follows:

success / OK:

INFO 2021-02-05 09:46:05,564 Header from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,564 b'024a03671721f39988003ffb'
INFO 2021-02-05 09:46:05,565 Blocks to follow: 8
INFO 2021-02-05 09:46:05,625 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,625 Block #: 7
INFO 2021-02-05 09:46:05,625 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,625 b'4500005200000000401107c7'
INFO 2021-02-05 09:46:05,685 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,685 Block #: 6
INFO 2021-02-05 09:46:05,685 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,685 b'0c21f3990c0367170fa70fa7'
INFO 2021-02-05 09:46:05,735 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,736 Block #: 5
INFO 2021-02-05 09:46:05,736 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,736 b'003e120e0034a00081040d00'
INFO 2021-02-05 09:46:05,796 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,796 Block #: 4
INFO 2021-02-05 09:46:05,796 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,796 b'0a006d006f00720065006e00'
INFO 2021-02-05 09:46:05,856 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,856 Block #: 3
INFO 2021-02-05 09:46:05,857 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,857 b'6f0063006c00400074006900'
INFO 2021-02-05 09:46:05,917 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,917 Block #: 2
INFO 2021-02-05 09:46:05,917 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,917 b'6e002e006900740020004500'
INFO 2021-02-05 09:46:05,978 09:46:05 - 02/05/21
INFO 2021-02-05 09:46:05,978 Block #: 1
INFO 2021-02-05 09:46:05,978 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:05,978 b'2d006300690061006f000000'
INFO 2021-02-05 09:46:06,038 09:46:06 - 02/05/21
INFO 2021-02-05 09:46:06,038 Block #: 0
INFO 2021-02-05 09:46:06,039 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:06,039 b'0000000000000000259fa4ad'
INFO 2021-02-05 09:46:06,040
SMS detected. Attempting to parse.
INFO 2021-02-05 09:46:06,040 4500005200000000401107c70c21f3990c0367170fa70fa7003e120e0034a00081040d000a006d006f00720065006e006f0063006c004000740069006e002e0069007400200045002d006300690061006f0000000000000000000000259fa4ad
INFO 2021-02-05 09:46:06,040 Attempting to find command...
INFO 2021-02-05 09:46:06,040
Received SMS from I5NOD, DMR ID: 2225049: [email protected] E-ciao
INFO 2021-02-05 09:46:06,041 Email to: [email protected]
INFO 2021-02-05 09:46:06,041 Message: ciao
INFO 2021-02-05 09:46:07,773 Email sent.

failed:
INFO 2021-02-05 09:46:32,866 Header from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:32,866 b'024a03671721f3998a104ba8'
INFO 2021-02-05 09:46:32,866 Blocks to follow: 10
INFO 2021-02-05 09:46:32,916 09:46:32 - 02/05/21
INFO 2021-02-05 09:46:32,916 Block #: 9
INFO 2021-02-05 09:46:32,916 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:32,916 b'4500006a00010000401107ae'
INFO 2021-02-05 09:46:32,976 09:46:32 - 02/05/21
INFO 2021-02-05 09:46:32,976 Block #: 8
INFO 2021-02-05 09:46:32,977 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:32,977 b'0c21f3990c0367170fa70fa7'
INFO 2021-02-05 09:46:33,037 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,037 Block #: 7
INFO 2021-02-05 09:46:33,037 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,037 b'005687c1004ca00082040d00'
INFO 2021-02-05 09:46:33,097 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,097 Block #: 6
INFO 2021-02-05 09:46:33,097 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,098 b'0a0069006e0066006f002e00'
INFO 2021-02-05 09:46:33,158 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,158 Block #: 5
INFO 2021-02-05 09:46:33,158 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,158 b'690074006d0075006c007400'
INFO 2021-02-05 09:46:33,218 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,218 Block #: 4
INFO 2021-02-05 09:46:33,218 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,219 b'690070002e006e0065007400'
INFO 2021-02-05 09:46:33,279 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,279 Block #: 3
INFO 2021-02-05 09:46:33,279 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,279 b'400067006d00610069006c00' INFO 2021-02-05 09:46:33,339 09:46:33 - 02/05/21 INFO 2021-02-05 09:46:33,339 Block #: 2
INFO 2021-02-05 09:46:33,340 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,340 b'2e0063006f006d0020004500'
INFO 2021-02-05 09:46:33,400 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,400 Block #: 1
INFO 2021-02-05 09:46:33,400 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,400 b'2d006300690061006f000000'
INFO 2021-02-05 09:46:33,460 09:46:33 - 02/05/21
INFO 2021-02-05 09:46:33,460 Block #: 0
INFO 2021-02-05 09:46:33,461 Data block from I5NOD. DMR ID: 2225049
INFO 2021-02-05 09:46:33,461 b'00000000000000007af6f25d'
INFO 2021-02-05 09:46:33,461
SMS detected. Attempting to parse.
INFO 2021-02-05 09:46:33,461 4500006a00010000401107ae0c21f3990c0367170fa70fa7005687c1004ca00082040d000a0069006e0066006f002e00690074006d0075006c007400690070002e006e0065007400400067006d00610069006c002e0063006f006d00200045002d006300690061006f00000000000000000000007af6f25d
INFO 2021-02-05 09:46:33,461 Attempting to find command...
INFO 2021-02-05 09:46:33,461

Received SMS from I5NOD, DMR ID: 2225049: [email protected] E-ciao

INFO 2021-02-05 09:46:33,461 Email to: [email protected]
INFO 2021-02-05 09:46:33,461 Message: ciao
INFO 2021-02-05 09:46:33,462 Failed to send email.

by restarting the gps_data.py you can send the first mail, but from the second on, the sending fails until you restart the gps_data.py

thank you so much for everything you are doing!

73' de Andrea IW5EDX.

Improve Unit Call routing

Add various improvements to the way Unit calls are handled.

  • Static route for specific DMR IDs to prevent flooding of entire system
  • Configurable time for remembering which SYSTEM a subscriber is on

Huge problem with requirments.txt module versions, repeating rules and aprs system.

  1. After a long time of tinkering with hbnet i was able to at least get it running. The problem was that your code requires specific functions that the newer versions of pip modules that are installed from the requirements.txt are not able to provide + the best python version for running hbnet at least in my case is 3.9.18

  2. The working server config from HBlink just won't work in any shape or form.(Either from importing in the GUI or configuring it from scratch by hand) We are running HBlink locally only so we want private channels and public channels on each repeater/hotspot with echo access and aprs functionality.

hblink.cfg
``[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 62030
PASSPHRASE: Password1
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

[MASTER-2]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 62031
PASSPHRASE: Password2
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL``

``[MASTER-3]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 42000
PASSPHRASE: password3
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

[MASTER-4]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 42001
PASSPHRASE: Password4
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL``

rules.py
``BRIDGES = {
'REPEATERHOTSPOTEXTERNAL': [
{'SYSTEM': 'MASTER-1', 'TS': 1, 'TGID': 260, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-2', 'TS': 1, 'TGID': 260, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-3', 'TS': 1, 'TGID': 260, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-4', 'TS': 1, 'TGID': 260, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],
'REPEATERHOTSPOTLOCAL': [
{'SYSTEM': 'MASTER-1', 'TS': 2, 'TGID': 260110, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-2', 'TS': 2, 'TGID': 260110, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-3', 'TS': 2, 'TGID': 260110, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-4', 'TS': 2, 'TGID': 260110, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],
'APRS': [
{'SYSTEM': 'MASTER-1', 'TS': 2, 'TGID': 9099, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-2', 'TS': 2, 'TGID': 9099, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-3', 'TS': 2, 'TGID': 9099, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
{'SYSTEM': 'MASTER-4', 'TS': 2, 'TGID': 9099, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],
'REPEATERLOCAL': [
{'SYSTEM': 'MASTER-1', 'TS': 1, 'TGID': 260111, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],
'HOTSPOTLOCAL1': [
{'SYSTEM': 'MASTER-2', 'TS': 1, 'TGID': 260111, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],
'HOTSPOTLOCAL2': [
{'SYSTEM': 'MASTER-3', 'TS': 1, 'TGID': 260111, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],
'HOTSPOTLOCAL3': [
{'SYSTEM': 'MASTER-4', 'TS': 1, 'TGID': 260111, 'ACTIVE': True, 'TIMEOUT': 30, 'TO_TYPE':'NONE', 'ON': [11], 'OFF': [55], 'RESET': []},
],

    'LOCALECHO1': [
            {'SYSTEM': 'ECHOTEST',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
            {'SYSTEM': 'MASTER-1',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
    ],
    'LOCALECHO2': [
            {'SYSTEM': 'ECHOTEST',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
            {'SYSTEM': 'MASTER-2',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
    ],
    'LOCALECHO3': [
            {'SYSTEM': 'ECHOTEST',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
            {'SYSTEM': 'MASTER-3',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
    ],
    'LOCALECHO4': [
            {'SYSTEM': 'ECHOTEST',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
            {'SYSTEM': 'MASTER-4',            'TS': 2, 'TGID': 9999,     'ACTIVE': True,  'TIMEOUT': 0,  'TO_TYPE':'NONE', 'ON': [],         'OFF': [],      'RESET': []},
    ]

}``

  1. The APRS funcionality just will not decode any gps packet. Even with a supported radio. (AnyTone AT-D878UV II Plus)

  2. If i could be of any help to take the project further at least to the stable working phase please reach out to me. We have our own private repeaters and hotspots to test with, our own private server space, multiple radios by multiple manufacturers with gps support (AnyTone AT-D878UV II Plus, TYT MD-9600 PRO with GPS, TYT MD-390 with GPS, BAOFENG DM-1702 with GPS)

3/4 rate Motorola SMS

Heya, I have a Motorola XPR6550 (DP3601 equivalent) and through testing I've found that the DMR SMS packets it is sending use 3/4 rate data blocks.

Error correction and the like is way above my head, so I would much appreciate some help implementing SMS support for it.

In my attempts to implement 3/4 rate data support I found that ok-dmrlib has support for it https://github.com/OK-DMR/ok-dmrlib/blob/master/okdmr/dmrlib/etsi/layer2/pdu/rate34_data.py https://github.com/OK-DMR/ok-dmrlib/blob/master/okdmr/dmrlib/etsi/fec/trellis.py

Right now The part I'm struggling with is passing the DMR data from the MMDVM packet (I assume that's what _data is in data_received in /data_gateway.py) to a function in ok-dmrlib

KISS TNC

Implement KISS TNC to transmit APRS over air instead of APRS-IS.

APRS settings via SMS

Allow users to manage various settings for APRS position packets via SMS.

Settings that can be changed:

  • APRS icon
  • SSID
  • Position comment

Error with HBlink

I have HB link installed and trying to just use 2 hotspots to talk over the internet when I key up the radio I get this error on the HBlink server
(MASTER-1) UNIT CALL NOT FORWARDED UNIT calling is disabled for this system (INGRESS)

burn_ids.txt

Hi guys,
I have a problem to launch hblink.py in hbnet directory with burn_list.txt

Traceback (most recent call last):
File "/opt/hbnet/hblink.py", line 1131, in
f.write(str(download_burnlist(CONFIG)))
File "/opt/hbnet/hblink.py", line 160, in download_burnlist
return resp['burn_list']
KeyError: 'burn_list'

How can I solve that problem ?

Regards
73 Paul, ON6DP

Error in APRS-DASHBOARD.

Hi Eric,
I have install the last update but in dashboard, i have many error:

Mappa no in colore mode:

Screenshot_20210228-221551_Samsung Internet

No data in bullettin:

Screenshot_20210228-221600_Samsung Internet

Error in rss feed:

Screenshot_20210228-221606_Samsung Internet

73' de Andrea IW5EDX.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.