Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Text to Speech

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Nachdem ich letzte Woche auf upgedated habe auf:
    - SmartHomeNG Version: 1.7.1.master (cf2f7d85) in /usr/local/smarthome - tags/v1.7.1
    - SmartHomeNG Plugins Version: 1.7.1.master (5c309c81) in /usr/local/smarthome/plugins - tags/v1.7.1

    wollte ich das AlexaRc4shNG Plugin installieren, bekomme aber einen "Oops, Error 500: The server encountered an unexpected condition which prevented it from fulfilling the request." beim Aufrufen des Webinterfaces.

    Das Fehlerlog sieht so aus:

    2020-05-04 20:53:27 ERROR cherrypy.error.139709652601824 [04/May/2020:20:53:27] HTTP
    > Traceback (most recent call last):
    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 638, in respond
    > self._do_respond(path_info)
    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
    > response.body = self.handler()
    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/lib/encoding.py", line 219, in __call__
    > self.body = self.oldhandler(*args, **kwargs)
    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__
    > return self.callable(*self.args, **self.kwargs)
    > File "/usr/local/smarthome/plugins/alexarc4shng/__init__.py", line 1315, in index
    > return self.render_template('index.html',device_list=myDe vices,csrf_cookie=self.plugin.csrf,alexa_device_co unt=alexa_device_count,time_auto_login=login_info, log_file=log_file)
    > File "/usr/local/smarthome/plugins/alexarc4shng/__init__.py", line 1277, in render_template
    > **kwargs)
    > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/environment.py", line 1090, in render
    > self.environment.handle_exception()
    > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/environment.py", line 832, in handle_exception
    > reraise(*rewrite_traceback_stack(source=source))
    > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/_compat.py", line 28, in reraise
    > raise value.with_traceback(tb)
    > File "/usr/local/smarthome/plugins/alexarc4shng/webif/templates/index.html", line 18, in top-level template code
    > {% set tab4title = 'Communication-Protocol' %}
    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 161, in top-level template code
    > {% if scroll_heading is not defined %}
    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 1, in top-level template code
    > {% block doc -%}
    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 4, in block "doc"
    > {%- block html %}
    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 76, in block "html"
    > {% block body -%}
    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 79, in block "body"
    > {% block content -%}
    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 148, in block "content"
    > {% block bodytab3 %}
    > File "/usr/local/smarthome/plugins/alexarc4shng/webif/templates/index.html", line 218, in block "bodytab3"
    > <a class="float-sm-right" href="#" onclick="reloadCmds();" title="{{ _('Neu Laden', 'button') }}"><span id="refresh-element" class="fas fa-sync"></span></a>
    > TypeError: translate() takes 2 positional arguments but 3 were given
    Meine Plugin.yaml:

    Code:
    AlexaRc4shNG:
        plugin_name: AlexaRc4shNG
        cookiefile: /usr/local/smarthome/plugins/alexarc4shng/cookies.txt
        host: alexa.amazon.de
        alexa_credentials: cGxhbmR0LxNjaHVsdTVAd2ViLmDlLkFjY2VzczRhbWF6b24=  # Credentials geändert
        login_update_cycle: '432000'

    Kann mir jemand einen Tip geben was da schiefläuft?

    Gruss
    Marcus

    Kommentar


      Hallo SMarcus ,

      da ist ein bug im Update enthalten den ich vorher nicht erkannt habe.

      Die Dateien im Anhang bitte in folgende Ordner "schieben". Dann sollte das wieder passen (auf jeden Fall nochmal auf die Rechte schauen)

      Die Datei locale.yaml muss in den Ordner /usr/local/smarthome/plugins/alexarc4shng/
      Die Datei index.html muss in den Ordner /usr/local/smarthome/plugins/alexarc4shng/webif/templates/

      Die locale.yaml ist nur die Übersetzung, die hab ich beim PR vergessen. Den eigentlichen Fehler behebt die index.html.

      Falls das nich funktioniert bitte kurze Info, Danke

      Gruss Andre
      Angehängte Dateien

      Kommentar


        Hi Andre,

        klasse, jetzt funktioniert es. Ich dachte schon das Problem sitzt wieder vor dem Bildschirm.....

        Muss morgen gleich mal ein paar Items und Logiken damit machen. Danke für das coole Plugin.

        Danke und Gute Nacht!

        MS

        Kommentar


          Da ist noch was...

          Über das Webinterface geht alles, wenn ich die Sprachausgabe aber über eine Logik anstosse, bekommen ich ein:

          Code:
          2020-05-06 19:14:41 ERROR logics.alexa_passt_auf Logic: logics.alexa_passt_auf, File: /usr/local/smarthome/logics/alexa_passt_auf.py, Line: 50, Method: <module>, Exception: 'SmartHome' object has no attribute 'alexarc4shng'
          > Traceback (most recent call last):
          > File "/usr/local/smarthome/lib/scheduler.py", line 527, in _task
          > exec(obj.bytecode)
          > File "/usr/local/smarthome/logics/alexa_passt_auf.py", line 50, in <module>
          > sh.alexarc4shng.send_cmd('Wecker','Text2Speech','Darf ich kürz stören? Das Tor in der Einfahrt wurde gerade geöffnet.')
          > AttributeError: 'SmartHome' object has no attribute 'alexarc4shng'
          Erstmal eigentlich logisch, da es in meiner item.yaml kein "sh.alexarc4shng" gibt. Sollte da eins sein?
          der ist das das On/Off item "item_2_enable_alexa_rc"? In der ganzen Doku habe ich ansonsten keinen Hinweis darauf gefunden.
          Oder liegt es an etwas anderem?

          Marcus

          Kommentar


            Bei mir sieht das so aus:
            Code:
            sh.AlexaRc4shNG.send_cmd('Echo_Wohnzimmer','Text2Speech', text)
            Groß / Kleinschreibung?

            Kommentar


              Danke schuma. Daran lags, jetzt geht es. Aber dann ist ja die Doku falsch ?

              Code:
              example how to use in logics:
              
              sh.alexarc4shng.send_cmd("yourDevice", "Text2Speech", "yourValue")
              ---
              sh.alexarc4shng.send_cmd('Kueche','Text2Speech','Der Sensor der Hebenlage signalisiert ein Problem.')
              Echt super nützlich das plugin.....

              Kommentar


                Das ist nur teilweise richtig.
                ja, man sollte die Doku dahingehend anpassen damit man out of the Box das Ding zum Laufen bekommt.

                Aber am Ende ist es halt der Eintrag den den Du in der Plugin.yaml angelegt hast:
                Code:
                AlexaRc4shNG:
                plugin_name: AlexaRc4shNG
                # class_name: alexarc4shng
                # class_path: plugins.alexarc4shng
                Und der könnte ja durchaus anders sein.

                Grüße, Marc

                Kommentar


                  Thanks. Im Nachhinein absolut logisch.
                  Ist aber etwas verwirrend wenn in der gleichen Doku die plugin.yaml und das Beispiel nicht zusammenpassen.

                  Gruss
                  Marcus

                  Kommentar


                    Das ist falsch:
                    Zitat von schuma Beitrag anzeigen
                    Code:

                    AlexaRc4shNG: plugin_name: AlexaRc4shNG # class_name: alexarc4shng # class_path: plugins.alexarc4shng
                    Und der könnte ja durchaus anders sein.
                    plugin_name muss lowercase sein. (so wie der Name des Verzeichnisses in /plugins geschrieben ist) und der class_name ist case sensitive.
                    (Außerdem fehlen die Einrückungen)

                    Wenn das in dieser Form beschrieben werden soll, muss das zumindest so heissen:

                    Code:
                    AlexaRc4shNG:
                        plugin_name: alexarc4shng
                        # class_name: AlexaRc4shNG 
                        # class_path: plugins.alexarc4shng
                    Es sollte in Zukunft auch nur noch **plugin_name** verwendet werden. (Die Admin GUI macht das auch so).
                    Viele Grüße
                    Martin

                    There is no cloud. It's only someone else's computer.

                    Kommentar


                      AndreK hattest du die offenen Themen im Plugin eigentlich schon gepusht? Ich hatte die letzte Zeit leider nicht so ganz den Blick auf die Themen hier :-/ Nur damit wir nicht auf ewig Bugs im Plugin haben

                      Kommentar


                        Hab das Plugin auch mal probiert. Ist wirklich cool endlich die Alexa fernsteuern zu können. Da kann ich einige Squeezeboxes ausmustern bzw umstellen.
                        Leider hab ich ein Problem damit das Plugin in den Items zu nutzen. Von admin WebIf aus funktioniert alles tadelos. Auch in den Items hat es schon mal funktioniert.

                        Plugin ist ohne Probleme eingeloggt (mit cookie transfer vom Browser):
                        HTML-Code:
                        2020-06-08 18:15:18 Login-State checked - Result: Logged ON
                        2020-06-08 18:15:18 Status of check_login_state: 200
                        Hier der relevante Teil der Items definition:
                        HTML-Code:
                        EG:
                            Kueche:
                               Licht:
                                   type: bool
                                   visu_acl: rw
                                   knx_dpt: 1
                                   knx_cache: 1/1/4
                                   knx_send: 1/0/4
                                   alexa_name: Licht Küche
                                   alexa_description: Küche Spots Decke
                                   alexa_actions: TurnOn TurnOff
                                   alexa_icon: LIGHT
                                   alexa_cmd_01: True:Esszimmer:VolumeSet:40
                                   alexa_cmd_02: True:Esszimmer:StartTuneInStation:s265060
                                   alexa_cmd_03: True:Esszimmer:Text2Speech:Hallo
                                   alexa_cmd_04: 'False:Esszimmer:Pause: '
                        Nach ein paar Tests hab ich jetzt laufend diese Fehlemeldung:

                        HTML-Code:
                        2020-06-08 18:25:19 ERROR lib.item Item EG.Kueche.Licht: problem running <bound method AlexaRc4shNG.update_item of <plugins.alexarc4shng.AlexaRc4shNG object at 0x7f1a1bef6a90>>: Invalid URL '/api/np/player?deviceSerialNumber=<serialNumber>&deviceTyp e=<deviceType>': No schema supplied. Perhaps you meant http:///api/np/player?deviceSerialNumber=<serialNumber>&deviceTyp e=<deviceType>?
                        
                        Traceback (most recent call last):
                        File "/usr/local/smarthome/lib/item.py", line 2395, in __update
                        method(self, caller, source, dest)
                        File "/usr/local/smarthome/plugins/alexarc4shng/__init__.py", line 336, in update_item
                        httpStatus, myPlayerInfo = self.receive_info_by_request(myCommand.EndPoint,"L oadPlayerInfo","")
                        File "/usr/local/smarthome/plugins/alexarc4shng/__init__.py", line 508, in receive_info_by_request
                        response= mySession.get(myUrl,headers=myHeader,allow_redirec ts=True)
                        File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
                        return self.request('GET', url, **kwargs)
                        File "/usr/lib/python3/dist-packages/requests/sessions.py", line 519, in request
                        prep = self.prepare_request(req)
                        File "/usr/lib/python3/dist-packages/requests/sessions.py", line 462, in prepare_request
                        hooks=merge_hooks(request.hooks, self.hooks),
                        File "/usr/lib/python3/dist-packages/requests/models.py", line 313, in prepare
                        self.prepare_url(url, params)
                        File "/usr/lib/python3/dist-packages/requests/models.py", line 387, in prepare_url
                        raise MissingSchema(error)
                        
                        requests.exceptions.MissingSchema: Invalid URL '/api/np/player?deviceSerialNumber=<serialNumber>&deviceTyp e=<deviceType>': No schema supplied. Perhaps you meant http:///api/np/player?deviceSerialNumber=<serialNumber>&deviceTyp e=<deviceType>?
                        Natürlich existiert das Device mit dem Name "Esszimmer":
                        Screenshot 2020-06-08 at 18.34.59.png

                        Bug, oder mache ich was falsch ??

                        Kommentar


                          Hallo Foxi352,

                          lass mal den ersten Eintrag :
                          Zitat von Foxi352 Beitrag anzeigen
                          alexa_cmd_01: True:Esszimmer:VolumeSet:40
                          weg.
                          Es scheint, dass kein aktueller gültiger Wert für Volume vom Device ermittelt werden konnte bzw. das die Abfrage auf einen Fehler läuft.
                          Bitte numeriere die Kommandos dann wieder neu durch.

                          Ich werde das mal nachstellen.

                          Gruss Andre

                          Kommentar


                            Zitat von AndreK Beitrag anzeigen
                            lass mal den ersten Eintrag : weg.
                            Es scheint, dass kein aktueller gültiger Wert für Volume vom Device ermittelt werden konnte bzw. das die Abfrage auf einen Fehler läuft.
                            Bitte numeriere die Kommandos dann wieder neu durch.
                            Super, scheint zu klappen ! Danke.
                            Ausser, dass er natürlich jetzt nicht mehr das Default Volume setzt, das ist momentan aber OK.

                            Es hat aber auch schon vorher mal mit dem VolumeSet funktioniert. Ich kann aber (bis jetzt) nicht genau sagen wann es funktioniert und wann nicht ...
                            Ich habe eine Türklingel Logik in der ich auch das AlexaRC eingebaut hatte und ein VolumeSet auf eine Gruppe (Erdgeschoss) mache. Auch das funktioniert nicht mehr. Werde auch mal ohne VolumeSet probieren ...

                            Andere Frage: Man kann vermutlich keine Text2Speech auf eine Gruppe machen ?

                            Momentan mache ich bei Türklingel ein VolumeSet auf die Gruppe, und dann 4 einzelne Text2Speech ...

                            Kommentar


                              AndreK Läuft zwar wie gesagt jetzt, aber nie sehr lange. Wenn ich dann im WebIF des Plugin's schaue sehe ich folgendes wenn's nicht mehr funktioniert:

                              Code:
                               2020-06-15 17:42:33 successfully logged off
                              Ich kann mich nicht mit Usernamen / Password einloggen da ich 2FA nutze und so bei jedem SHNG Start eine SMS von Amazon bekomme mit dem Code. Den kann ich ja aber nirgends eingeben.

                              Deshalb nutze ich die Cookies.txt. Ich logge mich mit Chrome ein, setze auch das Häckchen bei "Angemeldet bleiben". Exportiere das Cookie dann und mache ein Paste in das WebIF wo ich dann auch speichere. Das Cookie funktioniert dann auch im Plugin, nur halt nicht sehr lange ...

                              Mache ich was falsch ?

                              Kommentar


                                Hallo Foxi352 ,

                                Du machst nichts falsch !

                                mit MFA kannst du noch folgendes probieren. Ich selbst bin noch nicht dazu gekommen das auszutesten.
                                Bei mir läuft ohne MFA der Auto-Login alle 5 Tage ohne Probleme durch (Ok, folgende Einschränkung, ich bekomme jedesmal per SMS und mail den Hinweis das sich jemand eingeloggt hat)
                                Laut EDOMI-Forum tut das. Wie gesagt selbst nicht getestet.

                                Wie lange hält Deine importiertes Cookie ?
                                Würde mich nur interessieren da die bei Amazon sehr viel umgestellt haben und ich selbst mit dem Auto-Login ohne Probleme unterwegs bin.

                                Gruss Andre

                                Kommentar

                                Lädt...
                                X