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.
 
das heißt, die eckige Klammer bei allen drei Results ganz weglassen? Und bei Advertisers auch? Und den Rest genauso lassen, wie es ist?
 
aber aus der Idee heraus hab ich den Sensor jetzt mal mehrfach angelegt, mit dem Wert in der eckigen Klammer fortlaufend. Er zeigt mir leider immer nur bei der [0] etwas an, bei 1,2,3 oder 4 steht wieder "Unbekannt". Scheinbar MUSS die 0 da stehen.
 
YAML:
  value_template: >-
    {% for entry in value_json.results %}
      {% if 'Ka' in entry.description %}
        {{ entry.price }} € {{ entry.description }} bei {{ entry.advertisers[0].name }}
      {% endif %}
    {% endfor %}

Einmal das vollständige Ergebnis zur Orientierung:
JSON:
{"filters":{"retailers":[{"id":126654,"name":"Kaufland","resultsCount":1},{"id":126679,"name":"Lidl","resultsCount":1},{"id":126735,"name":"Netto Marken-Discount","resultsCount":1}],"brands":[{"id":115714,"name":"Krombacher","resultsCount":3}],"categories":[{"id":361,"name":"Bier","resultsCount":3}]},"totalResults":3,"skippedResults":0,"results":[{"brand":{"uniqueName":"krombacher","indexOffer":true,"indexLeaflet":false,"id":115714,"name":"Krombacher","industryId":1023},"advertisers":[{"uniqueName":"lidl","indexOffer":true,"indexLeaflet":true,"id":"retailers/126679","name":"Lidl","industryId":1023}],"categories":[{"uniqueName":null,"indexOffer":false,"indexLeaflet":false,"id":361,"name":"Bier","description":"Bier- und Biermischgetränke sind bei deutschen Konsumenten sehr beliebt. Anbieter wie [real](https://www.marktguru.de/r/real) haben [alkoholische Getränke](https://www.marktguru.de/c/getraenke-alkoholisch) von gefragten deutschen Brauereien wie [Bitburger](https://www.marktguru.de/b/bitburger), [Krombacher](https://www.marktguru.de/b/krombacher) oder [Veltins](https://www.marktguru.de/b/veltins) im Angebot.","parentId":70}],"id":18438453,"description":"HINWEIS: NUR ONLINE VERFÜGBAR mit Zapfhahn Pfandfrei. Je 2x 5 l","price":24.99,"oldPrice":null,"referencePrice":2.50,"requiresLoyalityMembership":false,"leafletFlightId":245183,"validityDates":[{"from":"2025-09-03T22:00:00Z","to":"2025-09-06T21:59:00Z"}],"externalId":null,"externalTrackingUrls":[],"externalTrackings":[],"externalUrl":"https://www.lidl.de/p/2-x-5-l-bierfass-doppelpack-krombacher-pils-bierfass-mit-zapfhahn-pfandfrei/p100377435?utm_source=vermarkter&utm_medium=leaflet&utm_campaign=lf_d-lf-dhz_others_notset_wt_omc_d-lf-dhz_sl_010925-060925&utm_content=de=p100377435","trackFlightImpression":null,"type":"standard","industries":[{"id":1023,"name":"Discounter"}],"product":{"id":37383,"name":"Pils","description":"~twxde~ ~twxwde~ ~twxnw~ ~twxsal~"},"unit":{"shortName":"l","id":1,"name":"Liter"},"images":{"count":1,"isCdnSuccessfullyPurged":null,"metadata":[{"aspectRatio":1.0964083175803403,"width":1.0,"height":0.9120689655172414}]},"imageType":"offer"},{"brand":{"uniqueName":"krombacher","indexOffer":true,"indexLeaflet":false,"id":115714,"name":"Krombacher","industryId":1023},"advertisers":[{"uniqueName":"netto-marken-discount","indexOffer":true,"indexLeaflet":true,"id":"retailers/126735","name":"Netto Marken-Discount","industryId":1023}],"categories":[{"uniqueName":null,"indexOffer":false,"indexLeaflet":false,"id":361,"name":"Bier","description":"Bier- und Biermischgetränke sind bei deutschen Konsumenten sehr beliebt. Anbieter wie [real](https://www.marktguru.de/r/real) haben [alkoholische Getränke](https://www.marktguru.de/c/getraenke-alkoholisch) von gefragten deutschen Brauereien wie [Bitburger](https://www.marktguru.de/b/bitburger), [Krombacher](https://www.marktguru.de/b/krombacher) oder [Veltins](https://www.marktguru.de/b/veltins) im Angebot.","parentId":70}],"id":18414333,"description":"6 x 0,5 Liter zzgl. Pfand 1.50","price":4.00,"oldPrice":null,"referencePrice":1.33,"requiresLoyalityMembership":false,"leafletFlightId":244973,"validityDates":[{"from":"2025-09-03T22:00:00Z","to":"2025-09-06T21:59:00Z"}],"externalId":null,"externalTrackingUrls":[],"externalTrackings":[],"externalUrl":null,"trackFlightImpression":null,"type":"standard","industries":[{"id":1023,"name":"Discounter"}],"product":{"id":37383,"name":"Pils","description":"~twxde~ ~twxwde~ ~twxnw~ ~twxsal~"},"unit":{"shortName":"l","id":1,"name":"Liter"},"images":{"count":1,"isCdnSuccessfullyPurged":null,"metadata":[{"aspectRatio":1.7102272727272727,"width":1.0,"height":0.584717607973422}]},"imageType":"offer"},{"brand":{"uniqueName":"krombacher","indexOffer":true,"indexLeaflet":false,"id":115714,"name":"Krombacher","industryId":1009},"advertisers":[{"uniqueName":"kaufland","indexOffer":true,"indexLeaflet":true,"id":"retailers/126654","name":"Kaufland","industryId":1009}],"categories":[{"uniqueName":null,"indexOffer":false,"indexLeaflet":false,"id":361,"name":"Bier","description":"Bier- und Biermischgetränke sind bei deutschen Konsumenten sehr beliebt. Anbieter wie [real](https://www.marktguru.de/r/real) haben [alkoholische Getränke](https://www.marktguru.de/c/getraenke-alkoholisch) von gefragten deutschen Brauereien wie [Bitburger](https://www.marktguru.de/b/bitburger), [Krombacher](https://www.marktguru.de/b/krombacher) oder [Veltins](https://www.marktguru.de/b/veltins) im Angebot.","parentId":70}],"id":18323273,"description":"(+ 3.10 Pfand) je Ka. 20 x 0,5-l-Fl.","price":9.99,"oldPrice":null,"referencePrice":1.00,"requiresLoyalityMembership":false,"leafletFlightId":244003,"validityDates":[{"from":"2025-08-27T22:00:00Z","to":"2025-09-03T18:00:00Z"}],"externalId":null,"externalTrackingUrls":["https://ad.doubleclick.net/ddm/trackimp/N1106503.2671411MARKGURUDE/B26240841.309225179;dc_pre=CIaFzIm8jI0DFZ2L_Qcd5l8Plg;dc_trk_aid=502197466;dc_trk_cid=154816736;ord={{mg-timestamp}};dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};ltd=;dc_tdv=1"],"externalTrackings":[{"type":"click","url":"https://ad.doubleclick.net/ddm/trackimp/N1106503.2671411MARKGURUDE/B26240841.309225179;dc_pre=CIaFzIm8jI0DFZ2L_Qcd5l8Plg;dc_trk_aid=502197466;dc_trk_cid=154816736;ord={{mg-timestamp}};dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};ltd=;dc_tdv=1","ugpctfet":null}],"externalUrl":null,"trackFlightImpression":null,"type":"standard","industries":[{"id":1009,"name":"Supermarkt"}],"product":{"id":37383,"name":"Pils","description":"~twxde~ ~twxwde~ ~twxnw~ ~twxsal~"},"unit":{"shortName":"l","id":1,"name":"Liter"},"images":{"count":1,"isCdnSuccessfullyPurged":null,"metadata":[{"aspectRatio":1.1842105263157894,"width":1.0,"height":0.8444444444444444}]},"imageType":"offer"}]}
Bei "je Ka. 20 x 0,5-l-Fl." bin ich eben erstmal auf 'Ka' gegangen, Du müsstest schauen, ob andere Geschäfte das vielleicht anders schreiben / die 20 aussagekräftiger wäre oder ähnliches.

Edit, Du müsstest die Leerzeichen noch auf Deine Config anpassen :)
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

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