Auslesen der Lottozahlen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Jbreuer
Beiträge: 33
Registriert: 18. Nov 2017 20:44
Answers: 0

Auslesen der Lottozahlen

Beitrag von Jbreuer »

Hallo zusammen,

Ich möchte gerne per Rule die Lottozahlen 6 aus 49 automatisch einlesen und vergleichen. Hat jemand eine Idee, wo und wie ich an diese Zahlen komme?

Beste Grüße
Jürgen


Gesendet von iPhone mit Tapatalk

Harka
Beiträge: 308
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Auslesen der Lottozahlen

Beitrag von Harka »

Moin,
z.B. mit dem http-Binding und dieser Seite von Lotto -> https://services.lotto-hessen.de/spielinformationen/
Gerade was grob zusammengeklickt

Code: Alles auswählen

UID: http:url:Lotto6aus49
label: Lotto6aus49
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: https://services.lotto-hessen.de/spielinformationen/gewinnzahlen/lotto
  delay: 0
  stateMethod: GET
  refresh: 60
  commandMethod: GET
  contentType: application/json
  timeout: 5000
  bufferSize: 2048
channels:
  - id: Lotto6aus49_Aktuell
    channelTypeUID: http:string
    label: Lotto6aus49_Aktuell
    description: ""
    configuration:
      mode: READONLY
  - id: Lotto6aus49_Ziehung
    channelTypeUID: http:string
    label: Lotto6aus49_Ziehung
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.Ziehung
  - id: Lotto6aus49_Zahl1
    channelTypeUID: http:number
    label: Lotto6aus49_Zahl1
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.Zahl[0]
Lotto6aus49_Aktuell ergibt

Code: Alles auswählen

{"Datum":"10.01.2024","Ziehung":"Mittwoch","Superzahl":9,"Zahl":[37,3,7,24,21,49]}
Zuletzt geändert von Harka am 12. Jan 2024 05:02, insgesamt 1-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Auslesen der Lottozahlen

Beitrag von udo1toni »

Unter lotto.de kann man die Zahlen abrufen, genau wie auf vielen anderen Seiten. Die größte Herausforderung besteht naturgemäß darin, die Nutzdaten vom Müll zu trennen.

Bei lotto.de werden alle Daten auf der Seite als eingebettetes JSON bereitgestellt (extrem effizient, gerade wenn man per Smartphone zugreift... nicht)
Mein Ansatz wäre, das per externem Script zu erledigen, einfach weil das json so umfangreich ist, dass es nicht als Status gehalten werden kann (die ausgelieferte Seite hat knapp 456 kByte, nach dem Entfernen des umgebenden html-Codes bleiben noch 421 kByte übrig.)
Im json ist der interessante Teil der im Knoten props.pageProps.winningNumbersData
In diesem Knoten gibt es (aktuell) 7 Unterknoten, von denen einer (momentan der vierte...) zwei Unterknoten enthält, die die aktuellen Ziehungsdaten von 4 aus 49 enthalten, und zwar Mittwoch und Samstag. Unterscheidbar, welcher Knoten welcher ist, sind sie anhand des Unterknotens gameType, welcher wiederum den Wert name enthält (eben 'LOTTO 6aus49 Samstag' oder 'LOTTO 6aus49 Mittwoch')
Ich habe keine Ahnung, ob das so zulässig wäre, aber die 6 Ziehungszahlen von der Samstagsziehung bekäme man dann so:

Code: Alles auswählen

$.props.pageProps.winningNumbersData['4'][?(@.gameType.name=='LOTTO 6aus49 Samstag')].drawNumbersCollection[*].drawNumber
und die Superzahl so

Code: Alles auswählen

$.props.pageProps.winningNumbersData['4'][?(@.gameType.name=='LOTTO 6aus49 Samstag')].superNumber
Das erste Problem dabei: die '4' ist durchaus ein veränderlicher Wert, und ich habe keine Möglichkeit gefunden, diesen Wert über eine Suche (wie im zweiten Teil über gameType.name) herauszufinden.
Das zweite Problem: in openHAB selbst klappt der Zugriff so überhaupt nicht, weil die Datei einfach zu groß ist.

Die Zahlen werden auch im html-Code direkt ausgeliefert, dort ist der Zugriff aber suboptimal, weil es sich nur um lauter div-Attribute handelt, man hat keinen festen Bezugspunkt, an dem man die Daten ausschneiden könnte.

Bleibt also ein externes Script, z.B. mittels Python, welches die Daten direkt von der Quelle zieht und mundgerecht zurechtstutzt.

Vielleicht gibt es aber noch andere Seiten, auf denen die gesuchten Daten bereitgestellt werden (und wo sie leichter zu grabben sind...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Auslesen der Lottozahlen

Beitrag von udo1toni »

Hatte gar nicht mitbekommen, dass inzwischen schon jemand anderes eine viel einfachere Lösung (also Quelle) gefunden hat...
Umso besser :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Jbreuer
Beiträge: 33
Registriert: 18. Nov 2017 20:44
Answers: 0

Re: Auslesen der Lottozahlen

Beitrag von Jbreuer »

Vielen Dank für die Antworten.
Ich werde mir die Lösung in Ruhe anschauen, versuchen zu verstehen und dann einbauen und testen

Antworten