BitCoin sotto controllo con Home Assistant
di Luigi Duchi
17 Gennaio 2021
Home Assistant
Sempre più spesso si sente parlare criptovalute e sicuramente nonostante il panorama di queste monete virtuali sia molto ampio a portarne la bandiera è decisamente il bitcoin.
Il bitcoin è una criptovaluta e un sistema di pagamento mondiale creato nel 2009 da un anonimo inventore (o gruppo di inventori), noto con lo pseudonimo di Satoshi Nakamoto.
Dagli esperti di finanza il Bitcoin non viene classificato come una moneta, ma come un mezzo di scambio altamente volatile.
A differenza della maggior parte delle valute tradizionali, il Bitcoin non fa uso di un ente centrale né di meccanismi finanziari sofisticati, il valore è determinato unicamente dalla leva domanda e offerta. Esso utilizza un database distribuito tra i nodi della rete che tengono traccia delle transazioni, ma sfrutta la crittografia per gestire gli aspetti funzionali, come la generazione di nuova moneta e l'attribuzione della proprietà dei bitcoin.
La rete Bitcoin consente il possesso e il trasferimento anonimo delle monete; i dati necessari a utilizzare i propri bitcoin possono essere salvati su uno o più personal computer o dispositivi elettronici quali smartphone, sotto forma di "portafoglio" digitale, o mantenuti presso terze parti che svolgono funzioni simili a una banca.
Il wallet bitcoin ha un indirizzo identificato da un codice alfanumerico che possiede tra i 25 e i 36 caratteri tra numeri e lettere; è l'unico dato da comunicare per ricevere un pagamento che godrà di un certo grado di anonimato. (fonte Wikipedia)
La volatilità di queste monete virtuali rende molto difficile un eventuale investimento perché, al contrario degli investimenti in borsa, i bitcoin hanno valori molto ballerini, riuscendo a perdere o guadagnare ingenti quantità di valore in pochissimi secondi.
Esistono tantissime piattaforme che permettono acquisto e gestione degli stessi, molte di queste piattaforme permettono anche l'acquisto o la vendita automatica.
Non molto tempo fa mi sono imbattuto in un custom component molto interessante per gestire il tutto tramite Home Assistant.
Indubbiamente comodo avere tutto dentro il nostro Hub Domotico.
In realtà esiste un componente ufficiale per monitorare il valore dei bitcoin ma esso da molto tempo a questa parte pare non funzionare a dovere. Inoltre funziona solamente con i bit coin e non permette di monitorare altre tipologie di criptovalute.
Questo sopra è il componente ufficiale.
nel ormai noto store Hacs è disponibile invece un custom component chiamato cryptoinfo
QUI potrete trovare la pagina github ufficiale del custom component.
Una volta installato il componente customn(che vedete qua sotto nella foto) potrete creare dei veri e propri sensori per tantissime tipologie di criptovalute.
Vediamo un esempio di come creare il sensore.
sensor:
- platform: cryptoinfo
cryptocurrency_name: "bitcoin"
currency_name: "eur"
multiplier: 1
update_frequency: 15
come specificato più volte non sarà necessario scrivere sensor: se questo sensore lo inserirete in sensor.yaml(cosa che vi consiglio caldamente)
per quanto riguarda la voce cryptocurrency_name: sarà necessario specificare la tipologia di criptovaluta da monitorare, di default verrà controllato il bitcoin.
QUI potrete trovare una lista delle criptovalute monitorabili.
(non vi spaventate per il file pieno di numeri, dopo aver perso 3 diottrie riuscirete a trovare la moneta che volete seguire ehheehehhehe).
Alla voce currency_name: potrete impostare la valuta con la quale visualizzare il valore della criptomoneta. Di default è preimpostato il dollaro americano, ma potrete scegliere anche l'euro scrivendo come da esempio.
Invece multiplier: serve per moltiplicare il valore ricavato dal sensore per il numero che andrete ad indicare, di base è 1 e non vedo necessità di andare a cambiare questo valore.
infine update_frequency: andrà a modificare l'intervallo di aggiornamento del sensore, peimpostato sarà ogni 60 minuti, io lo ho impostato ad un minuto anche se mi piacerebbe riuscire a farlo aggiornare più velocemente (pare non sia possibile).
Ovviamente potrete creare quanti sensori volete, relativi ad altre criptovalute.
ma come tenere sotto controllo il valore bitcoin e magari farci avvertire in caso superino o vadano sotto un determinato valore impostato?
Per prima cosa creeremo 2 input_number, uno dedicato al valore massimo e uno al valore minimo.
Con il primo potrete settare il valore massimo prima che arrivi una notifica. Ad esempio se imposteremo 30000 scateneremo l'evento appena il sensore bitcoin supererà quel valore. Molto utile nel caso decidiamo di vendere bitcoin.
Il secondo input_number imposterà invece un valore minimo sotto il quale si verificherà un evento. Ad esempio, se il secondo input lo imposto a 25000, una volta che il valore scenderà sotto quella soglia scateneremo un evento, molto utile in caso decidessimo di vendere.
Questi input_number ovviamente non funzionano da soli e necessitano di alcune automazioni per fare quello che vi ho descritto poco sopra.
Nel mio caso l'evento scatenato sarà l'inoltro di un messaggio Telegram.
Quindi questa guida suppone che le notifiche su Telegram siano abilitate. Se vi foste persi questo passaggio vi rimando all'ottima guida scritta da Antonio Longo che mi ha aiutato anche con il progetto discusso in questa guida.
La potrete trovare QUI
Per semplificare il tutto potrete utilizzare questo package dove sono inclusi i 2 input_number e le automazioni necessarie.
Vi servirà ovviamente anche il sensore bitcoin creato con il custom component.
Inoltre dovrete inserire un immagine da usare nella notifica di telegram proprio come avete visto nella guida di antonio.
ecco il package.
input_number:
valore_massimo_bitcoin:
name: Valore Massimo Bitcoin
min: 1
max: 100000
step: 1
mode: box
valore_minimo_bitcoin:
name: Valore Minimo Bitcoin
min: 1
max: 100000
step: 1
mode: box
sensor:
- platform: template
sensors:
valore_max:
friendly_name: "Sensore Valore Max"
value_template: "{{ states('input_number.valore_massimo_bitcoin') }}"
- platform: template
sensors:
valore_min:
friendly_name: "Sensore Valore Min"
value_template: "{{ states('input_number.valore_minimo_bitcoin') }}"
automation:
- alias: Il bitcoin è sceso troppo in basso rispetto al valore minimo
initial_state: true
trigger:
platform: template
value_template: '{{ states(''sensor.cryptoinfo_bitcoin_eur'')| float < states(''sensor.valore_min'')| float }}'
action:
service: notify.telegram
data:
message: 'I Bitcoin sono sotto la soglia impostata potresti acquistare'
data:
photo:
- file: /config/photo/bitcoindown.jpg
caption: 'I Bitcoin sono sotto la soglia impostata potresti acquistare'
- alias: Il bitcoin sta guadagnando
initial_state: true
trigger:
platform: template
value_template: '{{ states(''sensor.cryptoinfo_bitcoin_eur'')| float > states(''sensor.valore_max'')| float }}'
action:
service: notify.telegram
data:
message: 'I Bitcoin sono sopra la soglia impostata forse potresti vendere'
data:
photo:
- file: /config/photo/bitcoinup.jpg
caption: 'I Bitcoin sono sopra la soglia impostata forse potresti vendere'
ed ecco un esempio delle notifiche telegram relative a questo progetto.
Vi lascio al video di fine articolo e vi ricordo (se ce ne fosse bisogno) che lo staff si solleva da ogni responsabilità per eventuali perdite di denaro derivate dall'acquisto di criptovalute.a
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.