Dopo l'introduzione dei gruppi nel mio setup di OpenHAB v.2 ho migliorato leggermente la configurazione del monitoring di rete.
Ho infatti aggiunto un gruppo chiamato gNetworkCheck, che verrà assegnato a tutti i dispositivi che verranno tenuti sotto monitoraggio. Questo gruppo assumerà il valore ON quando tutti gli item contenuti saranno in stato ON, altrimenti OFF.
La regola che gestisce il monitoraggio a questo punto non viene definita per ogni dispositivo, ma direttamente sul gruppo; in questo modo ogni volta che aggiungo un dispositivo da monitorare, è sufficiente che esso venga assegnato anche al gruppo gNetworkCheck, senza dover scrivere una "rule" a lui dedicata.
Ho quindi modificato il mio file /etc/openhab2/rules/checks.rules, eliminando tutte le regole associate ai singoli "item" ed inserendone una sola relativa al gruppo:
rule "network check"
when
Item gNetworkCheck changed
then
val lastItem = gNetworkCheck.members.sortBy[lastUpdate].last
logInfo("rules", "NETWORK CHECK -> " + lastItem.name + " changed to " + lastItem.state)
sendNotification([user_to_be_notified], "NETWORK CHECK -> " + lastItem.name + " changed to " + lastItem.state)
end
Seguendo un suggerimento di un thread del forum di OpenHAB (https://community.openhab.org/t/determining-the-triggering-item-in-the-body-of-a-rule/2654/4?u=alex73) sono riuscito ad identificare l'elemento che ha scatenato il cambio di valore del gruppo. In questo modo lo posso indicare nel testo della notifica.
Ecco la sitemap aggiornata con l'indicazione del gruppo
Nessun commento:
Posta un commento