Het Scannerforum

P2000 / C2000 => Overige => Topic gestart door: Remon op 16 januari 2019, 18:32:54

Titel: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 16 januari 2019, 18:32:54
Ik heb mij aangemeld op een website waarbij men een e-mail krijgt als een van deze capcodes waarop men is geabonneerd wordt gealarmeerd. Voor het ontvangende e-mailadres heb ik een forward ingesteld die de mail piped naar een PHP script die ik op een webserver heb staan. Het script ontleedt de email en voert ook woordfiltering en filtering van prioriteiten uit. Uiteindelijk worden de meldingen door middel van een webhook op Discord geplaatst.

Voor de aanvoer van de berichten ben ik geheel afhankelijk van de e-mail service en het liefst wil ik een geheel autonoom systeem. Ik ben in het bezit van een headless Raspberry Pi welke ik nu gebruik als rtl_tcp server en ik zou er een extra rtl-sdr dongle bij kunnen prikken om Multimon-ng te draaien (dit heb ik al getest en het werkt). Ik zou ook Pagermon met ingebouwde Discord ondersteuning kunnen gebruiken, maar 99% van de functies gebruik ik niet en ik wil een zo minimaal mogelijke setup.

Kan iemand mij op weg helpen om mijn PHP script eventueel te vertalen naar een geschikt script welke te gebruiken is voor communicatie tussen Multimon-ng en Discord? Ik hoef geen gebruik te maken van databases, capcodes lijsten, webservers, grafische uitvoer etc etc.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: woestric op 17 januari 2019, 08:53:48
Je zou wellicht een eind kunnen komen met het combineren van het p2000.py script van https://github.com/dmitryelj/RPi-P2000Receiver][url]https://github.com/dmitryelj/RPi-P2000Receiver (http://[url)[/url] en het discord.js script van pagermon? DIe js kan je zo vanuit php aanroepen volgens mij.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Simonn op 17 januari 2019, 12:53:27
Voor de Discord API zijn behoorlijk wat libraries beschikbaar. Zelf heb ik het enkel in Java gebruikt, maar voor PHP zou je kunnen kijken naar https://github.com/restcord/restcord.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: tomo-dj op 17 januari 2019, 17:48:25
Even een andere vraag, waarom wil je de meldingen op Discord en niet bijvoorbeeld op Telegram?

Ik heb voorheen met 112PERS een koppeling gemaakt naar Discord, op dit moment wordt dat niet meer ondersteund.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Simonn op 17 januari 2019, 21:23:27
Ach, als je toch al Discord gebruikt voor andere dingen scheelt het weer een applicatie  :)
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 18 januari 2019, 16:08:33
Omdat ik inderdaad al gebruik maak van de Discord app.

Ik ben intussen al behoorlijk op weg om een werkend Python script te maken. Er rest nog wel een vraag voordat ik verder ga:

Wat gebeurt er als ik de SSH verbinding sluit? Blijft Multimon en het script dan werken? En wat als ik met een nieuwe connectie naar de terminal de berichten wil lezen en het script opstart, draait het script dan twee keer?
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Simonn op 18 januari 2019, 16:40:00
Makkelijkste weg is om het in tmux of screen (ik zou voor tmux gaan) te draaien. Over tmux is erg veel geschreven om je op weg te helpen: https://robots.thoughtbot.com/a-tmux-crash-course
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 22 januari 2019, 01:27:07
Ik krijg het niet helemaal naar wens geprogrammeerd. Bestaan er een mogelijkheid om de berichten van Multimon-ng in een PHP script in te lezen? Dan kan ik mijn bestaande script hergebruiken.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 25 januari 2019, 22:34:11
Ik heb het uiteindelijk werkend gekregen met een Python script. :)

