GithubHelp home page GithubHelp logo

dg9vh / mmdvmhost-websocketboard Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 10.0 788 KB

Websocket based MMDVM dashboard

License: MIT License

HTML 22.48% JavaScript 47.88% Python 21.09% CSS 4.45% Shell 4.10%

mmdvmhost-websocketboard's People

Contributors

dg9vh avatar dl8tu avatar kikosgc avatar sa7bnt avatar

Stargazers

 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

mmdvmhost-websocketboard's Issues

Show aktive talking QSO OM

Hey Kim,

is it possible to add aktive talking OM (red overlay) in the menu "in QSO" like it is in last heard if a OM is talking?

Best
Tim

Wrong info show

sometime Dashboard show this info when receive in DSTAR Mode

immagine

logtailer IndexError: list index out of range

Hi,
i get this error when i;m trying to start the logtailer

python3 ./logtailer.py
2023-06-15 13:06:21,256 INFO Loading DMR_IDs from file
Traceback (most recent call last):
File "/opt/MMDVMHost-Websocketboard/./logtailer.py", line 427, in
main()
File "/opt/MMDVMHost-Websocketboard/./logtailer.py", line 417, in main
load_callsign_database()
File "/opt/MMDVMHost-Websocketboard/./logtailer.py", line 406, in load_callsign_database
dmrids[tokens[0]] = tokens[1] + "$" + tokens[2].replace("\r", "").replace("\n", "") + "$"
IndexError: list index out of range

Python 3.10.6

pip show websocket-client
Name: websocket-client
Version: 1.2.3
Summary: WebSocket client for Python with low level API options
Home-page: https://github.com/websocket-client/websocket-client.git
Author: liris
Author-email: [email protected]
License: Apache-2.0
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:

How should i proceed. ??
Thanks in advance.

Mark TXing station with red row-background

Things to be done for this:
Fix rows with stations ended with "network watchdog" - actually suppressed and looks like txing.

mark row with actual txing station like this:

$('#example').dataTable( {
            "createdRow": function( row, data, dataIndex){
                if( data[2] ==  `someVal`){
                    $(row).addClass('redClass');
                }
            }
        });

Resolve DMR-IDs in logtailer.py for DMRHost

Because DMRHost by BrandMeister is not resolving DMR IDs within logfile add an option (with config-line to switch it on/off) to resolve DMR-IDs within logtailer.py.

Needs:

  • DMRIDs.dat
  • Bash-script for updating (may be taken from MMDVMHost)

Modem Info

Hi Kim,
dashboard work fine but I don't retrive the Modem Information
This is the logtailer log
2021-02-10 17:17:22,108 INFO Connected, remote=('192.168.252.186', 56365), path=/SYSINFO
2021-02-10 17:17:22,145 INFO Modem-Port=/dev/ttyAMA0
2021-02-10 17:17:22,146 INFO Modem-Exception=module 'serial' has no attribute 'Serial'

This is a section of MMDVM.ini

[Modem]
#Port=/dev/ttyACM0
Port=/dev/ttyAMA0
#Port=\.\COM3
#Protocol=uart
#Address=0x22
TXInvert=0
RXInvert=0
PTTInvert=0
......

Add one info for installation:
in requirement module add - sudo pip3 install serial -

Roby IV3JDV

logtailer error

Hi all, the logtailer gives this error:
2022-01-29 12:40:14,189 INFO Closed, remote=('10.0.17.5', 63929), path=/SYSINFO, exception=[Errno 13] Permission denied: '/tmp/mmdvm-version'
and System Info is not displayed

Error message box

After last commit I receive this message on Dashboard:

DataTables warning: table id=lastHeard - Requested unknown parameter '3' for row 0, column 3. For more information about this error, please see http://datatables.net/tn/4

until the commit on 21 April everything was working fine

Roby IV3JDV

Problem in logging

Hi,
I notice that after the rotation of the logs by the logrotate of the system, MMDVMHost continues to log in the first backup.
That is to say that instead of filling the file MMDVM.log it fills MMDVM.log.1
To start logging in MMDVM.log, I have to restart MMDVMHost
Of course, I have set FileRotate=0 in the [Log] section of MMDVM.ini
[Log]
DisplayLevel=1
FileLevel=2
FilePath=/opt/Logs/MMDVMHost
FileRoot=MMDVM
FileRotate=0

