This page available in English, Deutsch, Español, Français, हिन्दी, Italiano, 日本語, Nederlands, Polski, Português, 中文(简体)

updates2mqtt¶
Riepilogo¶
Lascia che Home Assistant ti informi dei nuovi aggiornamenti alle immagini Docker per i tuoi container.


Leggi le note di rilascio e, facoltativamente, fai clic su Aggiorna per avviare un Docker pull (o facoltativamente build) e un aggiornamento.

Descrizione¶
Updates2MQTT verifica periodicamente la disponibilità di nuove versioni dei componenti e pubblica le informazioni sulle nuove versioni tramite MQTT. Il rilevamento automatico di HomeAssistant è supportato, in modo che tutti gli aggiornamenti possano essere visualizzati nello stesso posto dei componenti e dei componenti aggiuntivi di Home Assistant.
Attualmente sono supportati solo i container Docker, tramite una verifica del registro delle immagini (usando le API Docker v1 o l’API OCI v2) o un repository git per il sorgente (vedi Build Locali), con gestione specifica per Docker, Github Container Registry, Gitlab, Codeberg, Microsoft Container Registry, Quay e LinuxServer Registry, con comportamento adattivo per la maggior parte degli altri. Il design è modulare, quindi è possibile aggiungere altre sorgenti di aggiornamento, almeno per le notifiche. La prossima prevista è apt per i sistemi basati su Debian.
I componenti possono anche essere aggiornati, automaticamente o attivati tramite MQTT, ad esempio premendo il pulsante Installa nel dialogo di aggiornamento di HomeAssistant. Icone e note di rilascio possono essere specificate per una migliore esperienza HA. Consulta Integrazione con Home Assistant per i dettagli.
Per iniziare, leggi le pagine Installazione e Configurazione.
Per una prova rapida, esegui:
docker run -v /var/run/docker.sock:/var/run/docker.sock -e MQTT_USER=user1 -e MQTT_PASS=user1 -e MQTT_HOST=192.168.1.5 ghcr.io/rhizomatics/updates2mqtt:latest
o senza Docker, usando uv
export MQTT_HOST=192.168.1.1;export MQTT_USER=user1;export MQTT_PASS=user1;uv run --with updates2mqtt python -m updates2mqtt
Include anche uno strumento base da riga di comando che eseguirà l’analisi per un singolo container in esecuzione, o recupererà manifest, blob JSON e liste di tag da registri remoti (verificato funzionante con GitHub, GitLab, Codeberg, Quay, LSCR e Microsoft MCR).
Supporto alle Versioni¶
Attualmente sono supportati solo i container Docker, anche se altri sono pianificati, probabilmente con priorità per apt.
| Ecosistema | Supporto | Note |
|---|---|---|
| Docker | Scan, Fetch | Fetch è solo docker pull. Supporto al riavvio solo per container basati su immagine docker-compose. |
Heartbeat¶
Un payload JSON di heartbeat viene facoltativamente pubblicato periodicamente su un topic MQTT configurabile, con valore predefinito healthcheck/{node_name}/updates2mqtt. Contiene la versione corrente di Updates2MQTT, il nome del nodo, un timestamp e alcune statistiche di base.
Healthcheck¶
Nell’immagine Docker è incluso uno script healthcheck.sh, utilizzabile come healthcheck Docker se le variabili d’ambiente del container MQTT_HOST, MQTT_PORT, MQTT_USER e MQTT_PASS sono impostate. Usa il pacchetto Linux mosquitto-clients che fornisce il comando mosquitto_sub per iscriversi ai topic.
Tip
Verifica che l’healthcheck funzioni usando docker inspect --format "{{json .State.Health }}" updates2mqtt | jq (puoi omettere | jq se non hai jsonquery installato, ma è molto più facile da leggere con esso)
Un altro approccio è utilizzare un servizio di riavvio direttamente in Docker Compose per forzare un riavvio, in questo caso una volta al giorno:
restarter:
image: docker:cli
volumes: ["/var/run/docker.sock:/var/run/docker.sock"]
command: ["/bin/sh", "-c", "while true; do sleep 86400; docker restart updates2mqtt; done"]
restart: unless-stopped
environment:
- UPD2MQTT_UPDATE=AUTO
Container Target¶
Mentre updates2mqtt scoprirà e monitorerà tutti i container in esecuzione sotto il daemon Docker, esistono alcune opzioni per ottimizzarne il funzionamento su quei container.
Ciò avviene aggiungendo variabili d’ambiente o label Docker ai container, tipicamente all’interno di un file .env, o come opzioni environment all’interno di docker-compose.yaml.
Aggiornamenti Automatici¶
Se i container Docker devono essere aggiornati immediatamente, senza alcuna conferma o attivatore, ad esempio dal dialogo di aggiornamento di HomeAssistant, imposta la variabile d’ambiente UPD2MQTT_UPDATE nel container di destinazione su Auto (il valore predefinito è Passive). Se vuoi che si aggiorni senza pubblicare su MQTT ed essere visibile a Home Assistant, usa Silent.
restarter:
image: docker:cli
command: ["/bin/sh", "-c", "while true; do sleep 86400; docker restart mailserver; done"]
environment:
- UPD2MQTT_UPDATE=AUTO
Gli aggiornamenti automatici possono applicarsi anche alle build locali, dove è stato definito un git_repo_path - se sono disponibili commit remoti da scaricare, verranno eseguiti git pull, docker compose build e docker compose up.
Progetti Correlati¶
Altre app utili per il self-hosting con l’aiuto di MQTT:
- psmqtt - Segnala salute del sistema e metriche tramite MQTT
Trova altri su awesome-mqtt
Per un gestore di aggiornamenti più potente incentrato su Docker, prova What’s Up Docker
Sviluppo¶
Questo componente si basa su diversi pacchetti open source:
- docker-py SDK Python per l’accesso alle API Docker
- Eclipse Paho client MQTT
- OmegaConf per configurazione e validazione
- structlog per la registrazione strutturata e rich per una migliore segnalazione delle eccezioni
- hishel per la memorizzazione nella cache dei metadati
- httpx per il recupero dei metadati
- Gli strumenti Astral uv e ruff per lo sviluppo e la compilazione
- pytest e add-in di supporto per i test automatizzati
- usingversion per registrare le informazioni sulla versione corrente
Rhizomatics Open Source per Home Assistant¶
HACS¶
- AutoArm - Inserimento e disinserimento automatico dei pannelli di controllo allarme di Home Assistant utilizzando pulsanti fisici, presenza, calendari, sole e altro ancora
- Remote Logger - Acquisizione di eventi OpenTelemetry (OTLP) e Syslog per Home Assistant
- Supernotify - Notifica unificata per una messaggistica multicanale semplice, con potente integrazione di campanelli e telecamere di sicurezza.
Python / Docker¶
- Anpr2MQTT - Integrazione con telecamere ANPR/ALPR per targhe tramite file system (NAS/FTP) a MQTT con analisi delle immagini opzionale e integrazione DVLA del Regno Unito.