ich habe gerade über Tankerkönig die Benzinpreise in mein HA integriert.
Danach kam mir die Idee, dass es doch auch eine Möglichkeit geben müsste, wie man Aktienkurse einfach verfolgen kann. Nach kurzer Recherche scheint das Thema scheint nicht besonders verbreitet zu sein. Ich habe über HACS Yahoo Finance gefunden, aber auch dazu gibt es nur sehr wenige Informationen.
Habe ich etwas übersehen? Wie verfolgt ihr Aktienkurse mit HA?
Jetzt habe ich den Sensor aus dem Beispiel mit dem Aktienkurs von Gamestop, obwohl ich den Code in der configuration.yaml schon gelöscht habe und auch HA neu gestartet habe.
Wie bekomme ich den wieder weg? Wenn ich im Dashboard auf einer Entitätskarte “gamestop” eingebe, erscheint der Aktienkurs - wie geschrieben ist der Code aber bereits entfernt.
Ist es möglich, die Codeschnipsel aus der Avanza Integration auch in einen Template Helfer über die GUI zu integrieren? Wenn ja, welche Variante müsste ich hier auswählen?
Habe meine alten/vorherigen Template Sensoren nun in die Helfer übertragen. Dadurch konnte ich den Code Schnipsel von Avanza in meine configuration.yaml kopieren und sehe nun meine Aktien im Dashboard.
PS: Ich schätze, da hatte ich vorher einen Fehler in der Formatierung.
@RalfEs
guter Tipp, danke. Yahoo Finance funktioniert anscheinend nicht mehr:
Error fetching YahooSymbolUpdateCoordinator data: {‘code’: ‘internal-error’, ‘description’: ‘Connection is deallocated and cannot be used anymore.’}
Hatte die Entitäten vor Monaten für einen Kollegen mal erstellt, aber selbst
nicht genutzt.
Habe es nun mit Avanza umgesetzt:
sensors.yaml
# REST Sensoren für Aktienkurse von Avanza.se
- platform: rest
name: "Aktie Tesla"
resource: https://www.avanza.se/_api/market-guide/stock/238449
method: GET
value_template: "{{ value_json.quote.last if value_json is defined and 'quote' in value_json and 'last' in value_json.quote else 'unavailable' }}"
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
scan_interval: 300
force_update: true
device_class: "monetary"
- platform: rest
name: "Aktie NVIDIA"
resource: https://www.avanza.se/_api/market-guide/stock/4478
method: GET
value_template: "{{ value_json.quote.last if value_json is defined and 'quote' in value_json and 'last' in value_json.quote else 'unavailable' }}"
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
scan_interval: 300
force_update: true
device_class: "monetary"
- platform: rest
name: "Aktie Apple"
resource: https://www.avanza.se/_api/market-guide/stock/3323
method: GET
value_template: "{{ value_json.quote.last if value_json is defined and 'quote' in value_json and 'last' in value_json.quote else 'unavailable' }}"
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
scan_interval: 300
force_update: true
device_class: "monetary"
# Sensoren für Prozentuale Änderung
- platform: rest
name: "Tesla Change"
resource: https://www.avanza.se/_api/market-guide/stock/238449
method: GET
value_template: "{{ value_json.quote.changePercent if value_json is defined and 'quote' in value_json and 'changePercent' in value_json.quote else 'unavailable' }}"
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
scan_interval: 300
force_update: true
- platform: rest
name: "NVIDIA Change"
resource: https://www.avanza.se/_api/market-guide/stock/4478
method: GET
value_template: "{{ value_json.quote.changePercent if value_json is defined and 'quote' in value_json and 'changePercent' in value_json.quote else 'unavailable' }}"
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
scan_interval: 300
force_update: true
- platform: rest
name: "Apple Change"
resource: https://www.avanza.se/_api/market-guide/stock/3323
method: GET
value_template: "{{ value_json.quote.changePercent if value_json is defined and 'quote' in value_json and 'changePercent' in value_json.quote else 'unavailable' }}"
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
scan_interval: 300
force_update: true
# Template Sensoren mit Fehlerbehandlung
- platform: template
sensors:
formatted_aktie_tesla:
friendly_name: "Tesla Aktie"
value_template: "{{ states('sensor.aktie_tesla') | float(0) | round(2) }}"
unit_of_measurement: "$"
icon_template: >-
{% if states('sensor.tesla_change') | float(0) > 0 %}
mdi:arrow-up-bold
{% elif states('sensor.tesla_change') | float(0) < 0 %}
mdi:arrow-down-bold
{% else %}
mdi:currency-usd
{% endif %}
formatted_aktie_nvidia:
friendly_name: "NVIDIA Aktie"
value_template: "{{ states('sensor.aktie_nvidia') | float(0) | round(2) }}"
unit_of_measurement: "$"
icon_template: >-
{% if states('sensor.nvidia_change') | float(0) > 0 %}
mdi:arrow-up-bold
{% elif states('sensor.nvidia_change') | float(0) < 0 %}
mdi:arrow-down-bold
{% else %}
mdi:currency-usd
{% endif %}
formatted_aktie_apple:
friendly_name: "Apple Aktie"
value_template: "{{ states('sensor.aktie_apple') | float(0) | round(2) }}"
unit_of_measurement: "$"
icon_template: >-
{% if states('sensor.apple_change') | float(0) > 0 %}
mdi:arrow-up-bold
{% elif states('sensor.apple_change') | float(0) < 0 %}
mdi:arrow-down-bold
{% else %}
mdi:currency-usd
{% endif %}
tesla_change_percent:
friendly_name: "Tesla Änderung (%)"
value_template: "{{ states('sensor.tesla_change') | float(0) | round(2) }}"
unit_of_measurement: "%"
icon_template: >-
{% if states('sensor.tesla_change') | float(0) > 0 %}
mdi:arrow-up-bold
{% elif states('sensor.tesla_change') | float(0) < 0 %}
mdi:arrow-down-bold
{% else %}
mdi:minus
{% endif %}
nvidia_change_percent:
friendly_name: "NVIDIA Änderung (%)"
value_template: "{{ states('sensor.nvidia_change') | float(0) | round(2) }}"
unit_of_measurement: "%"
icon_template: >-
{% if states('sensor.nvidia_change') | float(0) > 0 %}
mdi:arrow-up-bold
{% elif states('sensor.nvidia_change') | float(0) < 0 %}
mdi:arrow-down-bold
{% else %}
mdi:minus
{% endif %}
apple_change_percent:
friendly_name: "Apple Änderung (%)"
value_template: "{{ states('sensor.apple_change') | float(0) | round(2) }}"
unit_of_measurement: "%"
icon_template: >-
{% if states('sensor.apple_change') | float(0) > 0 %}
mdi:arrow-up-bold
{% elif states('sensor.apple_change') | float(0) < 0 %}
mdi:arrow-down-bold
{% else %}
mdi:minus
{% endif %}
Vielen Dank an das teilen Eurer Vorgehensweise… Yahoofinance geht, allerdings mit dem Service… alle x Sekunden Minuten können die Werte dann aktualisiert werden, nur in der configuration.yaml geht der Intervall wohl nicht…
Ich würde gerne den Scan Intervall dynamisch ändern… also tagsüber beispielsweise auf 5 Minuten und in der Nacht auf 10 MInuten…
Dazu müsste ich den festen Intervall als Parameter definieren… hier hören leider meine Kenntnisse auf…
Kann mir jemand helfen wie ich in der YAML einen dynamischen Paramete als Helfer beispielsweise einbinden kann?