I’m trying to send OpenEMS data to an Influx bucket in the cloud. The data points are received on Influx on the first entry, but no history is made. The following error is what is logged in the Eclipse IDE:
[influx0] Unable to write to InfluxDB: HTTP status code: 400; Message: dml handler error: service limit reached: couldn't create columns in table `data`; table contains 183 existing columns, applying this write would result in 459 columns, limit is 200
I’m able to send and receive data if I turn of some points, such as the battery (for now from the simulation), but this is what I want to log.
Any ideas on how to solve this problem or how to split the data in chunks? (If I’m correct I’m using the latest version of OpenEMS, Eclipse and Influx.)
I think splitting up the data would not give you better results, since your cloud provider restricted the number of columns to 200.
You could look into the package io.openems.edge.timedata.influxdb. The file InfluxTimedataImpl.java is responsible for taking measurements and send them to the cloud server.
Especially the method collectAndWriteChannelValues collects and writes the value of all channels in the system. You could modify this method to write less values to align with your providers limit.
I tried to modify the file you are referring too, collectAndWriteChannelValues, but I’m not sure what to edit. I feel like I’ve to rearrange the way namespaces, tables and columns are collected in OpenEMS. Do you have any ideas on how to do this?