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?
- Innanzitutto perché, avendo questa possibilità su Home Assistant, qualsiasi componente della famiglia potrà impostare il prodotto da seguire ed il prezzo desiderato;
- non avremo bisogno di creare account e soprattutto di consentire ad aziende esterne di vedere cosa vogliamo comprare e a quale prezzo;
- 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;
- 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 }}"

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 277 volte – 1,46 KBal 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.
Bravo ottimo sicuramente molto utile, alla prossima live ciao
Grazie e alla prossima!