NEWS
[Major Update] UniFi Adapter v0.5.0
-
Ich habe gerade einmal die Zugriffssteuerung für mein Gäste W-Lan über Vouchers aktiviert und konnt den Zugriffscode über die Webmaske auch erfolgreich generieren und auf meinem Handy verwenden.
Wenn ich in der ioBroker Adminoberfläche für die Objekte den Button für den Datenpunkt unifi.0.default.vouchers.create_vouchers betätige bekomme ich folgenden Fehler im Log:unifi.0 2020-09-25 22:37:29.880 error at Request.emit (events.js:315:20) unifi.0 2020-09-25 22:37:29.880 error at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10) unifi.0 2020-09-25 22:37:29.880 error at Request.EventEmitter.emit (domain.js:483:12) unifi.0 2020-09-25 22:37:29.880 error at Request.emit (events.js:315:20) unifi.0 2020-09-25 22:37:29.880 error at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) unifi.0 2020-09-25 22:37:29.880 error at Request._callback (/opt/iobroker/node_modules/node-unifi/unifi.js:2844:13) unifi.0 2020-09-25 22:37:29.880 error at next (/opt/iobroker/node_modules/node-unifi/node_modules/async/dist/async.js:4450:29) unifi.0 2020-09-25 22:37:29.880 error at /opt/iobroker/node_modules/node-unifi/node_modules/async/dist/async.js:321:20 unifi.0 2020-09-25 22:37:29.880 error at /opt/iobroker/node_modules/node-unifi/unifi.js:2858:11 unifi.0 2020-09-25 22:37:29.880 error at cb (/opt/iobroker/node_modules/iobroker.unifi/main.js:1111:28) unifi.0 2020-09-25 22:37:29.880 error (26712) error: api.err.IncorrectNumberRange, stack: Error: api.err.IncorrectNumberRangeIch verwende die folgenden Versionen:
Unifi Controller: 5.13.32 (Build: atag_5.13.32_13646)
Unifi Adapter: 5.0.8Muss ich noch irgendwas besonderes im Unifi Controller einstellen, damit die Codes erzeugt werden können?
In ioBroker sehen in der Unifi Instanz die Einstellungen wie folgt aus:

-
@maniac habe dir eine chatnachricht gesendet
was ich noch nicht ganz verstehe : das funktionierende bash script liegt auf dem iobroker server - damit du das aufrufen kannst, braucht es eigentlich nur einen exec() befehl -am besten mal testen ob der exec - allein funktioniert - evtl gibt es da noch rechte themen aber prinzipiell sollte es so laufen - das bashscript baut ja die ssh verbindung auf - daher brauchen wir nur dieses script mit exec() aufrufen
dann legst du dir einen eigenen datenpunkt an - logic - der in der vis zur verfügung gestellt wird

