Marktguru (oder andere Preisalarm-Automationen)

thdeitmer

Member
Hallo Tüftler und Bastler!

vor kurzem hab ich mir gedacht, es könnte doch auch in HomeAssistant eine Automation geben, die mir einen Hinweis auf bestimmte Artikel in den Supermärten oder Discountern gibt. Dazu hab ich mich erstmal erkundigt, welche Prospekte- und Angebote-Anbieter es überhaupt gibt. Von Discounto über Idaolo bis zu Kaufda, Marktguro, Preisalarm und Smhaggle gibt es wirklich viele. Am interessantesten war für mich Marktguru. Alle meine regionalen Supermärtkte, Discounter, Getränkemärkte und Baumärkte sind dabei, die Prospekte sind aktuell. Die Googelsuche nach "Marktguru Home Assistant" zeigt mir häufiger einen Tipp bei "Smarthome Yourself" an. Der ist gut und funktioniert auch. Aber: er ist nicht gut genug und funktioniert nicht genau genug.

Dort wird das Beispiel genannt: "Krombacher" und er soll mir das günstigste Angebot von Krombacher aus der Region anzeigen. Und da ist auch schon das Problem. Erstens: es wir nur EIN Angebot angezeigt, also auch nicht unbedingt das günstigste. Keine Ahnung, warum er welches zuerst nennt. Zweitens: es werden mir auch Alternativen wie "Fassbrause" oder "Dosenbier" angezeigt. Alles Krombacher, ja, hat aber nichts mit meiner Suche zu tun. Das muss ich irgendwie verfeinern können. Und zuguterletzt ist mir aufgefallen, dass diese Woche Krombacher für 9,99 Euro im Kaufland war, aber die Anzeige sagt "kein Angebot", obwohl die Internetseite von Marktguru sehr wohl dieses Angebot anzeigt.

Ich hätte gerne eine Automation, oder eine Kachel oder irgendwas in HomeAssistant, was mir die günstigsten 3 Preise von einem Kasten Krombacher mit 20x 0,5 Liter Flaschen in meiner Region anzeigt. Diese Auswahl muss ich irgendwie einschränken können, und das Angebot muss auch irgendwie vollständig abgefragt werden können.

Kennt ihr sowas, habt ihr sowas? Wie geht das wohl?

Vielen Dank für Eure Tipps.
 
hier hab ich mal den Schnippsel, den ich nach Googlesuche bei den Kollegen gefunden habe:


YAML:
sensor:
  - platform: rest
    resource: https://api.marktguru.de/api/v1/offers/search?as=web&limit=24&offset=0&q=krombacher&zipCode=31139
    name: Krombacher
    value_template: "{{ value_json.results[0].price }}€ {{value_json.results[0].description}} bei {{value_json.results[0].advertisers[0].name }}"
    headers:
      x-clientkey: WU/RH+PMGDi+gkZer3WbMelt6zcYHSTytNB7VpTia90=
      x-apikey: 8Kk+pmbf7TgJ9nVj2cXeA7P5zBGv8iuutVVMRfOfvNE=

Die beiden Keys sind vorgegeben. Die Postleitzahl hab ich angepasst. Aktuell zeigt er mir ein Doppelpack 5 Liter Fässer vom Lidl für 24,99 Euro. Ich weiß aber, dass es diese Woche im Kaufland einen Kasten Pils für 9,99 Euro gibt. Letzte Woche hat er mir ein Fassbrause-Angebot angezeigt, obwohl es bei Rewe ein Pils-Angebot im Kasten gab.

Habt ihr eine Idee, wie man diese Code anpassen muss, damit wir uns nur auf Kasten-Angebote und nur auf Pils beschränken, und außerdem vielleicht 5-6 Angebote aufgelistet bekommen?
 
wenn es ne api gibt, braucht man natürlich kein scrape. Ansonsten findet es Daten auch z.B. anhand des css selector
 
Habt ihr eine Idee, wie man diese Code anpassen muss, damit wir uns nur auf Kasten-Angebote und nur auf Pils beschränken, und außerdem vielleicht 5-6 Angebote aufgelistet bekommen?
Wenn Du value_template mal auf value_json reduzierst und damit alles ausgibst, was die API an dieser Stelle liefert (und nicht nur [0] aka erstes Ergebnis) könnte man wohl schauen, wie da das gewünschte Ergebnis zu bekommen ist.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
7.059
Beiträge
68.823
Mitglieder
7.442
Neuestes Mitglied
devolo550
Zurück
Oben