I have this working on my Rasberry pi at https://weather.cougar.eu.com/telemetry.html and this is how I did it
in weewx.conf In [Engine] [[Services]] set data_services = user.cputemp.AddCpuTemp Then add this Python program to the bin user directory where your Rasberry Pi code is. # Copyright (c) 2009-2020 Mike Revitt # See the file LICENSE.txt for your rights. """Gets the CPU temperature on a Rasberry Pi""" *import* weewx *from* weewx.engine *import* StdService *from* gpiozero *import* CPUTemperature *class* AddCpuTemp(StdService): *def* __init__(self, engine, config_dict): # Initialize my superclass first: super(AddCpuTemp, self).__init__(engine, config_dict) # Bind to any new archive record events: self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_record) *def* new_archive_record(self, event): cpu = CPUTemperature() *if* event.record['usUnits'] == weewx.US: event.record['extraTemp1'] = ( cpu.temperature * 1.8 ) + 32 *else*: event.record['extraTemp1'] = cpu.temperature On Thursday, May 7, 2020 at 3:48:53 PM UTC+1, Luc Heijst wrote: > > Recently I downloaded the latest version of weewx-cmon (v 0.20) which was > converted to use with python3. > This version, and also elder versions of cmon.py, did not read the > cpu-temp of my Raspberri PI systems (models 1B, 2B, 3B and 3B+). > > On my raspberry PI the following statement is true: *os.path.exists(tdir)*, > still > a cpu-temp could not be found in this section > The *elif os.path.exists(tfile):* statement caused the bottem section to > be skipped and that is the section that reads the RPI cpu-temp. > > See the modifications in yellow which fixed this problem. > > Luc > > --- snipped of cmon.py --- > # read cpu temperature > tdir = '/sys/class/hwmon/hwmon0/device' > # rpi keeps cpu temperature in a different location > tfile = '/sys/class/thermal/thermal_zone0/temp' > *temp_found = False* > if os.path.exists(tdir): > try: > for f in os.listdir(tdir): > if f.endswith('_input'): > s = self._readproc_line(os.path.join(tdir, f)) > if s and len(s): > *temp_found = True* > n = f.replace('_input', '') > t_C = int(s) / 1000 # degree C > record['cpu_' + n] = t_C > except Exception as e: > logdbg("read failed for %s: %s" % (tdir, e)) > ### elif os.path.exists(tfile): ### original statement > if* not temp_found and *os.path.exists(tfile): > try: > s = self._readproc_line(tfile) > t_C = int(s) / 1000 # degree C > record['cpu_temp'] = t_C > except Exception as e: > logdbg("read failed for %s: %s" % (tfile, e)) > > ----------- > > You can then access the Rasberry Pi CPU temperature as the variable extraTemp1 from within your HTML files -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/368a7cda-13db-4d7c-a11a-48449d9eb48f%40googlegroups.com.