kairostech-sw / kairoshub-configuration

0 stars 0 forks source link

EntityMetrics V2 #32

Closed mfinotti closed 1 year ago

mfinotti commented 1 year ago

Ampliare l'esportazione delle entityMetrics con le informazioni di tutti i sensori della tipologia di riferimento. Allo stato attuale vengono prodotte delle metriche che riportano il valore medio degli indicatori. Al fine di poter essere flessibili nell'elaborazione dei del dato, occorrerà far uscire i singoli valori dei sensori raggruppati per tipologia.

Esempio metrica da produrre (vedi #26 per info sullo stato attuale):

{ "eventType": "ENTITY_PUSH", "systemCode": "{valore systemCode}", "message": "ENTITY_PUSH", "technicalMessage": { "thermostat": "{valore medio sensore}", "roller": "{valore medio sensore}", "power": "{valore medio sensore}", "thermostats": [ { "sensor_name": "{ valore input text della zona }", "state": "{ valore media temperatura della zona }", "last_update": "{ valore timestamp ultimo update ricevuto}" } ], "rollers": [ { "sensor_name": "{ valore input text della zona }", "state": "{ valore medio posizione tapparelle zona }", "last_update": "{ valore timestamp ultimo update ricevuto}" } ], "heating": { "state": "{valore 1 o 0}", "target": "{valore temperatura confort}", "program": "manual" }, "hub": { "state": "NORMAL", "settings": { "zones": [ { "entity": "input_text.nightzone.xxxxxx", "name": "Camera da letto 1" } ] } } } }

vedi refactoring sensori e gruppi sensori per maggiori dettagli.

christianorsini commented 1 year ago

Producing message: [b'{"eventType": "ENTITY_PUSH", "systemCode": "UNAVAILABLE", "message": "ENTITY_PUSH", "technicalMessage": {"thermostat": "unknown", "roller": "unknown", "power": "0.0", "hub": {"state": "unavailable", "zones": [{"entity": "input_text.zn101", "name": "Camera da Letto 1"}, {"entity": "input_text.zn102", "name": "Camera da Letto 2"}, {"entity": "input_text.zn103", "name": "Camera da Letto 3"}, {"entity": "input_text.zn104", "name": "Bagno 1"}, {"entity": "input_text.zn201", "name": "Soggiorno"}, {"entity": "input_text.zn202", "name": "Cucina"}, {"entity": "input_text.zn203", "name": "Bagno 2"}]}, "thermostats": [{"sensor_name": "Camera da Letto 1", "state": "unknown", "last_update": "2022-11-29T12:04:07.662568+00:00"}, {"sensor_name": "Camera da Letto 2", "state": "unknown", "last_update": "2022-11-29T12:04:07.662642+00:00"}, {"sensor_name": "Camera da Letto 3", "state": "unknown", "last_update": "2022-11-29T12:04:07.662714+00:00"}, {"sensor_name": "Bagno 1", "state": "unknown", "last_update": "2022-11-29T12:04:07.662802+00:00"}, {"sensor_name": "Soggiorno", "state": "unknown", "last_update": "2022-11-29T12:04:07.662345+00:00"}, {"sensor_name": "Cucina", "state": "unknown", "last_update": "2022-11-29T12:04:07.662421+00:00"}, {"sensor_name": "Bagno 2", "state": "unknown", "last_update": "2022-11-29T12:04:07.662494+00:00"}], "rollers": [{"sensor_name": "Camera da Letto 1", "state": "unknown", "last_update": "2022-11-29T12:04:07.661464+00:00"}, {"sensor_name": "Camera da Letto 2", "state": "unknown", "last_update": "2022-11-29T12:04:07.661536+00:00"}, {"sensor_name": "Camera da Letto 3", "state": "unknown", "last_update": "2022-11-29T12:04:07.661609+00:00"}, {"sensor_name": "Bagno 1", "state": "unknown", "last_update": "2022-11-29T12:04:07.661708+00:00"}, {"sensor_name": "Soggiorno", "state": "unknown", "last_update": "2022-11-29T12:04:07.661243+00:00"}, {"sensor_name": "Cucina", "state": "unknown", "last_update": "2022-11-29T12:04:07.661315+00:00"}, {"sensor_name": "Bagno 2", "state": "unknown", "last_update": "2022-11-29T12:04:07.661389+00:00"}], "heating": {"state": 0, "program": "manual", "target": "31.0"}} , "timestamp": "2022-11-29T13:04:25+01:00"}'] on broker: [quattrostagioni.linkedsolutions.it:9093] and topic: [TECHNICAL]

mfinotti commented 1 year ago

@christianorsini a seguito di implementazione lato java mi sono reso conto che sarebbe opportuno modificare il JSON di uscita per quanto riguarda la parte dei rollerse thermostats. Vedi esempio di seguito:

{"eventType": "ENTITY_PUSH", "systemCode": "H00000", "message": "ENTITY_PUSH", "technicalMessage": {"thermostat": "25.0", "roller": "90", "power": "0.0", "hub": {"state": "NORMAL","zones": [{"id": "zn101", "name": "Camera da Letto 1"}, {"id": "zn102", "name": "Camera da Letto 2"}, {"id": "zn103", "name": "Camera da Letto 3"}, {"id": "zn104", "name": "Bagno 1"}, {"id": "zn201", "name": "Soggiorno"}, {"id": "zn202", "name": "Cucina"}, {"id": "zn203", "name": "Bagno 2"}]},"thermostats": [{"zone": "zn101", "state": "unknown", "last_update": "2022-11-29T12:04:07.662568+00:00"}, {"zone": "zn102", "state": "unknown", "last_update": "2022-11-29T12:04:07.662642+00:00"}, {"zone": "zn103", "state": "unknown", "last_update": "2022-11-29T12:04:07.662714+00:00"}, {"zone": "zn104", "state": "unknown", "last_update": "2022-11-29T12:04:07.662802+00:00"}, {"zone": "zn201", "state": "unknown", "last_update": "2022-11-29T12:04:07.662345+00:00"}, {"zone": "zn202", "state": "unknown", "last_update": "2022-11-29T12:04:07.662421+00:00"}, {"zone": "zn203", "state": "unknown", "last_update": "2022-11-29T12:04:07.662494+00:00"}], "rollers": [{"zone": "zn101", "state": "unknown", "last_update": "2022-11-29T12:04:07.661464+00:00"}, {"zone": "zn102", "state": "unknown", "last_update": "2022-11-29T12:04:07.661536+00:00"}, {"zone": "zn103", "state": "unknown", "last_update": "2022-11-29T12:04:07.661609+00:00"}, {"zone": "zn104", "state": "unknown", "last_update": "2022-11-29T12:04:07.661708+00:00"}, {"zone": "zn201", "state": "unknown", "last_update": "2022-11-29T12:04:07.661243+00:00"}, {"zone": "zn202", "state": "unknown", "last_update": "2022-11-29T12:04:07.661315+00:00"}, {"zone": "zn203", "state": "unknown", "last_update": "2022-11-29T12:04:07.661389+00:00"}], "heating": {"state": 0, "program": "manual", "target": "31.0"}} , "timestamp": "2022-11-29T13:04:25+01:00"}

Aggiungere inoltre, sia nelle zone che alle chiavi thermostats e rollers le informazioni relative ai sensori di media di zona (Giorno / Notte)

mfinotti commented 1 year ago

in sospeso @christianorsini

mfinotti commented 1 year ago

Segue issue dedicata @christianorsini

mfinotti commented 1 year ago

@christianorsini Da ritestare il calcolo della metrica dei sensori in quanto allo stato attuale, in base alla definizione dei sensori media il calcolo avviene solo per i nuovi sensori e non per i vecchi che sono messi in un gruppo a parte. Facendo gli aggiustamenti richiesti nella issue Refactoring sensori e gruppi di sensori questa anomalia dovrebbe essere automaticamente sanata.

Dopo aver rivisto la definizione dei sensori media ritestare la funzionalità utilizzando un sensore di vecchia e nuova generazione.

mfinotti commented 1 year ago

Caso reale dell'anomalia precedente:

Image

Dati inviati dalla metrica:

Image

json di risposta allegato

doc11.docx

christianorsini commented 1 year ago

Aggiunte informazioni sull'umidità nel messaggio di metriche

Messaggio su topic

Producing message: [b'{"eventType": "ENTITY_PUSH", "systemCode": "UNAVAILABLE", "message": "ENTITY_PUSH", "technicalMessage": {"thermostat": "19.6", "roller": "48.3", "humidity": "80.0", "power": "0.0", "hub": {"state": "unavailable"}, "thermostats": [{"zone": "zn100", "state": "16.1", "last_update": "2023-01-09T08:40:55.055147+00:00"}, {"zone": "zn101", "state": "15.0", "last_update": "2023-01-09T08:40:34.910567+00:00"}, {"zone": "zn102", "state": "22.0", "last_update": "2023-01-09T08:40:43.958449+00:00"}, {"zone": "zn103", "state": "16.0", "last_update": "2023-01-09T08:40:49.568097+00:00"}, {"zone": "zn104", "state": "15.5", "last_update": "2023-01-09T08:40:55.053959+00:00"}, {"zone": "zn200", "state": "23.0", "last_update": "2023-01-09T08:40:21.974916+00:00"}, {"zone": "zn201", "state": "18.0", "last_update": "2023-01-09T08:40:01.050272+00:00"}, {"zone": "zn202", "state": "26.0", "last_update": "2023-01-09T08:40:14.934726+00:00"}, {"zone": "zn203", "state": "21.0", "last_update": "2023-01-09T08:40:21.973661+00:00"}], "rollers": [{"zone": "zn100", "state": "53.67", "last_update": "2023-01-09T08:43:21.204968+00:00"}, {"zone": "zn101", "state": "66.67", "last_update": "2023-01-09T08:43:13.423260+00:00"}, {"zone": "zn102", "state": "12.5", "last_update": "2023-01-09T08:43:17.356526+00:00"}, {"zone": "zn103", "state": "43.5", "last_update": "2023-01-09T08:43:21.204090+00:00"}, {"zone": "zn104", "state": "92.0", "last_update": "2023-01-09T08:42:13.662828+00:00"}, {"zone": "zn200", "state": "42.94", "last_update": "2023-01-09T08:43:34.088010+00:00"}, {"zone": "zn201", "state": "5.33", "last_update": "2023-01-09T08:43:30.159788+00:00"}, {"zone": "zn202", "state": "23.5", "last_update": "2023-01-09T08:43:34.087167+00:00"}, {"zone": "zn203", "state": "100.0", "last_update": "2023-01-09T08:42:34.921412+00:00"}], "humidities": [{"zone": "zn100", "state": "80.0", "last_update": "80.0"}, {"zone": "zn101", "state": "unknown", "last_update": "unknown"}, {"zone": "zn102", "state": "unknown", "last_update": "unknown"}, {"zone": "zn103", "state": "unknown", "last_update": "unknown"}, {"zone": "zn104", "state": "unknown", "last_update": "unknown"}, {"zone": "zn200", "state": "unknown", "last_update": "unknown"}, {"zone": "zn201", "state": "unknown", "last_update": "unknown"}, {"zone": "zn202", "state": "unknown", "last_update": "unknown"}, {"zone": "zn203", "state": "unknown", "last_update": "unknown"}], "heating": {"state": 0, "program": "manual", "target": "31.0"}}, "timestamp": "2023-01-09T10:16:15+01:00"}'] on broker: [kairostech-test:9092] and topic: [TECHNICAL]

mfinotti commented 1 year ago

@christianorsini verificare last_update per chiave umidità in quanto riporta il valore dello stato e non il timestamp di ultimo aggiornamento.