object id in diesem blockly musst du mit deinem eigenen datenpunkt "füttern"
das ganze sollte funktionieren, wenn du eine console auf iobroker öffnest und dort in die console
./cam_aus_an <IP-SWITCH> on 20 oder ./cam_aus_an <IP-SWITCH> off 20einen der beiden befehle ausführen kannst - wenn das funktioniert, sollte der exec befehl im blockly funktionieren
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac habe dir eine chatnachricht gesendet
das ganze sollte funktionieren, wenn du eine console auf iobroker öffnest und dort in die console
./cam_aus_an <IP-SWITCH> on 20 oder ./cam_aus_an <IP-SWITCH> off 20einen der beiden befehle ausführen kannst - wenn das funktioniert, sollte der exec befehl im blockly funktionieren
Ich bin einen Schritt weiter.
Im Terminal Adapter kann ich das Script nun starten und der Port wird geschaltet.Der entscheidende Hinweis kommt von hier
Im speziellen habe ich das Script temporär angepasst, indem ich den Aufruf mit diesem Code erweitert habe.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no adminuser@xxx.xxx.xxx.xxxDie ganze Zeile sah dann so aus.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@$1 '(echo "enable" ; echo "configure" ; echo "interface 0/'$3'" ; echo "poe opmode auto" ; echo "exit" ; echo "exit"; echo "exit" ) |Danach wurde auch die KnownHosts Datei im /home/iobroker/.ssh angelegt.
Dann habe ich das Script wieder in den Ursprungszustand zurück gesetzt und nun funktioniert es im Terminal Adapter.Wenn ich allerdings das Blockly triggere, bekomme ich im Log einen Fehler.
Im Javascript Adapter habe ich das "exec" erlaubt.28.9.2020, 10:25:00.126 [error]: javascript.0 (1090) script.js.Kameras.Bewegung: exec: sudo bash /opt/iobroker/cam.sh 192.168.222.2 off 20Passt hier der Aufruf im Blockly noch nicht?
sudo bash /opt/iobroker/cam.sh 192.168.222.2 off 20
-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac habe dir eine chatnachricht gesendet
das ganze sollte funktionieren, wenn du eine console auf iobroker öffnest und dort in die console
./cam_aus_an <IP-SWITCH> on 20 oder ./cam_aus_an <IP-SWITCH> off 20einen der beiden befehle ausführen kannst - wenn das funktioniert, sollte der exec befehl im blockly funktionieren
Ich bin einen Schritt weiter.
Im Terminal Adapter kann ich das Script nun starten und der Port wird geschaltet.Der entscheidende Hinweis kommt von hier
Im speziellen habe ich das Script temporär angepasst, indem ich den Aufruf mit diesem Code erweitert habe.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no adminuser@xxx.xxx.xxx.xxxDie ganze Zeile sah dann so aus.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@$1 '(echo "enable" ; echo "configure" ; echo "interface 0/'$3'" ; echo "poe opmode auto" ; echo "exit" ; echo "exit"; echo "exit" ) |Danach wurde auch die KnownHosts Datei im /home/iobroker/.ssh angelegt.
Dann habe ich das Script wieder in den Ursprungszustand zurück gesetzt und nun funktioniert es im Terminal Adapter.Wenn ich allerdings das Blockly triggere, bekomme ich im Log einen Fehler.
Im Javascript Adapter habe ich das "exec" erlaubt.28.9.2020, 10:25:00.126 [error]: javascript.0 (1090) script.js.Kameras.Bewegung: exec: sudo bash /opt/iobroker/cam.sh 192.168.222.2 off 20Passt hier der Aufruf im Blockly noch nicht?
sudo bash /opt/iobroker/cam.sh 192.168.222.2 off 20
@maniac - klasse, dass du schon weiter bist
WICHTIGER HINWEIS https://forum.iobroker.net/post/496428 - bessere Lösung - nicht "bash" frei geben sondern pfad zum script selbst
spontan : kontrolliere mal das sudoers file
nano /etc/sudoers.d/iobroker
da steht kein bash drin - daher ein eigenes file anlegen - bei mir


vielleicht ist damit was zu machen
du kannst auch versuchen das log im exec-blockly zu aktivieren - vielleicht steht da mehr

und der klassiker - im setting des javascriptadapters muss exec ausführen erlaubt sein
WICHTIGER HINWEIS https://forum.iobroker.net/post/496428 - bessere Lösung
-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac habe dir eine chatnachricht gesendet
das ganze sollte funktionieren, wenn du eine console auf iobroker öffnest und dort in die console
./cam_aus_an <IP-SWITCH> on 20 oder ./cam_aus_an <IP-SWITCH> off 20einen der beiden befehle ausführen kannst - wenn das funktioniert, sollte der exec befehl im blockly funktionieren
Ich bin einen Schritt weiter.
Im Terminal Adapter kann ich das Script nun starten und der Port wird geschaltet.Der entscheidende Hinweis kommt von hier
Im speziellen habe ich das Script temporär angepasst, indem ich den Aufruf mit diesem Code erweitert habe.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no adminuser@xxx.xxx.xxx.xxxDie ganze Zeile sah dann so aus.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@$1 '(echo "enable" ; echo "configure" ; echo "interface 0/'$3'" ; echo "poe opmode auto" ; echo "exit" ; echo "exit"; echo "exit" ) |Danach wurde auch die KnownHosts Datei im /home/iobroker/.ssh angelegt.
Dann habe ich das Script wieder in den Ursprungszustand zurück gesetzt und nun funktioniert es im Terminal Adapter.Wenn ich allerdings das Blockly triggere, bekomme ich im Log einen Fehler.
Im Javascript Adapter habe ich das "exec" erlaubt.28.9.2020, 10:25:00.126 [error]: javascript.0 (1090) script.js.Kameras.Bewegung: exec: sudo bash /opt/iobroker/cam.sh 192.168.222.2 off 20Passt hier der Aufruf im Blockly noch nicht?
sudo bash /opt/iobroker/cam.sh 192.168.222.2 off 20
@maniac
ach ja
hatte gestern erst etwas gemacht - da brauchte ich bash garnicht - siehe post darüber - das blockly -
@maniac - klasse, dass du schon weiter bist
WICHTIGER HINWEIS https://forum.iobroker.net/post/496428 - bessere Lösung - nicht "bash" frei geben sondern pfad zum script selbst
spontan : kontrolliere mal das sudoers file
nano /etc/sudoers.d/iobroker
da steht kein bash drin - daher ein eigenes file anlegen - bei mir


