Hallo zusammen,
als blutiger python Anfänger habe ich es geschaft ein kleines Programm in Phyton zu erstellen, welches meinen Staubsauger startet / pausiert / zum laden schickt.
Der Code sieht so aus:
Was ich nicht hinbekomme ist das ganze in smarthome zu integrieren. Ich habe mir mittlerweile so gut wie jedes plugin angeschaut, werde aber nicht schlau daraus. Ebenso bei der Anleitung bei dem skeleton Plugin.
Konkret ist mir nicht klar wie ich smarthome dazu bewegen kann nach drücken eines Buttons in der Visu die url anzusteuern.
Wenn ich es richtig verstanden habe müsste ich es mittels update_item lösen. Ich versuche jetzt schon lange rum, bekomme aber den Ansatz nicht hin.
die item.conf sieht so aus:
und die __init__.py so:
Wäre schön wenn mir jemand einen Tipp geben könnte was alles falsch ist.
Bitte nicht zu streng sein. Fange gerade erst an mit python :-)
Danke!
Stefan
als blutiger python Anfänger habe ich es geschaft ein kleines Programm in Phyton zu erstellen, welches meinen Staubsauger startet / pausiert / zum laden schickt.
Der Code sieht so aus:
Code:
#!/usr/bin/env python3 import urllib.request import requests eingabe = 0 print("Wähle 1 zum Start, 2 zur Pausierung, 3 zum anfahren der Ladestation und 4 zum beenden") while eingabe != 4: eingabe = int(input("Auswahl: ")) if eingabe == 1: print("Staubsauger wird gestartet") urllib.request.urlopen("http://192.168.178.92:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d").read() if eingabe == 2: print("Staubsauger wird angehalten") response = requests.get('http://' + host + ':' + port + '/json.cgi?%7b%22COMMAND%22:%22PAUSE%22%7d') if eingabe == 3: print("Staubsauger fährt Ladestation an") response = requests.get('http://' + host + ':' + port + '/json.cgi?%7b%22COMMAND%22:%22HOMING%22%7d') print("Ende")
Konkret ist mir nicht klar wie ich smarthome dazu bewegen kann nach drücken eines Buttons in der Visu die url anzusteuern.
Wenn ich es richtig verstanden habe müsste ich es mittels update_item lösen. Ich versuche jetzt schon lange rum, bekomme aber den Ansatz nicht hin.
die item.conf sieht so aus:
Code:
# items/lghomebot.conf [lghomebot] [[start]] type = bool name = Start visu_acl = rw [[pause]] type = bool name = Pause visu_acl = rw [[home]] type = bool name = Pause visu_acl = rw
Code:
#!/usr/bin/env python3 import logging from datetime import datetime, timedelta import urllib.request logger = logging.getLogger('') class lghomebot(): def __init__(self): self.logger = logging.getLogger(__name__) self._sh = smarthome def push(self): urllib.request.urlopen("http://192.168.178.92:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d").read() logger.debug("Send start to IP {0} at Port {1}".format(self._host, self._port)) time.sleep(0.1) def run(self): self.alive = True def stop(self): self.alive = False def update_item(self, item, caller=None, source=None, dest=None): if 'lghomebot.start' in item.conf: value = item() if value == true: self.push() time.sleep(0.1) value = false
Bitte nicht zu streng sein. Fange gerade erst an mit python :-)
Danke!
Stefan
Kommentar