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