vielleicht ist damit was zu machen
du kannst auch versuchen das log im exec-blockly zu aktivieren - vielleicht steht da mehr

und der klassiker - im setting des javascriptadapters muss exec ausführen erlaubt sein
WICHTIGER HINWEIS https://forum.iobroker.net/post/496428 - bessere Lösung
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
spontan : kontrolliere mal das sudoers file
nano /etc/sudoers.d/iobroker
Hab auch ein eigenes angelegt.

Auch nach komplettem Reboot geht es leider noch nicht.
du kannst auch versuchen das log im exec-blockly zu aktivieren - vielleicht steht da mehr

Wo kommt das "result" her? Das finde ich nicht

und der klassiker - im setting des javascriptadapters muss exec ausführen erlaubt sein
Ist aktiv


-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
spontan : kontrolliere mal das sudoers file
nano /etc/sudoers.d/iobroker
Hab auch ein eigenes angelegt.

Auch nach komplettem Reboot geht es leider noch nicht.
du kannst auch versuchen das log im exec-blockly zu aktivieren - vielleicht steht da mehr

Wo kommt das "result" her? Das finde ich nicht

und der klassiker - im setting des javascriptadapters muss exec ausführen erlaubt sein
Ist aktiv


@maniac das result einfach als variable anlegen
-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
spontan : kontrolliere mal das sudoers file
nano /etc/sudoers.d/iobroker
Hab auch ein eigenes angelegt.

Auch nach komplettem Reboot geht es leider noch nicht.
du kannst auch versuchen das log im exec-blockly zu aktivieren - vielleicht steht da mehr

Wo kommt das "result" her? Das finde ich nicht

und der klassiker - im setting des javascriptadapters muss exec ausführen erlaubt sein
Ist aktiv


hast du im blockly mal ohne "sudo bash" vor befehl getestet
-
@maniac
ach ja
hatte gestern erst etwas gemacht - da brauchte ich bash garnicht - siehe post darüber - das blockly@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac
ach ja
hatte gestern erst etwas gemacht - da brauchte ich bash garnicht - siehe post darüber - das blocklyleider auch so nicht

-
@maniac das result einfach als variable anlegen
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac das result einfach als variable anlegen
ok.
Kommt nix besonderes bei raus

-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac das result einfach als variable anlegen
ok.
Kommt nix besonderes bei raus

@maniac
result anlegen

was kommt den zurück, wenn du einfach nur ls -la als befehl im exec blockly angibst - da sollte etwas im log stehen

-
@maniac
result anlegen

was kommt den zurück, wenn du einfach nur ls -la als befehl im exec blockly angibst - da sollte etwas im log stehen

@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac
result anlegenJa, das funktioniert. Bekomme den Inhalt von / aufgelistet.
-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac
result anlegenJa, das funktioniert. Bekomme den Inhalt von / aufgelistet.
hast du ml alle vrianten durchgespielt - bei mir funktioniert sudo bash...... nicht
aber bash...... funktioniert
und nur /opt/iobroker/cam.sh funktioniert auch -
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
@maniac sudo -u iobroker ssh ....
Ja, na klar.

