Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Text to Speech

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

    #46
    Hallo psilo,

    hab die Dinge auch bei mir so eingebaut, haben wir doppelt gemacht. Trotz allem würde ich gerne Deine Umsetzung sehen. Die angehängte __init__.txt ist leer.
    Kannst Du die bitte per mail schicken, Danke
    Ich hab den "if line[1]" noch in einen try-block gesteckt. Bei Verzeichnissen wird es keinen Punkt geben somit laufen wir hier auf den nächsten Fehler.

    Was ich nicht verstehe wieso os.getcwd() plötzlich einen anderen Pfad liefert. Am Anfang funktioniert das ja. Das würde heißen das irgendwer (der Core vielleicht) den Pfad des aktuell laufenden Prozesses verbiegt (os.chdir oder os.fchdir ). Kann das sein ? Daher kommen dann auch die Fehler beim Laden der Commandlets.

    Da os.getcwd() an mehreren Stellen verwendet wurde habe ich alle auf self.sh.get_basedir() umgestellt.

    Was hälst Du von der base64-Verschlüsselung der Credentials - ausreichend oder noch was anderes ?

    Gruss Andre

    Kommentar


      #47
      Der hier ist mir auch noch nicht so ganz klar? Warum den Thread immer 2 Sec blockieren?
      Code:
      while self.alive == True:
          time.sleep(2)

      Kommentar


        #48
        Den Sleep hab ich raus, der war am Anfang mal notwendig.

        Kommentar


          #49
          ok, versuch bitte meine sachen von oben irgendwie reinzumergen.. primär habe ich an der init methode und überall wo "cwd" vorkam, was geändert. die init datei ist jetzt im CODE block reingepasted!

          base64 ist besser als nichts. vielleicht ergibt sich ja auch bis 1.7 eine ordentliche über den core bereitgestellte verschlüsselungsmöglichkeit. das cookie sollte imho auch nicht im klartext rumliegen, oder?

          und nochmal frisch in den code schauen. den check wegen "." usw habe ich noch x mal angepasst
          Zuletzt geändert von psilo; 02.05.2019, 18:38.

          Kommentar


            #50
            Hallo,

            alles was ich erkennen konnte ist nun identisch. Ich hole mir lediglich beim __init__ lediglich eine "sh"-Instanz in self.sh = self.get_sh().
            Das sollte aber nicht schädlich sein, oder ?
            Die Prüfung auf den "." (Punkt) hab ich mittels try / except / pass eingebaut.
            Ich uploade mal meine Version, sollte aber passen, das mit base64-encoded ist bereits drin. (Doku muss ich noch anpassen)

            Passt die requirements.txt ?

            Mal abgesehen von dem Fehler von os.getcwd(). Hat der Rest funktioniert ?

            Das mit dem cookie-file lass ich mir nochmal durch den Kopf gehen, das liegt ja auf jedem Rechner im Klartext vor (nur halt nicht komplett für alle Web-Siten)
            An der Stelle könnte man auch nur die Daten für die amazon-Seiten speichern ? Das hatte ich ganz am Anfang schon mal drin.

            Ist hochgeladen 22:32

            Gruss Andre
            Zuletzt geändert von AndreK; 02.05.2019, 21:33.

            Kommentar


              #51
              AndreK ja der rest hat jetzt funktioniert. sag bitte nochmal wenn es einen neuen stand gibt, dann ziehe ich mir den auch.

              das mit self.sh ist schon ok so.

              zum cookie: das liegt halt auf meinem normalen pc und nicht auf nem server, finde ich schon etwas anders vom szenario.

              "An der Stelle könnte man auch nur die Daten für die amazon-Seiten speichern ?" -> wie meinst du das? also login und passwort? dann müsstest du aber den cookie retrieval dynamisch machen, oder?

              Kommentar


                #52
                Zitat von AndreK Beitrag anzeigen
                Ist hochgeladen 22:32
                Gruss Andre

                Kommentar


                  #53
                  hu was hat sich da geändert?
                  Code:
                  2019-05-03  17:21:24 ERROR    lib.item         Item knx.gf.office.light: problem running <bound method alexarc4shng.update_item of <plugins.alexarc4shng.alexarc4shng object at 0x7f967c3d27f0>>: 'NoneType' object has no attribute 'get'
                  > Traceback (most recent call last):
                  >   File "/python/smarthome/lib/item.py", line 2203, in __update
                  >     method(self, caller, source, dest)
                  >   File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 362, in update_item
                  >     self.SendCmdByCurl(myCommand.EndPoint,myCommand.Action,newValue2Set)
                  >   File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 481, in SendCmdByCurl
                  >     actEcho = self.Echos.get(dvName)
                  > AttributeError: 'NoneType' object has no attribute 'get'
                  Offenbar waren die Devices noch nicth alle geladen.. Gäbs de ne Möglichkeit die auch zwischenzuspeichern? Ist aber "schöner Wohnen"

                  Die Methodennamen sind immer noch mit einem großen Buchstaben als Startbuchstaben?! Mag zwar kleinlich sein, aber wir wollen halt schauen, dass die neueren Plugins alle halbwegs homogen werden.

                  achja autocomplete funktioniert so, wie die plugin.yaml derzeit ist!
                  Zuletzt geändert von psilo; 03.05.2019, 17:25.

                  Kommentar


                    #54
                    Hallo psilo,

                    das mit den Grossbuchstaben werde ich noch mittels search/replace beheben können ;-) - Bin aktuell noch mit dem AutoLogin beschäftigt.
                    Was meinst Du mit "zwischen speichern" - cachen in einer DB oder Ähnlichem ?
                    Mit dem *args, **kwargs und "get_parameter_value" spricht aus meiner Sicht auch nichts gegen future-attributes,
                    solange in der plugin.yaml des plugins defaults gesetzt sind läuft das ja durch (so zumindest meine Tests).

                    Hast Du das mit der Freigabe für die Kommunikation getestet. Bei mir funktioniert das soweit. Ist aber wie immer unter optimalen Bedinungungen.
                    (Aus Sicht des Entwicklers für den Entwickler)

                    Ist das Problem beim Laden der Commandlets jetzt OK. - Das Deine NAS so böse Sachen macht, wie Verzeichnisse eigenständig anlegen, hätte ich mir gar nicht vorstellen können ;-) - da bin ich mit meinem "blanken" Ubuntu/jessie/wheezy-Installation besser dran, die machen das nicht.

                    Ich denke wir kommen so langsam ins Beta-Stadium, oder ? Hinweise gerne willkommmen.

                    Gruss Andre

                    Kommentar


                      #55
                      AndreK fürs cachen könnte man ein hilfsitem nehmen oder in ein file. die commands legst du ja auch als file an? kann aber erstmal auch wegfallen und wir beobachten es.

                      zur init methode: das mit den args usw war glaube ich auch mit der grund warum Msinn das umgebaut hat. und ja weglassen kann man sie dann auch.

                      was meinst du mit "freigabe für kommunikation"? das item mit dem ich an und auschalten kann? das kann ich heute mal einbauen für die nacht.

                      der eaDir folder ist weg bei den commandlets. dass dateien oder folder da drin "automatisch" landen kann immer sein, drum macht das explizite laden von .cmd dateien schon so oder so sinn. mein shng laeuft übrigens auch unter einem blanken debian im docker, aber der folder ist vom nas aus reingemounted. ich arbeite auf dem ordner auch von meinem windows rechner aus mit pycharm. wobei das die ordner normal in ruhe laesst .

                      ja beta hats für mich auf jeden fall.

                      vielleicht können die anderen tester sich mal dazu melden?!

                      Kommentar


                        #56
                        Hi, der fehler kommt offenbar doch noch, auch wenn die instanz länger schon läuft. Kann es sein, dass ohne besuch des webifs derzeit die devices nicht geladen sind?

                        Code:
                        2019-05-04  09:28:42 ERROR    lib.item         Item knx.gf.office.light: problem running <bound method alexarc4shng.update_item of <plugins.alexarc4shng.alexarc4shng object at 0x7f961434d4a8>>: 'NoneType' object has no attribute 'get'
                        > Traceback (most recent call last):
                        >   File "/python/smarthome/lib/item.py", line 2203, in __update
                        >     method(self, caller, source, dest)
                        >   File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 362, in update_item
                        >     self.SendCmdByCurl(myCommand.EndPoint,myCommand.Action,newValue2Set)
                        >   File "/python/smarthome/plugins/alexarc4shng/__init__.py", line 481, in SendCmdByCurl
                        >     actEcho = self.Echos.get(dvName)
                        > AttributeError: 'NoneType' object has no attribute 'get'

                        Kommentar


                          #57
                          ich vermute, dass Du das cookiefile vorher setzen musst:

                          Code:
                          self.Echos = self.getDevicesbyCurl()
                          self.cookiefile = self.get_parameter_value('cookiefile')
                          die erste methode braucht intern das cookie file!


                          update: hat den fehler leider noch nicht behoben. er liest bei mir trotz http 200 in der init keine devices ein
                          Zuletzt geändert von psilo; 04.05.2019, 10:00.

                          Kommentar


                            #58
                            Hallo,

                            > vielleicht können die anderen tester sich mal dazu melden?!

                            Ich habe das Plugin getestet. Danke Andre für die tolle Arbeit. Was ich leider noch immer nicht geschafft habe -aus Zeitmangel- ist die Erstellung weiterer commandlets. Allerdings habe ich jetzt wenigstens geschafft, die Beschreibung durchzugehen. Die ist mir soweit klar.

                            Ich habe noch keine langzeiterfahrung mit dem plugin. D.h. Fehler, die durch irgendein Disconnect nach x Stunden, Tagen, Wochen passieren würden, hätte ich nicht entdeckt.

                            Zum cookiefile: Das ist ja auf dem sh.py Server nicht mehr oder weniger sicher aufgehoben als in meinem Browser.

                            Gruß,
                            Hendrik

                            Kommentar


                              #59
                              henfri kommt drauf an ob dein pc oder dein server sicherer ist

                              Kommentar


                                #60
                                Auf dem einen läuft Windows, auf dem anderen Debian. :-)

                                Kommentar

                                Lädt...
                                X