Bridge + Starlink

Hallo zusammen,

ich habe eine Frage zur neuen LTE Bridge 4G.

Mein VAN PI ist aktuell im Starlink-WLAN eingebucht. Starlink läuft bei mir allerdings nur bei Bedarf und ist nicht dauerhaft eingeschaltet.

In der Anleitung steht, dass die LTE Bridge die WLAN-Zugangsdaten des VAN PI Systems benötigt und standardmäßig die Systemadresse 192.168.4.1 (Access-Point-Modus) verwendet.

Daher meine Frage:

Kann die LTE Bridge mit einem VAN PI kommunizieren, der im Starlink-WLAN eingebucht ist?

Oder muss das VAN PI dauerhaft im Access-Point-Modus laufen, damit die Bridge eine Verbindung herstellen kann?

Falls nicht: Wäre es möglich, einen zweiten WLAN-Adapter zu verwenden, sodass das VAN PI gleichzeitig im Starlink-WLAN eingebucht ist und zusätzlich ein eigenes WLAN für die Bridge bereitstellt?

Vielen Dank!

Moin,
sowas hab ich am laufen.
Raspberry macht den AP auf, sprich wlan0. Damit ist dann Shunt, Bridge und co verbunden.
Funktioniert ohne was umzubauen.
Und über USB ist ein Wlanstick drin, der immer nach bekannten Wlan sucht und sich damit verbinden (Wlan1).
Hierfür hab ich mir ein Userflow angelegt, das ich damit Wlan Scans machen kann und dort die Verbindung aufbauen kann.
Am Besten einen Stick nehmen der von Linux so erkannt wird.

Flow:

