From 8ddd07ab224266439b9bf1b27ba05ae212ad84b0 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 5 Dec 2009 09:00:12 +0000 Subject: [PATCH] Documentation changes git-svn-id: https://svn.fhem.de/fhem/trunk@495 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/Makefile | 16 +++-- fhem/docs/HOWTO.html | 144 ++++++++++++++++++++++---------------- fhem/docs/commandref.html | 2 +- fhem/docs/raw-codes | 22 ------ fhem/docs/rm100 | 28 -------- fhem/docs/snippet_1.txt | 74 -------------------- fhem/docs/snippet_2.txt | 102 --------------------------- fhem/docs/snippet_3.txt | 60 ---------------- fhem/docs/snippet_4.txt | 39 ----------- fhem/docs/snippet_5.txt | 60 ---------------- fhem/docs/snippet_6.txt | 127 --------------------------------- fhem/docs/snippet_7.txt | 14 ---- fhem/examples/01_fs20 | 2 +- fhem/examples/02_fs20 | 2 +- fhem/examples/03_fht | 13 ++-- fhem/examples/04_log | 6 +- 17 files changed, 106 insertions(+), 606 deletions(-) delete mode 100644 fhem/docs/raw-codes delete mode 100644 fhem/docs/rm100 delete mode 100644 fhem/docs/snippet_1.txt delete mode 100644 fhem/docs/snippet_2.txt delete mode 100644 fhem/docs/snippet_3.txt delete mode 100644 fhem/docs/snippet_4.txt delete mode 100644 fhem/docs/snippet_5.txt delete mode 100644 fhem/docs/snippet_6.txt delete mode 100644 fhem/docs/snippet_7.txt diff --git a/fhem/CHANGED b/fhem/CHANGED index e2a17eaea..f13ed666e 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -551,3 +551,4 @@ - bugfix: CUL_RFR fixes (chaining RFR's should work) - bugfix: Path in the examples fixed (got corrupted) - bugfix: PachLog fixes from Axel + - bugfix: HOWTO/Examples revisited for correctness diff --git a/fhem/Makefile b/fhem/Makefile index 5819c48d7..057e83157 100644 --- a/fhem/Makefile +++ b/fhem/Makefile @@ -12,29 +12,31 @@ all: install:install-base -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 Edit $(VARDIR)/fhem.cfg then type + @echo Start fhem with @echo perl $(BINDIR)/fhem.pl $(VARDIR)/fhem.cfg install-pgm2:install-base cp -r webfrontend/pgm2/* $(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"` - cp examples/sample_pgm2 $(VARDIR)/fhem.cfg - cd examples; for i in *; do cp -r $$i $(MODDIR)/FHEM/example.$$i; done + cp examples_changed/sample_pgm2 $(VARDIR)/fhem.cfg + cd examples_changed; for i in *; do cp -r $$i $(MODDIR)/FHEM/example.$$i; done @echo @echo - @echo Edit $(VARDIR)/fhem.cfg then type + @echo Start fhem with @echo perl $(BINDIR)/fhem.pl $(VARDIR)/fhem.cfg install-base: mkdir -p $(BINDIR) $(MODDIR) $(VARDIR) cp fhem.pl $(BINDIR) cp -r FHEM $(MODDIR) - perl -pi -e 's,modpath \.,modpath $(MODDIR),' examples/[a-z]* - perl -pi -e 's,/tmp,$(VARDIR),' examples/[a-z]* + rm -rf examples_changed + 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: @echo Version is $(VERS), Date is $(DATE) diff --git a/fhem/docs/HOWTO.html b/fhem/docs/HOWTO.html index 3dd1e8830..45d539c6e 100644 --- a/fhem/docs/HOWTO.html +++ b/fhem/docs/HOWTO.html @@ -5,10 +5,6 @@ <body style="background-color: white;"> <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="#FHZ">Attaching an FHZ device</a><br/> <a href="#FS20rx">Configuring FS20 receivers</a><br/> @@ -25,11 +21,17 @@ <a name="starting"/> <h3>Starting</h3> <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 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 0: Server started (version ...) </pre> @@ -44,57 +46,77 @@ 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). 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> - 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"/> <h3>Configuring FS20 receivers</h3> <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> + 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.<br/> - Set the model attribute of the device:<pre> + 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.<br> </ul> <a name="FS20tx"/> - <h3>Configuring FS20 transmitters</h3> + <h3>Misc. RF transmitters (FS20/EM/S300 etc.)</h3> <ul> - Make sure the global loglevel is at least 3 (attr global verbose 3, check - the fhem.cfg file in the Edit files section).<br> - Now make sure that the transmitter is sending a signal. In the logfile - (FHEMWEB: "All together" -> Logs -> Logfile -> text) a line should - appear:<pre> FS20 Unknown device HOUSECODE, Button BTN Code CDE, please - define it</pre> + 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> + 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 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> <a name="FHT"/> <h3>Configuring FHT devices</h3> <ul> - Make sure the global loglevel is at least 3 (attr global verbose 3, check - the fhem.cfg file in the Edit files section).<br> - Now wait for a while, till the FHT is sending some signals. In the - logfile (FHEMWEB: "All together" -> Logs -> LogFile -> text) a line - should appear:<pre> FHT Unknown device HOUSECODE, please define it</pre> + 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> - Now define a device:<pre> - define livingroom FHT HOUSECODE</pre> - If there is no signal for a while, the check <a href="faq.html#faq6"> + 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> @@ -103,11 +125,22 @@ <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> 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 - devices of the type notify. See the definition - <a href="commandref.html#notify">here</a>. + 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"/> @@ -141,11 +174,12 @@ FHEMWEB has builtin support for displaying FileLog type logs as plots, see the <a href="#plot">plot</a> section below.<br/><br/> - See the attributes - <a href="commandref.html#archivedir">archivedir</a>, - <a href="commandref.html#archivecmd">archivecmd</a>, - <a href="commandref.html#nrarchive">nrarchive</a> - attributes for archiving the logs. + 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"/> @@ -160,33 +194,22 @@ 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. + 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 and opera support SVG - out of the box, Internet Explorer does it via the Adobe "SVG viewer" - plugin. To use SVG graphics, set the <a + 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. To use SVG graphics, set the <a 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 - 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 + To zoom in the log you have to set plotmode to gnuplot-scroll or SVG. The gnuplot files must have #FileLog entries in order to be useable with - scrolling, as the filtering happens with the FileLog - <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. + scrolling, see the supplied gnuplot files for an example.<br><br> </ul> @@ -231,10 +254,9 @@ 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> - <br/><br/> + define messages FileLog /var/log/messages fakelog</pre> </ul> + <br> <a name="structure"/> <h3>Complex structures</h3> diff --git a/fhem/docs/commandref.html b/fhem/docs/commandref.html index 259fb5336..41d5d1fb5 100644 --- a/fhem/docs/commandref.html +++ b/fhem/docs/commandref.html @@ -3403,7 +3403,7 @@ A line ending with \ will be concatenated with the next one, so long lines <b>Attributes</b> <ul> - <a name="webname="></a> + <a name="webname"></a> <li>webname<br/> Path after the http://hostname:port/ specification. Defaults to fhem, i.e the default http address is http://localhost:8083/fhem diff --git a/fhem/docs/raw-codes b/fhem/docs/raw-codes deleted file mode 100644 index e0bd46f9d..000000000 --- a/fhem/docs/raw-codes +++ /dev/null @@ -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 diff --git a/fhem/docs/rm100 b/fhem/docs/rm100 deleted file mode 100644 index 23d1e9ef8..000000000 --- a/fhem/docs/rm100 +++ /dev/null @@ -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 - - diff --git a/fhem/docs/snippet_1.txt b/fhem/docs/snippet_1.txt deleted file mode 100644 index 96afe8696..000000000 --- a/fhem/docs/snippet_1.txt +++ /dev/null @@ -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 - -================================= diff --git a/fhem/docs/snippet_2.txt b/fhem/docs/snippet_2.txt deleted file mode 100644 index 98008e04b..000000000 --- a/fhem/docs/snippet_2.txt +++ /dev/null @@ -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 diff --git a/fhem/docs/snippet_3.txt b/fhem/docs/snippet_3.txt deleted file mode 100644 index d8544c88c..000000000 --- a/fhem/docs/snippet_3.txt +++ /dev/null @@ -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) diff --git a/fhem/docs/snippet_4.txt b/fhem/docs/snippet_4.txt deleted file mode 100644 index a59776588..000000000 --- a/fhem/docs/snippet_4.txt +++ /dev/null @@ -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 diff --git a/fhem/docs/snippet_5.txt b/fhem/docs/snippet_5.txt deleted file mode 100644 index 10f7c2605..000000000 --- a/fhem/docs/snippet_5.txt +++ /dev/null @@ -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 diff --git a/fhem/docs/snippet_6.txt b/fhem/docs/snippet_6.txt deleted file mode 100644 index d98c90a91..000000000 --- a/fhem/docs/snippet_6.txt +++ /dev/null @@ -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. diff --git a/fhem/docs/snippet_7.txt b/fhem/docs/snippet_7.txt deleted file mode 100644 index d31b5f01d..000000000 --- a/fhem/docs/snippet_7.txt +++ /dev/null @@ -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 diff --git a/fhem/examples/01_fs20 b/fhem/examples/01_fs20 index 5e833bd24..e351365de 100644 --- a/fhem/examples/01_fs20 +++ b/fhem/examples/01_fs20 @@ -2,7 +2,7 @@ # fhem.pl configfile # # 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" # diff --git a/fhem/examples/02_fs20 b/fhem/examples/02_fs20 index 7962d1f76..ad5e69ec2 100644 --- a/fhem/examples/02_fs20 +++ b/fhem/examples/02_fs20 @@ -1,7 +1,7 @@ # # 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 # solutions: # 1. Builtin commands diff --git a/fhem/examples/03_fht b/fhem/examples/03_fht index ccb1c5137..7b3af1f76 100644 --- a/fhem/examples/03_fht +++ b/fhem/examples/03_fht @@ -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 ######################### -# If you wish to have up-to date information on certain strange parameters -# then comment out the line below. My devices send a message when a value -# changes, and send measured-temp, actuator and state messages regularly. -# Be patient: the reply comes in 5-10 minutes. -define wz_refresh at *04:00:00 set wz report1 255 report2 255 +# If you wish to have up-to date information on certain parameters which can be +# modified on the FHT80b itself, then enable the line below. My device sends a +# message when a value changes, and sends measured-temp, actuator and state +# messages regularly, so I do not use this command. +# 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 -define wz_refresh at *04:00:00 set wz refreshvalues +#define wz_refresh at *04:00:00 set wz refreshvalues ################### diff --git a/fhem/examples/04_log b/fhem/examples/04_log index 77c76ae24..204e81d6a 100644 --- a/fhem/examples/04_log +++ b/fhem/examples/04_log @@ -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).* # 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 # ks300 log @@ -36,8 +34,10 @@ attr kslog logtype ks300_1:Temp/Hum,ks300_2:Rain/Wind # paranthesis, and your shell will probably bark. 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 fname=$1