after version update

Hi Kim.

After update from 2021-02 to the last have this problem.

Traceback (most recent call last):
Jun 15 19:23:21 DVMega python3[1071]: File "/opt/MMDVMDash/logtailer.py", line 407, in
Jun 15 19:23:21 DVMega python3[1071]: main()
Jun 15 19:23:21 DVMega python3[1071]: File "/opt/MMDVMDash/logtailer.py", line 403, in main
Jun 15 19:23:21 DVMega python3[1071]: websocketserver()
Jun 15 19:23:21 DVMega python3[1071]: File "/opt/MMDVMDash/logtailer.py", line 366, in websocketserver
Jun 15 19:23:21 DVMega python3[1071]: if (config['DEFAULT']['Ssl'] == "True"):
Jun 15 19:23:21 DVMega python3[1071]: File "/usr/lib/python3.7/configparser.py", line 1251, in getitem
Jun 15 19:23:21 DVMega python3[1071]: raise KeyError(key)
Jun 15 19:23:21 DVMega python3[1071]: KeyError: 'Ssl'

How can disable 'Default' ssl or I need to setup ssl on this ?

make Systeminfo configurable

Using x86 not Pi ARM

Nov 22 22:19:19 FreePBX-Dell-Keller systemd[1]: Started Python3 logtailer for MMDVMDash.
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: /usr/lib/python3/dist-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from rpigpio: No module named 'RPi'
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: 'Falling back from %s: %s' % (name, str(e))))
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: /usr/lib/python3/dist-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from rpio: No module named 'RPIO'
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: 'Falling back from %s: %s' % (name, str(e))))
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: /usr/lib/python3/dist-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from pigpio: No module named 'pigpio'
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: 'Falling back from %s: %s' % (name, str(e))))
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: /usr/lib/python3/dist-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from native: unable to determine peripheral base
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: 'Falling back from %s: %s' % (name, str(e))))
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: Traceback (most recent call last):
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: File "/opt/MMDVMDash/logtailer.py", line 16, in
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: from gpiozero import CPUTemperature
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: File "/usr/lib/python3/dist-packages/gpiozero/init.py", line 22, in
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: from .devices import (
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 486, in
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: Device.pin_factory = _default_pin_factory()
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 453, in _default_pin_factory
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: raise BadPinFactory('Unable to load any default pin factory!')
Nov 22 22:19:19 FreePBX-Dell-Keller python3[4597]: gpiozero.exc.BadPinFactory: Unable to load any default pin factory!
Nov 22 22:19:19 FreePBX-Dell-Keller systemd[1]: logtailer.service: Main process exited, code=exited, status=1/FAILURE
Nov 22 22:19:19 FreePBX-Dell-Keller systemd[1]: logtailer.service: Failed with result 'exit-code'.
Nov 22 22:19:20 FreePBX-Dell-Keller systemd[1]: logtailer.service: Service RestartSec=100ms expired, scheduling restart.
Nov 22 22:19:20 FreePBX-Dell-Keller systemd[1]: logtailer.service: Scheduled restart job, restart counter is at 5.
Nov 22 22:19:20 FreePBX-Dell-Keller systemd[1]: Stopped Python3 logtailer for MMDVMDash.

73 SA7BNT de Tim

showBMTGLink=1 has no effect when using DMRHost (because of a small difference in the log line format)

Hi Kim,

there is a difference between the log files of MMDVMHost and DMRHost resulting in a broken string and the condition setMode(logline).startsWith("DMR")) could never get true when using DMRHost.

See explanation and workaround below.

DMRHost:
...
M: 2021-01-29 00:32:28 DMR Slot 1, received network end of voice transmission from nnnnnnn to TG 262, 1.6 seconds
M: 2021-01-29 00:50:02 DMR Slot 2, received network voice header from nnnnnnn to TG 26298
...

