Autor Thema: Neues Modul: 98_STOCKQUOTES  (Gelesen 13896 mal)

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Neues Modul: 98_STOCKQUOTES
« am: 04 Februar 2015, 21:01:42 »
Ich habe ein kleines Modul gebastelt, das aktuelle Börsenkurse als Readings zur Verfügung stellt. Das Ganze basiert auf dem Perl-Modul Finance::Quote und ist im Prinzip nur ein recht simpler Wrapper, der (nicht-blockierend) das Fetching durchführt und anzeigt.

Es muss dementsprechend zunächst das Modul Finance::Quote installiert werden. Zum Beispiel per Aufruf:
cpan install Finance::Quote
UPDATE:
Hab das Ganze nochmal ziemlich umgekrempelt. Anbei mein aktueller Stand. Sind bestimmt noch ein paar Bugs drin. Ich bin auch mit den Reading-Namen noch nicht so super glücklich. Kommt mir noch uneinheitlich vor. Bin da für Ideen offen. Die können sich u.U. nochmal ändern.

Zum Anlegen des Geräts:
define myQuotes STOCKQUOTES
Das Finance::Quote kennt verschiedene Quellen zur Datenabfrage. Defaultmäßig wird "europe" verwendet (Attribut "defaultSource"). Die verfügbaren Quellen können mit "get showSources" angezeigt werden. Soll für ein Wertpapier eine andere Quelle genutzt werden, dann kann dies über das Attribut "sources" gesteuert werden. Format: "<Symbol>:<Source>[,<Symbol>:<Source>...]".

Zum Hinzufügen/Entfernen eines Wertpapiers wird add/buy bzw. remove/sell verwendet. add/remove für Wertpapiere, die nur beobachtet werden sollen (nicht im Depot). Und buy/sell, falls im Depot vorhanden und man Anzahl und Kaufpreis/Verkaufspreis angeben möchte.

Beispiele:
set myDepot buy 865985 87 7000     <- 87 Apple-Aktien (WKN 865985) zum Gesamtpreis von 7000€ kaufen
set myDepot add 851399  <- IBM beobachten
set myDepot remove 865985  <- Apple entfernen

Als Readings stehen dann folgende Eckdaten zur Verfügung:
Zitat
name         Company or Mutual Fund Name
last         Last Price
high         Highest trade today
low          Lowest trade today
date         Last Trade Date  (MM/DD/YY format)
time         Last Trade Time
net          Net Change
p_change     Percent Change from previous day's close
volume       Volume
avg_vol      Average Daily Vol
bid          Bid
ask          Ask
close        Previous Close
open         Today's Open
day_range    Day's Range
year_range   52-Week Range
eps          Earnings per Share
pe           P/E Ratio
div_date     Dividend Pay Date
div          Dividend per Share
div_yield    Dividend Yield
cap          Market Capitalization
ex_div       Ex-Dividend Date.
nav          Net Asset Value
yield        Yield (usually 30 day avg)
exchange     The exchange the information was obtained from.
success      Did the stock successfully return information? (true/false)
errormsg     If success is false, this field may contain the reason why.
method       The module (as could be passed to fetch) which found
             this information.

Welche Readings tatsächlich zur Verfügung stehen, kann stark variieren und hängt vom Exchange, Quelle bzw. vom Wertpapier ab.

Zusätzlich gibt es folgende Readings für jedes Wertpapier, die sich aufs Depot beziehen (daher _d_):
Zitat
<stockname>_d_buy_quote                  <- Kaufkurs
<stockname>_d_buy_value_total          <- Einstandswert
<stockname>_d_cur_value_total           <- Aktueller Wert
<stockname>_d_p_change_total           <- Prozentualer Unterschied gesamt
<stockname>_d_stockcount                  <- Anzahl Aktien im Depot
<stockname>_d_value_diff                     <- Wertunterschied heute
<stockname>_d_value_diff_total            <- Wertunterschied gesamt

Darüber hinaus gibt es folgende Werte, die für das gesamte Depot berechnet werden:
Zitat
depot_buy_value_total                           <- Kaufwert gesamt
depot_cur_value_total                            <- Aktueller Wert
depot_p_change                                     <- Prozentualer Unterschied heute
depot_p_change_total                            <- Prozentualer Unterschied gesamt
depot_value_diff                                      <- Wertunterschied heute
depot_value_diff_total                             <- Wertunterschied gesamt

ReadingsGroup

Ich habe mal beispielhaft eine readingsGroup dafür zusammengebastelt:
(https://dl.dropboxusercontent.com/u/24641738/fhem/stockquotes.png)

Die ist im Prinzip generisch und kann so 1:1 kopiert werden:
DEF        myB:<>,.*_name,<Depot>
myB:<Kurs>,.*_last
myB:<Stück>,.*_d_stockcount
myB:<>
myB:<Buchgewinn&nbsp(Heute)>,((?!depot).)*_p_change$,depot_p_change
myB:<>,.*_d_value_diff,depot_value_diff
myB:<Buchgewinn&nbsp(Gesamt)>,.*_d_p_change_total,depot_p_change_total
myB:<>,.*_d_value_diff_total,depot_value_diff_total
myB:<>
myB:<Einstandskurs>,.*_d_buy_quote
myB:<Einstandswert>,.*_d_buy_value_total,depot_buy_value_total
myB:<Aktueller&nbspWert>,.*_d_cur_value_total,depot_cur_value_total

Attributes:
   alias      Wertpapierdepot
   cellStyle  { "r:1"=>'style="font-weight:bold;;font-size:16px"'}
   mapping    &nbsp;
   notime     1
   valueStyle { if ($READING =~ /_p_|_diff/) {return ($VALUE < 0) ? 'style="color:red"':'style="color:green"' } }
   valueSuffix { if ($READING =~ /p_change/) { return " %" } elsif ($READING =~ /value|diff|last|buy_quote/) { return " €"}}
« Letzte Änderung: 03 Dezember 2015, 19:02:28 von vbs »

Offline carlos

  • Full Member
  • ***
  • Beiträge: 154
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #1 am: 05 Februar 2015, 07:48:13 »
Hallo,
So ein ähnliches module habe ich seit ca. 3 Monaten bei mir als Test laufen. Wollte es demnächst hier auch mal zur Verfügung stellen.
Da bist du mir leider zuvor gekommen. :'(
Ist aber kein Problem.
War für mich eh nur ein Test ob ich sowas auch noch hinkriege.
Gruß
Carlos
1 UDOO, 3 Raspberry Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.7, nanoCUL V 1.21.00 a-culfw, signalduino, div. Homematic Komponenten, toom Baumarkt Funksteckdosen

Offline TeeVau

  • Developer
  • Full Member
  • ****
  • Beiträge: 451
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #2 am: 05 Februar 2015, 08:26:14 »
Herlich, kann ich endlich die Heizung wärmer schalten, wenn die Kurse besser stehen. Oder aus, wenn der Markt kracht ;-)
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen
Gefällt mir Gefällt mir x 3 Liste anzeigen

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #3 am: 05 Februar 2015, 22:00:22 »
@carlos:
Naja, Konkurrenz belebt das Geschäft? Vielleicht können wir auch etwas zusammen werfen. Das beste aus beiden Welten. Wobei meine Welt ja auch überschaubar ist :)

@TeeVau:
Haha klingt gut, ich bin eh noch auf der Suche nach einem richtig sinnvollen Anwendungsgebiet für das Modul :P

Offline Icinger

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1070
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #4 am: 05 Februar 2015, 22:26:23 »
Raumtemperatur abhängig vom Barrel-Preis  :o

bzw. Automatische Heizöl-Bestellung, wenn Öltank unter xx% und Ölpreis unter xx €  ::)
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Offline carlos

  • Full Member
  • ***
  • Beiträge: 154
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #5 am: 08 Februar 2015, 19:09:58 »
Hallo vbs,
Ich habe mal meine Features in deine integriert. Ich hoffe das geht in Ordnung. Schau es dir einfach mal an.
Ich habe das Ganze zu einer Art Depot ausgebaut, mit einer readingsgroup kann man sich das Ganze dann auch sauber anzeigen lassen.
Folgende Änderungen:

das define sieht nun z.B.  so aus:
define myDepot STOCKQUOTES nasdaq GOOGL,AAPL 100,200
Also die Wertpapiername durch Komma getrennt und die Anzahl der jeweiligen Wertpapiere durch Komma getrennt.
Das Ganze sieht dann so wie im Anhang aus.
Das neue 98_STOCKQUOTES.pm habe ich auch angehängt.


Eine Readingsgroup könnte dann z.B. so aussehen:
define myDepotRG readingsGroup <%myDepot> <Symbol>,<Name>,<Anzahl>,<Last>,<Wert>
myDepot:GOOGL_symbol,GOOGL_name,GOOGL_anzahl,GOOGL_last,GOOGL_currency,GOOGL_wert
myDepot:AAPL_symbol,AAPL_name,AAPL_anzahl,AAPL_last,AAPL_currency,AAPL_wert

Gruß

Carlos
1 UDOO, 3 Raspberry Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.7, nanoCUL V 1.21.00 a-culfw, signalduino, div. Homematic Komponenten, toom Baumarkt Funksteckdosen

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #6 am: 08 Februar 2015, 20:28:47 »
Danke, super Sache, find ich gut! Hatte auch schon sowas im Kopf, aber bisher nicht zu gekommen. Deins gefällt mir aber gut. Ein paar kleinere Änderungsideen hätte ich:
  • wäre es besser wenn man die Anzahl und den Wert zusammen angeben würde? Zum Beispiel "VW:213,Apple:512,Google:54". Dann wäre das nicht in zwei Teile geteilt
  • Ich hatte eh immer überlegt, ob es besser wäre, die Stocknames als Attribut anstatt im DEF anzugeben. Jetzt, wo es auch die Anzahl gibt, tendiere ich da noch mehr dazu, denk ich. Also Anlegen nur mit "define myQuotes STOCKQUOTES" und dann sowas "attr myQuotes VW:512,Apple:12"
  • Ich finde, die neuen Readings sollten englisch sein (also "wert" und "anzahl"), passend zum Rest

Was denkst du dazu?

Offline carlos

  • Full Member
  • ***
  • Beiträge: 154
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #7 am: 08 Februar 2015, 22:36:37 »
Ja bin ich mit allem einverstanden, jedoch muss da das error handling verbessert werden.
Das hat den Vorteil, dass die Anzahl zum Wertpapier gehört. Jedoch sollte dann auch sowas wie Indices (DAX, ..) möglich sein ohne dass man davon Anteile hat(also Anzahl 0 oder sowas in der Art).
Wie gehen wir da bei der gemeinsamen Entwicklung vor ?
Machst du das ?
Wir konnen uns da auch über PMs verständigen, denn das gehört dann nicht in diesen Thread.
Die neueste Version sollte dann imm im 1. post stehen.
Gruß
Carlos
1 UDOO, 3 Raspberry Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.7, nanoCUL V 1.21.00 a-culfw, signalduino, div. Homematic Komponenten, toom Baumarkt Funksteckdosen

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #8 am: 13 Februar 2015, 09:54:58 »
Hallo zusammen,

beim stöbern durchs Forum finde ich immer wieder Sachen, die ich vorher gar nicht vermisst haben  8)

Ich habe euer Modul schonmal runtergeladen und nutze es inzwischen.
Ein paar Dinge funktionieren schon super.
Was mir aufgefallen ist: beim Dienstleister vwd meldet das Modul nix zurück.
Das Wertpapier ist dort aber definitiv gelistet (wenn ich es selbst über Finance::Quote mit ein bisschen code in den myUtils abfrage dann funktioniert es)
Finance::Quote unterstützt auch weitere Handelsplätze. Z.B. unionfunds.
Alle bekommt man über folgenden code raus:
sub quellen {
use Finance::Quote;
my $q = Finance::Quote->new();
my @sources = $q->sources();
my $var = "Quellen: ";
foreach $s (@sources)
{
      $var .= "$s  ";
}
return $var;
}
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #9 am: 14 Februar 2015, 00:06:15 »
Hm, also ich bekomme beim Symbol "vwd" mit dem Modul die gleichen (seltsamen) Werte wie mit einem Beispiel-Quote-Programm. ZB. isodate 2000-00-00. Was genau hast du gemacht als nichts zurückgeliefert wurde?

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #10 am: 15 Februar 2015, 15:59:12 »
Hab ein bisschen was gemacht und den ersten Post geupdatet.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #11 am: 15 Februar 2015, 19:56:11 »
Hm, also ich bekomme beim Symbol "vwd" mit dem Modul die gleichen (seltsamen) Werte wie mit einem Beispiel-Quote-Programm. ZB. isodate 2000-00-00. Was genau hast du gemacht als nichts zurückgeliefert wurde?
Ich habe folgendes versucht:

define Depot STOCKQUOTES wvd A0M16S 10
Es wurde nix zurückgeliefert.

Ich werde es mal mit dem neuen Modul testen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline Icinger

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1070
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #12 am: 15 Februar 2015, 19:57:51 »
Achtung!

wvd != vwd

lg, Ici
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #13 am: 15 Februar 2015, 20:32:26 »
Achtung!

wvd != vwd

lg, Ici
habe mich hier vertippt  ::)

im neuen modul gibt es keine aktualisierung mehr, wenn sources -> A0M16S:vwd
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #14 am: 15 Februar 2015, 22:18:29 »
Das liegt zum einen daran, dass kein previous-Feld mitkommt und andererseits daran, dass Sonderzeichen im gelieferten name-Feld enthalten sind.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #15 am: 16 Februar 2015, 12:05:13 »
Das liegt zum einen daran, dass kein previous-Feld mitkommt und andererseits daran, dass Sonderzeichen im gelieferten name-Feld enthalten sind.
na super, liegt das am vwd?

gibt es eine Möglichkeit das zum laufen zu bekommen?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #16 am: 16 Februar 2015, 18:37:21 »
Man müsste es so ändern, dass das Modul auch ohne previous arbeiten kann (momentan wird dann irgendwo durch Null geteilt). Das mit name ist sicherlich ein Encoding-Problem, das man beheben kann. Oder als Hack des Reading name ignorieren...

Das mit previous habe ich gestern mal gemacht, das sah gut aus. Mit dem Encoding hatte ich so spontan noch keinen Erfolg.

Offline volschin

  • Hero Member
  • *****
  • Beiträge: 1068
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #17 am: 16 Februar 2015, 19:04:50 »
Die meisten Nicht-Entwickler fahren übrigens besser mit
 
sudo apt-get install libfinance-quote-perl
Erstens ist das Paket für die jeweilige Umgebung getestet und
Zweitens wird es bei einem "apt-get upgrade" mit auf die neueste Version gebracht.

Bin gerade am Testen. Immer wieder coole Modul-Ideen hier im Forum.  ;D
RPi2 FHEM5.8,HM-MOD-RPI-PCB+HM-USB-CFG2+hmland 0.101
HM: CC-TC,CC-VD,LC-Dim1T-Pl-2,LC-SW1-PL2,LC-Sw1PBU-FM,LC-Dim1PWM-CV,PB-4DIS-WM,RC-19-SW
SEC-RHS,SEC-SC,SEC-SD,SEC-WIN,SEC-MDIR,Sen-MDIR-WM55,SEC-Sco
HUE: diverse, Amzn Dash-Buttons
4xRPi,4xCO20,OWL+USB,HarmonyHub,FB7590 v6.90,Echo Dot,Logi Circle2

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #18 am: 16 Februar 2015, 19:38:38 »
@klaus
Probier mal bitte die Version im Anhang...

@volschin
Ja, ist bestimmt eine gute Sache, wenn man apt hat. Ist jedoch dann nur für Distros, welche eine Paketverwaltung mitbringen, bei der es sich dann auch um apt handelt ;) Ist bei mir zB nicht der Fall (TinyCore). Soweit ich das als Perl-Newb verstehe, ist cpan dann der generische Ansatz.

Offline volschin

  • Hero Member
  • *****
  • Beiträge: 1068
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #19 am: 16 Februar 2015, 21:00:32 »
Ich habe mal etwas getestet. Vieles funktioniert sehr gut, wenn ich die Yahoo-Symbols nehme.

Folgende Probleme:
Symbol ALV.DE hat einen Kurs in EUR.
Symbol MSFT hat einen Kurs in USD.

Für den Depotwert zählst Du einfach alles zusammen. Leider ist das ein schwierigeres Problem. Eigentlich brauchst Du einen historischen Umrechnungskurs am Kauftag und einen aktuellen Umrechnungskurs. Das Yahoo-Symbol für EUR/USD ist "EURUSD=X".

Man könnte es so machen, dass die Währung, in der das Depot geführt werden soll als Attribut angegeben wird und diese Währung einfach für Deinen BUY-Preis angenommen wird. Dann muss aber noch der aktuelle Kurs auf die Depotwährung umgerechnet werden, damit eine korrekte Depotsumme herauskommt.

Als Alternative müsste man ein eigenes Depot für jedes Fremdwährungswertpapier definieren.
 
RPi2 FHEM5.8,HM-MOD-RPI-PCB+HM-USB-CFG2+hmland 0.101
HM: CC-TC,CC-VD,LC-Dim1T-Pl-2,LC-SW1-PL2,LC-Sw1PBU-FM,LC-Dim1PWM-CV,PB-4DIS-WM,RC-19-SW
SEC-RHS,SEC-SC,SEC-SD,SEC-WIN,SEC-MDIR,Sen-MDIR-WM55,SEC-Sco
HUE: diverse, Amzn Dash-Buttons
4xRPi,4xCO20,OWL+USB,HarmonyHub,FB7590 v6.90,Echo Dot,Logi Circle2

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #20 am: 16 Februar 2015, 22:25:56 »
Hm, guter Punkt, ja :) Hast voll recht und finde auch die Vorschläge gut. Muss mal schauen, ob ich mich aufraffen kann, eine Währungsumrechnung einzubauen.

Offline carlos

  • Full Member
  • ***
  • Beiträge: 154
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #21 am: 16 Februar 2015, 22:30:55 »
Brauchst du nicht, ist als Parameter beim finance mit dabei. Ich habs mir gestern kurz angeschaut.

edit:
So hab's gefunden:
# =======================================================================
# set_currency (public object method)
#
# set_currency allows information to be requested in the specified
# currency.  If called with no arguments then information is returned
# in the default currency.
#
# Requesting stocks in a particular currency increases the time taken,
# and the likelyhood of failure, as additional operations are required
# to fetch the currency conversion information.
#
# This method should only be called from the quote object unless you
# know what you are doing.

Aus der Doku:
2.4. Currency
-------------
Finance::Quote has support for multiple currencies and for currency
conversion.  As long as you provide a little bit of information about
the information you are returning, the Finance::Quote framework can
do all the hard stuff for you.

If you are returning information on a stock in a particular currency,
then you can enter the ISO currency code into the "currency" field
associated with the stock.  Eg:

$info{$stock,"currency"} = "AUD";  # Australian Dollars

If the information you are returning does not have a currency
(because it's an index like the Dow Jones Industrial or the
All Oridinaries, or because you're returning percentages) then
you should not set the currency field for that stock.  Finance::Quote
knows not to attempt currency conversion for stocks without
a currency field.

If you do have a currency field, then by default Finance::Quote will
arrange for the automatic conversion of a number of fields.  By
default, these fields are last, high, low, net, bid, ask, close, open,
day_range, year_range, eps, div, cap, nav and price.  Of course,
there may be some cases where this set is not appropriate, or where there
are extra fields that should be converted.  This can be indicated
by writing a function called "currency_fields()" in your module,
that returns a list of fields that can undergo currency conversion.
Eg:

sub currency_fields {
return qw/high low price bid/;
}

currency_fields() will be passed a Finance::Quote object as its
first argument, and a method called default_currency_fields()
is available through this object.  This is useful if you want
to use the defaults, but also add some of your own:

sub currency_fields {
my $quoter = shift;
return ($quoter->default_currency_fields, "commission");
}

In the example above, the default fields would be available for currency
conversion, but the "commission" field would also be converted.
Gruß
Carlos

« Letzte Änderung: 17 Februar 2015, 10:09:11 von carlos »
1 UDOO, 3 Raspberry Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.7, nanoCUL V 1.21.00 a-culfw, signalduino, div. Homematic Komponenten, toom Baumarkt Funksteckdosen

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #22 am: 17 Februar 2015, 12:52:44 »
Klasse, danke! Werd ich mal einbauen.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #23 am: 17 Februar 2015, 15:38:49 »
@klaus
Probier mal bitte die Version im Anhang...
super, jetzt klappt es
vwd gibt nicht viel zurück, aber die Wichtigsten Werte sind dabei

Irgendwie passiert beim pollintervall bei mit nicht...ich muss manuell updaten
« Letzte Änderung: 17 Februar 2015, 17:48:11 von klausw »
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #24 am: 17 Februar 2015, 19:36:49 »
Hab mal die Currency-Sache eingebaut im ersten Post. Dass das Updaten nicht klappt, kann ich so erstmal nicht nachstellen. Bitte mal ein Log posten.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #25 am: 18 Februar 2015, 14:57:36 »
habe jetzt mal das neuste Modul aus dem ersten Post geladen.

Depot angelegt und was eingebucht:
define Depot STOCKQUOTES
set Depot buy 975013 2 80
set Depot verbose 5
PollIntervall funktioniert
die depot_* Readings sind aber negativ ebendo wie einige der 975013_d_* Werte
Folgende (Fehler)meldungen tauchen im Log auf:
2015.02.18 13:46:51 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 13:46:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.18 13:46:51 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.18 13:47:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_STOCKQUOTES.pm line 299.
2015.02.18 13:47:00 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.580|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-18|975013&last&|975013&high&49.580|975013&volume&0|975013&date&02/18/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&49.560|975013&low&49.560|975013&errormsg&Stock name 975013 not found|975013&p_change&0.00%|975013¤cy&
2015.02.18 13:47:00 4: STOCKQUOTES_QueryQuotesFinished
2015.02.18 13:47:00 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 361.
2015.02.18 13:47:00 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/98_STOCKQUOTES.pm line 363.
2015.02.18 13:47:00 4: STOCKQUOTES_QueueTimer: 300 seconds

wenn ich jetzt
attr Depot sources 975013:unionfunds
hinzufüge wird einmal aktualisiert, allerdings werden aber einige redings nicht gelöscht, welche von der neuen Quelle nicht unterstützt werden (sie werden einfach nicht aktualisiert).
Ausserdem funktioniert jetzt der pollintervall nicht mehr und state bleibt auf updating... stehen.
set .... update funktioniert weiterhin
Dafür sehen einige depot_ readings jetzt besser aus.
Log dazu:
2015.02.18 13:52:00 4: STOCKQUOTES: Start blocking query
2015.02.18 13:52:00 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 13:52:00 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source unionfunds
2015.02.18 13:52:00 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: unionfunds
2015.02.18 13:52:01 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&UNION|975013&symbol&975013|975013&last&49.60|975013&isodate&2015-02-16|975013&method&unionfunds|975013&date&02/16/2015|975013&price&49.60|975013&success&1|975013&name&975013|975013¤cy&EUR
2015.02.18 13:52:01 4: STOCKQUOTES_QueryQuotesFinished

nach dem Löschen des Attributes sources und einem set Depot update klappt auch der refresh wieder.
Allerings bleiben in diesem Fall 975013_last, _price und _currency wieder stehen.

EDIT:
anstelle von sources das Attribut defaultSource auf unionfunds zu setzen führt zum gleichen Ergebnis.

kann es sein, das die Auswertung nicht zuende geführt wird weil irgendein Wert nicht übermittelt wird?

mit vwd im Sources Attribut funktioniert es

EDITEDIT:
mit yahoo_europe pollt es auch nicht mehr
« Letzte Änderung: 18 Februar 2015, 16:16:00 von klausw »
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #26 am: 18 Februar 2015, 16:42:30 »
noch ein paar fixe Ideen:
vielleicht scheint dir ja was davon sinnvoll  8)

Es kann vorkommen, das man Wertpapiere, die bereits im Depot sind nachkauft.
Dann haben diese natürlich einen anderen Einstandskurs.
Das lässt sich derzeit nicht nachbilden.
Allerdings habe ich auch keinen Lösungsansatz. (Das gleiche Wertpapier 2x anzulegen erscheint mir wenig sinnvoll)
...oder vielleicht doch eine Idee dazu: zu einer WKN mehrere Anzahl/Gesamtpreise erlauben

Zu den readings hätte ich den Vorschlag die empfangenen Werte von Finance::Quote als hash in den Internals abzulegen und nur die wichtigen anzuzeigen.
Dadurch würde es etwas übersichtlicher werden.

Wenn man ein Kaufdatum angeben kann, ließen sich daraus im Zusammenhang mit dem Kaufpreis Prozentuale Gewinne (beispielsweise 1/3/5 jährig) ermitteln
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #27 am: 18 Februar 2015, 18:20:31 »
Depot angelegt und was eingebucht:
define Depot STOCKQUOTES
set Depot buy 975013 2 80
set Depot verbose 5
Hm, das hat ja nichtmal ein "last"-Feld :/ Alles andere hatte ich eigentl. schon optional gemacht, aber ich hätte gedacht, dass last alle haben. Wo ist denn der Kurs zu finden bei dem Symbol? Denke auch, dass dadurch dann die weitere Verarbeitung in Perl abgebrochen wird.

noch ein paar fixe Ideen:
vielleicht scheint dir ja was davon sinnvoll  8)

Es kann vorkommen, das man Wertpapiere, die bereits im Depot sind nachkauft.
Dann haben diese natürlich einen anderen Einstandskurs.
Das lässt sich derzeit nicht nachbilden.
Allerdings habe ich auch keinen Lösungsansatz. (Das gleiche Wertpapier 2x anzulegen erscheint mir wenig sinnvoll)
...oder vielleicht doch eine Idee dazu: zu einer WKN mehrere Anzahl/Gesamtpreise erlauben
Du kannst durchaus per "buy" ein Papier gekauft, welches schon im Depot vorhanden ist. Es *sollte* dann korrekt hinzuaddiert werden und es sollte dann auch ein korrekter Einstandskurs berechnet werden.

Zu den readings hätte ich den Vorschlag die empfangenen Werte von Finance::Quote als hash in den Internals abzulegen und nur die wichtigen anzuzeigen.
Dadurch würde es etwas übersichtlicher werden.
Hm, würde ungern etwas weglassen von vornherein. Wäre es nicht besser, wenn man readingsGroup oder readingsProxy o.ä. benutzen würde, um sich dann ein gefiltertes Device zu bauen? "Wichtig" liegt auch immer sehr im Auge des Betrachters.

Wenn man ein Kaufdatum angeben kann, ließen sich daraus im Zusammenhang mit dem Kaufpreis Prozentuale Gewinne (beispielsweise 1/3/5 jährig) ermitteln
Ja, könnte man überlegen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #28 am: 18 Februar 2015, 18:37:32 »
Könntest nochmal diese Version probieren. Sollte nun auch ohne last funktionieren (wenn ich nix übersehen hab).

Ich muss noch einbauen, dass alte Readings an sinnvollen Stellen gelöscht werden. Im Moment muss man händisch clearReadings aufrufen, nachdem man bestimmt Sachen geändert hat.
« Letzte Änderung: 18 Februar 2015, 18:39:15 von vbs »

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #29 am: 18 Februar 2015, 19:17:11 »
Könntest nochmal diese Version probieren. Sollte nun auch ohne last funktionieren (wenn ich nix übersehen hab).
Ich glaube du hast mich falsch verstanden:
Damit
define Depot STOCKQUOTES
set Depot buy 975013 2 80
set Depot verbose 5
funktioniert der refresh.
Nur sind werte wie 975013_d_cur_value_total und die depot_* nahezu alle negativ (vermutlich da _last = 0 ist)

mit attr Deptot sources 975013:unionfunds
gibt es _last
auch werte wie 975013_d_cur_value_total und die depot_* sind korrekt
Allerdings bleibt state auf Updating... stehen und es gibt keine automatische Aktualisierung mehr


letztes Modul mit europe als Quelle:

2015.02.18 18:54:02 4: STOCKQUOTES: Start blocking query
2015.02.18 18:54:02 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 18:54:02 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.18 18:54:02 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.18 18:54:11 1: PERL WARNING: Use of uninitialized value $info{"975013\34last"} in concatenation (.) or string at ./FHEM/98_STOCKQUOTES.pm line 303.
2015.02.18 18:54:11 1: PERL WARNING: Use of uninitialized value $info{"975013\34currency"} in concatenation (.) or string at ./FHEM/98_STOCKQUOTES.pm line 303.
2015.02.18 18:54:11 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.580|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-18|975013&last&|975013&high&49.580|975013&volume&0|975013&date&02/18/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&49.560|975013&low&49.560|975013&errormsg&Stock name 975013 not found|975013&p_change&-0.04%|975013¤cy&
2015.02.18 18:54:14 4: STOCKQUOTES_QueryQuotesFinished
2015.02.18 18:54:14 4: STOCKQUOTES_QueueTimer: 150 seconds
das gibt es auch kein last reading
die depot_* redings sind negativ

mit unionfonds folgendes:
2015.02.18 19:05:41 4: STOCKQUOTES: Start blocking query
2015.02.18 19:05:41 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 19:05:41 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source unionfunds
2015.02.18 19:05:41 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: unionfunds
2015.02.18 19:05:42 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&UNION|975013&symbol&975013|975013&last&49.60|975013&isodate&2015-02-17|975013&method&unionfunds|975013&date&02/17/2015|975013&price&49.60|975013&success&1|975013&name&975013|975013¤cy&EUR
2015.02.18 19:05:42 4: STOCKQUOTES_QueryQuotesFinished
und kein refresh mehr

Hm, das hat ja nichtmal ein "last"-Feld :/ Alles andere hatte ich eigentl. schon optional gemacht, aber ich hätte gedacht, dass last alle haben. Wo ist denn der Kurs zu finden bei dem Symbol? Denke auch, dass dadurch dann die weitere Verarbeitung in Perl abgebrochen wird.
wie oben beschrieben, hier bricht nichts ab
es gibt nur perl warnings im log und der wert der Wertpapierpakets ist nagativ
ich denke _open kommt dem Wert am nächsten.
Allerdings würde ich sowieso lieber unionfonds verwenden. Dort gibt es _last, und es ist auch der korrekte Wert
Nur funktioniert halt im Zusammenhang mit unionfonds der refresh nicht mehr

Du kannst durchaus per "buy" ein Papier gekauft, welches schon im Depot vorhanden ist. Es *sollte* dann korrekt hinzuaddiert werden und es sollte dann auch ein korrekter Einstandskurs berechnet werden.
ahso
mittelst du diesen dann zwischen beiden Werten?
Hm, würde ungern etwas weglassen von vornherein. Wäre es nicht besser, wenn man readingsGroup oder readingsProxy o.ä. benutzen würde, um sich dann ein gefiltertes Device zu bauen? "Wichtig" liegt auch immer sehr im Auge des Betrachters.
Ja stimmt eigentlich  8)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #30 am: 19 Februar 2015, 09:54:19 »
Ok, danke für die Meldung. Ich muss das mal in Ruhe nachstellen. So aus dem Stehgreif finde ich es seltsam.

mittelst du diesen dann zwischen beiden Werten?
Ja genau. Das Modul merkt sich im Attribut nur Gesamtmenge und Gesamtpreis (Summe aus allen Buys). Dementsprechend kennt es dann für den Kaufkurs auch nur das Mittel über alle Transaktionen.


Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #31 am: 19 Februar 2015, 22:15:06 »
Bitte noch einmal hiermit testen (komisch jetzt bekomme ich bei deinem Symbol auf von europe ein "last")

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #32 am: 20 Februar 2015, 08:53:55 »
Bitte noch einmal hiermit testen (komisch jetzt bekomme ich bei deinem Symbol auf von europe ein "last")
define Depot STOCKQUOTES
attr Depot defaultSource europe
attr Depot pollInterval 150
attr Depot queryTimeout 120
attr Depot stocks 975013:2:80
attr Depot verbose 5
->
2015.02.20 07:41:39 4: STOCKQUOTES: Start blocking query
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.20 07:41:51 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.560|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-19|975013&high&49.580|975013&volume&0|975013&date&02/19/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&0.00|975013&low&49.520|975013&errormsg&Stock name 975013 not found|975013&p_change&0.04%
2015.02.20 07:41:51 4: STOCKQUOTES_QueryQuotesFinished
2015.02.20 07:41:51 4: STOCKQUOTES_QueueTimer: 150 seconds

last bekomme ich jetzt auch, aber es ist 0
...und nach einem Reboot und dem clearreadings ist es auch weg ... sehr komisch
_previous kommt dem aktuellen Wert am nächsten, stimmt aber nicht genau.

Mir ist auch aufgefallen, das bei weiteren Wertpapieren das last bei europe fehlt.


Mit attr Depot sources 975013:unionfunds funktioniert es jetzt aber super!

Was bedeutet denn _p_change_total und _value_diff? Die beiden kann ich mir nicht erklären.

Langsam ist dein Modul reif um ins SVN zu kommen  ;D

PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 756
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #33 am: 20 Februar 2015, 13:14:25 »
PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Hallöle,

man findet hier ja immer neue Idee.
Das Modul wollte ich dann auch mal probieren.
Allerdings lebt mein FHEM nicht wirklich lange, nachdem ich ein define myQuotes STOCKQUOTES gemacht habe.
Die o.a. Meldung ist das letzte was ich im Log sehen und danach ist FHEM futsch.

Any Ideas?
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 756
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #34 am: 20 Februar 2015, 13:51:23 »
Ich habe mal verbose bei global auf 5 gestellt und dann kommt das hier:

2015.02.20 13:48:37 4: STOCKQUOTES: Start blocking query
2015.02.20 13:48:37 5: Triggering myQuotes (1 changes)
2015.02.20 13:48:37 5: Notify loop for myQuotes Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #35 am: 20 Februar 2015, 17:37:47 »
last bekomme ich jetzt auch, aber es ist 0
...und nach einem Reboot und dem clearreadings ist es auch weg ... sehr komisch
_previous kommt dem aktuellen Wert am nächsten, stimmt aber nicht genau.

Mir ist auch aufgefallen, das bei weiteren Wertpapieren das last bei europe fehlt.
Scheint an dem Perl-Modul bzw. an der Source zu liegen, welche Werte mitkommen. Hatte gestern auch den Fall, dass bei jeder zweiten Abfrage success=0 war. Ich denke, dass "previous" der Schlusskurs des vergangenen Tages ist.


Mit attr Depot sources 975013:unionfunds funktioniert es jetzt aber super!

Was bedeutet denn _p_change_total und _value_diff? Die beiden kann ich mir nicht erklären.
_p_change_total ist die gesamte prozentuale Änderungen aufs Depot bezogen. Also Aktie mal zu 100€ gekauft und steht nun bei 136€ -> 36 % p_change_total
_value_diff ist Wertänderungen *heute* (im Gegensatz zu _value_diff_total). Also Aktie steigt heute von 100€ auf 136€ und du hast zwei davon im Depot -> 72 € _d_value_diff

Langsam ist dein Modul reif um ins SVN zu kommen  ;D
Mal abwarten ^^

PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Danke, hab ich behoben im Anhang.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #36 am: 20 Februar 2015, 17:39:37 »
Ich habe mal verbose bei global auf 5 gestellt und dann kommt das hier:

2015.02.20 13:48:37 4: STOCKQUOTES: Start blocking query
2015.02.20 13:48:37 5: Triggering myQuotes (1 changes)
2015.02.20 13:48:37 5: Notify loop for myQuotes Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
Hm, blöde Frage: was heißt das? Werde aus eventTypes nicht schlau.

Kannst ja mal die letze Version von oben testen. Das ist zumindest die Warning weg.
« Letzte Änderung: 20 Februar 2015, 17:41:19 von vbs »

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 756
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #37 am: 20 Februar 2015, 17:48:52 »
Hm, blöde Frage: was heißt das? Werde aus eventTypes nicht schlau.

Kannst ja mal die letze Version von oben testen. Das ist zumindest die Warning weg.
Meine Hoffnung war, dass das bei der Problemsuche hilft  8)

Ich habe mal im Modul zwei Zeilen zum debuggen eingetragen.

Zitat
sub STOCKQUOTES_QueryQuotes($)
{
  my ($hash) = @_;
  my $name = $hash->{NAME};

  if (not exists($hash->{helper}{RUNNING_PID})) {
    Log3 $hash->{NAME}, 4, 'STOCKQUOTES: Start blocking query';
    readingsSingleUpdate($hash, "state", "Updating",1);
    Log3 $hash->{NAME}, 4, 'Starting test....';
    $hash->{helper}{RUNNING_PID} = BlockingCall("STOCKQUOTES_QueryQuotesBlocking",
                                                $hash,
                                                "STOCKQUOTES_QueryQuotesFinished",
                                                AttrVal($hash, "queryTimeout", 120),
                                                "STOCKQUOTES_QueryQuotesAbort",
                                                $hash);
    Log3 $hash->{NAME}, 4, 'test finish...';
  }
  else {
    Log3 $hash->{NAME}, 4, 'STOCKQUOTES_QueryQuotes: Blocking not started because still one running';
  }

  return undef;
}

Das erste Log wird noch ausgegeben.
Irgendwie scheint der BlockingCall bei mir gegen die Pumpe zu laufen.

Wie bekommen wir rudolf dazu hier mal zu schauen?
Ich denke er wäre hier der jenige, welcher helfen könnte.

2015.02.20 17:43:07 4: STOCKQUOTES: Start blocking query
2015.02.20 17:43:07 5: Triggering myQuotes (1 changes)
2015.02.20 17:43:07 5: Notify loop for myQuotes Updating
2015.02.20 17:43:07 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 17:43:07 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
2015.02.20 17:43:07 4: Starting test....

/EDIT:

Auch mit der letzten Version schmiert mein FHEM ab.
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #38 am: 20 Februar 2015, 20:05:50 »
Hm, scheint evtl. ein grundlegendes Problem bei dir zu sein. Klappt BlockingCall bei anderen Modulen?

Könntest mal probieren, fhem auf der Konsole ohne Logfile zu starten ("logfile -"). Evtl. meldet fhem noch etwas auf der Konsole, bevor es das Zeitliche segnet.

@all:
also bei mir hängt, sich das Modul nach einer Zeit mit "Updating" weg :( Werd ich mir ansehen.

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 756
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #39 am: 20 Februar 2015, 20:35:23 »
Hm, scheint evtl. ein grundlegendes Problem bei dir zu sein. Klappt BlockingCall bei anderen Modulen?

Laut fhem Wiki bei Blocking_Call verwendet das Presence Modul dies auch.
Da habe ich testweise mal ein Testdevice erstellt.
Dabei läuft fhem fröhlich weiter.

Könntest mal probieren, fhem auf der Konsole ohne Logfile zu starten ("logfile -"). Evtl. meldet fhem noch etwas auf der Konsole, bevor es das Zeitliche segnet.

Ah ja. Da kommt die Meldung.

Undefined subroutine &main::BlockingCall called at ./FHEM/98_STOCKQUOTES.pm line 238.

Muss den Blocking.pm noch irgendwie anders eingebunden werden?

BTW:
Ich habe Rudolf mal angemailt mit der Bitte hier mal zu schauen.
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #40 am: 20 Februar 2015, 20:37:09 »
Zitat
Wie bekommen wir rudolf dazu hier mal zu schauen?
Ich will kein Online-Depot zulegen, damit ich das Modul testen kann.
Wenn jemand mir zeigt, wie ich es ohne testen kann, dann probiere ich es.

Ich habe gerade BlockingCall getestet (und die fehlerhafte Doku im Blocking.pm ersetzt), und es tut bei mir.
Was habe ich gemacht:
Folgendes in 99_myUtils.pm definiert:
use Blocking;
sub TestBlocking($){ BlockingCall("DoSleep", shift, "SleepDone", 5, "AbortFn", "AbortArg"); }
sub DoSleep($)     { sleep(shift); return "I'm done"; }
sub SleepDone($)   { Log 1, "SleepDone: " . shift; }
sub AbortFn($)     { Log 1, "Aborted: " . shift; }
Dann vom FHEM-Prompt folgendes aufgerufen
{ TestBlocking(3) }
{ TestBlocking(6) }
und das FHEM-Log beobachtet.

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 756
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #41 am: 20 Februar 2015, 20:46:27 »
Also bei mir reicht es schon fhem mit der Demo Config starten, dann ein Device mit dem Modul hier zu definieren, dann 10 Sekunden zu warten und dann beendet sich fhem mit dieser Meldung:

Undefined subroutine &main::BlockingCall called at ./FHEM/98_STOCKQUOTES.pm line 238.
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #42 am: 20 Februar 2015, 21:04:48 »
Probier mal bitte vor dem Definieren des Depots:
{use Blocking}

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 756
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #43 am: 20 Februar 2015, 21:30:26 »
Schau mal einer an. Danke Dir.

Da hätte ich auch drauf kommen können. (http://www.smiliesuche.de/smileys/kopf-gegen-wand/kopf-gegen-wand-smilies-0005.gif)
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #44 am: 27 Februar 2015, 11:15:19 »
Nochmal ein Update im ersten Post. Einerseits "use Blocking" hinzugefügt und andererseits die Depotberechnung so gebaut, dass nichts falsches herauskommt, wenn mal eine Anfrage in die Hose geht.

Bestehen jetzt noch Probleme bei euch? Das Hängen bei "Updating" trat bei mir jetzt nicht nochmal auf.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #45 am: 12 Mai 2015, 17:35:19 »
[quote author=vbs link=topic=33352.msg267454#msg267454 date=1425032119]
Nochmal ein Update im ersten Post. Einerseits "use Blocking" hinzugefügt und andererseits die Depotberechnung so gebaut, dass nichts falsches herauskommt, wenn mal eine Anfrage in die Hose geht.

Bestehen jetzt noch Probleme bei euch? Das Hängen bei "Updating" trat bei mir jetzt nicht nochmal auf.
[/quote]
Ich habe eine passende Einstellung für mich gefunden, daher warich ne Weile nicht mehr hier.
Mit:
attr Depot1 currency EUR
attr Depot1 defaultSource europe
attr Depot1 pollInterval 1800
attr Depot1 queryTimeout 120
attr Depot1 stocks A0YCZ3:0:0,975017:0:0,975013:0:0
bleibt es aber immer noch im updating hängen
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #46 am: 12 Mai 2015, 19:13:11 »
Hm, bei mir ist mir nichts mehr aufgefallen. Könntest du da etwas näher drauf eingehen?

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #47 am: 12 Mai 2015, 21:28:52 »
Hm, bei mir ist mir nichts mehr aufgefallen. Könntest du da etwas näher drauf eingehen?
Klar,
ich habe nochmal das Depot getestet, welches nicht richtig lief:
define Depot1 STOCKQUOTES
attr Depot1 currency EUR
attr Depot1 defaultSource europe
attr Depot1 pollInterval 1800
attr Depot1 queryTimeout 120
attr Depot1 room 01_Testzimmer
attr Depot1 stocks A0YCZ3:0:0,975017:0:0,975013:0:0

mit set Depot1 update

lässt sich das Update anstoßen, und es werden auch Daten geholt, aber state bleibt auf Updating stehen.
Im log ist nix aufgetaucht.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #48 am: 14 Mai 2015, 10:11:14 »
Hab jetzt mal deine Attribute 1:1 übernommen und werde mal gucken, ob das bei mir auch passiert. Wie oft kommt das denn bei dir vor ca.? Du benutzt sicherlich die letzte Version aus dem ersten Post, oder?

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #49 am: 14 Mai 2015, 13:13:37 »
Ich konnte das jetzt gut reproduzieren mit deinen Daten. Da wurde durch Null geteilt, wenn alle Positionen eine Größe von 0 hatten. Ist nun (hoffentlich) behoben in der Version im ersten Post. Bitte einmal testen.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #50 am: 15 Mai 2015, 11:21:10 »
Ich komme frühestens am Sonntag zum testen und werde dann Rückmeldung geben. Ja getestet hatte ich mit der aktuellsten Version.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #51 am: 19 Mai 2015, 09:52:52 »
Ich konnte das jetzt gut reproduzieren mit deinen Daten. Da wurde durch Null geteilt, wenn alle Positionen eine Größe von 0 hatten. Ist nun (hoffentlich) behoben in der Version im ersten Post. Bitte einmal testen.

läuft jetzt
super, danke!

Dann ab ins SVN damit  8)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #52 am: 26 November 2015, 09:23:09 »
Hallo,
ich hoffe, dass es hier das Thema noch gibt.

Ich habe einige Probleme :

1. ich habe stock welches 152,069 sind. es werden aber nur 152 geladen.
2. er kennt WKN A1CTSU nicht was kann ich tun
3. kann ich auch den Verlauf der letzten Monate / Jahre aufzeigen? mit Graph und Gewinn Verlust?
4. ich habe einige ja 2008 gekauft sagen wir 100 stück für 10 € - damals 1000  heute ist der Wert 15€ somit 1500 - könnte mir das Modul nun die 500€ als Gewinn eintragen?

zu1: habe ich gerade rausgefunden da geht es mit . statt ,

2015.11.26 09:07:36 1: PERL WARNING: Argument "152,069" isn't numeric in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 168, <$fh> line 263.
2015.11.26 09:07:36 1: PERL WARNING: Argument "16387,28" isn't numeric in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 168, <$fh> line 263.
2015.11.26 09:07:36 1: PERL WARNING: Argument "83,877" isn't numeric in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 168, <$fh> line 264.


Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #53 am: 26 November 2015, 11:23:58 »
Ja, das gibts theoretisch noch, obwohl ich da im Moment nicht viel dran mache.

1.) Da hab ich die Frage nicht ganz verstanden, aber hat sich eh erledigt, oder?

2.) Ich fürchte nicht viel. Yahoo Finance auf der Webseite kennt die auch nicht.

3.) Das Modul kann keine historischen Kurse abrufen. Du kannst nur die aktuellen Daten selbst als SVG plotten.

4.) Ja das geht. Guck mal auf der ersten Seite. Zb für VOW3.F so "set stocks buy VOW3.F 10 1000".
Dann bekommst du die Readings:
VOW3.F_d_buy_value_total   1000
VOW3.F_d_cur_value_total 1245.16

Und auch die entsprechenden Gesamt-Depot-Readings.

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #54 am: 27 November 2015, 07:22:56 »
1. ja
2. Mist. Aber wieso nicht :/
4. meine Gesamtdepot readings sind da stimmt doch irgendwas nicht

depot_buy_value_total 4400

2015-11-27 07:17:05
depot_cur_value_total 0

2015-11-27 07:17:05
depot_p_change -100.00

2015-11-27 07:17:05
depot_p_change_total -100.00

2015-11-27 07:17:05
depot_value_diff 0.00

2015-11-27 07:17:05
depot_value_diff_total -4400.00

2015-11-27 07:17:05

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #55 am: 27 November 2015, 12:47:47 »
Ich fürchte du musst mal sagen, was du genau gemacht hast. Logs dazu wären auch gut.

Offline inma

  • Newbie
  • Beiträge: 2
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #56 am: 29 November 2015, 13:58:42 »
Hallo,

ich kann leider das aktuelle Modul 98_STOCKQUOTES in SVN nicht finden.
Ich habe ebenfalls das Problem das state auf Updating stehen bleibt.
Wo kann ich das aktuelle Modul finden ?



Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #57 am: 29 November 2015, 14:40:04 »
Das im ersten Post ist der letzte Stand. Bei Problemen bräuchte ich genaue Angaben, wie ich das hier reproduzieren kann + verbose Logs;

Offline inma

  • Newbie
  • Beiträge: 2
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #58 am: 29 November 2015, 19:31:33 »
Besten Dank für die schnelle Antwort.

Ich dachte die letzte wäre die aktuellste Version.

Offline Mumpitz

  • Full Member
  • ***
  • Beiträge: 211
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #59 am: 30 November 2015, 00:59:44 »
Hallo

Erstmal vielen Dank für das
Coole Modul!

Ist es auch möglich den einzelnen Positionen die Währung beizugeben?
Als Beispiel habe ich Wertpapiere einer Bank in CHF sowie einer anderen Bank in USD.

Kann man das irgendwie zuordnen?

Besten Dank für die Antwort

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #60 am: 30 November 2015, 06:36:07 »
Ich fürchte du musst mal sagen, was du genau gemacht hast. Logs dazu wären auch gut.
Oh nachdem ich den Thread aus der Versenkung geholt habe, gibt es  scheinbar viele Interessenten :)
Ich habe ein depot angelegt und dann 2 Stocks gekauft mit Anzahl und Preis.

Achja noch was - wie bekomme ich das gut geplottet?

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #61 am: 30 November 2015, 09:23:30 »
Ist es auch möglich den einzelnen Positionen die Währung beizugeben?
Als Beispiel habe ich Wertpapiere einer Bank in CHF sowie einer anderen Bank in USD.
Es werden defaultmäßig alle Kurse in Euro umgerechnet. Es gibt aber das Attribut "currency" mit dem du die Währung auf eine andere Umstellen kannst.

Ich habe ein depot angelegt und dann 2 Stocks gekauft mit Anzahl und Preis.
Ich bräuchte das noch etwas genauer inkl. Logs und Device-Listing um das nachstellen zu können.

Achja noch was - wie bekomme ich das gut geplottet?
Schau dir mal das SVG-Modul an, damit kann man gut plotten.

Offline Mumpitz

  • Full Member
  • ***
  • Beiträge: 211
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #62 am: 30 November 2015, 10:13:19 »

Es werden defaultmäßig alle Kurse in Euro umgerechnet. Es gibt aber das Attribut "currency" mit dem du die Währung auf eine andere Umstellen kannst.

Ja das habe ich auf CHF geändert. Aber dadurch werden jetzt natürlich auch meine Wertpapiere in USD in CHF angezeigt.

Gerne würde ich pro Position die Währung angeben und danach das Gesamtergebnis in CHF umgewandelt haben!

Geht das?
So quasi currency positionen...

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #63 am: 30 November 2015, 10:17:55 »
Mumpitz eine Idee wäre ein zweites Depot anzulegen. Oder?
Vbs kann ich von zu Hause machen. Kann per Remote irgendwie keine befehle absetzen


Internals: NAME Depot
 NR 120
STATE 2015-11-30 10:20:52
 TYPE STOCKQUOTES
 Readings:
 2015-11-30 10:20:52 531446_d_buy_quote 52.46
 2015-11-30 10:20:52 531446_d_buy_value_total 4400
 2015-11-30 10:20:52 531446_d_stockcount 83.877
 2015-11-30 10:20:52 531446_date 11/30/2015
 2015-11-30 10:20:52 531446_errormsg Stock name 531446 not found
 2015-11-30 10:20:52 531446_exchange Berlin / Bremen
2015-11-30 10:20:52 531446_high 63.470
 2015-11-30 10:20:52 531446_isodate 2015-11-30
 2015-11-30 10:20:52 531446_low 63.450
 2015-11-30 10:20:52 531446_method bourso
2015-11-30 10:20:52 531446_name UNIRAK NET
2015-11-30 10:20:52 531446_open 63.470
2015-11-30 10:20:52 531446_p_change -0.24
2015-11-30 10:20:52 531446_previous 63.600
2015-11-30 10:20:52 531446_success 1
2015-11-30 10:20:52 531446_symbol HTML
2015-11-30 10:20:52 531446_volume 0
2015-11-30 10:20:52 depot_buy_value_total 4400
2015-11-30 10:20:52 depot_cur_value_total 0
2015-11-30 10:20:52 depot_p_change -100.00
2015-11-30 10:20:52 depot_p_change_total -100.00
2015-11-30 10:20:52 depot_value_diff 0.00
2015-11-30 10:20:52 depot_value_diff_total -4400.00
2015-11-30 10:20:52 state 2015-11-30 10:20:52
Helper:
 Attributes: currency EUR
defaultSource europe
pollInterval 2400
queryTimeout 120
room Depot
 stocks 531446:83.877:4400,A1CTSU:152.069:16387.28
Ich kann aber auch gerne das ganze neu anlegen, wenn es dann besser zum nachvollziehen ist

« Letzte Änderung: 30 November 2015, 10:44:02 von masterpete23 »

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #64 am: 01 Dezember 2015, 16:42:32 »
Gerne würde ich pro Position die Währung angeben und danach das Gesamtergebnis in CHF umgewandelt haben!

Geht das?
So quasi currency positionen...
Das geht so erstmal nicht. Alle Positionen müssen eine einheitliche Währung haben (sonst könnten auch zB die Depotwert-Berechnungen nicht funktionieren). Einzige Lösung wäre wirklich ein eigenes Device dafür anzulegen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #65 am: 03 Dezember 2015, 19:04:38 »
Hab mal ein paar Bugs behoben und etwas optimiert (Anhang im ersten Post).

@masterpete23
Ich kann dein Problem hier so nicht nachstellen. Manchmal kommt bei einem Update das "last" nicht mit (providerbedingt), aber beim zweiten Updaten kam es bei mir dann immer und wurde korrekt gefüllt.

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #66 am: 04 Dezember 2015, 20:31:22 »
also.
neues Depot angelegt
dann
Internals:
   NAME       Depot
   NR         193
   STATE      2015-12-04 20:22:59
   TYPE       STOCKQUOTES
   Readings:
     2015-12-04 20:22:59   depot_buy_value_total 0
     2015-12-04 20:22:59   depot_cur_value_total 0
     2015-12-04 20:22:59   depot_p_change  0
     2015-12-04 20:22:59   depot_p_change_total 0
     2015-12-04 20:22:59   depot_value_diff 0.00
     2015-12-04 20:22:59   depot_value_diff_total 0.00
     2015-12-04 20:22:59   state           2015-12-04 20:22:59
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 2400
   queryTimeout 120
   room       Depot
nun
set Depot buy 531446 83.877 4400dann
Internals:
   NAME       Depot
   NR         193
   STATE      2015-12-04 20:30:03
   TYPE       STOCKQUOTES
   Readings:
     2015-12-04 20:30:03   531446_d_buy_quote 52.46
     2015-12-04 20:30:03   531446_d_buy_value_total 4400
     2015-12-04 20:30:03   531446_d_stockcount 83.877
     2015-12-04 20:30:03   531446_date     12/04/2015
     2015-12-04 20:30:03   531446_errormsg Stock name 531446 not found
     2015-12-04 20:30:03   531446_exchange Berlin / Bremen
     2015-12-04 20:30:03   531446_high     61.750
     2015-12-04 20:30:03   531446_isodate  2015-12-04
     2015-12-04 20:30:03   531446_low      61.040
     2015-12-04 20:30:03   531446_method   bourso
     2015-12-04 20:30:03   531446_name     UNIRAK NET
     2015-12-04 20:30:03   531446_open     61.550
     2015-12-04 20:30:03   531446_p_change -3.28
     2015-12-04 20:30:03   531446_previous 63.420
     2015-12-04 20:30:03   531446_success  1
     2015-12-04 20:30:03   531446_symbol   HTML
     2015-12-04 20:30:03   531446_volume   0
     2015-12-04 20:30:03   depot_buy_value_total 4400
     2015-12-04 20:30:03   depot_cur_value_total 0
     2015-12-04 20:30:03   depot_p_change  -100.00
     2015-12-04 20:30:03   depot_p_change_total -100.00
     2015-12-04 20:30:03   depot_value_diff 0.00
     2015-12-04 20:30:03   depot_value_diff_total -4400.00
     2015-12-04 20:30:03   state           2015-12-04 20:30:03
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 2400
   queryTimeout 120
   room       Depot
   stocks     531446:83.877:4400

und nun?

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #67 am: 04 Dezember 2015, 21:11:12 »
Nun musst du mal Logs posten. Lass mal 15 Minuten laufen vorher.

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #68 am: 05 Dezember 2015, 20:50:07 »
Was für logs? Was sollte ich vorher einstellen? Log Level verbose?

Gesendet von meinem Huawei Honor 7


Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #69 am: 05 Dezember 2015, 21:11:25 »
Das normale FHEM Log. Stockquotes mindestens auf verbose 4.

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 373
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #70 am: 07 Dezember 2015, 22:30:30 »
Meinst du sowas? 15.12.04 10:17:18 4: STOCKQUOTES: Start blocking query 2015.12.04 10:17:18 4: STOCKQUOTES_QueryQuotesBlocking 2015.12.04 10:17:18 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 531446 from source europe 2015.12.04 10:17:18 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe 2015.12.04 10:17:22 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot2|531446&volume&0|531446&high&61.750|531446&errormsg&Stock name 531446 not found|531446&open&61.550|531446&date&12/04/2015|531446&previous&63.420|531446&exchange&Berlin / Bremen|531446&low&61.550|531446&name&UNIRAK NET|531446&method&bourso|531446&symbol&HTML|531446&isodate&2015-12-04|531446&p_change&-2.63%|531446&success&1 2015.12.04 10:17:22 4: STOCKQUOTES_QueryQuotesFinished 2015.12.04 10:17:22 4: STOCKQUOTES_QueueTimer: 2400 seconds 2015

.12.07 22:30:39 4: STOCKQUOTES: Start blocking query 2015.12.07 22:30:39 4: STOCKQUOTES_QueryQuotesBlocking 2015.12.07 22:30:39 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 531446 from source europe 2015.12.07 22:30:39 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe 2015.12.07 22:30:43 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|531446&volume&0|531446&high&61.800|531446&errormsg&Stock name 531446 not found|531446&open&0.00|531446&date&12/07/2015|531446&previous&61.340|531446&exchange&Berlin / Bremen|531446&low&61.690|531446&name&UNIRAK NET|531446&method&bourso|531446&symbol&HTML|531446&isodate&2015-12-07|531446&p_change&0.75%|531446&success&1 2015.12.07 22:30:43 4: STOCKQUOTES_QueryQuotesFinished 2015.12.07 22:30:43 4: STOCKQUOTES_QueueTimer...

   

Gesendet von meinem Huawei Honor 7

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #71 am: 26 Januar 2016, 22:46:23 »
Hallo vbs,

habe mal bisschen Text für die commandref zusammengeklöppelt:

=pod
=begin html

<a name="STOCKQUOTES"></a>
<h3>STOCKQUOTES</h3>
(en | <a href="commandref_DE.html#STOCKQUOTES">de</a>)
<ul>
<a name="STOCKQUOTES"></a>
    Fetching actual stock quotes from various sources<br>
    <b>Preliminary</b><br>
    Perl module  Finance::Quote must be installed:<br>
    <code>cpan install Finance::Quote</code> or <code>sudo apt-get install libfinance-quote-perl</code><br><br>
   
<b>Define</b>
<ul>
<code>define Depot STOCKQUOTES</code><br><br>
</ul>

<a name="STOCKQUOTESset"></a>
<b>Set</b>
<ul>
&lt;Symbol&gt; depends on source. May also an WKN.<br><br>
<li><code>set &lt;name&gt; buy &lt;Symbol&gt; &lt;Amount&gt; &lt;Value of amount&gt;</code><br>
Add an stock exchange securities. If stock exchange securities already exists, new values will be added to old values.<br><br>
</li>
<li><code>set &lt;name&gt; sell &lt;Symbol&gt; &lt;Amount&gt; &lt;Value of amount&gt;</code><br>
Remove an stock exchange securities (or an part of it).<br><br>
</li>
<li><code>set &lt;name&gt; add &lt;Symbol&gt;</code><br>
Watch only<br><br>
</li>
<li><code>set &lt;name&gt; remove &lt;Symbol&gt;</code><br>
Remove watched stock exchange securities.<br><br>
</li>
<li><code>set &lt;name&gt; clearReadings</code><br>
Clears all readings.<br><br>
</li>
<li><code>set &lt;name&gt; update</code><br>
Refresh all readings.<br><br>
</li>
</ul>
 
<a name="STOCKQUOTESget"></a>
<b>Get</b>
<ul>
<li><code>get &lt;name&gt; sources</code><br>
Lists all avaiable data sources.<br><br>
</li>
<li><code>get &lt;name&gt; currency &lt;Symbol&gt;</code><br>
Get currency of stock exchange securities<br><br>
</li>
</ul>

<a name="STOCKQUOTESattr"></a>
<b>Attributes</b>
<ul>
<li>currency<br>
All stock exchange securities will shown in this currency.<br>
Default: EUR, valid values: W&auml;hrungsk&uuml;rzel<br><br>
</li>
<li>defaultSource<br>
Default source for stock exchange securities values.<br>
Default: europe, valid values: from <code>get &lt;name&gt; sources</code><br><br>
</li>
<li>queryTimeout<br>
Fetching timeout in seconds.<br>
Standard: 120, valid values: Number<br><br>
</li>
<li>pollInterval<br>
Refresh interval in seconds.<br>
Standard: 300, valid values: Number<br><br>
</li>
<li>sources<br>
An individual data source can be set for every single stock exchange securities.<br>
Data sources can be fetched with: <code>get &lt;name&gt; sources</code>.<br>
Format: &lt;Symbol&gt;:&lt;Source&gt;[,&lt;Symbol&gt;:&lt;Source&gt;...]<br>
Example: <code>A0M16S:vwd,532669:unionfunds,849104:unionfunds</code><br>
Stock exchange securities not listed in sources will be updated from defaultSource.<br><br>
</li>
<li>stocks<br>
Will be created/modified via buy/sell/add/remove<br>
Contains stock exchange securities informations in format: &lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;[,&lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;...]<br><br>
</li>
</ul><br>
</ul><br>
</ul>

=end html

=begin html_DE

<a name="STOCKQUOTES"></a>
<h3>STOCKQUOTES</h3>
(<a href="commandref.html#STOCKQUOTES">en</a> | de)
<ul>
<a name="STOCKQUOTES"></a>
Wertpapierdaten von verschiedenen Quellen holen<br>
<b>Vorbereitung</b><br>
Perl Modul Finance::Quote muss installiert werden:<br>
<code>cpan install Finance::Quote</code> oder <code>sudo apt-get install libfinance-quote-perl</code><br><br>

