nach fast 10 Jahren war ein Zentralenupgrade notwendig. Den steinigen Weg hin zur Umsetzung (s.u.) erspare ich allen hier, danke aber schon mal allen Fleißigen, die so viel Tools und Software bereit stellen! Highcharts kommt wie ich in die Jahre und da ich gute Erfahrungen mit influx und grafana mit meinem Kraftwerksdaten habe, möchte ich die HM Daten künftig auch so sichern und darstellen.
Es läuft (fast) alles (!), nur beim Speichern in die influxDB bekomme ich keine Integerwerte hin. In Influx landet (legt influx so an) entweder ein String oder ein Float. Ich bin nur ein Gelegenheitsprogrammierer und mit meinem Latein hier am Ende.
Die Daten werden von einem Function Node aufbereitet und dann an den Adapter (node-red-contrib-stackhero-influxdb-v2) übergeben, verkürzt:
Code: Alles auswählen
var pl = {
bucket: 'Homematic',
precision: 's',
data: [{
measurement: msg.rooms[0],
tags: {
'functions': msg.functions[0],
'device': msg.device,
'name': msg.deviceName,
'datapoint': msg.datapoint,
'channelName': msg.channelName.split(':')[0]
},
fields: {},
timestamp: Math.round(msg.ts / 1000)
}]
}
pl.data[0]['fields'][msg.datapoint] = msg.value;
msg.payload = pl;
return msg;
Sobald ich bei einem Integerwert ein 'i' anfüge, landen Strings im Influx und keine Integer. Beispiel (Ergänzung zu obigem Code:
Code: Alles auswählen
...
if (msg.datapointType==='INTEGER')
{
pl.data[0]['fields'][msg.datapoint] = msg.value+'i';
}
else
{
pl.data[0]['fields'][msg.datapoint] = parseFloat(msg.value);
}
...
Aber wie bekommt man dann ein Integer in die DB?
Umgebung: RPi4 8GB, USB-SSD, Docker/Portainer, RaspberryMatic, HmIP-RFUSB, RedMatic, Node-RED, influxDB 2 (alles aktuell).