<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.3">Jekyll</generator><link href="https://red-blue.it/feed.xml" rel="self" type="application/atom+xml" /><link href="https://red-blue.it/" rel="alternate" type="text/html" /><updated>2026-06-08T16:09:13+00:00</updated><id>https://red-blue.it/feed.xml</id><title type="html">RedBlue’s Blog</title><subtitle>Another technology addicted&apos;s personal page</subtitle><author><name>RedBlue</name></author><entry><title type="html">Installazione di Docker e Nginx Proxy Manager su Proxmox</title><link href="https://red-blue.it/virtualizzazione/2026/05/08/installazione-di-docker-e-mginx-proxy-manager-su-proxmox.html" rel="alternate" type="text/html" title="Installazione di Docker e Nginx Proxy Manager su Proxmox" /><published>2026-05-08T08:55:19+00:00</published><updated>2026-05-08T08:55:19+00:00</updated><id>https://red-blue.it/virtualizzazione/2026/05/08/installazione-di-docker-e-mginx-proxy-manager-su-proxmox</id><content type="html" xml:base="https://red-blue.it/virtualizzazione/2026/05/08/installazione-di-docker-e-mginx-proxy-manager-su-proxmox.html">&lt;p&gt;Oggi parliamo di installazione di &lt;strong&gt;Docker&lt;/strong&gt; su Proxmox, ma non solo, vedremo anche come usare &lt;strong&gt;Portainer&lt;/strong&gt; e &lt;strong&gt;Nginx Proxy Manager&lt;/strong&gt;! Let’s go!&lt;/p&gt;

&lt;p&gt;Nel &lt;a href=&quot;https://red-blue.it/domotica/2026/05/02/installare-home-assistant-os-su-proxmox.html&quot; target=&quot;_blank&quot;&gt;precedente post&lt;/a&gt; abbiamo visto la creazione di una VM per HA OS. La differenza tra una Virtual Machine e un Container è sostanziale: le VM emulano un intero sistema operativo, mentre i container condividono il kernel del sistema operativo host. Questo significa che i container sono molto più leggeri e efficienti in termini di risorse.&lt;/p&gt;

&lt;h3 id=&quot;installazione-di-docker-e-portainer&quot;&gt;Installazione di Docker e Portainer&lt;/h3&gt;

&lt;p&gt;Per semplificare l’installazione di Docker e Portainer, ho utilizzato uno script che ho trovato in giro per il web, da &lt;a href=&quot;https://community-scripts.org/scripts/docker&quot; target=&quot;_blank&quot;&gt;Proxmox VE Scripts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Basta copiare il comando e incollarlo nella shell del nostro server Proxmox. Lo script farà tutto il lavoro sporco per noi!&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Una volta terminata l’installazione, possiamo accedere a Portainer tramite browser, digitando l’indirizzo IP del nostro server Proxmox seguito dalla porta 9443 (es. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://indirizzo:9443&lt;/code&gt;).&lt;/p&gt;

&lt;h3 id=&quot;installazione-di-nginx-proxy-manager&quot;&gt;Installazione di Nginx Proxy Manager&lt;/h3&gt;

&lt;p&gt;Nginx Proxy Manager è uno strumento fantastico per gestire i reverse proxy. Ci permette di esporre i nostri servizi in modo semplice e sicuro, gestendo certificati SSL e configurazioni complesse tramite un’interfaccia web intuitiva.&lt;/p&gt;

&lt;p&gt;Anche in questo caso, ho utilizzato un altro script da &lt;a href=&quot;https://community-scripts.org/scripts/nginxproxymanager&quot; target=&quot;_blank&quot;&gt;Proxmox VE Scripts&lt;/a&gt; per semplificare l’installazione.&lt;/p&gt;

&lt;p&gt;Dopo aver incollato il comando nella shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/nginxproxymanager.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Seguiamo le istruzioni a schermo. Una volta terminata l’installazione, possiamo accedere a Nginx Proxy Manager tramite browser, digitando l’indirizzo IP del nostro server Proxmox seguito dalla porta 81 (es. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://indirizzo:81&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Le credenziali di default sono &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;admin@example.com&lt;/code&gt; e &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;changeme&lt;/code&gt;. Ovviamente, vanno cambiate quanto prima!&lt;/p&gt;

&lt;p&gt;Per la configurazione di Nginx Proxy Manager, la vedremo più avanti, dopo aver installato qualche altro servizio e avendo la necessità di esporre tutto su internet.&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="Virtualizzazione" /><category term="Proxmox" /><category term="Docker" /><category term="Portainer" /><category term="Nginx Proxy Manager" /><category term="LXC" /><category term="Virtualizzazione Server" /><category term="tutorial" /><summary type="html">Oggi parliamo di installazione di Docker su Proxmox, ma non solo, vedremo anche come usare Portainer e Nginx Proxy Manager! Let’s go!</summary></entry><entry><title type="html">Installare Home Assistant OS su Proxmox</title><link href="https://red-blue.it/domotica/2026/05/02/installare-home-assistant-os-su-proxmox.html" rel="alternate" type="text/html" title="Installare Home Assistant OS su Proxmox" /><published>2026-05-02T07:19:27+00:00</published><updated>2026-05-02T07:19:27+00:00</updated><id>https://red-blue.it/domotica/2026/05/02/installare-home-assistant-os-su-proxmox</id><content type="html" xml:base="https://red-blue.it/domotica/2026/05/02/installare-home-assistant-os-su-proxmox.html">&lt;p&gt;Installare Home Assistant OS su Proxmox è davvero semplice. Questo breve tutorial è il seguito diretto del precedente post sull’&lt;a href=&quot;https://red-blue.it/domotica/2026/04/29/proxmox-la-mia-svolta-open-source-per-la-virtualizzazione.html&quot; target=&quot;_blank&quot;&gt;installazione di Proxmox&lt;/a&gt;, vedremo come creare una VM con Home Assistant OS.&lt;/p&gt;

&lt;h3 id=&quot;download-del-necessario&quot;&gt;Download del necessario&lt;/h3&gt;

&lt;p&gt;Per prima cosa, scarichiamo, direttamente all’interno della nostra Proxmox, l’immagine giusta da qui: &lt;a href=&quot;https://www.home-assistant.io/installation/alternative/&quot; target=&quot;_blank&quot;&gt;https://www.home-assistant.io/installation/alternative/&lt;/a&gt;, scegliendo l’opzione &lt;strong&gt;KVM/Proxmox&lt;/strong&gt;. In realtà, dal terminale di Proxmox, basta lanciare un:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wget https://github.com/home-assistant/operating-system/releases/download/17.2/haos_ova-17.2.qcow2.xz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;E poi, dopo che il file è stato scaricato:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;unxz haos_ova-17.2.qcow2.xz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ovviamente, il nome del file è quello attualmente scaricabile (al momento della scrittura di questo tutorial), adattatelo al vostro caso.&lt;/p&gt;

&lt;h3 id=&quot;configurazione-della-vm-per-home-assistant&quot;&gt;Configurazione della VM per Home Assistant&lt;/h3&gt;

&lt;p&gt;Colleghiamoci alla Proxmox (normalmente &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://indirizzo:8006&lt;/code&gt;), click destro, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Create VM&lt;/code&gt;, inseriamo &lt;strong&gt;nome&lt;/strong&gt; e &lt;strong&gt;id&lt;/strong&gt; (va bene quello proposto di default), poi nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OS&lt;/code&gt; selezioniamo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Do not use any media&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;System&lt;/code&gt;, invece:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Machine: q35
BIOS: OVMF
EFI Storege: local-lvm
Pre-Enroll Keys NO (togliere il check)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Eliminiamo il disco proposto nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Disks&lt;/code&gt;, mentre nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CPU&lt;/code&gt; scegliamo 2 cores, e nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Memory&lt;/code&gt; indichiamo 4 GB di RAM (valore &lt;strong&gt;4096&lt;/strong&gt;). Nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Network&lt;/code&gt; lasciamo infine tutto com’è. Andiamo infine su &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Confirm&lt;/code&gt; e clicchiamo &lt;strong&gt;Finish&lt;/strong&gt;, abbiamo la nostra VM!!&lt;/p&gt;

&lt;p&gt;Ora viene il bello, in realtà il file che abbiamo scaricato prima non è altro che il &lt;strong&gt;disco&lt;/strong&gt; che abbiamo eliminato in fase di creazione della VM, già pronto all’uso!&lt;/p&gt;

&lt;p&gt;Quindi apriamo la &lt;strong&gt;shell&lt;/strong&gt; della Proxmox (tasto dedicato in alto destra) e digitiamo:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;qm importdisk &amp;lt;ID VM&amp;gt; &amp;lt;NOME FILE&amp;gt; &amp;lt;EFI&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Dove &lt;strong&gt;ID VM&lt;/strong&gt; è l’id della VM appena creata, &lt;strong&gt;NOME FILE&lt;/strong&gt; il nome del file scaricato, &lt;strong&gt;EFI&lt;/strong&gt; è &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;local-lvm&lt;/code&gt; nell’esempio fatto.&lt;/p&gt;

&lt;p&gt;Abbiamo quasi terminato tranquilli!&lt;/p&gt;

&lt;p&gt;Andiamo sulle impostazioni della VM (selezioniamo a sinistra), clicchiamo sulla scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Hardware&lt;/code&gt;, andiamo su &lt;strong&gt;Unused Disk 0&lt;/strong&gt; (il file importato con qm al passo precedente), clicchiamo &lt;strong&gt;Edit&lt;/strong&gt; in alto, nella scheda che si apre selezioniamo &lt;strong&gt;Discard&lt;/strong&gt; se abbiamo un disco fisico SSD, e clicchiamo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Add&lt;/code&gt;, poi, nella scheda &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Options&lt;/code&gt; della VM, in &lt;strong&gt;Boot order&lt;/strong&gt;, selezioniamo solo il disco appena aggiunto (di solito vanno deselezionati l’avvio da CD/DVD e da rete, e abilitato quello di Scsi0).&lt;/p&gt;

&lt;p&gt;Finito! &lt;strong&gt;Start&lt;/strong&gt; in alto a destra, e nella console della VM apparirà l’indirizzo a cui connettersi ad Home Assistant!!&lt;/p&gt;

&lt;p&gt;Il prossimo passo sarà installare Docker su Proxmox!&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="Domotica" /><category term="Proxmox" /><category term="Virtualizzazione" /><category term="Open Source" /><category term="Server" /><category term="Home Assistant" /><category term="tutorial" /><summary type="html">Installare Home Assistant OS su Proxmox è davvero semplice. Questo breve tutorial è il seguito diretto del precedente post sull’installazione di Proxmox, vedremo come creare una VM con Home Assistant OS.</summary></entry><entry><title type="html">Proxmox: La mia svolta Open Source per la virtualizzazione</title><link href="https://red-blue.it/domotica/2026/04/29/proxmox-la-mia-svolta-open-source-per-la-virtualizzazione.html" rel="alternate" type="text/html" title="Proxmox: La mia svolta Open Source per la virtualizzazione" /><published>2026-04-29T05:49:47+00:00</published><updated>2026-04-29T05:49:47+00:00</updated><id>https://red-blue.it/domotica/2026/04/29/proxmox-la-mia-svolta-open-source-per-la-virtualizzazione</id><content type="html" xml:base="https://red-blue.it/domotica/2026/04/29/proxmox-la-mia-svolta-open-source-per-la-virtualizzazione.html">&lt;p&gt;Quante volte mi sono trovato a corto di risorse sul mio serverino casalingo? Troppe! Avevo bisogno di far girare più servizi, testare nuove configurazioni, ma senza rischiare di mandare all’aria tutto il sistema. La virtualizzazione è stata la risposta, e Proxmox, beh, Proxmox è stata la svolta. Non avevo alcuna intenzione di acquistare soluzioni commerciali, quindi cercavo un’alternativa solida e, soprattutto, open source. E devo dire, non mi sono pentito della scelta.&lt;/p&gt;

&lt;h2 id=&quot;proxmox-un-mondo-di-virtualizzazione-open-source&quot;&gt;Proxmox: Un Mondo di Virtualizzazione Open Source&lt;/h2&gt;

&lt;p&gt;Proxmox Virtual Environment (VE) è una piattaforma di virtualizzazione open source basata su Debian. In parole povere, ti permette di creare e gestire macchine virtuali (VM) e container LXC su un singolo server fisico. Immagina di avere più computer, ognuno con il suo sistema operativo e le sue applicazioni, che girano tutti su un’unica macchina! Fantastico, no?&lt;/p&gt;

&lt;p&gt;L’interfaccia web è intuitiva, anche per uno come me che non si definirebbe un guru dei server. Certo, all’inizio ho avuto qualche difficoltà, ma la community è super disponibile e la documentazione è ben fatta. E poi, diciamocelo, smanettare è parte del divertimento!&lt;/p&gt;

&lt;h2 id=&quot;installazione-di-proxmox-la-mia-avventura-con-qualche-intoppo&quot;&gt;Installazione di Proxmox: La Mia Avventura (con qualche intoppo)&lt;/h2&gt;

&lt;p&gt;L’installazione di Proxmox è abbastanza semplice, ma ci sono alcuni passaggi cruciali che, se sbagliati, possono farti perdere un sacco di tempo. Ci sono passato anch’io, fidati!&lt;/p&gt;

&lt;p&gt;Ecco i passaggi che ho seguito:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Download dell’immagine ISO:&lt;/strong&gt; basta andare sul sito ufficiale di Proxmox e scaricare l’immagine ISO.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Creazione della chiavetta USB avviabile:&lt;/strong&gt; ho usato Rufus (un programmino gratuito) per creare una chiavetta USB avviabile con l’immagine ISO scaricata.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Configurazione del BIOS:&lt;/strong&gt; prima di avviare l’installazione, sono entrato nel BIOS del mio server e ho attivato la virtualizzazione (VT-x/AMD-V). Senza questo, Proxmox non può funzionare correttamente.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Installazione vera e propria:&lt;/strong&gt; ho avviato il server dalla chiavetta USB e ho seguito le istruzioni a schermo. Semplice no?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Dopo aver impostato la password di root e l’indirizzo email (utile per le notifiche), sono passato alla configurazione della rete. Ho impostato un indirizzo IP statico per il mio server Proxmox, in modo da poterlo raggiungere sempre allo stesso indirizzo. Ho anche modificato il nome host in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pve-server01.miodominio.interno&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;L’installazione è andata a buon fine e, dopo il riavvio, ho potuto accedere all’interfaccia web di Proxmox tramite browser all’indirizzo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://indirizzo_ip:8006&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;repository-di-proxmox-aggiornamenti-senza-troppi-compromessi&quot;&gt;Repository di Proxmox: Aggiornamenti Senza (Troppi) Compromessi&lt;/h2&gt;

&lt;p&gt;Una volta entrato nell’interfaccia web, la prima cosa che ho notato è stato un avviso riguardante la sottoscrizione Enterprise. Proxmox offre una versione gratuita e una a pagamento. La versione gratuita ha tutte le funzionalità di base, ma non ha accesso ai repository di aggiornamenti Enterprise, che contengono gli aggiornamenti più recenti e stabili.&lt;/p&gt;

&lt;p&gt;Questo significa che, senza una sottoscrizione, potresti non essere in grado di scaricare gli ultimi aggiornamenti di sicurezza.&lt;/p&gt;

&lt;p&gt;Per fortuna, esiste una soluzione alternativa: utilizzare il repository “no-subscription”. Questo repository contiene gli aggiornamenti di sicurezza e alcuni aggiornamenti minori. Non è l’ideale, ma è meglio di niente.&lt;/p&gt;

&lt;p&gt;Per abilitare il repository “no-subscription”, devi modificare il file &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/apt/sources.list.d/proxmox.list&lt;/code&gt; e commentare (aggiungendo un &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#&lt;/code&gt; all’inizio della riga) i repository Enterprise e decommentare quelli no-subscription.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#deb https://enterprise.proxmox.com/debian/pve bookworm enterprise
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

#deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise
deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Dopo aver modificato il file, devi aggiornare la lista dei pacchetti con il comando &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt update&lt;/code&gt; e poi aggiornare il sistema con &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt upgrade&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;proxmox-vs-vmware-la-scelta-giusta-per-me&quot;&gt;Proxmox vs VMware: La Scelta Giusta per Me&lt;/h2&gt;

&lt;p&gt;Proxmox offre le stesse funzionalità di base di VMware, come la creazione e la gestione di macchine virtuali e container, la migrazione live, lo storage condiviso e il clustering. E, cosa ancora più importante, è open source! Questo significa che posso personalizzarlo, modificarlo e utilizzarlo come voglio, senza dovermi preoccupare di licenze o costi nascosti.&lt;/p&gt;

&lt;h2 id=&quot;prossimi-passi-virtualizzazione-di-home-assistant-e-container-con-docker&quot;&gt;Prossimi Passi: Virtualizzazione di Home Assistant e Container con Docker&lt;/h2&gt;

&lt;p&gt;Il mio prossimo obiettivo è quello di creare una macchina virtuale con Home Assistant e un paio di container con Docker per NextCloud e qualche progettino personale, e uno per Nginx Proxy Manager. Stay tuned per i prossimi articoli!&lt;/p&gt;

&lt;p&gt;Alla prossima!&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="Domotica" /><category term="Proxmox" /><category term="Virtualizzazione" /><category term="Open Source" /><category term="Server" /><summary type="html">Quante volte mi sono trovato a corto di risorse sul mio serverino casalingo? Troppe! Avevo bisogno di far girare più servizi, testare nuove configurazioni, ma senza rischiare di mandare all’aria tutto il sistema. La virtualizzazione è stata la risposta, e Proxmox, beh, Proxmox è stata la svolta. Non avevo alcuna intenzione di acquistare soluzioni commerciali, quindi cercavo un’alternativa solida e, soprattutto, open source. E devo dire, non mi sono pentito della scelta.</summary></entry><entry><title type="html">Aggiornamento workflow pubblicazione automatica su Github Pages</title><link href="https://red-blue.it/guide/ruby/jekyll/blog/github/2025/11/05/aggiornamento-workflow-pubblicazione-automatica-su-github-pages.html" rel="alternate" type="text/html" title="Aggiornamento workflow pubblicazione automatica su Github Pages" /><published>2025-11-05T00:00:00+00:00</published><updated>2025-11-05T00:00:00+00:00</updated><id>https://red-blue.it/guide/ruby/jekyll/blog/github/2025/11/05/aggiornamento-workflow-pubblicazione-automatica-su-github-pages</id><content type="html" xml:base="https://red-blue.it/guide/ruby/jekyll/blog/github/2025/11/05/aggiornamento-workflow-pubblicazione-automatica-su-github-pages.html">&lt;p&gt;Riprendo l’argomento relativo alla &lt;a href=&quot;https://red-blue.it/guide/blog/ruby/jekyll/2024/08/24/schedulare-la-pubblicazione-dei-post-su-github-pages-con-jekyll.html&quot; target=&quot;_blank&quot;&gt;pubblicazione automatica su Github Pages&lt;/a&gt;, visto in precedenza, in quanto recentemente il processo era andato in crash e non riuscivo in alcun modo a ripristinarlo.&lt;/p&gt;

&lt;p&gt;Cercando in rete, pare che il problema fosse la &lt;strong&gt;action&lt;/strong&gt; che usavo, che presenta delle incompatibilità con la gestione dei certificati SSL delle versioni più recenti delle librerie relative appunto ad SSL.&lt;/p&gt;

&lt;p&gt;Fortunatamente, &lt;strong&gt;Github&lt;/strong&gt; fornisce una propria action (che ne mio caso è anche più veloce a deployare il sito), quindi è bastato riscrivere il file relativo al workflow:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Deploy&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Jekyll&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gh&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pages&lt;/span&gt;

&lt;span class=&quot;ss&quot;&gt;on:
  schedule:
    &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;cron: &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;0 12 * * *&apos;&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# ogni giorno a mezzogiorno UTC&lt;/span&gt;
  &lt;span class=&quot;ss&quot;&gt;push:
    branches: &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;main&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
  &lt;span class=&quot;ss&quot;&gt;workflow_dispatch:

permissions:
  contents: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;   &lt;span class=&quot;c1&quot;&gt;# serve per poter fare push su gh-pages&lt;/span&gt;
  &lt;span class=&quot;ss&quot;&gt;pages: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;token: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;

&lt;span class=&quot;ss&quot;&gt;jobs:
  build:
    &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;runs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;on: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ubuntu&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;latest&lt;/span&gt;
    &lt;span class=&quot;ss&quot;&gt;steps:
      &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Checkout&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;repository&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;uses: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actions&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;checkout&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@v4&lt;/span&gt;

      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Setup&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Ruby&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;uses: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ruby&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ruby&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@v1&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;with:
          &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ruby&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;version: &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;3.2&apos;&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;bundler&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;cache: &lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;true&lt;/span&gt;

      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Install&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dependencies&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;run: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bundle&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;install&lt;/span&gt;

      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Build&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;site&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Jekyll&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;run: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bundle&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;jekyll&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;build&lt;/span&gt;

      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Add&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;CNAME&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;file&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;run: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;nomedominio.ext&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_site&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;CNAME&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# necessario se avete un custom domain!!&lt;/span&gt;

      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Deploy&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gh&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pages&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;branch&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;uses: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;peaceiris&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actions&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gh&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pages&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@v4&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;with:
          github_token: &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$&lt;/span&gt;
          &lt;span class=&quot;ss&quot;&gt;publish_branch: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gh&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pages&lt;/span&gt;
          &lt;span class=&quot;ss&quot;&gt;publish_dir: &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_site&lt;/span&gt;
          &lt;span class=&quot;ss&quot;&gt;commit_message: &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Deploy site via GitHub Actions&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Facile no? Lo script è estremamente simile al precedente, ed inoltre ho aggiunto qualche commento qua e là..&lt;/p&gt;

&lt;p&gt;Stay tuned..&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="guide" /><category term="ruby" /><category term="jekyll" /><category term="blog" /><category term="github" /><summary type="html">Riprendo l’argomento relativo alla pubblicazione automatica su Github Pages, visto in precedenza, in quanto recentemente il processo era andato in crash e non riuscivo in alcun modo a ripristinarlo.</summary></entry><entry><title type="html">Domotizzare le luci di casa con Sonoff Mini R4 Extreme e Dual R3</title><link href="https://red-blue.it/recensioni/domotica/sonoff/2025/11/03/domotizzare-le-luci-di-casa-con-sonoff-mini-r4-extreme-e-dual-r3.html" rel="alternate" type="text/html" title="Domotizzare le luci di casa con Sonoff Mini R4 Extreme e Dual R3" /><published>2025-11-03T00:00:00+00:00</published><updated>2025-11-03T00:00:00+00:00</updated><id>https://red-blue.it/recensioni/domotica/sonoff/2025/11/03/domotizzare-le-luci-di-casa-con-sonoff-mini-r4-extreme-e-dual-r3</id><content type="html" xml:base="https://red-blue.it/recensioni/domotica/sonoff/2025/11/03/domotizzare-le-luci-di-casa-con-sonoff-mini-r4-extreme-e-dual-r3.html">&lt;p&gt;Nell’ambito del mio progetto di domotica casalinga, non potevano mancare le luci. Per questa parte, ho deciso di ricorrere a due dispositivi in particolare: il &lt;a href=&quot;https://amzn.to/4qC5Urw&quot; target=&quot;_blank&quot;&gt;Sonoff Mini R4 Extreme&lt;/a&gt; e il &lt;a href=&quot;https://amzn.to/4oSxcsf&quot; target=&quot;_blank&quot;&gt;Sonoff Dual R3&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Nel primo caso, il &lt;a href=&quot;https://amzn.to/4qC5Urw&quot; target=&quot;_blank&quot;&gt;Sonoff Mini R4 Extreme&lt;/a&gt; è uno switch a due vie capace di pilotare tanto un &lt;strong&gt;interruttore&lt;/strong&gt;, ossia il classico caso in cui abbiamo da accendere e spegnere una lampadina da un unico punto, quanto un &lt;strong&gt;deviatore&lt;/strong&gt;, ovvero un dispositivo usato in tutti quei casi in cui abbiamo la possibilità di accendere una lampada da più punti.&lt;/p&gt;

&lt;p&gt;Nel secondo caso invece, il &lt;a href=&quot;https://amzn.to/4oSxcsf&quot; target=&quot;_blank&quot;&gt;Sonoff Dual R3&lt;/a&gt; è un dispositivo che nasce per pilotare i motori tubolari delle tapparelle elettriche, in quanto permettono di controllare &lt;strong&gt;due fasi&lt;/strong&gt;, quindi appunto salita e discesa, ma può tranquillamente essere usato per pilotare delle lampade collegate ad un relè, ovvero tutti quei casi in cui si hanno due lampadine collegate ad un unico pulsante, e per l’accensione/spegnimento abbiamo il classico ciclo: click 1 -&amp;gt; accende solo lampada 1, click 2 -&amp;gt; accende solo lampada 2, click 3 -&amp;gt; accende entrambe, click 4 -&amp;gt; spegne entrambe.&lt;/p&gt;

&lt;p&gt;Con un &lt;a href=&quot;https://amzn.to/4oSxcsf&quot; target=&quot;_blank&quot;&gt;Sonoff Dual R3&lt;/a&gt; riusciamo ad assegnare una lampadina ad ognuno dei due canali, e quindi pilotarle entrambe con successo (ovviamente, il dispositivo va configurato opportunamente tramite l’apposita app per indicargli che sta gestendo delle luci e non un motore).&lt;/p&gt;

&lt;p&gt;Il grande punto di forza di un &lt;a href=&quot;https://amzn.to/4qC5Urw&quot; target=&quot;_blank&quot;&gt;Sonoff Mini R4 Extreme&lt;/a&gt; è invece la dimensione ridottissima, praticamente entra in ogni scatola, anche se già piuttosto “piena” (l’ho installato tranquillamente in una 503 standard piena di cavi, basta giocare un po’ e la si chiude tranquillamente).&lt;/p&gt;

&lt;p&gt;Entrambi i dispositivi sono assolutamente integrabili con Alexa, che li riconosce al volo una volta terminata la configurazione iniziale, e possono quindi essere tranquillamente controllati anche con la voce. Ovviamente, in entrambi i casi si mantiene la possibilità di utilizzare il comando fisico preesistente, sarà il dispositivo smart a “riconoscere” il corretto stato delle lampade e ad adeguarsi di conseguenza.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTA A MARGINE:&lt;/strong&gt; prima di scrivere questo articolo ho pensato a lungo a come impostarlo, e soprattutto se dargli un taglio più da &lt;strong&gt;recensione&lt;/strong&gt; o più da &lt;strong&gt;guida&lt;/strong&gt; (quindi dando spazio a delle descrizioni più tecniche e a vere e proprie guide d’installazione). Alla fine ho optato per la recensione, in quanto, pur nella loro estrema semplicità, si tratta di dispositivi che lavorano a &lt;strong&gt;220 V&lt;/strong&gt;, che quindi vanno trattati da chi sa quello che sta facendo, e senza improvvisare. Inoltre, per funzionare hanno bisogno di un’alimentazione, e quindi di una &lt;strong&gt;fase in ingresso&lt;/strong&gt; e un &lt;strong&gt;neutro&lt;/strong&gt;. Se nel punto in cui dobbiamo installare il nostro dispositivo manca ad esempio il neutro, questo andrà “tirato” prendendolo da qualche parte, andando quindi ad effettuare una (piccola) modifica all’impianto, il che presuppone, appunto, che si sappia cosa fare e si possegga un minimo di attrezzatura. Personalmente, ho quel minimo di background ed esperienza che mi consentono di fare questo genere di lavoretti tranquillamente e in sicurezza, ma in caso contrario va chiamato un elettricista.&lt;/p&gt;

&lt;p&gt;Stay tuned..&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="recensioni" /><category term="domotica" /><category term="sonoff" /><summary type="html">Nell’ambito del mio progetto di domotica casalinga, non potevano mancare le luci. Per questa parte, ho deciso di ricorrere a due dispositivi in particolare: il Sonoff Mini R4 Extreme e il Sonoff Dual R3.</summary></entry><entry><title type="html">Aggiornamento dello script relativo alla lavatrice smart</title><link href="https://red-blue.it/guide/domotica/sonoff/updated/2025/08/10/aggiornamento-script-lavatrice-smart.html" rel="alternate" type="text/html" title="Aggiornamento dello script relativo alla lavatrice smart" /><published>2025-08-10T00:00:00+00:00</published><updated>2025-08-10T00:00:00+00:00</updated><id>https://red-blue.it/guide/domotica/sonoff/updated/2025/08/10/aggiornamento-script-lavatrice-smart</id><content type="html" xml:base="https://red-blue.it/guide/domotica/sonoff/updated/2025/08/10/aggiornamento-script-lavatrice-smart.html">&lt;p&gt;In merito all’automazione di &lt;strong&gt;Home Assistant&lt;/strong&gt; per ricevere una notifica tramite Alexa quando la lavatrice termina il lavaggio (&lt;a href=&quot;https://red-blue.it/guide/domotica/sonoff/2024/08/26/ho-reso-smart-la-mia-lavatrice.html&quot; target=&quot;_blank&quot;&gt;qui la guida completa&lt;/a&gt;), c’è da fare un piccolo &lt;strong&gt;aggiornamento&lt;/strong&gt; dello script, in quanto vari aggiornamenti di HA hanno leggermente modificato la situazione, e il vecchio script di fatto non funziona.&lt;/p&gt;

&lt;p&gt;Adesso le automazione vanno tutte in &lt;em&gt;automations.yaml&lt;/em&gt;, quindi il file all’interno della directory &lt;em&gt;packages&lt;/em&gt; conterrà di fatto solo l’input_boolean:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;########################################################&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;################INPUT_BOOLEAN############################&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;########################################################&lt;/span&gt;
input_boolean:
  lavatrice_switch:
    name: stato del lavaggio
    initial: off
    icon: mdi:washing-machine&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Mentre in automations.yaml (potete anche scegliere di aggiungerle da interfaccia grafica di HA, cosa che ad esempio ho fatto io, per poi modificare quello che mi serviva):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;: &lt;span class=&quot;s1&quot;&gt;&apos;1731346166999&apos;&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;: Lavatrice fine switch state
  description: &lt;span class=&quot;s1&quot;&gt;&apos;&apos;&lt;/span&gt;
  trigger:
  - entity_id: sensor.lavatrice_power
    platform: numeric_state
    below: &lt;span class=&quot;s1&quot;&gt;&apos;5.0&apos;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;:
      minutes: 1
  condition:
  - condition: state
    entity_id: input_boolean.lavatrice_switch
    state: &lt;span class=&quot;s1&quot;&gt;&apos;on&apos;&lt;/span&gt;
  action:
  - entity_id: input_boolean.lavatrice_switch
    action: input_boolean.turn_off
  mode: single
- &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;: &lt;span class=&quot;s1&quot;&gt;&apos;1731346431244&apos;&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;: Lavatrice Finito
  description: &lt;span class=&quot;s1&quot;&gt;&apos;&apos;&lt;/span&gt;
  triggers:
  - entity_id: input_boolean.lavatrice_switch
    to: &lt;span class=&quot;s1&quot;&gt;&apos;off&apos;&lt;/span&gt;
    trigger: state
  conditions: &lt;span class=&quot;o&quot;&gt;[]&lt;/span&gt;
  actions:
  - action: notify.alexa_media
    metadata: &lt;span class=&quot;o&quot;&gt;{}&lt;/span&gt;
    data:
      message: La lavatrice ha terminato il lavaggio. Ricordati di stendere il bucato
      target: media_player.nome_disposivo_alexa
      data:
        &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: announce
  mode: single
- &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;: &lt;span class=&quot;s1&quot;&gt;&apos;1731346443168&apos;&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;: lavatrice on
  description: &lt;span class=&quot;s1&quot;&gt;&apos;&apos;&lt;/span&gt;
  trigger:
  - entity_id: sensor.lavatrice_power
    platform: numeric_state
    above: &lt;span class=&quot;s1&quot;&gt;&apos;50.0&apos;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;:
      minutes: 1
  condition: &lt;span class=&quot;o&quot;&gt;[]&lt;/span&gt;
  action:
  - entity_id: input_boolean.lavatrice_switch
    action: input_boolean.turn_on
  mode: single
  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;L’automazione tornerà a funzionare regolarmente.&lt;/p&gt;

&lt;p&gt;Stay tuned..&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="guide" /><category term="domotica" /><category term="sonoff" /><category term="updated" /><summary type="html">In merito all’automazione di Home Assistant per ricevere una notifica tramite Alexa quando la lavatrice termina il lavaggio (qui la guida completa), c’è da fare un piccolo aggiornamento dello script, in quanto vari aggiornamenti di HA hanno leggermente modificato la situazione, e il vecchio script di fatto non funziona.</summary></entry><entry><title type="html">Soluzione errore RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly CANCEL (err 8)</title><link href="https://red-blue.it/guide/domotica/sonoff/2024/09/22/soluzione-RPC-failed-curl-92-HTTP-2-stream-0-was-not-closed-cleanly-CANCEL-err-8.html" rel="alternate" type="text/html" title="Soluzione errore RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly CANCEL (err 8)" /><published>2024-09-22T00:00:00+00:00</published><updated>2024-09-22T00:00:00+00:00</updated><id>https://red-blue.it/guide/domotica/sonoff/2024/09/22/soluzione-RPC-failed-curl-92-HTTP-2-stream-0-was-not-closed-cleanly-CANCEL-err-8</id><content type="html" xml:base="https://red-blue.it/guide/domotica/sonoff/2024/09/22/soluzione-RPC-failed-curl-92-HTTP-2-stream-0-was-not-closed-cleanly-CANCEL-err-8.html">&lt;p&gt;Per quanto riguarda la schedulazione della pubblicazione di post su Github Pages (vedi questo &lt;a href=&quot;https://red-blue.it/guide/blog/ruby/jekyll/2024/08/24/schedulare-la-pubblicazione-dei-post-su-github-pages-con-jekyll.html{:target=&amp;quot;_blank&amp;quot;}&quot;&gt;precedente articolo&lt;/a&gt;), mi sono imbattuto in un errore che di fatto bloccava la pubblicazione automatica.&lt;/p&gt;

&lt;p&gt;La soluzione è semplicissima, in fondo al file jekyll.yml, basta aggiungere:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;pre_build_commands: git config &lt;span class=&quot;nt&quot;&gt;--global&lt;/span&gt; http.postBuffer 157286400&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;E la action torna a funzionare.&lt;/p&gt;

&lt;p&gt;Alla prossima..&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="guide" /><category term="domotica" /><category term="sonoff" /><summary type="html">Per quanto riguarda la schedulazione della pubblicazione di post su Github Pages (vedi questo precedente articolo), mi sono imbattuto in un errore che di fatto bloccava la pubblicazione automatica.</summary></entry><entry><title type="html">Ho reso smart la mia lavatrice!</title><link href="https://red-blue.it/guide/domotica/sonoff/2024/08/26/ho-reso-smart-la-mia-lavatrice.html" rel="alternate" type="text/html" title="Ho reso smart la mia lavatrice!" /><published>2024-08-26T00:00:00+00:00</published><updated>2024-08-26T00:00:00+00:00</updated><id>https://red-blue.it/guide/domotica/sonoff/2024/08/26/ho-reso-smart-la-mia-lavatrice</id><content type="html" xml:base="https://red-blue.it/guide/domotica/sonoff/2024/08/26/ho-reso-smart-la-mia-lavatrice.html">&lt;p&gt;Qualche tempo fa mia moglie mi ha chiesto un modo per sapere quando la lavatrice termina il lavaggio. Viviamo in una casa a più piani, e spesso non siamo nei pressi della lavatrice quando termina il lavaggio, ed ecco che dimenticarsi del tutto del bucato da stendere era diventato una problema.&lt;/p&gt;

&lt;p&gt;Escludendo la possibilità di acquistare una modernissima lavatrice nuova, ho cercato in rete qualche progetto che fosse utile al mio scopo, ma non mi andava (e non so nemmeno se sarei stato capace) di saldare/modificare nulla sulla scheda madre, perciò ho cercato una soluzione software.&lt;/p&gt;

&lt;p&gt;L’accoppiata &lt;strong&gt;Sonoff POW Origin + Home Assistant&lt;/strong&gt; ha risolto tutto.&lt;/p&gt;

&lt;p&gt;Il &lt;a href=&quot;https://amzn.to/49q2ORk&quot; target=&quot;_blank&quot;&gt;Sonoff POW Origin&lt;/a&gt; è una classico switch domotico, un dispositivo capace cioè di funzionare come un interruttore, ma pilotabile da smartphone (mediante app), integrabile con gli assistenti vocali, ma soprattutto capace di misurare i &lt;strong&gt;consumi&lt;/strong&gt; del carico elettrico a cui è collegato.&lt;/p&gt;

&lt;p&gt;Ed ecco l’idea.. Se posso monitorare i consumi della mia lavatrice, posso capire quando è &lt;strong&gt;attiva&lt;/strong&gt; (cioè quando il lavaggio è in corso), e di conseguenza anche quando il lavaggio &lt;strong&gt;termina&lt;/strong&gt; (se prima ha un certo consumo e poi va a zero, vuol dire che ha terminato).&lt;/p&gt;

&lt;p&gt;Detto fatto, ho acquistato un &lt;strong&gt;POW Origin&lt;/strong&gt;, l’ho collegato a due spezzoni di cavo elettrico della giusta sezione per un carico come una lavatrice (il classico 3x2,5mm va benissimo). Il collegamento del dispositivo è assolutamente semplice, di fatto vanno collegati il &lt;em&gt;neutro&lt;/em&gt; (di solito un cavo di colore blu) e la &lt;em&gt;fase&lt;/em&gt; (un cavo di colore solitamente nero o marrone) provenienti dalla linea di casa, rispettivamente su uno dei due morsetti contrassegnati con N (sono in parallelo, quindi è indifferente su quali dei due lo collegate) e su Lin (fase in ingresso); nel mio caso, ho collegato uno spezzone di cavo come indicato e poi all’altro estremo ho messo una spina che andrà in una comune presa elettrica (ho usato una cosiddetta Schuko), mentre l’altro spezzone di cavo, quello che andrà al carico (la lavatrice), va collegato allo stesso modo, ma con la fase su Lout (fase in uscita), ovviamente poi ho completato il mio cavo con una spina femmina (da collegare nel mio caso alla lavatrice).&lt;/p&gt;

&lt;p&gt;A questo punto, basta configurare il dispositivo nell’app &lt;strong&gt;eWelink&lt;/strong&gt; e siamo già in grado di dare/togliere corrente alla lavatrice, e soprattutto misurarne il consumo.&lt;/p&gt;

&lt;p&gt;Benissimo.. Ma la notifica di fine lavaggio? La logica è chiara e non è nulla di speciale, per realizzarla ho utilizzato il &lt;a href=&quot;https://red-blue.it/guide/linux/in%20evidenza/raspberry%20pi/domotica/2021/05/26/realizzare-il-proprio-sistema-domotico-introduzione.html&quot; target=&quot;_blank&quot;&gt;mini server domotico&lt;/a&gt; che ho in casa (utilizzato molto meno di quanto avessi previsto in origine, devo ammetterlo), il quale può tranquillamente interfacciarsi tanto con i dispositivi di casa Sonoff, quanto con i più comuni assistenti vocali (nel mio caso Amazon Alexa). Avevo iniziato a buttar giù qualcosa, quando mi sono imbattutto in &lt;a href=&quot;https://www.vincenzocaputo.com/guide/la-lavatrice-ha-finito-con-home-assistant-te-lo-facciamo-notificare-174&quot; target=&quot;_blank&quot;&gt;questo post&lt;/a&gt; sul blog di Vincenzo Caputo che praticamente mi ha risolto il problema al volo! Davvero &lt;strong&gt;fantastico&lt;/strong&gt;, non posso fare altro che ringraziarli!&lt;/p&gt;

&lt;p&gt;Quindi, esattamente come suggerito, cominciamo con l’indicare al sistema che deve considerare i &lt;strong&gt;packages&lt;/strong&gt; all’interno dell’apposita directory (se non esiste, createla nello stesso percorso del file configuration.yaml):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;homeassistant:
  packages: &lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;include_dir_named packages&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;E all’interno della suddetta directory, va inserito il seguente script, che personalmente ho battezzato &lt;em&gt;washingmachineintegration.yaml&lt;/em&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;######################################################&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;####################AUTOMATION########################&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;######################################################&lt;/span&gt;
automation:
- &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;: lavatrice_on
  &lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;: lavatrice on
  trigger:
  -  entity_id: sensor.lavatrice_power
     platform: numeric_state
     above: &lt;span class=&quot;s1&quot;&gt;&apos;50.0&apos;&lt;/span&gt;
     &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;:
       minutes: 1
  action:
  - service: input_boolean.turn_on
    entity_id: input_boolean.lavatrice_switch 

- &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;: lavatrice_fine_switch_state
  &lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;: Lavatrice fine switch state
  trigger: 
  - entity_id: sensor.lavatrice_power
    platform: numeric_state
    below: &lt;span class=&quot;s1&quot;&gt;&apos;5.0&apos;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;:
      minutes: 1
  condition:
  - condition: state
    entity_id: &lt;span class=&quot;s1&quot;&gt;&apos;input_boolean.lavatrice_switch&apos;&lt;/span&gt;
    state: &lt;span class=&quot;s1&quot;&gt;&apos;on&apos;&lt;/span&gt;
  action:
  - service: input_boolean.turn_off
    entity_id: input_boolean.lavatrice_switch

- &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;: lavatrice_done
  &lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;: Lavatrice Finito
  trigger:
  - entity_id: input_boolean.lavatrice_switch
    platform: state
    to: &lt;span class=&quot;s1&quot;&gt;&apos;off&apos;&lt;/span&gt;
  action:
  - service: notify.alexa_media
    data:
      message: La lavatrice ha terminato il lavaggio. Ricordati di stendere il bucato
      target: media_player.nome_primo_dispositivo_alexa
      data:
        &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: announce  
  - service: notify.alexa_media
    data:
      message: La lavatrice ha terminato il lavaggio. Ricordati di stendere il bucato
      target: media_player.nome_secondo_dispositivo_alexa
      data:
        &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: announce
&lt;span class=&quot;c&quot;&gt;########################################################&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;################INPUT_BOOLEAN############################&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;########################################################&lt;/span&gt;
input_boolean:
  lavatrice_switch:
    name: stato del lavaggio
    initial: off
    icon: mdi:washing-machine&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Si tratta dello script presente al post di cui sopra, che ho adattato alle mie esigenze, ovvero al fatto che volevo che Alexa mi annunciasse la fine del lavaggio. Inoltre, l’ho anche adattato ai consumi della mia lavatrice.&lt;/p&gt;

&lt;p&gt;Il cuore è in pratica l’&lt;strong&gt;INPUT_BOOLEAN&lt;/strong&gt; che si trova alla fine, che switchando tra off e on “fa capire” ad Home Assistant se deve partire o meno l’automazione che chiama l’annuncio di fine bucato: nel mio caso, se rileva un consumo di almeno 50 watt per almeno 1 minuto, switcha ad on (lavatrice in funzione), al contrario se rileva un consumo di meno di 5 watt per almeno 1 minuto, switcha ad off (la lavatrice ha terminato). In quest’ultimo caso, cioè se si verifica &lt;strong&gt;lo switch da on ad off&lt;/strong&gt;, parte il “Lavatrice finito”, che fa scattare a sua volta l’annuncio.&lt;/p&gt;

&lt;p&gt;Ovviamente quel &lt;em&gt;sensor.lavatrice_power&lt;/em&gt; altro non è che il “sensore” relativo al Sonoff POW Origin che ho rinominato in questo modo.&lt;/p&gt;

&lt;p&gt;Per gestire dispositivi Sonoff in Home Assistant, basta installare l’integrazione &lt;strong&gt;Sonoff LAN&lt;/strong&gt; da HACS, la quale riconoscera in maniera pressochè istantanea qualsiasi dispositivo di casa Sonoff presente nella vostra rete. Per usare Alexa come media player e riprodurre gli annunci, potete seguire &lt;a href=&quot;https://red-blue.it/guide/domotica/alexa/2024/08/20/annunci-da-alexa-tramite-home-assistant.html&quot; target=&quot;_blank&quot;&gt;questo post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Semplice e geniale!&lt;/p&gt;

&lt;p&gt;Stay tuned..&lt;/p&gt;

&lt;p&gt;Credits: &lt;a href=&quot;https://www.vincenzocaputo.com/guide/la-lavatrice-ha-finito-con-home-assistant-te-lo-facciamo-notificare-174&quot; target=&quot;_blank&quot;&gt;Vincenzo Caputo&lt;/a&gt;&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="guide" /><category term="domotica" /><category term="sonoff" /><summary type="html">Qualche tempo fa mia moglie mi ha chiesto un modo per sapere quando la lavatrice termina il lavaggio. Viviamo in una casa a più piani, e spesso non siamo nei pressi della lavatrice quando termina il lavaggio, ed ecco che dimenticarsi del tutto del bucato da stendere era diventato una problema.</summary></entry><entry><title type="html">Schedulare la pubblicazione dei post su Github Pages con Jekyll</title><link href="https://red-blue.it/guide/blog/ruby/jekyll/github/2024/08/24/schedulare-la-pubblicazione-dei-post-su-github-pages-con-jekyll.html" rel="alternate" type="text/html" title="Schedulare la pubblicazione dei post su Github Pages con Jekyll" /><published>2024-08-24T00:00:00+00:00</published><updated>2024-08-24T00:00:00+00:00</updated><id>https://red-blue.it/guide/blog/ruby/jekyll/github/2024/08/24/schedulare-la-pubblicazione-dei-post-su-github-pages-con-jekyll</id><content type="html" xml:base="https://red-blue.it/guide/blog/ruby/jekyll/github/2024/08/24/schedulare-la-pubblicazione-dei-post-su-github-pages-con-jekyll.html">&lt;p&gt;Capita spesso di scrivere un post per poi pubblicarlo in un secondo momento. Con Jekyll basta semplicemente “datare” un post con una data &lt;strong&gt;futura&lt;/strong&gt; per fare in modo che non si veda immediatamente dopo il deploy. Il problema è che poi, alla data prevista, sarà necessario &lt;strong&gt;forzare il deploy&lt;/strong&gt;, ad esempio apportando una modifica anche minina ad un file, affinchè Github Pages ricompili l’intero sito e renda visibile il nuovo post.&lt;/p&gt;

&lt;p&gt;Questo processo si può &lt;strong&gt;automatizzare&lt;/strong&gt;, usando una &lt;strong&gt;Action&lt;/strong&gt; che compila un branch periodicamente, a prescindere da quello che pubblichiamo, in modo da avere il sito sempre aggiornato. Vediamo come fare:&lt;/p&gt;

&lt;p&gt;Per prima cosa, va inserito nel &lt;em&gt;_config.yml&lt;/em&gt; la seguente riga:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;ss&quot;&gt;future: &lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;false&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Che serve ad indicare a Jekyll di non pubblicare post con data futura.&lt;/p&gt;

&lt;p&gt;Creiamo poi un &lt;em&gt;token di sicurezza&lt;/em&gt;: &lt;strong&gt;Icona del profilo -&amp;gt; Settings -&amp;gt; Developer Settings -&amp;gt; Personal Access tokens -&amp;gt; Fine grained tokens -&amp;gt; Generate new token&lt;/strong&gt;. Diamo un nome al nuovo token, gli diamo accesso a tutti oppure ad uno specifico repository, e sopratutto concediamo tutti i permessi (sono tanti lo so). Al termine copiamo il nuovo token.&lt;/p&gt;

&lt;p&gt;A questo punto, aggiungiamo il token appena creato al repository del sito, quindi selezioniamo il relativo repository, poi andiamo in &lt;strong&gt;Settings -&amp;gt; Secrets and variables -&amp;gt; Actions -&amp;gt; New repository secret&lt;/strong&gt;. Diamo un nome ed incolliamo il token precedente, per poi salvare il tutto.&lt;/p&gt;

&lt;p&gt;Adesso viene il bello, occorre creare un &lt;strong&gt;workflow&lt;/strong&gt; per Github, quindi creiamo il file jekyll.yml all’interno di &lt;em&gt;/.github/workflows&lt;/em&gt; (persorso che sarà quasi certamente da creare). In questo file indichiamo di usare la action &lt;a href=&quot;https://github.com/jeffreytse/jekyll-deploy-action&quot; target=&quot;_blank&quot;&gt;jeffreytse/jekyll-deploy-action&lt;/a&gt;. Leggendo la documentazione, io ho scritto quanto segue:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;ss&quot;&gt;name: &lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Build&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;deploy&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;site&lt;/span&gt;

&lt;span class=&quot;ss&quot;&gt;on:
  schedule:
    &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;cron: &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;30 17 * * *&quot;&lt;/span&gt;
  &lt;span class=&quot;ss&quot;&gt;workflow_dispatch:

jobs:
  build_and_deploy:
    &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;runs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;on: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ubuntu&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;latest&lt;/span&gt;
    &lt;span class=&quot;ss&quot;&gt;steps:
      &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;uses: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actions&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;checkout&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@v4&lt;/span&gt;

      &lt;span class=&quot;c1&quot;&gt;# Use GitHub Actions&apos; cache to cache dependencies on servers&lt;/span&gt;
      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;uses: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actions&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cache&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@v4&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;with:
          path: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vendor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bundle&lt;/span&gt;
          &lt;span class=&quot;ss&quot;&gt;key: &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gems&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;restore&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;keys: &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;
            &lt;span class=&quot;err&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gems&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;

      &lt;span class=&quot;c1&quot;&gt;# Use GitHub Deploy Action to build and deploy to Github&lt;/span&gt;
      &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;uses: &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jeffreytse&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jekyll&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;deploy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@v0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;6.0&lt;/span&gt;
        &lt;span class=&quot;ss&quot;&gt;with:
          provider: &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;github&apos;&lt;/span&gt;
          &lt;span class=&quot;ss&quot;&gt;token: &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$&lt;/span&gt; 
          &lt;span class=&quot;ss&quot;&gt;branch: &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;gh-pages&apos;&lt;/span&gt;
          &lt;span class=&quot;ss&quot;&gt;cname: &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;url_custom_domain&apos;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Vediamo di commentare un attimo il frammento di codice:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Nella sezione &lt;strong&gt;schedule&lt;/strong&gt;, indichiamo che la compilazione avverrà ogni giorno alle 17.30 (prima si indicano i minuti, poi le ore, potete verificare con &lt;a href=&quot;https://crontab.guru/&quot; target=&quot;_blank&quot;&gt;questo utile strumento online&lt;/a&gt; come usare quella sintassi).&lt;/li&gt;
  &lt;li&gt;Nel &lt;strong&gt;token&lt;/strong&gt;, dobbiamo indicare il nome scelto in precedenza.&lt;/li&gt;
  &lt;li&gt;Se abbiamo un &lt;strong&gt;custom domain&lt;/strong&gt; configurato, dobbiamo indicarlo in &lt;strong&gt;cname&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Possiamo testare il nostro workflow, dal repository scegliamo &lt;strong&gt;Actions&lt;/strong&gt;, nella colonna a sinistra scegliamo la action appena creata, e a destra clicchiamo su &lt;strong&gt;Run Workflow&lt;/strong&gt;, se tutto va bene dopo qualche minuto la compilazione del sito terminerà correttamente.&lt;/p&gt;

&lt;p&gt;A questo punto, sarà stato creato un nuovo branch chiamato gh-pages (ma il nome potete sceglierlo a vostro piacimento), l’ultimo step è quello di indicare a Github di visualizzare il sito da questo nuono branch e non dal main (nel mio caso, usavo la compilazione diretta dal main infatti); per farlo, dal repository andiamo in &lt;strong&gt;Settings -&amp;gt; Pages&lt;/strong&gt; e selezioniamo, sotto &lt;strong&gt;Build and deployment&lt;/strong&gt;, l’opzione &lt;strong&gt;Deploy from a branch&lt;/strong&gt; (dovrebbe essere già selezionata) e come branch indichiamo gh-pages (o qualsiasi altro nome abbiate scelto).&lt;/p&gt;

&lt;p&gt;A questo punto, scrivete un post con data futura e godetevi la pubblicazione &lt;strong&gt;schedulata&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Stay tuned..&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="guide" /><category term="blog" /><category term="ruby" /><category term="jekyll" /><category term="github" /><summary type="html">Capita spesso di scrivere un post per poi pubblicarlo in un secondo momento. Con Jekyll basta semplicemente “datare” un post con una data futura per fare in modo che non si veda immediatamente dopo il deploy. Il problema è che poi, alla data prevista, sarà necessario forzare il deploy, ad esempio apportando una modifica anche minina ad un file, affinchè Github Pages ricompili l’intero sito e renda visibile il nuovo post.</summary></entry><entry><title type="html">Annunci da Alexa tramite Home Assistant</title><link href="https://red-blue.it/guide/domotica/alexa/2024/08/20/annunci-da-alexa-tramite-home-assistant.html" rel="alternate" type="text/html" title="Annunci da Alexa tramite Home Assistant" /><published>2024-08-20T00:00:00+00:00</published><updated>2024-08-20T00:00:00+00:00</updated><id>https://red-blue.it/guide/domotica/alexa/2024/08/20/annunci-da-alexa-tramite-home-assistant</id><content type="html" xml:base="https://red-blue.it/guide/domotica/alexa/2024/08/20/annunci-da-alexa-tramite-home-assistant.html">&lt;p&gt;Sapete che è possibile usare un dispositivo Alexa come se fosse un riproduttore musicale tramite Home Assistant? Vediamo come fare..&lt;/p&gt;

&lt;p&gt;Basta installare un custom component di Home Assistant chiamato Alexa Media Player.&lt;/p&gt;

&lt;p&gt;Consiglio vivamente di installarlo tramite &lt;strong&gt;HACS&lt;/strong&gt;, il Community Store di Home Assistant, installabile da &lt;strong&gt;Impostazioni -&amp;gt; Dispositivi e servizi -&amp;gt; Aggiungi integrazione&lt;/strong&gt;. Quindi entrate in HACS e cercate “Alexa Media Player”, in alternativa clic sui &lt;strong&gt;tre puntini in alto a destra -&amp;gt; Archivi digitali personalizzati&lt;/strong&gt; ed inserite &lt;strong&gt;https://github.com/custom-components/alexa_media_player&lt;/strong&gt;, poi cercate nuovamente ed installate. Al termine Home Assistant va riavviato.&lt;/p&gt;

&lt;p&gt;Poi collegatevi &lt;a href=&quot;https://www.amazon.it/ap/signin?openid.pape.preferred_auth_policies=SinglefactorWithPossessionChallenge&amp;amp;openid.pape.max_auth_age=900&amp;amp;openid.return_to=https%3A%2F%2Fwww.amazon.it%2Fa%2Fsettings%2Fapproval&amp;amp;openid.assoc_handle=itflex&amp;amp;openid.mode=checkid_setup&amp;amp;intercept=false&amp;amp;openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&quot; target=&quot;_blank&quot;&gt;qui&lt;/a&gt; ed accedete con le vostre credenziali Amazon (se usate Alexa, avete un account Amazon) e portate a termine la procedura per l’autenticazione a due passaggi, &lt;strong&gt;obbligatoria&lt;/strong&gt; per usare questa integrazione.&lt;/p&gt;

&lt;p&gt;Occorre cliccare su &lt;strong&gt;Aggiungi nuovo telefono o un’app di autenticazione&lt;/strong&gt; e successivamente sul link &lt;strong&gt;Non riesci ad acquisire il codice a barre?&lt;/strong&gt;; solo a questo punto avremo una schermata con un codice alfanumerico che dovremo appuntare da qualche parte (PS. Non chiudere questa finestra altrimenti bisogna ricominciare daccapo).&lt;/p&gt;

&lt;p&gt;Andiamo su Home Assistant, in &lt;strong&gt;Impostazioni -&amp;gt; Dispositivi&lt;/strong&gt; e servizi e selezioniamo Alexa Media Player, poi vanno inseriti i dati di configurazione, ovvero il nostro account Amazon, il dominio &lt;strong&gt;amazon.it&lt;/strong&gt; (MI RACCOMANDO!!), l’URL di Home Assistant (deve essere raggiungibile da Internet ovviamente), e il codice copiato in precedenza, che garantirà l’autenticazione corretta. Clicchiamo su “Invia” e avremo un’OTP da inserire nella pagina precedente (vi avevo detto di non chiuderla!).&lt;/p&gt;

&lt;p&gt;Al termine della configurazione, saranno comparsi tutti i dispositivi alexa che avete in casa, e le relative entità, e saranno del tipo media_player.&lt;em&gt;nome_dispositivo&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/alexa_media_player.png&quot; alt=&quot;alexa_media_player_image&quot; style=&quot;display:block; width: 100%; margin-left:auto; margin-right:auto&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Poi, tali entità saranno richiamabili a piacimento tramite Home Assistant, ad esempio in un’automazione.&lt;/p&gt;

&lt;p&gt;Per utilizzare gli annunci si può usare il &lt;strong&gt;servizio “notify.alexa_media”&lt;/strong&gt;, ad esempio in un’automazione va inserito il seguente codice:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;service: notify.alexa_media
data:
  message: Questo è il testo dell&lt;span class=&quot;s1&quot;&gt;&apos;annuncio che sarà riprodotto
  target: media_player.nome_dispositvo_alexa
  data:
    type: announce&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Stay tuned..&lt;/p&gt;</content><author><name>RedBlue</name></author><category term="guide" /><category term="domotica" /><category term="alexa" /><summary type="html">Sapete che è possibile usare un dispositivo Alexa come se fosse un riproduttore musicale tramite Home Assistant? Vediamo come fare..</summary></entry></feed>