mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
Documentation changes
git-svn-id: https://svn.fhem.de/fhem/trunk@495 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
8fabbf057b
commit
8ddd07ab22
@ -551,3 +551,4 @@
|
|||||||
- bugfix: CUL_RFR fixes (chaining RFR's should work)
|
- bugfix: CUL_RFR fixes (chaining RFR's should work)
|
||||||
- bugfix: Path in the examples fixed (got corrupted)
|
- bugfix: Path in the examples fixed (got corrupted)
|
||||||
- bugfix: PachLog fixes from Axel
|
- bugfix: PachLog fixes from Axel
|
||||||
|
- bugfix: HOWTO/Examples revisited for correctness
|
||||||
|
@ -12,29 +12,31 @@ all:
|
|||||||
|
|
||||||
install:install-base
|
install:install-base
|
||||||
-mv $(VARDIR)/fhem.cfg $(VARDIR)/fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"`
|
-mv $(VARDIR)/fhem.cfg $(VARDIR)/fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"`
|
||||||
cp examples/sample_fhem $(VARDIR)/fhem.cfg
|
cp examples_changed/sample_fhem $(VARDIR)/fhem.cfg
|
||||||
@echo
|
@echo
|
||||||
@echo
|
@echo
|
||||||
@echo Edit $(VARDIR)/fhem.cfg then type
|
@echo Start fhem with
|
||||||
@echo perl $(BINDIR)/fhem.pl $(VARDIR)/fhem.cfg
|
@echo perl $(BINDIR)/fhem.pl $(VARDIR)/fhem.cfg
|
||||||
|
|
||||||
install-pgm2:install-base
|
install-pgm2:install-base
|
||||||
cp -r webfrontend/pgm2/* $(MODDIR)/FHEM
|
cp -r webfrontend/pgm2/* $(MODDIR)/FHEM
|
||||||
cp docs/commandref.html docs/faq.html docs/HOWTO.html $(MODDIR)/FHEM
|
cp docs/commandref.html docs/faq.html docs/HOWTO.html $(MODDIR)/FHEM
|
||||||
-mv $(VARDIR)/fhem.cfg $(VARDIR)/fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"`
|
-mv $(VARDIR)/fhem.cfg $(VARDIR)/fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"`
|
||||||
cp examples/sample_pgm2 $(VARDIR)/fhem.cfg
|
cp examples_changed/sample_pgm2 $(VARDIR)/fhem.cfg
|
||||||
cd examples; for i in *; do cp -r $$i $(MODDIR)/FHEM/example.$$i; done
|
cd examples_changed; for i in *; do cp -r $$i $(MODDIR)/FHEM/example.$$i; done
|
||||||
@echo
|
@echo
|
||||||
@echo
|
@echo
|
||||||
@echo Edit $(VARDIR)/fhem.cfg then type
|
@echo Start fhem with
|
||||||
@echo perl $(BINDIR)/fhem.pl $(VARDIR)/fhem.cfg
|
@echo perl $(BINDIR)/fhem.pl $(VARDIR)/fhem.cfg
|
||||||
|
|
||||||
install-base:
|
install-base:
|
||||||
mkdir -p $(BINDIR) $(MODDIR) $(VARDIR)
|
mkdir -p $(BINDIR) $(MODDIR) $(VARDIR)
|
||||||
cp fhem.pl $(BINDIR)
|
cp fhem.pl $(BINDIR)
|
||||||
cp -r FHEM $(MODDIR)
|
cp -r FHEM $(MODDIR)
|
||||||
perl -pi -e 's,modpath \.,modpath $(MODDIR),' examples/[a-z]*
|
rm -rf examples_changed
|
||||||
perl -pi -e 's,/tmp,$(VARDIR),' examples/[a-z]*
|
cp -r examples examples_changed
|
||||||
|
perl -pi -e 's,modpath \.,modpath $(MODDIR),' examples_changed/[a-z]*
|
||||||
|
perl -pi -e 's,([^h]) /tmp,$$1 $(VARDIR),' examples_changed/[a-z]*
|
||||||
|
|
||||||
dist:
|
dist:
|
||||||
@echo Version is $(VERS), Date is $(DATE)
|
@echo Version is $(VERS), Date is $(DATE)
|
||||||
|
@ -5,10 +5,6 @@
|
|||||||
<body style="background-color: white;">
|
<body style="background-color: white;">
|
||||||
<h2>FHEMWEB Howto</h2>
|
<h2>FHEMWEB Howto</h2>
|
||||||
|
|
||||||
<b>Note:</b> Don't forget to type "save" in the FHEMWEB/pgm2 "Fhem cmd"
|
|
||||||
input field after defining a device or setting its attribute. Otherwise the
|
|
||||||
changes will disappear after the next start.</br><br>
|
|
||||||
|
|
||||||
<a href="#starting">Starting</a><br/>
|
<a href="#starting">Starting</a><br/>
|
||||||
<a href="#FHZ">Attaching an FHZ device</a><br/>
|
<a href="#FHZ">Attaching an FHZ device</a><br/>
|
||||||
<a href="#FS20rx">Configuring FS20 receivers</a><br/>
|
<a href="#FS20rx">Configuring FS20 receivers</a><br/>
|
||||||
@ -25,11 +21,17 @@
|
|||||||
<a name="starting"/>
|
<a name="starting"/>
|
||||||
<h3>Starting</h3>
|
<h3>Starting</h3>
|
||||||
<ul>
|
<ul>
|
||||||
Install & start fhem with the command:<pre>
|
First install the Device::SerialPort (or Win32::SerialPort) perl module
|
||||||
|
with the command <code>"cpan -i Device::Serial"</code></br>
|
||||||
|
The default configuration will install fhem into /usr/local/bin,
|
||||||
|
/usr/local/lib/FHEM and /var/log/fhem. Edit the Makefile to change
|
||||||
|
this.
|
||||||
|
|
||||||
|
To install & start fhem type:<pre>
|
||||||
make install-pgm2
|
make install-pgm2
|
||||||
perl /usr/local/bin/fhem.pl /var/log/fhem/fhem.cfg</pre>
|
perl /usr/local/bin/fhem.pl /var/log/fhem/fhem.cfg</pre>
|
||||||
|
|
||||||
The logfile should look like:<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 8083 opened
|
||||||
2008.06.15 16:17:03 0: Server started (version ...)
|
2008.06.15 16:17:03 0: Server started (version ...)
|
||||||
</pre>
|
</pre>
|
||||||
@ -44,57 +46,77 @@
|
|||||||
Attach the FHZ1000 or FHZ1300 to your computer, and look for a file named
|
Attach the FHZ1000 or FHZ1300 to your computer, and look for a file named
|
||||||
/dev/ttyUSB0 or /dev/tts/USB0 (or /var/elv on the Fritz!Box).
|
/dev/ttyUSB0 or /dev/tts/USB0 (or /var/elv on the Fritz!Box).
|
||||||
Define it for fhem (by typing it in the
|
Define it for fhem (by typing it in the
|
||||||
"Fhem cmd" input widget):<pre>
|
"Fhem cmd" input field in the browser):<pre>
|
||||||
define FHZ1 FHZ /dev/ttyUSB0</pre>
|
define FHZ1 FHZ /dev/ttyUSB0</pre>
|
||||||
Look <a href="commandref.html#define">here</a> for more.
|
You can find details <a href="commandref.html#define">here</a> and
|
||||||
|
<a href="commandref.html#FHZ">here</a>. Instead of an FHZ you can also
|
||||||
|
use a <a href="commandref.html#CUL">CUL</a> with slightly different
|
||||||
|
parameters.
|
||||||
|
|
||||||
</ul>
|
<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="FS20rx"/>
|
<a name="FS20rx"/>
|
||||||
<h3>Configuring FS20 receivers</h3>
|
<h3>Configuring FS20 receivers</h3>
|
||||||
<ul>
|
<ul>
|
||||||
Configure the device in fhem first e.g. with:<pre>
|
Configure the <a href="commandref.html#FS20">FS20</a> device in
|
||||||
|
fhem first with:<pre>
|
||||||
define lamp1 FS20 1234 56</pre>
|
define lamp1 FS20 1234 56</pre>
|
||||||
|
|
||||||
Now press the button on the device for a while until its LED starts to
|
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
|
blink. Click on the "on" link in the fhem window to send a command. The
|
||||||
LED should terminate blinking, the device is programmed.<br/>
|
LED should terminate blinking, the device is programmed to housecode
|
||||||
Set the model attribute of the device:<pre>
|
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>
|
attr lamp1 model fs20st</pre>
|
||||||
|
|
||||||
to get only the commands available for this device.
|
to get only the commands available for this device.
|
||||||
<a href="commandref.html#model">Here</a> is a complete list of models.<br>
|
<a href="commandref.html#model">Here</a> is a complete list of models.<br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="FS20tx"/>
|
<a name="FS20tx"/>
|
||||||
<h3>Configuring FS20 transmitters</h3>
|
<h3>Misc. RF transmitters (FS20/EM/S300 etc.)</h3>
|
||||||
<ul>
|
<ul>
|
||||||
Make sure the global loglevel is at least 3 (attr global verbose 3, check
|
Wait a while, until the transmitter sent some data. In the logfile
|
||||||
the fhem.cfg file in the Edit files section).<br>
|
(Browser window: "All together" -> Logs:Logfile:text) a line
|
||||||
Now make sure that the transmitter is sending a signal. In the logfile
|
will appear:<pre>
|
||||||
(FHEMWEB: "All together" -> Logs -> Logfile -> text) a line should
|
FS20 Unknown device <HOUSECODE, Button <BTN> Code <CDE>, please define it</pre>
|
||||||
appear:<pre> FS20 Unknown device HOUSECODE, Button BTN Code CDE, please
|
|
||||||
define it</pre>
|
|
||||||
|
|
||||||
Now define a device:<pre>
|
Now define a device:<pre>
|
||||||
define piri1 FS20 HOUSECODE BTN</pre>
|
define piri1 FS20 <HOUSECODE> <BTN></pre>
|
||||||
|
|
||||||
Set the model attribute of the device:<pre>
|
Set the model attribute of the device:<pre>
|
||||||
attr lamp1 model fs20piri</pre>
|
attr lamp1 model fs20piri</pre>
|
||||||
|
|
||||||
to get only the commands available for this device.
|
to get only the commands available for this device.
|
||||||
<a href="commandref.html#model">Here</a> is a complete list of models.<br>
|
<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>
|
</ul>
|
||||||
|
|
||||||
<a name="FHT"/>
|
<a name="FHT"/>
|
||||||
<h3>Configuring FHT devices</h3>
|
<h3>Configuring FHT devices</h3>
|
||||||
<ul>
|
<ul>
|
||||||
Make sure the global loglevel is at least 3 (attr global verbose 3, check
|
Wait for a while (2-5 mins) till the FHT is sending some signals. In the
|
||||||
the fhem.cfg file in the Edit files section).<br>
|
logfile ("All together" -> Logs:LogFile:text) a line should
|
||||||
Now wait for a while, till the FHT is sending some signals. In the
|
appear:<br><pre>
|
||||||
logfile (FHEMWEB: "All together" -> Logs -> LogFile -> text) a line
|
FHZ1: Unknown FHT device detected, define one to get detailed information</pre>
|
||||||
should appear:<pre> FHT Unknown device HOUSECODE, please define it</pre>
|
|
||||||
|
|
||||||
Now define a device:<pre>
|
Define your FHT device with an arbitrary code in order to load the FHT
|
||||||
define livingroom FHT HOUSECODE</pre>
|
module, see <a href="commandref.html#FHT">this</a> link for details:<pre>
|
||||||
If there is no signal for a while, the check <a href="faq.html#faq6">
|
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.
|
this</a> FAQ entry.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@ -103,11 +125,22 @@
|
|||||||
<ul>
|
<ul>
|
||||||
To execute commands at a given time / periodically, you have to define
|
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">
|
devices of the type at. See the definition <a href="commandref.html#at">
|
||||||
here</a> or examples <a href="example.06_at">here</a>.<br/><br/>
|
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, then you have to define
|
To execute commands if a device sent a message you have to define
|
||||||
devices of the type notify. See the definition
|
devices of the type <a href="commandref.html#notify">notify</a> or
|
||||||
<a href="commandref.html#notify">here</a>.
|
<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>
|
</ul>
|
||||||
|
|
||||||
<a name="rooms"/>
|
<a name="rooms"/>
|
||||||
@ -141,11 +174,12 @@
|
|||||||
FHEMWEB has builtin support for displaying FileLog type logs as plots,
|
FHEMWEB has builtin support for displaying FileLog type logs as plots,
|
||||||
see the <a href="#plot">plot</a> section below.<br/><br/>
|
see the <a href="#plot">plot</a> section below.<br/><br/>
|
||||||
|
|
||||||
See the attributes
|
The size of each logfile will be determined by its wildcard characters
|
||||||
<a href="commandref.html#archivedir">archivedir</a>,
|
(year/month/week/day), look at the <a href="commandref.html#FileLog">
|
||||||
<a href="commandref.html#archivecmd">archivecmd</a>,
|
FileLog</a> definition.
|
||||||
<a href="commandref.html#nrarchive">nrarchive</a>
|
Don't forget to enable archiving with the <a
|
||||||
attributes for archiving the logs.
|
href="commandref.html#nrarchive">nrarchive</a> or <a
|
||||||
|
href="commandref.html#archivedir">archivecmd</a> attributes.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="plot"/>
|
<a name="plot"/>
|
||||||
@ -160,33 +194,22 @@
|
|||||||
When displaying the plot, you can convert it into a "weblink", which can
|
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
|
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
|
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.
|
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/>
|
<br/><br/>
|
||||||
|
|
||||||
The logs can be converted to a plot either with gnuplot (which must be
|
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
|
installed and in your PATH), or via the builtin SVG module, in this case
|
||||||
your internet browser must support SVG. Firefox and opera support SVG
|
your internet browser must support SVG. Firefox, opera and the
|
||||||
out of the box, Internet Explorer does it via the Adobe "SVG viewer"
|
iPhone/Android borwser support SVG out of the box, Internet Explorer does
|
||||||
plugin. To use SVG graphics, set the <a
|
it via the Adobe "SVG viewer" plugin. To use SVG graphics, set the <a
|
||||||
href="commandref.html#plotmode">plotmode</a> attribute to SVG.<br><br>
|
href="commandref.html#plotmode">plotmode</a> attribute to SVG.<br><br>
|
||||||
|
|
||||||
In order to look at historic data, you can either convert at the archive
|
To zoom in the log you have to set plotmode to gnuplot-scroll or SVG. The
|
||||||
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. Note: the
|
|
||||||
gnuplot files must have #FileLog entries in order to be useable with
|
gnuplot files must have #FileLog entries in order to be useable with
|
||||||
scrolling, as the filtering happens with the FileLog
|
scrolling, see the supplied gnuplot files for an example.<br><br>
|
||||||
<a href="commandref.html#FileLogget">get</a> function, see the supplied
|
|
||||||
gnuplot files for an example.<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
|
|
||||||
<a href="commandref.html#FileLog">FileLog</a> definition. Don't forget to
|
|
||||||
enable archiving with the
|
|
||||||
<a href="commandref.html#archivedir">archivedir</a> or
|
|
||||||
<a href="commandref.html#archivedir">archivecmd</a> attributes.
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@ -231,10 +254,9 @@
|
|||||||
To display "foreign" (non fhem) files as a plot or a just as plain text,
|
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,
|
configure a fake logfile with the correct filename and an unused regexp,
|
||||||
e.g.<br><pre>
|
e.g.<br><pre>
|
||||||
define messages FileLog /var/log/messages fakelog
|
define messages FileLog /var/log/messages fakelog</pre>
|
||||||
</pre>
|
|
||||||
<br/><br/>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a name="structure"/>
|
<a name="structure"/>
|
||||||
<h3>Complex structures</h3>
|
<h3>Complex structures</h3>
|
||||||
|
@ -3403,7 +3403,7 @@ A line ending with \ will be concatenated with the next one, so long lines
|
|||||||
|
|
||||||
<b>Attributes</b>
|
<b>Attributes</b>
|
||||||
<ul>
|
<ul>
|
||||||
<a name="webname="></a>
|
<a name="webname"></a>
|
||||||
<li>webname<br/>
|
<li>webname<br/>
|
||||||
Path after the http://hostname:port/ specification. Defaults to fhem,
|
Path after the http://hostname:port/ specification. Defaults to fhem,
|
||||||
i.e the default http address is http://localhost:8083/fhem
|
i.e the default http address is http://localhost:8083/fhem
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
On the telnet prompt do:
|
|
||||||
{FS20_Parse(undef, "<code>");}
|
|
||||||
e.g.
|
|
||||||
{FS20_Parse(undef, "81xx04xx0101a0011234030011")}
|
|
||||||
|
|
||||||
where <code> is one of:
|
|
||||||
|
|
||||||
81xx04xx0101a0011234030011 FS20 dev: 1234 button: 03 on (11)
|
|
||||||
81xx04xx0101a0011234030000 FS20 dev: 1234 button: 03 off (00)
|
|
||||||
|
|
||||||
810d04xx4027a001de53187654321f KS300: Raincounter hex:123 (ca 75l/m2),
|
|
||||||
Wind 45.6 km/h Humidity: 78%, Temp: 13.5
|
|
||||||
Unknown fields: d,e,f
|
|
||||||
{FhzDecode("810d04xx4027a001de53187654321f")}
|
|
||||||
|
|
||||||
810e04d70213a001b16d000003000000 RM100-2 smoke on
|
|
||||||
810e04d70213a001b16d000000000000 RM100-2 smoke off
|
|
||||||
|
|
||||||
81xx04xx0101a0011234030011 FS20 dev: 1234 button: 03 on (11)
|
|
||||||
|
|
||||||
To send it:
|
|
||||||
set FHZ raw 04 0101a0011234030011
|
|
@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
810e041f0213a001d396000000000000
|
|
||||||
|
|
||||||
// Reset:
|
|
||||||
810e04ea0293a001ae06000000000000
|
|
||||||
// Normal:
|
|
||||||
810e046a0213a001ae06000000000000
|
|
||||||
|
|
||||||
==========
|
|
||||||
810e04ba0293a001b1d3000000000000
|
|
||||||
810e04a90293a0016a09000000000000
|
|
||||||
|
|
||||||
By andikt:
|
|
||||||
// Batteries are inserted into the smoke detector
|
|
||||||
810e04540293a001b16d000000000000
|
|
||||||
[the same comes 10 times]
|
|
||||||
|
|
||||||
// No smoke applied, status messages each 30min
|
|
||||||
810e04d40213a001b16d000000000000
|
|
||||||
|
|
||||||
// Smoke applied, detector beeps loud
|
|
||||||
810e04d70213a001b16d000003000000
|
|
||||||
|
|
||||||
// no more smoke, detector stops beeping, red LED flashes for some more
|
|
||||||
// seconds
|
|
||||||
810e04d40213a001b16d000000000000
|
|
||||||
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
|||||||
Startup
|
|
||||||
-------
|
|
||||||
1a
|
|
||||||
PUT C9 - 02 01 1F 64
|
|
||||||
1.st fhz1000: C9 - 01 02 1F 02 78 05 5C 24 FF
|
|
||||||
2.nd fhz1000: C9 - 01 02 1F 02 78 05 5C 24 FF
|
|
||||||
3.rd fhz1000: C9 - 01 02 1F 02 78 05 5C 0A FF
|
|
||||||
1b
|
|
||||||
PUT C9 - 02 01 1F 0A
|
|
||||||
4.th fhz1000: C9 - 01 02 1F 02 78 07 B6 22 80
|
|
||||||
1c
|
|
||||||
PUT C9 - 02 01 1F 60
|
|
||||||
C9 - 01 02 1F 02 78 07 1C 22 80
|
|
||||||
|
|
||||||
2
|
|
||||||
PUT 04 - C9 01 84 57 02 08
|
|
||||||
1.st fhz1000: C9 - 01 02 84 01 08 05 FF 13 6E 21 BC 4B 1B # Serial no: 136E21BC (?)
|
|
||||||
3.rd fhz1000: C9 - 01 02 84 01 08 05 FF 13 6E 29 0E 51 18 # Serial no: 136E290E (?)
|
|
||||||
|
|
||||||
3
|
|
||||||
PUT: 04 - C9 01 86
|
|
||||||
PUT: 04 - C9 01 96
|
|
||||||
PUT: C9 - 02 01 61 04 0C 10 12 0A # Set Date to 2004-12-16 14:10
|
|
||||||
|
|
||||||
|
|
||||||
Switching FS20 device on / off
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
PUT: 04 - 020101 - HHHH BT VL
|
|
||||||
|
|
||||||
HHHH: Transmitter (Hauscode)
|
|
||||||
BT: Button
|
|
||||||
VL: Values:
|
|
||||||
00 => off,
|
|
||||||
01 => dim06%,
|
|
||||||
02 => dim12%,
|
|
||||||
03 => dim18%,
|
|
||||||
04 => dim25%,
|
|
||||||
05 => dim31%,
|
|
||||||
06 => dim37%,
|
|
||||||
07 => dim43%,
|
|
||||||
08 => dim50%,
|
|
||||||
09 => dim56%,
|
|
||||||
0A => dim62%,
|
|
||||||
0B => dim68%,
|
|
||||||
0C => dim75%,
|
|
||||||
0D => dim81%,
|
|
||||||
0E => dim87%,
|
|
||||||
0F => dim93%,
|
|
||||||
10 => dim100%,
|
|
||||||
11 => on, # Set to previous dim value (before switching it off)
|
|
||||||
12 => toggle, # between off and previous dim val
|
|
||||||
13 => dimup,
|
|
||||||
14 => dimdown,
|
|
||||||
15 => dimupdown,
|
|
||||||
16 => timer,
|
|
||||||
17 => sendstate,
|
|
||||||
18 => off-for-timer,
|
|
||||||
19 => on-for-timer,
|
|
||||||
1a => on-old-for-timer,
|
|
||||||
1b => reset,
|
|
||||||
|
|
||||||
The FSST20 switches on for dim*.
|
|
||||||
|
|
||||||
When setting bit 6 (counted from 1) in the value, you can also
|
|
||||||
send a further byte, the time as suggested in snippet_6.
|
|
||||||
|
|
||||||
The FS20ST only respects this for the values
|
|
||||||
timer, off-for-timer, on-for-timer
|
|
||||||
If the timer is set, then it works for dim*, on, *-for-timer
|
|
||||||
|
|
||||||
sendstate does not work for the FS20ST
|
|
||||||
|
|
||||||
=================================
|
|
@ -1,102 +0,0 @@
|
|||||||
// Init FHZ1000PC (Studio) mit FHT80b und HMS
|
|
||||||
<- 81 06 c9 2c 02 01 1f 0a
|
|
||||||
-> 81 0b c9 fb 01 02 1f 02 78 07 b6 22 80
|
|
||||||
<- 81 08 04 ba c9 01 84 5e 0b 03
|
|
||||||
-> 81 0a c9 ea 01 02 84 01 03 01 5b 03
|
|
||||||
<- 81 05 04 50 c9 01 86
|
|
||||||
<- 81 0b 04 __ 02 01 83 HH HH 65 ff 66 ff // FHT80b 1
|
|
||||||
<- 81 0b 04 __ 02 01 83 HH HH 65 ff 66 ff // FHT80b 2
|
|
||||||
<- 81 06 04 62 c9 01 96 02
|
|
||||||
<- 81 0a c9 af 02 01 61 05 0a 0e 16 18 // Datum Uhrzeit
|
|
||||||
|
|
||||||
// Init FHZ1000PC (Standard) mit FHT80b und HMS
|
|
||||||
<- 81 06 c9 82 02 01 1f 60
|
|
||||||
-> 81 0b c9 61 01 02 1f 02 78 07 1c 22 80
|
|
||||||
<- 81 08 04 af c9 01 84 57 02 08
|
|
||||||
-> 81 0f c9 __ 01 02 84 01 08 07 80 xx xx xx xx 51 0f // Seriennummer
|
|
||||||
<- 81 05 04 50 c9 01 86
|
|
||||||
<- 81 0b 04 __ 02 01 83 HH HH 65 ff 66 ff // FHT80b 1
|
|
||||||
<- 81 05 04 60 c9 01 96
|
|
||||||
<- 81 0a c9 __ 02 01 61 jj mm tt ss mm // Datum Uhrzeit
|
|
||||||
<- 81 05 04 4f c9 01 85 // Speicherabfrage
|
|
||||||
-> 81 07 c9 ac 01 02 85 01 23 // 23 ?bytes? frei
|
|
||||||
<- 81 0b 04 __ 02 01 83 HH HH 65 ff 66 ff // FHT80b 2
|
|
||||||
<- 81 05 04 4f c9 01 85 // Speicherabfrage
|
|
||||||
-> 81 07 c9 a5 01 02 85 01 1c // 1c ?bytes? frei
|
|
||||||
|
|
||||||
// FHZ1000PC
|
|
||||||
<- 81 0a c9 __ 02 01 61 jj mm tt ss mm // Uhrzeit 50 mal am Anfang einer Minute
|
|
||||||
|
|
||||||
<- 81 05 04 4f c9 01 85 // Speicherabfrage
|
|
||||||
-> 81 07 c9 __ 01 02 85 01 xx // xx = ?bytes? frei
|
|
||||||
|
|
||||||
// FHT80b
|
|
||||||
// SB=StartByte LL=Laenge TT=TelegrammType BC=BlockCheck ST=Status
|
|
||||||
// HH=Hauscode
|
|
||||||
// SB LL TT BC CODE FUNKT ST Param
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 00 00 _6 xx // Istwert Stellantrieb
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 00 00 2c xx // Synczeit
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 14 00 69 xx // Montag von1 in 1/6 Stunde (10 Min.)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 15 00 69 xx // Montag bis1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 16 00 69 xx // Montag von2 (90 = frei)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 17 00 69 xx // Montag bis2
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 18 00 69 xx // Dienstag von1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 19 00 69 xx // bis 1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1a 00 69 xx // von2
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1b 00 69 xx // bis2
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1c 00 69 xx //Mittwoch von1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1d 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1e 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1f 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 20 00 69 xx // Donnerstag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 21 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 22 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 23 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 24 00 69 xx // Freitag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 25 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 26 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 27 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 28 00 69 xx // Samstag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 29 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2a 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2b 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2c 00 69 xx // Sonntag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2d 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2e 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2f 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 3e 00 69 xx // 0=auto 1=manuell 2=Urlaub
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 3f 00 69 xx // Urlaub Endeuhrzeit oder Endetag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 40 00 69 xx // Urlaub Endetag 10=heute 11=morgen 0x=Endemonat
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 41 00 69 xx // aktuelle Solltemperatur (x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 42 00 69 xx // ist Temperatur (x/10)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 43 00 69 xx // ?????
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 44 00 69 xx // bit0=Batterie 0=OK 1=leer bit5=Fenster 0=zu 1=offen
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 4b 00 67 xx // ?????
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 82 00 69 xx // Tag Temperatur (x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 84 00 69 xx // Nacht Temperatur (x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 85 00 69 04 // ?????
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 8a 00 69 xx // Fenster offen Temperatur (x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 7e 00 67 xx // ?????
|
|
||||||
|
|
||||||
<- 81 09 04 __ 02 01 83 HH HH 3e xx // Modus setzen 00=auto 01=manu 02=Urlaub
|
|
||||||
-> 81 0b 04 __ 84 09 83 01 HH HH 3e xx yy // Übernahmequittung yy=Speicherstelle
|
|
||||||
<- 81 09 04 __ 02 01 83 HH HH 41 xx // Solltemp setzen (x=soll/0.5)
|
|
||||||
Die anderen Register können genauso verändert werden.
|
|
||||||
|
|
||||||
//HMS100TF
|
|
||||||
-> 81 0e 04 __ 05 10 a0 01 HH HH 00 00 ss tt gu ff // Temp = (utt*0.04) Feuchte = (ffg*100/4096)
|
|
||||||
|
|
||||||
// Status bit7=Negative Temp. bit6=Batterie
|
|
||||||
|
|
||||||
//ST-2
|
|
||||||
<- 81 09 04 __ 02 01 01 a0 01 HH HH xx yy // xx=Taste yy=Funktion
|
|
||||||
//Funktionen
|
|
||||||
00 Aus
|
|
||||||
01-10 Dimmen direkt
|
|
||||||
11 Ein
|
|
||||||
12 Dimmen Eintastenmodus
|
|
||||||
13 Dimmen runter
|
|
||||||
14 Dimmen rauf
|
|
||||||
15 Umschalten
|
|
||||||
16 Timerprogrammierung start/stop
|
|
||||||
1b Auslieferungszustand
|
|
@ -1,60 +0,0 @@
|
|||||||
// FHT80b
|
|
||||||
// SB=StartByte LL=Laenge TT=TelegrammType CC=CRC ST=Status HH=Hauscode
|
|
||||||
|
|
||||||
// SB LL TT CC CODE FUNKT ST Param
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 00 00 _6 xx // Istwert Stellantrieb
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 00 00 2c xx // Synczeit ???
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 14 00 69 xx // Montag von1 in 1/6
|
|
||||||
Stunde (10 Min.)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 15 00 69 xx // Montag bis1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 16 00 69 xx // Montag von2 (90 = frei)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 17 00 69 xx // Montag bis2
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 18 00 69 xx // Dienstag von1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 19 00 69 xx // bis 1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1a 00 69 xx // von2
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1b 00 69 xx // bis2
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1c 00 69 xx // Mittwoch von1
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1d 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1e 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 1f 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 20 00 69 xx // Donnerstag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 21 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 22 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 23 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 24 00 69 xx // Freitag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 25 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 26 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 27 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 28 00 69 xx // Samstag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 29 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2a 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2b 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2c 00 69 xx // Sonntag
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2d 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2e 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 2f 00 69 xx
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 3e 00 69 xx // 0=auto 1=manuell
|
|
||||||
2=Urlaub lang, 3=Urlaub kurz
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 3f 00 69 xx // für Mode3 Uhrzeit, für
|
|
||||||
Mode2 Endtag des Monats
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 40 00 69 xx // für Mode3 Resttage ab
|
|
||||||
aktuellem Datum, für Mode2 Endmonat
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 41 00 69 xx // aktuelle Solltemperatur
|
|
||||||
(x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 42 00 69 xx // ist Temperatur (Teil 1)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 43 00 69 xx // Ist-Temperatur (Teil 2)
|
|
||||||
(Die Ermittlung der Temperatur erfolgt nach der Formel Ist-Temp = (Teil2
|
|
||||||
* 255 +Teil1) / 10)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 44 00 69 xx // Status (Bit0=LowBatt,
|
|
||||||
Bit1=Untertemperatur, Bit4=Störung Fenterkontakt, Bit5=Fenster auf)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 45 00 69 xx // Manuelle Temperatur ??
|
|
||||||
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 4b 00 67 xx // ?????
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 7e 00 67 xx // ?????
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 82 00 69 xx // Komfort-Temperatur
|
|
||||||
(x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 84 00 69 xx // Absenk-Temperatur
|
|
||||||
(x*0.5)
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 85 00 69 04 // Alarm-Temp.-Differenz
|
|
||||||
-> 81 0c 04 __ 09 09 a0 01 HH HH 8a 00 69 xx // Fenster offen Temperatur
|
|
||||||
(x*0.5)
|
|
@ -1,39 +0,0 @@
|
|||||||
fs20:
|
|
||||||
Modulation: 100% Amplitude, also pulse und spaces
|
|
||||||
|
|
||||||
Keine festen Bitraster, ein Bit besteht immer aus pulse UND space
|
|
||||||
|
|
||||||
Bit 0: pulse+space insgesamt ca 800us,
|
|
||||||
Bit 1: ca. 1200us
|
|
||||||
|
|
||||||
Beginn einer Uebertragung: ca 20 Startbits 0, zum Start eine 1
|
|
||||||
|
|
||||||
dann Uebertragung der Datenbytes jeweils 8 Bit + Pruefbit:
|
|
||||||
msb
|
|
||||||
...
|
|
||||||
lsb
|
|
||||||
pruefbit = xor-Verknuepfung der Datenbits.
|
|
||||||
|
|
||||||
Die Uebertragung hat folgenden Aufbau:
|
|
||||||
1. hausadr1
|
|
||||||
2. hausadr0
|
|
||||||
3. adr
|
|
||||||
4. cmd
|
|
||||||
5. arg1
|
|
||||||
...
|
|
||||||
n-1. argn optional
|
|
||||||
n. pruefbyte
|
|
||||||
|
|
||||||
pruefbyte = unterste 8 Bit aus summe aller bytes 1..n-1 +6
|
|
||||||
|
|
||||||
Hauscode=hausadr1*256 + hausadr
|
|
||||||
|
|
||||||
Dass ein hauscode 11111111 tatsaechlich fuer 0 steht, ist wohl klar.
|
|
||||||
|
|
||||||
cmd 0..31: Keine Argumente
|
|
||||||
cmd 32..63: Ein Argumentbyte
|
|
||||||
Jede Uebertragung wird 3* ausgesendet.
|
|
||||||
|
|
||||||
|
|
||||||
Grueße,
|
|
||||||
automat
|
|
@ -1,60 +0,0 @@
|
|||||||
Fs20-Codes
|
|
||||||
0 Aus
|
|
||||||
1..15 setze auf Helligkeit
|
|
||||||
16 An auf max
|
|
||||||
17 An alter wert
|
|
||||||
18 Toggel
|
|
||||||
19 Dim UP
|
|
||||||
20 Dim Down
|
|
||||||
21 DIM up/down
|
|
||||||
22 Prog.Modus/Zeit-Messung
|
|
||||||
23 Adressmeldung / Nix
|
|
||||||
24 Sofort Aus - Timer, sofort wieder an, evtl slow off
|
|
||||||
25 Sofort Max - timer, sofort aus
|
|
||||||
26 Sofort An alter Wert - timer, sofort aus
|
|
||||||
27 ?? AUS - RESET?
|
|
||||||
28 ?
|
|
||||||
29 ?
|
|
||||||
30 sofort Max, timer, dann sofort alter wert
|
|
||||||
31 sofort An alter Wert, nach Timer - sofort Aus
|
|
||||||
|
|
||||||
32-47 S auf Helligkeit mit Speed S
|
|
||||||
48 S An auf max,
|
|
||||||
49 S An alter wert
|
|
||||||
50 T Toggel fuer T, dann alter Wert
|
|
||||||
51 T Dim up, T ?
|
|
||||||
52 T Dim down, T ?
|
|
||||||
53 T Dim up/down, T ?
|
|
||||||
54 T Programmiere Einschaltzeit
|
|
||||||
55 ?
|
|
||||||
56 T Aus fuer EinT
|
|
||||||
57 T Ein Max fuer T, dann alter Wert
|
|
||||||
58 T Ein alter Wert fuer T, dann AUS
|
|
||||||
59 ??? RESET
|
|
||||||
60 T Progr. Einschalt-Speed mit T
|
|
||||||
61 T Progr. Ausschalt-Speed mit T
|
|
||||||
62 T Ein Max fuer T, dann alter Wert
|
|
||||||
63 T Alter Wert fuer T, dann wieder aktueller Wert
|
|
||||||
|
|
||||||
S und T Argumente 2. Byte. Zeit T=0: endlos
|
|
||||||
|
|
||||||
Übrigens ein paar Anfänge zum HMS-Protokoll:
|
|
||||||
adr1 adr2 typ arg1 arg2/seqnr arg3
|
|
||||||
|
|
||||||
typ:
|
|
||||||
0 temp/feucht hms100tf
|
|
||||||
1 temp hms100t
|
|
||||||
2 Wasser hms100w/wd
|
|
||||||
3 Rauch hms100rm
|
|
||||||
4 TuerFenster hms100tfk
|
|
||||||
5 TuerFenster hms100tfk
|
|
||||||
6 Gas hms100 MG/PG/CO
|
|
||||||
7 Gas hms100 MG/PG/CO
|
|
||||||
8 Gas hms100 MG/PG/CO
|
|
||||||
9-13 unbekannt
|
|
||||||
14 hms100 FI
|
|
||||||
15 ?
|
|
||||||
+16 ??
|
|
||||||
+32 Batteriewarnung
|
|
||||||
+64 neue Batterie
|
|
||||||
+128 Vorzeichen
|
|
@ -1,127 +0,0 @@
|
|||||||
S20-Funkschaltsystem
|
|
||||||
|
|
||||||
1. Protokoll
|
|
||||||
|
|
||||||
1.1. Datenrahmen:
|
|
||||||
|
|
||||||
Hauscode 16 bit
|
|
||||||
Adresse 8 bit
|
|
||||||
Befehl 8 bit (16bit, wenn im ersten Befehlsbyte das Erweiterungsbit gesetzt
|
|
||||||
ist.)
|
|
||||||
Quersumme 8 bit
|
|
||||||
|
|
||||||
1.1.1. Hauscode:
|
|
||||||
0-65535
|
|
||||||
Hauscode1: 8bit (High-Byte)
|
|
||||||
Hauscode2: 8bit (Low-Byte)
|
|
||||||
|
|
||||||
1.1.2. Adresse:
|
|
||||||
High-Nibble (4bit): Adreß-Gruppe (Bank / Raum)
|
|
||||||
15 = Master- / Funktionsgruppen-Bereich
|
|
||||||
0-14 = Adreßraum für Einzeladressen
|
|
||||||
Low-Nibble (4bit): Unter-Adresse
|
|
||||||
15 = alle der Adreß-Gruppe (lokal Master)
|
|
||||||
0-14 = Einzel-Adresse / Adresse der Funktionsgruppe
|
|
||||||
|
|
||||||
Das High-Nibble wählt die Adreß-Gruppe aus. Es stehen 15 Adreß-Gruppen zur
|
|
||||||
Verfügung. Die Adreß-Gruppe 15 wählt den Master- bzw.
|
|
||||||
Funktionsgruppen-Adreßbereich aus. Das Low-Nibble bestimmt innerhalb der
|
|
||||||
gewählten Adreß-Gruppe die anzusprechende Unter-Adresse. Zum Ausführen einer
|
|
||||||
globalen Master-Funktion müssen High- und Low-Nibble der Adresse 15 sein!
|
|
||||||
|
|
||||||
|
|
||||||
Reihenfolge der Eingabe und Speicherung von Hauscode und Adresse beim Setup
|
|
||||||
von Sendern:
|
|
||||||
1. HC1: [A1|A0|B1|B0|C1|C0|D1|D0]
|
|
||||||
2. HC2: [E1|E0|F1|F0|G1|G0|H1|H0]
|
|
||||||
3. Adr: [I1|I0|J1|J0|K1|K0|L1|L0]
|
|
||||||
|
|
||||||
1.1.3. Befehl:
|
|
||||||
Unteren 5 bit:
|
|
||||||
0 00h aus
|
|
||||||
1 01h an, 6,25% Einschalten auf Helligkeitsstufe 1 (min.)
|
|
||||||
2 02h an, 12,5%
|
|
||||||
...
|
|
||||||
15 0fh an, 93,75%
|
|
||||||
16 10h an, 100% Einschalten auf Helligkeitsstufe 16 (max.)
|
|
||||||
|
|
||||||
17 11h an, alter Wert Auf letztem Helligkeitswert einschalten
|
|
||||||
18 12h toggle Wechsel zwischen aus und an, alter Wert
|
|
||||||
19 13h dim up Eine Helligkeitsstufe heller
|
|
||||||
20 14h dim down Eine Helligkeitsstufe dunkler
|
|
||||||
21 15h dim up and down ..., + bis max, kurz warten, - bis min, kurz warten,
|
|
||||||
22 16h timeset Timerprogrammierung (Start, Ende)
|
|
||||||
23 17h send status Nur bei bidirektionalen Komponenten!
|
|
||||||
24 18h aus, für Timerzeit
|
|
||||||
25 19h an, 100%, für Timerzeit
|
|
||||||
26 1ah an, alter Wert, für Timerzeit
|
|
||||||
27 1bh reset (auf Auslieferzustand)
|
|
||||||
28 1ch frei
|
|
||||||
29 1dh frei
|
|
||||||
30 1eh frei
|
|
||||||
31 1fh frei
|
|
||||||
|
|
||||||
Bit 5: Erweiterungsbit (0 = ohne, 1 = Erweiterungsbyte zwischen Befehl und
|
|
||||||
Quersumme)
|
|
||||||
Bit 6: bidirektionaler Befehl (normal = 0)
|
|
||||||
Bit 7: Antwort eines Empfängers (normal = 0)
|
|
||||||
|
|
||||||
Erweiterungsbyte bei gesetztem Erweiterungsbit:
|
|
||||||
Ist im ersten Befehlsbyte das Erweiterungsbit gesetzt, wird ein
|
|
||||||
Erweiterungsbyte eingeschoben.
|
|
||||||
|
|
||||||
Für die Befehle 0 bis 18 und 24 bis 26 gilt folgende Codierung des
|
|
||||||
Erweiterungsbytes:
|
|
||||||
Das Byte gibt die einmalige Zeitdauer für den Timer in Schritten von 0,25s an.
|
|
||||||
|
|
||||||
Bei Befehl 22 wird der Timer des Empfängers fest auf den übertragenen
|
|
||||||
Timerwert gestellt.
|
|
||||||
Das Low-Nibble gibt den Zahlenwert an. Ist es Null (= 0), wird die
|
|
||||||
Timerfunktion ignoriert und der Verbraucher dauerhaft/sofort geschaltet.
|
|
||||||
|
|
||||||
Das High-Nibble dient als Multiplikator mit dem Faktor 2^x. Es sind nur Werte
|
|
||||||
kleiner oder gleich 12 sinnvoll. Größere Werte werden auf 12 begrenzt!
|
|
||||||
|
|
||||||
Zeit = 2^(High-Nibble) * Low-Nibble * 0,25s
|
|
||||||
Die maximale Zeitdauer beträgt damit ca. 4,25Std, die minimale 0,25s, sofern
|
|
||||||
dies jeweils von den Empfängern bis zu den angegebenen Grenzen unterstützt
|
|
||||||
wird.
|
|
||||||
|
|
||||||
1.1.4. Quersumme
|
|
||||||
|
|
||||||
8bit-Summe aus 6, Hauscode, Adresse und Befehl (und Erweiterungsbyte) bilden
|
|
||||||
Werden Repeater verwendet, so treten auch um 1 oder 2 erhöhte Quersummen auf,
|
|
||||||
die von den Empfängern im Normalfall akzeptiert werden sollten. Wurde von
|
|
||||||
einem Empfänger bis 1,6s vor einem Repeater-Befehl ein normaler Befehl
|
|
||||||
empfangen, so wird der Repeater-Befehl ignoriert.
|
|
||||||
|
|
||||||
|
|
||||||
1.1.5. Komplette Übertragung:
|
|
||||||
Synchr, HC1, Parity, HC2, Parity, Adresse, Parity, Befehl, Parity, Quersumme, Parity, EOT
|
|
||||||
13 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 1 bit
|
|
||||||
|
|
||||||
oder:
|
|
||||||
Synchr, HC1, Parity, HC2, Parity, Adr, Parity, Bef1, Parity, Bef2, Par, Quersumme, Par, EOT
|
|
||||||
13 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 1 bit
|
|
||||||
|
|
||||||
Übertragung beginnt mit MSB.
|
|
||||||
|
|
||||||
Die Übertragung für ein komplettes Datenpaket mit 1 Befehl dauert 47,6ms bis
|
|
||||||
65,6ms.
|
|
||||||
|
|
||||||
Wird an der Hand-FB eine Taste < 400ms gedrückt, so wird beim Loslassen
|
|
||||||
folgendes gesendet: DAT, 10msPAUSE, DAT, 10msPAUSE, DAT, 110msPAUSE
|
|
||||||
|
|
||||||
Wird eine Taste an der Hand-FB länger als 400ms gedrückt, so wird alle 250ms
|
|
||||||
folgendes gesendet: DAT, 10msPAUSE, DAT
|
|
||||||
|
|
||||||
|
|
||||||
Im AUS-Zustand schaltet ein Dimmer bei EIN mit alter Helligkeit ein.
|
|
||||||
Im AUS-Zustand schaltet ein Dimmer bei DIMUP mit voller Helligkeit ein.
|
|
||||||
Im EIN-Zustand wird bei DIMUP eine Stufe aufgedimmt.
|
|
||||||
|
|
||||||
Alle Befehle dürfen von Empfängern immer nur 1x ausgewertet werden. Gesendet
|
|
||||||
wird der Befehl 3x mit einer Pause von 10ms. Dim-Befehle werden nur 2x mit
|
|
||||||
einer Pause von ca. 10ms und 130ms gesendet. Nach einem erkannten Befehl
|
|
||||||
ignorieren die Empfänger für 120ms weitere Befehle. Befehle von Repeatern
|
|
||||||
werden für 1,6s ignoriert.
|
|
@ -1,14 +0,0 @@
|
|||||||
Get 81 0c c9 78 0102 1f04a0ffb6ffffff
|
|
||||||
Get 81 0c c9 da 0102 1f04a0ffb661ffff
|
|
||||||
Set 81 05 04 61 c90197
|
|
||||||
Set 81 05 04 63 c90199
|
|
||||||
Get 81 0d 04 ac 4027a0017100215000b30f KS300 msg
|
|
||||||
Set 81 05 04 50 c90186 initHMS
|
|
||||||
Set 81 06 04 62 c9019602 InitFS20 (+02?)
|
|
||||||
Set 81 06 c9 2c 02011f0a Init3 string
|
|
||||||
Set 81 09 04 46 020101xxxx0000 Set FS20 device off
|
|
||||||
Set 81 09 04 4e c901839e010161 Set fhtcode 97 (0x61)
|
|
||||||
Set 81 09 04 57 020101xxxx0011 Set FS20 device on
|
|
||||||
Set 81 0a c9 93 02016106050f1500 Time: 2006-05-15 21:00
|
|
||||||
Set 81 0a c9 a4 02016106050f1511 Time: 2006-05-15 21:17
|
|
||||||
Set 81 0b 04 8f 020183xxxx65ff66ff Request FHT refreshvalues
|
|
@ -2,7 +2,7 @@
|
|||||||
# fhem.pl configfile
|
# fhem.pl configfile
|
||||||
#
|
#
|
||||||
# Define a lamp (which is plugged in via an FS20ST).
|
# Define a lamp (which is plugged in via an FS20ST).
|
||||||
# To program the FS20ST, start the server, plug the FS20ST in pressing its
|
# To program the FS20ST, start the server, plug the FS20ST while pressing its
|
||||||
# button (it starts blinking), and then execute fhem.pl 7072 "set lamp on"
|
# button (it starts blinking), and then execute fhem.pl 7072 "set lamp on"
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# fhem.pl configfile
|
# fhem.pl configfile
|
||||||
#
|
#
|
||||||
# The challange: We have 2 rollades (which are connected via the FS20MS).
|
# The challenge: We have 2 rollades (which are connected via the FS20MS).
|
||||||
# Button 3 on the FS20S20 should activate both rollades. There are three
|
# Button 3 on the FS20S20 should activate both rollades. There are three
|
||||||
# solutions:
|
# solutions:
|
||||||
# 1. Builtin commands
|
# 1. Builtin commands
|
||||||
|
@ -24,14 +24,15 @@ define wz FHT 3232 # type FHT, transmitter code 3232 (default value)
|
|||||||
define fhz_timer at *03:30:00 set FHZ time
|
define fhz_timer at *03:30:00 set FHZ time
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# If you wish to have up-to date information on certain strange parameters
|
# If you wish to have up-to date information on certain parameters which can be
|
||||||
# then comment out the line below. My devices send a message when a value
|
# modified on the FHT80b itself, then enable the line below. My device sends a
|
||||||
# changes, and send measured-temp, actuator and state messages regularly.
|
# message when a value changes, and sends measured-temp, actuator and state
|
||||||
# Be patient: the reply comes in 5-10 minutes.
|
# messages regularly, so I do not use this command.
|
||||||
define wz_refresh at *04:00:00 set wz report1 255 report2 255
|
# Be patient: the reply comes after 5-10 minutes.
|
||||||
|
#define wz_refresh at *04:00:00 set wz report1 255 report2 255
|
||||||
|
|
||||||
# alias for the above
|
# alias for the above
|
||||||
define wz_refresh at *04:00:00 set wz refreshvalues
|
#define wz_refresh at *04:00:00 set wz refreshvalues
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
|
@ -21,8 +21,6 @@ define ks1 KS300 1234 250 # type KS300, with 250ml rain / counter
|
|||||||
define wzlog FileLog /var/log/fhem/wz-%Y-%U.log wz:.*(temp|actuator).*
|
define wzlog FileLog /var/log/fhem/wz-%Y-%U.log wz:.*(temp|actuator).*
|
||||||
|
|
||||||
# Make it accessible from 01_FHEMWEB.pm (webpgm2)
|
# Make it accessible from 01_FHEMWEB.pm (webpgm2)
|
||||||
# Note: for FHEMWEB large logfiles (one per year) are recommended to be able to
|
|
||||||
# navigate
|
|
||||||
attr wzlog logtype fht:Temp
|
attr wzlog logtype fht:Temp
|
||||||
|
|
||||||
# ks300 log
|
# ks300 log
|
||||||
@ -36,8 +34,10 @@ attr kslog logtype ks300_1:Temp/Hum,ks300_2:Rain/Wind
|
|||||||
# paranthesis, and your shell will probably bark.
|
# paranthesis, and your shell will probably bark.
|
||||||
define tmplog notifyon wz:temp.* "/usr/local/bin/log.sh @ "@ %""
|
define tmplog notifyon wz:temp.* "/usr/local/bin/log.sh @ "@ %""
|
||||||
|
|
||||||
|
quit
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
And here is /usr/local/bin/log.sh, don't forget chmod +x
|
#And here is /usr/local/bin/log.sh, don't forget chmod +x
|
||||||
|
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
fname=$1
|
fname=$1
|
||||||
|
Loading…
Reference in New Issue
Block a user