Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Adapter: ioBroker.unifi

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
unifi
1.0k Beiträge 172 Kommentatoren 393.7k Aufrufe 93 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL liv-in-sky

    @thewhobox

    10:37:35.317	info	js2fs.0 Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file
    10:37:35.319	info	javascript.2 Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
    10:37:35.318	info	javascript.1 Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
    10:37:35.324	info	javascript.0 Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
    10:37:35.335	info	javascript.2 Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
    10:37:35.335	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: nur mal so
    10:37:35.335	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
    10:37:35.608	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: login war erfolgreich! Mit Cookies
    10:37:35.616	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: got response "{\"meta\":{\"rc\":\"ok\"},\"data\":[{\"_id\":\"5d6512a897578401d1edd761\",\"enabled\":true,\"security\":\"open\",\"wep_idx\":1,\"wpa_mode\":\"wpa2\",\"wpa_enc\":\"ccmp\",\"usergroup_id\":\"5cadc7f73b6a3967dd7e5376\",\"dtim_mode\":\"default\",\"dtim_ng\":1,\"dtim_na\":1,\"minrate_ng_enabled\":false,\"minrate_ng_advertising_rates\":false,\"minrate_ng_data_rate_kbps\":1000,\"minrate_ng_cck_rates_enabled\":true,\"minrate_na_enabled\":false,\"minrate_na_advertising_rates\":false,\"minrate_na_data_rate_kbps\":6000,\"mac_filter_enabled\":false,\"mac_filter_policy\":\"allow\",\"mac_filter_list\":[],\"bc_filter_enabled\":false,\"bc_filter_list\":[],\"group_rekey\":3600,\"name\":\"DragonRootGuest\",\"wlangroup_id\":\"5cadc7f73b6a3967dd7e5377\",\"fast_roaming_enabled\":false,\"schedule\":[],\"minrate_ng_mgmt_rate_kbps\":1000,\"minrate_na_mgmt_rate_kbps\":6000,\"minrate_ng_beacon_rate_kbps\":1000,\"minrate_na_beacon_rate_kbps\":6000,\"site_id\":\"5cadc7f53b6a3967dd7e5369\",\"x_iapp_key\":\"cf930ad9a6750bd1d7c2f8676f775668\",\"name_combine_enabled\":true}]}"
    10:37:35.616	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
    10:37:37.334	info	js2fs.0 Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
    10:37:37.373	info	javascript.2 Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
    10:37:37.391	info	javascript.2 Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
    10:37:37.391	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: nur mal so
    10:37:37.391	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
    10:37:37.646	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: login war erfolgreich! Mit Cookies
    10:37:37.656	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: got response "{\"meta\":{\"rc\":\"ok\"},\"data\":[{\"_id\":\"5d6512a897578401d1edd761\",\"enabled\":true,\"security\":\"open\",\"wep_idx\":1,\"wpa_mode\":\"wpa2\",\"wpa_enc\":\"ccmp\",\"usergroup_id\":\"5cadc7f73b6a3967dd7e5376\",\"dtim_mode\":\"default\",\"dtim_ng\":1,\"dtim_na\":1,\"minrate_ng_enabled\":false,\"minrate_ng_advertising_rates\":false,\"minrate_ng_data_rate_kbps\":1000,\"minrate_ng_cck_rates_enabled\":true,\"minrate_na_enabled\":false,\"minrate_na_advertising_rates\":false,\"minrate_na_data_rate_kbps\":6000,\"mac_filter_enabled\":false,\"mac_filter_policy\":\"allow\",\"mac_filter_list\":[],\"bc_filter_enabled\":false,\"bc_filter_list\":[],\"group_rekey\":3600,\"name\":\"DragonRootGuest\",\"wlangroup_id\":\"5cadc7f73b6a3967dd7e5377\",\"fast_roaming_enabled\":false,\"schedule\":[],\"minrate_ng_mgmt_rate_kbps\":1000,\"minrate_na_mgmt_rate_kbps\":6000,\"minrate_ng_beacon_rate_kbps\":1000,\"minrate_na_beacon_rate_kbps\":6000,\"site_id\":\"5cadc7f53b6a3967dd7e5369\",\"x_iapp_key\":\"cf930ad9a6750bd1d7c2f8676f775668\",\"name_combine_enabled\":true}]}"
    10:37:37.656	info	javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
    

    dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #412

    @liv-in-sky

    ich spare mir jetzt die gleichen Logs, sieht bei mir genau so aus. Nur wenn ich andere Ergebnisse bekomme sage ich Bescheid

    1 Antwort Letzte Antwort
    0
    • thewhoboxT thewhobox

      @liv-in-sky Boah ich hasse es, dass da keine Fehlermeldungen kommen.....
      Glaub aber hab den Fehler gefunden. Kurz die Zeilen ergenzen.

      dlog("got response " + JSON.stringify(resp));
      dlog(typeof resp);
      resp = JSON.parse(resp);
      dlog(resp.meta);
      dlog(resp.meta.rc);
      
      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #413

      @thewhobox

      javascript.0 script.js.Heiko.Unifi.unifi_wifi: WLAN ist: an
      
      liv-in-skyL 2 Antworten Letzte Antwort
      0
      • dslraserD dslraser

        @thewhobox

        javascript.0 script.js.Heiko.Unifi.unifi_wifi: WLAN ist: an
        
        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #414

        @dslraser dito

        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 Antwort Letzte Antwort
        0
        • dslraserD dslraser

          @thewhobox

          javascript.0 script.js.Heiko.Unifi.unifi_wifi: WLAN ist: an
          
          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #415

          @dslraser

          schalten sich bei dir auch alle netzwerke ab und an - nicht nur das gäste netzwerk - es scheint. als ob unifi einen restart macht nach dem setting

          schalte ich mit script gästenetzwerk ein - werden beide netze restartet und das gästenetzwerk ist an - hauptnetz ist an
          schalte ich mit script gästenetzwerk aus- werden beide netze restartet und das gästenetzwerk ist aus - hauptnetz ist an

          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

          dslraserD 2 Antworten Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @dslraser

            schalten sich bei dir auch alle netzwerke ab und an - nicht nur das gäste netzwerk - es scheint. als ob unifi einen restart macht nach dem setting

            schalte ich mit script gästenetzwerk ein - werden beide netze restartet und das gästenetzwerk ist an - hauptnetz ist an
            schalte ich mit script gästenetzwerk aus- werden beide netze restartet und das gästenetzwerk ist aus - hauptnetz ist an

            dslraserD Offline
            dslraserD Offline
            dslraser
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #416

            @liv-in-sky
            ja, das ist leider so, weil dann komplett neu Provisioniert wird.

            1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @dslraser

              schalten sich bei dir auch alle netzwerke ab und an - nicht nur das gäste netzwerk - es scheint. als ob unifi einen restart macht nach dem setting

              schalte ich mit script gästenetzwerk ein - werden beide netze restartet und das gästenetzwerk ist an - hauptnetz ist an
              schalte ich mit script gästenetzwerk aus- werden beide netze restartet und das gästenetzwerk ist aus - hauptnetz ist an

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #417

              @liv-in-sky sagte in Adapter: ioBroker.unifi:

              schalten sich bei dir auch alle netzwerke ab und an - nicht nur das gäste netzwerk - es scheint. als ob unifi einen restart macht nach dem setting

              achso, wenn ich ein WLAN, egal welches an oder ausschalte wird neu provisioniert, aber das nicht ausgeschaltete kommt dann nach dem provisionieren wieder. Nur verlieren alle Geräte kurz die Verbindung...zu mindestens der Rechner an dem ich gerade binn, dauert nur immer einen Moment

              1 Antwort Letzte Antwort
              0
              • liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #418

                @thewhobox

                vielen vielen dank für deine zeit, die du investiert hast - wenn es deine zeit und lust erlaubt wäre noch ein zusätzliche info hilfreich:

                wäre es möglich eine liste der angemeldeten geräte zu bekommen

                mehr info würde ich garnicht brauchen

                wenn das zu unverschämt ist, auch kein thema - bin froh, dass das was wir jetzt haben, funktioniert

                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

                thewhoboxT 1 Antwort Letzte Antwort
                0
                • dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #419

                  @thewhobox
                  Ja, von mir auch ein herzlichen Dank für Deine Mühe.
                  Dem Wunsch von @liv-in-sky würde ich mich anschließen. Das sind bei mir auch alle Daten die ich bräuchte.
                  👍👍👍

                  1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @thewhobox

                    vielen vielen dank für deine zeit, die du investiert hast - wenn es deine zeit und lust erlaubt wäre noch ein zusätzliche info hilfreich:

                    wäre es möglich eine liste der angemeldeten geräte zu bekommen

                    mehr info würde ich garnicht brauchen

                    wenn das zu unverschämt ist, auch kein thema - bin froh, dass das was wir jetzt haben, funktioniert

                    thewhoboxT Offline
                    thewhoboxT Offline
                    thewhobox
                    schrieb am zuletzt editiert von
                    #420

                    @liv-in-sky Gerne doch.
                    Ich schau mir nachher mal das verlinkte Skript an ob die das haben. Wenn ja, dann kann ich das mit einbauen.

                    Meine Adapter: emby | discovery
                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    dslraserD 1 Antwort Letzte Antwort
                    2
                    • thewhoboxT thewhobox

                      @liv-in-sky Gerne doch.
                      Ich schau mir nachher mal das verlinkte Skript an ob die das haben. Wenn ja, dann kann ich das mit einbauen.

                      dslraserD Offline
                      dslraserD Offline
                      dslraser
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #421

                      @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

                      thewhoboxT liv-in-skyL 2 Antworten Letzte Antwort
                      0
                      • 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

                        thewhoboxT Offline
                        thewhoboxT Offline
                        thewhobox
                        schrieb am zuletzt editiert von
                        #422

                        @dslraser Für Status wäre ein Intervall gut:

                        setInterval(async () => {
                            let state = await getStatus();
                            setState("Eigene_Datenpunkte.25Unifi_Wifi.01wifi_Status", state, true);
                        }, 10000); // Aktualisiert alle 10 Sekunden.
                        

                        Und für die Buttons:

                        on("Eigene_Datenpunkte.25Unifi_Wifi.02wifi_an", (state) => {
                            setWifi(true);
                        });
                        on("Eigene_Datenpunkte.25Unifi_Wifi.02wifi_aus", (state) => {
                            setWifi(false);
                        });
                        

                        Meine Adapter: emby | discovery
                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        1 Antwort Letzte Antwort
                        1
                        • 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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          1
                          • dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #424

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

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

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              aikonflo
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • I Offline
                                I Offline
                                ikkerus
                                schrieb am zuletzt editiert von
                                #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 Antworten Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von 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.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                  1 Antwort Letzte Antwort
                                  0
                                  • I Offline
                                    I Offline
                                    ikkerus
                                    schrieb am zuletzt editiert von
                                    #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 Antworten Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von 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.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                      1 Antwort Letzte Antwort
                                      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
                                        schrieb am zuletzt editiert von
                                        #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.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                        1 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          372

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe