Ankündigung

Einklappen
Keine Ankündigung bisher.

Neuer Wetterservice: darksky.net bzw. forecast.io

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

    Neuer Wetterservice: darksky.net bzw. forecast.io

    Da Wunderground keine gratis API-Keys mehr vergibt, habe ich eine neue Anbindung für darksky.net (aka forecast.io) gemacht.
    Im Anhang findet ihr den ersten, noch nicht ganz fertigen Entwurf. Es fehlen insbesondere noch gewisse Übersetzungen und die Konfiguration der Einheiten in den Sprachdateien.

    Einfach die PHP-Datei in ./lib/weather/service/ ablegen, dann ist in der Konfiguration "Darksky.net" auswählbar.
    Achtung: Der Ort muss als Koordinaten in der Form Longitude,Latitude eingegeben werden (also z.B. 52.517,13.3889), Ortsnamen werden nicht unterstützt.

    EDIT: Anhang entfernt. Service ist nun im develop Branch auf GitHub.

    Nachtrag: Wie bei den meisten Diensten wird auch bei Darksky ein API-Key benötigt.
    Zuletzt geändert von smai; 07.11.2018, 17:11.

    #2
    Gerade mal in Betrieb genommen;-)
    Könnte man die Forecast Anzeige kleiner machen? Bei mir sind jetzt 8 Tage, also 8 Sybole auf zwei Reihen (2x4) verteilt.
    Das nimmt ganz schön viel Platz weg.

    Toll wären 8 Symbole in einer Reihe.

    Ansonsten sieht das schon sehr cool aus!

    Edit: Kann es sein, dass das Icon (Bild) für das Wetter noch nicht passt?
    Zuletzt geändert von schuma; 06.07.2018, 20:47.

    Kommentar


      #3
      In der Week Forecast Anzeige stehen Temperaturen mit Nachkommastellen. Dadurch wird es hier auch breiter.
      In der Wunderground Anzeige waren nur ganze Zahlen für die Temperatur zu sehen.

      Könnte man hier den Wochentag neben das Icon stellen und nicht darüber?

      Das würde dann auch schon einiges in der Höhe bringen. Dann könnte man die 2x4 Reihen eigentlich schon so lassen.

      Ich habe jetzt die Bilder in der CSS um ein Drittel kleiner gemacht.
      Zuletzt geändert von schuma; 06.07.2018, 21:58.

      Kommentar


        #4
        Zitat von schuma Beitrag anzeigen
        Edit: Kann es sein, dass das Icon (Bild) für das Wetter noch nicht passt?
        Die Icons passen übrigens... Das hat an dem Abend nur so blöd ausgesehen, da alle Icons bei mir zufällig gleich waren.

        Kommentar


          #5
          Danke für Deine Mühe. Tut bei mir sehr gut!

          Kommentar


            #6
            Ich habe den Service inkl. den Sprachdateien nun im develop Branch auf GitHub committed.
            Es werden nun wir bei wunderground und in der Doku beschrieben die nächsten vier Tage angezeigt. Die Temperaturen werden auf ganze ° gerundet.

            Zu den Icons ist noch zu sagen, dass Dark Sky deutlich weniger Abstufungen von "bewölkt" beim Icon kennt. Es gibt nur clear, partly-cloudy und cloudy.
            Bei Wunderground gibt es sunny, mostlysunny, partlycloudy, mostlycloudy und cloudy.

            Kommentar


              #7
              Zitat von smai Beitrag anzeigen
              Zu den Icons ist noch zu sagen, dass Dark Sky deutlich weniger Abstufungen
              Ah Ok, deshalb sah das im ersten Moment so komisch aus.

              Vielen Dank!

              Kommentar


                #8
                Funktioniert auch bei mir bestens, merci für deinen Einsatz

                Kommentar


                  #9
                  Hallo,
                  arbeitet darksky auch mit der clock.digiclock 2 zusammen?
                  Möchte gerne diese Uhr mit dem aktuellen Wetter nutzen. Aber dieses Widget funktioniert schon seit einiger Weile nicht mehr.

                  Vielleicht kann mir jemand helfen und mir sagen, wie ich die Wetterdaten in dieses Widget kriege.

                  Vielen Dank.

                  Edit:
                  Habs gefunden. Beim Ort im Widget müssen auch die Koordinaten eingetragen werden
                  Zuletzt geändert von Maxthomas2001; 12.08.2018, 10:02.

                  Kommentar


                    #10
                    Mittlerweile habe ich auch auf Darksky umgestellt.
                    auch in der config habe ich von Yr.no umgestellt auf darksky, funktioniert alles prima.
                    die Werte die ich benutze sind m.E. auch wesentlich besser und zuverlässiger als wunderground.

                    Bei wunderground nutze ich die wind.direction, die bei darksky nicht geliefert wird.
                    das versuche ich durch eine Logik zu ergänzen:

                    Code:
                    #!/usr/bin/env python
                    # calculate windbearing
                    
                    def wind_deg2txt(deg):
                        #                 0   1    2   3    4   5    6   7    8
                        wind_dir_name = ['N','NO','O','SO','S','SW','W','NW','N']
                     
                        wind_sections = 360 / 8
                        offset = wind_sections / 2
                        # range(start, stop[, step])
                        y = int( (deg + offset) / wind_sections )
                        wind_dir_txt = wind_dir_name[y] 
                        return(wind_dir_txt)
                    
                    grad = sh.darksky.currently.windBearing() 
                    #logger.info("Windrichtung inp: " + str(grad) )
                    sh.darksky.currently.windBearingTxt = str(wind_deg2txt(grad)) 
                    #logger.info("Windrichtung txt: " + sh.darksky.currently.windBearingTxt)
                    meine logic funktioniert, die Richtung wird korrekt ermittelt und auch in meinem log als string angezeigt.
                    nur landet der string nicht in meinem neuen item:

                    Code:
                            windBearing:
                                type: num
                                ds_matchstring: currently/windBearing
                            windBearingTxt:
                                type: str
                                enforce_updates: 'yes'
                    im backend wird der string immer leer angezeigt und offensichtlich nur beim init versorgt.

                    dann habe ich noch ein Übersetzungsproblem:
                    ich nutze das item: darksky.currently.precipType
                    es enthält den Wert: "rain"
                    ich habe versucht es in der VISU über einen Eintrag in der language Tabelle zu übersetzen.
                    tut's aber nicht

                    Kommentar


                      #11
                      Der erste Teil bezieht sich offensichtlich auf SHNG und nicht smartVISU.
                      Hast du das watch_item richtig gesetzt?
                      Ich bin mir nicht sicher, ob def in logics funktioniert, ich meine da mal etwas gelesen zu haben.
                      Wenn du bessere Antworten willst, musst du im richtigen Forum fragen.

                      Beim zweiten Teil ist mir nicht ganz klar, ob es um SHNG oder sV geht. Wo hast du dieses "rain"?
                      Und wie hast du das in welche "language Tabelle" eingetragen?

                      Kommentar


                        #12
                        Die Zuweisung des Wertes zum Item ist nicht korrekt.

                        sh.item = wert ist FALSCH.

                        Das muss sh.item(wert) heißen.
                        Viele Grüße
                        Martin

                        Kommentar


                          #13
                          zu #12:

                          dachte ich doch, dass ich das so schon probiert hatte:

                          Code:
                          2018-08-15  10:26:39 ERROR    logics.WindRichtung Logic: logics.WindRichtung, File: /usr/local/smarthome/logics/Wind.py, Line: 17, Method: <module>, Exception: 'str' object is not callable
                          Traceback (most recent call last):
                            File "/usr/local/smarthome/lib/scheduler.py", line 493, in _task
                              exec(obj.bytecode)
                            File "/usr/local/smarthome/logics/Wind.py", line 17, in <module>
                              sh.darksky.currently.windBearingTxt(str(wind_deg2txt(grad)))
                          TypeError: 'str' object is not callable

                          Kommentar


                            #14
                            zu #11:

                            hatte es so probiert:

                            Code:
                            ; To add your custom settings:
                            ; 1. copy this file to custom.ini
                            ; 2. set the base language in 'extends' (e.g. extends = "en" or extends = "de-ch")
                            ; 3. Add only formats which should be overridden or added (don't forget to add the categories in [])
                            ; 4. Change your language setting in configuration to 'custom'
                            
                            ;@author      Wil Heynen
                            ;@label    Anpassungen
                            
                            extends = "de"
                            
                            ; -----------------------------------------------------------------------------
                            ; F O R M A T
                            ; -----------------------------------------------------------------------------
                            [format]
                            m/s = "%01,1f m/s"
                            v = "%1,1f V"
                            G = "%1f °"
                            
                            [darksky]
                            rain = "Regen"
                            snow = "Schnee"
                            sleet = "Graupel"
                            Code:
                            {{ basic.print('Regend2', 'darksky.currently.precipType', 'text') }}
                            visu2.JPG
                            Angehängte Dateien

                            Kommentar


                              #15
                              Zitat von whe Beitrag anzeigen
                              zu #12:

                              dachte ich doch, dass ich das so schon probiert hatte:
                              Code:
                              sh.darksky.currently.windBearingTxt(str(wind_deg2txt(grad)))
                              TypeError: 'str' object is not callable
                              richtig - weil du zuvor das Item sh.darksky.currently.windBearingTxt mit einem String überschrieben hast mit deinem Befehl sh.darksky.currently.windBearingTxt = str(wind_deg2txt(grad)).
                              SHNG neu starten sollte helfen.


                              Zitat von whe Beitrag anzeigen
                              hatte es so probiert:
                              [...]
                              Code:
                              {{ basic.print('Regend2', 'darksky.currently.precipType', 'text') }}
                              Wie kommst du auf die Idee, dass ein Inhalt eines Items in basic.print durch sV automatisch übersetzt wird, weil du für darksky.rain im lang .ini einen Eintrag machst?

                              Allefnalls könnte etwas wie das hier funktionieren:
                              HTML-Code:
                              {{ basic.print('', 'darksky.currently.precipType', 'text', 'sv_lang.darksky[VAR1]') }}
                              sv_lang ist aber eine interne Variable und nicht public API, diese könnte also jederzeit ändern oder wegfallen.

                              Besser würdest du die möglichen Werte im INI als Attribute von precipType definieren:
                              Code:
                              [darksky]
                              precipType[rain] = "Regen"
                              precipType[snow] = "Schnee"
                              precipType[sleet] = "Graupel"
                              Und dann so abfragen:
                              HTML-Code:
                              {{ basic.print('', 'darksky.currently.precipType', 'text', 'sv_lang.darksky.precipType[VAR1]') }}

                              Und noch besser wäre es, du würdest das in SHNG (z.B. in deiner Logik) übersetzen.
                              Zuletzt geändert von smai; 15.08.2018, 14:18.

                              Kommentar

                              Lädt...
                              X