+ Antworten
Seite 2 von 7 ErsteErste 1 2 3 4 ... LetzteLetzte
Ergebnis 11 bis 20 von 66
  1. #11
    Registriert seit
    Jan 2018
    Ort
    97469 Gochsheim
    Beiträge
    178

    Standard DarkSky

    Hi Sebastian,

    funktioniert prima, danke

    Oliver

  2. #12
    Registriert seit
    Apr 2015
    Beiträge
    59

    Danke für das Script. //
    Hat mir jemand noch einen Tip, wieso mir Aktuell / Heute / Morgen nichts anzeigt im Webfront, aber die Werte sind im Objektbaum vorhanden?

  3. #13
    Registriert seit
    Aug 2016
    Beiträge
    2,308

    Hallo,

    falls Interesse besteht, ich habe mit someone gesprochen und bastel mal ein Modul zusammen.
    Falls jemand Wünsche hat einfach auflisten.

    Der Plan zur Zeit:
    • Splitter für Einstellungen (API Key, Update Timer Intervall)
    • Eine Instanz für die aktuellen Wetterdaten
    • Eine Instanz für die Wochenübersicht

    Grüße,
    Kai
    IPS 5.1 Ninja, auf Tinkerboard und RPI, piVCCU, Homematic & Homematic IP, diverse Tasmota Geräte, Shelly, GHoma, LG HomBot, Sonos, Tvheadend, HomeKit, AppleTV

  4. #14
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,051

    Zitat Zitat von KaiS Beitrag anzeigen
    falls Interesse besteht, ich habe mit someone gesprochen und bastel mal ein Modul zusammen.
    Falls jemand Wünsche hat einfach auflisten.
    Da wäre ich an Deiner Stelle sehr vorsichtig, aber das must Du wissen, lies Dir doch mal die Nutzungsbedindungen der API durch. Wenn Du ein kostenplichtges Modul zur Verfügung stellen willst mit einem fest hinterlegten API Key sollte das kein Problem sein.

    Wenn aber jeder Nutzer selber einen API Key eintragen muss bzw. anlegen dann entspricht das definitiv nicht den Nutzungsbedingungen von Dark Sky
    Your permission to use the Service is condition upon your agreement that you will not:
    • direct your end-users to sign up for their own API account (The Dark Sky API not intended to be used directly by end-users);



    Wie Du das dann letzlich lösen willst must Du wissen, aber das wird dann einfach mit Kosten verbunden sein, wenn alle Anfragen über einen APi Key laufen.

  5. #15
    Registriert seit
    Aug 2016
    Beiträge
    2,308

    @Fonzo, danke für den Hinweis. Darauf habe ich gar nicht geachtet.

    Wird also auf Eis gelegt.

    Grüße,
    Kai


    Gesendet von iPhone mit Tapatalk
    IPS 5.1 Ninja, auf Tinkerboard und RPI, piVCCU, Homematic & Homematic IP, diverse Tasmota Geräte, Shelly, GHoma, LG HomBot, Sonos, Tvheadend, HomeKit, AppleTV

  6. #16
    Registriert seit
    Jan 2011
    Ort
    Kerken (NRW)
    Beiträge
    210

    Wo ist denn der Unterschied zwischen einem Script und einem kostenlosen Modul?

    Wenn ich ein Script für Dark Sky schreibe und veröffentliche, wer ist denn dann der End-User?
    Würde dann nicht auch schon der Script-Ersteller gegen diese Geschäftsbedingungen verstoßen?

    Außerdem fehlt in dem Script doch auch folgende Funktion:

    You agree that any application or service which incorporates data obtained from the Service shall prominently display the message “Powered by Dark Sky” in a legible manner near the data or any information derived from any data from the Service. This message must, if possible, open a link to https://darksky.net/poweredby/ when clicked or touched.
    Wer ist dafür verantwortlich? Der ursprüngliche Scriptersteller oder derjenige, der dieses Script verwendet, ohne den "Powered by Dark Sky" Hinweis hinzuzufügen?

    Ich bin kein IT-Rechtler, mich würde aber mal interessieren, wie diese diesen Sachverhalt beurteilen.
    Viele Grüße Uwe

  7. #17
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,051

    Zitat Zitat von Heimgeist Beitrag anzeigen
    Wo ist denn der Unterschied zwischen einem Script und einem kostenlosen Modul?
    Da musst Du im Zweifelsfall einen Rechtsanwalt fragen ;-). Als Laie würde ich sagen ein Modul ist eine "Anwendung" (application), bei einem Skript muss man ja noch selber Hand anlegen.

    Zitat Zitat von Heimgeist Beitrag anzeigen
    Wenn ich ein Script für Dark Sky schreibe und veröffentliche, wer ist denn dann der End-User?
    Würde dann nicht auch schon der Script-Ersteller gegen diese Geschäftsbedingungen verstoßen?
    Na der End User ist derjeige, der einen eigenen API Key anlegen muss, sonst kann er das Skript ja auch nicht nutzen. Wenn sich wenige Nutzer als Developer registrieren macht das auch kein Unterschied. Wenn aber grundsätzlich jeder Nutzer von einer Software selber ein API Key anlegen soll, dann wird das so enden wie bei Wunderground, die kostenlosen Kontingente für Developer werden dann abgeschafft werden, da die API nicht direkt für den Endkunden gedacht ist.

    Zitat Zitat von Heimgeist Beitrag anzeigen
    Wer ist dafür verantwortlich?
    Wer will das kontrollieren ob bei Dir zu Hause das angezeigt wird oder nicht? Wenn Du so was auf eine Internetseite stellst ist das schon wieder was anderes. Wenn man letzendlich ein Modul schreibt, was mit einem Klick installiert ist und dazu dient in einer Visualisierung Werte anzuzeigen, dann muss dieser Hinweis sicher auch da hinzugefügt werden.

    Aber am Schluss fragt man 3 Anwälte und bekommt 3 unterschiedliche Antworten ;-). Wenn man so ein mögliches PHP Modul später in den Modul Store von IP-Symcon laden sollte, sollte man zumindest zunächst püfen ob alle Nutzungsbedingungen so weit eingehalten werden.

  8. #18
    Registriert seit
    Jan 2012
    Ort
    Chemnitz
    Beiträge
    420

    Zitat Zitat von Buzz2912 Beitrag anzeigen
    Hier mein Script wegen der Abschaltung von WeatherUnderground.

    Viel Spass!
    Sebastian

    PHP-Code:
    <?

    $api 
    "yourKeyhere";
    $latitude "47.98";
    $longitude "14.97";

    $heute date('d');
    $WochenTage = Array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');


      
    $json_string file_get_contents("https://api.darksky.net/forecast/$api/$latitude,$longitude?exclude=minutely&lang=de&units=si"); 
      
    $parsed_json json_decode($json_string);
      
    $current $parsed_json->{'currently'};
       
    $text0 utf8_decode($current->summary) . "\n";
       
    $text1 utf8_decode($current->temperature) . "\n";
       
    $text2 utf8_decode($current->apparentTemperature) . "\n";
       
    $text3 utf8_decode($current->precipProbability) . "\n";
       
    $text4 utf8_decode($current->windSpeed) . "\n";
       
    $text5 utf8_decode($current->windGust) . "\n";
       
    $text6 utf8_decode($current->cloudCover) . "\n";
       @
    $text7 utf8_decode($current->precipType) . "\n";
       
    $text8 utf8_decode($current->humidity);

       
    $niederschlag "";
                 if (
    $text7 == "rain"$niederschlag "Regen";
                 if (
    $text7 == "snow"$niederschlag "Schnee";
                 if (
    $text7 == "sleet"$niederschlag "Schneeregen";

       
    $InsID = @IPS_GetInstanceIDByName("Aktuell"$IPS_SELF);
        if (
    $InsID === false)
        {
        
    $InsID IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");    
        
    IPS_SetName($InsID"Aktuell");
        
    IPS_SetParent($InsID$IPS_SELF); 
        
    IPS_ApplyChanges($InsID);
        }
       
    SetValue(CreateVariableByName($InsID"Zusammenfassung"3"~String"),$text0); 
       
    SetValue(CreateVariableByName($InsID"Temperatur"2"~Temperature"),$text1);
       
    SetValue(CreateVariableByName($InsID"Temperatur gefühlt"2"~Temperature"),$text2);
       
    SetValue(CreateVariableByName($InsID"Niederschl Wahrsch."2"~Intensity.1"),$text3);
       @
    SetValue(CreateVariableByName($InsID"Niederschlag"3"~String"),$text7);
       
    SetValue(CreateVariableByName($InsID"Windgeschw"2"~WindSpeed.ms"),$text4);
       
    SetValue(CreateVariableByName($InsID"Wind Böen"2"~WindSpeed.ms"),$text5);
       
    SetValue(CreateVariableByName($InsID"Wolken"2"~Intensity.1"),$text6);
       
    SetValue(CreateVariableByName($InsID"Feuchte"2"~Intensity.1"),$text8);



       
       
    $daily $parsed_json->{'daily'};
        
    $text0 utf8_decode($daily->summary) . "\n";
       
    $days $parsed_json->{'daily'}->{'data'};
       
    $message = array();

            for(
    $i=0;$i<7;$i++)
             {
                 
    $day utf8_decode($days[$i]->time);
                 
    $summary utf8_decode($days[$i]->summary);
                 
    $temphigh utf8_decode($days[$i]->temperatureHigh);
                 
    $templow utf8_decode($days[$i]->temperatureLow);
                 @
    $precipType utf8_decode($days[$i]->precipType);
                 
    $niederschlag "";
                 if (
    $precipType == "rain"$niederschlag "Regen";
                 if (
    $precipType == "snow"$niederschlag "Schnee";
                 if (
    $precipType == "sleet"$niederschlag "Schneeregen";
                 
    $niedr_prop utf8_decode($days[$i]->precipProbability);
                 
    $wind utf8_decode($days[$i]->windSpeed);
                 
    $boen utf8_decode($days[$i]->windGust);
                 
    $wolken utf8_decode($days[$i]->cloudCover);
                 
    $humidity utf8_decode($days[$i]->humidity);
                 
    $tag date('d',intval($day));    
                 
    $Wochentag $WochenTage[date('w',intval($day))];     
                 
    $message[$tag] = array(date('d.m',intval($day)),$WochenTage[date('w',intval($day))],$summary,$temphigh,$templow,$niederschlag,$niedr_prop,$wind,$boen,$wolken,$humidity);
                 
    $box[] = "$Wochentag $summary / $niederschlag $niedr_prop % / $temphigh °C $templow °C";
             }
        
    $InsID = @IPS_GetInstanceIDByName("Heute"$IPS_SELF);
        if (
    $InsID === false)
        {
        
    $InsID IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");    
        
    IPS_SetName($InsID"Heute");
        
    IPS_SetParent($InsID$IPS_SELF); 
        
    IPS_ApplyChanges($InsID);
        }
           
     
                
    SetValue(CreateVariableByName($IPS_SELF"Woche Zusammenfassung"3"~String"),$text0); 
                
    SetValue(CreateVariableByName($InsID"Zusammenfassung"3"~String"),$message[$heute][2]); 
                
    SetValue(CreateVariableByName($InsID"Temp Max"2"~Temperature"),$message[$heute][3]);
                
    SetValue(CreateVariableByName($InsID"Temp Min"2"~Temperature"),$message[$heute][4]);
               @
    SetValue(CreateVariableByName($InsID"Niederschlag"3"~String"),$message[$heute][5]);
                
    SetValue(CreateVariableByName($InsID"Niederschl Wahrsch"2"~Intensity.1"),$message[$heute][6]);
                
    SetValue(CreateVariableByName($InsID"Wind"2"~WindSpeed.ms"),$message[$heute][7]);
                
    SetValue(CreateVariableByName($InsID"Wind Böen"2"~WindSpeed.ms"),$message[$heute][8]);
                
    SetValue(CreateVariableByName($InsID"Wolken"2"~Intensity.1"),$message[$heute][9]);
                
    SetValue(CreateVariableByName($InsID"Feuchte"2"~Intensity.1"),$message[$heute][10]);


       
       
    $InsID = @IPS_GetInstanceIDByName("Morgen"$IPS_SELF);
        if (
    $InsID === false)
        {
        
    $InsID IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");    
        
    IPS_SetName($InsID"Morgen");
        
    IPS_SetParent($InsID$IPS_SELF); 
        
    IPS_ApplyChanges($InsID);
        }
        
               
                
    SetValue(CreateVariableByName($InsID"Zusammenfassung"3"~String"),$message[$heute+1][2]); 
                
    SetValue(CreateVariableByName($InsID"Temp Max "2"~Temperature"),$message[$heute+1][3]);
                
    SetValue(CreateVariableByName($InsID"Temp Min"2"~Temperature"),$message[$heute+1][4]);
               @
    SetValue(CreateVariableByName($InsID"Niederschlag"3"~String"),$message[$heute+1][5]);
                
    SetValue(CreateVariableByName($InsID"Niederschl Wahrsch"2"~Intensity.1"),$message[$heute+1][6]);
                
    SetValue(CreateVariableByName($InsID"Wind"2"~WindSpeed.ms"),$message[$heute+1][7]);
                
    SetValue(CreateVariableByName($InsID"Wind Böen"2"~WindSpeed.ms"),$message[$heute+1][8]);
                
    SetValue(CreateVariableByName($InsID"Wolken"2"~Intensity.1"),$message[$heute+1][9]);
                
    SetValue(CreateVariableByName($InsID"Feuchte"2"~Intensity.1"),$message[$heute+1][10]);


                
    SetValue(CreateVariableByName($IPS_SELF"Wöchentlich"3"~TextBox"), implode("\n",$box));


       

    $hourly $parsed_json->{'hourly'}->{'data'};
       
    $message = array();

            for(
    $i=0;$i<48;$i++)
             {
                 
    $time utf8_decode($hourly[$i]->time);
                 
    $summary utf8_decode($hourly[$i]->summary);
                 
    $temp utf8_decode($hourly[$i]->temperature);
                 
    $temp2 utf8_decode($hourly[$i]->apparentTemperature);
                 
    $humidity utf8_decode($hourly[$i]->humidity);
                 @
    $precipType utf8_decode($hourly[$i]->precipType);
                 
    $niederschlag "";
                 if (
    $precipType == "rain"$niederschlag "Regen";
                 if (
    $precipType == "snow"$niederschlag "Schnee";
                 if (
    $precipType == "sleet"$niederschlag "Schneeregen";
                 
    $niedr_prop utf8_decode($hourly[$i]->precipProbability);
                 
    $wind utf8_decode($hourly[$i]->windSpeed);
                 
    $boen utf8_decode($hourly[$i]->windGust);
                 
    $wolken utf8_decode($hourly[$i]->cloudCover);
                 
    $tag date('d',intval($time));    
                 
    $stunde date('H',intval($time));         
                 
    $Wochentag $WochenTage[date('w',intval($time))];
                 
    $message[$stunde] = array(date('d.m',intval($time)),$WochenTage[date('w',intval($time))],date('H',intval($time)),$summary,$temp,$temp2,$niederschlag,$niedr_prop,$wind,$boen,$wolken,$humidity);
                 
    $box2[]="$Wochentag $stunde Uhr $summary / $niederschlag $niedr_prop % / $temp °C";
             }

        
    SetValue(CreateVariableByName($IPS_SELF"Stündlich"3"~TextBox"), implode("\n",$box2));
         
         
       
           
      function 
    CreateVariableByName($id$name$type$profile "")
        {
            
    //global $_IPS['SELF'];
            
    $vid = @IPS_GetVariableIDByName($name$id);
            if(
    $vid === false)
            {
                
    $vid IPS_CreateVariable($type);
                
    IPS_SetParent($vid$id);
                
    IPS_SetName($vid$name);
                
    IPS_SetInfo($vid"this variable was created by script #".$_IPS['SELF']);
                if(
    $profile !== "") { IPS_SetVariableCustomProfile($vid$profile); }
            }
            return 
    $vid;
        }

    ?>
    Cool. Vielen Dank.

    Funktioniert bei mir auf Anhieb.

    Muss ich ein zyklisches Ereignis setzen oder aktualisiert sich dein Skript selber alle x Minuten?
    IP Symcon Unlimited --> 1485 Variablen --> Kernel Version: 5.0

  9. #19
    Registriert seit
    May 2013
    Beiträge
    320

    Zyklisches Ereignis nach eigenem Wunsch

  10. #20
    Registriert seit
    Nov 2016
    Beiträge
    195

    Hi Sebastian,

    ich bekomme leider folgende Fehlermeldung und die Werte bei "morgen" sind alle 0:

    PHP-Code:
    Notice:  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 109

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 110

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 111

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 113

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 114

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 115

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 116

    Notice
    :  Undefined offset2 in /var/lib/symcon/scripts/10417.ips.php on line 117 
    Viele Grüße

    Götz

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 02.11.16, 18:58
  2. Sky+ Receiver per Lan
    Von hoschiman0 im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 0
    Letzter Beitrag: 27.09.16, 19:27
  3. Schweizer Wetterdienst
    Von msiegw im Forum Allgemeine Diskussion
    Antworten: 1
    Letzter Beitrag: 04.04.16, 23:16
  4. TVTV Sky Programm
    Von MichB im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 1
    Letzter Beitrag: 08.02.16, 17:58
  5. Deutscher Wetterdienst
    Von alien80 im Forum WebFront
    Antworten: 1
    Letzter Beitrag: 08.11.10, 11:07