Ankündigung

Einklappen
Keine Ankündigung bisher.

Support-Thread zum OpenWeatherMap Plugin

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

    #61
    Sooo, "keep the customer satisfied" Ist das genehm?

    Code:
    beauforts_direct:
        type: num
        owm_matchstring: current/wind_speed/beaufort
        desc:
            type: str
            owm_matchstring: current/wind_speed/description
    Das geht mit "current", "day" und "hour". Ich finds gut mit dem Feedback hier zu arbeiten!

    Und: Die Warnungen werden manchmal wohl auch in Deutsch angegeben, gerade im "alerts" Item gesehen (auch der mehrfach-Fall):
    Code:
    [{'sender_name': 'Deutscher Wetterdienst', 'event': 'STARKES GEWITTER', 'start': 1627396260, 'end': 1627399800, 'description': 'Es treten Gewitter auf. Dabei gibt es Sturmböen mit Geschwindigkeiten bis 80 km/h (22m/s, 44kn, Bft 9) sowie Starkregen mit Niederschlagsmengen zwischen 15 l/m² und 25 l/m² pro Stunde und kleinkörnigen Hagel.', 'tags': []}, {'sender_name': 'Deutscher Wetterdienst', 'event': 'heavy thunderstorms with gale- or storm-force gusts, heavy rain and hail', 'start': 1627398360, 'end': 1627399800, 'description': 'There is a risk of heavy thunderstorms with gale- or storm-force gusts, heavy rain and hail (level 2 of 4).\nMax. gusts: < 80 km/h; Precipitation amounts: 15-25 l/m²/1h; Hail: small grains', 'tags': ['Thunderstorm', 'Wind', 'Rain']}]
    Eine vernünftige Lösung hab ich aber nicht...

    Wenn das Thema inhaltlich rund ist übernehme ich auch die neuen Sachen, die hier im Forum entstanden sind, in die englische README.md - kann vielleicht jemand anderes die deutsche Übersetzung in die user_doc.rst übernehmen? Ich bin faul und hab noch nicht mit rst gearbeitet; Ich kann aber verstehen, dass eine User-Doku nötig ist, die nicht auf Englisch vorliegt...

    Kommentar


      #62
      Zitat von Msinn Beitrag anzeigen
      Wozu willst Du ein @instance in einem eval verwenden?
      Um eval's in einem struct mit der durch die in der items.yaml angegebenen instance zu verwenden. Ich bin ein verrückter Träumer...

      In einem struct definiere ich:
      Code:
      eval: sh.@instance.get_beaufort_number(value)
      und hole mir dann das struct in der items.yaml rein:
      Code:
      wetter:
           struct: openweathermap.wetterdaten@owm
      Und in dem dann entstehenden Item ist folgender Eval enthalten:
      Code:
      eval: sh.owm.get_beaufort_number(value)
      Das wäre kein Feature vom Plugin, sondern eine Sache, die man im heiligen Gral im Kern umsetzen müsste und natürlich auch viel impact hat...

      Kommentar


        #63
        Der eine Teil ging ja prinzipiell, allerdings mit dem Syntax hier:
        Code:
        wetter:
            struct: openweathermap.wetterdaten
            instance: owm
        Das instance im eval ist fancy - wilde Idee

        Kommentar


          #64
          Der Code ist bei einem Plugin bei allen Instanzen der selbe. Also ist der Aufruf ohne @instance hinreichend.
          Zuletzt geändert von Msinn; 27.07.2021, 19:54.
          Viele Grüße
          Martin

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

          Kommentar


            #65
            Zitat von Msinn Beitrag anzeigen
            Wozu willst Du ein @instance in einem eval verwenden?
            Ich möchte die Anfrage nochmal aufwärmen.

            Code:
                    beauforts:
                        type: num
                        owm_matchstring: current/wind_speed
                        eval: sh.owm.get_beaufort_number(value)
                        desc:
                            type: str
                            eval: sh.owm.get_beaufort_description(sh...())
                            eval_trigger: ..
            Gibt es eine Möglichkeit auf eine Funktion in einem Plugin über eval zu nutzen, ohne dass man den Namen des Plugins mit angeben muss. Idee war, die Ermittlung der Windstärke mit einer Funktion aus dem Plugin zu realisieren und dies eval zu nutzen. Da dies aber öfters benötigt wird, sollen entsprechende structs entstehen und hier wäre es von Vorteil, wenn der Name unter dem das Plugin beim jeweiligen Nutzer läuft, nicht direkt im eval angegeben werden muss.

            Liese sich
            Code:
            sh.plugins.return_plugin('openweathermap')
            mit im eval unterbringen?

            Kommentar


              #66
              Zitat von jentz1986 Beitrag anzeigen
              Ja, eigentlich schon in der vorherigen Version, offensichtlich habe ich das funkionierende Beispiel nur kopiert, aber nicht hier eingefügt. Das hole ich dann einfach mal nach:
              Hab ich übersehen.

              Zitat von jentz1986 Beitrag anzeigen
              darf ich Dich als Tester in der plugin.yaml vermerken?
              Ja klar.

              Zitat von jentz1986 Beitrag anzeigen
              Ich hab jetzt noch einen "Placebo" Alarm eingebaut. Wenn es keine Alarm-Meldung gibt, dann wird dieser "Alarm" eingebaut.
              Prima. Werde ich mal testen.

              Zitat von jentz1986 Beitrag anzeigen
              Ich finds gut mit dem Feedback hier zu arbeiten!
              Da schließe ich mich an. So macht das Spaß.

              Zitat von jentz1986 Beitrag anzeigen
              kann vielleicht jemand anderes die deutsche Übersetzung in die user_doc.rst übernehmen? Ich bin faul und hab noch nicht mit rst gearbeitet;
              Das mach ich. Ich schicke Dir dann die plugin.yaml und die rst zum Test.

              Kommentar


                #67
                Zitat von jentz1986 Beitrag anzeigen
                Ja, eigentlich schon in der vorherigen Version, offensichtlich habe ich das funkionierende Beispiel nur kopiert, aber nicht hier eingefügt. Das hole ich dann einfach mal nach:
                Nochmal zu dem Prefix. Ich bekomme das nicht zu laufen. Es gibt immer die folgende Fehlermeldung:
                Code:
                2021-07-27  22:16:26 ERROR    plugins._priv_openweathermap   home@: owm_onecall.forecast.daily.today_plus_1d.dt ERROR: owm-string: /dt --> /dt from wrk=weather, Error: Missing child '' after '' (complete path missing: /dt)
                Das vererben funktioniert, d.h. in den Child Items wird der Prefix aufgelöst. Scheinbar wird der Matchstring aber nicht zusammengesetzt.

                Soll im WebIF im Reiter "Items" dann der zusammengesetzte, also vollständige Matchstring sichtbar sein?
                .

                Kommentar


                  #68
                  Zitat von Sisamiwe Beitrag anzeigen
                  Gibt es eine Möglichkeit auf eine Funktion in einem Plugin über eval zu nutzen, ohne dass man den Namen des Plugins mit angeben muss.
                  Nein, Der Code eines Plugin kann nur über den Namen der Section in der plugin.yaml in der das Plugin konfiguriert wird angesprochen werden.

                  Zitat von Sisamiwe Beitrag anzeigen
                  Liese sich Code:

                  sh.plugins.return_plugin('openweathermap')
                  mit im eval unterbringen?
                  Nein
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #69
                    jentz1986

                    Zitat von Sisamiwe Beitrag anzeigen
                    Das vererben funktioniert, d.h. in den Child Items wird der Prefix aufgelöst. Scheinbar wird der Matchstring aber nicht zusammengesetzt.
                    Nach diversen Versuchen klappt es. Hatte bei pwm_match_prefix die Instanz vergessen.

                    Zitat von Sisamiwe Beitrag anzeigen
                    Soll im WebIF im Reiter "Items" dann der zusammengesetzte, also vollständige Matchstring sichtbar sein?
                    Das steht natürlich der finale, gesamte, zusammengesetzte matchstring.

                    Das struct wächst!

                    Kommentar


                      #70
                      Zitat von Sisamiwe Beitrag anzeigen
                      Hatte bei owm_match_prefix die Instanz vergessen.
                      Klarer Fall von "Shit happens" Dauert Stunden zu finden und dann hat die Stirn plötzlich nen Handabdruck...

                      Nur mal aus Neugier: Wofür nutzt man mehrere Instanzen eines Wetterplugins (tatsächlich)? Das Wetterplugin nutzt man ja in erster Linie um Entscheidungen in der Hausautomation zu ermöglichen. Mein Haus steht aber nur an einem Ort. Wenn ich nun ein Ferienhaus oder einen Wohnwagen etc. habe, dann sollte die Wetterlogik ja dort in dem "einen Haus" sein und keine Steuerung vom "Haupthaus" aus. Klar: Ich schaue mir gerne mal das Wetter an einem Ferienort an, aber das würde ich dann nicht in die Hausautomation einbinden. Sondern allenfalls in die Visu!

                      Zitat von Sisamiwe Beitrag anzeigen
                      Das struct wächst!

                      Kommentar


                        #71
                        Zitat von jentz1986 Beitrag anzeigen
                        Nur mal aus Neugier: Wofür nutzt man mehrere Instanzen eines Wetterplugins (tatsächlich)?
                        Da hast Du Recht. Ab wie kann man dann das Wetter in einem anderen Ort (als zu Hause) in der Visu anzueigen, ohne das vorher in Item zu haben?

                        Das darksky-Plugin bzw die structs davon sind auch ohne Instanz. Ich habe die structs der ersten Ebene fertig, allerdings gibt es nun bei "struct im struct" wieder das Thema mit dem Plugin-Namen unter dem der jeweilige Nutzer des Plugin laufen lässt. Die structs werden darunter geführt bzw müssen so adressiert werde. Ich zum Beispiel habe die Plugins, die nicht dem Release entsprechen, unter einem anderen Namen laufen.

                        Ich habe mir auch mal das struct bzw die Itemstruktur von darksky angeschaut. Auf den ersten Blick macht eine direkte Portierung nur wenig Sinn. Ich versuche mich trotzdem man daran.

                        Wie wollen wir die structs austauschen? gist?

                        Kommentar


                          #72
                          Zitat von Sisamiwe Beitrag anzeigen
                          Wie wollen wir die structs austauschen? gist?
                          Oder du wirst Developer in meinem Repo… (Dazu brauche ich Deinen github usernamen als PN oder so)

                          Zitat von Sisamiwe Beitrag anzeigen
                          wie kann man dann das Wetter in einem anderen Ort (als zu Hause) in der Visu anzueigen, ohne das vorher in Item zu haben?
                          so (es gibt aber auch noch andere Widgets): https://docu.smartvisu.de/3.0/index....ent&pages=docu

                          Zitat von Sisamiwe Beitrag anzeigen
                          das Thema mit dem Plugin-Namen unter dem der jeweilige Nutzer des Plugin laufen lässt. Die structs werden darunter geführt bzw müssen so adressiert werde.
                          Ist das denn bezogen auf die Instanz oder auf den Plugin-Namen, hier also "openweathermap" und nicht "owm" oder "priv_irgendwas"?
                          Zuletzt geändert von jentz1986; 29.07.2021, 14:21. Grund: Bezüge hergestellt.

                          Kommentar


                            #73
                            @jen
                            Zitat von jentz1986 Beitrag anzeigen
                            Ist das denn bezogen auf die Instanz oder auf den Plugin-Namen, hier also "openweathermap" und nicht "owm" oder "priv_irgendwas"?
                            Es geht um den Plugin-Namen, bezogen auf die Instanz.
                            Code:
                            owm:
                                plugin_name: _priv_openweathermap
                            Also bei mir _priv_openweathermap (was auch gleichzeitig der Verzeichnisname des Plugins ist)

                            Darunter werden die structs, die in der jeweiligen plugin.yaml mitgeliefert werden, registriert.
                            Beispiel:
                            Mein Plugin-Name ist: _priv_openweathermap
                            Daher ist Dein struct für irrigation unter _priv_openweathermap.irrigation registriert
                            Das kannst Du im Admin Modul unter Items --> Struktur-Templates nachschauen



                            Andere Frage:
                            Kannst Du bitte für die alerts den LogLevel der folgende Fehlermeldung von WARNING auf DEBUG runterdrehen?

                            Code:
                            2021-07-29  17:43:46 WARNING  plugins._priv_openweathermap   home@: owm_onecall.alerts.sender_name Integer expected in matchstring after '/alerts', inserting '/0' to match FIRST entry.

                            Kommentar


                              #74
                              Zitat von Sisamiwe Beitrag anzeigen
                              Also bei mir _priv_openweathermap (was auch gleichzeitig der Verzeichnisname des Plugins ist)
                              Ahhh, nu verstehe ich das! OK, ich würde für Instanzen einfach nur mehrere Instanzen des gleichen Verzeichnisses machen. Ich habe alle Plugins nur einmal, entweder in meinem "Frickel"-Zustand oder eben aus dem offiziellen Release - daher ändert sich der Name des Plugins nicht.

                              Zitat von Sisamiwe Beitrag anzeigen
                              Kannst Du bitte für die alerts den LogLevel der folgende Fehlermeldung von WARNING auf DEBUG runterdrehen?
                              Nein - das ist ein und die selbe Fehlermeldung für alle Fälle. Die Matchstrings sollten dann berichtigt werden. - klar es funktioniert, das ist der Sinn der gemachten Implementierung, weil man das mit der Liste gerne übersieht. Aber der korrekte Matchstring ist dann "alerts/0/event" und nicht "alerts/event". "alerts/0/..." ist jetzt auch immer gesetzt, d.h. man kann das Element auch wirklich in einem Item nutzen. Im struct sollten auch nur korrekte Matchstrings sein und nicht solche, die durch interne Korrekturen bereinigt werden.

                              Vielleicht wäre es sinnvoll noch ein "Meta-Element" einzubauen, sowas wie "@count", das dann für die Anzahl der Alarme genutzt werden kann, also "alerts/@count". Das @ soll deutlich machen, dass es nicht von OWM kommt und nur die Listen auswertet. (Gibts ein passenderes Zeichen?). Damit könnte man dann ein Element mit der kompletten Liste ("alerts") machen, die dann in der Visu angezeigt werden kann - und eben auswerten ("alerts/@count") ob es einen Alarm gibt.

                              Kommentar


                                #75
                                Hab ein Regen-Widget gebaut, was auch die letzten 12h und die kommenden 12h Regen anzeigt - sinnvoll?
                                Screenshot 2021-07-29 200036.png

                                Kommentar

                                Lädt...
                                X