Ankündigung

Einklappen
Keine Ankündigung bisher.

Indego Connect

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

    #76
    Nein, einfach das Item schalten

    Kommentar


      #77
      Servus Marco,

      das alte Plugin mit SHNG 1.5.1 ist bei mir gelaufen.

      Hab mir die aktuelle Version aus dem Dev installiert...
      SHNG Version: 1.6 ( aktuell )
      smartVisu: 2.9

      Die Visu zeigt folgenden Fehler:
      indego_visu.jpg
      geht's dabei um die
      - "widget_basic_large_symbol.html" ( umbenennen in "large_symbol.html" bringt nichts )
      .... habe ich in meinem Page Verzeichnis

      In der "indego.html" steht:
      {% import "large_symbol.html" as large %}

      Im Logging stehen einige Meldungen.....
      indego_log.jpg

      Danke, JG
      Zuletzt geändert von Haiphong; 30.05.2019, 23:50.
      Gruß, JG

      Kommentar


        #78
        Die aktuelle Version aus dem develop branch hat den Status develop. Ich habe extra nach Release reingepusht weil Marcov bisher noch kein Go gegeben hat und ich das aber von meinem Zettel mal runterhaben muß. Insofern ist das im develop als Work in Progress anzusehen. Ich habe keinen Indego und daher habe ich auch nicht die Möglichkeiten das zu testen.
        Es wäre also sinnvoll, das das jemand zu Laufen bringt, der auch testen kann.
        Im Log übrigens steht drin, das da kein Zugriff auf die bosch-si.com erfolgt ist und das bei Dir einige Items nicht angelegt zu sein scheinen...

        Kommentar


          #79
          Servus Bernd, is mir klar ..... und bin mir bewußt....war auch keine Kritik

          Das Item in der config lautet "indego.SMART.frequenz", er versucht aber nach "indegoSMART.frequenz" zu schreiben.
          Gruß, JG

          Kommentar


            #80
            Du kannst mal die Funktion set_children ab Zeile 257 austauschen:

            Code:
                def set_childitem(self, itemname, value ):
                    """
                    a shortcut function to set an item with a given value if it exists
                    :param itemname:
                    :param value:
                    :return:
                    """
                    item = self.get_sh().return_item(self.parent_item + '.' + itemname)  
                    if item is not None:
                        item(value, 'indego_plugin')
                    else:
                        self.logger.warning("Could not set item '{}.{}' to '{}'".format(self.parent_item, itemname, value))
            Ach ja: Gibt es bei Dir wirklich ein parent item namens indego?

            Kommentar


              #81
              Hallo Bernd,

              "indego" ist in der conf die oberste Ebene
              ( das ist doch dann "parrent". Oder ?? )

              Die conf ist auch nach Vorlage ...
              Bin Amateur, daher würde ich wohl besser auf Marco warten.

              Vermutlich muß "indego" und "weather" auch ein zusammenhängendes Item sein
              Code:
              2019-05-31  15:00:00 WARNING  plugins.indego      Could not set item 'indegoweather.int_0.tt' to '15.4'
              Code:
              %YAML 1.1
              ---
              
              indego:
              
                  online:
                      type: bool
              
                  stateCode:
                      type: num
              
              ....................
              
                  weather:
              
                      int_0:
              
                          wwsymbol_mg2008:
                              type: num
                              cache: 'on'
              Gruß, JG

              Kommentar


                #82
                zwischen indego und weather muß ein Punkt sein. Der ist auch bei den Items da, allerdings nicht beim logger. Daher habe ich Dir den Code gepostet. Du kannst aber auch aus dem develop den neuen Code laden, da habe ich ihn vorhin gepusht

                Kommentar


                  #83
                  Ah, O.K.
                  Zeile 265 bis 268 geändert

                  wird getestet....

                  Danke
                  Gruß, JG

                  Kommentar


                    #84
                    Die Wetter Werte kommen jetzt in der Visu an ...

                    Das Web If bringt folgenden Fehler:
                    indego_webif.jpgIm Logging kommt jetzt folgendes: ( keine Ahnung ob's was mit diesem plugin zu tun hat )
                    Code:
                    2019-05-31  17:04:58 ERROR    cherrypy.error.1773385360 [31/May/2019:17:04:58] HTTP 
                    > Traceback (most recent call last):
                    >   File "/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py", line 628, in respond
                    >     self._do_respond(path_info)
                    >   File "/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py", line 687, in _do_respond
                    >     response.body = self.handler()
                    >   File "/usr/local/lib/python3.5/dist-packages/cherrypy/lib/encoding.py", line 219, in __call__
                    >     self.body = self.oldhandler(*args, **kwargs)
                    >   File "/usr/local/lib/python3.5/dist-packages/cherrypy/_cpdispatch.py", line 54, in __call__
                    >     return self.callable(*self.args, **self.kwargs)
                    >   File "/usr/local/smarthome/plugins/indego/__init__.py", line 810, in index
                    >     tmpl = self.tplenv.get_template('index.html')
                    >   File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 830, in get_template
                    >     return self._load_template(name, self.make_globals(globals))
                    >   File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 804, in _load_template
                    >     template = self.loader.load(self, name, globals)
                    >   File "/usr/local/lib/python3.5/dist-packages/jinja2/loaders.py", line 113, in load
                    >     source, filename, uptodate = self.get_source(environment, name)
                    >   File "/usr/local/lib/python3.5/dist-packages/jinja2/loaders.py", line 187, in get_source
                    >     raise TemplateNotFound(template)
                    > jinja2.exceptions.TemplateNotFound: index.html
                    2019-05-31  17:07:07 WARNING  plugins.indego      Problem fetching https://api.indego.iot.bosch-si.com/api/v1/alms/706603751/predictive/nextcutting?last=YYYY-MM-DDTHH:MM:SS%2BHH:MM: 204 
                    2019-05-31  17:07:07 ERROR    plugins.indego      Error getting next smartmow time
                    Gruß, JG

                    Kommentar


                      #85
                      Das weist daraufhin, das Du zum Einen immer noch keine Verbindung zum Bosch Server bekommst und zum anderen scheint das Webinterface die index.html nicht zu finden. Hast Du das gesamte Verzeichnis des Plugins kopiert?

                      Kommentar


                        #86
                        Oh, jetzt werd ich zum schwierigen Patienten....

                        Das Verzeichnis WebIf hatte ich nicht kopier .... ist jetzt da

                        Verbindung zu Bosch ist aber vorhanden -->> kann den Indigo über die Visu starten

                        Danke, JG
                        Gruß, JG

                        Kommentar


                          #87
                          Ok. Jetzt könntest Du noch mal die Funktion get_next_time(self) ab ca. Zeile 381 tauschen gegen:

                          Code:
                              def get_next_time(self):
                                  url = "{}alms/{}/predictive/nextcutting?last=YYYY-MM-DDTHH:MM:SS%2BHH:MM".format( self.indego_url, self.alm_sn)
                                  try:
                                      result = self.get_url( url, self.context_id, 10)
                                  except Exception as e:
                                      self.logger.warning("Problem fetching {0}: {1}".format(url, e))        
                                  else:
                                      try:
                                          self.logger.debug("Next time raw" + str(result))
                                          next_time = result.decode(encoding='UTF-8', errors='ignore')
                                          next_time = json.loads(next_time)
                                          next_time = next_time['mow_next']
                          
                                          self.logger.debug("Next time raw 2: " + str(next_time))
                                          # next_time = next_time[:-6]
                                          # next_time = datetime.datetime.strptime(next_time,'%Y-%m-%dT%H:%M:%S').replace(tzinfo=tz.gettz('UTC')).astimezone(self.get_sh().tzinfo())
                                          # #datetime.datetime.strptime(next_time,'%Y-%m-%dT%H:%M:%S+02:00').replace(tzinfo=self.get_sh().tzinfo())
                                          next_time = next_time.replace(":", "")
                                          next_time = datetime.datetime.strptime(next_time, '%Y-%m-%dT%H%M%S%z')
                                          self.logger.debug("Next time final " + str(next_time))
                                          self.set_childitem('next_time',next_time)
                                      except Exception as e:
                                          self.logger.warning("Problem to decode {0} in function get_next_time(): {1}".format(result, e))
                          Zuletzt geändert von bmx; 01.06.2019, 18:26.

                          Kommentar


                            #88
                            Hallo bmx ,

                            ich bin auch gerade dabei das Indego-Plugin ans laufen zu bekommen. Beim Post #87 - loggst du nach dem try "next_time" da "next_time" hier noch nicht definiert
                            ist kommt es zum Abbruch, ich denke korrekt sollte sein "result".

                            Ich habe Deine zwei Posts von heute eingebaut und den scheduler auf smartplugin und get_sh().return_item auf lib.item umgestellt. tzinfo habe ich ebenfalls von get_sh().tzinfo auf lib.shtime umgestellt. (das war nur Kosmetik). Aber die Meldungen für "Depraceted"-functions haben mich genervt)

                            Soweit läuft das jetzt. Was ich allerdings nicht hinbekommen will, ist die Anzeige der "großen" Symbole für den aktuellen Zustand
                            Code:
                            {{ large.symbol('state_offline', 'indego.online','','dropins/icons/ws/scene_robo_lawnmower_offline.svg',0) }}
                            Wenn ich das ganze so einsetze wie ichs runterlade geht an der Stelle gar nichts.
                            Im file "indego.html" wird "{% import "large_symbol.html" as large %}" importiert, die Datei gibts aber nicht geben tuts "{% import "widget_basic_large_symbol.html" as large %}".
                            Dann wird weiter unten in der HTML-Datei das Widget
                            "{{ large.symbol('state_offline', 'indego.online','','scene_robo_lawnmower_offline.s vg',0) }}"
                            aufgerufen. Dieses wird nicht gefunden da es unter large.large_symbol referenziert wurde.

                            Das hab ich soweit korrigiert und trotz allem wird nichts angezeigt bzw. die Seite gar nicht geladen. Beim 1.5 Plugin waren an der Stelle noch basic.symbols. Mit denen funktionierts auch.

                            Kannst du dazu einen Tipp geben ? Bzw. weißt du wer den HTML-Teil so gemacht hat ?

                            Gruss Andre
                            Zuletzt geändert von AndreK; 01.06.2019, 18:03.

                            Kommentar


                              #89
                              Ich kann wie schon geschrieben leider nicht allzuviel beitragen weil ich keinen Indego habe (Sponsoren willkommen ). Du hast mit dem result Recht. Ich kann die Änderung bei Gelegenheit pushen. Es sei denn Du stellst einen PR

                              Kommentar


                                #90
                                Nochmal kurz die Frage zum Thema HTML bzw. Widget,

                                es hat sich sicher jemand was dabei gedacht das so einzubauen. Die Frage ist wer ? und was hat er sich dabei gedacht ?.
                                Ich möchte das gar nicht in Frage stellen, nur um das so wie Gedacht ans Laufen zu bringen wären ein paar Tipps ganz hilfreich.
                                (Kommt das von Marcov ?)
                                Von "twig" hab ich, zumindest bis jetzt recht wenig Ahnung. Ich möchte aber trotz allem versuchen dem Plugin/Visu noch den Kalender hinzuzufügen.
                                (Gerne kann das auch jemand anders übernehmen, ich brauch den Kalender da smartmow weiß nicht wann ich dünge und wann ich bewässere)

                                Ich würde dann fürs Erste einen PR von meiner Version, mit den Code-Updates von bmx und meinen Umstellugen auf lib.item, lib.shtime und scheduler auf smartplugin erstellen.



                                An dieser Stelle auch vielen Dank an bmx der sich einbringt ohne Nutzen zu haben und jetzt auch noch mit Fragen belästigt wird.

                                Gruss Andre

                                Kommentar

                                Lädt...
                                X