Skip to content

Commit

Permalink
Output File (#157)
Browse files Browse the repository at this point in the history
* added output file to write some values to a text file

* bugfix, return statement was missing and also the description for the example is updated
  • Loading branch information
pallago authored Dec 6, 2024
1 parent 8797932 commit a4745ab
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/config.py.example
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,18 @@ cpu_thermal_zone = 'cpu'
# read external sensors for temperature, humidity, pressure etc.
ext_sensors = False
#ext_sensors = [["Housing", "ds18b20", "0014531448ff", -300], ["ext2", "sht21", 0, [-300, 0]]]

# output file
output_filename = False
#output_filename = "/dev/shm/mjpeg/user_annotate.txt"
# a for append or w for write (overwrites content)
output_mode = "w"
# define what should be in the output
def get_content_outputfile():
# In this example the values from the ext_sensors are used
# the values for the temperature values are rounded to 1 decimal
sht21_temp = round(float(ext_sensors[1][3][0]), 1)
sht21_hum = ext_sensors[1][3][1]
ds18b20_temp = round(float(ext_sensors[0][3]), 1)
return f"T: {sht21_temp} 'C; H: {sht21_hum} %% ; T-Rpi: {ds18b20_temp} 'C"

18 changes: 18 additions & 0 deletions src/rpi-cpu2mqtt.py
Original file line number Diff line number Diff line change
Expand Up @@ -917,6 +917,24 @@ def gather_and_send_info():
if args.display:
print_measured_values(monitored_values)

# write some output to a file
if config.output_filename:
# the only options are "a" for append or "w" for (over)write
# check if one of this options is defined
if config.output_mode not in ["a", "w"]:
print("Error, output_type not known. Default w is set.")
config.output_type = "w"
try:
# open the text file
output_file = open(config.output_filename, config.output_mode)
# read what should be written into the textfile
# we need to define this is a function, otherwise the values are not updated and default values are taken
output_content = config.get_content_outputfile()
output_file.write(output_content)
output_file.close()
except Exception as e:
print("Error writing to output file:", e)

if args.hass_api:
publish_to_hass_api(monitored_values)
else:
Expand Down

0 comments on commit a4745ab

Please sign in to comment.