Er helt ny på dette(begynte i jan 21), men kjører HS4 for å styre vannbåren varme aktuatorer. Bruker z-wave fibaro multisensor for temperaturavlesning. Videre z-wave fibaro switch for å slå av og på aktuatorer. Har videre satt opp RPI med MQTT, Node-Red og TIG stack. Det jeg ønsket var å avlese og plotte temperatur fra HS via mcsMQTT plugin til influxDB og fremvisning i Grafana. Har brukt litt tid på å få Grafana opp å gå med rett data. Ser at det er data i databasen som er laget i influxDB, men fikk ikke noe opp i Grafana. Grafana sin Query var ikke lett å forstå første gang. Men etter litt prøving og feiling, så ser det ut for at det er dataformatet som var feil. MQTT er i string format, med komma separator. Ved bruk av Node-Red tar jeg inn MQTT, endrer fra komma til punktum. (msg.payload = msg.payload.replace(/[,.]/g, m => (m === ',' ? '.' : ','));
// found at https://stackoverflow.com/questions/34238005/replace-comma-by-dot-and-dot-by-comma
// after a search at bing javascript string replace comma with dot)
Deretter gjorde jeg om fra string til number , med en change funsjon i Node-Red ($number(payload)), eller kan også gjøres i den første funksjonen (msg.payload = Number(msg.payload); return msg;). Når dette var gjort, så ble alt sendt til influxDB databasen. Senere ville jeg også ha med 'location' når jeg senere skal utvide dette til flere temperatur sensorer. ( msg.payload={location: "stue", temperature:msg.payload};
return msg;). En sjekk av data i influxDB, ' show field keys' og ser at temperaturdata er 'float' og da klar for avlesning i Grafana. Query i Grafana: SELECT distinct("temperature") FROM "temp_stue" WHERE ("location" = 'stue') AND $timeFilter GROUP BY time(1s) fill(none), som virker for mitt prosjekt.
Det neste er å bruke samme database og legge til flere location, sov, bad osv.