Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Adapter: ioBroker.unifi

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    12
    1
    133

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

Adapter: ioBroker.unifi

Scheduled Pinned Locked Moved ioBroker Allgemein
unifi
1.0k Posts 172 Posters 417.6k Views 93 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dslraserD dslraser

    @thewhobox
    @liv-in-sky

    ich habe noch eine Frage, für Euch wahrscheinlich simpel. Wie bekomme ich jetzt den Status des WLAN aus dem Log in einen eigenen Datenpunkt ?
    Ich habe mir drei Datenpunkte in das Script eingebaut. Schalten funktioniert.:+1:
    Aber wie mache ich das mit dem Status aus dem Log

    on({id:'javascript.0.Eigene_Datenpunkte.25Unifi_Wifi.02wifi_an'/*Unifi Wifi an*/, val: true, change: 'any'}, wifi_an);
    on({id:'javascript.0.Eigene_Datenpunkte.25Unifi_Wifi.03wifi_aus'/*Unifi Wifi aus*/, val: true, change: 'any'}, wifi_aus);
    //Datenpunkt für Wifi Status erstellen
    createState("Eigene_Datenpunkte.25Unifi_Wifi.01wifi_Status",'nicht bekannt', {
        name: 'Unifi Wifi Status', 
        role: 'string',
        read:  true, 
        write: true,
    });
    
    //Datenpunkt Button für Wifi an erstellen
    createState("Eigene_Datenpunkte.25Unifi_Wifi.02wifi_an", {
        name: 'Unifi Wifi an', 
        role: 'button',
        read:  true, 
        write: true,
        type: "boolean",
        "smartName": {
        "de": "02Gäste Wlan an",
        "smartType": "SWITCH"
    }
    });
    
    //Datenpunkt Button für Wifi aus erstellen
    createState("Eigene_Datenpunkte.25Unifi_Wifi.03wifi_aus", {
        name: 'Unifi Wifi aus', 
        role: 'button',
        read:  true, 
        write: true,
        type: "boolean",
        "smartName": {
        "de": "03Gäste Wlan aus",
        "smartType": "SWITCH"
    }
    });
    
    const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
    const unifi_username = "xxx";
    const unifi_password = "xxx";
    const unifi_controller = "https://192.168.xxx.xxx:xxx";
    const wifi_id = "xxxxxxxxxxxx";
    let cookies = [];
    let loggedIn = false;
    let debug = true;
     
    function dlog(message) {
       if(debug)
           console.log(message);
    }
     
    async function login() {
       return new Promise(async (resolve, reject) => {
           let resp = await request.post({
               resolveWithFullResponse: true,
               url: unifi_controller + "/api/login",
               body: JSON.stringify({ username: unifi_username, password: unifi_password }),
               headers: { 'Content-Type': 'application/json' }
           }).catch((e) => { dlog("login: reject"), reject(e) });
           
           if(resp != null) {
               dlog("login: login war erfolgreich! " + ((resp.headers && resp.headers.hasOwnProperty("set-cookie")) ? "Mit Cookies":"Ohne Cookies"));
               if(resp.headers && resp.headers.hasOwnProperty("set-cookie")) {
                   let set_cookies = resp.headers["set-cookie"];
                   for(i = 0; i < set_cookies.length; i++) {
                       let cookie = set_cookies[i];
                       cookie = cookie.split(";")[0];
                       cookies.push(cookie);
                   }
               } else {
                   dlog("login: no cookies to set!")
               }
               loggedIn = true;
               resolve();
           } else {
               dlog("login: rejected")
               reject("resp = null");
           }
       });
    }
     
    async function getStatus() {
        return new Promise(async (resolve, reject) => {
            dlog("nur mal so");
            if(!loggedIn) await login().catch((e) => reject(e));
            let resp = await request.get({
                url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                headers: { Cookie: cookies.join("; ") }
            }).catch((e) => { dlog("getStatus reject " + e); reject(e) });
        
            dlog("got response " + JSON.stringify(resp));
            dlog(typeof resp);
            resp = JSON.parse(resp);
            dlog(resp.meta);
            dlog(resp.meta.rc);
            
            let wlanOn = resp.data[0].enabled;
            dlog("WLAN ist: " + (wlanOn ? "an" : "aus"));
            if(resp != null && resp.meta && resp.meta.rc == "ok") {
                dlog("Status erfolgreich geholt!");
                dlog(resp);
                let wlanOn = resp.data[0].enabled;
                dlog("WLAN ist: " + (wlanOn ? "an" : "aus"));
                resolve(wlanOn);
            } else {
                dlog("nicht ok...")
                
                reject(JSON.stringify(resp));
            }
        });
    }
    
    async function setWifi(enabled) {
       return new Promise(async (resolve, reject) => {
           dlog("setWifi: start set wifi");
           if(!loggedIn) { dlog("need to login"); await login().catch((e) => reject(e)); }
           dlog("setWifi: now setting wifi");
           let resp = request.post({
               url: unifi_controller + "/api/s/default/upd/wlanconf/" + wifi_id,
               body: JSON.stringify({ enabled }),
               headers: { 'Content-Type': 'application/json', Cookie: cookies.join("; ") }
           }).catch((e) => { dlog("setWifi: rejected: " + e); reject(e) });
           dlog("setWifi: got response")
           if(resp != null) {
               dlog("setWifi: Wifi wurde erfolgreich " + (enabled ? "eingeschaltet" : "ausgeschaltet"));
               dlog(resp);
               resolve();
           } else {
               dlog("setWifi: rejetced")
               dlog("resp: " + JSON.stringify(resp));
               reject("msg: " + JSON.parse(resp.body).meta.msg);
           }
       });
    }
     
    async function wifi_an() {
        dlog("starting wifi_an");
        await setWifi(true).catch((e) => dlog("reject1: " + e));
        dlog("getting status");
        let wlan = await getStatus().catch((e) => dlog("reject2: " + e));
        console.log("fin")
        console.log(wlan);
    }
    async function wifi_aus() {
        dlog("starting wifi_aus");
        await setWifi(false).catch((e) => dlog("reject1: " + e));
        dlog("getting status");
        let wlan = await getStatus().catch((e) => dlog("reject2: " + e));
        console.log("fin")
        console.log(wlan);
    }
     
    //wifi_an();
    //wifi_aus();
    getStatus();
    

    Hier die Datenpunkte, die Zahlen sind nur drinn, damit es zu meiner "Struktur" passt.

    Bildschirmfoto 2019-08-28 um 12.17.22.png

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    wrote on last edited by
    #423

    @dslraser
    mensch seit ihr schnell - wollte gerade beginnen ein eigenes script zu machen - werd wohl das von dir klauen :-)

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    1 Reply Last reply
    1
    • dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      wrote on last edited by
      #424

      falls Jemand Interesse an dem Script hat, hier geht es damit weiter.

      https://forum.iobroker.net/topic/24737/unifi-wlan-script

      1 Reply Last reply
      0
      • A Offline
        A Offline
        aikonflo
        wrote on last edited by
        #425

        Hallo,
        wie habt ihr das gemacht das der Adapter bei euch läuft ?
        Oder liegt das wirklich nur am USG und das habt Ihr nicht ?

        mfg Flo

        1 Reply Last reply
        0
        • I Offline
          I Offline
          ikkerus
          wrote on last edited by
          #426

          Moin zusammen,

          Danke für dieses Tolle Projekt, diesen Adapter zu entwickeln. Bin gerade dabei, mir meinen ersten iobroker aufzusetzen und erstmal die Adapter zu verbinden. Beim UniFi Adapter scheitere ich damit.

          Leider erhalte trotz Eingabe der korrekten Zugangsdaten eine Fehlermeldung:

          unifi.0	2019-10-10 11:18:45.806	info	ERROR: api.err.Invalid
          unifi.0	2019-10-10 11:18:44.062	info	controller = 10.7.1.25:8443
          unifi.0	2019-10-10 11:18:44.062	info	update_interval = 60
          unifi.0	2019-10-10 11:18:44.061	info	Starting UniFi-Controller query
          unifi.0	2019-10-10 11:18:44.037	info	starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.unifi, node: v10.16.0
          

          CloudKey Gen1 Firmware: 1.1.0
          Controller Software: 5.11.46-12723-1

          Somit werden natürlich die UniFi-Devices nicht erkannt. Hat jemand eine Idee?

          Danke!

          BBTownB SunshinemakerS 2 Replies Last reply
          0
          • I ikkerus

            Moin zusammen,

            Danke für dieses Tolle Projekt, diesen Adapter zu entwickeln. Bin gerade dabei, mir meinen ersten iobroker aufzusetzen und erstmal die Adapter zu verbinden. Beim UniFi Adapter scheitere ich damit.

            Leider erhalte trotz Eingabe der korrekten Zugangsdaten eine Fehlermeldung:

            unifi.0	2019-10-10 11:18:45.806	info	ERROR: api.err.Invalid
            unifi.0	2019-10-10 11:18:44.062	info	controller = 10.7.1.25:8443
            unifi.0	2019-10-10 11:18:44.062	info	update_interval = 60
            unifi.0	2019-10-10 11:18:44.061	info	Starting UniFi-Controller query
            unifi.0	2019-10-10 11:18:44.037	info	starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.unifi, node: v10.16.0
            

            CloudKey Gen1 Firmware: 1.1.0
            Controller Software: 5.11.46-12723-1

            Somit werden natürlich die UniFi-Devices nicht erkannt. Hat jemand eine Idee?

            Danke!

            BBTownB Offline
            BBTownB Offline
            BBTown
            wrote on last edited by BBTown
            #427

            Moin @ikkerus,
            ich habe zwar keine direkte Hilfe für dein Problem, jedoch fand ich immer, dass der Adapter derartig viele Informationen liefert, dass ich diesen für mich als eher hinderlich und weniger nützlich empfand.

            Ich würde dir daher alternativ empfehlen einmal in diesem Thread zur UniFi-Steuerung mitzulesen

            ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

            1 Reply Last reply
            0
            • I Offline
              I Offline
              ikkerus
              wrote on last edited by
              #428

              Moin @BBTown ,

              Danke für deinen Tipp. Ich möchte ja auch nicht alle Informationen auf dem iPad, was ich an die Wand hänge Visualisieren. Mir würde es letztlich reichen, den max. Downstream/Upstream (der von UniFi regelmäßig getestet wird) anzugeben und anzuzeigen, ob ich online oder offline bin.

              Ich habe nach der Image-Installation noch kein Betriebssystem-Update gemacht. Kann es daran liegen?

              BBTownB liv-in-skyL 3 Replies Last reply
              0
              • I ikkerus

                Moin @BBTown ,

                Danke für deinen Tipp. Ich möchte ja auch nicht alle Informationen auf dem iPad, was ich an die Wand hänge Visualisieren. Mir würde es letztlich reichen, den max. Downstream/Upstream (der von UniFi regelmäßig getestet wird) anzugeben und anzuzeigen, ob ich online oder offline bin.

                Ich habe nach der Image-Installation noch kein Betriebssystem-Update gemacht. Kann es daran liegen?

                BBTownB Offline
                BBTownB Offline
                BBTown
                wrote on last edited by BBTown
                #429

                @ikkerus
                Mit dem Adapter würdest Du - je nach Umfang deiner UniFi Umgebung tausende Datenpunkte erhalten .... ob allerdings der Up/downstream dabei war, weiss ich nicht mehr.

                Das System sollte natürlich aktuell sein.
                was spucken denn diese Befehle auf der Konsole aus?

                nodejs -v
                npm -v
                

                node zeigt bei dir in deinem Post zumindest schon mal die aktuell empfohlene Version v10.16.0 an

                ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                1 Reply Last reply
                0
                • I ikkerus

                  Moin @BBTown ,

                  Danke für deinen Tipp. Ich möchte ja auch nicht alle Informationen auf dem iPad, was ich an die Wand hänge Visualisieren. Mir würde es letztlich reichen, den max. Downstream/Upstream (der von UniFi regelmäßig getestet wird) anzugeben und anzuzeigen, ob ich online oder offline bin.

                  Ich habe nach der Image-Installation noch kein Betriebssystem-Update gemacht. Kann es daran liegen?

                  BBTownB Offline
                  BBTownB Offline
                  BBTown
                  wrote on last edited by
                  #430

                  @ikkerus und den "fixer" solltest Du auch einmal drüber laufen lassen

                  curl -sL https://iobroker.net/fix.sh | bash -
                  

                  ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                  1 Reply Last reply
                  0
                  • I ikkerus

                    Moin @BBTown ,

                    Danke für deinen Tipp. Ich möchte ja auch nicht alle Informationen auf dem iPad, was ich an die Wand hänge Visualisieren. Mir würde es letztlich reichen, den max. Downstream/Upstream (der von UniFi regelmäßig getestet wird) anzugeben und anzuzeigen, ob ich online oder offline bin.

                    Ich habe nach der Image-Installation noch kein Betriebssystem-Update gemacht. Kann es daran liegen?

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #431

                    @ikkerus hi
                    abgesehen vom unifi adapter problem:

                    ich mache gerade das unifi script, welches @BBTown vorgeschlagen hat
                    ich habe auch einstellungen im script, bei der so gut wie keine daten geholt werden - aber wenn du mir erklärst - im anderen thread bitte , was du genau brauchst, schaun wir mal was geht

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    1 Reply Last reply
                    0
                    • I Offline
                      I Offline
                      ikkerus
                      wrote on last edited by
                      #432

                      @BBTown

                      Danke. Das mit dem Fix probiere ich auch mal. Bin gerade noch an einer anderen Sache dran.

                      @liv-in-sky
                      Danke und Hi. Das ist eine gute Idee. Für das meiste werde ich eh den UniFi-Controller benutzen. Aber ein paar Schlüsselinformationen zu visualisieren finde ich halt sinnvoll.
                      Ich melde mich mal im anderen Thread.

                      root@raspberrypi:/opt/iobroker# nodejs -v
                      v10.16.0
                      root@raspberrypi:/opt/iobroker# npm -v
                      6.9.0
                      
                      BBTownB 1 Reply Last reply
                      0
                      • I ikkerus

                        @BBTown

                        Danke. Das mit dem Fix probiere ich auch mal. Bin gerade noch an einer anderen Sache dran.

                        @liv-in-sky
                        Danke und Hi. Das ist eine gute Idee. Für das meiste werde ich eh den UniFi-Controller benutzen. Aber ein paar Schlüsselinformationen zu visualisieren finde ich halt sinnvoll.
                        Ich melde mich mal im anderen Thread.

                        root@raspberrypi:/opt/iobroker# nodejs -v
                        v10.16.0
                        root@raspberrypi:/opt/iobroker# npm -v
                        6.9.0
                        
                        BBTownB Offline
                        BBTownB Offline
                        BBTown
                        wrote on last edited by
                        #433

                        @ikkerus sagte in Adapter: ioBroker.unifi:

                        Für das meiste werde ich eh den UniFi-Controller

                        Aber für was denn genau?

                        ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                        1 Reply Last reply
                        0
                        • I Offline
                          I Offline
                          ikkerus
                          wrote on last edited by
                          #434

                          Ich habe das im anderen Thread wie besprochen mal näher beschrieben. Dake!

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            aleks-83
                            wrote on last edited by aleks-83
                            #435

                            Hi,
                            kann man mit dem UniFi Adapter irgendwie die Verbindungsgeschwindigkeit der Clients anzeigen?
                            Also mit wieviel MBit/s der jeweilige Client am Access Point aktuell angebunden ist?
                            Ich habe nur die Qualität in dB gefunden. Oder kann man daraus die MBit/s errechnen?

                            EDIT:
                            Oh, sorry, das ist wohl die TxRate oder?

                            Und wie zeige ich die aktuelle Durchsatzrate des Clienten an? Geht das?

                            = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                            = Node.js v20.19.6 = NPM 10.8.2 = JS Controller 7.0.7 =

                            Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                            Glasfaser 400

                            1 Reply Last reply
                            0
                            • I ikkerus

                              Moin zusammen,

                              Danke für dieses Tolle Projekt, diesen Adapter zu entwickeln. Bin gerade dabei, mir meinen ersten iobroker aufzusetzen und erstmal die Adapter zu verbinden. Beim UniFi Adapter scheitere ich damit.

                              Leider erhalte trotz Eingabe der korrekten Zugangsdaten eine Fehlermeldung:

                              unifi.0	2019-10-10 11:18:45.806	info	ERROR: api.err.Invalid
                              unifi.0	2019-10-10 11:18:44.062	info	controller = 10.7.1.25:8443
                              unifi.0	2019-10-10 11:18:44.062	info	update_interval = 60
                              unifi.0	2019-10-10 11:18:44.061	info	Starting UniFi-Controller query
                              unifi.0	2019-10-10 11:18:44.037	info	starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.unifi, node: v10.16.0
                              

                              CloudKey Gen1 Firmware: 1.1.0
                              Controller Software: 5.11.46-12723-1

                              Somit werden natürlich die UniFi-Devices nicht erkannt. Hat jemand eine Idee?

                              Danke!

                              SunshinemakerS Offline
                              SunshinemakerS Offline
                              Sunshinemaker
                              wrote on last edited by
                              #436

                              @ikkerus @jens-maus

                              Ich häng mich hier mal dran, da ich genau das selbe Problem habe.

                              unifi.0 2019-10-23 18:40:48.704 info ERROR: api.err.Invalid
                              unifi.0 2019-10-23 18:40:46.792 info controller = 192.168.1.103:8443
                              unifi.0 2019-10-23 18:40:46.792 info update_interval = 30
                              unifi.0 2019-10-23 18:40:46.792 info Starting UniFi-Controller query
                              unifi.0 2019-10-23 18:40:46.767 info starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.unifi, node: v8.16.2

                              Iibroker läuft in einer Synology Docker Umgebung. Der Unifi Controller lief vorher auf der selben Synology Disk da gab es keinerlei Probleme. Inzwischen läuft der Unifi Controller auf dem Cloud Key Gen 1
                              Firmware: 1.1.0

                              Unifi Controller : 5.11.50-12745-1

                              Vielleicht hat da ja doch jemand eine Idee.

                              1 Reply Last reply
                              0
                              • cvidalC Offline
                                cvidalC Offline
                                cvidal
                                Forum Testing
                                wrote on last edited by
                                #437

                                Funktioniert der Adapter auch mit dem Cloud Key Gen.2?

                                1 Reply Last reply
                                0
                                • Z zloe

                                  Hi,

                                  ich würde gerne mein failover WAN (LTE Router mit prepaid SIM) nur im Bedarfsfall einschalten (mit einer HomematicIP Schaltsteckdose) und wen das "normale" WAN wieder up ist wieder ausschalten.

                                  Dazu müsste ich den load-balancer status des UniFi USG auslesen können.

                                  Wäre es möglich den Adapter entsprechend zu erweitern?

                                  integer63I Offline
                                  integer63I Offline
                                  integer63
                                  wrote on last edited by
                                  #438

                                  @zloe said in Adapter: ioBroker.unifi:

                                  Hi,

                                  ich würde gerne mein failover WAN (LTE Router mit prepaid SIM) nur im Bedarfsfall einschalten (mit einer HomematicIP Schaltsteckdose) und wen das "normale" WAN wieder up ist wieder ausschalten.

                                  Dazu müsste ich den load-balancer status des UniFi USG auslesen können.

                                  Wäre es möglich den Adapter entsprechend zu erweitern?

                                  Ist zwar schon sehr lange her, aber ich stehe jetzt vor einem ähnlichen Problem und würde auch gerne den Failover Status (bzw. den Load Balance Status) abfragen können. Bist du hier weitergekommen?

                                  Dr. BakteriusD 1 Reply Last reply
                                  0
                                  • integer63I integer63

                                    @zloe said in Adapter: ioBroker.unifi:

                                    Hi,

                                    ich würde gerne mein failover WAN (LTE Router mit prepaid SIM) nur im Bedarfsfall einschalten (mit einer HomematicIP Schaltsteckdose) und wen das "normale" WAN wieder up ist wieder ausschalten.

                                    Dazu müsste ich den load-balancer status des UniFi USG auslesen können.

                                    Wäre es möglich den Adapter entsprechend zu erweitern?

                                    Ist zwar schon sehr lange her, aber ich stehe jetzt vor einem ähnlichen Problem und würde auch gerne den Failover Status (bzw. den Load Balance Status) abfragen können. Bist du hier weitergekommen?

                                    Dr. BakteriusD Online
                                    Dr. BakteriusD Online
                                    Dr. Bakterius
                                    Most Active
                                    wrote on last edited by Dr. Bakterius
                                    #439

                                    @integer63 und @zloe: Ich mache das nicht mit dem Adapter (der mir zu overload ist), sondern mit einem Bash-Script:

                                    #!/bin/bash
                                    
                                    # Interface-Werte vom Unifi USG auslesen
                                     Erg2=$(ssh *USER*@*IP_CONTROLLER* '/opt/vyatta/bin/vyatta-op-cmd-wrapper show load-balance status')
                                    
                                    # WAN1
                                    # Status Schnittstelle
                                     eth0_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                     eth0_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                     if [ "$eth0_Status" == "inactive" ] || [ "$eth0_Carrier" == "down" ];
                                     then
                                        eth0_Status="false"
                                     else
                                        eth0_Status="true"
                                     fi
                                    
                                    # WAN2
                                    # Status Schnittstelle
                                     eth2_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                     eth2_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                     if [ "$eth2_Status" == "inactive" ] || [ "$eth2_Carrier" == "down" ];
                                     then
                                        eth2_Status="false"
                                     else
                                        eth2_Status="true"
                                     fi
                                    
                                    # In Datenpunkte von ioBroker schreiben
                                     Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN1?value=$eth0_Status)
                                     Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN2?value=$eth2_Status)
                                    

                                    Die beiden Datenpunkte WAN1 und WAN2 muss man zuvor anlegen. Auch braucht es die SSH-Zugriffsberechtigung und einen cron-Job der das jede Minute ausführt.

                                    Zum Schalten der Steckdose habe ich dann dieses Blockly:
                                    blockly.jpg

                                    integer63I 3 Replies Last reply
                                    0
                                    • Dr. BakteriusD Dr. Bakterius

                                      @integer63 und @zloe: Ich mache das nicht mit dem Adapter (der mir zu overload ist), sondern mit einem Bash-Script:

                                      #!/bin/bash
                                      
                                      # Interface-Werte vom Unifi USG auslesen
                                       Erg2=$(ssh *USER*@*IP_CONTROLLER* '/opt/vyatta/bin/vyatta-op-cmd-wrapper show load-balance status')
                                      
                                      # WAN1
                                      # Status Schnittstelle
                                       eth0_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                       eth0_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                       if [ "$eth0_Status" == "inactive" ] || [ "$eth0_Carrier" == "down" ];
                                       then
                                          eth0_Status="false"
                                       else
                                          eth0_Status="true"
                                       fi
                                      
                                      # WAN2
                                      # Status Schnittstelle
                                       eth2_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                       eth2_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                       if [ "$eth2_Status" == "inactive" ] || [ "$eth2_Carrier" == "down" ];
                                       then
                                          eth2_Status="false"
                                       else
                                          eth2_Status="true"
                                       fi
                                      
                                      # In Datenpunkte von ioBroker schreiben
                                       Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN1?value=$eth0_Status)
                                       Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN2?value=$eth2_Status)
                                      

                                      Die beiden Datenpunkte WAN1 und WAN2 muss man zuvor anlegen. Auch braucht es die SSH-Zugriffsberechtigung und einen cron-Job der das jede Minute ausführt.

                                      Zum Schalten der Steckdose habe ich dann dieses Blockly:
                                      blockly.jpg

                                      integer63I Offline
                                      integer63I Offline
                                      integer63
                                      wrote on last edited by
                                      #440

                                      @Dr-Bakterius Vielen Dank, für die schnelle Antwort. Leider komme ich erst jetzt dazu, das mal auszuprobieren und bleibe auch gleich beim Passwort für die ssh Session hängen. Da meine Linux Kenntnisse eher noch low-level sind, hast du da einen Tipp für mich?

                                      1 Reply Last reply
                                      0
                                      • Dr. BakteriusD Dr. Bakterius

                                        @integer63 und @zloe: Ich mache das nicht mit dem Adapter (der mir zu overload ist), sondern mit einem Bash-Script:

                                        #!/bin/bash
                                        
                                        # Interface-Werte vom Unifi USG auslesen
                                         Erg2=$(ssh *USER*@*IP_CONTROLLER* '/opt/vyatta/bin/vyatta-op-cmd-wrapper show load-balance status')
                                        
                                        # WAN1
                                        # Status Schnittstelle
                                         eth0_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                         eth0_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                         if [ "$eth0_Status" == "inactive" ] || [ "$eth0_Carrier" == "down" ];
                                         then
                                            eth0_Status="false"
                                         else
                                            eth0_Status="true"
                                         fi
                                        
                                        # WAN2
                                        # Status Schnittstelle
                                         eth2_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                         eth2_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                         if [ "$eth2_Status" == "inactive" ] || [ "$eth2_Carrier" == "down" ];
                                         then
                                            eth2_Status="false"
                                         else
                                            eth2_Status="true"
                                         fi
                                        
                                        # In Datenpunkte von ioBroker schreiben
                                         Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN1?value=$eth0_Status)
                                         Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN2?value=$eth2_Status)
                                        

                                        Die beiden Datenpunkte WAN1 und WAN2 muss man zuvor anlegen. Auch braucht es die SSH-Zugriffsberechtigung und einen cron-Job der das jede Minute ausführt.

                                        Zum Schalten der Steckdose habe ich dann dieses Blockly:
                                        blockly.jpg

                                        integer63I Offline
                                        integer63I Offline
                                        integer63
                                        wrote on last edited by
                                        #441

                                        @Dr-Bakterius Hat sich erledigt ... hab mich getraut und das ganze mit sshpass gelöst.

                                        1 Reply Last reply
                                        0
                                        • Dr. BakteriusD Dr. Bakterius

                                          @integer63 und @zloe: Ich mache das nicht mit dem Adapter (der mir zu overload ist), sondern mit einem Bash-Script:

                                          #!/bin/bash
                                          
                                          # Interface-Werte vom Unifi USG auslesen
                                           Erg2=$(ssh *USER*@*IP_CONTROLLER* '/opt/vyatta/bin/vyatta-op-cmd-wrapper show load-balance status')
                                          
                                          # WAN1
                                          # Status Schnittstelle
                                           eth0_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                           eth0_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $1}')
                                           if [ "$eth0_Status" == "inactive" ] || [ "$eth0_Carrier" == "down" ];
                                           then
                                              eth0_Status="false"
                                           else
                                              eth0_Status="true"
                                           fi
                                          
                                          # WAN2
                                          # Status Schnittstelle
                                           eth2_Status=$(echo "$Erg2" | grep "status" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                           eth2_Carrier=$(echo "$Erg2" | grep "carrier" | sed -e 's/ /\ /g' | awk '{print $3}' | tr "\n" " " | sed -e 's/ /\ /g' | awk '{print $2}')
                                           if [ "$eth2_Status" == "inactive" ] || [ "$eth2_Carrier" == "down" ];
                                           then
                                              eth2_Status="false"
                                           else
                                              eth2_Status="true"
                                           fi
                                          
                                          # In Datenpunkte von ioBroker schreiben
                                           Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN1?value=$eth0_Status)
                                           Erg=$(curl -s http://*IP_IOBROKER*:*PORT*/set/javascript.0.WAN2?value=$eth2_Status)
                                          

                                          Die beiden Datenpunkte WAN1 und WAN2 muss man zuvor anlegen. Auch braucht es die SSH-Zugriffsberechtigung und einen cron-Job der das jede Minute ausführt.

                                          Zum Schalten der Steckdose habe ich dann dieses Blockly:
                                          blockly.jpg

                                          integer63I Offline
                                          integer63I Offline
                                          integer63
                                          wrote on last edited by
                                          #442

                                          @Dr-Bakterius Und noch mal ich ... funktioniert prima, nochmal vielen Dank. Wenn ich etwas fitter in Sachen Bash-Scripts wäre, würde ich mir etwas für den Output des Befehls 'show load-balance watchdog' basteln, um status/pings/fails auszuwerten:

                                          admin@UniFiSecurityGateway:~$ show load-balance watchdog
                                          Group wan_failover
                                            eth0
                                            status: Running
                                            pings: 83
                                            fails: 2
                                            run fails: 0/3
                                            route drops: 8
                                            ping gateway: 208.67.220.222 - REACHABLE
                                            last route drop   : Fri Jan 10 08:51:01 2020
                                            last route recover: Fri Jan 10 12:35:50 2020
                                          
                                            eth2
                                            status: Running
                                            failover-only mode
                                            pings: 81
                                            fails: 9
                                            run fails: 1/3
                                            route drops: 4
                                            ping gateway: 208.67.220.222 - REACHABLE
                                            last route drop   : Thu Jan  9 22:19:11 2020
                                            last route recover: Thu Jan  9 22:20:40 2020
                                          
                                          
                                          
                                          Dr. BakteriusD 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          537

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe