Seite 1 von 1

Auslesen der Lottozahlen

Verfasst: 11. Jan 2024 13:20
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

Re: Auslesen der Lottozahlen

Verfasst: 11. Jan 2024 17:22
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]}

Re: Auslesen der Lottozahlen

Verfasst: 11. Jan 2024 18:34
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...)

Re: Auslesen der Lottozahlen

Verfasst: 11. Jan 2024 22:47
von udo1toni
Hatte gar nicht mitbekommen, dass inzwischen schon jemand anderes eine viel einfachere Lösung (also Quelle) gefunden hat...
Umso besser :)

Re: Auslesen der Lottozahlen

Verfasst: 12. Jan 2024 10:22
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