MMDVMHost:
...
M: 2021-01-29 14:27:59.642 DMR Slot 1, received network end of voice transmission from nnnnnn to TG 262, 0.8 se$
M: 2021-01-29 14:28:08.746 DMR Slot 1, received network voice header from nnnnnn to TG 262
...

Workaround is easy:

change:
function getMode(logline) {
return logline.substring(27, logline.indexOf(","));
}

in html/js/functions.js

to:
...
return logline.substring(23, logline.indexOf(","));
...

Cheers,
Tino - DL8TU

LogTailer to Support Journald

I am using System Journald for logging. All MMDVM Output is send to journald. The win is automatic logrotation and no logfiles, also on Pi or similiar devices this can be canfigured to reside in RAM /run (tmpfs)

I am using the snippets auf mmdvm.service and it`s config file for the Log-Section below.

The idea would be to either to scrap the journal, e.g.

 journalclt -u mmdvmhost -f

or if using multiinstanciated units:

 journalclt -u mmdvmhost@bm02 -f

Maybe there exists a python module to scrape the journal.

The log output looks like this:

[...]
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: M: 2021-10-20 04:17:12.812 DMR, Opening DMR Network
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.812 Opening UDP port on 62032
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.812 RSSI
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.812     Mapping File: /usr/local/etc/RSSI.dat
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.883 Loaded 14 RSSI data mapping points from /usr/local/etc/RSSI.dat
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.883 DMR Id Lookups
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.883     File: /usr/local/etc/DMRIds.dat
Oct 20 06:17:12 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:12.883     Reload: 24 hours
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.514 Loaded 205993 IDs to lookup table - /usr/local/etc/DMRIds.dat
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515 DMR RF Parameters
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515 Started the DMR Id lookup reload thread
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Id: 2342234
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Color Code: 1
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Self Only: no
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Embedded LC Only: no
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Dump Talker Alias Data: no
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Prefixes: 0
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Source ID White List: 1
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Call Hang: 3s
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     TX Hang: 4s
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     Mode Hang: 20s
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.515     OVCM: off
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: I: 2021-10-20 04:17:21.516     DMR Roaming Beacons Type: off
Oct 20 06:17:21 kermit mmdvmhost@bm02[332]: M: 2021-10-20 04:17:21.516 MMDVMHost-20210617_PS4 is running
# Managed by Ansible - local changes will be overwritten
[Unit]
Description=MMDVMHost %I
After=network-online.target

[Service]
Type=simple
PrivateTmp=true
WorkingDirectory=/run
ExecStart=/usr/local/bin/MMDVMHost /etc/mmdvmhost.%i
SyslogIdentifier=mmdvmhost@%i
LimitNPROC=8
ProtectSystem=true
ProtectHome=true
RestartSec=5s
Restart=on-failure

[Install]
WantedBy=multi-user.target

With this MMDVM config:

[General]
[...]
Daemon=0

[...]
[Log]
DisplayLevel=2
FileLevel=0
FilePath=/tmp
FileRoot=.mmdvm
FileRotate=0
[...]

Log error

I have a multiprotocol repeaters and I see this info from Dstar mode:
immagine

Check for correct format of DMRIds.dat

Actually the only supported format is tabulator-separated so there are two ways to solve this:
a) check format that it is tab-separated and if not do not use resolving
or
b) enhance to space-separated and csv (with , and ;).

I think b) would be the better way...

Logging issue

I find an anomaly when I query the dashboard.
For some reason the log does not display all the entries that are present in the MMDVMHost log file.

As you can see, there is some missing QSO.
Is there a "span" in terms of diration or in QSO entries ?

Here is the beginning of the log file (there is an hour difference with the one displayed by the dashboard):

M: 2021-12-25 23:04:54.745 DMR Slot 1, received network voice header from F5NHJ to TG 3022
M: 2021-12-25 23:04:54.773 DMR Slot 1, received network end of voice transmission from F5NHJ to TG 3022, 0.5 seconds, 0% packet loss, BER: 0.0%
M: 2021-12-25 23:04:57.995 DMR Slot 1, received network voice header from F5NHJ to TG 3022
M: 2021-12-25 23:05:05.777 DMR Slot 1, received network end of voice transmission from F5NHJ to TG 3022, 8.0 seconds, 0% packet loss, BER: 0.0%
M: 2021-12-25 23:24:06.841 DMR Slot 1, received network late entry from IT9ABK to TG 208
M: 2021-12-25 23:24:12.481 DMR Slot 1, network watchdog has expired, 6.2 seconds, 23% packet loss, BER: 0.0%

Here is the end of the log file as I write:

[pi@f5zjh /opt/Logs/MMDVMHost]$ sudo tail MMDVM.log
M: 2021-12-26 12:30:43.690 DMR Slot 2, received network voice header from F5JFA to TG 867
M: 2021-12-26 12:30:44.040 DMR Slot 2, received network end of voice transmission from F5JFA to TG 867, 0.1 seconds, 0% packet loss, BER: 0.0%
M: 2021-12-26 12:34:38.577 DMR Slot 1, received network voice header from FR4KM to TG 647
M: 2021-12-26 12:34:40.615 DMR Slot 1, received network end of voice transmission from FR4KM to TG 647, 2.6 seconds, 0% packet loss, BER: 8.2%
M: 2021-12-26 12:34:46.148 DMR Slot 1, received network voice header from FR4KM to TG 647
M: 2021-12-26 12:34:48.491 DMR Slot 1, received network end of voice transmission from FR4KM to TG 647, 3.0 seconds, 0% packet loss, BER: 7.7%
M: 2021-12-26 12:35:43.581 DMR Slot 2, received network voice header from F5JFA to TG 867
M: 2021-12-26 12:35:44.030 DMR Slot 2, received network end of voice transmission from F5JFA to TG 867, 0.1 seconds, 0% packet loss, BER: 0.0%
M: 2021-12-26 12:38:18.959 DMR Slot 1, received network voice header from FR4KM to TG 647
M: 2021-12-26 12:38:21.024 DMR Slot 1, received network end of voice transmission from FR4KM to TG 647, 2.6 seconds, 0% packet loss, BER: 14.5%
[pi@f5zjh /opt/Logs/MMDVMHost]$

Here is is the first QSO displayed
image

Here is the last QSO in the last page
image

Data Table Warning Popup-Window

Describe the bug
Data Table Warning Popup-Window

like closed older issue

Screenshots

Bildschirmfoto 2021-09-25 um 08 48 24

MMDVM.log:
M: 2021-09-24 23:47:51.285 P25, network end of transmission from 0 to TG 0, 1.4 seconds, 5% packet loss
M: 2021-09-24 23:57:37.055 P25, received network transmission from KA1PIT to TG 10100
M: 2021-09-24 23:57:37.647 P25, network end of transmission from KA1PIT to TG 10100, 0.9 seconds, 0% packet loss
E: 2021-09-24 23:57:37.862 MMDVM DAC levels have overflowed
E: 2021-09-24 23:57:38.114 MMDVM DAC levels have overflowed
E: 2021-09-24 23:57:38.365 MMDVM DAC levels have overflowed
E: 2021-09-24 23:57:38.617 MMDVM DAC levels have overflowed
E: 2021-09-24 23:57:38.868 MMDVM DAC levels have overflowed
M: 2021-09-25 00:39:43.745 P25, received network transmission from 0 to TG 0
M: 2021-09-25 00:39:43.792 P25, network end of transmission from 0 to TG 0, 0.4 seconds, 38% packet loss
E: 2021-09-25 00:39:44.551 MMDVM DAC levels have overflowed
E: 2021-09-25 00:39:44.803 MMDVM DAC levels have overflowed
M: 2021-09-25 00:42:52.580 P25, received network transmission from 0 to TG 10100
M: 2021-09-25 00:42:52.626 P25, network end of transmission from 0 to TG 10100, 0.4 seconds, 0% packet loss
E: 2021-09-25 00:42:53.386 MMDVM DAC levels have overflowed
E: 2021-09-25 00:42:53.637 MMDVM DAC levels have overflowed
M: 2021-09-25 05:23:56.038 P25, network end of transmission from 0 to TG 0, 0.4 seconds, 0% packet loss

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.