Closed mfinotti closed 2 years ago
UPDATE 28/09/2022 Diversamente da come descritto nella sezione Dispatch evento, il messaggio viene impacchettato nel seguente modo:
eventData = { "eventType" : "STATISTICS_PUSH", "systemCode": {systemCode}, "message" : "STATISTICS PUSH", "technicalMessage": statMessage }
E viene dispatchato l'evento come di seguito:
self.fire_event("HAKAFKA_PRODUCER_PRODUCE", topic="TECHNICAL", message=eventData)
Statistics push 2/2
Predisporre una nuova applicazione appdaemon che si occuperà di impacchettare le statistiche e di inviarle sull'apposito TOPIC Kafka
HASSIO_SYSTEM_METRICS
. Passo 1 del taskTask da completare
Nuova applicazione appdaemon
Aggiungere una nuova applicazione appdaemon chiamata
systemMetrics
. Oltre a creare la classe sulla falsa riga della classeHelloWorld
è necessario aggiungerla al bootstrap di appdaemon, ovvero, nel fileapps.yaml
Get valori dai sensori
Recuperare lo stato dei sensori statistici creati nella issue collegata, ovvero:
disk_use_percent
memory_use_percent
processor_use
processor_temperature
last_boot
Impacchettare il messaggio
Impacchettare il messaggio da inviare come di seguito:
UPDATE 01/09/2022 Aggiungere al pacchetto l'informazione sul massimo utilizzo della CPU. Questa informazione è disponibile come attributo della entity dedicata al processo_use.
Dispatch evento
Una volta impacchettato il messaggio aggiungere le informazioni aggiuntive necessarie a avere un messaggio sintatticamente corretto.
systemCode: _valore input_text.system_code_
In fine, si può dispatchare l'evento per permettere al proder kafka di inviare le metriche calcolate al cloud.
self.fire_event("HAKAFKA_PRODUCER_PRODUCE", topic="HASSIO_SYSTEM_METRICS", message=eventData)