[main] publish_on_mqtt = True store_in_influxdb = True [rs485] serialdevice = /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK05DZIG-if00-port0 serialtimeout = 0.3 read_retries = 4 # stops script execution, so use with caution! raise_error_on_reading_failure = False # Sleep for some time between readings of one meter avoid errors # i got best results (nearly no retries) with sleep_between_instruments = 0.03 and sleep_between_readings = 0 # when reading 3 SDM120 meters set (9600 baud, parity EVEN) # i.e. reading current, power, appearent power and power factor from 1 meter needs about 300ms # providing an update rate of more than 1/s for 3 meters sleep_between_readings = 0 sleep_between_instruments = 0.03 report_instrument_read_retries = False # publish ongoing instrument read errors on MQTT topic - MQTT must be enabled and error topic set in mqtt section # time in s after that repeated instrument reading errors are published via MQTT # interval in s to publish repeated instrument reading errors via MQTT readingerror_publish_after = 60 readingerror_publish_interval = 300 [mqtt] enable = true server = mqtt.lan port = 1883 user = password = # topic prefix topic_prefix = PowerMeters/Top5 # topic for error messages topic_error = PowerMeters/Top5/Modbus/ERROR [filelog] # needed for calculating today/yesterday totals, so only disable if that is not needed enable = True storage_path = /home/pi/modbuslog [meters] # s, base interval for reading instruments # set to 0 to acquire data as fast as possible interval_momentary = 0 # s, interval for reporting momentary readings, 0 to report immediately # (overruled by powerdelta settings) interval_report_momentary = 60 # s, interval for reporting kWh-readings # this runs within the base meter reading method, but is performed less often than "interval_momentary" # by measuring elapsed time since last reading, so actual interval can vary, especially when # high "interval_momentary" is set to a higher value. To avoid that set # "interval_momentary" (= command parameter --interval) to desired value # and configure "meters_use_only_one_interval" to True if momentary data should not be read more often interval_energy = 60 # use only interval 1 (which is interval_momentary) use_only_one_interval = False # report momentary readings immediately on sudden power changes # this uses the readings in category "power" in readings_names.yml # value is in % (decimal notation) report_on_powerdelta_enable = true report_on_powerdelta_low = 0.95 report_on_powerdelta_high = 1.05 # different powerdelta configuration for low load conditions report_on_lowpower_powerdelta_low = 0.70 report_on_lowpower_powerdelta_high = 1.30 # define max Watts for low power tresholds report_on_lowpower_treshold = 10 # add reading time to MQTT messages and InfluxDB # this is the measured time in seconds that was needed to get all the data from the instrument send_readtime = False [readings] # default decimal places for data conversion # used for readings that donĀ“t have this setting configured separately in meters_types.yml default_decimals = 3 [influxdb] write_energy_today_total = True write_energy_yesterday_total = True separate_momentary_database = True host = localhost port = 8086 user = password = database = energymeters [influxdb_momentary] host = localhost port = 8086 user = password = database = energy_momentary