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
-
@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.
-
@Nereos Ist es möglich auf der Maschine den Phyton Befehl direkt einzugeben und auszuführen:
so ähnlich?
-
@MCU Probiere ich morgen früh aus. Anlage steht auf der Arbeit.
-
@Nereos Wenn es geht:
-
@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 Geht einfach nicht!
-
-
@MCU Kann es sein, das es mit der Rechte Vergabe zu tun hat oder das ich den Block unter Scripte in die VIS einbinden muss, damit es funktioniert?
-
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.
-
kann es nicht testen - aber versuch mal (console)
überprüfe, ob der pfad zu python auch stimmt
which python
sollte dann: /usr/bin/python rauskommen
unter /etc/sudoers.d brauchst du eine datei z.b. iobroker-own
sudo nano /etc/sudoers.d/iobroker-own
dort 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.py
mit control-x schliesst du den nano-texteditor und speicherst die datei
@AlCalzone - hast du da einen idee dazu?
-
@Nereos @liv-in-sky Lasst das
sudo
weg - sollte für HTTP-Server jenseits Port 80 überhaupt nicht nötig sein.Außerdem:
Das Skript muss in einem Ordner liegen, wo der Useriobroker
Zugriff hat, also z.B./home/iobroker
, nicht im Home-Verzeichnis eines anderen Users.
Dann lautet der Befehl einfachpython /pfad/zum/skript/auf.py