(http://i66.tinypic.com/29qo65x.png)

(http://i68.tinypic.com/2wciofk.png)
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Simonn op 25 januari 2019, 22:41:42
In tmux zo te zien. Fantastisch  :)
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 25 januari 2019, 22:51:35
Hij is nog niet helemaal af maar wel functioneel. Eventueel naar wens aan te passen (capcodes, plaatsnamen en woordfilters). Bij de webhook voor Discord kan men een eigen url invullen. Voor wie interesse heeft: https://pastebin.com/SiadUUni

mkdir srccd srcsudo nano p2000.py daarna code erin plakken en opslaan met ctrl+o, enter en afsluiten met ctrl+x.
sudo chmod udo+x p2000.py om het bestand uitvoerbaar te maken voor onderstaande:

Automatisch opstarten met sudo -H -u pi tmux new -d -s p2000-session 'bash -c "cd /home/pi/src; ./p2000.py; bash"' in /etc/rc.local Daarna in een willekeurige sessie tmux a intikken.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Simonn op 25 januari 2019, 23:35:06
En als je meerdere tmux sessies hebt:

tmux ls
tmux a -t $name

 :D
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Bleij op 27 januari 2019, 06:51:50
Op verzoek Remon linkje aangepast  ;)

Hij is nog niet helemaal af maar wel functioneel. Eventueel naar wens aan te passen (capcodes, plaatsnamen en woordfilters). Bij de webhook voor Discord kan men een eigen url invullen. Voor wie interesse heeft: https://pastebin.com/SiadUUni
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: leimpie op 27 januari 2019, 14:29:02
Is voor p2000.py specifiek Python2 of Python3 nodig?
Of maakt dit niet uit?
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 27 januari 2019, 21:12:52
Ik heb hem zelf getest in Python 2.x.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: leimpie op 28 januari 2019, 18:16:10
Bedankt.
Zowel 2 als 3 blijken standaard onderdeel van Raspbian (Stretch).
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 30 januari 2019, 19:52:55
Binnenkort kom ik weer met een update.

Ik ben intussen ook multimon-ng aan het modificeren, zodat groepsalarmeringen als een list met alle capcodes in een array aan stdout wordt aangeboden (in plaats van een nieuwe regel voor elke capcode met daarin de melding).
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 30 januari 2019, 21:32:59
Deze output ziet er beter uit en is veel bruikbaarder in Python:

[[FLEX], [2019-01-30 21:30:41], [1600/2/K/A], [07.095], [002029568, 001420999, 001420022], [ALN], [B1 AMBU 17122 Maasstadweg 3079DZ Rotterdam ROTTDM bon 13913]]
Geen losse regels meer voor elke capcode. :)
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: woestric op 1 februari 2019, 11:32:00
Binnenkort kom ik weer met een update.

Ik ben intussen ook multimon-ng aan het modificeren, zodat groepsalarmeringen als een list met alle capcodes in een array aan stdout wordt aangeboden (in plaats van een nieuwe regel voor elke capcode met daarin de melding).

Heb je daarvoor een aparte fork opgezet in github of ben je zover nog niet?
Ik ben wel geďnteresseerd in die aangepaste versie. Ik ben bezig geweest met aanpassen pagermon voor groepsmeldingen maar daar zitten toch wat lastige problemen in. Juist omdat multimon-ng niet gegroepeerd aanlevert.

mvg,
Richard
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 1 februari 2019, 21:57:08
Ik kan hem t.z.t. wel beschikbaar stellen.

Ik was eerst aan het experimenteren met een preformatted array in de Python list style, maar Python blijft dit als een string interpreteren.

Een alternatieve methode werkt beter: het bericht opgedeeld met een character (d.m.v. | in mijn test) aanleveren aan stdout. In Python kan je dan met de split functie de string opdelen in een list.

Een ander probleem die optrad is dat de for loop in de flex decoder van multimon-ng bij het verzamelen van alle capcodes (in plaats van voor iedere capcode direct een nieuwe regel naar stdout te schrijven), was dat wanneer tijdens het samenstellen van de regel alweer naar stdout werd geschreven door een andere alarmering, waardoor alles door elkaar liep..

In plaats van het "live" samenstellen naar (verb)printf, schrijft de decoder nu naar sprintf, stopt alles in een array en schrijft als het volledige bericht klaar is pas naar (verb)printf die de losse stukken uit het array haalt.

