Hallo liebe Leserinnen und Leser!
Ich habe mir gerade ein kleines Python-Script gebastelt, um den Status meiner Funksteckdosen auch von einem anderen Rechner aus via Python abfragen zu können. Dieses Script setzt voraus, dass ihr einen Raspberry oder Banana Pi mit dem nach den jeweiligen Tutorials (hier für den Raspberry Pi bzw. hier für den Banana Pi) eingerichteten Webinterface (bzw. Daemon) in eurem Netzwerk habt. Wichtig ist vor allem, dass der für das Webinterface benötigte Daemon auf dem Server läuft. Der Status wird von diesem ausgelesen. Änderungen des Status der Steckdosen über den „send“-Befehl via Terminal o.ä. werden hier natürlich nicht berücksichtigt. Daher solltet ihr, um das Script sinnvoll einsetzen zu können, die Dosen nur über den Daemon schalten.
Hier ist das Python-Script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #!/usr/bin/python import socket import argparse # IP-Adresse des Servers und Port des Daemons address = '192.168.11.56' # Anpassen! port= 11337 # Anpassen, falls geaendert # Haus-Code der Funksteckdosen house_code = '11010' # DIP-Code status = '' parser = argparse.ArgumentParser() parser.add_argument("device_code") args = parser.parse_args() device_code = args.device_code sock = socket.socket() try: sock.connect((address,port)) sock.send(house_code+device_code+'2') status = sock.recv(2048) except Exception, e: print e if status == '1': print 'an' elif status == '0': print 'aus' else: print 'Status konnte nicht ermittelt werden' |
Zur Benutzung: Speichert das Script auf eurem PC o.ä., mit dem ihr den Status der Steckdosen abfragen wollt. Die nötigen Anpassung könnt ihr den Kommentaren im Script entnehmen. Um es aufzurufen, muss ein Kommandozeilenparameter für die Steckdosen-Nummer genutzt werden, für „A“ „01“, für „B“ „02“ usw.. Habt ihr das Script auch unter dem Namen „socket_test.py“ gepeichert, müsst ihr also z.B. „python socket_test.py 01“ eingeben, um den Status der Steckdose „A“ abzufragen.
Gutes Gelingen!
Danke für den Code! Bräuchte für mein Projekt sowas in PHP. Hast du dafür auch eine Idee?
LG
Hallo Stefan,

da sowas ja eigentlich beim Webinterface bereits integriert ist und mann den Daemon auch von außen ansprechen kann, ist die Umsetzung recht simpel. Hier mal mein schnell gecodetes Beispiel dazu:
Cool, danke! Scheint zu funktionieren.
Ich hätte eine Frage und zwar bekomme ich als Rückgabe, wenn ich das Python-Script ausführe nur so etwas:
message: 10000012
nSys: 1
nGroup: 00000
nSwitchNumber: 12
nAction: -48
nAddr: 12
nPlugs: 1024
Kannst du mir bitte eventuell weiterhelfen?
Mir ist die Abfrage des Status der Steckdose sehr wichtig.
Vielen Dank im voraus!
Hallo Johannes,
wenn du eine neuere Version von raspberry-remote benutzt, kann das ein Problem im Zusammenspiel mit diesem Script darstellen. Schau dir mal diesen Code an (in PHP geschrieben), da sollten alle benötigten Parameter für die neueren Versionen enthalten sein.