[{“id”: “978137a386d59cad”,“type”: “group”,“z”: “8d15568261a06ad4”,“name”: “WLAN1”,“style”: {“label”: true},“nodes”: [“dda7c2d3183546f0”,“159aad9d7e0b7cc8”,“33bb4c8f794360aa”,“9b5d9f23772b1853”,“519ed9c703ec16f3”,“88521c36afd594a0”,“97fdbd81b3f13b53”,“e05f7a04a224ef64”,“d7dfdc4b98bf97fa”,“94fa60082f475222”,“a3263e477f629338”,“34c125c24e614a7f”,“1aca3f565ce0ea0d”,“789515661c619adb”,“5b45e0bffbd8b0d1”,“f229332d678c3495”,“84f8579e016b093e”,“c84c8f2cddf67af2”,“65b4ecddec12326a”,“e7f1bad99eaa0ca5”,“014fd8cfb177730c”,“2ca395c0c548a18e”,“84baec108458c452”,“dc03ad6740310460”],“x”: 2534,“y”: 31.5,“w”: 1812,“h”: 317},{“id”: “dda7c2d3183546f0”,“type”: “ui_button”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“group”: “5967b526ec269741”,“order”: 4,“width”: “3”,“height”: “1”,“passthru”: false,“label”: “Reconnect”,“tooltip”: “”,“color”: “”,“bgcolor”: “”,“className”: “”,“icon”: “”,“payload”: “sudo nmcli device connect wlan1”,“payloadType”: “str”,“topic”: “topic”,“topicType”: “msg”,“x”: 2770,“y”: 220,“wires”: [[“94fa60082f475222”]]},{“id”: “159aad9d7e0b7cc8”,“type”: “ui_button”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“group”: “5967b526ec269741”,“order”: 3,“width”: “3”,“height”: “1”,“passthru”: false,“label”: “Network Status”,“tooltip”: “”,“color”: “”,“bgcolor”: “”,“className”: “”,“icon”: “”,“payload”: “nmcli device status”,“payloadType”: “str”,“topic”: “topic”,“topicType”: “msg”,“x”: 2760,“y”: 300,“wires”: [[“789515661c619adb”]]},{“id”: “33bb4c8f794360aa”,“type”: “ui_toast”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“position”: “dialog”,“displayTime”: “3”,“highlight”: “”,“sendall”: false,“outputs”: 1,“ok”: “OK”,“cancel”: “”,“raw”: true,“className”: “”,“topic”: “”,“name”: “show result”,“x”: 3270,“y”: 300,“wires”: []},{“id”: “9b5d9f23772b1853”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “format html”,“func”: “if (msg.payload ==”“) {msg.payload = “No values received”}\nmsg.payload = “”+msg.payload+”“\nreturn msg;”,“outputs”: 1,“timeout”: “”,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: ,“x”: 3090,“y”: 300,“wires”: [[“33bb4c8f794360aa”]]},{“id”: “519ed9c703ec16f3”,“type”: “exec”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“command”: “ip link show wlan1 | grep ‘state’”,“addpay”: “”,“append”: “”,“useSpawn”: “false”,“timer”: “”,“winHide”: false,“oldrc”: false,“name”: “”,“x”: 3010,“y”: 80,“wires”: [[“97fdbd81b3f13b53”],[“97fdbd81b3f13b53”],]},{“id”: “88521c36afd594a0”,“type”: “ui_led”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“order”: 7,“group”: “5967b526ec269741”,“width”: “4”,“height”: “1”,“label”: “Hardware State”,“labelPlacement”: “left”,“labelAlignment”: “left”,“colorForValue”: [{“color”: “#ff0000”,“value”: “nowlan1”,“valueType”: “str”},{“color”: “#ffff00”,“value”: “down”,“valueType”: “str”},{“color”: “#008000”,“value”: “up”,“valueType”: “str”}],“allowColorForValueInMessage”: false,“shape”: “square”,“showGlow”: true,“name”: “Wlan1DownUp”,“x”: 3400,“y”: 80,“wires”: },{“id”: “97fdbd81b3f13b53”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “filter”,“func”: “if (msg.payload.includes(“does not exist”)) {\n    msg.payload = “nowlan1”;\n} else if (msg.payload.includes(“state UP”)) {\n    msg.payload = “up”;\n} else if (msg.payload.includes(“state DOWN”)) {\n    msg.payload = “down”;\n} else {\n    msg.payload = “unknown”;\n}\nreturn msg;\n”,“outputs”: 1,“timeout”: 0,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: ,“x”: 3230,“y”: 80,“wires”: [[“88521c36afd594a0”]]},{“id”: “e05f7a04a224ef64”,“type”: “ui_ui_control”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“events”: “change”,“x”: 2620,“y”: 80,“wires”: [[“d7dfdc4b98bf97fa”]]},{“id”: “d7dfdc4b98bf97fa”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “check tab”,“func”: “if (msg.payload == “change” && msg.name == “Wireless”) {\n    return msg;\n}”,“outputs”: 1,“timeout”: “”,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: ,“x”: 2780,“y”: 80,“wires”: [[“519ed9c703ec16f3”]]},{“id”: “94fa60082f475222”,“type”: “exec”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“command”: “”,“addpay”: “payload”,“append”: “”,“useSpawn”: “false”,“timer”: “”,“winHide”: false,“oldrc”: false,“name”: “”,“x”: 2930,“y”: 160,“wires”: [[“1aca3f565ce0ea0d”],,]},{“id”: “a3263e477f629338”,“type”: “ui_button”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“group”: “5967b526ec269741”,“order”: 5,“width”: “1”,“height”: “1”,“passthru”: false,“label”: “On”,“tooltip”: “Hardware Wlan1 UP(on)”,“color”: “”,“bgcolor”: “”,“className”: “”,“icon”: “”,“payload”: “sudo ip link set wlan1 up”,“payloadType”: “str”,“topic”: “topic”,“topicType”: “msg”,“x”: 2790,“y”: 140,“wires”: [[“94fa60082f475222”]]},{“id”: “34c125c24e614a7f”,“type”: “ui_button”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“group”: “5967b526ec269741”,“order”: 6,“width”: “1”,“height”: “1”,“passthru”: false,“label”: “Off”,“tooltip”: “Hardware Wlan1 Down(off)”,“color”: “”,“bgcolor”: “”,“className”: “”,“icon”: “”,“payload”: “sudo ip link set wlan1 down”,“payloadType”: “str”,“topic”: “topic”,“topicType”: “msg”,“x”: 2790,“y”: 180,“wires”: [[“94fa60082f475222”]]},{“id”: “1aca3f565ce0ea0d”,“type”: “delay”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“pauseType”: “delay”,“timeout”: “7”,“timeoutUnits”: “seconds”,“rate”: “1”,“nbRateUnits”: “1”,“rateUnits”: “second”,“randomFirst”: “1”,“randomLast”: “5”,“randomUnits”: “seconds”,“drop”: false,“allowrate”: false,“outputs”: 1,“x”: 3160,“y”: 160,“wires”: [[“519ed9c703ec16f3”]]},{“id”: “789515661c619adb”,“type”: “exec”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“command”: “”,“addpay”: “payload”,“append”: “”,“useSpawn”: “false”,“timer”: “”,“winHide”: false,“oldrc”: false,“name”: “”,“x”: 2930,“y”: 300,“wires”: [[“9b5d9f23772b1853”,“f229332d678c3495”],,]},{“id”: “5b45e0bffbd8b0d1”,“type”: “ui_button”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“group”: “5967b526ec269741”,“order”: 1,“width”: “3”,“height”: “1”,“passthru”: false,“label”: “Scan Wifi 1”,“tooltip”: “”,“color”: “”,“bgcolor”: “”,“className”: “”,“icon”: “”,“payload”: “sudo nmcli device wifi rescan ifname wlan1 && sudo nmcli device wifi list ifname wlan1”,“payloadType”: “str”,“topic”: “topic”,“topicType”: “msg”,“x”: 2770,“y”: 260,“wires”: [[“789515661c619adb”]]},{“id”: “f229332d678c3495”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “filter SSID”,“func”: “// Prüfen, ob es sich um eine WLAN-Scan-Ausgabe handelt\nif (msg.payload.includes(“BSSID”) && msg.payload.includes(“SSID”)) {\n    let lines = msg.payload.split(‘\n’);\n    let ssids = ;\n\n    for (let i = 1; i < lines.length; i++) {\n        let line = lines[i].trim();\n        if (line === “”) continue;\n\n        // SSID extrahieren mit RegEx\n        let parts = line.match(/(?:\?\s+)?([0-9A-F:]{17})\s+(.+?)\s{2,}/);\n        if (parts && parts[2]) {\n            let ssid = parts[2].trim();\n            if (ssid && !ssids.includes(ssid)) {\n                ssids.push(ssid);\n            }\n        }\n    }\n\n    msg.options = ssids;\n    return msg;\n}\n\n// Alles andere: ignorieren oder durchreichen (z. B. return null;)\nreturn null;\n",“outputs”: 1,“timeout”: 0,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: [],“x”: 3080,“y”: 260,“wires”: [[“84f8579e016b093e”]]},{“id”: “84f8579e016b093e”,“type”: “ui_dropdown”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“label”: “”,“tooltip”: “”,“place”: “Wifi ID”,“group”: “5967b526ec269741”,“order”: 2,“width”: “3”,“height”: “1”,“passthru”: true,“multiple”: false,“options”: [{“label”: “”,“value”: “”,“type”: “str”}],“payload”: “”,“topic”: “topic”,“topicType”: “msg”,“className”: “”,“x”: 3240,“y”: 260,“wires”: [[“c84c8f2cddf67af2”]]},{“id”: “c84c8f2cddf67af2”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “pop up”,“func”: “flow.set(“newWifiSSID”, msg.payload.trim());\nmsg.payload = “Connecting to '” + flow.get(“newWifiSSID”) + “'. Please enter the password below.”\nreturn msg;”,“outputs”: 1,“timeout”: “”,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: [],“x”: 3390,“y”: 260,“wires”: [[“65b4ecddec12326a”]]},{“id”: “65b4ecddec12326a”,“type”: “ui_toast”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“position”: “prompt”,“displayTime”: “7”,“highlight”: “”,“sendall”: false,“outputs”: 1,“ok”: “Ok!”,“cancel”: “Cancel”,“raw”: false,“className”: “”,“topic”: “”,“name”: “show pop up”,“x”: 3550,“y”: 260,“wires”: [[“e7f1bad99eaa0ca5”]]},{“id”: “e7f1bad99eaa0ca5”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “pop up”,“func”: "var psk = msg.payload\nvar wifi = flow.get(“newWifiSSID”);\nflow.set(“newPSK”, psk)\n\nif (msg.payload != “Cancel” && msg.payload != “”) {\n    msg.payload = “sudo nmcli device up wlan1 && sudo nmcli device wifi connect \'” + wifi + “\’ password \'” + psk + “\’ “\n    return msg\n}\n\nif (msg.payload == “Cancel”) {\n    return null\n}”,“outputs”: 1,“timeout”: “”,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: [],“x”: 3710,“y”: 260,“wires”: [[“014fd8cfb177730c”,“2ca395c0c548a18e”]]},{“id”: “014fd8cfb177730c”,“type”: “exec”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“command”: “”,“addpay”: “payload”,“append”: “”,“useSpawn”: “false”,“timer”: “”,“winHide”: false,“oldrc”: false,“name”: “”,“x”: 4270,“y”: 260,“wires”: [[],[],[]]},{“id”: “2ca395c0c548a18e”,“type”: “delay”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “”,“pauseType”: “delay”,“timeout”: “7”,“timeoutUnits”: “seconds”,“rate”: “1”,“nbRateUnits”: “1”,“rateUnits”: “second”,“randomFirst”: “1”,“randomLast”: “5”,“randomUnits”: “seconds”,“drop”: false,“allowrate”: false,“outputs”: 1,“x”: 3460,“y”: 300,“wires”: [[“84baec108458c452”]]},{“id”: “84baec108458c452”,“type”: “exec”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“command”: “ls -t /etc/NetworkManager/system-connections | head -n1”,“addpay”: “”,“append”: “”,“useSpawn”: “false”,“timer”: “”,“winHide”: false,“oldrc”: false,“name”: “”,“x”: 3790,“y”: 300,“wires”: [[“dc03ad6740310460”],[],[]]},{“id”: “dc03ad6740310460”,“type”: “function”,“z”: “8d15568261a06ad4”,“g”: “978137a386d59cad”,“name”: “name+wifi1”,“func”: “let oldName = msg.payload.trim();\n\n// Prüfen, ob bereits “_WIFI1” im Dateinamen enthalten ist\nif (oldName.includes(”_WIFI1”)) {\n    // Keine Änderung notwendig – abbrechen\n    return null;\n}\n\n// Neue Datei: “_WIFI1” vor Dateiendung einfügen\nlet newName = oldName.replace(/(.)(\.nmconnection|\.conf)$/i, ‘$1_WIFI1$2’);\n\n// Shell-Befehl zum Umbenennen\nmsg.payload = sudo mv \"/etc/NetworkManager/system-connections/${oldName}\" \"/etc/NetworkManager/system-connections/${newName}\";\n\nreturn msg;\n”,“outputs”: 1,“timeout”: 0,“noerr”: 0,“initialize”: “”,“finalize”: “”,“libs”: ,“x”: 4110,“y”: 300,“wires”: [[“014fd8cfb177730c”]]},{“id”: “5967b526ec269741”,“type”: “ui_group”,“name”: “Wifi-1”,“tab”: “6d1ed7818715dcbd”,“order”: 2,“disp”: true,“width”: 6,“collapse”: true,“className”: “”},{“id”: “6d1ed7818715dcbd”,“type”: “ui_tab”,“name”: “Wireless”,“icon”: “dashboard”,“order”: 13,“disabled”: false,“hidden”: true}]

Man kann sich den Verbindungsstatus anzeigen lassen, den Stick ein und ausschalten und nach WLAN suchen.
Einen zwangs Reconnect starten, falls einen der automatische Reconnect zu lange dauert. Und es wird angezeigt ob WLAN1 erkannt wird.
Rot = Keine Hardware
Gelb = Hardware vorhanden, aber Ausgeschaltet
Grün = Aktiv

Gruß Wulle

PS. WLAN0 bekannt wlans werden nicht von WLAN1 angefasst. Sprich man muss einen Extra Scan machen und das wlan hinzufügen mit dem man sich verbinden will.

Danke schau mir deine Lösung an

Ich werde auch mit einem USB esim dongle

Machen und wenn ich mehr brauche schalte ich Starlink an :slight_smile: