Schmeiß doch einfach mal ein Item rein. Das haste ja mit 3 Zeilen drin und starte den service mal durch.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Umfrage: Amazon Echo
Einklappen
X
-
Um das auch nochmal von meiner Seite klarzustellen: cherrypy kann gerne genutzt werden und sollte auch Basis für das erste Release sein. Die Abhängiigkeit rauszubekommen steht erstmal hinten an, kann aber doch diskutiert werden. Und natürlich ist CherryPy bloated, ein Blick in die Cherrypy API reicht
Gruss,
Stefan
Kommentar
-
patrickgoll so wieder am pc.. sag mal: du hattest anfangs doch mal gemeint, dass man die transkription bekommen und die sh requests innerhalb des lokalen netzwerks lassen kann. das geht dann wohl doch nicht, oder? das muss zwingend von amazon ausgehen?
Kommentar
-
ok das erste "alexa_actions = turnOn turnOff" und es kracht. seltsam ist, dass er jetzt über den vom backend belegten port 1234 meckert, dabei habe ich port 9000 für alexa konfiguriert..
Code:[03/Dec/2016:16:39:12] ENGINE Error in 'start' listener <bound method Server.start of <cherrypy._cpserver.Server object at 0x7fd8b3cfecc0>> Traceback (most recent call last): File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/wspbus.py", line 207, in publish output.append(listener(*args, **kwargs)) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/_cpserver.py", line 168, in start ServerAdapter.start(self) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/servers.py", line 172, in start wait_for_free_port(*self.bind_addr) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/servers.py", line 443, in wait_for_free_port raise IOError('Port %r not free on %r' % (port, host)) OSError: Port 1234 not free on '192.168.178.100' 2016-12-03 16:39:12 ERROR _cplogging BackendServer [03/Dec/2016:16:39:12] ENGINE Error in 'start' listener <bound method Server.start of <cherrypy._cpserver.Server object at 0x7fd8b3cfecc0>> Traceback (most recent call last): File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/wspbus.py", line 207, in publish output.append(listener(*args, **kwargs)) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/_cpserver.py", line 168, in start ServerAdapter.start(self) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/servers.py", line 172, in start wait_for_free_port(*self.bind_addr) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/servers.py", line 443, in wait_for_free_port raise IOError('Port %r not free on %r' % (port, host)) OSError: Port 1234 not free on '192.168.178.100' -- _cplogging.py:error:219 [03/Dec/2016:16:39:12] ENGINE Shutting down due to error in start listener: Traceback (most recent call last): File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/wspbus.py", line 245, in start self.publish('start') File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/wspbus.py", line 225, in publish raise exc cherrypy.process.wspbus.ChannelFailures: OSError("Port 1234 not free on '192.168.178.100'",) 2016-12-03 16:39:12 ERROR _cplogging BackendServer [03/Dec/2016:16:39:12] ENGINE Shutting down due to error in start listener: Traceback (most recent call last): File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/wspbus.py", line 245, in start self.publish('start') File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/process/wspbus.py", line 225, in publish raise exc cherrypy.process.wspbus.ChannelFailures: OSError("Port 1234 not free on '192.168.178.100'",) -- _cplogging.py:error:219
2016-12-03 16:43:18 INFO _cplogging alexa [03/Dec/2016:16:43:18] ENGINE Serving on http://192.168.178.100:1234 -- _cplogging.py:error:219Zuletzt geändert von psilo; 03.12.2016, 16:58.
- Likes 1
Kommentar
-
Grundlegend kann man wohl schon mehrere Serverinstanzen starten: http://www.zacwitte.com/running-cher...-ports-example. bisher schlagen meine Versuche aber fehl.. Mglw. ist das Problem eben auch, dass wir 2mal cherrypy.engine.start() machen... das anders zu machen sollte bei der aktuellen architektur aber so gut wie unmöglich werden.
Kommentar
-
btw patrickgoll , hast du bei discovery auch mehrere discovery requests? das ist ja das reinste DOS:
Code:2016-12-03 17:35:19 DEBUG CP Server Thread-11 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:19 INFO CP Server Thread-11 192.168.16.8 - - [03/Dec/2016:17:35:19] "POST / HTTP/1.0" 200 1214 "" "" 2016-12-03 17:35:19 DEBUG CP Server Thread-12 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:19 INFO CP Server Thread-12 192.168.16.8 - - [03/Dec/2016:17:35:19] "POST / HTTP/1.0" 200 1214 "" "" 2016-12-03 17:35:19 DEBUG CP Server Thread-13 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:19 INFO CP Server Thread-13 192.168.16.8 - - [03/Dec/2016:17:35:19] "POST / HTTP/1.0" 200 1214 "" "" 2016-12-03 17:35:20 DEBUG CP Server Thread-14 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:20 INFO CP Server Thread-14 192.168.16.8 - - [03/Dec/2016:17:35:20] "POST / HTTP/1.0" 200 1214 "" ""
Kommentar
-
hier auch nochmal aus der doku: http://docs.cherrypy.org/en/latest/a...ervers-support
wenn wir jetzt noch wüssten, in welcher reihenfolge die plugins geladen werden und wir nur am ende ein start machen könnten...
achja bei konfiguriertem Port kriege ich noch ein: TypeError: an integer is required (got type str)
bitte daher noch in int casten.
ps ich schaffe jetzt auf 2 ports zu starten. leider 2x den backendserver:
2016-12-03 18:00:08 INFO _cplogging BackendServer [03/Dec/2016:18:00:08] ENGINE Serving on http://192.168.178.100:1234 -- _cplogging.py:error:219
[03/Dec/2016:18:00:08] ENGINE Serving on http://192.168.178.100:9000
2016-12-03 18:00:08 INFO _cplogging BackendServer [03/Dec/2016:18:00:08] ENGINE Serving on http://192.168.178.100:9000 -- _cplogging.py:error:219
[03/Dec/2016:18:00:08] ENGINE Bus STARTED
code ist
Code:self.logger.info("Alexa: service setup at {}:{}".format(host, port)) from cherrypy._cpserver import Server server = Server() server.socket_host = host server.socket_port = int(port) server.subscribe()
cherrypy.tree.mount
sein
in der start methode habe ich das start auskommentiert und nur im backend drin gelassen:
#cherrypy.engine.start()
PS: ich bin mir fast sicher, dass man das mit änderungen in beiden plugins hinbekommt..Zuletzt geändert von psilo; 03.12.2016, 18:07.
Kommentar
-
es wird besser:
2016-12-03 18:10:33 DEBUG plugin Main Starting BackendServer Plugin -- plugin.py:start:102
[03/Dec/2016:18:10:33] ENGINE Serving on http://192.168.178.100:9000
2016-12-03 18:10:33 INFO _cplogging alexa [03/Dec/2016:18:10:33] ENGINE Serving on http://192.168.178.100:9000 -- _cplogging.py:error:219
[03/Dec/2016:18:10:33] ENGINE Serving on http://192.168.178.100:1234
Code:from cherrypy._cpserver import Server self.server = Server() self.server.socket_host = host self.server.socket_port = int(port) self.server.subscribe()
Code:def start(self): self.logger.info("Alexa: service starting") self.server.start() def stop(self): self.logger.info("Alexa: service stopping") self.server.stop()
starten und stoppen geht sauber, das backend habe ich genauso umgebaut.Zuletzt geändert von psilo; 03.12.2016, 18:17.
Kommentar
-
hotzen dann geht das mit dem requirements file doch sicher auch gleich nochich schaue jetzt mal, wie man das mit dem tree mount bei multiinstanz cherrypy macht. denke da hakt es noch. laut log müssten beide instanzen aber sauber hochfahren. seltsam halt, dass der webspace auf beiden ports der vom backend ist
PS: pushe gerade das gepatchte backend in den DEV. dann könnt ihr leichter mithelfen das hinzubekommen.
Kommentar
-
YES... im alexa habe ich nun cherrypy.tree.mount(self, '/test') stehen.
ein aufruf im browser ergibt zwar einen 500er, es sieht aber nach eurer alexa schnittstelle aus:
Code:Traceback (most recent call last): File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/_cprequest.py", line 670, in respond response.body = self.handler() File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/lib/encoding.py", line 220, in __call__ self.body = self.oldhandler(*args, **kwargs) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/lib/jsontools.py", line 61, in json_handler value = cherrypy.serving.request._json_inner_handler(*args, **kwargs) File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/_cpdispatch.py", line 60, in __call__ return self.callable(*self.args, **self.kwargs) File "/volume1/python/smarthome/plugins/alexa/service.py", line 35, in index req = cherrypy.request.json File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/cherrypy/__init__.py", line 232, in __getattr__ return getattr(child, name) AttributeError: 'Request' object has no attribute 'json'
hotzen baust du das plugin um?
update: der einzige mist ist, dass auf beiden ports jetzt beide anwendungen reagieren. und die basic auth vom backend zieht auch. wenn man das noch instanzabhaengig kriegt, wärs perfekt. aber wenigstens könnte man beide plugins parallel betreiben
das dürfte den aktuellen stand zusammenfassen: http://stackoverflow.com/questions/7...multiple-portsZuletzt geändert von psilo; 03.12.2016, 18:41.
Kommentar
-
Zitat von hotzen Beitrag anzeigenbtw patrickgoll , hast du bei discovery auch mehrere discovery requests? das ist ja das reinste DOS:
Code:2016-12-03 17:35:19 DEBUG CP Server Thread-11 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:19 INFO CP Server Thread-11 192.168.16.8 - - [03/Dec/2016:17:35:19] "POST / HTTP/1.0" 200 1214 "" "" 2016-12-03 17:35:19 DEBUG CP Server Thread-12 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:19 INFO CP Server Thread-12 192.168.16.8 - - [03/Dec/2016:17:35:19] "POST / HTTP/1.0" 200 1214 "" "" 2016-12-03 17:35:19 DEBUG CP Server Thread-13 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:19 INFO CP Server Thread-13 192.168.16.8 - - [03/Dec/2016:17:35:19] "POST / HTTP/1.0" 200 1214 "" "" 2016-12-03 17:35:20 DEBUG CP Server Thread-14 Alexa: discovery-directive 'DiscoverAppliancesRequest' received 2016-12-03 17:35:20 INFO CP Server Thread-14 192.168.16.8 - - [03/Dec/2016:17:35:20] "POST / HTTP/1.0" 200 1214 "" ""
- Likes 1
Kommentar
Kommentar