Seite 11 von 21 ErsteErste 123456789101112131415161718192021 LetzteLetzte
Ergebnis 151 bis 165 von 301

Thema: multimon (der Vorgänger des monitord) auf Raspberry Pi

  1. #151
    Registriert seit
    03.03.2015
    Beiträge
    45
    Zitat Zitat von Schrolli Beitrag anzeigen
    Geht bestimmt... Kann ich aber nicht machen, da bei mir nicht mal Kal läuft... irgendwas haut da nicht hin. Scheint nicht mit meinem Stick zu wollen
    Kal arbeitet mit GSM-Frequenzen, da dort die richtige "Kanal/Frequenz"-Zuordnung bekannt ist. Viele Sticks (z.B. meine) kommen aber nicht bis in die bei uns verwendeten GSM-Frequenzen.

    Zitat Zitat von McBo Beitrag anzeigen
    Und könnte man nicht so eine "Auto-Tune" Funktion
    einbauen (eventuell mit Hilfe von "kal"), der die genaue Centerfrequenz bestimmt und verwendet.
    Mit einem Tool mit graphischer Ausgabe (z.B. SDRSharp oder HDR) kann man die korrekte Frequenz sehr schnell/einfach ermitteln.

    Grüße
    Jens

  2. #152
    Registriert seit
    02.01.2002
    Beiträge
    105
    Zitat Zitat von JHC Beitrag anzeigen
    Mit einem Tool mit graphischer Ausgabe (z.B. SDRSharp oder HDR) kann man die korrekte Frequenz sehr schnell/einfach ermitteln.
    Und was nutzt Du als Signalgeber?
    Einen Frequenzgenerator?

    Gibt es ein Howto zum Ermitteln der Offsetfrequenz
    mittels grafischen SDR-Tools?

    Mir ist aufgefallen, das die ermittelten Werte von "kal" sehr stark
    Temperaturabhängig sind.

  3. #153
    Registriert seit
    03.03.2015
    Beiträge
    45
    Moin McBo,

    Zitat Zitat von McBo Beitrag anzeigen
    Und was nutzt Du als Signalgeber?
    Einen Frequenzgenerator?
    Nein, die echte Frequenz.

    Zitat Zitat von McBo Beitrag anzeigen
    Gibt es ein Howto zum Ermitteln der Offsetfrequenz
    mittels grafischen SDR-Tools?
    Im BosMon-Forum wurde das mal beschrieben: hier

    Zitat Zitat von McBo Beitrag anzeigen
    Mir ist aufgefallen, das die ermittelten Werte von "kal" sehr stark
    Temperaturabhängig sind.
    Ja, gib dem Stick 10-20 Minuten Zeit um auf Betriebstemperatur zu kommen.

    Grüße
    Jens

  4. #154
    Registriert seit
    02.01.2002
    Beiträge
    105
    Zitat Zitat von JHC Beitrag anzeigen
    Nein, die echte Frequenz.
    Das ist im 4m Band schlecht :-)

    Aber da könnte ich ja die GSM Frequenzen nehmen.

    Und du setzt dann den rtl_fm Parameter "-p" auf "0"
    und gibst Deine korrigierte Frequenz ein?

  5. #155
    Registriert seit
    03.03.2015
    Beiträge
    45
    Zitat Zitat von McBo Beitrag anzeigen
    Und du setzt dann den rtl_fm Parameter "-p" auf "0"
    und gibst Deine korrigierte Frequenz ein?
    Ja, genau...

  6. #156
    Registriert seit
    01.10.2011
    Beiträge
    94
    JHC, raspoc ist quasi tot.
    Ich werde an BOSWatch weiter machen.
    raspoc war von mir eigentlich auch nur für POCSAG gedacht. Durch McBo bin ich dann auch auf FMS etc. Eingegangen.
    BOSWatch ist eigentlich auch das gleiche wie vorher, ohne Schrolli jetzt zu nahe treten zu wollen :-)
    Ich will nur nicht an zwei Programmen arbeiten.

    So und zu BOSMon, was wünscht du dir?
    Das Programm dekodiert ja selbst. Planst du einen RTL Stick -> Bos Mon Einsatz unter Linux? Oder multimon -> BOSMon?

  7. #157
    Registriert seit
    03.03.2015
    Beiträge
    45
    Hallo Smith,

    ich habe auf einem Raspberry Pi einen RTL-Stick mit BOSWatch laufen und will die Eingänge an einen zentralen BosMon-Server weiterreichen.

    Beide Seiten laufen, jetzt schraube ich gerade an der Übergabe...
    Aufgrund meiner nicht vorhandenen python-Kenntnisse kann das etwas dauern ;)

    BosMon erwartet folgenden Aufruf:
    Code:
    http://SERVER:PORT/telegramin/KANALNAME/input.xml?type=pocsag&address=1234567&flags=0&function=a&message=HelloWorld
    Grüße
    Jens

  8. #158
    Registriert seit
    18.03.2015
    Beiträge
    67
    Zitat Zitat von Smith Beitrag anzeigen
    ... ohne Schrolli jetzt zu nahe treten zu wollen :-)
    Awoh, da steh ich drüber :-D Freut mich aber, das du hier mitwirkst :-)

    Zitat Zitat von JHC Beitrag anzeigen
    BosMon erwartet folgenden Aufruf:
    Code:
    http://SERVER:PORT/telegramin/KANALNAME/input.xml?type=pocsag&address=1234567&flags=0&function=a&message=HelloWorld
    Schau ich mir bei Gelegenheit an.
    In der config kann man inzwischen (DEV-branch) für den HTTP request für jede Funktion (FMS,ZVEI,POC) eine eigene URL angeben. Da muss man eigentlich nur noch Platzhalter definieren, und diese Parsen. Sollte keine große Sache werden...

    Gruß

  9. #159
    Registriert seit
    03.03.2015
    Beiträge
    45
    Hallo Basti,

    ich habe mal quick and dirty einen "useBosMon"-Zweig gebaut:

    Code:
    if useBosMon: #only if BosMon is active
       log("POC512 to BosMon")   
          try:
             #BosMon-Schnittstelle erwartet als RIC-Sub/Funktion a-d
             bosmon_poc_sub = poc_sub.replace("1", "a").replace("2", "b").replace("3", "c").replace("4", "d")
             params = urllib.urlencode({'type':'pocsag', 'address':poc_id, 'flags':'0', 'function':bosmon_poc_sub, 'message':poc_text})
             headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
             httprequest = httplib.HTTPConnection(bosmon_server, bosmon_port)
             # ToDo: "pocsag" durch bosmon_kanal ersetzen
             httprequest.request("POST", "/telegramin/pocsag/input.xml", params, headers)
             httpresponse = httprequest.getresponse()
             if str(httpresponse.status) == "200": #Check HTTP Response an print a Log or Error
                log("BosMon response: "+str(httpresponse.status)+" - "+str(httpresponse.reason))
             else:
                log("BosMon response: "+str(httpresponse.status)+" - "+str(httpresponse.reason),"error")
          except:
             log("POCSAG512 to BosMon failed","error")
    Aktuell verzweifel ich gerade am Thema User/Passwort für den Aufruf...

    Grüße
    Jens

  10. #160
    Registriert seit
    02.01.2002
    Beiträge
    105
    Da kann ich helfen.

    Im Anhang ein Auszug aus meinem Icast2 Meata-Update:

    Code:
    # Icecast Meta-Update
    import urllib2
    
    icecastrun = process_num("icecast2")
    ezstreamrun = process_num("ezstream")
    
    if int(icecastrun) > 0 and int(ezstreamrun) > 0:
        
        print "Icecast und ezstream laufen"
        
        metadata = str(datum) + " " + str(zeit) + " [" + str(schleife) + "] " + str(org) + " " + str(ort) + " " + str(bez)
    
        metadata = metadata.replace(" ","+") #add "+" instead of " " for icecast2
        url = "http://" + str(icecast_server) + ":" + str(icecast_port) + "/admin/metadata?mount=/" + str(icecast_mountpoint) + "&mode=updinfo&charset=UTF-8&song=" + str(metadata)
    
        # simple wrapper function to encode the username & pass
        def encodeUserData(user, password):
            return "Basic " + (user + ":" + password).encode("base64").rstrip()
    
        # create the request object and set some headers
        req = urllib2.Request(url)
        req.add_header('Accept', 'application/json')
        req.add_header("Content-type", "application/x-www-form-urlencoded")
        req.add_header('Authorization', encodeUserData(icecast_user, icecast_password))
        # make the request and print the results
        res = urllib2.urlopen(req)
        print res.read()
        
    else:
        print "Icecast oder/und ezstream laufen nicht"
    Gruß

    Marcel

  11. #161
    Registriert seit
    01.10.2011
    Beiträge
    94
    Edit... :)
    Vergesst es.. das war ein anderes Programm.

    Okay, dann muss neben User und Passwort in die Config auch noch der Kanalname sowie die IP/URL des Server.

    ich baue das dann morgen im Dienst um.

    Dann setzte ich auch direkt die firEmergency-Erweiterung ins Dev-Branch ein.

    Nächster Schritt ist die Installation von VPN-Komponenten... Das ist gerade im Mulltiserver-Bereich einn Muss! Ich habe hier zwar eines laufen, aber die meisten werden wohl Probleme damit haben...
    Geändert von Smith (16.05.2015 um 23:48 Uhr)

  12. #162
    Registriert seit
    03.03.2015
    Beiträge
    45
    Moin, moin,

    so, bei mir läuft jetzt alles wie gewünscht.

    Hier meine Code-Änderungen:

    1.) config.ini
    Code:
    [Module]
    useMySQL = 1
    #useAudiorecord = 0
    useHTTPrequest = 0
    useBosMon = 1
    Code:
    [BosMon]
    #Server without http://, as IP oder DNS-Name
    bosmon_server = 192.168.0.1
    bosmon_port = 80
    bosmon_user = user
    bosmon_password = password
    #Channel of type "Web Telegramme"
    bosmon_kanal = kanal
    2.) boswatch.py
    Code:
    import urllib #for the HTTP request and BosMon with parameters
    import base64 #for the HTTP request and BosMon with User/Password
    Code:
    #BosMon config
    useBosMon = int(config.get("Module", "useBosMon")) #use BosMon support?
    if useBosMon: #only if BosMon is active
    	bosmon_server = config.get("BosMon", "bosmon_server")
    	bosmon_port = config.get("BosMon", "bosmon_port")
    	bosmon_user = config.get("BosMon", "bosmon_user")
    	bosmon_password = config.get("BosMon", "bosmon_password")
    	bosmon_kanal = config.get("BosMon", "bosmon_kanal")
    Code:
    if useBosMon: #only if BosMon is active
    	log("POC512 to BosMon")   
    	try:
    		#BosMon-Telegramin expected "a-d" as RIC-sub/function
    		bosmon_poc_sub = poc_sub.replace("1", "a").replace("2", "b").replace("3", "c").replace("4", "d")
    		params = urllib.urlencode({'type':'pocsag', 'address':poc_id, 'flags':'0', 'function':bosmon_poc_sub, 'message':poc_text})
    		headers = {}
    		headers['Content-type'] = "application/x-www-form-urlencoded"
    		headers['Accept'] = "text/plain"
    		if bosmon_user:
    			headers['Authorization'] = "Basic {0}".format(base64.b64encode("{0}:{1}".format(bosmon_user, bosmon_password)))
    		httprequest = httplib.HTTPConnection(bosmon_server, bosmon_port)
    		httprequest.request("POST", "/telegramin/"+bosmon_kanal+"/input.xml", params, headers)
    		httpresponse = httprequest.getresponse()
    		if str(httpresponse.status) == "200": #Check HTTP Response an print a Log or Error
    			log("BosMon response: "+str(httpresponse.status)+" - "+str(httpresponse.reason))
    		else:
    			log("BosMon response: "+str(httpresponse.status)+" - "+str(httpresponse.reason),"error")
    	except:
    		log("POCSAG512 to BosMon failed","error")
    BosMon erwartet kein XML, es reicht ein einfacher Get/Post-Aufruf.
    Die Parametrisierung ist aber schon speziell (z.B. Funktion a-d)
    Was in der BosMon-Schnittstelle "Flags" bedeutet, entzieht sich meiner Kenntnis, bezieht sich evtl. auf andere Protokolle, ich habe nur POCSAG berücksichtigt.

    Viel Spaß beim Einbauen ;)

    Grüße
    Jens

  13. #163
    Registriert seit
    01.10.2011
    Beiträge
    94
    Sieht gut aus.
    Ich baue es morgen in den POCSAG512 und POCSAG1200 Bereich ein.
    kannst du dann morgen abend den dev-branch von boswatch nochmal testen?
    Ich schmeiß, wie bereits geschrieben, dann auch direkt firEmergency mit rein. Das läuft auch wie geplant.

    Zum filtern:
    Wie schrolli bereits geschrieben hat, es wird echt schwer das ganze direkt im Script zu filtern. Im Moment habe ich sogar das "Problem" wenn mehrere RICs unserer Einheit alarmiert werden, dann bringt die filterung nichts da RIC A und RIC B im Wechsel kommen, ergo überschreiben die Variabeln sich dann und es wird nicht gefiltert.
    Und der Range-Check ist auch nicht ganz dabei. Steht für morgen auf der ToDo...

  14. #164
    Registriert seit
    03.03.2015
    Beiträge
    45
    Moin, moin,

    Zitat Zitat von Smith Beitrag anzeigen
    Sieht gut aus.
    Ich baue es morgen in den POCSAG512 und POCSAG1200 Bereich ein.
    kannst du dann morgen abend den dev-branch von boswatch nochmal testen?
    Die BosMon-Schnittstelle ist generell und übergreifend für alle Dienste (FMS, ZVEI, POCSAG) identisch, so dass die BosMon-Konfiguration in BOSWatch global eingebaut werden kann.
    Unterschiedlich sind halt nur die Werte, die man übergeben kann/muss.

    Zitat Zitat von Smith Beitrag anzeigen
    Zum filtern:
    Wie schrolli bereits geschrieben hat, es wird echt schwer das ganze direkt im Script zu filtern. Im Moment habe ich sogar das "Problem" wenn mehrere RICs unserer Einheit alarmiert werden, dann bringt die filterung nichts da RIC A und RIC B im Wechsel kommen, ergo überschreiben die Variabeln sich dann und es wird nicht gefiltert.
    Und der Range-Check ist auch nicht ganz dabei. Steht für morgen auf der ToDo...
    Ich lasse BosMon weiterhin den Duplikats-Check machen. Dort sind alle Informationen in der DB vorhanden sind.

    Evtl. lasse ich den DAG/DAU-Test in BOSWatch filtern. Andererseits wäre ein "Alarmskript" interessant. Wenn keine Test-Alarme mehr ankommen, läuft etwas falsch.

    Grüße
    Jens
    Geändert von JHC (17.05.2015 um 01:34 Uhr)

  15. #165
    Registriert seit
    03.03.2015
    Beiträge
    45
    Moin, moin,

    leider sind meine Linux-Kenntnisse nicht so gut, wie meine Programmiererfahrungen, daher hätte ich da noch eine Frage bzw. ein Feature-Request.

    Wie kann ich BOSWatch automatisch (als Dienst) starten?
    Wird dafür eine "Dienst-Steuer-Datei" in etc/init.d benötigt, die Start/Stop/Restart implementiert?

    Grüße
    Jens

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 4 (Registrierte Benutzer: 0, Gäste: 4)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •