Module Shares und ShareMaster: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
Zeile 73: Zeile 73:
und führt zur Anzeige aus dem oberen Bild.
und führt zur Anzeige aus dem oberen Bild.


==Änderungen in der yahoo API (Mai 2023)==
==Alternative Symbole==
Leider haben Änderungen in der Yahoo API dazu geführt, dass die Abrufe eventuell nicht mehr funktionieren. Ärgerlicherweise besteht zudem der Workaround derzeit darin, händisch in installierten Perl-Dateien Versionsnummern zu ändern - und niemand weiß, wie nachhaltig diese Anpassungen sein werden. Falls das angelegte Depot aus yahoo finance nur Nullen holt, sind folgende Schritte nötig: Zuerst sucht man eine Perl-Datei mit
Viele der Datenanbieter, z.B. Yahoo, erschweren in unregelmäßigen und nicht vorhersehbaren Abständen den Zugang. Das ist verständlich, weil sie durch den häufigen Zugriff Kosten haben - aber dennoch ärgerlich, weil man plötzlich von einem auf den anderen Tag keine Kursdaten mehr bekommt.
  (sudo) find / -name YahooJSON.pm -print
 
und erhält den Speicherort von YahooJSON.pm. Oft findet man die Datei unter /usr/share/perl5/Finance/Quote/YahooJSON.pm. Im nächsten Schritt sucht man in der Datei die Zeile
Aus diesem Grund bietet das Modul 95_Shares.pm die Möglichkeit, für jedes Wertpapier mehrere Symbole anzugeben. Die Syntax für jede Zeile des Attributes ''stocks'' ist in diesem Fall
  my $YIND_URL_HEAD = 'https://query1.finance.yahoo.com/v7/finance/quote?symbols=';
<Symbol0>[|<SymbolN, N=1...>]*:<Anzahl>:<Einstandswert>:<Kategorie>,
und ändert die v7 in v6. Danach sollte der Abruf (zumindest erstmal) gehen.
Beispiel:
NADQ.DE|LU2197908721:10:500:tech,
Das erste ist in diesem Beispiel das Yahoo-Symbol für einen beliebten NASDAQ-ETF, das zweite die ISIN. Die Anzahl der alternativen Symbole ist nicht begrenzt.
 
Desweiteren gibt es für das Modul das Attribut ''defaultSource''. Dessen Syntax ist
<Quelle0>[|<QuelleN, N=1...>]*
Beispiel:
yahoo_json|xetra
Die dritte Komponente dieses Systems ist das Attribut ''altSymbol''. Und damit sollte schon klar sein, wie das läuft.  
* Wenn ''altSymbol'' den Wert 0 hat, wird für jedes Position mit dem Symbol0 standardmäßig bei Quelle0 nachgeschaut
* Wenn ''altSymbol'' den Wert 1 hat, wird für jedes Position mit dem Symbol1 standardmäßig bei Quelle1 nachgeschaut
* etc.
Sollte es also vorkommen, dass Yahoo den Zugriff mal wieder erschwert, kann man mit der einfachen Änderung
attr <Depotname> altSymbol 1
auf Xetra als Quelle umschalten, ohne den gesamten Depotbestand neu einzugeben.

Version vom 24. April 2024, 15:05 Uhr

Shares
Zweck / Funktion
Das Modul Shares dient zur Verwaltung eines Wertpapierdepots.
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Unterstuetzende Dienste
Modulname 95_Shares.pm
Ersteller Prof. Dr. Peter A. Henning
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


ShareMaster
Zweck / Funktion
Das Modul ShareMaster fasst die Daten eines oder mehrer Wertpapierdepots in einer komfortablen Anzeige zusammen.
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Unterstuetzende Dienste
Modulname 95_ShareMaster.pm
Ersteller Prof. Dr. Peter A. Henning
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Shares.pm

Das Modul 95_Shares.pm dient dazu, ein Wertpapierdepot zu verwalten. Dabei wurden wesentliche Bestandteile des Moduls 98_STOCKQUOTES.pm übernommen, aber strukturell so stark verändert, dass ein neuer Modulname sinnvoll war. vbs, dem Ersteller und Maintainer des Ursprungsmoduls sei an dieser Stelle gedankt. Die strukturellen Änderungen sind insbesondere:

  • separate Währungen für alle Wertpapiere im Depot und das Depot selbst (Attribute shareCurrency und depotCurrency). Das ermöglicht, Wertpapiere in dieses Depot zu legen, die zwar für das eigene Depot in € gekauft werden, aber an ausländischen Börsen gehandelt und ggf. auch im Ausland verwahrt werden.
  • Angabe einer Kategorie (z.B. "Rohstoff" oder "Bio") für jedes Wertpapier.
  • deutliche Vereinfachung der Reading-Namen und Konfigurierbarkeit der angezeigten Werte.
  • Alternative Symbole für jedes Wertpapier, z.B. Yahoo-Symbol|ISIN|WKN zum schnellen Wechsel des Datenanbieters

Einrichtung

Das Modul benötigt das Perl-Modul Finance::Quote, das am Sichersten mit dem Kommandozeilenbefehl

cpan Finance::Quote

installiert wird. Da hierbei viele zusätzliche Perl-Module geholt und getestet werden, kann das schon eine ganze Weile dauern!

Auf Linux-Systemen kann man das ggf. durch

apt install libfinance-quote-perl

abkürzen. Dabei kann es aber zu Fehlermeldungen beim Aufruf kommen, weil dieses Linux-Paket offenbar nicht ganz vollständig ist.

Die Definition des Depots ist sehr einfach und benötigt keine Parameter

define <Depotname> Shares

Das Attribut stocks enthält eine (gerne mehrzeilige) Liste der Wertpapiere im Format

<Symbol>:<Anzahl>:<Einstandswert>:<Kategorie>
  • Wichtig ist, dass der Einstandswert für jedes Wertpapier in Depotwährung angegeben wird.
  • Zum Thema der alternativen Symbolen siehe unten.

ShareMaster.pm

Das Modul 95_ShareMaster.pm dient der komfortablen Anzeige der mit dem obigen Modul verwalteten Werte (siehe Beispiele). Dabei erfolgt die Anzeige je Unterdepot, aber auch eine Zusammenfassung nach Kategorien.

Sharemaster.png

Einrichtung

Die Definition erhält als Parameter alle Unterdepots

define <MasterDepotname> ShareMaster <Unterdepot1> [<Unterdepot2>]*

Beispiele

Beispieldepot mit 4 deutschen Papieren

Shares.png

Die Währungsattribute des Depots DepotY_EUR haben die Werte

attr DepotY_EUR depotCurrency EUR
attr DepotY_EUR shareCurrency EUR

Das Attribut stocks des Depots DepotY_EUR bekommt den mehrzeiligen Wert

BAS.DE:3:154:chemistry,
FRA.DE:6:258.47:mobility,
LIN.DE:1:212:chemistry,
TKA.DE:10:72:tech,

Beispieldepot mit 2 kanadischen Papieren

Die Währungsattribute des Depots DepotY_CAD haben die Werte

attr DepotY_CAD depotCurrency EUR
attr DepotY_CAD shareCurrency CAD

Das Attribut stocks des Depots DepotY_CAD bekommt den mehrzeiligen Wert

PSLV.TO:10:73:commodity,
BLDP.TO:5:76:h2

Zusammenfassung der beiden Beispieldepots

Die Definition erhält als Parameter die beiden oben definierten Depots

 define DepotY ShareMaster DepotY_EUR DepotY_CAD

und führt zur Anzeige aus dem oberen Bild.

Alternative Symbole

Viele der Datenanbieter, z.B. Yahoo, erschweren in unregelmäßigen und nicht vorhersehbaren Abständen den Zugang. Das ist verständlich, weil sie durch den häufigen Zugriff Kosten haben - aber dennoch ärgerlich, weil man plötzlich von einem auf den anderen Tag keine Kursdaten mehr bekommt.

Aus diesem Grund bietet das Modul 95_Shares.pm die Möglichkeit, für jedes Wertpapier mehrere Symbole anzugeben. Die Syntax für jede Zeile des Attributes stocks ist in diesem Fall

<Symbol0>[|<SymbolN, N=1...>]*:<Anzahl>:<Einstandswert>:<Kategorie>,

Beispiel:

NADQ.DE|LU2197908721:10:500:tech,

Das erste ist in diesem Beispiel das Yahoo-Symbol für einen beliebten NASDAQ-ETF, das zweite die ISIN. Die Anzahl der alternativen Symbole ist nicht begrenzt.

Desweiteren gibt es für das Modul das Attribut defaultSource. Dessen Syntax ist

<Quelle0>[|<QuelleN, N=1...>]*

Beispiel:

yahoo_json|xetra

Die dritte Komponente dieses Systems ist das Attribut altSymbol. Und damit sollte schon klar sein, wie das läuft.

  • Wenn altSymbol den Wert 0 hat, wird für jedes Position mit dem Symbol0 standardmäßig bei Quelle0 nachgeschaut
  • Wenn altSymbol den Wert 1 hat, wird für jedes Position mit dem Symbol1 standardmäßig bei Quelle1 nachgeschaut
  • etc.

Sollte es also vorkommen, dass Yahoo den Zugriff mal wieder erschwert, kann man mit der einfachen Änderung

attr <Depotname> altSymbol 1

auf Xetra als Quelle umschalten, ohne den gesamten Depotbestand neu einzugeben.