NEWS
XML Befehl über Blockly
-
Guten Morgen,
ich möchte diesen Befehl gerne über Blockly ausführen. Kann mir da einer vielleicht bei helfen?
def öffnen():
import xmlrpc.client
IPaddress='192.xxx.xx.xxx'
def run(IPaddress, port=8081):
URI="http://{0}:{1}".format(IPaddress,port)
with xmlrpc.client.ServerProxy(URI) as proxy:
results=proxy.SetOpen()
run(IPaddress)Grüße
Nereos
-
Guten Morgen,
ich möchte diesen Befehl gerne über Blockly ausführen. Kann mir da einer vielleicht bei helfen?
def öffnen():
import xmlrpc.client
IPaddress='192.xxx.xx.xxx'
def run(IPaddress, port=8081):
URI="http://{0}:{1}".format(IPaddress,port)
with xmlrpc.client.ServerProxy(URI) as proxy:
results=proxy.SetOpen()
run(IPaddress)Grüße
Nereos
-
@Nereos Das ist ja mehr eine Funktion die ausgeführt werden soll:
run(IPadress) wo soll es denn aus geführt werden und wie wird es denn jetzt ausgeführt?
Ist das eine Datei auf Systemebene? Phyton oder so ?
Was steht in xmlrpc.client?@MCU Moinsen, ich möchte die Maschine mit dem Befehl SetOpen() öffnen. Auf der Maschine ist ein XMLRPC Server.Über Python hab ich das schon hin bekommen, das die Maschine öffnet. Ich breche mir aber die Ohren die ganzen Taster etc mit Python zu bauen und eine Anständige Oberfläche zu bauen. Ich hab auf dem Pi jetzt die Python Dateien für öffnen und schliessen abgelegt. und Python 3.8 auch auf dem Pi installiert. nun wollte ich mit einem SW Button den Befehl ausführen. bekomme ich aber einfach nicht hin. vielleicht gibt es ja eine einfachere Möglichkeit.
-
@MCU Moinsen, ich möchte die Maschine mit dem Befehl SetOpen() öffnen. Auf der Maschine ist ein XMLRPC Server.Über Python hab ich das schon hin bekommen, das die Maschine öffnet. Ich breche mir aber die Ohren die ganzen Taster etc mit Python zu bauen und eine Anständige Oberfläche zu bauen. Ich hab auf dem Pi jetzt die Python Dateien für öffnen und schliessen abgelegt. und Python 3.8 auch auf dem Pi installiert. nun wollte ich mit einem SW Button den Befehl ausführen. bekomme ich aber einfach nicht hin. vielleicht gibt es ja eine einfachere Möglichkeit.
-
@Nereos Ist es möglich auf der Maschine den Phyton Befehl direkt einzugeben und auszuführen:

so ähnlich?
-
@MCU hi,
Datei sieht so aus:
import xmlrpc.client
def run(IPaddress,port=8081):
URI="http://{0}:{1}".format(IPaddress,port)
with xmlrpc.client.ServerProxy(URI) as proxy:
results=proxy.SetOpen(1)
if name == "main":
IPaddress="192.xxx.xx.xxx"
run(IPaddress)Und liegt hier:
/home/pi/test
Wenn ich in den Ordner wechsle und dann python auf.py eingebe geht es.
Über de nIOBroke bekomme ich das irgendwie nicht hin.
-
@MCU hi,
Datei sieht so aus:
import xmlrpc.client
def run(IPaddress,port=8081):
URI="http://{0}:{1}".format(IPaddress,port)
with xmlrpc.client.ServerProxy(URI) as proxy:
results=proxy.SetOpen(1)
if name == "main":
IPaddress="192.xxx.xx.xxx"
run(IPaddress)Und liegt hier:
/home/pi/test
Wenn ich in den Ordner wechsle und dann python auf.py eingebe geht es.
Über de nIOBroke bekomme ich das irgendwie nicht hin.
-
evtl muss der befehl python in das sudoers file eingetragen werden, wenn sudo genutzt werden soll
-
evtl muss der befehl python in das sudoers file eingetragen werden, wenn sudo genutzt werden soll
@liv-in-sky 🤷♂️Was ist den das für ein file? Voll keinen Plan.
-
@liv-in-sky 🤷♂️Was ist den das für ein file? Voll keinen Plan.
kann es nicht testen - aber versuch mal (console)
überprüfe, ob der pfad zu python auch stimmt
which pythonsollte dann: /usr/bin/python rauskommen
unter /etc/sudoers.d brauchst du eine datei z.b. iobroker-own
sudo nano /etc/sudoers.d/iobroker-owndort musst du die befehle eingeben, die du brauchst
ein beispiel von mir:

du müßtest eine zeile haben die so aussieht
iobroker ALL=(ALL) NOPASSWD: /usr/bin/python /path/to/the/auf.pymit control-x schliesst du den nano-texteditor und speicherst die datei
@AlCalzone - hast du da einen idee dazu?
-
kann es nicht testen - aber versuch mal (console)
überprüfe, ob der pfad zu python auch stimmt
which pythonsollte dann: /usr/bin/python rauskommen
unter /etc/sudoers.d brauchst du eine datei z.b. iobroker-own
sudo nano /etc/sudoers.d/iobroker-owndort musst du die befehle eingeben, die du brauchst
ein beispiel von mir:

du müßtest eine zeile haben die so aussieht
iobroker ALL=(ALL) NOPASSWD: /usr/bin/python /path/to/the/auf.pymit control-x schliesst du den nano-texteditor und speicherst die datei
@AlCalzone - hast du da einen idee dazu?
@Nereos @liv-in-sky Lasst das
sudoweg - sollte für HTTP-Server jenseits Port 80 überhaupt nicht nötig sein.Außerdem:
Das Skript muss in einem Ordner liegen, wo der UseriobrokerZugriff hat, also z.B./home/iobroker, nicht im Home-Verzeichnis eines anderen Users.
Dann lautet der Befehl einfachpython /pfad/zum/skript/auf.py