<b>Define</b>
<ul>
<code>define &lt;name&gt; STOCKQUOTES</code><br><br>
</ul>

<a name="STOCKQUOTESset"></a>
<b>Set</b>
<ul>
&lt;Symbol&gt; h&auml;ngt von den jeweiligen Quellen ab. Kann auch eine WKN sein. Hier muss ggf. experimentiert werden.<br><br>
<li><code>set &lt;name&gt; buy &lt;Symbol&gt; &lt;Menge&gt; &lt;Gesamtpreis&gt;</code><br>
Wertpapier in Depot einbuchen. Wenn dieses Wertpapier bereits vorhanden ist, werden die Neuen einfach dazuaddiert.<br><br>
</li>
<li><code>set &lt;name&gt; sell &lt;Symbol&gt; &lt;Menge&gt; &lt;Gesamtpreis&gt;</code><br>
Wertpapier (auch Teilmenge) wieder ausbuchen.<br><br>
</li>
<li><code>set &lt;name&gt; add &lt;Symbol&gt;</code><br>
Wertpapier nur beobachten<br><br>
</li>
<li><code>set &lt;name&gt; remove &lt;Symbol&gt;</code><br>
Entferne Wertpapier das nur beobachtet wird.<br><br>
</li>
<li><code>set &lt;name&gt; clearReadings</code><br>
Alle Readings l&ouml;schen.<br><br>
</li>
<li><code>set &lt;name&gt; update</code><br>
Alle Readings aktualisieren.<br><br>
</li>
</ul>

<a name="STOCKQUOTESget"></a>
<b>Get</b>
<ul>
<li><code>get &lt;name&gt; sources</code><br>
Verf&uuml;gbare Datenquellen auflisten. Diese werden f&uuml;r die Attribute defaultSource und sources ben&ouml;tigt<br><br>
</li>
<li><code>get &lt;name&gt; currency &lt;Symbol&gt;</code><br>
Wertpapierw&auml;hrung ermitteln<br><br>
</li>
</ul>

<a name="STOCKQUOTESattr"></a>
<b>Attribute</b>
<ul>
<li>currency<br>
W&auml;hrung, in der die Wertpapiere angezeigt werden.<br>
Default: EUR, g&uuml;ltige Werte: W&auml;hrungsk&uuml;rzel<br><br>
</li>
<li>defaultSource<br>
Standardquelle f&uuml;r die Wertpapierdaten.<br>
Default: europe, g&uuml;ltige Werte: alles was <code>get &lt;name&gt; sources</code> ausgibt.<br><br>
</li>
<li>queryTimeout<br>
Timeout beim holen der Daten in Sekunden.<br>
Standard: 120, g&uuml;ltige Werte: Zahl<br><br>
</li>
<li>pollInterval<br>
Aktualisierungsintervall in Sekunden.<br>
Standard: 300, g&uuml;ltige Werte: Zahl<br><br>
</li>
<li>sources<br>
F&uuml;r jedes Wertpapier kann eine eigene Datenquelle definiert werden.<br>
Die Datenquellen k&ouml;nnen &uuml;ber <code>get &lt;name&gt; sources</code> angefragt werden.<br>
Format: &lt;Symbol&gt;:&lt;Source&gt;[,&lt;Symbol&gt;:&lt;Source&gt;...]<br>
Beispiel: <code>A0M16S:vwd,532669:unionfunds,849104:unionfunds</code><br>
Alle nicht aufgef&uuml;hrten Werpapiere werden &uuml;ber die defaultSource abgefragt.<br><br>
</li>
<li>stocks<br>
Wird &uuml;ber buy/sell/add/remove angelegt/modifiziert<br>
Enth&auml;lt die Werpapiere im Format &lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;[,&lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;...]<br><br>
</li>
</ul><br>
</ul>

=end html_DE
=cut

kannst ja mal drüberschauen und auch gern an dein Modul anhängen ;)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #72 am: 27 Januar 2016, 12:56:51 »
Wow, fantastisch! Herzlichen Dank! Werde ich mir gerne anschauen!!

Würde ich dann wahrscheinlich mal zum Anlassen nehmen, um zu versuchen, das Modul ins offizielle Repo zu bekommen.

Nochmals danke!

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #73 am: 27 Januar 2016, 13:49:41 »
Würde ich dann wahrscheinlich mal zum Anlassen nehmen, um zu versuchen, das Modul ins offizielle Repo zu bekommen.
Das wäre super.
Mach mal  8)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #74 am: 28 Januar 2016, 18:42:31 »
Ist jetzt eingecheckt. Nochmals besten Dank klausw!

@Mods:
Könnte jemand das Thema bitte nach "Unterstützende Dienste" verschieben? Die Rubrik hab ich in die MAINTAINER.txt eingetragen. Danke!

Offline FHEM__Newbie

  • New Member
  • *
  • Beiträge: 24
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #75 am: 06 Mai 2016, 23:35:04 »
Hallo,

erstmal super Modul, Danke.

Aber 3 Fragen hät ich noch:

1) Den DOW krieg ich nicht geadded (WKN 969420), genauso wie dessen DB DOW Indikation (WKN DB2KFA) oder auch die DB DAX Indikation (WKN DB2KE7).
2) Wie kann ich einer WKN noch einen speziellen Börsenplatz mitgeben? z.B. Stuttgart, weil die bis 22 Uhr handeln?
3) Was bedeuten die 2 Nuller hinter den WKNs, z.B. 846900:0:0 im stocks Attribut?

Danke für die Hilfe...
« Letzte Änderung: 06 Mai 2016, 23:38:42 von FHEM__Newbie »

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #76 am: 07 Mai 2016, 11:21:26 »
Moin! Schau mal in die commandref zum Modul, da sollte es beschrieben sein.

Kurzfassung:
1) Den DOW krieg ich nicht geadded (WKN 969420), genauso wie dessen DB DOW Indikation (WKN DB2KFA) oder auch die DB DAX Indikation (WKN DB2KE7).
Es kann nur verwendet werden, was von dem Perl-Modul unterstützt wird (http://finance-quote.sourceforge.net/).

2) Wie kann ich einer WKN noch einen speziellen Börsenplatz mitgeben? z.B. Stuttgart, weil die bis 22 Uhr handeln?
Mit dem Attribut "sources". "get sources" liefert alle bekannten sources.

3) Was bedeuten die 2 Nuller hinter den WKNs, z.B. 846900:0:0 im stocks Attribut?
Das erste ist die Anzahl im Depot und das zweite der Kaufpreis.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #77 am: 28 September 2016, 13:24:44 »
Hallo vbs,

ich habe mein FHEM neu aufgesetzt und hatte plötzlich keine Daten mehr in meiner Depotübersicht.

Beim untersuchen der save Datei von meiner Sicherung ist mir aufgefallen, das Werte wie
DTE.SG_d_cur_value_total
DTE.SG_d_value_diff_total
DTE.SG_d_p_change_total

zuletzt im November letzten Jahres aktualisiert wurden.
Wurde etwas geändert was ich nicht mitbekommen habe?
Grüße
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #78 am: 28 September 2016, 18:19:07 »
Hm, hab eigentlich an dem Modul recht lange nix gemacht. November? Ist eine Version hier aus dem Thread, oder? Kannst ja mal die "offizielle" aus FHEM probieren.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #79 am: 28 September 2016, 20:23:17 »
Hm, hab eigentlich an dem Modul recht lange nix gemacht. November? Ist eine Version hier aus dem Thread, oder? Kannst ja mal die "offizielle" aus FHEM probieren.
# $Id: 98_STOCKQUOTES.pm 10652 2016-01-28 17:41:14Z vbs2 $Ich habe die offizielle Version in Verwendung.
Funktioniert es bei dir z.B. mit der DTE.SG Aktie?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #80 am: 29 September 2016, 18:19:12 »
Wenn du mir sagst, wie du es bei dir definiert hast, kann ich das gern mal ausprobierne.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #81 am: 30 September 2016, 00:24:19 »
hier ein Beispiel, es ist aber bei allen Wertpapieren so
depot_value_diff_total steht auf -(Summe aller Einkaufswerte)

define depot2 STOCKQUOTES
set depot2 buy DTE.DE 2 34

list
Internals:
   CFGFN
   NAME       depot2
   NR         620
   STATE      2016-09-30 00:20:14
   TYPE       STOCKQUOTES
   Readings:
     2016-09-30 00:20:14   DTE.DE_avg_vol  7765580
     2016-09-30 00:20:14   DTE.DE_cap      68730000000
     2016-09-30 00:20:14   DTE.DE_close    14.87
     2016-09-30 00:20:14   DTE.DE_currency EUR
     2016-09-30 00:20:14   DTE.DE_d_buy_quote 17.00
     2016-09-30 00:20:14   DTE.DE_d_buy_value_total 34
     2016-09-30 00:20:14   DTE.DE_d_stockcount 2
     2016-09-30 00:20:14   DTE.DE_date     09/29/2016
     2016-09-30 00:20:14   DTE.DE_day_range 14.89 - 15.07
     2016-09-30 00:20:14   DTE.DE_eps      1.19
     2016-09-30 00:20:14   DTE.DE_errormsg HTTP session failed
     2016-09-30 00:20:14   DTE.DE_ex_div   5/27/2016
     2016-09-30 00:20:14   DTE.DE_high     15.07
     2016-09-30 00:20:14   DTE.DE_isodate  2016-09-29
     2016-09-30 00:20:14   DTE.DE_last     14.95
     2016-09-30 00:20:14   DTE.DE_low      14.89
     2016-09-30 00:20:14   DTE.DE_method   yahoo_europe
     2016-09-30 00:20:14   DTE.DE_name     DEUTSCHE TELEKOM N
     2016-09-30 00:20:14   DTE.DE_net      +0.08
     2016-09-30 00:20:14   DTE.DE_open     14.96
     2016-09-30 00:20:14   DTE.DE_p_change +0.54
     2016-09-30 00:20:14   DTE.DE_pe       12.52
     2016-09-30 00:20:14   DTE.DE_price    14.95
     2016-09-30 00:20:14   DTE.DE_success  1
     2016-09-30 00:20:14   DTE.DE_symbol   DTE.DE
     2016-09-30 00:20:14   DTE.DE_time     17:35
     2016-09-30 00:20:14   DTE.DE_volume   6455472
     2016-09-30 00:20:14   DTE.DE_year_range 13.37 - 17.57
     2016-09-30 00:20:14   depot_buy_value_total 34
     2016-09-30 00:20:14   depot_cur_value_total 0
     2016-09-30 00:20:14   depot_p_change  0
     2016-09-30 00:20:14   depot_p_change_total -100.00
     2016-09-30 00:20:14   depot_value_diff 0.00
     2016-09-30 00:20:14   depot_value_diff_total -34.00
     2016-09-30 00:20:14   state           2016-09-30 00:20:14
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 300
   queryTimeout 120
   stocks     DTE.DE:2:34
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline carlos

  • Full Member
  • ***
  • Beiträge: 154
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #82 am: 30 September 2016, 07:35:18 »
Hallo,
Ist bei mir auch ziemlich lange so.
Was mir noch auffällt, ich habe bei den Error messages immer einen Fehler:
DTE.F_errormsg          HTTP session failed

