From 684f474c9cda1a7679137d5e3eb1f087d5a1a71c Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 28 Nov 2009 11:14:13 +0000 Subject: [PATCH] RFR documentation, small fixes git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@489 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- CHANGED | 1 + FHEM/00_CUL.pm | 2 +- FHEM/16_CUL_RFR.pm | 16 +++--- docs/ccc.jpg | Bin 0 -> 14548 bytes docs/commandref.html | 114 ++++++++++++++++++++++++++++++++++++------- docs/cul_rfr.jpg | Bin 0 -> 4778 bytes fhem.pl | 7 ++- 7 files changed, 112 insertions(+), 28 deletions(-) create mode 100644 docs/ccc.jpg create mode 100644 docs/cul_rfr.jpg diff --git a/CHANGED b/CHANGED index e2bb7cd9b..855ba6789 100644 --- a/CHANGED +++ b/CHANGED @@ -544,3 +544,4 @@ - feature: pgm3: Google-Weather, Battery-Check, Log-View added (MartinH) - feature: CUL_RFR (RF_ROUTING) added - feature: Command save retains now the order of the old config file + - feature: List parameter added (list .* RFR_MSGCNT) diff --git a/FHEM/00_CUL.pm b/FHEM/00_CUL.pm index 6eb79f68a..c76fdea46 100755 --- a/FHEM/00_CUL.pm +++ b/FHEM/00_CUL.pm @@ -526,7 +526,7 @@ CUL_ReadAnswer($$$) } if($buf) { - Log 5, "CUL/RAW: $buf"; + Log 5, "CUL/RAW (ReadAnswer): $buf"; $mculdata .= $buf; } $mculdata = CUL_RFR_DelPrefix($mculdata) if($type eq "CUL_RFR"); diff --git a/FHEM/16_CUL_RFR.pm b/FHEM/16_CUL_RFR.pm index 76e849b93..8826fea66 100755 --- a/FHEM/16_CUL_RFR.pm +++ b/FHEM/16_CUL_RFR.pm @@ -18,10 +18,7 @@ CUL_RFR_Initialize($) # Message is like # K41350270 - my $cl = $modules{CUL}->{Clients}; - $cl =~ s/CUL_RFR//; # Dont want to be my own client. - - $hash->{Clients} = $cl; + $hash->{Clients} = $modules{CUL}->{Clients}; $hash->{Match} = "^[0-9A-F]{4}U."; $hash->{DefFn} = "CUL_RFR_Define"; $hash->{UndefFn} = "CUL_RFR_Undef"; @@ -69,7 +66,7 @@ sub CUL_RFR_Undef($$) { my ($hash, $name) = @_; - delete($defptr{$hash->{CODE}}); + delete($defptr{$hash->{ID} . $hash->{ROUTERID}}); return undef; } @@ -91,6 +88,13 @@ CUL_RFR_Parse($$) } my $hash = $defptr{$cde}; my $name = $hash->{NAME}; + + if($smsg =~ m/^T/) { $hash->{NR_TMSG}++ } + elsif($smsg =~ m/^F/) { $hash->{NR_FMSG}++ } + elsif($smsg =~ m/^E/) { $hash->{NR_EMSG}++ } + elsif($smsg =~ m/^K/) { $hash->{NR_KMSG}++ } + else { $hash->{NR_RMSG}++ } + CUL_Parse($hash, $iohash, $hash->{NAME}, $smsg, "X21"); return ""; } @@ -98,7 +102,7 @@ CUL_RFR_Parse($$) sub CUL_RFR_DelPrefix($) { - my ($prefix, $msg) = split("U", shift); + my ($prefix, $msg) = split("U", shift, 2); return $msg; } diff --git a/docs/ccc.jpg b/docs/ccc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf20ec4b7eee4b968d29ea2c956ce7a125e96219 GIT binary patch literal 14548 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   CUL_FHTTK   CUL_WS   + CUL_RFR   DbLog   EM   EMEM   @@ -1594,21 +1595,35 @@ A line ending with \ will be concatenated with the next one, so long lines

CUL

    + + + +
    The CUL/CUR/CUN is a family of RF devices sold by busware.de. With the opensource firmware (see this link) they are capable - to receive and send different 868MHz protocols (FS20/FHT/S300/EM/HMS).
    + to receive and send different 868MHz protocols (FS20/FHT/S300/EM/HMS). + It is even possible to use these devices as range extenders/routers, see the + CUL_RFR module for details. +

    - Some protocols (FS20/FHT) are converted by this module so that the same - logical device can be used, irrespective if the radio telegram is received by - a CUL or an FHZ device.
    - Other protocols (S300/EM) need their own modules. E.g. S300 devices are - processed by the CUL_WS module if the signals are received by the CUL, - similarly EMWZ/EMGZ/EMEM is handled by the CUL_EM module. -

    + Some protocols (FS20, FHT and KS300) are converted by this module so that + the same logical device can be used, irrespective if the radio telegram is + received by a CUL or an FHZ device.
    Other protocols (S300/EM) need their + own modules. E.g. S300 devices are processed by the CUL_WS module if the + signals are received by the CUL, similarly EMWZ/EMGZ/EMEM is handled by the + CUL_EM module.
    + +
    + It is possible to attach more than one device in order to get better + reception, fhem will filter out duplicate messages.

    + +
    + +
    Define @@ -1706,10 +1721,10 @@ A line ending with \ will be concatenated with the next one, so long lines

