Works perfectly. On Fri, 8 May 2020 at 09:41, Mike Revitt <m...@cougar.eu.com> wrote:
> 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 > <https://groups.google.com/d/msgid/weewx-user/368a7cda-13db-4d7c-a11a-48449d9eb48f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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/CADASSaQ9fC9DzFoXJDF2X%2BZxAutnsErr765D6W8b2%2B54zebbAA%40mail.gmail.com.