2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

New look & feel

git-svn-id: https://svn.fhem.de/fhem/trunk@577 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2010-02-27 10:09:32 +00:00
parent 2d61186100
commit ac3e34c5f2
6 changed files with 608 additions and 397 deletions

View File

@ -1,10 +1,31 @@
<html>
<head>
<title>FHEMWEB Howto</title>
</head>
<body style="background-color: white;">
<h2>FHEMWEB Howto</h2>
<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/>
@ -16,9 +37,10 @@
<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 name="starting"></a>
<h3>Starting</h3>
<ul>
First install the Device::SerialPort (or Win32::SerialPort) perl module
@ -40,7 +62,7 @@
</ul>
<a name="FHZ"/>
<a name="FHZ"></a>
<h3>Attaching an FHZ/CUL</h3>
<ul>
Attach the FHZ1000 or FHZ1300 to your computer, and look for a file named
@ -58,7 +80,7 @@
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 name="autocreate"></a>
<h3>Automatically creating transmitters</h3>
<ul>
The sample configuration file installed via "make install-pgm2" has
@ -73,7 +95,7 @@
</ul>
<a name="FS20rx"/>
<a name="FS20rx"></a>
<h3>Configuring FS20 receivers</h3>
<ul>
Configure the <a href="commandref.html#FS20">FS20</a> device in
@ -91,7 +113,7 @@
<a href="commandref.html#model">Here</a> is a complete list of models.<br>
</ul>
<a name="FS20tx"/>
<a name="FS20tx"></a>
<h3>Misc. RF transmitters (FS20/EM/S300 etc.)</h3>
<ul>
Wait a while, until the transmitter sent some data. In the logfile
@ -111,7 +133,7 @@
</ul>
</ul>
<a name="FHT"/>
<a name="FHT"></a>
<h3>Configuring FHT devices</h3>
<ul>
Wait for a while (2-5 mins) till the FHT is sending some signals. In the
@ -134,7 +156,7 @@
this</a> FAQ entry.
</ul>
<a name="at"/>
<a name="at"></a>
<h3>Timed commands / Notification</h3>
<ul>
To execute commands at a given time / periodically, you have to define
@ -157,8 +179,8 @@
trigger lamp1 on</pre>
</ul>
<a name="rooms"/>
<h3>FHEMWEB look and feel.</h3>
<a name="rooms"></a>
<h3>FHEMWEB 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
@ -177,7 +199,7 @@
<a href="commandref.html#plotsize">plotsize</a>.
</ul>
<a name="log"/>
<a name="log"></a>
<h3>Logging data</h3>
<ul>
To log messages into files, define devices of the type <a
@ -196,7 +218,7 @@
href="commandref.html#archivedir">archivecmd</a> attributes.
</ul>
<a name="plot"/>
<a name="plot"></a>
<h3>Plotting logs</h3>
<ul>
To convert a log into a plot in FHEMWEB, set the
@ -251,7 +273,7 @@
</ul>
<a name="tips"/>
<a name="tips"></a>
<h3>FHEMWEB tips</h3>
<ul>
You can first set an attribute to an arbitrary (wrong) value, then click
@ -299,7 +321,7 @@
<br>
<a name="structure"/>
<a name="structure"></a>
<h3>Complex structures</h3>
<ul>
Put your devices in different rooms. You can now use the
@ -310,5 +332,6 @@
floors, buildings, etc. and set all elements of a gives structure at once.
</ul>
<body>
</div>
<body>
</html>

View File

