Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Wetterdaten via darksky.net / forecast.io

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

    #76
    bmx sollte oben sein, bitte mal testen!

    Kommentar


      #77
      Passt!

      Kommentar


        #78
        Hallo zusammen,

        erst einmal vielen Dank für die viele Arbeit am DarkSky plugin.

        Ich versuche nun schon seit paar Tagen das DarkSky plugin zum Laufen zu bekommen.


        * gemäss README.html Dateides plugins

        1) Generieren von API-Key
        2) Konfigurieren des plugins *
        3) Erstellen von Items *
        4) Copy/Paste von Stefan Widmers PHP Skript in "/var/www/html/smartVISU/lib/weather/service/"

        PHP-Code:
        <?php
        /**
        * -----------------------------------------------------------------------------
        * @package smartVISU
        * @author Stefan Widmer
        * @copyright 2018
        * @license GPL [http://www.gnu.de]
        * -----------------------------------------------------------------------------
        */


        require_once '../../../lib/includes.php';
        require_once 
        const_path_system.'weather/weather.php';
        require_once 
        const_path_system.'class_cache.php';


        /**
        * This class generates a weather
        */
        class weather_darksky extends weather
        {

        /**
        * retrieve the content
        */
        public function run()
        {
        // api call
        $cache = new class_cache('darksky_'.$this->location.'.json');

        if (
        $cache->hit($this->cache_duration_minutes))
        {
        $content $cache->read();
        }
        else
        {
        $url 'https://api.darksky.net/forecast/'.config_weather_key.'/'.$this->location.'?exclude=minutely,hourly,alerts&units=a uto&lang='.trans('darksky''lang');
        $content file_get_contents($url);
        $cache->write($content);
        }

        $parsed_json json_decode($content);
        if (
        $parsed_json->{'daily'})
        {
        $this->debug($parsed_json);

        // today
        $this->data['current']['temp'] = transunit('temp', (float)$parsed_json->{'currently'}->{'temperature'});

        $this->data['current']['conditions'] = (string)$parsed_json->{'currently'}->{'summary'};
        $this->data['current']['icon'] = $this->icon((string)$parsed_json->{'currently'}->{'icon'}, $this->icon_sm);

        $wind_speed transunit('speed', (float)$parsed_json->{'currently'}->{'windSpeed'});
        $wind_gust transunit('speed', (float)$parsed_json->{'currently'}->{'windGust'});
        $wind_direction = (int)$parsed_json->{'currently'}->{'windBearing'};

        $this->data['current']['wind'] = translate('wind''darksky')." ".$wind_speed;
        // when there is no wind, direction is blank
        if ($parsed_json->{'currently'}->{'windSpeed'} != 0)
        $this->data['current']['wind'] .= " ".translate('from''darksky')." ".$wind_direction."&deg;";
        if (
        $wind_gust 0)
        $this->data['current']['wind'] .= ", ".translate('wind_gust''darksky')." ".$wind_gust;

        $this->data['current']['more'] = translate('humidity''darksky')." ".transunit('%'100*(float)$parsed_json->{'currently'}->{'humidity'});

        // forecast
        $i 0;
        foreach (
        $parsed_json->{'daily'}->{'data'} as $day)
        {
        if((int)
        $day->{'time'} < mktime(0,0) || (int)$day->{'time'} > time()+3*24*60*60// next 4 days only
        continue;

        $this->data['forecast'][$i]['date'] = date('Y-m-d', (int)$day->{'time'});
        $this->data['forecast'][$i]['conditions'] = (string)$day->{'summary'};
        $this->data['forecast'][$i]['icon'] = $this->icon((string)$day->{'icon'});

        $this->data['forecast'][$i]['temp'] = round((float)$day->{'temperatureHigh'}, 0).'&deg;/'.round((float)$day->{'temperatureLow'}, 0).'&deg;';

        $i++;
        }
        }
        else
        {
        $add $parsed_json->{'flags'}->{'darksky-unavailable'};
        $this->error('Weather: darksky.net''Read request failed'.($add ': '.$add '').'!');
        }
        }

        /*
        * Icon-Mapper
        */
        function icon($name$sm 'sun_')
        {
        $ret '';

        $icon['clear-day'] = $sm.'1';
        $icon['clear-night'] = $sm.'1';
        $icon['partly-cloudy-day'] = $sm.'4';
        $icon['partly-cloudy-night'] = $sm.'4';
        $icon['fog'] = $sm.'6';
        $icon['rain'] = 'cloud_8';
        $icon['wind'] = $sm.'10';
        $icon['snow'] = $sm.'12';

        $icon['cloudy'] = 'cloud_4';
        $icon['sleet'] = 'cloud_11';

        $ret $icon[$name];

        return 
        $ret;
        }
        }


        // -----------------------------------------------------------------------------
        // call the service
        // -----------------------------------------------------------------------------

        $service = new weather_darksky(array_merge($_GET$_POST));
        echo 
        $service->json();

        ?>


        Das fetchen/updaten der Daten funktioniert einwandfrei (beurteilt am Webinterface von DarkSky).



        Jeodch kann ich leider die widgets nicht in SmartVisu darstellen

        Code:
        <hr>
        
        {% import "weather.html" as weather %}
        {{ weather.current('weather') }}
        
        <hr>
        
        {{weather.forecastweek('weather_forecast') }}
        
        <hr>
        Die log Datei zeigt mir auch kein Error an.


        Hat hier jemand eine Idee was ich hier übersehe? Wo ich suchen soll?

        Liebe Grüsse,

        brunosa3

        Kommentar


          #79
          Das eine ist das plugin
          https://github.com/smarthomeNG/plugi...ksky/README.md

          das andere die Visu. Das php Skript brauchst du nicht, nimm einfach aktuellen develop branch der Visu! Dort musst du in den visu settings deine Daten inkl api key eingeben. Hat aber wie erwähnt nix mit dem plugin von shng zu tun

          Kommentar


            #80
            Hallo Onkelandy ,

            es tut mir Leid wenn ich noch einige Dinge vertausche.

            Ich habe nun das PHP Skript verworfen und auf develop branch gewechselt.

            Code:
            cd /var/www/html/smartVISU
            git checkout develop
            und in der SmartVisu die Einstellungen gesetzt
            2020-02-06_22-19-13.png
            Leider sehe ich trotzdem keine Wetter Daten

            2020-02-06_22-19-56.png



            ich habe es bereits erfolglos mit "API key" oder "API key/passwort" probiert.
            Auch habe ich das ü in Baden-Wüttember mit einem ue ausgetauscht. jeodch ohne Erfolg.

            Wisst Ihr was sich hier beisst?

            Liebe Grüsse,

            brunosa3



            Kommentar


              #81
              und das "r" in Württemberg?

              Kommentar


                #82
                Unabh. davon gehört das ins smartvisu Forum ;-)

                Kommentar


                  #83
                  Ich musste bei mir bei Ort LONG Beistrich LAT eingeben.

                  Kommentar


                    #84
                    Zitat von wvhn Beitrag anzeigen
                    und das "r" in Württemberg?
                    wvhn Tut mir leid ich hatte es nicht kopiert sondern neu geschrieben - dabei habe ich das "r" wohl vergessen.

                    Habe nun verschiedene Sachen ausprobiert:
                    - Onkelandy Beispiel mit 47.****/7.**** oder Germany/47.****/7.**** oder Germany/Baden-Württemberg/47.****/7.****
                    - das Beispiel "Germany/Bayern/Würzburg"

                    Leider ohne Erfolg.

                    Es muss wohl an etwas anderes liegen.

                    was für ein Format verwendet Ihr beim API-Key für darksky.net? "API-KEY" oder "API-KEY/Passwort" oder "API-KEY/Passwort/Number of requests per hour"

                    Keiner der Optionen hat bei mir funktioniert.

                    Das Plugin verwendet man hauptsächlich für die Logiken oder?

                    Liebe Grüsse,

                    brunosa3

                    Kommentar


                      #85
                      Ort: 48.xxxxxxxx,11.xxxxxxx
                      API Key: nur der API Key

                      Kommentar


                        #86
                        yeai es funktioniert

                        2020-02-07_20-21-39.png

                        vielen Dank an psilo Onkelandy wvhn


                        Liebe Grüsse,

                        brunosa3

                        Kommentar

                        Lädt...
                        X