Ankündigung

Einklappen
Keine Ankündigung bisher.

WundergroundWeather - Plugin

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

    [WireGate-Plugin] WundergroundWeather - Plugin

    Hallo habe gerade das bereits unter

    https://knx-user-forum.de/code-schni...-plugin-4.html

    kurz vorgestellte plugin ins svn gestellt.

    Hier noch einige Erläuterungen:

    • Man muss sich bei wunderground registrieren und eine API besorgen (kostenlos bis zu 500 Abfragen pro Tag und max. 10/min.)
    • Das plugin wird dann einen entsprechenden Request an wunderground senden und bekommt einen xml-file zurück (dieser landet als wunderground_weather.xml unter /var/www.
    • Dieses XML-File wird geparst und die entsprechenden Infos dann über die html-Seite wunderground_weather.html ausgegeben.
    • Bei mir läuft das ganze dann als iframe in der CV.
    • Die ganzen GA's bringen mir die Informationen auf den KNX, zur Darstellung der html-Seite sind sie eigentlich nicht notwendig.


    Die icons und die Hintergründe hierzu kann ich leider nicht guten Gewissens hier mit hochladen, da ich die mir im Internet zum Privatgebrauch heruntergeladen habe und nicht weiss ob bei öffentlicher Bereitstellung hier Konfliktpotential besteht.

    Zur Vorgehensweise nur so viel:

    • Die icons sind HTC-Design (mal Tante google befragen)
    • Die Hintergründe sehen schon aus wie die von yahoo Wetter, oder ?
    • Die icons werden in einen separaten Ordner symbole unter /var/www gepackt; die Hintergründe in den Ordner symbolebg unter /var/www.
    • Die entsprechenden Symbole sind auf die "Wetterzustände", wie wunderground sie liefert umbenannt (siehe Anlage). Ebenso die Hintergründe.


    Zugewiesen werden die entsprechenden Symbole durch Auswertung mittels substr

    Code:
    my $length = [COLOR=Blue]-4[/COLOR];
    my $icontoday = substr ($weather->{current_observation}->{icon_url}, [COLOR=Magenta]31[/COLOR], $length);
    Das extrahiert aus der wunderground_weather.xml folgendes:

    Code:
    <current_observation><icon_url>[COLOR=Magenta]http://icons-ak.wxug.com/i/c/k/[/COLOR]nt_mostlycloudy[COLOR=Blue].gif[/COLOR]</icon_url>
    Übrig bleibt hier nt_mostlycloudy
    Und genau das wird dann als iconname oder eben Hintergrundname übernommen und führt dazu, dass sich die entsprechenden icons und Hintegründe anpassen und auch Tag/Nacht erkannt wird.

    Probleme bei dem plugin sind für mich eigentlich aktuell eine Laufzeit von um die 5 sec.

    Vielleicht kann man daran ja noch was schrauben.

    Außerdem bin ich als blutiger Anfänger natürlich froh, wenn man in dem Code noch etwas "aufräumen" könnte.

    Freue mich auf Rückmeldungen.

    Jens
    Angehängte Dateien
    Viele Grüße Jens

    #2
    Hoi Jens

    Die Symbole unter http://icons-ak.wxug.com/i/c/k/ hatte ich mir auch schon geholt.
    Wo sind denn die anderen zu finden?
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Ich find sie selbst nicht wieder, aber ganz ähnliche sind hier:

      Browsing deviantART

      Die Fragezeichen habe ich selbst mit GIMP eingefügt.

      Jens
      Viele Grüße Jens

      Kommentar


        #4
        Frage:
        Die große gelbe Tempanzeige ist ja auch aus der API.
        Kann man da seine lokale temperatur benutzen-aus der z.B. 1-Wire Messung?

        Danke und Grüße,
        Lio

        Kommentar


          #5
          Hoi Lio

          Klar kannst Du das.
          In dem Fall ist eine Möglichkeit im Plugin die lokale Temperatur durch ein knxread (die GA mit der Temperatur vom Bus) zu holen.
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #6
            Hallo,

            danke ;-)

            Das Plugin geht jetzt(?). Musste ein paar leerzeichen löschen:

            Bei XXX::dump
            und dann noch 2 Stk nähe Zeile 80.

            Was jetzt noch toll wäre, wenn man die Größe anpassen könnte. Mir ist das Gebild zu groß.
            Muss man die Einzelwerde im Plugin abändern, oder kann man das mit einem iframe-Parameter?

            Danke und GRüße,
            Lio

            Kommentar


              #7
              Zitat von lio
              Was jetzt noch toll wäre, wenn man die Größe anpassen könnte. Mir ist das Gebild zu groß.
              Muss man die Einzelwerde im Plugin abändern, oder kann man das mit einem iframe-Parameter?
              Werte kannst Du direkt im plugin im Bereich der html-Seite anpassen, z.B.

              Code:
              "<img width=[COLOR=Red]250px[/COLOR] height=[COLOR=Red]250px[/COLOR] src=\"".$symbole.$icontoday."\.png\" alt=\"".
              $weather->{current_observation}->{icon}."\" /><br/>\n".
              falls du dasin Deinem Post gemeint hast. Falls Dir der gesamte frame zu groß ist, dann mußt sowohl den iframe als auch dessen "Füllung" (sprich die html-Seite mit ihren Inhalten) entsprechend anpassen. Ich hatte mir das für ein 15" Display geschrieben.

              Grüße

              Jens
              Viele Grüße Jens

              Kommentar


                #8
                Sisiphus apelliert nochmal: bitte nur die Daten nehmen und ausgeben, die Darstellung (verschiedene Designs, Endgeräte, Auflösung,..) ist aufgabe der Visu, nicht des Wetter-Parsers

                Makki
                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                -> Bitte KEINE PNs!

                Kommentar


                  #9
                  ..ich scheitere dabei etwas:

                  Code:
                  <iframe  src="http://192.168.2.26/wunderground_weather.html" width="800px" height="300px"> 
                          <layout width="800px" height="300px" />
                        </iframe>
                  Die ersten Größenangaben machen den Frame.
                  Wie bekomme ich das hin, dass auch der Inhalt die Größe hat?
                  Die html Seite wird mir zu groß angezeigt, sodass Scrollbalken entstehen.

                  Danke und Grüße,
                  Lio

                  Kommentar


                    #10
                    Hallo Lio,

                    habe bei mir weniger absolute Größenangaben drin, dann kann sich die CV besser "anpassen":

                    Code:
                        <group name="Wetter in xxxxxxxxx">
                            <layout colspan="12" />
                            <iframe src="http://192.168.0.xxx/wunderground_weather.html" height="415px" frameborder="false" refresh="600">
                            <layout colspan="12"/>
                            </iframe>
                        </group>
                    Grüße

                    Jens
                    Viele Grüße Jens

                    Kommentar


                      #11
                      Hallo Jens,

                      es führt bei mir noch nicht zum Ergbnis, dass die html in die group passt.
                      Muss ich dann noch höhe und breite im plugin anpassen?
                      In welcher Zeile wird denn die größe bestimmt?
                      Ich habe nur die Angaben für die Icons und Schrift gefunden.

                      DAnke und Grüße,
                      Lio
                      Angehängte Dateien

                      Kommentar


                        #12
                        Was steht denn eigentlich in eurer "wunderground_weather.css" ?
                        Gruß,
                        Marc

                        Kommentar


                          #13
                          Hallo Lio,

                          die html-Seite welche letztendlich im iframe dargestellt wird hat mehrere Variablen, welche Größe und Anzeigeverhalten in der CV beeinflussen. Das ist sicherlich nicht unbedingt schöne so, wurde ja zurecht auch schon von makki angemahnt.

                          Die html-Seite enthält eine Tabelle. Größe definiert über:

                          Code:
                          "<tr height=380px>\n".
                          
                          "<td width=250px align=left>\n".
                          Zeilen 164 und 165.

                          Der Inhalt der Zellen definiert sich über Schriftgrößen

                          Code:
                          td {    color: white;   font-family: Dosis, Helvetica, Arial, sans-serif;   font-size: 16px;   text-shadow:black 3px 2px;   border-radius: 10px;     -moz-border-radius: 10px;       -webkit-border-radius: 10px;       -o-border-radius: 10px;   overflow: hidden;   padding: 10px;   margin:0; }  h1 {   font-size: 1.4em;   text-shadow:black 3px 2px;  }  h2 {   font-size: 5.5em;   color: #FFF799;   text-shadow:black 4px 3px; }  h3 {   font-size: 0.8em; }
                          Zeilen 122-154

                          ... und Bildgrößen (siehe einige posts weiter vorne).

                          Wenn du da jetzt Anpassungen vornimmst, sollte eigentlich ein setup zu finden sein, welches auf Deiner Anzeige läuft - jaja, ich weiß, genau dieses Gefummel der Anpassung an jedermanns Visu einzeln ist nicht schön. Leider habe ich keine Idee um es besser zu machen. Vielleicht kommen je noch gute Ideen/Veränderungen !

                          Jens
                          Viele Grüße Jens

                          Kommentar


                            #14
                            Ähm, jetzt echt nix für ungut, aber ihr habt den Unterschied zu der sisiphus-arbeit mit dem parsen der Wetter.com/HTML erfasst?
                            -> Das Killerfeature war: Da gibts ne stabile API..

                            Das HTMl zu parsen ist und bleibt .. hmm..

                            Makki
                            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                            -> Bitte KEINE PNs!

                            Kommentar


                              #15
                              Zitat von makki Beitrag anzeigen
                              Das HTMl zu parsen ist und bleibt .. hmm..
                              Hoi makki

                              Keiner parst hier HTML.
                              Wir nutzen die stabile API und senden die Werte auf den Bus.

                              Nur zusätzlich kann das Plugin eine HTML -App - Wetterseite abwerfen,
                              die man in einer Visu als iframe einbinden kann oder im Browser anschauen.

                              Dazu muss man nur jede Menge Icons im Ordner ablegen. (möglichst welche die rechtefrei sind)
                              Angehängte Dateien
                              Grüsse Bodo
                              Fragen gehören ins Forum, und nicht in mein Postfach;
                              EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                              Kommentar

                              Lädt...
                              X