NEWS
Adapter: ioBroker.unifi
-
Ich habe auch getestet. Ja mir sind es auch zu viele unnötige Infos, müsste man eindämmen können.
Dann habe ich mich gefragt was für einen nutzen ich davon habe. Irgendwie finde ich keinen. Wenn ein shelly WLAN verliert sehe ich das auch in den shelly Objekten. Nur mal als Beispiel. Und wenn das Netz faul ist, sehe ich im iobroker eh nichts.
Der unifi Controller bietet doch schon alles, warum sollte man den nachbauen?
Was habt ihr denn so für einen Nutzen?@Jens bitte nicht falsch verstehen. Gute Arbeit, ich versuche es nur zu verstehen.
-
@lutzer mir sind das eigentlich auch zu viele Datenpunkte, aber ich nutze den Adapter für die Anwesenheitserkennung, die sehr zuverlässig funktioniert. Insofern störe ich mich auch nicht daran
-
@Hiltex dafür nutze ich ihn auch - mit Hilfe des last_seen Objektes.
-
Und wie ist es mit Handys und Standbay?
Und wir schalten nachts die Handys auf Flugmodus, kann man damit trotzdem arbeiten?
Das sind immer meine zwei ko Kriterien. -
@lutzer Logischerweise geht das dann nicht mehr.
Wenn das Handy nicht mehr sendet kannst du es auch nicht für eine Anwesenheitskontrolle verwenden. -
@Chaot
nicht getestet, aber Flugmodus und WLAN geht ja auch gleichzeitig (dann ist nur der Rest aus)
-
Mir hat der Adapter auch zu viel Systemlast erzeugt. Ich brauche eigentlich nur die Info der übertragenen Byte (um daraus die aktuelle durchschnittliche Datenrate zu errechnen) und ob die beiden WAN-Schnittstellen ordnungsgemäß verbunden sind und welche verwendet wird (failsave). Dafür ist mir der Adapter zu aufgeblasen. Deswegen mache ich das jetzt mit einem Shell-Script ohne merklicher Systemlast.
-
@Dr-Bakterius
gibt es auch eine Möglichkeit ein Gäste WLAN per Script oder Blockly an und aus zu schalten ? -
@dslraser Keine Ahnung, sorry. Ich habe mir die Befehle auch erst zusammensuchen müssen. Wenn du dich per SSH in die USG verbindest, kannst du mit 'show ?' eine Liste der möglichen Befehle abrufen. Weitere Hilfe bekommt man immer wenn man den Befehl mit Fragezeichen eingibt. Allerdings kann man hier nur Werte abfragen, keine Befehle senden.
-
@dslraser
mir ist der umfang der daten auch zu groß - teste gerade nodered unifi node - dort gibt es DisableWlan als befehl - getestet habe ich das noch nicht -
hab noch was gefunden und positiv getestet - ist ein linux-bash-script
https://community.openhab.org/t/solved-exec-commandline-bash-script-unifi-via-rule/66136/7
#!/bin/bash unifi_username=user unifi_password='pass' unifi_controller=https://192.168.x.xx:xxxx wifi_id=dsa4fsda6g46fdsg984 cookie=/tmp/cookie #site_id="" // deprecated curl_cmd="curl -s -S --cookie ${cookie} --cookie-jar ${cookie} --insecure " unifi_login() { # authenticate against unifi controller # Mute response by adding > /dev/null ${curl_cmd} -H "Content-Type: application/json" -X POST -d "{\"password\":\"$unifi_password\",\"username\":\"$unifi_username\"}" $unifi_controller/api/login #> /dev/null } unifi_logout() { # logout ${curl_cmd} $unifi_controller/logout } enable_wifi() { # enables guest wifi network # Mute response by adding > /dev/null ${curl_cmd} "$unifi_controller"'/api/s/default/rest/wlanconf/'"$wifi_id" -X PUT --data-binary '{"_id":"'$site_id'","enabled":true}' --compressed #> /dev/null } disable_wifi() { # enables guest wifi network # Mute response by adding > /dev/null ${curl_cmd} "$unifi_controller"'/api/s/default/rest/wlanconf/'"$wifi_id" -X PUT --data-binary '{"_id":"'$site_id'","enabled":false}' --compressed #> /dev/null } check_status() { # checks wifi network status # Mute response by adding > /dev/null response=$(${curl_cmd} "$unifi_controller"'/api/s/default/rest/wlanconf/'"$wifi_id" --compressed) status=$(echo $response | jq ".data[0].enabled") if [ "$status" == "true" ]; then exit 0 elif [ "$status" == "false" ]; then exit 1 else echo exit -1 fi } unifi_login if [ "$1" == "enable" ]; then echo "Enabling WiFi." enable_wifi elif [ "$1" == "disable" ]; then echo "Disabling WiFi." disable_wifi elif [ "$1" == "status" ]; then check_status else echo "Must include command line parameter [enable|disable|status]." fi unifi_logout rm $cookie
mit diesem script kann ich mein wlan ein und ausschalten ode den status abfragen
- es muss "apt-get install jq" ausgeführt werden (nur nötig, wenn man status will) (damit es bei mir funktionierte, mußte ich den jq pfad im script bei dem jq befehle angeben (unter bereich status)) - die wifi_id findet man so:
Getting your wifi_id:
Navigate to your controller and sign in.
Navigate to Settings > Wifi Networks.
Click Edit next to the SSID you’d like to control.
Copy the ID from the end of the URL.
In the following example, the ID is ( 000d00c0e0b0e00d00000000
url://example:8443/manage/site/default/settings/wlans/00bd00a6e0000e9da2cde10c/edit/000d00c0e0b0e00d00000000 -
@liv-in-sky
Danke Dir. -
ich habe noch nichts ausprobiert...
(ich hatte bisher nur angefangen zu suchen und wollte mir von diesem Post was ableiten, ist zwar nicht für unifi aber eben für ssh.)
Das hier meine ichIch bin sonst fast nur mit Blockly unterwegs, aber vielleicht lässt sich Dein Bash auch in eine Blockly Funktion packen.
Ich bin noch unterwegs, aber ich schaue es mir später genauer an. -
@liv-in-sky sagte in Adapter: ioBroker.unifi:
hab noch was gefunden und positiv getestet - ist ein linux-bash-script
Hi, kann man das auch in ein normal Script oder Blockly umwandeln ?
Oder wo/wie wendest Du das linux-bash-script an ?Ich würde es gern in z.B iQontrol nutzen.
z.B. Gäste WLAN an oder Gäste WLAN aus
-
wenn du das linux script erzeugst auf einer console :
- am besten im /opt/iobroker - ordner - da solltest du die rechte haben
- nano unifi.sh (dann inhalt reinkopieren) - mit "<ALT>-x speichern unter dem namen unifi.sh
- dann "chmod +x unifi.sh" - danmit es ausführbar ist
dann kannst du mit einem blockly und result aktiviert (variable result einfach erstellen) das script aufrufen und das result weiterverarbeiten
-
@liv-in-sky
Danke für Deine Geduld und Mühe.
Also muss ich tatsächlich erst dieses Script installieren und dann über Blockly aufrufen.
Ich dachte es gäbe eine Möglichkeit dies gleich mit "ioBroker Boardmitteln" zu erledigen ? -
@dslraser
ja - ich steh auf diese linux scripts - dabei bin ich schneller als in javascript - old school halt!ein richtiger profi könnte das sicher in javascript umwandeln - aber das kann ich leider nicht bieten
ansonsten mit nodered - weiß nicht, ob du das magst
-
@liv-in-sky sagte in Adapter: ioBroker.unifi:
ansonsten mit nodered - weiß nicht, ob du das magst
Ich weiß nicht ob ich das mag, habe ich noch nie benutzt
-
@dslraser Hab ich noch nicht getestet, sollte aber eig funktionieren.
const request = require('request'); const unifi_username = "user"; const unifi_password = "pass"; const unifi_controller = "https://192.168.x.xx:xxxx"; const wifi_id = "dsa4fsda6g46fdsg984"; function login() { request.post({ url: unifi_controller + "/api/login", body: JSON.stringify({ username: unifi_username, password: unifi_password }), headers: { 'Content-Type': 'application/json' } }, (err, resp) => { if(!err) { console.log("Login war erfolgreich!"); getStatus(); } else { console.log("Login Fehler! " + err); } }) } function getStatus() { request.get(unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id, (err, resp) => { if(!err) { console.log("Status erfolgreich geholt!"); console.log(resp); let status = JSON.parse(resp); let wlanOn = status.data[0].enabled; console.log("WLAN ist: " + (wlanOn ? "an" : "aus")); } else { console.log("Status konnte nicht geholt werden. " + err); } }) } login();
-
@thewhobox
danke Dir, probiere ich heute Abend mal aus. Ich sage hier Bescheid ob es funktioniert.