Aber so ganz richtig verhält sich das Terminal nicht. Hat etwas gedauert bis der Key erstellt wurde, da manchmal keine Ausgabe erfolgte, bzw. nachdem ich den cam Befehl eingegeben hatte kam nochmal das mit der passphrase.
Den Key habe ich jetzt aber im Controller drin, aber trotzdem geht es nicht.


-
hast du ml alle vrianten durchgespielt - bei mir funktioniert sudo bash...... nicht
aber bash...... funktioniert
und nur /opt/iobroker/cam.sh funktioniert auch@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
hast du ml alle vrianten durchgespielt - bei mir funktioniert sudo bash...... nicht
aber bash...... funktioniert
und nur /opt/iobroker/cam.sh funktioniert auch
Alle mal auf einmal. Jetzt geht es plötzlich...
Habe die exec danach mal nach und nach deaktiviert.Es funktioniert jetzt mit:
bash /opt/iobroker/cam.sh 192.168.222.2 off 20Ist mir unbegreiflich.
-
@liv-in-sky sagte in [Major Update] UniFi Adapter v0.5.0:
hast du ml alle vrianten durchgespielt - bei mir funktioniert sudo bash...... nicht
aber bash...... funktioniert
und nur /opt/iobroker/cam.sh funktioniert auch
Alle mal auf einmal. Jetzt geht es plötzlich...
Habe die exec danach mal nach und nach deaktiviert.Es funktioniert jetzt mit:
bash /opt/iobroker/cam.sh 192.168.222.2 off 20Ist mir unbegreiflich.
@maniac das sehen wir mal locker - begreifen ist nicht so wichtig - hauptssache es läuft

-
@maniac das sehen wir mal locker - begreifen ist nicht so wichtig - hauptssache es läuft

@liv-in-sky
Ja, aber warum wäre dennoch die Frage. Ich werde auf jeden Fall jetzt erstmal einen Snapshot anlegen.
Danach habe ich einen zweiten Switch. Da bekomme ich noch Host verification Error. Also noch mal von vorne
Wenn es endgültig läuft, werde ich das mal zusammenschreiben und irgendwo hier posten. Damit man das mal nachlesen kann.
Vielen, Vielen Dank für Deine Hilfe und Geduld...
-
hast du im blockly mal ohne "sudo bash" vor befehl getestet
@liv-in-sky Global
bashper sudo ausführbar zu machen ist ein Rezept für Desaster. So kann jeder, der Kontrolle über den Admin hat, jedes x-beliebige Skript als root ausführen! Das hebelt das non-root-Konzept von ioBroker komplett aus!Besser:
- Skript ausführbar machen:
sudo chmod +x /opt/iobroker/scripte/backupscript.sh - Sicherstellen, dass das Skript mit
#!/bin/bashbeginnt - In der
sudoersgenau das Skript/opt/iobroker/scripte/backupscript.sherlauben.
- Skript ausführbar machen:
-
@liv-in-sky Global
bashper sudo ausführbar zu machen ist ein Rezept für Desaster. So kann jeder, der Kontrolle über den Admin hat, jedes x-beliebige Skript als root ausführen! Das hebelt das non-root-Konzept von ioBroker komplett aus!Besser:
- Skript ausführbar machen:
sudo chmod +x /opt/iobroker/scripte/backupscript.sh - Sicherstellen, dass das Skript mit
#!/bin/bashbeginnt - In der
sudoersgenau das Skript/opt/iobroker/scripte/backupscript.sherlauben.
@AlCalzone guter tipp - muss ich mir merken
- Skript ausführbar machen:
-
@liv-in-sky Global
bashper sudo ausführbar zu machen ist ein Rezept für Desaster. So kann jeder, der Kontrolle über den Admin hat, jedes x-beliebige Skript als root ausführen! Das hebelt das non-root-Konzept von ioBroker komplett aus!Besser:
- Skript ausführbar machen:
sudo chmod +x /opt/iobroker/scripte/backupscript.sh - Sicherstellen, dass das Skript mit
#!/bin/bashbeginnt - In der
sudoersgenau das Skript/opt/iobroker/scripte/backupscript.sherlauben.
@AlCalzone habe im orginal post zu deiner lösung gepostet
- Skript ausführbar machen:
-
@AlCalzone habe im orginal post zu deiner lösung gepostet