@ -4,11 +4,29 @@
<head>
<title>fhem reference</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; }
h2,h3,h4 { 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 style="background-color: white;">
<h2>fhem.pl reference</h2>
<body>
<div id="left">
<img src="fhem.png">
<h3>fhem.pl reference</h3>
</div>
<div id="right">
<h3>Contents</h3>
<ul>
<a href="#intro">Introduction</a><br>

View File

@ -4,111 +4,169 @@
<head>
<title>FHEM FAQ</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,h4 { 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 { text-decoration:none; color: #276727; }
</style>
</head>
<body style="background-color: white;">
<h2>FHEM FAQ</h2>
<body>
<a href="#faq1">1. I am using fhem.pl with an fhz1000.pl config file and fhem.pl
won't start</a><br>
<div id="left">
<img src="fhem.png">
<h3>FHEM FAQ</h3>
</div>
<a href="#faq2">2. I get "undefined" messages in the log after upgrading
fhem.pl</a><br>
<div id="right">
<a href="#faq3">3. I switched on a FS20 device directly (without the remote),
but the fhem.pl did not noticed it. Is it a bug?</a><br>
<!--
<div id="dist">
<a href="#faq1">
1. I get a <code>Can't call method "opened"</code> message when starting
fhem. Why?</a>
</div>
<a href="#faq4">4. I have some FS20/FHT/HMS devices. How do I know their
housecode?</a><br>
<div id="dist">
<a href="#faq2">
2. I get "undefined" messages in the log after upgrading fhem.pl</a>
</div>
<a href="#faq5">5. I have the code for my devices in the ELV notation, which
contains 1,2,3 and 4, but you require a hex code. How should I convert
it?</a><br>
<div id="dist">
<a href="#faq3">
3. I switched on a FS20 device directly (without the remote), but the
fhem.pl did not noticed it. Is it a bug?</a>
</div>
<a href="#faq6">6. I replaced my FHZ1X00PC, now the FHT80b's does not work
anymore. Help me!</a><br>
<div id="dist">
<a href="#faq4">
4. I have some FS20/FHT/HMS devices. How do I know their housecode?</a>
</div>
<a href="#faq7">7. I can specify an optional ml/raincounter for a KS300. Why
do you think that 255 should be the default?</a><br>
<div id="dist">
<a href="#faq5">
5. I have the code for my devices in the ELV notation, which contains 1,2,3
and 4, but you require a hex code. How should I convert it?</a>
</div>
<a href="#faq8">8. The time specification of the builtin at command is not very
flexible. Please add day/month/weekday to it.</a><br>
<div id="dist">
<a href="#faq6">
6. I replaced my FHZ1X00PC, now the FHT80b's does not work anymore. Help
me!</a>
</div>
<a href="#faq9">9. I defined my FS20STR as an FHT device, but I do not get
any data from it.</a><br>
<div id="dist">
<a href="#faq7">
7. I can specify an optional ml/raincounter for a KS300. Why do you think
that 255 should be the default?</a>
</div>
<a href="#faq10">10. How to convert the FHT8b code seen in its display to the
hex code needed by fhem.pl?</a><br>
<div id="dist">
<a href="#faq8">
8. The time specification of the builtin at command is not very flexible.
Please add day/month/weekday to it.</a>
</div>
<a href="#faq11">11. I'd like to use this sunrise/sunset stuff, can you help
me?</a><br>
<div id="dist">
<a href="#faq9">
9. I defined my FS20STR as an FHT device, but I do not get any data from
it.</a>
</div>
<a href="#faq12">12. I'd like to switch on the ventilator if the FHT tells me
its too hot. How to tell fhem to do that?</a><br>
<div id="dist">
<a href="#faq10">
10. How to convert the FHT80b code seen in its display to the hex code needed
by fhem.pl?</a>
</div>
<a href="#faq13">13. I'd like to see directly in the Web frontend if a window
is open. How to do that?</a><br>
<div id="dist">
<a href="#faq11">
11. I'd like to use this sunrise/sunset stuff, can you help me?</a>
</div>
<a href="#faq14">14. In the summer I get a lot of "actuator:lime-protection"
messages from my FHT80b. How to switch back to the actuator:0% messages?</a>
<br>
<div id="dist">
<a href="#faq12">
12. I'd like to switch on the ventilator if the FHT tells me its too hot. How
to tell fhem to do that?</a>
</div>
<a href="#faq15">15. My notify/filelog does not work, help me!</a><br>
<div id="dist">
<a href="#faq13">
13. I'd like to see directly in the Web frontend if a window is open. How to
do that?</a>
</div>
<a href="#faq16">16. Setting auto-mode from manual for the FHT won't change the
desired temperature!</a><br>
<div id="dist">
<a href="#faq14">
14. In the summer I get a lot of "actuator:lime-protection" messages from my
FHT80b. How to switch back to the actuator:0% messages?</a>
</div>
<a href="#faq17">17. I have problem receiving data, I get "Bad CRC" or "Oversized message."</a><br>
<div id="dist">
<a href="#faq15">
15. My notify/filelog does not work, help me!</a>
</div>
<a href="#faq18">18. My FHZ1X00PC gets all time automatically disconnected and
reconnected. My log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear".
What is wrong with my USB?
</a><br>
<div id="dist">
<a href="#faq16">
16. Setting auto-mode from manual for the FHT won't change the desired
temperature!</a>
</div>
<a href="#faq19">19. How do I set the dim100% from the at command?</a><br>
<div id="dist">
<a href="#faq17">
17. I have problem receiving data, I get "Bad CRC" or "Oversized
message."</a>
</div>
<a href="#faq20">20. Why do my Sunrise/Sunnset times differ from the ones on
webseite XXX?</a><br>
<div id="dist">
<a href="#faq18">
18. My FHZ1X00PC gets all time automatically disconnected and reconnected. My
log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear".
What is wrong with my USB?</a>
</div>
<div id="dist">
<a href="#faq19">
19. How do I set the dim100% from the at command?</a>
</div>
<div id="dist">
<a href="#faq20">
20. Why do my Sunrise/Sunset times differ from the ones on webseite
XXX?</a>
</div>
<br/>
<br/>
-->
<a name="faq1"></a>
<b>1. I am using fhem.pl with an fhz1000.pl config file and fhem.pl won't
start</b>
<ul>
The syntax changed, you have to modify you config file:
<ul>
<li>logfile/modpath/pidfile/port/verbose "renamed" to "attr global xx</li>
<ul>
<li>change logfile <xxx> to attr global logfile <xxx></li>
<li>change modpath <xxx> to attr global modpath <xxx></li>
<li>change pidfile <xxx> to attr global pidfilename <xxx></li>
<li>change port <xxx> to attr global port <xxx></li>
<li>change verbose <xxx> to attr global verbose <xxx></li>
</ul>
<li>savefile renamed to "attr global statefile" (<b>not</b> savefile)</li>
<li>at/notify "renamed" to "define at/notify"<br>
This means you have to give a name to each of your at's or
notify commands. E.g.:
<ul>
<li><code>at *07:00 set lamp on</code><br>
&nbsp;&nbsp;becomes<br>
<code>define wake_me at *07:00 set lamp on</code></li>
<li><code>notify fire:on "send_sms"</code><br>
&nbsp;&nbsp;becomes<br>
<code>define fire_alarm notify fire:on "send_sms"</code><br>
</ul>
This seems to be tedious at the beginning but you get easy
deletion and attribute specification for these commands.
</ul>
</ul>
<h4>1. I get a <code>Can't call method "opened"</code> message when starting
fhem. Why?</h4>
<ul>
You need perl &gt;=5.6, on Unix with the Device::SerialPort (<a
href="http://search.cpan.org/dist/Device-SerialPort/">
http://search.cpan.org/dist/Device-SerialPort/</a>),
on Windows Win32::SerialPort (use ActiveState's ActivePerl)
module.
If this module reports <code>Can't call method "opened" on an undefined
value...</code> when starting the server, then you either may ignore
this message, or replace the mentioned line with:<pre>
$self->{HANDLE}->close if (defined($self->{HANDLE}) &&
$self->{HANDLE}->opened);</pre>
</ul>
<a name="faq2"></a>
<b>2. I get "undefined" messages in the log after upgrading fhem.pl</b>
<h4>2. I get "undefined" messages in the log after upgrading fhem.pl</h4>
<ul>
Stop fhem.pl, delete the previous .save file and restart fhem.pl.
If the problem still exists, send a bugreport.
@ -116,8 +174,8 @@ start</b>
<a name="faq3"></a>
<b>3. I switched on a FS20 device directly (without the remote), but
the fhem.pl did not noticed it.<br>Is it a bug?</b>
<h4>3. I switched on a FS20 device directly (without the remote), but
the fhem.pl did not noticed it.<br>Is it a bug?</h4>
<ul>
The protocol used by the FS20 family is quite simple: it is </b>not</b>
encrypted in any way, and there is no feedback to the sender. So if you
@ -130,8 +188,7 @@ start</b>
<a name="faq4"></a>
<b>4. I have some FS20/FHT/HMS devices.<br>
How do I know their housecode?</b><br>
<h4>4. I have some FS20/FHT/HMS devices. How do I know their housecode?</h4>
<ul>
If you already programmed some devices, then just start fhem.pl with one
of the example configuration files, and watch the log. When activating a
@ -142,8 +199,8 @@ start</b>
<a name="faq5"></a>
<b>5. I have the code for my devices in the ELV notation, which contains 1,2,3
and 4, but fhem requires a hex code. How should I convert it?</b>
<h4>5. I have the code for my devices in the ELV notation, which contains 1,2,3
and 4, but fhem requires a hex code. How should I convert it?</h4>
<ul>
Note: current fhem versions accept FS20 codes in ELV notation.<br/><br/>
@ -176,8 +233,8 @@ and 4, but fhem requires a hex code. How should I convert it?</b>
<a name="faq6"></a>
<b>6. I replaced my FHZ1X00PC, now the FHT80b's does not work anymore.
Help me!</b>
<h4>6. I replaced my FHZ1X00PC, now the FHT80b's does not work anymore.
Help me!</h4>
<ul>
The FHT80b's are talking to a single FHZ1XXX device, which has a unique
"FHTcode". You have two choices: if you know the old FHTcode, then you can
@ -196,8 +253,8 @@ Help me!</b>
<a name="faq7"></a>
<b>7. I can specify an optional ml/raincounter for a KS300. Why do you think
that 255 should be the default?</b>
<h4>7. I can specify an optional ml/raincounter for a KS300. Why do you think
that 255 should be the default?</h4>
<ul>
The manual talks about 0.3l resolution, but I wanted to calibrate my device.
So I filled a plastic bottle with 0.5 liter water from the measuring cup,
@ -216,8 +273,8 @@ that 255 should be the default?</b>
<a name="faq8"></a>
<b>8. The time specification of the builtin at command is not very
flexible. Please add day/month/weekday to it.</b>
<h4>8. The time specification of the builtin at command is not very
flexible. Please add day/month/weekday to it.</h4>
<ul>
Please take a look at the holiday device, and the perl helper variables (both
described in the commandref.html).
@ -225,8 +282,8 @@ flexible. Please add day/month/weekday to it.</b>
<a name="faq9"></a>
<b>9. I defined my FS20STR as an FHT device, but I do not get any data from
it.</b>
<h4>9. I defined my FS20STR as an FHT device, but I do not get any data from
it.</h4>
<ul>
The FS20STR is an FS20 device, even if it looks like an FHT80b.
You'll get "only" on-for-timer and off-for-timer events sent.
@ -234,8 +291,8 @@ it.</b>
<a name="faq10"></a>
<b>10. How to convert the FHT8b code seen in its display to the hex code needed
by fhem.pl?</b>
<h4>10. How to convert the FHT80b code seen in its display to the hex code needed
by fhem.pl?</h4>
<ul>
Convert the first 2 digits first from decimal to hex, then the next two.
@ -245,12 +302,12 @@ by fhem.pl?</b>
obase=16
&lt;first two digits&gt;
&lt;last two digits&gt;</pre>
E.g The FHT8b code 1121 is 0b15 for the fhem.pl
E.g The FHT80b code 1121 is 0b15 for the fhem.pl
</ul>
<a name="faq11"></a>
<b>11. I'd like to use this sunrise/sunset stuff, can you help me?</b>
<h4>11. I'd like to use this sunrise/sunset stuff, can you help me?</h4>
<ul>
Look for the geographic coordinates of your home, e.g with a GPS
receiver or with googleearth. Compute the latitude/longitude as needed, and
@ -264,7 +321,7 @@ by fhem.pl?</b>
</ul>
<a name="faq12"></a>
<b>12. I'd like to switch on the ventilator if the FHT tells me its too hot. How to tell fhem to do that?</b>
<h4>12. I'd like to switch on the ventilator if the FHT tells me its too hot. How to tell fhem to do that?</h4>
<ul>
To get used to the methods, we do it step by step. Telnet to fhem, and type
@ -292,8 +349,8 @@ by fhem.pl?</b>
</ul>
<a name="faq13"></a>
<b>13. I'd like to see directly in the Web frontend if a window is open.
How to do that? (by fwolff)</b>
<h4>13. I'd like to see directly in the Web frontend if a window is open.
How to do that? (by fwolff)</h4>
<ul>
Just define a new (pseudo) FS20 device called "window" and use the following
@ -306,9 +363,9 @@ How to do that? (by fwolff)</b>
</ul>
<a name="faq14"></a>
<b>14. In the summer I get a lot of "actuator:lime-protection
<h4>14. In the summer I get a lot of "actuator:lime-protection
messages from my FHT80b. How to switch back to the actuator:0% messages?
</b>
</h4>
<ul>
(Thanks for Martin Fischer for researching)<br>
@ -330,8 +387,8 @@ messages from my FHT80b. How to switch back to the actuator:0% messages?
</ul>
<a name="faq15">
<b>15. My notify/filelog does not work, help me!</b>
<a name="faq15"></a>
<h4>15. My notify/filelog does not work, help me!</h4>
<ul>
First learn what are the trigger messages: telnet to your fhem (e.g. telnet
localhost 7072) and issue the command "inform on". If there is an
@ -358,8 +415,8 @@ messages from my FHT80b. How to switch back to the actuator:0% messages?
</ul>
<a name="faq16">
<b>16. Setting auto-mode from manual for the FHT won't change the desired temperature!</b>
<a name="faq16"></a>
<h4>16. Setting auto-mode from manual for the FHT won't change the desired temperature!</h4>
<ul>
Thanks to Waldemar Porsche the following notify will take care of that:<br>
<pre>define ExtendedAutoMode notify .*mode.*auto {\
@ -386,9 +443,9 @@ messages from my FHT80b. How to switch back to the actuator:0% messages?
</pre>
</ul>
<a name="faq17">
<b>17. I have problem receiving data, I get "Bad CRC" or "Oversized
message."</b>
<a name="faq17"></a>
<h4>17. I have problem receiving data, I get "Bad CRC" or "Oversized
message."</h4>
<ul>
Some Linux distibutions have problems with the settings of the serial USB
lines. Sometimes the 8.th bit is stripped, sometimes software flowcontrol
@ -406,21 +463,20 @@ messages from my FHT80b. How to switch back to the actuator:0% messages?
</pre>
</ul>
<a name="faq18">
<b>18. My FHZ1X00PC gets all time automatically disconnected and
<a name="faq18"></a>
<h4>18. My FHZ1X00PC gets all time automatically disconnected and
reconnected. My log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear".
What is wrong with my USB?
</b>
</h4>
<ul>
Several fhem users are plagued by spontaneous disconnects/reconnects of USB
devices. This is not an issue of fhem but a problem of hardware and/or USB drivers.
See <a href="USB.html">USB compendium</a> for help.
</ul>
<br>
<a name="faq19">
<b>19. How do I set the dim100% from the at command?</b>
<a name="faq19"></a>
<h4>19. How do I set the dim100% from the at command?</h4>
<ul>
As the % and @ characters are special, they have to be escaped. See the
following list (copied here from the commandref.html, notify command
@ -444,8 +500,8 @@ See <a href="USB.html">USB compendium</a> for help.
definition.</li>
</ul>
<a name="faq20">
<b>20. Why do my Sunrise/Sunnset times differ from the ones on webseite XXX?</b>
<a name="faq20"></a>
<h4>20. Why do my Sunrise/Sunset times differ from the ones on webseite XXX?</h4>
<ul>
There are different ways of defining sunrise/sunset. To quote "perldoc
DateTime::Event::Sunrise" :<br>

View File

@ -4,303 +4,417 @@
<head>
<title>Home of FHEM</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 style="background-color: white">
<table>
<tr>
<td><img src="fhem.png"></td>
<td>
GPL'd server for house automation. Formerly known as fhz1000.pl
<br/><br/>
Current Version: (as of =DATE=) is <a
href="http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz">=VERS=</a>
<br>
See the <a href="CHANGED">CHANGED</a> file for current changes, or the <a
href="#webfrontends"/>webfrontends</a> section for screenshots.
</td>
</tr>
</table>
<body>
<h2>Description</h2>
<ul>
<b>fhem</b> is used to automate some common tasks in the household like
switching lamps/shutters/heating/etc. and to log events like
temperature/humidity/power consumption.<br><br>
<div id="left">
<img src="fhem.png">
<br>
<br>
<div id="block">
<b>Content:</b>
<div id="dist"></div>
<div id="dist"><a href="#Description">Description</a></div>
<div id="dist"><a href="#Download">Download</a></div>
<div id="dist"><a href="#Screenshots">Screenshots</a></div>
<div id="dist"><a href="#Features">Features</a></div>
<div id="dist"><a href="#Hardware">Hardware</a></div>
<div id="dist"><a href="#Documentation">Documentation</a></div>
<div id="dist"><a href="#Links">Links</a></div>
<div id="dist"><a href="#Installation">Installation</a></div>
<div id="dist"><a href="#License">License</a></div>
</div>
</div>
The program runs as a server, you can control it via telnet, command line
program or TCP/IP directly, like the supplied web frontends do.<br> <br>
Currently implemented features:<br>
<ul>
<li>Via the FHZ module (with access to one or more FHZ1000/FHZ1300 device):
<div id="right">
<a name="Description"></a>
<h3>Description</h3>
<ul>
<li>reading and sending FS20 events (on/off/dimming, timer
commands)</li>
<li>support of FS20 address features function group, local and global
master</li>
<li>reading and changing FHT80b parameters (temp, actuator, etc).<br>
The FHT8b seems to work too. Note: the FHT8 wont work.<br>
Internal software buffer to prevent lost commands.</li>
<li>reading HMS data (HMS100-T,-TF,-WD,-MG,-TFK,-CO,-FIT and RM100-2,3)</li>
<li>reading KS300 data</li>
Fhem is a GPL'd perl server for house automation. It is used to automate
some common tasks in the household like switching lamps / shutters /
heating / etc. and to log events like temperature/humidity/power
consumption.<br><br>
The program runs as a server, you can control it via web-frontends,
telnet, command line program or TCP/IP directly.
</ul>
Note: The FHZ1350 WLAN works with fhem if you replace the standard
(AVISARIO) WLAN module with one that won't encrypt the data.
</li>
<li>Via the CM11 module (with access to a X10 computer interface):
<a name="Download"></a>
<h3>Download</h3>
<ul>
<li>reading all X10 events</li>
<li>sending X10 events (on/off/dimming)</li>
<li>timed on/off switching support</li>
Current Version: (as of =DATE=):
<a href="http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz">
http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz</a>
<br>
See the <a href="CHANGED">CHANGED</a> file for current changes.
</ul>
</li>
<li>Via the CUL module using the CUL/CUN or CUR (see <a
href="http://www.busware.de">www.busware.de
</a>) access to the following protocols:<br>
<a name="Screenshots"></a>
<h3>Frontend screenshots</h3>
<ul>
Builtin pgm2 / external pgm5 web frontend: <a
href="pgm2-1.png">overview</a>, <a href="pgm2-2.png">detail</a>, <a
href="pgm2-3.png">SVG-plots</a>.
<br><br>
pgm3 web frontend: <a
href="http://www.martin-haas.de/fhz/screenshots.html">screenshot
gallery</a>
<br><br>
myHCE: <a
href="http://www.fischer-net.de/projekte/haustechnik/screenshots.html">
screenshot gallery</a>
<br><br>
iPhone frontends:
<a href="http://www.gschaden.com/wp/2009/01/18/fhem-iphone-gateway/">
fhemgw</a> or
<a href="http://www.dhs-computertechnik.de/support-iphone.html">
dhs-computertechnik</a>
</a>
</ul>
<a name="Features"></a>
<h3>Features</h3>
<ul>
<li>support for a lot of protocols used in house automation like FS20,
FHT, HMS, OneWire, X10, S300, EM. See the <a
href="#Hardware">Hardware</a> section for more.
</li>
<li>autocreating devices/logs when receiving data from a new device</li>
<li>logging events to files or databases, with regexp filters</li>
<li>notifying external programs or internal modules when receiving certain
events</li>
<li>timed commands (e.g. switching a lamp on from sunset till midnight)
</li>
<li>watchdog (e.g. trigger if the HMS100-FIT is inactive for HH:MM:SS)
</li>
<li>modular architecture, easy to add your special device</li>
<li>different web frontends, choose your favorite</li>
</ul>
<a name="Hardware"></a>
<h3>Supported hardware</h3>
<ul>
<li>Via an attached CUL or CUN (see <a
href="http://www.busware.de">www.busware.de</a>) access to the
following protocols: FS20 (Receive/Send, all devices), EM (EM1000EM,
EM1000GZ and EM1000WZ), FHT80b, HMS, S300 (KS300, S300TH, KS555,
S555TH, etc)</li>
<br>
<li>Via an attached FHZ1000 or FHZ1300 access to the following protocols:
FS20 (all devices), FHT80b, HMS, KS300. <b>Note:</b> The FHZ1350 WLAN
works with fhem if you replace the standard (avisario) WLAN module with
one that won't encrypt the data.</li>
<br>
<li>reading an sending X10 events via the CM11 module (with access
to a X10 computer interface)</li>
<br>
<li>S300 devices via an attached WS300</li>
<br>
<li>EM1010PC and attached EM1000WZ, EM1000EM or EM1000GZ</li>
<br>
<li>reading attached SCIVT devices</li>
<br>
<li>reading attached M232 devices</li>
<br>
<li>reading attached WS2000/WS25000 devices, also via raw network
converters (xport)</li>
<br>
<li>extract sensor data from IPWE networked weather data receiver</li>
</ul>
<a name="Documentation"></a>
<h3>Documentation</h3>
<ul>
<div id="dist"><a href="HOWTO.html">HOWTO.html</a> for a short
installation/configuration.</div>
<div id="dist"><a href="commandref.html">commandref.html</a>
contains a detailed description of all features/modules.</div>
<div id="dist">Frequently Asked Questions: <a
href="faq.html">faq.html</a></div>
<div id="dist">An emerging documentations platform: <a
href="http://fhemwiki.de/index.php/FHEM">fhemwiki.de</a></div>
<div id="dist">Google-Group: <a
href="http://groups.google.com/group/fhem-users">
http://groups.google.com/group/fhem-users</a></div>
<div id="dist"><a href="README.contrib">contrib/README</a> describes
some loosely coupled useful modules / scripts which can be used with
fhem.</div>
<div id="dist">Protocol descriptions and other useful stuff: <a
href="http://fhz4linux.info/">http://fhz4linux.info/</a></div>
</ul>
<a name="Links"></a>
<h3>Links</h3>
<ul>
Homepage: <a href="http://www.koeniglich.de/fhem/fhem.html">
http://www.koeniglich.de/fhem/fhem.html</a><br>
Download: <a href="http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz">
http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz</a><br>
Development source at CVS@berlios: <a
href="http://developer.berlios.de/projects/fhem">
http://developer.berlios.de/projects/fhem</a><br>
<br>
Frontends:<br>
<ul>
<li>FS20 (Receive/Send, all devices)
<li>EM (EM1000EM/EM1000GZ/EM1000WZ)
<li>FHT80b (Receive/Send)
<li>HMS (Receive)
<li>S300 (KS300, S300TH, KS555, S555TH, etc)
</ul>
</li>
<li>reading WS300 data, and up to 9 attached devices</li>
<li>reading EM1000WZ/EM1000EM/EM1000GZ data via an attached EM1010PC</li>
<li>reading attached SCIVT devices</li>
<li>reading attached M232 devices</li>
<li>reading attached WS2000/WS25000 devices, also via raw network
converters(xport)</li>
<li>extract sensor data from IPWE networked weather data receiver</li>
<li>logging events to files or databases, with regexp filters</li>
<li>notifying external programs or internal modules when receiving certain
events</li>
<li>timed commands (e.g. switching a lamp on from sunset till midnight)</li>
<li>watchdog (e.g. trigger if the HMS100-FIT is inactive for HH:MM:SS)</li>
<li>modular architecture, easy to add your special device</li>
<li>different web frontends, choose your favorite</li>
<br>
</ul>
See <a href="HOWTO.html">HOWTO.html</a>, <a href="commandref.html">
commandref.html</a> and <a href="faq.html">faq.html</a> for more documentation, and <a href="README.contrib">contrib/README</a> for other extensions.
</ul>
<h2>Links:</h2>
<ul>
Homepage: <a href="http://www.koeniglich.de/fhem/fhem.html">
http://www.koeniglich.de/fhem/fhem.html</a><br>
Download: <a href="http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz">
http://www.koeniglich.de/fhem/fhem-=VERS=.tar.gz</a><br>
FAQ: <a href="http://www.koeniglich.de/fhem/faq.html">
http://www.koeniglich.de/fhem/faq.html</a><br>
Google-Group: <a href="http://groups.google.com/group/fhem-users">
http://groups.google.com/group/fhem-users</a><br>
Martins Web frontend (webpgm3): <a href="http://www.martin-haas.de/fhz">
http://www.martin-haas.de/fhz</a><br>
Another Martins Web frontend (myHCE):
<li>Martins Web frontend (webpgm3):
<a href="http://www.martin-haas.de/fhz">http://www.martin-haas.de/fhz</a><br>
<li>Another Martins Web frontend (myHCE):
<a href="http://www.fischer-net.de/projekte/haustechnik/myhce.html">
http://www.fischer-net.de/projekte/haustechnik/myhce.html</a><br>
Frontend for the iPhone:
<li>Frontend for the iPhone:
<a href="http://www.gschaden.com/wp/2009/01/18/fhem-iphone-gateway/">
http://www.gschaden.com/wp/2009/01/18/fhem-iphone-gateway/</a> or
<a href="http://www.dhs-computertechnik.de/support-iphone.html">
http://www.dhs-computertechnik.de/support-iphone.html</a> or
http://www.dhs-computertechnik.de/support-iphone.html</a>
<br>
CVS@berlios: <a href="http://developer.berlios.de/projects/fhem">
http://developer.berlios.de/projects/fhem</a><br>
LinViex (home automation frontend):
<li>LinViex (home automation frontend):
<a href="http://sourceforge.net/projects/linviex">
http://sourceforge.net/projects/linviex</a><br>
Protocol descriptions and other useful stuff: <a href="http://fhz4linux.info/">http://fhz4linux.info/</a><br>
CUL: <a href=http://shop.busware.de/product_info.php?products_id=29">
Hardware shop</a>, <a href="http://www.koeniglich.de/culfw/culfw.html">
firmware homepage</a>, <a href="http://groups.google.com/group/cul-fans">
CUL fans google group</a><br>
<br>
</ul>
<br>
Device/OS Specific installation guides:<br>
<ul>
<li>Linux driver installation:
Device/OS Specific installation guides:<br>
<ul>
<li>Linux driver installation:
<a href="http://www.koeniglich.de/fhem/linux.html">
http://www.koeniglich.de/fhem/linux.html</a></li>
<li>Windows driver installation:
http://www.koeniglich.de/fhem/linux.html</a></li>
<li>Windows driver installation:
<a href="http://fhz4linux.info/tiki-index.php?page=Driver%20installation">
http://fhz4linux.info/tiki-index.php?page=Driver%20installation</a> <br>
(use "Solution B", only COM1..COM9 is supported)</li>
<li>Instructions for Nas/Routers (NSLU2):
(use "Solution B", only COM1..COM9 is supported)</li>
<li>Instructions for Nas/Routers (NSLU2):
<a href="http://www.martin-haas.de/fhz/nslu2fhz">
http://www.martin-haas.de/fhz/nslu2fhz</a></li>
<li>Instructions for the Fritz!Box:
http://www.martin-haas.de/fhz/nslu2fhz</a></li>
<li>Instructions for the Fritz!Box:
<a href="fritzbox.html">
http://www.koeniglich.de/fhem/fritzbox.html</a></li>
<li>Instructions for the Allnet all6250:
http://www.koeniglich.de/fhem/fritzbox.html</a></li>
<li>Instructions for the Allnet all6250:
<a href="http://wiki.dungeon.de/all6250_opennas_mit_fhem">
http://wiki.dungeon.de/all6250_opennas_mit_fhem</a></li>
</ul>
Commercial products:
<ul>
<li>Integration of FHZ and NAS running FHEM. Using an enhanced transmitter to achieve more distant transmission. Full integrated solution for Home-Control
and beyond (other service like UPS management, etc. are also available).
<br>
<a href="http://www.dhs-computertechnik.de/">
http://www.dhs-computertechnik.de/</a></li>
</ul>
</ul>
http://wiki.dungeon.de/all6250_opennas_mit_fhem</a></li>
</ul>
<br>
Commercial products:
<ul>
<li><a href="http://www.dhs-computertechnik.de/">
http://www.dhs-computertechnik.de</a>:
Integration of FHZ and NAS running FHEM. Using an enhanced
transmitter to achieve more distant transmission. Full integrated
solution for Home-Control and beyond (other service like UPS management,
etc. are also available).
<br>
<li>CUL:
<a href=http://shop.busware.de/product_info.php?products_id=29">
Hardware shop</a>,
<a href="http://www.koeniglich.de/culfw/culfw.html">
firmware homepage</a>,
<a href="http://groups.google.com/group/cul-fans">
CUL fans google group</a></li>
</ul>
</ul>
<h2>Installation</h2>
<ul>
<h3>Perl modules</h3>
<ul>
You need perl &gt;=5.6, on Unix with the Device::SerialPort (<a
href="http://search.cpan.org/dist/Device-SerialPort/">
http://search.cpan.org/dist/Device-SerialPort/</a>),
on Windows Win32::SerialPort (use ActiveState's ActivePerl)
module.
If this module reports <code>Can't call method "opened" on an undefined
value...</code> when starting the server, then you either may ignore
this message, or replace the mentioned line with:<pre>
$self->{HANDLE}->close if (defined($self->{HANDLE}) &&
$self->{HANDLE}->opened);</pre>
</ul>
<h3>Server installation on Unix</h3>
<ul>
<li>Check the Makefile for the installation path, then type make install.</li>
<li>Create a configuration file (see the examples directory or
docs/commandref.html).</li>
<li>Start the server with <code>fhem.pl &lt;configfile&gt;</code></li>
</ul>
<h3>Server installation on Windows</h3>
If you are using cygwin for your perl installation you can follow the guidelines for Unix.
<ul>
<li>Be sure you have perl.exe in your path (%PATH%)</li>
<li>Make sure that you can access the serial USB device via virtual COM-Port
or via socket(e.g. <code>COMX or xport:10001</code>).</li>
<li>Create a configuration file (see the examples directory and
docs/commandref.html)</li>
<li>Start the server with <code>fhem.pl &lt;configfile&gt;</code></li>
</ul>
<a name="webfrontends"/>
<h3>General notes for webfrontends:</h3>
<ul>
<li>You don't have to install all of them, one is probably more than
enough :-)</li>
<li>The numbering has historical reasons: not actively maintained versions
are not described here</li>
<li><b>Important:</b> Make sure you add some protection (.htaccess, etc)
else everybody will be able to set your devices</li>
</ul>
<h3>Web frontend 2 (webfrontend/pgm2)</h3>
<ul>
This frontend is a FHEM module implementing a HTTP server, no further
programs are needed. It has support for grouping devices into rooms,
manipulating devices, direct fhem commands, displaying logfiles as text or
plot (SVG builtin or PNG by gnuplot), navigating/zooming in the plots. <br/>
Screenshots: <a href="pgm2-1.png">overview</a>, <a
href="pgm2-2.png">detail</a>, <a href="pgm2-3.png">SVG-plots</a>.
<br><br>
Installation: make install-pgm2 &amp;&amp; perl fhem.pl <br>
This will start fhem.pl with a minimalistic configuration.
Connect to fhem via <a
href="http://localhost:8083/fhem">http://localhost:8083/fhem</a>. See the
Howto there on how to continue.
</ul>
<h3>Web frontend 3 (webfrontend/pgm3)</h3>
<ul>
This frontend is PHP based and was contributed by Martin Haas.
Look at the webfrontends/pgm3/docs for more documentation.
A lot more details <a href="http://www.martin-haas.de/fhz/screenshots.html">and screenshots</a> can be
found on Martins page: <a href="http://www.martin-haas.de/fhz">
http://www.martin-haas.de/fhz</a>
<br>pgm3 may run on an other machine than fhem.<br>
The Devices of 95% of the users are detected and configured automatically.
Further 4% are adaptable by the function UserDef. See config.php for explanation.
<br><br>
Installation:
<a name="Installation"></a>
<h3>Installation</h3>
<ul>
<li>Install PHP5, the php5-Apache-Modules, gnuplot and php5-gd. Every current
distribution should do all the needed configuration without your input.</li>
<li>Create a directory in the Apache2 DocumentRoot
(e.g.: /var/www/pgm3) and copy all the files from the
webfrontend/pgm3 to this directory.<br>Make sure that this
directory is writeable by the webserver (e.g. User www-data.www-data)!
</li>
<li>Call &lt;your-site&gt;/pgm3/index.php and follow the instructions on screen</li>
<li>The official WIKI of pgm3 is now <a href="http://fhemwiki.de">http://fhemwiki.de</a></li>
<li>Troubleshooting: right-click on the graphic then "show graphic".</li>
</ul>
</ul>
<br>
<h3>Web frontend 5 (webfrontend/pgm5)</h3>
<ul>
This frontend is CGI/CSS based. It has support for rooms, and FHT/KS300 logs.
<h3>Unix</h3>
<ul>
<li>Make sure you have perl. Install the module Device::SerialPort with
"cpan Device::SerialPort"</li>
<li>Check the Makefile for the installation path, then type make
install-pgm2.</li>
<li>Check the installed configuration file and start fhem as advised.
</ul>
This webfrontend is an update of the former know pgm2 (up to 4.2):
It resides in YOUR HTTP server, and doesn't provide an own, like the FHEMWEB module does.<br>
<br>
Why to use this:<br>
1) If you want to stick with your Web-Servers (due to restrictions,
ports or any other reason)<br>
2) If you have a NAS (Network attached storage) and limited CPU-Power.
This frontend can render the graphics in the background (in
intervals) and sends only the rendered graphics to the HTML-Page.<br>
3) If you need the FHEMRENDERER to render the images for other/own
pages.<br>
<br>
A lot more details can be found on <a href="http://www.dhs-computertechnik.de/support.html">http://www.dhs-computertechnik.de/support.html</a>
<br><br>
Installation:
<ul>
<li>Copy the file fhemweb.pl and *.css to your cgi-bin directory (/home/httpd/cgi-bin), the icons (*.gif) to your httpd icons (/home/httpd/icons), and commandref.html to the html directory (/home/httpd/html) (or also to cgi-bin directory).<br>
Note: The program looks for icons in the following order: <br>
'device-name.state', 'device-name', 'device-type.state', 'device-type'</li>
<h3>Windows</h3>
<ul>
<b>Note:</b>If you are using cygwin for your perl installation you can
follow the guidelines for Unix.<br><br>
<li>The *.gplot files should be reused from the built-in FHEMWEB and should reside in the installed FHEM directory. Here we don't provide specific *.gplot files as the mechanisms are exactly the same.</li>
<li>Be sure you have perl.exe in your path (%PATH%), and the module
Win32::SerialPort is installed.</li>
<li>Make sure that you can access the serial USB device via virtual
COM-Port or via socket(e.g. <code>COMX or xport:10001</code>).</li>
<li>Create a configuration file (see the examples directory and
docs/commandref.html)</li>
<li>Start the server with <code>fhem.pl &lt;configfile&gt;</code></li>
</ul>
<br><br>
<div id="block">
<b>General notes for webfrontends:</b><br>
You don't have to install all of them, one is probably more than
enough :-).<br>
The numbering has historical reasons: not actively maintained versions
are not described here.</br>
<b>Important:</b> Make sure you add some protection (.htaccess, etc)
else everybody will be able to set your devices.</br>
</div>
<h3>Web frontend 2 (webfrontend/pgm2)</h3>
<ul>
This frontend is a FHEM module implementing a HTTP server, no further
programs are needed. It has support for grouping devices into rooms,
manipulating devices, direct fhem commands, displaying logfiles as text
or plot (SVG builtin or PNG by gnuplot), navigating/zooming in the
plots.<br/>
Screenshots: <a href="pgm2-1.png">overview</a>, <a
href="pgm2-2.png">detail</a>, <a href="pgm2-3.png">SVG-plots</a>.
<br><br>
Installation: make install-pgm2<br>
Start fhem as advised in the make output.<br>
This will start fhem.pl with a minimalistic configuration.
Connect to fhem via <a
href="http://localhost:8083/fhem">http://localhost:8083/fhem</a>. See the
Howto there on how to continue.
</ul>
<h3>Web frontend 3 (webfrontend/pgm3)</h3>
<ul>
This frontend is PHP based and was contributed by Martin Haas.
Look at the webfrontends/pgm3/docs for more documentation.
A lot more details <a
href="http://www.martin-haas.de/fhz/screenshots.html">and screenshots</a>
can be found on Martins page: <a href="http://www.martin-haas.de/fhz">
http://www.martin-haas.de/fhz</a><br>
pgm3 may run on an other machine than fhem.<br> The Devices of 95% of the
users are detected and configured automatically. Further 4% are
adaptable by the function UserDef. See config.php for explanation.
<br><br>
Installation:
<ul>
<li>Install PHP5, the php5-Apache-Modules, gnuplot and php5-gd. Every
current distribution should do all the needed configuration without
your input.</li>
<li>Create a directory in the Apache2 DocumentRoot
(e.g.: /var/www/pgm3) and copy all the files from the
webfrontend/pgm3 to this directory.<br>Make sure that this directory
is writeable by the webserver (e.g. User www-data.www-data)!</li>
<li>Call &lt;your-site&gt;/pgm3/index.php and follow the instructions
on screen</li>
<li>The official WIKI of pgm3 is now <a
href="http://fhemwiki.de">http://fhemwiki.de</a></li>
<li>Troubleshooting: right-click on the graphic then "show
graphic".</li>
</ul>
</ul>
<h3>Web frontend 5 (webfrontend/pgm5)</h3>
<ul>
This frontend is CGI/CSS based. It has support for rooms, and FHT/KS300
logs. This webfrontend is an update of the former pgm2 (up to 4.2): It
resides in YOUR HTTP server, and doesn't provide an own, like the FHEMWEB
module does.<br><br>
Why to use this:<br>
1) If you want to stick with your Web-Servers (due to restrictions,
ports or any other reason)<br>
2) If you have a NAS (Network attached storage) and limited CPU-Power.
This frontend can render the graphics in the background (in
intervals) and sends only the rendered graphics to the HTML-Page.<br>
3) If you need the FHEMRENDERER to render the images for other/own
pages.<br>
<br>
A lot more details can be found on <a
href="http://www.dhs-computertechnik.de/support.html">http://www.dhs-computertechnik.de/support.html</a>
<br><br>
Installation:
<ul>
<li>Copy the file fhemweb.pl and *.css to your cgi-bin directory
(/home/httpd/cgi-bin), the icons (*.gif) to your httpd icons
(/home/httpd/icons), and commandref.html to the html directory
(/home/httpd/html) (or also to cgi-bin directory).<br>
Note: The program looks for icons in the following order: <br>
'device-name.state', 'device-name', 'device-type.state',
'device-type'</li>
<li>The *.gplot files should be reused from the built-in FHEMWEB and
should reside in the installed FHEM directory. Here we don't provide
specific *.gplot files as the mechanisms are exactly the same.</li>
<li>If you want to have access to plotted logs, then make sure that
gnuplot is installed and set the logtype for the FileLog device (see
commandref.html and example/04_log). Copy the file
contrib/99_weblink.pm to the installed FHEM directory.</li>
<li>Copy the file pgm5/02_FHEMRENDERER.pm to the installed FHEM
directory. This gives you a graphic rendering engine (gnuplot &
gnuplot-scroll at the moment), which can be configured to renderer
images in intervals.</li>
<li>Call 'your-site'/cgi-bin/fhemweb.pl </li>
</ul>
</ul>
</ul>
<a name="License"></a>
<h3>License:</h3>
<ul>
Copyright:<br>
<ul>
<li>Rudolf Koenig (r dot koenig at koeniglich dot de)</li>
<li>Raoul Matthiessen (webfrontends/pgm1)</li>
<li>Martin Haas (webfrontends/pgm3)</li>
<li>Olaf Droegehorn (webfrontends/pgm5)</li>
</ul>
License: GPL (v2)<br>
Thanks to TOSTi for inspiration and numerous other people for help. <br>
</ul>
<li>If you want to have access to plotted logs, then make sure that gnuplot is installed and set the logtype for the FileLog device (see commandref.html and example/04_log).
Copy the file contrib/99_weblink.pm to the installed FHEM directory.</li>
<li>Copy the file pgm5/02_FHEMRENDERER.pm to the installed FHEM directory.
This gives you a graphic rendering engine (gnuplot & gnuplot-scroll at the moment), which can be configured to renderer images in intervals.</li>
</body>
<li>Call 'your-site'/cgi-bin/fhemweb.pl </li>
</ul>
</ul>
</ul>
<h2>License:</h2>
<ul>
Copyright:<br>
<ul>
<li>Rudolf Koenig (r dot koenig at koeniglich dot de)</li>
<li>Raoul Matthiessen (webfrontends/pgm1)</li>
<li>Martin Haas (webfrontends/pgm3)</li>
<li>Olaf Droegehorn (webfrontends/pgm5)</li>
</ul>
License: GPL (v2)<br>
Thanks to TOSTi for inspiration and numerous other people for help. <br>
</body>
</html>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 31 KiB