<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
Hi all,<br>
<br>
As promised, here are the final versions of the scripts used to monitor
the temperatures on my mint machine and provide the data via web page.<br>
<br>
The following commands start everything up:<br>
<br>
# section to start temperature monitoring scripts<br>
<br>
cd ~/temperature-scripts<br>
<br>
# commands to start the sensor monitoring script<br>
<br>
mate-terminal --geometry=82x5+0450+800 -t "Monitor Temperature Sensors"
-e "watch -n 15 ./checktemps.sh" &amp;&gt;/dev/null &amp;<br>
<br>
# commands to start the mini temperature web server<br>
<br>
mate-terminal --geometry=82x5+01800+800 -t "Run Temperature Web Server"
-e ./startminitempwebserver.sh &amp;&gt;/dev/null &amp;<br>
<br>
----------------------<br>
<br>
Here is the checktemps.sh which is executed every 15 sec by the watch
command.&nbsp; I made some mods to make this a more standard html file.:<br>
<br>
#!/bin/bash<br>
<br>
# Script to monitor temperatures on the pc and save data to an html
file.<br>
# This script can be called repeatedly using the watch command.<br>
# Ron Frazier - 2013-06-07<br>
<br>
cd ~/temperature-scripts<br>
<br>
{<br>
<br>
# read the temperature sensors and create temporary html file<br>
<br>
echo '&lt;!DOCTYPE html&gt;'<br>
echo '&lt;html&gt;'<br>
<br>
echo '&lt;head&gt;'<br>
echo '&lt;title&gt;Bugs01 Temperatures&lt;/title&gt;'<br>
echo '&lt;/head&gt;'<br>
<br>
echo '&lt;body&gt;'<br>
<br>
echo 'Bugs01 Temperatures'<br>
echo '&lt;p&gt;'<br>
<br>
date<br>
echo '&lt;p&gt;'<br>
<br>
echo 'CPU - '<br>
sensors | grep 'temp1'<br>
echo '&lt;p&gt;'<br>
<br>
# used visudo to set hddtemp to not require sudo password<br>
<br>
echo 'HDD1 - '<br>
sudo -S hddtemp /dev/sda<br>
echo '&lt;p&gt;'<br>
<br>
echo 'HDD2 - '<br>
sudo -S hddtemp /dev/sdb<br>
echo '&lt;p&gt;'<br>
<br>
echo 'GPU0 - '<br>
aticonfig --adapter=0 --odgt<br>
echo '&lt;p&gt;'<br>
<br>
echo 'GPU1 - '<br>
aticonfig --adapter=1 --odgt<br>
echo '&lt;p&gt;'<br>
<br>
echo 'GPU2 - '<br>
aticonfig --adapter=2 --odgt<br>
echo '&lt;p&gt;'<br>
<br>
echo '&lt;/body&gt;'<br>
<br>
echo '&lt;/html&gt;'<br>
echo ""<br>
<br>
} &gt; ./scratch/scratch-temperature.html<br>
<br>
# copy the temporary file to the usable file to prevent partial file
retrieval<br>
<br>
mv ./scratch/scratch-temperature.html ./temperature.html<br>
<br>
---------------------<br>
<br>
Here is the startminitempwebserver.sh which runs netcat continuously to
serve up my 1 web page.&nbsp; You could do many different pages on different
ports if you wanted.&nbsp; I was never able to get proper formatting on
alternate ports by using the content type definitions.&nbsp; This script
embeds some headers into the web page before it is served.&nbsp; This makes
the browser happy.&nbsp; Not quite sure what all this does, found it on
google, but it works.:<br>
<br>
#!/bin/bash<br>
cd ~/temperature-scripts<br>
<br>
while true; do { echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c
&lt;./temperature.html)\r\n\r\n"; cat ./temperature.html; } | nc -l
56789; done<br>
<br>
---------------------<br>
<br>
I had to modify the sudoers file with visudo to allow use of hddtemp
without a sudo password.:<br>
<br>
#<br>
# This file MUST be edited with the 'visudo' command as root.<br>
#<br>
# Please consider adding local content in /etc/sudoers.d/ instead of<br>
# directly modifying this file.<br>
#<br>
# See the man page for details on how to write a sudoers file.<br>
#<br>
Defaults&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; env_reset<br>
Defaults&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"<br>
<br>
# Host alias specification<br>
<br>
# User alias specification<br>
<br>
# Cmnd alias specification<br>
<br>
# User privilege specification<br>
root&nbsp;&nbsp;&nbsp; ALL=(ALL:ALL) ALL<br>
<br>
# Members of the admin group may gain root privileges<br>
%admin ALL=(ALL) ALL<br>
<br>
# Allow members of group sudo to execute any command<br>
%sudo&nbsp;&nbsp; ALL=(ALL:ALL) ALL<br>
<br>
# See sudoers(5) for more information on "#include" directives:<br>
<br>
#includedir /etc/sudoers.d<br>
<br>
# line to remove password requirement for hddtemp - may have to be at
end of file<br>
ron&nbsp;&nbsp;&nbsp;&nbsp; ALL=(ALL) NOPASSWD: /usr/sbin/hddtemp<br>
<br>
---------------<br>
<br>
Here is a sample of the html file that gets generated every 15
seconds.&nbsp; I can view this from any computer on my network that's
attached to the same router.&nbsp; I could also possibly upload it to
dropbox every 5 minutes, but I don't know if they'd like that.<br>
<br>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=ISO-8859-1">
<title></title>
<meta name="GENERATOR" content="LibreOffice 3.6  (Windows)">
<meta name="CREATED" content="0;0">
<meta name="CHANGED" content="0;0">
<p>Bugs01 Temperatures </p>
<p>Sun Jun 9 10:19:36 EDT 2013 </p>
<p>CPU - temp1: +44.6&deg;C (high = +70.0&deg;C) </p>
<p>HDD1 - /dev/sda: ST9320320AS: 26&deg;C </p>
<p>HDD2 - /dev/sdb: ST95005620AS: 29&deg;C </p>
<p>GPU0 - Adapter 0 - AMD Radeon HD 7800 Series Sensor 0: Temperature
- 81.00 C </p>
<p>GPU1 - Adapter 1 - AMD Radeon HD 6700 Series Sensor 0: Temperature
- 77.00 C </p>
<p>GPU2 - Adapter 2 - AMD Radeon HD 7800 Series Sensor 0: Temperature
- 71.00 C </p>
------------------<br>
<br>
Thanks for the help in solving my problem.&nbsp; Anyone is welcome to use
the scripts.<br>
<br>
Sincerely,<br>
<br>
Ron<br>
<br>
<br>
On 6/7/2013 8:11 PM, Ron Frazier (ALE) wrote:
<blockquote cite="mid:51B276B7.9050808@techstarship.com" type="cite">Hi
all,
  <br>
  <br>
Hip Hip Hurray!
  <br>
  <br>
I finally got my remote "weather" monitoring system running.&nbsp; It was
NOT easy.&nbsp; I spent all day (thus far) rewriting and editing scripts
and, among other things, troubleshooting problems with commands that
require sudo and funky web page formatting from netcat.&nbsp; Thanks to all
for the relevant and specific tips you provided.&nbsp; I wouldn't have been
able to do this without your help in any reasonable about of time.&nbsp; I
can now monitor the temperatures inside my downstairs computer from a
web browser on my upstairs computer as long as they're on the same wifi
router.&nbsp; I can even monitor it from my tablet.&nbsp; Very cool!
  <br>
  <br>
I have implemented a number of the tips you all gave me.&nbsp; Many
different script files are involved, which I hope to post before next
week, so others can benefit from the information.&nbsp; I have also been
working on other technologies, including running spinrite to test a
hard drive in a vm while I'm doing other things with the computer,
which was not possible for me before.&nbsp; I wrote another post about that.
  <br>
  <br>
You might find this interesting.
  <br>
  <br>
<a class="moz-txt-link-freetext" href="https://dl.dropboxusercontent.com/u/9879631/master-control.png">https://dl.dropboxusercontent.com/u/9879631/master-control.png</a>
  <br>
  <br>
This is what I call my master control screen on a second monitor.&nbsp;
That's where I keep track of a number of things I have going on in the
pc.
  <br>
  <br>
Here's what each window does numbering from left to right:
  <br>
  <br>
Top Row:
  <br>
  <br>
window 1: monitors litecoin mining
  <br>
window 2: monitors the cpu cores
  <br>
window 3: spinrite running in a vm - YEA! (very slowly - BOO!)
  <br>
  <br>
Middle Row:
  <br>
  <br>
window 4: litecoin wallet
  <br>
window 5: monitors local gpu 1 - mainly temperature
  <br>
window 6: monitors local gpu 2 - mainly temperature
  <br>
window 7: monitors local weather radar - so I can shut down if storms
are coming
  <br>
  <br>
Bottom Row:
  <br>
  <br>
window 8: monitors litecoin pricing
  <br>
window 9: monitors temperatures in the basement computer - YEA!
  <br>
  <br>
Reestablishing all these things when I reboot is a major pain, so I try
not to do so too often.
  <br>
  <br>
I'm very pleased with the results today, although I had hoped it would
go faster.&nbsp; All the screens auto update.&nbsp; For the ones that are browser
based, I make extensive use of an auto update plugin for firefox and of
the ability to scale the web page in firefox by hitting the ctrl- and
ctrl+ keys.&nbsp; I then size the window to fit the image.
  <br>
  <br>
Here's the plugin: <a class="moz-txt-link-freetext" href="http://reloadevery.mozdev.org/">http://reloadevery.mozdev.org/</a>
  <br>
  <br>
There is one bug in my temperature monitoring system.&nbsp; On any
particular refresh of the web page for the Bugs01 machine, it displays
the web page that was active at the time of the previous refresh.&nbsp; I'm
assuming that netcat precaches the file it will be transmitting when it
starts and then waits for a request.&nbsp; I'm not too worried about it
since I have the web page refreshing every 1 minute.&nbsp; On the server
side, it generates a new temperature.html every 15 seconds.&nbsp; So, the
data I'm seeing on the screen could be up to 2 minutes out of date
depending on the timing of the refresh cycle.&nbsp; That's ok for my
purposes.
  <br>
  <br>
A side effect of having this display is that I can tell if the Bugs01
clock is wandering.&nbsp; I haven't set ntp up on that one yet.
  <br>
  <br>
Again, thanks for all the help.
  <br>
  <br>
Sincerely,
  <br>
  <br>
Ron
  <br>
  <br>
  <br>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 

(PS - If you email me and don't get a quick response, you might want to
call on the phone.  I get about 300 emails per day from alternate energy
mailing lists and such.  I don't always see new email messages very quickly.)

Ron Frazier
770-205-9422 (O)   Leave a message.
linuxdude AT techstarship.com 
Litecoin: LZzAJu9rZEWzALxDhAHnWLRvybVAVgwTh3
Bitcoin: 15s3aLVsxm8EuQvT8gUDw3RWqvuY9hPGUU
</pre>
</body>
</html>