Ankündigung

Einklappen
Keine Ankündigung bisher.

Unterstützung bei der Entwicklung eines Landroid-Plugin

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

    #61
    Schaut Mal im pyworxcloud GitHub
    DA hab ich einen issue dazu aufgemacht.
    https://github.com/MTrab/pyworxcloud/issues/8
    Zuletzt geändert von henfri; 17.05.2022, 11:22.

    Kommentar


      #62
      Hendrik,

      in dem Issue auf Github geht es anscheinend nicht weiter. Sieht so aus als ob Malene (aka Morten) auf Input zum Code von Dir wartet.

      However, Sie hatte am 25. April um Input gebeten, also habe ich mir mal alle Versionen nach dem 25. April angesehen und siehe da, es gib einen Change der sich auf die Erneuerung des Token bezieht - Was zu unserem Fehlerbild passen würde:

      github.jpg


      Also hab ich die requirements.txt hochgezogen auf 'pyworxcloud == 1.4.16' und einen Test gemacht. Bis jetzt (über eine Stunde) kein Fehler mehr aufgetreten. Das könnte das Problem behoben haben.

      Das Plugin funktioniert (bis auf kleinere Issues) einwandfrei und bringt dem Landroid Worx eine gute Einbindung in SmarthomeNG. Insofern nochmal Danke an Hendrik und Andre, die da nicht locker lassen.


      Sipple, falls Du das auch testen möchtest....


      Gruß
      Marcus


      Kommentar


        #63
        Zitat von SMarcus Beitrag anzeigen
        Sipple, falls Du das auch testen möchtest....
        Selbstverständlich

        Aber nochmal kurz zum Mitschreiben:

        - wir nehmen henfri's leicht modifizierte __init.py__
        - ebenso seine plugin.yaml
        - pyworxcloud 1.4.16

        noch irgendwelche Abhängigkeiten?

        Kommentar


          #64
          Um Missverständnisse zu vermeiden:

          - requirements.txt: pyworxcloud == 1.4.16
          - __init__.py: aus landroid.zip von Post #52
          - plugin.yaml: aus landroid.zip von Post #52

          keine weiteren Änderungen / Abhängigkeiten.

          Gruß
          Marcus
          Zuletzt geändert von SMarcus; 17.05.2022, 19:14. Grund: Post Referenz korrigiert von #53 auf #52

          Kommentar


            #65
            Zitat von SMarcus Beitrag anzeigen
            Hendrik,

            in dem Issue auf Github geht es anscheinend nicht weiter. Sieht so aus als ob Malene (aka Morten) auf Input zum Code von Dir wartet.

            However, Sie hatte am 25. April um Input gebeten, also habe ich mir mal alle Versionen nach dem 25. April angesehen und siehe da, es gib einen Change der sich auf die Erneuerung des Token bezieht - Was zu unserem Fehlerbild passen würde:


            Sehr schön. Das klingt vielversprechend!

            Kommentar


              #66
              Und?
              weiterhin alles ok?

              Hiermit https://github.com/MTrab/pyworxcloud...ple/example.py
              ​​​​​​​kann man übrigens sehen, welche Parameter die API bereitstellt und die Plugin.yaml ggf um diese erweitern.
              Zuletzt geändert von henfri; 18.05.2022, 15:44.

              Kommentar


                #67
                Bin noch nicht dazu gekommen den aktuellen Stand zu testen. Irgendwie passiert es mir in letzter Zeit immer wieder, dass SHNG auf meinem "Hauptsmarthomeserver" abraucht, sobald ich an dem Bastel-PI zu viel ausprobiere und ich komme einfach nicht dahinter woran das liegt.

                Kommentar


                  #68
                  Ich glaube nicht dass wir hier unter Zeitdruck stehen.

                  Sag uns wenn Du´s getestet hast. Wenn alles passt, fänd ich´s gut wenn der letzte Stand in Andre´s Repo gespeichert wird, damit 'nachfolgende Generationen' auch was davon haben...

                  Gruß
                  Marcus

                  Kommentar


                    #69
                    Hendrik,

                    etwas ist bei mir doch noch aufgetreten. Nach ein paar Stunden kommt bei jedem Cycle eine Exception und verhindert das füllen der Items:

                    Code:
                    2022-05-19 06:49:35 ERROR plugins.landroid.poll_device Method plugins.landroid.poll_device exception:
                    > Traceback (most recent call last):
                    > File "/usr/local/smarthome/lib/scheduler.py", line 657, in _task
                    > obj()
                    > File "/usr/local/smarthome/plugins/landroid/__init__.py", line 345, in poll_device
                    > self.worx.update()
                    > File "/home/smarthome/.local/lib/python3.9/site-packages/pyworxcloud/__init__.py", line 396, in update
                    > raise TimeoutError from None
                    > TimeoutError
                    Irgendeine Idee?

                    Marcus

                    Kommentar


                      #70
                      Das ist etwas für den pyworxcloud bugtacker, denke ich.

                      Kommentar


                        #71
                        Zitat von SMarcus Beitrag anzeigen
                        Nach ein paar Stunden kommt bei jedem Cycle eine Exception und verhindert das füllen der Items
                        Hi Marcus

                        Hast du mal die neuste 1.14.19 versucht? Das war mein erster Versuch, allerdings noch ohne die Modifikation am Plugin durch henfri und das ging schief. Aber vielleicht klappt es ja jetzt. Ich kam bisher nicht dazu.

                        Gruß, Martin

                        Edit: In den Release Notes steht:

                        Update function no longer used.
                        Use getstatus instead, to prevent bans from calling too often.
                        Wild guess: Es gibt/gab eine Funktion "update". Die wurde zu oft aufgerufen und der Server blockiert dann deinen Zugriff (hoffentlich nicht für immer). Daher haben sie die update Funktion abgedreht und man soll nun getstatus verwenden. Heißt, im Plugin müsste man das ändern.

                        Even wilder guess:

                        Code:
                                if self.auth:
                                    #Force and update request to get latest state from the device
                                    self.logger.debug("Starting to get Update from worx-Cloud")
                                    self.worx.update()
                                    self.logger.debug("ended to get Update from worx-Cloud")
                                    #Read latest states received from the device
                                    self.logger.debug("Starting to get Status from worx-Cloud")
                                    self.worx.getStatus()
                                    self.logger.debug("ended to get Status from worx-Cloud")
                                    self.parse_worx_attr()
                        Das sind die Zeilen 342-351. Mal die Zeilen 343-346 auskommentieren und die Version 1.14.19 verwenden? Frag mich grad, was das self.worx.update() da eigentlich macht außer Debug Meldungen zu schreiben.

                        Klingt das plausibel?
                        Zuletzt geändert von Sipple; 19.05.2022, 08:08.

                        Kommentar


                          #72
                          SMarcus Auf welche Werte hast du für das Plugin denn cycle und workload_cycle gesetzt?

                          Kommentar


                            #73
                            Hallo,
                            Zitat von Sipple Beitrag anzeigen
                            Wild guess: Es gibt/gab eine Funktion "update". Die wurde zu oft aufgerufen und der Server blockiert dann deinen Zugriff (hoffentlich nicht für immer). Daher haben sie die update Funktion abgedreht und man soll nun getstatus verwenden. Heißt, im Plugin müsste man das ändern.

                            Even wilder guess:

                            Code:
                            self.logger.debug("Starting to get Status from worx-Cloud")
                            self.worx.getStatus()
                            self.logger.debug("ended to get Status from worx-Cloud")
                            self.parse_worx_attr()
                            Das sind die Zeilen 342-351. Mal die Zeilen 343-346 auskommentieren und die Version 1.14.19 verwenden? Frag mich grad, was das self.worx.update() da eigentlich macht außer Debug Meldungen zu schreiben.

                            Klingt das plausibel?
                            Ja, das kling plausibel. self.worx.update() holt(e) den aktuellen Status aus der Cloud.
                            Mit 1.4.19 sollte das stattdessen getStatus() sein.
                            Wäre super, wenn jemand das testen würde.

                            Gruß,
                            Hendrik

                            Kommentar


                              #74
                              Hatte bei mir bis er Fehler auftrat:
                              - cycle: '120' (Standard)

                              Und ja, ich denke auch dass für die V 1.4.19 das self.worx.update() rausgenommen werden muss. Da gibts einen closed issue der das deutlich macht:
                              https://github.com/MTrab/pyworxcloud/issues/15

                              Den Verdacht mit dem Ban hatte ich auch schon. Ist eigentlich ein bekanntes Problem und ich hatte immer ein cycle: '600', aber gestern dachte ich "Na wenns bei allen anderen mit 120 Sekunden geht, warum soll ich nicht auch ..."

                              Deshalb hab ich das Plugin mal 'disabled' und mache (leider erst) in 24h mal einen Test mit
                              - der V 1.4.19 und den auskommentierten Zeilen 343-346
                              oder
                              - der V 1.4.16 und cycle: '600'

                              Gruß
                              Marcus

                              Kommentar


                                #75
                                Ich seh zu, dass ich das schnellstmöglich, heute Abend evtl., selber testen kann.

                                SMarcus der Default Wert für cycle ist doch 300, also 5min. Das sollte schon klappen.
                                Der workload_cycle ist 120. Was ist da eigentlich der Unterschied?

                                Gruß, Martin

                                Kommentar

                                Lädt...
                                X