+ Antworten
Seite 1 von 4 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 32

Thema: Börsenticker

  1. #1
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,033

    Standard Börsenticker

    Hallo zusammen,

    vor einiger Zeit habe ich hier mal eine Anfrage hinsichtlich Börsendaten und Ticker gelesen, leider habe ich es gerade nicht mehr über die Suche gefunden.
    Das Thema hatte mich damals schon interessiert und ich habe jetzt eine Lösung dafür gefunden.
    Die Daten kann man sich über die Yahoo Finance via CSV abholen:

    Yahoo:
    Yahoo Finance - Business Finance, Stock Market, Quotes, News
    CSV Abholen:
    http://finance.yahoo.com/d/quotes.csv?s=AAPL&f=snl1hg
    Parameter
    s = Wertkennzeichen
    f = Finance Tags ( s= Ticker n = Name, l1 = aktuellen Kurs, h = Tageshoch, g Tagestief)


    Bei mir sieht das im WebFront dann ungefähr so aus:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Börse.PNG 
Hits:	382 
Größe:	66.6 KB 
ID:	40539

    Und hier noch ein kleines Script dazu:

    PHP-Code:
    <?
    ################################################################################
    # Scriptbezeichnung: Internet.StockExchange.ips.php
    # Version:    1.0.20170904
    # Author:    Heiko Wilknitz (@Pitti)
    #
    # Börsenticker:
    #    CSV - Yahoo
    #        http://finance.yahoo.com/
    #            s = Wertkennzeichen
    #            f = Finance Tags (    s= Ticker n = Name, l1 = aktuellen Kurs, 
    #                                h = Tageshoch, g Tagestief)
    #        http://finance.yahoo.com/d/quotes.csv?s=AAPL&f=snl1hg
    #
    #
    # Installation:
    #    - WKN-Array unter Konfiguration mit den entsprechenden Werten befüllen
    #    - Script in der Konsole ausführen
    #
    # ------------------------------ Konfiguration ---------------------------------
    #
    $wkn = array(
        
    "AAPL"          => "Apple Inc."
    );
    #
    # ----------------------------------- ID´s -------------------------------------
    #
    #
    ################################################################################


    if ($_IPS['SENDER'] == "Execute") {
        
    // ID des ArchiveHandler ermitteln 
        
    $instances IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}'); 
        
    $id_archive_handler $instances[0]; 
        
    // pro WKN eine Variable
        
    foreach($wkn as $ident => $name) {
            
    $vid CreateVariableByName($_IPS['SELF'], $name/*Float*/);
            
    IPS_SetInfo($vid$ident);
            
    IPS_SetIcon($vid"Graph");
            
    AC_SetLoggingStatus($id_archive_handler$vidtrue);
        }
    }


    if(
    $_IPS['SENDER'] == "TimerEvent") {
        
    // alle untergeordneten Objekt einsammeln
        
    $ids IPS_GetChildrenIDs($_IPS['SELF']);
        
    // echo print_r($ids);
        
    foreach ($ids as $id) {
            
    // for each Wertkennzeichen daten holen
            
    $array IPS_GetObject($id);
            
    // Float-Variable?
            
    if ($array['ObjectType'] == 2) {
                
    $url 'http://finance.yahoo.com/d/quotes.csv?s='.$array['ObjectInfo'].'&f=snl1hg';
                
    $req file_get_contents($url);    // Lesen der Daten.
                
    $csv   str_getcsv($req",");
                
    SetValue($id$csv[2]);
            }        
        }
    }    

    # ------------------------------ Funktionen ------------------------------------

    function CreateVariableByName($id$name$type

       
    $vid = @IPS_GetVariableIDByName($name$id); 
       if(
    $vid===false) { 
          
    $vid IPS_CreateVariable($type); 
          
    IPS_SetParent($vid$id); 
          
    IPS_SetName($vid$name); 
       } 
       return 
    $vid


    function 
    CreateEventByName($id$name$type

       
    $eid = @IPS_GetEventIDByName($name$id); 
       if(
    $eid===false) { 
          
    $eid IPS_CreateEvent($type); 
          
    IPS_SetParent($eid$id); 
          
    IPS_SetName($eid$name); 
       } 
       return 
    $eid
    }

    ################################################################################
    ?>
    Ich habe dann noch einen entsprechenden Timer für Mo-Fr von 9-18 Uhr aller 30min angelegt und im WF die Graphen dazu gepackt. Fertig

    Viel Spaß
    Heiko
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  2. #2
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    599

    Hallo Heiko,

    vielen Dank für die Idee. Allerdings hab ich ein kleines Problem. Er legt die Variablen gemäß der WKN-Liste an. Holt auch die Werte bei Yahoo ab, aber er aktualisiert nicht die angelegten Float-Variablen.
    PHP-Code:
    <? 
    ################################################################################ 
    # Scriptbezeichnung: Internet.StockExchange.ips.php 
    # Version:    1.0.20170904 
    # Author:    Heiko Wilknitz (@Pitti) 

    # Börsenticker: 
    #    CSV - Yahoo 
    #        http://finance.yahoo.com/ 
    #            s = Wertkennzeichen 
    #            f = Finance Tags (    s= Ticker n = Name, l1 = aktuellen Kurs,  
    #                                h = Tageshoch, g Tagestief) 
    #        http://finance.yahoo.com/d/quotes.csv?s=AAPL&f=snl1hg 


    # Installation: 
    #    - WKN-Array unter Konfiguration mit den entsprechenden Werten befüllen 
    #    - Script in der Konsole ausführen 

    # # ------------------------------ Konfiguration --------------------------------- 

    $wkn = array(
        
    "AAPL"            => "Apple",
        
    "976979.de"       => "DWS Top World");

    # ----------------------------------- ID´s ------------------------------------- 


    ################################################################################ 


    if ($_IPS['SENDER'] == "Execute") { 
        
    // ID des ArchiveHandler ermitteln  
        
    $instances IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}');  
        
    $id_archive_handler $instances[0];  
        
    // pro WKN eine Variable 
        
    foreach($wkn as $ident => $name) { 
            
    $vid CreateVariableByName($_IPS['SELF'], $name/*Float*/); 
            
    IPS_SetInfo($vid$ident); 
            
    IPS_SetIcon($vid"Graph"); 
            
    AC_SetLoggingStatus($id_archive_handler$vidtrue); 
        } 



    if(
    $_IPS['SENDER'] == "TimerEvent") { 
        
    // alle untergeordneten Objekt einsammeln 
        
    $ids IPS_GetChildrenIDs($_IPS['SELF']); 
        
    // echo print_r($ids); 
        
    foreach ($ids as $id) { 
            
    // for each Wertkennzeichen daten holen 
            
    $array IPS_GetObject($id); 
            
    // Float-Variable? 
            
    if ($array['ObjectType'] == 2) { 
                
    $url 'http://finance.yahoo.com/d/quotes.csv?s='.$array['ObjectInfo'].'&f=snl1hg'
                
    $req file_get_contents($url);    // Lesen der Daten. 
                
    $csv   str_getcsv($req","); 
                
    SetValue($id$csv[2]); 
            }         
        } 
    }     

    # ------------------------------ Funktionen ------------------------------------ 

    function CreateVariableByName($id$name$type)  
    {  
       
    $vid = @IPS_GetVariableIDByName($name$id);  
       if(
    $vid===false) {  
          
    $vid IPS_CreateVariable($type);  
          
    IPS_SetParent($vid$id);  
          
    IPS_SetName($vid$name);  
       }  
       return 
    $vid;  
    }  

    function 
    CreateEventByName($id$name$type)  
    {  
       
    $eid = @IPS_GetEventIDByName($name$id);  
       if(
    $eid===false) {  
          
    $eid IPS_CreateEvent($type);  
          
    IPS_SetParent($eid$id);  
          
    IPS_SetName($eid$name);  
       }  
       return 
    $eid;  


    ################################################################################ 

    ?>
    In Deinem Beispiel legt er die Float-Variable "Apple" an, holt sich die Daten aber in die Variable wird kein Wert übertragen.
    Woran kann das liegen?
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	börse.JPG 
Hits:	93 
Größe:	22.7 KB 
ID:	40571
    Viele Grüße,

    Burkhard

    P.S.: Fehler werden bei der Ausführung des Script nicht angezeigt.
    Geändert von Burki24 (14.09.17 um 07:11 Uhr)
    OMV 4.1 (Arrakis - NAS auf Odroid C2), HM-HMIP über piVCCU3, Symcon 5.2 auf Raspi3, Wandpanels mit IPSView, Harmony, Fritzbox, Hue, KODI Mediaserver

  3. #3
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,033

    Hmm, merkwürdig. Bist du schon im Zeitfenster des Timers gewesen? Löst der aus? Haste einfach mal den Timer auf immer aller 5 min gestellt?


    Gesendet von iPhone mit Tapatalk
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  4. #4
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    599

    Hallo Heiko,

    vielleicht war ich nur zu ungeduldig. Bin gerade nach Hause gekommen und siehe da, die Werte sind aktuell. Vielen Dank für das Script. Läuft also perfekt.

    Viele Grüße,

    Burkhard
    OMV 4.1 (Arrakis - NAS auf Odroid C2), HM-HMIP über piVCCU3, Symcon 5.2 auf Raspi3, Wandpanels mit IPSView, Harmony, Fritzbox, Hue, KODI Mediaserver

  5. #5
    Registriert seit
    Jun 2011
    Ort
    Fessenheim, Schwaben, Bayern
    Beiträge
    558

    Hallo Heiko,

    vielen Dank für das Skript ... Läuft perfekt ....

    Gruß Proxima
    Unlimited IP-Symcon 5.3 4979 benutzte Variablen
    Server: Windows Server 2016 Essentials auf Intel Xeon E3-1245v5; 32GB RAM; SSD für System; 12TB Daten-HDD's Hardware: HomeMatic (OCCU, RS485 & HMIP); 1-Wire; Sonos; IrTrans Ethernet; WMRS 200; Plugwise; UVR1611; Harmony Elite; Xiaomi Roborock S50; Echo Dots; Synology NAS DS-414 (externes BackUp)

  6. #6
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,033

    Hi zusammen,

    freut mich natürlich, Danke!

    Ciao Heiko


    Gesendet von iPhone mit Tapatalk
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  7. #7
    Registriert seit
    Jun 2011
    Ort
    Fessenheim, Schwaben, Bayern
    Beiträge
    558

    Hallo,

    funktioniert bei Euch das Script noch ???

    Hab seit mehreren Tagen bei sämtlichen Werten 0,00€ in der Variable stehen.

    Gruß Proxima
    Unlimited IP-Symcon 5.3 4979 benutzte Variablen
    Server: Windows Server 2016 Essentials auf Intel Xeon E3-1245v5; 32GB RAM; SSD für System; 12TB Daten-HDD's Hardware: HomeMatic (OCCU, RS485 & HMIP); 1-Wire; Sonos; IrTrans Ethernet; WMRS 200; Plugwise; UVR1611; Harmony Elite; Xiaomi Roborock S50; Echo Dots; Synology NAS DS-414 (externes BackUp)

  8. #8
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,100

    Wenn du die URL aufrufst, dann kannst du lesen warum:

    It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.
    MfG Ralf

  9. #9
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,033

    Moin,

    Ralf hat ja schon die Antwort geliefert. Habe darum alles auf google umgestellt

    PHP-Code:
    <?
    ################################################################################
    # Scriptbezeichnung: Internet.StockExchange.ips.php
    # Version:    2.0.20171101
    # Author:    Heiko Wilknitz (@Pitti)
    #
    # Börsenticker:
    #     JSON - Google    
    #         https://www.google.com/finance
    #         ETR:xxx => Xetra
    #         FRA:xxx => Frankfurt
    #         https://www.google.com/finance?q=ETR:BMW
    #         https://www.google.com/finance?q=FRA:BMW
    #
    # Installation:
    #    - WKN-Array unter Konfiguration mit den entsprechenden Werten befüllen
    #    - Script in der Konsole ausführen
    #
    # ------------------------------ Konfiguration ---------------------------------
    #
    $wkn = array(
        
    "FRA:BMW"        => "Bayerische Motoren Werke AG"    //google
    );
    #
    # ----------------------------------- ID´s -------------------------------------
    #
    #
    ################################################################################


    if ($_IPS['SENDER'] == "Execute") {
        
    // ID des ArchiveHandler ermitteln 
        
    $instances IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}'); 
        
    $id_archive_handler $instances[0]; 
        
    // pro WKN eine Variable
        
    foreach($wkn as $ident => $name) {
            
    $vid CreateVariableByName($_IPS['SELF'], $name/*Float*/);
            
    IPS_SetInfo($vid$ident);
            
    IPS_SetIcon($vid"Graph");
            
    AC_SetLoggingStatus($id_archive_handler$vidtrue);
        }
    }


    if(
    $_IPS['SENDER'] == "TimerEvent") {
        
    // alle untergeordneten Objekt einsammeln
        
    $ids IPS_GetChildrenIDs($_IPS['SELF']);
        
    // echo print_r($ids);
        
    foreach ($ids as $id) {
            
    // for each Wertkennzeichen daten holen
            
    $array IPS_GetObject($id);
            
    // Float-Variable?
            
    if ($array['ObjectType'] == 2) {
                
    // Yahoo
                //$url = 'http://finance.yahoo.com/d/quotes.csv?s='.$array['ObjectInfo'].'&f=snl1hg';
                //$req = file_get_contents($url);    // Lesen der Daten.
                //$csv   = str_getcsv($req, ",");
                //SetValue($id, $csv[2]);
                
                // Google
                
    $url 'https://www.google.com/finance?q='.$array['ObjectInfo'].'&output=json';
                
    $req file_get_contents($urlfalseNULL4);    // Lesen der Daten.
                
    $dec json_decode($reqtrue);
                if(
    $dec[0]["l"] > 0) {
                    
    SetValue($id$dec[0]["l"]);
                }
            }        
        }
    }    

    # ------------------------------ Funktionen ------------------------------------

    function CreateVariableByName($id$name$type

       
    $vid = @IPS_GetVariableIDByName($name$id); 
       if(
    $vid===false) { 
          
    $vid IPS_CreateVariable($type); 
          
    IPS_SetParent($vid$id); 
          
    IPS_SetName($vid$name); 
       } 
       return 
    $vid


    function 
    CreateEventByName($id$name$type

       
    $eid = @IPS_GetEventIDByName($name$id); 
       if(
    $eid===false) { 
          
    $eid IPS_CreateEvent($type); 
          
    IPS_SetParent($eid$id); 
          
    IPS_SetName($eid$name); 
       } 
       return 
    $eid
    }

    ################################################################################
    ?>
    Viel Spaß
    Pitti
    Geändert von pitti (29.11.17 um 09:15 Uhr)
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  10. #10
    Registriert seit
    Apr 2013
    Ort
    Baden-Württemberg
    Beiträge
    1,952

    Danke für die Korrektur auf Google Finance...

    Hier mal ein Test von verschiedenen Aktien...

    Die Variablen werden angelegt, aber die Werte werden nicht in die Variable geschrieben.

    hier mal der angepasste Ausschnitt aus deinem Skript:
    PHP-Code:
    $wkn = array( 
        
    "ETR:SZU"        => "Suedzucker AG",    //suedzucker
        
    "VIE:PYT"        => "POLYTEC Holding AG"//Polytec
        
    "ETR:M5Z"        => "Manz AG",    //Manz AG
        
    "OTCMKTS:BYDDF"        => "BYD COMPANY LTD",    //BYD
    ); 
    Und hier die erstellten Variablen:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	screenshot2.JPG 
Hits:	60 
Größe:	26.0 KB 
ID:	41431

    Das Ereignis habe ich selbst angelegt. Das Ereignis wurde auch schon mehrfach ausgeführt.

    Habt ihr mir dazu eine IDEE?

    P.S. IPS darf ins Internet
    Geändert von mastermind1 (28.11.17 um 10:43 Uhr)
    • Z-WAVE: Fibaro FGR-221, FGS-211,Aeon Labs Multisensor, Aeon Labs S2, FGK, Greenwave
    • 1-Wire: S0 Counter, Windsensor XS, 1 Wire DS9490R, DS18B20, Luftgütesensor
    • Youless LS110 / Velux Raumluftfühler / Oregon Scientific WMR180A
    • IPS: CENOVO MINI China PC / IPS-2: Razberry PI B+