- + Set
    N/A

- + Get
    N/A

Attributes @@ -1765,19 +1780,15 @@ A line ending with \ will be concatenated with the next one, so long lines STATE reading the current reading of your meter. For this purpose: multiply the current reading (from the real device) with the corr1 value (RperKW), and substract the RAW CUM value from it. Now set the basis reading of your - EMWZ device (named emwz) to this value:
- -
-    { $defs{emwz}{READINGS}{basis}{VAL} = <computedvalue> }
- + EMWZ device (named emwz) to this value.

- + Set
    N/A

- + Get
    N/A

Attributes @@ -1791,6 +1802,75 @@ A line ending with \ will be concatenated with the next one, so long lines
+ +

CUL_RFR

+
    + + +
    + The CUL_RFR module is used to "attach" a second CUL to your base CUL, and + use it as a repeater / range extender. RFR is shorthand for RF_ROUTER. + Transmission of the data uses the CC1101 packet capabilities with GFSK + modulation at 250kBaud after pinging the base CUL at the usual 1kBaud. When + configured, the RFR device can be used like another CUL connected directly to + fhem. + + +

    + Before you can use this feature in fhem, you have to enable/configure RF + ROUTING in both CUL's: +
      +
    • First give your base CUL (which remains connected to the PC) an RFR ID + by issuing the fhem command "set MyCUL raw u0100". With this command + the base CUL will get the ID 01, and it will not relay messages to other + CUL's (as the second number is 00). +
    • Now replace the base CUL with the RFR CUL, and set its id by issuing + the fhem command "set MyCUL raw u0201". Now remove this CUL and attach the + original, base CUL again. The RFR CUL got the id 02, and will relay every + message to the base CUL with id 01. +
    • Take the RFR CUL, and attach it to an USB power supply, as displayed on + the image above. As the configured base id is not 00, it will activate RF + reception on boot, and will start sending messages to the base CUL. +
    • Now you have to define this RFR cul as a fhem device: +
    + +
    + +
    +
    + + + Define +
      + define <name> CUL_RFR <own-id> <base-id>
      +
      + <own-id> is the id of the RFR CUL not connected to the PC, + <base-id> is the id of the CUL connected to the PC. Both parameters + have two characters, each representing a one byte hex number.
      + Example: +
        + define MyCUL raw u0100
        + # Now replace the base CUL with the RFR CUL
        + define MyCUL raw u0201
        + # Reattach the base CUL to the PC and attach the RFR CUL to a + USB power supply
        + define MyRFR CUL_RFR 02 01
        +
      +

    + + + Set
      Same as for the CUL.

    + + + Get
      Same as for the CUL.

    + + Attributes +
      + Same as for the CUL.

    +
+
+ +

EM

diff --git a/docs/cul_rfr.jpg b/docs/cul_rfr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..effc9f6dae99bd776829234089788d67a30374f2 GIT binary patch literal 4778 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 QT&}XT>Cdnqy#HqZ3;mF*zyJUM literal 0 HcmV?d00001 diff --git a/fhem.pl b/fhem.pl index cb716340f..bcf957a5c 100755 --- a/fhem.pl +++ b/fhem.pl @@ -155,7 +155,7 @@ my $nextat; # Time when next timer will be triggered. my $intAtCnt=0; my %duplicate; # Pool of received msg for multi-fhz/cul setups my $duplidx=0; # helper for the above pool -my $cvsid = '$Id: fhem.pl,v 1.87 2009-11-25 11:13:44 rudolfkoenig Exp $'; +my $cvsid = '$Id: fhem.pl,v 1.88 2009-11-28 11:14:12 rudolfkoenig Exp $'; my $namedef = "where is either:\n" . "- a single device name\n" . @@ -1696,14 +1696,13 @@ RemoveInternalTimer($) sub SignalHandling() { - if ($^O ne "MSWin32") { - + if($^O ne "MSWin32") { $SIG{'INT'} = sub { $sig_term = 1; }; - $SIG{'QUIT'} = sub { $sig_term = 1; }; $SIG{'TERM'} = sub { $sig_term = 1; }; $SIG{'PIPE'} = 'IGNORE'; $SIG{'CHLD'} = 'IGNORE'; $SIG{'HUP'} = sub { CommandRereadCfg(undef, "") }; + } }