Dann gibst du den Handys feste IP und pingst die jeweilige IP alle paar Sekunden an, wenn es in der Nähe sein sollte.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Alexa Text to Speech
Einklappen
X
-
Dann gibst du den Handys feste IP und pingst die jeweilige IP alle paar Sekunden an, wenn es in der Nähe sein sollte.
Jetzt kommt mir: wenn es ausgeschaltet ist könnte es sein, dass der Ping nicht durchkommt.. Vermutlich begrüßt es mich dann dauernd. Aber auch das ist zu beobachten.Vielleicht in Kombi mit dem Status der Fritzbox, der ist da irgendwie toleranter.Zuletzt geändert von psilo; 05.05.2019, 17:06.
Kommentar
-
Kurzes Feedback: das plugin lief jetzt mehrere tage, auf einmal startet es nach einem neustart des core wieder nicht - das cookie lässt sich auch nicht tauschen, da das webif nicht hochkommt
Code:2019-05-12 12:29:05 ERROR lib.plugin Plugin 'alexarc4shng' from section 'alexarc4shng' exception: a float is required > Traceback (most recent call last): > File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 539, in getDevicesbyCurl > mybody = body.decode() > UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte During handling of the above exception, another exception occurred: > Traceback (most recent call last): > File "/python/smarthome/lib/plugin.py", line 145, in __init__ > plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta, self._gtrans) > File "/python/smarthome/lib/plugin.py", line 627, in __init__ > exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring)) > File "<string>", line 1, in <module> > File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 123, in __init__ > self.Echos = self.getDevicesbyCurl() > File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 545, in getDevicesbyCurl > self.logger.debug('Error while getting Devices: %err' %err) > TypeError: a float is required
Kommentar
-
nachdem ich das cookie jetzt via textdatei ersetzt habe, geht es nach neustart wieder.. offenbar timed das cookie aber nach wenigen tagen aus.
oder es ist identisch mit dem, was ich für das amazon cloud drive nutze, da backuppe ich seit heute morgen fotos hin. beides unschönZuletzt geändert von psilo; 12.05.2019, 12:44.
Kommentar
-
Hallo psilo
ich war diese Woche beruflich unterwegs, daher keine Zeit. Ich habe soeben das Autologin fertiggestellt. Funktioniert jetzt. Muss nur noch das Handling drum herum
fertigstellen.
Das mit dem Fehler aus post #78 - schau ich mir an.
Das Cookie gilt für alle .amazon.de-Seiten daher wahrscheinlich das Problem. Mit dem Autologin bekommst Du dann eine eigene Session-ID nur für das
alexarc4shng-plugin. Das Problem sollte damit gelöst sein.
Ich habe auch meinen Echo-Dot mal auf "Küche" umbenannt. Das funktioniert bei mir ohne Fehlermeldung. Eventuell haben wir unterschiedlich
Stände der Module/Python3 im Einsatz. Bei mir sind die folgenden Versionen am Laufen, vielleicht liegts daran.
urllib3 -> 1.24.3
pycurl -> 7.43.0
python3 -> 3.5.2 final
Es sieht so aus als hätte sich am Web-IF-Template mit 1.6 was geändert (Fontawesome reagiert anders, Seitenaufbau anders), kannst Du dazu was sagen ?
Gruss Andre
Kommentar
-
Hi,
ich teste am Besten nach, wenn Du die neue Version fertig hast.. Glaube die Fehler bei mir waren alle "cookie-related".
Ne, am WebIf hat sich eigentlich nix geändert - aber ich war schon immer auf dem DEV, vielleicht bin ich es daher gewohnt? Die Versionen der 3rd Party Komponenten haben wir halt hochgezogen und Font Awesome sind jetzt die Web-Fonts, nicht mehr die SVGs. Die waren u.U. problematisch. Ist aber schon lange so.
VG und ich freu mich auf die neue Version.
PS: wir können jetzt die Plugins dynamischer releasen.. Damit kriegen wir das neue Plugin dann auch zeitnah raus!
Kommentar
-
Ich hatte übrigens noch eine WARNING im Log:
DEPRECATED: Used function 'sh.return_item()', called in 'class alexarc4shng (plugins.alexarc4shng)' by 'update_item' - use the Items-API instead
Müsstest Du noch auf die Items lib Klasse umstellen.
from lib.item import Items
Init Methode:
self.items = Items.get_instance()
Zugriff:
self.items.return_items()Zuletzt geändert von psilo; 13.05.2019, 17:04.
Kommentar
-
Hallo psilo , henfri , Juergen ,
ich hab auf meinem GitHub-Repo eine aktuelle Version hochgeladen.
Änderungen sind im Readme beschrieben.
Wichtig - die Parameter haben sich geändert, bitte die /etc/plugin.yaml anpassen. (sind jetzt konventions-konform )
Code:alexarc4shng: class_name: alexarc4shng class_path: plugins.alexarc4shng cookiefile: '/usr/local/smarthome/plugins/alexarc4shng/cookies.txt' host: 'alexa.amazon.de' item_2_enable_alexa_rc: "OG.Buero.Alexa" # Item if commands should be send (True/False) - by UZSU or something else alexa_credentials: user@domain.de:password # (base64 encoded) -> take a look at the README login_update_cycle: 500000 # update_time_for_autologin_in_seconds
Für das letzte Login wird eine Datei "lastlogin.txt" im Plugin-Verzeichnis gespeichert. Hier wird lediglich der TimeStamp des letzten Logins hinterlegt.
Der Scheduler prüft alle 5 Minunte (im Moment fix) ob die Zeit für das Erneuern des Cookies erreicht ist. Dann wird neu eingeloggt.
Im Web-Interface kann man sich manuell abmelden/anmelden (Seite mit den Cookies)
Changes :- changed to version 1.0.1
- Autologin
- Changed to lib.item and lib.scheduler
- changed names of parameters and methods to lower case with underscore ("send_cmd_by_curl" statt "SendCmdByCurl")
- added informations to README
- rest of changes see readme
Gruss AndreZuletzt geändert von AndreK; 19.05.2019, 21:01.
Kommentar
-
cool ich ziehs gleich mal. dann kann ich bis inkl samstag noch testen - dann erstmal 2 wochen urlaub
ps: ich sehe gerade ein "self.scheduler.add(...)" im code. das smartplugin hat eigene methoden für die scheduler... self.scheduler_add(...) bitte die nehmen, da es sonst im admin if / backend zu einordnungsproblemen kommt.
hier muss ich erneut auf die developer doku verweisen: https://www.smarthomeng.de/developer...artplugin.html
ich weiss auch nicht, ob man unbedingt mit einer webseite wie https://www.base64encode.org seine ECHTEN amazon zugangsdaten encoden möchtelieber auf python oder php funktionen dafür verweisen.. Msinn wir sollten für das nächste release ins admin IF ein base64encode tool einbauen
und nach restart gleich erster fehler: plugins.alexarc4shng Error while checking login state: Expecting value: line 8 column 1 (char 7)Zuletzt geändert von psilo; 20.05.2019, 18:16.
Kommentar
-
psilo
Das mit dem scheduler hab ich hin und her überlegt was richtig ist, hier ist die Doku, aus meiner Sicht, nicht ganz eindeutig.
Hier wird das so beschrieben, ich habe mir etliche plugins angesehen, dort haben alle die oben erwähnte methode "scheduler_add" implementiert.
Nach deinem Hinweis mit lib.item war ich der Meinung lib.scheduler zu nutzen wäre der richtige Weg. Siehe auch hier.
Was nun ist "richtig" ? (Ohne Wertung)
Ich glaube es ist an dieser Stelle recht schwer den aktuellen "conventions" zu folgen, daher mein Vorschlag eine schlanke guidline für plugins
mit Verweis auf die Doku zu machen. (war eine PN)
Zum Thema redundanter Code :
Es sieht zwar auf den ersten Blick aus als wäre alles redundant, ist es aber nicht, ein Teil ist "curl GET" ein Teil ist "curl POST". OK, die zwei Fallunterscheidungen
kann man sicher zusammenfassen, aber ...
Ich bin immer noch am Testen ob man das nicht mittels "requests" abhandeln kann, bin zwar ein Stück weiter, ist aber noch nicht final.
Ich würde dann die ganze Kommunikation nochmal umbauen.
Wenn sonst alles läuft, ist ja alles gut, sicherlich gibt es noch Optimierungspotential - das Thema ist ja nicht in 100 code-zeilen erledigt.
Gruss Andre
Kommentar
-
scheduler_add wie in der Plugin Doku beschrieben (siehe auch Methoden der SmartPlugin Klasse) ist richtig. So ist das ja auch im sample_plugin (unter /dev/sample_plugin) beschrieben.
Das "Write a Plugin in 5 Minutes" ist grob überholungsbedürftig. Ich habe vor dem Release die gröbsten veralteten Stellen in der Doku beseitigt, die Seite ist aber immer noch in Teilen veraltet.
Im Zweifelsfall immer der Doku zur Klasse SmartPlugin (https://www.smarthomeng.de/developer...artplugin.html) folgen. Diese Beschreibung wird aktuell aus dem Sourcecode generiert.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
Kommentar