mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
cfc272864e
git-svn-id: https://svn.fhem.de/fhem/trunk@664 2b470e98-0d58-463d-a4d8-8e2adae1ed80
371 lines
15 KiB
HTML
371 lines
15 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
<title>FHEM Howto</title>
|
|
<style type="text/css">
|
|
body { background-color: #FFFFE7;}
|
|
#left { position:absolute; top:20px; left:20px; width:140px; }
|
|
#right { position:absolute; top:20px; left:180px; bottom:20px; right:10px; }
|
|
body>div#left { position:fixed; }
|
|
h3 { color:#52865D; line-height:1.3;
|
|
margin-top:1.5em; font-family:Arial,Sans-serif; }
|
|
div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; }
|
|
div#dist { padding-top:0.3em; }
|
|
a { color: #278727; }
|
|
</style>
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
<div id="left">
|
|
<img src="fhem.png">
|
|
<h3>FHEM Howto</h3>
|
|
</div>
|
|
|
|
|
|
<div id="right">
|
|
<!--
|
|
<a href="#starting">Starting</a><br>
|
|
<a href="#FHZ">Attaching an FHZ/CUL</a><br>
|
|
<a href="#FS20rx">Configuring FS20 receivers</a><br>
|
|
<a href="#FS20tx">Configuring FS20 transmitters</a><br>
|
|
<a href="#FHT">Configuring FHT devices</a><br>
|
|
<a href="#at">Timed commands / Notify</a><br>
|
|
<a href="#rooms">FHEMWEB look and feel</a><br>
|
|
<a href="#log">Logging data</a><br>
|
|
<a href="#plot">Plotting logs</a><br>
|
|
<a href="#tips">FHEMWEB tips</a><br>
|
|
<a href="#structure">Complex structures</a><br>
|
|
-->
|
|
|
|
|
|
<a name="starting"></a>
|
|
<h3>Starting fhem</h3>
|
|
<ul>
|
|
Skip this section if you installed fhem via the Debian package.<br><br>
|
|
|
|
First install the Device::SerialPort (or Win32::SerialPort) perl module
|
|
with the command <code>"sudo cpan Device::SerialPort"</code></br>
|
|
The default configuration will install fhem into /usr/bin,
|
|
/usr/share/fhem and /var/log/fhem. Edit the Makefile to change
|
|
this.
|
|
|
|
To install & start fhem type:<pre>
|
|
make install-pgm2
|
|
perl /usr/local/bin/fhem.pl /var/log/fhem/fhem.cfg</pre>
|
|
|
|
After starting, the logfile should look like:<pre>
|
|
2008.06.15 16:17:03 2: FHEMWEB port 8083 opened
|
|
2008.06.15 16:17:03 2: FHEMWEB port 8084 opened
|
|
2008.06.15 16:17:03 0: Server started (version ...)
|
|
</pre>
|
|
Connect to fhem with an internet browser:
|
|
<a href="http://localhost:8083/fhem">http://localhost:8083/fhem</a><br>
|
|
or
|
|
<a href="http://localhost:8084/fhem">http://localhost:8084/fhem</a> if
|
|
you are using a small-screen browser (e.g a smartphone).
|
|
</ul>
|
|
|
|
|
|
<a name="FHZ"></a>
|
|
<h3>Attaching the USB device for the PC (CUL / FHZ / EM1010PC)</h3>
|
|
<ul>
|
|
Attach the USB device (CUL, FHZ1000/FHZ1300, EM1010PC) to your computer,
|
|
and look for the corresponding device in the /dev directory.<br>
|
|
For CUL a file named /dev/ttyACM* will be created under Linux and
|
|
/dev/cu.usbmodem* under OSX. Note the exact name of the device.
|
|
Define it for fhem (by typing it in the "Fhem cmd" input field in the
|
|
browser):<pre>
|
|
define CUL1 CUL /dev/ttyACM0 1234</pre>
|
|
|
|
You can find details about CUL define parameters <a
|
|
href="commandref.html#CUL">here</a>.<br><br>
|
|
|
|
|
|
Instead of the CUL you can also use an <a
|
|
href="commandref.html#FHZ">FHZ</a> with slightly different parameters
|
|
(define FHZ1 FHZ /dev/ttyUSB0).
|
|
|
|
<br><br>
|
|
<b>Note:</b> Don't forget to type "save" in the "Fhem cmd" input field of
|
|
the browser after defining a device or setting its attribute. Otherwise
|
|
the changes will disappear after the next start.</br><br> </ul>
|
|
|
|
<a name="autocreate"></a>
|
|
<h3>Automatically creating transmitters</h3>
|
|
<ul>
|
|
The sample configuration file installed via "make install-pgm2" has
|
|
configured an <a href="commandref.html#autocreate">autocreate</a>
|
|
instance. This will automatically create fhem devices upon reception
|
|
of a message from this device (typically a sensor like S300 or FHT).
|
|
Just wait for a while, watch the log and re-check your browser for newly
|
|
appeared devices. You can use <a href="commandref.html#rename">
|
|
rename</a> to rename the automatically created device, e.g. type in the
|
|
input field of the web frontend:<pre>
|
|
rename FHT_1234 fht.kitchen</pre>
|
|
</ul>
|
|
|
|
|
|
<a name="FS20tx"></a>
|
|
<h3>Misc. RF transmitters (FS20/EM/S300 etc.)</h3>
|
|
<ul>
|
|
<a href="commandref.html#autocreate">autocreate</a> will create
|
|
automatically fhem FS20/EM/S300/HMS devices, the following description is
|
|
for doing it manually.<br><br>
|
|
|
|
Wait a while, until the transmitter sent some data. In the logfile
|
|
(Browser window: "All together" -> Logs:Logfile:text) a line
|
|
will appear:<pre>
|
|
FS20 Unknown device <HOUSECODE, Button <BTN> Code <CDE>, please define it</pre>
|
|
|
|
Now define a device:<pre>
|
|
define piri1 FS20 <HOUSECODE> <BTN></pre>
|
|
|
|
Set the model attribute of the device:<pre>
|
|
attr lamp1 model fs20piri</pre>
|
|
|
|
to get only the commands available for this device.
|
|
<a href="commandref.html#model">Here</a> is a complete list of FS20
|
|
models.<br> For other device-types similar messages should appear.
|
|
</ul>
|
|
</ul>
|
|
|
|
<a name="FS20rx"></a>
|
|
<h3>Configuring FS20 receivers</h3>
|
|
<ul>
|
|
Configure the <a href="commandref.html#FS20">FS20</a> device in
|
|
fhem first with:<pre>
|
|
define lamp1 FS20 1234 56</pre>
|
|
|
|
Now press the button on the device for a while until its LED starts to
|
|
blink. Click on the "on" link in the fhem window to send a command. The
|
|
LED should terminate blinking, the device is programmed to housecode
|
|
1234, device code 56. You can also use the 4-base ELV notation.
|
|
Now set the model attribute of the device:<pre>
|
|
attr lamp1 model fs20st</pre>
|
|
|
|
to get only the commands available for this device.
|
|
<a href="commandref.html#model">Here</a> is a complete list of models.
|
|
</ul>
|
|
|
|
|
|
<a name="FHT"></a>
|
|
<h3>Configuring FHT devices</h3>
|
|
<ul>
|
|
<b>Note:</b> Creating a fhem FHT device automatically or manually does
|
|
not imply that the CUL or the FHZ is paired with it. For this purpose you
|
|
have to set the FHT to accept new "Cent" devices, and send a command to
|
|
it (e.g. set fht.kitchen desired-temp 20)<br><br>
|
|
|
|
<a href="commandref.html#autocreate">autocreate</a> will create
|
|
automatically FHT devices, the following description is for
|
|
doing it manually.<br><br>
|
|
|
|
Wait for a while (2-5 mins) till the FHT is sending some signals. In the
|
|
logfile ("All together" -> Logs:LogFile:text) a line should
|
|
appear:<br><pre>
|
|
FHZ1: Unknown FHT device detected, define one to get detailed information</pre>
|
|
|
|
Define your FHT device with an arbitrary code in order to load the FHT
|
|
module, see <a href="commandref.html#FHT">this</a> link for details:<pre>
|
|
define MyFHT FHT 1111</pre>
|
|
|
|
The next message in the log will contain more details:<pre>
|
|
FHT Unknown device <HOUSECODE>, please define it</pre>
|
|
|
|
Delete and create your device again:<pre>
|
|
delete MyFHT
|
|
define MyFHT FHT <HOUSECODE></pre>
|
|
|
|
If there is no signal for a while, then check <a href="faq.html#faq6">
|
|
this</a> FAQ entry.
|
|
</ul>
|
|
|
|
<a name="at"></a>
|
|
<h3>Timed commands / Notification</h3>
|
|
<ul>
|
|
To execute commands at a given time / periodically, you have to define
|
|
devices of the type at. See the definition <a href="commandref.html#at">
|
|
here</a> and the examples <a href="example.06_at">here</a> The last link
|
|
only works if you are reading this HOWTO from your fhem Web.<br><br>
|
|
|
|
To execute commands if a device sent a message you have to define
|
|
devices of the type <a href="commandref.html#notify">notify</a> or
|
|
<a href="commandref.html#watchdog">watchdog</a>. In order to understand
|
|
the fhem events better you can open a telnet session to your fhem<pre>
|
|
telnet localhost 7072</pre>
|
|
|
|
and type <pre>
|
|
inform timer</pre>
|
|
|
|
Now you will receive in this telnet session all events, just like the
|
|
notifies/watchdogs do. You can even simulate events by using the
|
|
<a href="commandref.html#trigger">trigger</a> command:<pre>
|
|
trigger lamp1 on</pre>
|
|
</ul>
|
|
|
|
<a name="rooms"></a>
|
|
<h3>FHEMWEB (pgm2) look and feel</h3>
|
|
<ul>
|
|
It makes sense to group your devices into rooms by setting the room
|
|
attribute. FHEMWEB puts devices without a room attribute into the
|
|
"Unsorted" room. Devices in the room "hidden" will not be shown.
|
|
<br><br>
|
|
|
|
Set the title of the webpage by setting the title attribute of the global
|
|
device ("All together" -> global)<br><br>
|
|
|
|
Edit the colors / fonts by changing the style.css ("Edit files" ->
|
|
style.css)<br><br>
|
|
|
|
Further FHEMWEB attributes:
|
|
<a href="commandref.html#webname">webname</a>,
|
|
<a href="commandref.html#plotmode">plotmode</a>,
|
|
<a href="commandref.html#plotsize">plotsize</a>.
|
|
</ul>
|
|
|
|
<a name="log"></a>
|
|
<h3>Logging data</h3>
|
|
<ul>
|
|
To log messages into files, define devices of the type <a
|
|
href="commandref.html#FileLog">FileLog</a>. Autocreate will create
|
|
logfiles for newly detected devices. To log messages into a
|
|
database, see the contrib/dblog directory in the fhem
|
|
distribution.<br><br>
|
|
|
|
FHEMWEB has builtin support for displaying FileLog type logs as plots,
|
|
see the <a href="#plot">plot</a> section below.<br><br>
|
|
|
|
The size of each logfile will be determined by its wildcard characters
|
|
(year/month/week/day), look at the <a href="commandref.html#FileLog">
|
|
FileLog</a> definition.
|
|
Don't forget to enable archiving with the <a
|
|
href="commandref.html#nrarchive">nrarchive</a> or <a
|
|
href="commandref.html#archivedir">archivecmd</a> attributes.
|
|
</ul>
|
|
|
|
<a name="plot"></a>
|
|
<h3>Plotting logs</h3>
|
|
<ul>
|
|
Autocreate will create weblinks (i.e. plots) for newly detected devices.
|
|
The following section describes how to do it manually.<br>
|
|
|
|
To convert a log into a plot in FHEMWEB, set the
|
|
<a href="commandref.html#logtype">logtype</a> attribute of the
|
|
corresponding FileLog. Take a look at the available gnuplot files in the
|
|
"Edit files" section, they contain the corresponding FileLog definition
|
|
example.<br>
|
|
Note that the .gplot files are also used if you use SVG output and
|
|
not the gnuplot backend!<br><br>
|
|
|
|
When displaying the plot, you can convert it into a "weblink", which can
|
|
in turn have a room attribute to group more than one Plot together. If
|
|
the weblink refers to the current logfile, then it will be stored as a
|
|
CURRENT weblink, and it will always display the most recent log (you do
|
|
not have to redefine it if the logfile changes due to year/month/date
|
|
parameters in its name).
|
|
<br><br>
|
|
|
|
|
|
The logs can be converted to a plot either with gnuplot (which must be
|
|
installed and in your PATH), or via the builtin SVG module, in this case
|
|
your internet browser must support SVG. Firefox, opera and the
|
|
iPhone/Android borwser support SVG out of the box, Internet Explorer does
|
|
it via the Adobe "SVG viewer" plugin. SVG mode is the default, to change
|
|
it set the <a href="commandref.html#plotmode">plotmode</a> attribute to
|
|
gnuplot or gnuplot-scroll.<br><br>
|
|
|
|
In order to look at historic data, you can either convert at the
|
|
archive entries to weblink in "plotmode=gnuplot" mode, or use the
|
|
"plotmode=gnuplot-scroll" or "plotmode=SVG" modes. In the latter case
|
|
you'll get the possibility to zoom or scroll in the plot.<br><br>
|
|
|
|
Use the zoom and scroll icons at the top of the page.<br><br>
|
|
|
|
The current time scope (day, week, month..) set at the overview
|
|
page (containing weblinks) will also be used for graphics you open via
|
|
links (current log or archive) - there are no zoom and scroll icons
|
|
there.<br><br>
|
|
|
|
Note: the gnuplot files must have #FileLog entries in order to be
|
|
useable with scrolling, as the filtering happens with the FileLog get
|
|
function, see the supplied gnuplot files for an example.<br><br>
|
|
|
|
The order of the #FileLog lines need to match the corresponding
|
|
'awk'-(double-)lines!<br><br>
|
|
|
|
It make sense to build large logfiles for scrolling in them (year
|
|
resolution), or smaller ones if you do not want to use the zoom/scroll
|
|
feature. The size of the logfiles will be determined by its wildcard
|
|
characters (year/month/week/day), look at the FileLog definition.
|
|
Don't forget to enable archiving with the archivedir or archivecmd
|
|
attributes.<br><br>
|
|
|
|
</ul>
|
|
|
|
<a name="tips"></a>
|
|
<h3>FHEMWEB tips</h3>
|
|
<ul>
|
|
Click on the State link on the device page to get a documentation of
|
|
all its settable values, similarly clicking on Attributes will guide you
|
|
to the documentation of its attributes.
|
|
<br><br>
|
|
|
|
Password/HTTPS<br>
|
|
These features are implemented by apache, and apache must be configured
|
|
to redirect the page to 01_FHEMWEB.pm. For this purpose add the following
|
|
lines to your httpd.conf:<pre>
|
|
<Proxy *>
|
|
AuthType Basic
|
|
AuthName "Password Required"
|
|
AuthUserFile /home/httpd/etc/passwd
|
|
Require valid-user
|
|
Allow from 127.0.0.1
|
|
</Proxy>
|
|
ProxyPass /fhem http://localhost:8083/fhem
|
|
ProxyPassReverse /fhem http://localhost:8083/fhem</pre>
|
|
|
|
and then restart httpd with apachectl graceful. To create the password
|
|
file, execute<br>
|
|
htpasswd -c /home/httpd/etc/passwd <username>
|
|
<br><br>
|
|
|
|
To enable HTTPS, please check the web. In essence:<br>
|
|
<ul>
|
|
<li>Edit httpd.conf, add:<pre>
|
|
LoadModule ssl_module lib/apache/mod_ssl.so
|
|
Include /etc/httpd/conf/ssl.conf</pre></li>
|
|
<li>Create a server certificate</li>
|
|
<li>Start httpd with the startssl option (SSL or the like must be set in
|
|
one of your system files, look at /etc/init.d/httpd).</li>
|
|
</ul>
|
|
<br><br>
|
|
|
|
To display "foreign" (non fhem) files as a plot or a just as plain text,
|
|
configure a fake logfile with the correct filename and an unused regexp,
|
|
e.g.<br><pre>
|
|
define messages FileLog /var/log/messages fakelog</pre>
|
|
|
|
|
|
</ul>
|
|
<br>
|
|
|
|
|
|
<a name="structure"></a>
|
|
<h3>Complex structures</h3>
|
|
<ul>
|
|
Put your devices in different rooms. You can now use the
|
|
room=<roomname> specification to set different devices at once.
|
|
See the <a href="commandref.html#devspec">devspec</a> paragraph for details.<br>
|
|
For more complex scenarios consider the <a href="commandref.html#structure">
|
|
structure</a> module. You can define different structure levels like
|
|
floors, buildings, etc. and set all elements of a given structure at once.
|
|
</ul>
|
|
|
|
</div>
|
|
<body>
|
|
</html>
|