Vai al contenuto
Home » Package tracciamento dei prezzi su Amazon

Package tracciamento dei prezzi su Amazon

Package per il tracciamento dei prezzi su Amazon

Il problema

Tenere traccia del prezzo di un prodotto su Amazon e ricevere una notifica quando scende sotto una certa soglia.

Le attuali soluzioni

Al momento questa operazione è sicuramente possibile con strumenti avanzati come Keepa che permettono di ricevere notifiche ed e-mail al raggiungimento delle soglie impostate (e tanto altro).

Il plus

Perché quindi realizzare un package che faccia il “banale” tracciamento del prezzo quando con Keepa è già possibile?

  1. Innanzitutto perché, avendo questa possibilità su Home Assistant, qualsiasi componente della famiglia potrà impostare il prodotto da seguire ed il prezzo desiderato;
  2. non avremo bisogno di creare account e soprattutto di consentire ad aziende esterne di vedere cosa vogliamo comprare e a quale prezzo;
  3. potremo ricevere la notifica di “accattatevillo” su tutti gli smartphone che vogliamo e, con qualche piccola modifica, su altri dispositivi come ad esempio gli assistenti vocali come Alexa o Google Home;
  4. impareremo qualcosa che può tornarci utile in progetti più ampi.

I requisiti

Il package che andremo ad installare ha come unico requisito l’estensione HACS chiamata Multiscrape.

    La soluzione

    Il piccolo package che ho creato, dopo una breve configurazione, esegue una chiamata alla pagina del prodotto Amazon scelto (impostando l’URL in un input testuale) ogni 3600 secondi (ogni ora) e recupera da essa il titolo, l’immagine principale e soprattutto il prezzo, memorizzandoli in appositi sensori.

    Ecco la parte dedicata alla configurazione:

          ########################
          # IMPOSTAZIONI PACKAGE #
          ########################
    
          setting:
            Device per notifica push 1: &push1 mobile_app_sax
            #Device per notifica push 2: &push2 mobile_app_2
            #Device per notifica push 3: &push3 mobile_app_3
            #Device per notifica push 4: &push4 mobile_app_4
            #Device per notifica push 5: &push5 mobile_app_5
    
    ####################
    # NOTIFICHE GRUPPO #
    ####################
    
    notify:
      - name: Amazon Gruppo Notifiche App
        platform: group
        services:
          - service: *push1
          #- service: *push2
          #- service: *push3
          #- service: *push4
          #- service: *push5

    Dove basta sostituire mobile_app_sax con il nome dell’entità del vostro smartphone dove riceverete le notifiche (e dove è ovviamente installata l’app companion) e togliere il commento (il #) per ogni altro dispositivo a cui volete inviare la notifica.

    Ecco invece la parte che si occupa di recuperare i dati da Amazon:

    multiscrape:
      - name: Prodotto Amazon
        resource_template: "{{ states.input_text.prod_amazon_url.state }}"
        scan_interval: 3600
        button:
          - unique_id: prod_amazon_refresh_button
        sensor:
          - unique_id: prod_amazon_price
            name: Prezzo attuale
            select: ".a-offscreen"
            device_class: monetary
            icon: mdi:chart-bar
            value_template: '{{ (value.replace(",", ".").replace("€", "")) | float(2) }}'
            unit_of_measurement: "€"
          - unique_id: prod_amazon_title
            name: Titolo prodotto
            select: "#productTitle"
          - unique_id: prod_amazon_img
            name: Immagine
            select: "#landingImage"
            attribute: src

    Infine ho realizzato una piccola automazione che invia la relativa notifica a tutti i dispositivi configurati non appena il prezzo scende al di sotto di quello impostato.

    automation:
      - alias: Notifica prezzo di acquisto raggiunto
        trigger:
          platform: numeric_state
          entity_id: input_number.prod_amazon_price_buy
          above: sensor.prod_amazon_price
        action:
          service: notify.amazon_gruppo_notifiche_app
          data:
            title: "💰 E' il momento di acquistare!"
            message: >
              Prezzo richiesto: <b>{{ states.input_number.prod_amazon_price_buy.state }} €</b><br />
              Prezzo attuale: <b>{{ states.sensor.prod_amazon_price.state }} €</b>
            data:
              clickAction: "{{ states.input_text.prod_amazon_url.state }}"
    Notifica per acquisto su Amazon

    Conclusioni

    Il package è sicuramente migliorabile. E’ solo una prima versione, nonché il primo che ho realizzato, ma credo e spero che possa tornare utile a qualcuno.

    In futuro si potrebbe pensare di aumentare il numero di prodotti da seguire, migliorare lo scraping o fornire più informazioni come ad esempio la differenza di prezzo o percentuale.

    Siate quindi clementi con il sottoscritto. Vi assicuro che non è stato facile per me crearlo e avere il coraggio di condividerlo con voi.

    Supporto reciproco

    La realizzazione di questo articolo ha richiesto tempo, studio ed impegno.

    Vi chiedo quindi mettere una mano sul cuore e l’altra sul portafogli per ricompensare il mio sforzo con un contributo libero:

    Grazie.

    Il download ed un piccolo extra

    Il package completo è scaricabile di seguito:

    Download “Package tracciamento dei prezzi Amazon”

    Amazon_product_track_1_0.zip – Scaricato 204 volte – 1,46 KB

    al suo interno, oltre a trovare il file amazon_product_track_1_0.yaml da caricare nella vostra cartella packages, ne troverete anche un altro chiamato ui.yml.

    Il codice contenuto in quest’ultimo, vi consente di realizzare una piccola scheda nella vostra plancia di Lovelace che vi mostri l’immagine del prodotto, il titolo, il prezzo attuale e che vi permette di impostare il link del prodotto o il prezzo desiderato.

    Infine è presente un pulsante, premendo il quale, forzerete l’aggiornamento dei dati da Amazon.

    2 commenti su “Package tracciamento dei prezzi su Amazon”

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *