NEWS
Unifi Steuern ohne Adapter (Script,SSH)
-
@drapo sagte in Adapter: ioBroker.unifi:
wer ist denn der entwickler des adapters?
Ursprünglich entwickelt hat den Adapter mal @jens-maus, aber der war zuletzt Anfang 2022 hier aktiv und mittlerweile ist es ein Community Adapter.
-
@negalein danke für den tip. das mache ich sofort...
-
@drapo sagte in Adapter: ioBroker.unifi:
Mein Problem ist, dass mein Sohn meint mitten in der Nacht aufzustehen und an den TV zu sitzen
dann erstelle doch einfach im Controller ne feste Rule, z.b. Internet gesperrt von...bis
oder diverse Apps gesperrt von... bis -
@crunchip der Vorteil wenn es über iobroker laufen würde wäre, dass ich mittels einem Telegram Menü den Port oder das Internet oder die Apps auch freischalten könnte sollte ich doch mal zu später Stunde selbst mal den TV verwenden wollen. Ich müsste nicht den Controller öffnen und das erledigen sondern könnte das einfach über das Mobiltelefon erledigen. Daher sehe ich Deinen Ansatz zwar, smart ist aus meiner Sicht allerdings derjenige direkt über den Adapter und mittels Blockly gesteuert mit der Möglichkeit manuell einzugreifen falls notwendig.
-
@drapo sagte in Adapter: ioBroker.unifi:
smart ist aus meiner Sicht allerdings
verstehe ich schon, war ja nur ein alternativ Vorschlag
vllt wäre das ein weiterer Ansatz, siehe https://forum.iobroker.net/post/751198 -
welche Switche hast du denn, ich kann bei meinen den Port enable/disablen, ebenso POE an/aus schalten mit dem unifi-adadpter, das klappt einwandfrei.. schau:
-
@ilovegym ich hab ne UDM pro. Das sieht bei mir auch so aus wie bei Dir. Hast Du schon mal versucht manuell den Port auszuschalten? Das wird nicht gehen da die States nicht schreibbar sind. Du siehst das ganz vorne am Schloss Symbol vor jedem Eintrag. Kannst ja mal versuchen von true auf false zu stellen da kommst nicht weit.
-
Mist, hast recht, ich schalte den POE, aber dafuer gibts n Datenpunkt, der geht auch..
Dann hilft nur das schalten per ssh, das geht auf jeden Fall.
Das schoene, hier sind die commands ziemlich gleich den von Cisco, man muss sich nicht umgewoehnen..SSH muss in der UDM Pro aktiviert werden, dann einfach in den Switch einloggen, und wie gewohnt:
Edit:
telnet localhost
enable
conf
interface x/x
shutoder no shut und der port ist wieder up..
mit show interface siehst du die config
-
@ilovegym Kann man über ssh auch voucher für gästewlan generieren?
-
Keine Ahnung, ich kenne nur die Switch commands…
Voucher werden ja von der UDM gemacht, und da sollte es über die API gehen..
-
@ilovegym
Und die internen Temperaturen der AP´s? Es soll ja wohl auch SNMP gehen, aber ohne Doku kommt man da ja auch nicht weiterHab einen AP in Garten gehängt und würde gern dessen Temp mal im Hochsommer / Winter überwachen.
-
@ilovegym: API bzw. über den Adapter geht es leider schon seit einen Jahr nicht mehr. Ob Ubiquiti da den Hahn abgedreht hat oder der Adapter ein Problem hat, keine Ahnung. Issue in GitHub ist auf, aber leider keine Reaktion
-
wenn ich mal Zeit hab, schalt ich snmp ein und lass mal n MIB drueber laufen.. dann halt mal durchklicken und schauen, welche States dargestellt werden und welche man setzen kann.. vielleicht geht damit ja auch recht easy Port-up/down etc..
Der iobroker hat ja n faehigen snmp adapter.
-
@draexler sagte in Adapter: ioBroker.unifi:
@ilovegym Kann man über ssh auch voucher für gästewlan generieren?
teste mal das - da kannst du angeblich vouchers anlegen - habe die nicht aktiviert, daher kann ich nicht testen
du musst die node-unifi in die zusätzlichen npm module in der js.instanz eintragen
const Unifi = require('node-unifi'); const unifi = new Unifi.Controller({hostname:"192.168.178.xx",port:'8443', sslverify: false}); (async () => { try { // LOGIN const loginData = await unifi.login('user', 'password!'); console.log('login: ' + loginData); //const switchmac="b4:fb:e4:f3:96:63" // Get data from a specific unifi device based on MAC address //const deviceData = await unifi.getAccessDevices(switchmac); // Console.log('getAccessDevices: ' + JSON.stringify(deviceData)); // Get device id //const deviceId = deviceData[0]._id; //console.log('deviceId: ' + deviceId + ' ip: ' + deviceData[0].ip); // GET SITE STATS // const sites = await unifi.getSitesStats(); // console.log('getSitesStats: ' + sites[0].name + ':' + sites.length); // console.log(JSON.stringify(sites)); // GET SITE SYSINFO // const sysinfo = await unifi.getSiteSysinfo(); // console.log('getSiteSysinfo: ' + sysinfo.length); //console.log(JSON.stringify(sysinfo)); // GET CLIENT DEVICES // const clientData = await unifi.getClientDevices(); // console.log('getClientDevices: ' + clientData.length); // console.log(JSON.stringify(clientData)); // GET ALL USERS EVER CONNECTED //const usersData = await unifi.getAllUsers(); //console.log('getAllUsers: ' + usersData.length); //console.log(JSON.stringify(usersData)); const clientVoucher = await unifi.createVouchers(123,1,0,"testthis"); // LOGOUT const logoutData = await unifi.logout(); console.log('logout: ' + JSON.stringify(logoutData)); } catch (error) { console.log('ERROR: ' + error); } })();
-
@liv-in-sky Hört sich schon mal gut an. Also trage ich einfach in der js.instanz bei den npm Komponenten "node-unifi" ein? Wenn ja, wie geht es dann weiter? Arbeite wie die meisten hier nur mit Blockly...
-
@draexler sagte in Adapter: ioBroker.unifi:
Also trage ich einfach in der js.instanz bei den npm Komponenten "node-unifi" ein?
ja
eintragen und enter drücken - sonst wird es nicht angenommen - die instanz startet dann neuansschliessend script anlegen und hostname (zeile3) und user und kennwort (zeile8) anpassen
dann:
aufrufen und im voucher-admin nachsehen, ob was angekommen ist -
hier siehst du was in die klammer der funktion createVouchers kommen muss
es müßte reichen, wenn du minutes,count,quota und note einträgst createVouchers(180,1,0,"testthisvoucher");
-
ich frage mal direkt dazwischen ob man den voucher code auch irgendwo abgreifen kann damit ich den irgendwo darstellen kann und nicht im portal schauen muss
-
das selbe script nur mit der funktion - teste mal -- ich hoffe es stimmt so
const myVouchers = await unifi.getVouchers(); console.log("vouchers: "+ myVouchers)
-
mh ich bekomme aktuell Error: failed to detect UniFiOS status