Ik ben nu nog aan het experimenteren met de grootte van het array.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 3 februari 2019, 01:30:37
Ik hem het inmiddels uitgebreid getest en alles werkt naar behoren. Downloaden kan hier (http://remonvogelaar.nl/files/groupdecoder.zip).

Voor de zekerheid zou ik de oude demod_flex.c opslaan of hernoemen. Dan de demod_flex.c uit de zip gebruiken en daarna achtereenvolgens cd build + qmake ../multimon-ng.pro + make + sudo make install om multimon-ng opnieuw te compilen.

Ik heb ook een eenvoudig Python script toegevoegd.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: woestric op 12 februari 2019, 20:50:31
Hoi Remon,

Ik ben benieuwd. Het meest lastige met pagermon was inderdaad dat je niet weet wanneer alle capcodes verzonden zijn. Met name bij gelijktijdige meldingen inderdaad een dingetje.
IK ben dus heel benieuwd naar jou oplossing. Wordt hij wel iets minder realtime van maar dat mag de pret niet drukken en het verschil is wellicht nauwelijks merkbaar.
Zit wat krap in de tijd maar hopelijk kan ik er dit weekend wat aan werken.
In ieder geval bedankt voor het beschikbaar stellen en ik laat je nog weten of het gelukt is allemaal icm pagermon.

mvg,
Richard
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: PD7AC op 1 maart 2019, 16:48:57
zijn er nog ontwikkelingen?

http://86.86.74.22:3010/ (http://86.86.74.22:3010/)
http://86.86.74.22:3000/ (http://86.86.74.22:3000/)
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 1 maart 2019, 18:09:03
De wijzigingen in de code werken. Ik heb een linkje geplaatst aantal berichten hierboven. Je kan het python script als voorbeeld gebruiken voor de aanpassingen in je eigen script.

Er zit echter wel een bug in multimon-ng waar ik geen invloed op heb en deze zit ook in de niet aangepaste versie: soms zit er een groepsbericht en een los bericht in dezelfde frame/cycle (worden gelijktijdig verzonden). Je mist dan het losse bericht als de capcode van het groepsbericht hoger is dan 2029568.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: PD7AC op 1 maart 2019, 18:51:27
De wijzigingen in de code werken. Ik heb een linkje geplaatst aantal berichten hierboven. Je kan het python script als voorbeeld gebruiken voor de aanpassingen in je eigen script.

Er zit echter wel een bug in multimon-ng waar ik geen invloed op heb en deze zit ook in de niet aangepaste versie: soms zit er een groepsbericht en een los bericht in dezelfde frame/cycle (worden gelijktijdig verzonden). Je mist dan het losse bericht als de capcode van het groepsbericht hoger is dan 2029568.

Heb je het al op Github gemeld?
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 1 maart 2019, 18:59:42
Ja, reeds gemeld.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: leimpie op 2 maart 2019, 15:43:53
Er zit echter wel een bug in multimon-ng waar ik geen invloed op heb en deze zit ook in de niet aangepaste versie: soms zit er een groepsbericht en een los bericht in dezelfde frame/cycle (worden gelijktijdig verzonden). Je mist dan het losse bericht als de capcode van het groepsbericht hoger is dan 2029568.

Weet je het zeker? Vandaag ontvangen via multimon-ng:
(http://www.linato.net/files/remon1.jpg)

Twee groepsberichten en een 'los' bericht in 00.126
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Remon op 2 maart 2019, 16:08:00
Ik heb het nog niet exact kunnen reproduceren, maar dan vermoed ik dat er nog een aantal factoren zijn die meespelen bij dit probleem. Bijvoorbeeld het aantal short instructions die afgehandeld moeten worden, of als er een groepsbericht, los bericht en een nieuwe short instruction in een frame zit. Ik zie het overigens ook alleen maar gebeuren als het losse bericht ná het groepsbericht komt.

De ondersteuning voor groepsberichten is maar mijn mening vlug en slordig toegevoegd met o.a. rommelige indentatie.
Titel: Re: Multimon-ng script hulp nodig (PHP maar Python)
Bericht door: Mjs87 op 8 november 2020, 16:10:50
mag ik vragen welke os jullieop de raspberry gebruiken