We'd have to see the code you're running to look at it in detail.
Where did you get 'cputemp.py' and how can we get a look at the exact 
version you're running ?

FWIW - you check the temperature on a pi by running "vcgencmd measure_temp" 
which reads the right thing under /proc and formats it for output

On Thursday, November 12, 2020 at 3:19:45 PM UTC-8 [email protected] wrote:

> Ok,  I am not familiar with Python at all.  I managed to work through the 
> instructions above and make the changes to my weewx.conf file and then 
> create cputemp.py in my /usr/share/weewx/user directory.  This eliminated 
> the errors in the my syslog.  I am not seeing the cpu temp on the charts.  
> How would I look up the variables in python to see if they are registering 
> at all.  
>
> On Tuesday, June 9, 2020 at 9:35:28 PM UTC-5 [email protected] wrote:
>
>> Mike, I have updated my weewx.conf file.  Could you offer a little more 
>> clarification on the new file?  To confirm this is the /usr/bin directory?  
>> Does the filename matter?
>>
>> -Jonathan
>>
>>
>> On Friday, May 8, 2020 at 3:41:39 AM UTC-5, Mike Revitt 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/4ee70c13-5cea-4d0c-97f9-972a0b4b34dcn%40googlegroups.com.

Reply via email to