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 @@
+ First install the Device::SerialPort (or Win32::SerialPort) perl module + with the command"cpan -i Device::Serial"
+ 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:make install-pgm2 perl /usr/local/bin/fhem.pl /var/log/fhem/fhem.cfg- The logfile should look like:+ After starting, the logfile should look like:2008.06.15 16:17:03 2: FHEMWEB port 8083 opened 2008.06.15 16:17:03 0: Server started (version ...)@@ -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):+ "Fhem cmd" input field in the browser):define FHZ1 FHZ /dev/ttyUSB0- Look here for more. + You can find details here and + here. Instead of an FHZ you can also + use a CUL with slightly different + parameters. - +
+ Note: 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.
Configuring FS20 receivers
+ Configure the FS20 device in + fhem first with:define lamp1 FS20 1234 56+ 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.
- Set the model attribute of the device:+ 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:attr lamp1 model fs20st+ to get only the commands available for this device. Here is a complete list of models.
-Configuring FS20 transmitters
+Misc. RF transmitters (FS20/EM/S300 etc.)
FS20 Unknown device HOUSECODE, Button BTN Code CDE, please - define it+ Wait a while, until the transmitter sent some data. In the logfile + (Browser window: "All together" -> Logs:Logfile:text) a line + will appear:
+ FS20 Unknown device <HOUSECODE, Button <BTN> Code <CDE>, please define itNow define a device:
- define piri1 FS20 HOUSECODE BTN+ define piri1 FS20 <HOUSECODE> <BTN> + Set the model attribute of the device:
attr lamp1 model fs20piri+ to get only the commands available for this device. - Here is a complete list of models.
FHT Unknown device HOUSECODE, please define it+ 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:
+ FHZ1: Unknown FHT device detected, define one to get detailed information- Now define a device:
- define livingroom FHT HOUSECODE- If there is no signal for a while, the check + Define your FHT device with an arbitrary code in order to load the FHT + module, see this link for details:
+ define MyFHT FHT 1111+ + The next message in the log will contain more details:
+ FHT Unknown device <HOUSECODE>, please define it+ + Delete and create your device again:
+ delete MyFHT + define MyFHT FHT <HOUSECODE>+ + If there is no signal for a while, then check this FAQ entry. @@ -103,11 +125,22 @@
+ telnet localhost 7072+ + and type
+ inform timer+ + Now you will receive in this telnet session all events, just like the + notifies/watchdogs do. You can even simulate events by using the + trigger command:
+ trigger lamp1 on@@ -141,11 +174,12 @@ FHEMWEB has builtin support for displaying FileLog type logs as plots, see the plot section below.
- define messages FileLog /var/log/messages fakelog --
");}
-e.g.
- {FS20_Parse(undef, "81xx04xx0101a0011234030011")}
-
-where 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