NEWS
[Major Update] UniFi Adapter v0.5.0
-
@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 20
einen 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.xxx
Die 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 20
Passt 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
-
@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:
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
-
hast du im blockly mal ohne "sudo bash" vor befehl getestet
-
@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
-
@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
-
@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:
hast du ml alle vrianten durchgespielt - bei mir funktioniert sudo bash...... nicht
aber bash...... funktioniert
und nur /opt/iobroker/cam.sh funktioniert auchAlle 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 20
Ist mir unbegreiflich.
-
@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 vorneWenn 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...
-
@liv-in-sky Global
bash
per 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/bash
beginnt - In der
sudoers
genau das Skript/opt/iobroker/scripte/backupscript.sh
erlauben.
- Skript ausführbar machen:
-
@AlCalzone guter tipp - muss ich mir merken
-
@AlCalzone habe im orginal post zu deiner lösung gepostet
-
@liv-in-sky Solltest du ggf. noch testen, nicht dass ich was vergessen habe
-
@AlCalzone müßte funktionieren - eigentlich steht deine lösung in meinem beispiel
das ist ein eigenes script