Aber die Readings werden alle alle erzeugt.
Gruß
Carlos
1 UDOO, 3 Raspberry Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.7, nanoCUL V 1.21.00 a-culfw, signalduino, div. Homematic Komponenten, toom Baumarkt Funksteckdosen

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #83 am: 30 September 2016, 08:30:49 »
Beim untersuchen der save Datei von meiner Sicherung ist mir aufgefallen, das Werte wie
DTE.SG_d_cur_value_total
DTE.SG_d_value_diff_total
DTE.SG_d_p_change_total
Hab mir das mal angesehen: Und zwar liegt das daran, dass für DTE.SG kein Wert "previous" geliefert wird (liegt am Symbol, bei zB AAPL wird previous geliefert). Nur wenn "last" UND "previous" vorhanden sind, werden diese Readings gefüllt, was bei d_value_diff sicherlich Sinn macht. Ich werds aber noch feiner aufgliedern, so dass d_cur_value_total und d_p_change_total gefüllt werden, wenn zumindest "last" vorhanden ist.

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #84 am: 30 September 2016, 16:11:54 »
Hab mir das mal angesehen: Und zwar liegt das daran, dass für DTE.SG kein Wert "previous" geliefert wird (liegt am Symbol, bei zB AAPL wird previous geliefert). Nur wenn "last" UND "previous" vorhanden sind, werden diese Readings gefüllt, was bei d_value_diff sicherlich Sinn macht. Ich werds aber noch feiner aufgliedern, so dass d_cur_value_total und d_p_change_total gefüllt werden, wenn zumindest "last" vorhanden ist.
Das wäre super.
Komisch ist es aber trotzdem. Scheinbar wurde was an der Perl Bibliothek verändert. Sonst hätte es ja auch letztes Jahr nicht funktionieren dürfen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #85 am: 30 September 2016, 20:56:02 »
Bitte einmal diese Version probieren.

Ich würde eher vermuten, dass sich da etwas beim Datenprovider geändert hat, so dass jetzt für das Symbol previous nicht mehr geliefert wird. Es gab zumindest lange keine neue Version der Lib mehr:
http://finance-quote.sourceforge.net/
« Letzte Änderung: 03 Oktober 2016, 23:09:04 von vbs »

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #86 am: 03 Oktober 2016, 22:19:50 »
Bitte einmal diese Version probieren.
ich glaube du hast den Anhang vergessen  8)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #87 am: 03 Oktober 2016, 23:09:13 »
Ich glaub auch  ;D

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1560
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #88 am: 04 Oktober 2016, 15:44:14 »
Die neue Version funktioniert.
Danke!
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #89 am: 05 Oktober 2016, 20:52:13 »
Ok sehr gut danke, die Version ist jetzt auch in FHEM eingecheckt.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Gisbert

  • Full Member
  • ***
  • Beiträge: 364
  • Das Ziel ist das Ziel !
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #90 am: 18 März 2017, 12:50:30 »
Hallo,

wie kann man denn herausfinden, ob Werte von der gewünschten WKN bereitgestellt werden können, und welche "source" dafür gewählt werden soll?

Moin! Schau mal in die commandref zum Modul, da sollte es beschrieben sein.

Kurzfassung:Es kann nur verwendet werden, was von dem Perl-Modul unterstützt wird (http://finance-quote.sourceforge.net/).
Mit dem Attribut "sources". "get sources" liefert alle bekannten sources.

Hier ein list, außer einem Datum erscheint nichts.
Internals:
   NAME       FFB1
   NR         406
   STATE      2017-03-18 12:52:48
   TYPE       STOCKQUOTES
   Readings:
     2017-03-18 12:52:48   depot_buy_value_total 0
     2017-03-18 12:52:48   depot_cur_value_total 0
     2017-03-18 12:52:48   depot_p_change  0
     2017-03-18 12:52:48   depot_p_change_total 0
     2017-03-18 12:52:48   depot_value_diff 0.00
     2017-03-18 12:52:48   depot_value_diff_total 0.00
     2017-03-18 12:52:48   state           2017-03-18 12:52:48
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 300
   queryTimeout 120
   sources    fundlibrary
   stocks     A0HMGB:8530:13367.6,692188:227.5:6697.8

Viele Grüße Gisbert
« Letzte Änderung: 18 März 2017, 12:57:06 von Gisbert »
Fhem 5.8 auf RPi3 B, Homematic, ESP8266, Sonoff Dual, 1-Wire-Temperatursensoren, Wlan-Kamera, WH3080-Wettereinheit

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #91 am: 19 März 2017, 10:03:18 »
Kenne da leider auch keinen guten Weg. Das Modul nutzt die Perl-Bibliothek Finance::Quote (http://search.cpan.org/~ecocode/Finance-Quote-1.38/lib/Finance/Quote.pm). Also da könnte man nachforschen, was die genau machen.
Ich würde aber erwarten, dass mindestens alles was Yahoo Finance kennt funktioniert.

Offline Gisbert

  • Full Member
  • ***
  • Beiträge: 364
  • Das Ziel ist das Ziel !
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #92 am: 19 März 2017, 11:35:41 »
Hallo vbs,

ich kriegs nicht hin, auch dann nicht wenn WKN-Nummer benutze, die weiter vorne im Thread stehen (mit defaultSource europe):
Internals:
   CFGFN
   NAME       FFB1
   NR         649
   STATE      2017-03-19 11:30:58
   TYPE       STOCKQUOTES
   Readings:
     2017-03-19 11:30:58   depot_buy_value_total 0
     2017-03-19 11:30:58   depot_cur_value_total 0
     2017-03-19 11:30:58   depot_p_change  0
     2017-03-19 11:30:58   depot_p_change_total 0
     2017-03-19 11:30:58   depot_value_diff 0.00
     2017-03-19 11:30:58   depot_value_diff_total 0.00
     2017-03-19 11:30:58   state           2017-03-19 11:30:58
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 300
   queryTimeout 120
   sources    yahoo
   stocks     975013:2:80
   verbose    5

Im logfile steht folgendes, wenn ich set update ausführe:
2017.03.19 11:30:56 4: STOCKQUOTES_QueueTimer: 0 seconds
2017.03.19 11:30:56 4: STOCKQUOTES: Start blocking query
2017.03.19 11:30:56 4: STOCKQUOTES_QueryQuotesBlocking
2017.03.19 11:30:56 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2017.03.19 11:30:56 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2017.03.19 11:30:58 4: STOCKQUOTES_QueryQuotesBlocking Return value: FFB1
2017.03.19 11:30:58 4: STOCKQUOTES_QueryQuotesFinished
2017.03.19 11:30:58 4: STOCKQUOTES_QueueTimer: 300 seconds

Kannst du mir ein funktionierendes Beispiel posten?

Viele Grüße Gisbert
Fhem 5.8 auf RPi3 B, Homematic, ESP8266, Sonoff Dual, 1-Wire-Temperatursensoren, Wlan-Kamera, WH3080-Wettereinheit

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #93 am: 19 März 2017, 11:55:14 »
Hab es länger nicht mehr benutzt, aber es scheint tatsächlich nicht mehr funktionieren... Finance::Quote wird auch seit ein paar Jahren nicht mehr gepflegt.  :-\

Offline Gisbert

  • Full Member
  • ***
  • Beiträge: 364
  • Das Ziel ist das Ziel !
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #94 am: 19 März 2017, 12:03:52 »
Hallo vbs,

das erklärt natürlich die "Untätigkeit" des Moduls.

Gibt es andere Möglichkeiten Kurse von bekannten Seiten, wie z.B. https://www.comdirect.de/ einzulesen?
Geht es mit HTTPMOD, und was müsste ich dort genau machen, damit ich Kurse bekomme?

Viele Grüße Gisbert
Fhem 5.8 auf RPi3 B, Homematic, ESP8266, Sonoff Dual, 1-Wire-Temperatursensoren, Wlan-Kamera, WH3080-Wettereinheit

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #95 am: 19 März 2017, 12:20:25 »
Ist sicherlich möglich, sich etwas eigenes zu schreiben. Aber nicht trivial fürchte ich. Du müsstest wirklich im Detail gucken, wie der HTTP-Aufruf aussehen muss und dann sinnvoll die HTML-Seite "scrapen". Manchmal werden die Seiten auch erstmal nur ohne Inhalt ausgeliefert und dann asynchron per AJAX oder Websocket-Aufrufen befüllt. Das macht das dann entsprechend komplexer.

Ich würde es wahrscheinlich erstmal mit Yahoo Finance probieren. Die haben eine gut erforschte API und da findet man auch viele Infos zu. Z.B.
http://diyinvestor.de/yahoo-finance-api/

Offline FHEM_Starter

  • New Member
  • *
  • Beiträge: 30
Realtime Kurse
« Antwort #96 am: 25 April 2017, 16:47:31 »
Salut,

nach der Definition meiner Aktien erhalte ich Werte von XETRA. Da dieser immer 15 Minuten hinterher hinkt, wäre es toll, wenn ich auch auf Börsen wie "LT Lang & Schwarz" (www.comdirect.de) oder ähnliches zugreifen könnte. Gibt es in diesem Modul dafür einen Ansatz ?

Danke und Gruß
Wolfgang

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1480
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #97 am: 12 Mai 2017, 19:01:30 »
Sorry, bin ich irgendwie drüber weggekommen...

Als L&S geht meines Wissens nach nicht. Das Modul benutzt das Perl-Modul Finance::Quote zur Abfrage der Kurse. Also es können nur Quellen benutzt werden, die von dem Modul unterstützt werden:
http://finance-quote.sourceforge.net/

Das Modul scheint auch nicht mehr gepflegt zu werden.

 

decade-submarginal