Posts by mmueller-87

    Liebe Forengemeinde,

    ich benötige mal eure Unterstützung. In meiner Funkleidenschaft habe ich eine Hürde zu überwinden. Als frisch- gebackener Funkamateur stehe ich zwecks einer Funkanwendung vor ein kleines Problem. Für eine Funkverbindung benötige ich bei der Übertragung ein Tone Squelch der in der Audioleitung meines Mikrofon permanent ein geschliffen werden muss. Nun war meine Überlegung ein Raspberry Pico Projekt zu starten, das mit Mithilfe eines Potis mir die gewünschte Frequenz in einem OLED Display anzeigt und mir über einen Buzzer (Audiosignal) wieder ausgibt.

    Ich habe über eine Simulation schon mal einiges Probiert und komme nun im gesamten nicht weiter. Kann mir einer ein weiteren Ansatz geben ?

    WokWi: https://wokwi.com/projects/359558101922696193

    Vielen dank für eure Unterstützung.

    Ich habe eine Frage zu einem USB 4G Modem. Es handelt sich um das ZTE MF79U. Dort sind 2 Antennebuchsen an der Seite vorhanden. Ich würde bei diesem Modem gerne die 4G Antenne anschrauben. Allerdings erschließt mir nicht an welcher Buchse die 4G Antenne angeschlossen wird. Im Netz findet man fast gar nichts darüber. hat jemand eine idee bzw. wenn dann, welche Antenne da am besten geeignet wäre?

    Und weshalb werden zwei Raspberrys benötigt ? :conf:

    Es sind sogar 3 Raspberrys verbaut. Der eine ist als NOAA und der andere als Meteor Empfänger. Der 3. Raspberry stellt eine Funkverbindung zu einem Gateway über das 70cm Band her. Allerdings komme ich bei dem autossh nicht weiter. Denn ich habe in der known_hosts den Fingerprint gespeichert und dennoch verlängt er beim verbinden ein Passwort, was für autossh nicht ganz so toll ist. Jemand eine idee woran das liegen kann?

    Welches Betriebssystem hat dieser andere Server? Kannst Du evtl. von deinen PIs. eine WireGuard-VPN-Verbindung zu diesem anderen Server, herstellen?

    Der andere Server den ich als "Gateway" nutze, ist ein vServer mit Ubuntu 23.04. Kann aber auch einen Raspberry Pi 3 A+ nehmen den ich hier noch liegen habe, denn meine Internetleitung zuhause ist eine 1.5GBits mit fester IPv4 Adresse.

    Liebe Forengemeine,


    kurz vorab, möchte ich mein Projekt vorstellen, damit jeder weiß worum es sich handelt. Ich betreibe seit 18.12.2023 erfolgreich eine Wetterstation im Garten. Im Garten habe ich leider kein festes Internet bzw. Internetanschluss wie man es von zu hause aus kennt. Daher habe ich mir einen ZTE 4G / LTE USB Modem mit einer Datenflatrate (Unlimeted) gekauft. Funktioniert auch wunderbar. Nun weiß man, das es bei den normalen Tarifen leider keine NAT Freigaben gibt. Daher muss ich auf Reverse Tunnel zurückgreifen, was an sich kein Problem ist und auch wunderbar funktioniert.

    Ich habe im Garten einen Schaltkasten (60x40x40cm) mit sehr guter Kühlung zu stehen. In diesem Schaltkasten sind 3x Raspberry Pi 4 (4GB) verbaut. Jeder Raspberry Pi 4 hat eine gewisse Aufgabe, die auch promt erledigt werden und wunderbar funktionieren.

    Folgende Aufgaben werden erledigt:

    - Raspberry Pi 4 (Raspbian OS 32 Bit Desktop) #1:

    • Dort läuft das Programm WXtoImg im 32Bit Modus, das Wettersatelliten mithilfe eines APT06 (Wraase Elec.) empfängt, verarbeitet und auf einem anderen Server speichert.
    • Als Desktop- Remotesoftware kommt RealVNC und als Backup TeamViewer zum Einsatz

    - Raspberry Pi 4 (Raspbian OS 32Bit ohne Desktop) #2:

    • Dort läuft das Programm OpenwebRX im 32Bit Modus, der mihilfe eines RTL SDR Sticks die Wetterfaxe aus Hamburg über Kurzwelle empfängt, verarbeitet und auf einen anderen Server speichert.
    • Als Remotezugriff starte ich diesen über den Raspberry Pi #1 mithilfe der Konsole und starte dann den Reverse Tunnel mit:
    Code
    sshpass -p '*********' ssh pi@openwebrx.local "sshpass -p '*********' ssh -fNC -R 2202:openwebrx.local:22 USER@DOMAIN.DE && sshpass -p '*********' ssh -fNC -R 8002:openwebrx.local:8073 USER@DOMAIN.DE"

    Das Funktioniert auch wunderbar, bis die Verbindung durch das Modem automatisch irgendwann mal kurzzeitig getrennt wird. Dann muss ich den Befehl erneut starten. Wenn ich noch in der "Hangtime" bin, sagt der Gateway Server das der Port bereits in Benutzung ist. Einige Zeit später kann ich den Befehl erneut starten und bekomme wieder meinen Tunnel.

    - Raspberry Pi 4 (Raspbian OS 32Bit ohne Desktop) #3:

    • Dort läuft ebenfalls das Programm OpenWebRX im 32Bit Modus, der mithilfe eines RTL SDR Sticks die Meteor Satelliten empfängt, verarbeitet und auf einen anderen Server speichert.
    • Wie oben beim Raspberry Pi #2 starte ich einen Reverse Tunnel mit den oben genannten Befehl.

    Nun zu meiner Frage:

    Ich würde gerne beim starten des Raspberry Pi 4 (alle) das diese automatisch prüfen ob der Port bzw. Verbindung zum Tunnel bereits bestehen und falls nicht diese automatisch aufbauen. Ich habe es bereits mit "autossh" versucht, jedoch verlangt er trotz "ssh-keygen" / Signatur immer noch das Passwort vom Remoteserver.

    Kann mir einer sagen, wie ich die Reverse Tunnel für SSH und für Web Ports automatisch beim starten des Raspberry Pi zum Remoteserver herstellen kann, ohne manuel einzugreifen? Ich sehe da langsam nicht mehr durch.

    Vielen Dank!

    Oha, das sind viele Infos. Einige habe ich sogar verstanden, andere widerum nicht. Was mich allerdings wundert, das dein Codeschnipsel nur bedingt funktioniert. Kurze Geschichte dazu, das Programm was die Satellitenbilder aufnimmt speichert die Audiodateien so:

    Code
    01_01_2024_11_55_noaa-18_s_24_305_W_137.9125.wav

    Nun ist es so, das ich gerne den Dateinamen klein haben möchte, das aus "...305_W_137.9125.wav" nun "...305_w_137.9125.mp3" werden soll und dabei die Originaldatei nicht verändert werden soll. Anschließend soll die neue mp3 Datei auf dem Server hochgeladen werden und die erstellte mp3 Datei anschließend gelöscht soll.

    Dein Codeschnipsel erzeugt eine zusätzliche mp3 Datei mittels diesen Namen:

    Code
    01_01_2024_11_55_noaa-18_s_24_305_W_137.9125.mp3.mp3

    Wonach er anschließend die Datei nicht hochladen kann, weil diese nicht gefunden wird. Demnach löscht er die erstellte mp3 Datei nicht.

    Habe gerade mal versucht zu schauen, welcher Teil dafür verantwortlich ist, muss aber gestehen das ich deinen Codeschnipsel etwas verwirrend gegenüber stehe, da die Funktionsnamen für meine Augen zulang sind.

    Nachtrag: Für die doppelte Datei war bei lame das "--nograp" verantwortlich.

    Guten morgen @freq0815 !

    guten Rutsch ins neue Jahr! Vielen dank für dein Denkansatz, genau das habe ich genutzt. Das Script funktioniert nun einwandfrei. ich habe dank deines Denkansatzes nun folgendes hinbekommen (Bin in Python Anfänger):

    Dabei ließt er das Verzeichnis und prüft ob die Audiodateien älter als 60 Minuten sind. Wenn dies zutrifft, konveriert er diese in einer .mp3 Datei (Dateneinsparung, Original wav Datei sind ca. 20MB groß und mp3 ca. 2 MB), läd diese anschließend hoch, löscht dabei die konvertierte mp3 Datei und legt eine leere Datei mit den selben Dateinamen an, die im späteren Durchgang ignoriert werden, damit diese wav Dateien nicht doppelt hochgeladen werden.

    Wenn es an diesem Code einige Optimierungen möglich sind, bitte ich um Korrektur, da ich noch Anfänger bin. Gerne auch Kritik ist erwünscht.

    Liebe Forengemeinde,

    erstmal ein erholsames neues Jahr. Ich bin gerade wieder am basteln. Mein Freund und Funker betreibt nun erfolgreich eine Wetterstation, die täglich Satellitenbilder aus dem Orbit aufnimmt, verarbeitet und auf der Webseite (http://www.astrowetter.de) veröffentlicht. Nun ist es so, das die verwendete Software davon noch Audiodateien anfertigt und diese speichert. Zum Einsatz kommt ein Raspberry Pi 4, 4GB mit Raspbian Buster 10.

    Nun möchten wir, das die Audiodateien mittels FTP Protokoll zum Server hochgeladen werden. Dies machen wir bereits mit "lame" zum konvertieren von .wav zu .mp3 und zum hochladen "ncftpput" und funktioniert auch wunderbar. Nun ist es so, das in diesem Ordner mehere Audiodateien vorhanden sind. Ich würde gerne mittels eines Scriptes das so realisieren, das das Script in den Audioordner schaut und prüft, ob die Audiodatei älter als 30 Minuten ist und diese dann anschließend hochlädt. Damit die Audiodateien nicht doppelt hochgeladen werden, sollte das Script unterscheiden ob diese schon hochgeladen wurde. Evtl. mit einem Lockfile die sagt, das diese schon hochgeladen wurde.

    Da diese Box (Schaltkasten, Raspberry pi 4, LifePo4 Akku und Antenne, LTE Modul) draußen auf einem 110m hohen Berg steht, sollte der Datenverkehr deshalb so niedrig gehalten werden wie möglich. Hat jemand eine Idee wie ich das lösen kann?

    In der Doku wird für "kw" auf Parameter des 'request'-Moduls verwiesen und hier gibt es ein 'timeout'. Dann müsstest du das mit angeben können.

    Grüße

    Dennis

    Vielen dank, genau das habe ich gesucht. Habe es mit "try und except" und dem "timeout=x" hinbekommen. Das war der Denkansatz der mir fehlte. Kannst du mir auch sagen, wie ich einen entfernten "Button" an einem PC betätigen kann? Ich denke mal das funktioniert mit einem RTS/DTR Signal?

    Ok, komplett am Thema vorbei, denn ich habe nicht den kompletten Code hier veröffentlicht, deshalb "#...". Nun gut, es geht mir aber nicht darum ob es unübersichtlich ist, sondern wie ich das Problem mit dem WiFi beheben kann. Wäre nett wenn man dort die Energie stecken würde, anstatt hier alles aufzuzählen?!

    Hallo Dennis, hier mal eine kleine Version vom Code, die einfach Daten sammelt und an einem Server sendet.

    Kurze Vorgeschichte zu diesem Projekt. Ich betreibe eine mobile Wetterstation, die mithilfe eines Mini PC (12V) in einem kleinen Schaltkasten Wettersatellitenbilder aus dem Orbit empfängt. Funktioniert im übrigen super und ohne Probleme. Nun ist es so, das der Mini PC, und der RPi Pico mit einem Mobilen 4G LTE Modem verbunden sind und somit kein WOL (Wake on LAN) möglich ist. Die Wetterstation steht ein paar Kilometer von mir weg, da es hier nur Häuser gibt, die den Empfang erheblich stören.

    Nun steht das ganze mit einer 150 Ah LifePo4 Zelle und einer 120W Solarzelle auf dem Berg völlig Autark. Nun kann es aber vorkommen, das der PC nicht die ganze Nacht an sein muss, da die Satelliten eine vorgegebene Route haben und die Nacht nicht über uns fliegen und da würde der Mini PC bis zu 10 Stunden leer laufen. Deshalb wollte ich über "urequests" von meinem Server aus einen vordefinierten Befehl schicken, da den PC wieder manuell einschaltet.

    Der Mini PC hat einen Standard Button, wie wir ihn vom Raspberry kennen. Diese wollte ich anzapfen und mit dem Pico auslösen. Das Problem ist nun, da ich momentan nicht weiß wie ich das anstellen soll. Zudem kommt erschwerend hinzu, da die Verbindung manchmal abbricht (LTE Modem bricht ein zwecks fehlender Netzabdeckung) und der Pico sich dann aufhängt und nicht erreichbar ist. Deshalb wollte ich das der Pico sich neu verbindet wenn die Verbindung mal nicht da ist.

    Liebe Forengemeinde,

    ich bin noch ein experimentierfreudiger junger Mensch der sich mit dem Raspberry Pico auseinandersetzt. Ich habe ein kleines Projekt am laufen und habe dazu einige Fragen.

    1. Wäre es möglich mit dem Pico einen Schalter an einem anderen Gerät auszulösen? Hintergrund: Das andere Gerät ist ein Mini PC der einen Mechanischen "Button" besitzt. Diesen würde ich gerne auslösen, wenn der Pico den Befehl dazu bekommt.
    2. Ich verwende bei meinen bisherigen Script (Micropython) eine WiFi Verbindung. Diese funktioniert hervorragend, jedoch hängt der Pico sich auf, wenn ich bei der Funktion "urequests" die Webseite nicht erreichbar ist. Soweit mir bekannt, besitzt diese Funktion keinen sogenannten "Timeout". Wie ist es möglich, das bei einem Request der länger als 30 Sekunden dauert, der Pico sich neustartet?

    Das war es schon und hoffe das ich alles richtig formuliert habe. Vielen dank das Ihr euch Zeit nimmt, meinen Beitrag durchzulesen.

    Hallo an alle! Lange nicht mehr aktiv gewesen, aber nun treibt mich die Amateurfunk Geschichte zu euch mit einem kleinen Problem. Derzeit versuche ich mein Funkgerät über ein sogenanntes Gateway laufen bzw. auf Durchgang schalten zu lassen. Funktioniert derzeit mit einem USB Adapter und einem Ubuntu System hervorragend. Allerdings möchte ich die Stromkosten etwas senken und dachte an einem Raspberry.

    RTS und DTR Pins bei einem Pico über Micropython zu schalten wäre nicht das Problem, sondern das ich erst vor kurzem mit dem Pico angefangen habe zu lernen. Aber meine Kenntnisse reichen eben nicht aus.

    Folgendes ist mein Ziel:

    Es soll bei einer am PiZero angeschlossene Soundkarte das Audiosignal abgefangen werden und ein RTS/DTR Pin geschalten werden.

    Wenn ein bei der Wiedergabe festgestelltes Audiosignal anliegt, soll lediglich ein RTS oder DTR Pin geschaltet werden. Am besten ein kleines Konsolenskript.

    Diese beschriebene Version habe ich für Pyton geschrieben. Allerdings funktioniert diese Möglichkeit nur in Verbindung mit etlichen Plugins, die es auf Raspbian kaum gibt. Gäbe es da eine Möglichkeit als kleines Konsolenskript auf einem Raspbian Desktop?

    Momentan nutze ich den Raspberry Pi Zero mit Raspbian Desktop. Etwas langsam, aber für kleinen Anwendungen völlig in Ordnung.

    Hallo,

    Doch - nur fehlen Infos von dir. Der Hauptpunkt: zeig' deine Python-Code. Egal, wie falsch oder nicht funktionierend der sein mag. Weil: ohne gibt es keinen Ansatzpunkt, dir zu helfen.

    Wenn du insgeheim die Erwartungshaltung hast, dass dir einer fertigen Code liefert: das wird nix. Hier ist ja kein "wünsch dir was Forum", sondern es gibt Hilfe zur Selbsthilfe.

    Gruß, noisefloor

    Einen fertigen Code hat niemand verlangt, lediglich nach einem Lösungsansatz wie man das am besten umsetzen könnte. Jedenfalls findet man hier genug Zeit um sich über solche Dinge aufzuregen.

    Wir belassen es einfach dabei, das solche Diskussionen hier keinen Sinn haben.

    Also wenn du Ahnung von Php hast, müsst Python kein Problem sein.

    Aber Ansprüche stellen :)

    Die Ähnlichkeit zwischen PHP und Python ist echt verblüffend #schmunzel

    Verstehe jetzt auch nicht wirklich, was das mit "Ansprüche" zutun hat #grummel Das hier ist doch ein Forum indem Fragen gestellt werden können, die einem bei einem Problem helfen... Oder habe ich den Sinn eines Forums nicht verstanden?

    Aber, dennoch danke an alle, die Konstruktive Beiträge lieferten.

    Hallo mmueller-87,

    willkommen im Forum! ;)

    Ein Blick in die Doku sollte helfen: https://docs.python.org/3/library/json.html

    Das man hier "Alteingesessene" Forumbenutzer findet, die auch mal in der Situation waren und von "nichts" eine Ahnung hatten, dabei hofften nicht solche "schlauen und Fachgerechten" Antworten zu bekommen, hat es dennoch ein Vorteil: "Ich habe einiges in Python dazu gelernt und das Problem somit gelöst. Danke, wenn ich wieder eine Frage habe, hoffe ich "schlaue und Fachgerechte" Antworten die "Links (Klickbare)" enthalten.

    Thema erledigt.