Fachgebiet Klimatologie - Institut für Ökologie - Technische Universität Berlin get
datapoint . []. time schedules for thermostat devices) must, always be set completely (at least for one day). The script, requires the installation of the netcat command (nc) on CCU (search for. Because ccurpcd will gracefully shutdown the, CCU interface it can take some time until process disappears. Control your lights, heating and more smart devices. number which contains datapoint 'STATE' must be set via attribute 'statechannel'. NOTE: If one use client devices this attribute should be set to 'client'. Stopping RPC server can take up to 30 seconds. Set datapoint for "get/set devstate" commands (default is 'STATE'): The value of this datapoint is stored in internal STATE of the FHEM device. It is likely that users upgrading to 9.0.31, 8.5.51 or 7.0.100 or later will need to make small changes to their configurations. Update all client device datapoints / readings: get update [ [{ State | Value }]], If parameter is specified only client devices with device name, matching regular expression will be updated. So options 'group' or, 'groupexp' are no longer necessary to define a group device.<, It's also possible to group any kind of CCU devices without defining a real group. STATE can be modified by attribute 'statedatapoint'. @Dek: In beiden Fällen (bei HMCCUDEV und bei HMCCUCHN) wird jeweils das komplette Paramterset gelesen (also alle Parameter eines Kanals). device must be updated with command 'get devicelist'. Misc Software. For read only devices no set command is, HMCCUDEV also supports CCU group devices (i.e. set HM_EPDISP datapoint 3.SUBMIT text1=Line2,text2=Line3,text3=Line4,sound=snd_short, Get configuration parameters of CCU device. 'substitute' is ignored if the same attribute is defined in a client device. You signed in with another tab or window. The following request queries device and channel, http://ccuname-or-ip/config/xmlapi/devicelist.cgi?show_internal=1. This will define /tmp as a RAM disk with a size of 100 MByte. A parameter file is used by command. Values for <. Set reading name format (default is 'name'): attr ccureadingformat { name | address }, Enable tracing (loglevel 1) for devices / channels where CCU device name, or device address matches specified expression. Das ist lediglich ein Befehl in Richtung CCU und Gerät. Remove character from CCU device or variable specification in set commands: If a variable name ends with the specified character this character will be. Valid parameters can be listed by, Set datapoint values of a CCU device channel. The default, value for is "BidCoS-RF". If the channel, can't be found the device list of the HMCCU device must be updated with command. You can see all your devices sorted by room with readings, attributes and the option to execute every available command. Set query method for CCU device datapoints (default is 'Value'): attr <name> ccuget { State | Value } For more information see description of attribute 'ccuget' in HMCCU section. The attribute 'updatemode' controls wether readings are updated in the IO device. Set query method for CCU device datapoints (default is 'Value'): Datapoint values can be queried by State() or Value(). For all other datapoints. necessary to set widget to current value of the datapoint. 8987 lines (7759 sloc) 285 KB Raw Blame Deprecated, use attribute. State channel and state, datapoint must be defined as attribute 'statedatapoint'. For more information see attributes 'rpcport', 'rpcserver', 'rpcqueue' and. *'): attr ccureadingfilter [,...], Only datapoints matching the specified expression will be stored as. Man spart also nichts beim Duty Cycle, wenn man nur einen Parameter abfragt (was möglich wäre). NOTE: Floating point numbers are ignored. If. Set channel number and datapoint for device control. a sensor). This is. Enable support for FHEM UI widgets like sliders: attr controldatapoint ., The following example demonstrates how to define a slider for setting the, destination temperature of a thermostat device in range from 10 up to 25, attr mythermodev controldatapoint 2.SET_TEMPERATURE, attr mythermodev widgetOverride control:slider,10,1,25, When this attribute is set HMCCU inserts a new reading 'control'. defined before defining any client devices. Method VALUES (setting datapoints), requires a channel number. *' as expression, is not a good idea because it will generate a lot of log data ;-). want to get datapoints LOWBAT and every datapoint witch match TEMP: attr ccureadingfilter G_Heat!CONTROL_MODE,^D_Heat!(LOWBAT|TEMP). The syntax of a substitution rule is: If a datapoint is specified the rule applies only to values of this datapoint. This is important because CCU states are often 'true' or 'false' while in FHEM, one like to use 'on' or 'off'. # Simple device by using CCU device name<, # Simple device by using CCU device address and with state channel<, define temp_control HMCCUDEV BidCos-RF.LEQ1234567 1<, # Simple read only device by using CCU device address and with default attributes<, define temp_sensor HMCCUDEV BidCos-RF.LEQ2345678 1 readonly defaults, # Group device by using CCU group device and 3 group members<, define heating_living HMCCUDEV GRP-LIV group=WIN-LIV,HEAT-LIV,THERM-LIV, Set configuration parameter of CCU device or channel. The module 88_HMCCUDEV.pm must be copied into folder, FHEM under the FHEM installation directory. If method is none, then that's all there is.If method is const or linear, the time-weighted series of values is taken into account instead.The weight is the timespan between two subsequent updates. See 1.2 HMCCU Requirements. if its attribute 'ccureadings' is set to 1. You can see all your devices sorted by room with readings, attributes and the option to execute every available command. By clicking “Sign up for GitHub”, you agree to our terms of service and Signal SIGINT sent to process. =======================================================================, *** HMCCU/HMCCUDEV - Modules for FHEM - Homematic CCU integration ***, * Document covers HMCCU/HMCCUDEV/HMCCUCHN version 2.8. Example to set the attribute "room kitchen" and "loglevel 4" to each of the lamps: setdefaultattr room kitchen setdefaultattr loglevel 4 define lamp1 FS20 1234 11 hm-simulator - Simulates. Default state datapoint. STATE!(1|true):on,(0|false):off;LOWBAT! Channel and state datapoint must be defined as. The current state of the RPC process is stored in the INTERNAL 'RPCState': starting = RPC server is starting. If attribute 'ccureadings' is set to 0 the, results of the get commands are displayed in the browser window. On systems running on SD cards like Raspberry PI it's recommended to, set the attribute 'rpcqueue' pointing to a file located on a RAM disk (see. true and false are subsituted by ok and error. the binary in google and install it somewhere in /etc/config/addons). forking external processes the RPC daemon is realized as a standalone process. Default attributes are only. The default. If is not specified, NOTE: Some parameter sets (i.e. To reduce the amount of events it's recommended to set attribute 'event-on-change-reading'. Attackers can authenticate with the default 1234 password that cannot be changed, and can execute malicious and unauthorized actions. a sensor). (1|true):yes,(0|false):no, NOTE: get commands return true/false for boolean values while RPC server, A parameter file contains a list of CCU channel or datapoint definitions. and a Homematic CCU2. are defined by setting attribute 'statevals'. The attribute. Specify text substitution rules for values returned by get commands: attr substitute [;...], The substitution rules are applied to values read from CCU before they are. defmod d_ccu HMCCU homematic-ccu2 attr d_ccu alias HomeMatic CCU2 attr d_ccu room Schnittstellen attr d_ccu rpcport 2001,2010 attr d_ccu rpcserver on attr d_ccu stateFormat rpcstate/state setstate d_ccu running/OK setstate d_ccu 2017-01-17 19:15:07 rpcstate running setstate d_ccu 2017-01-18 08:24:16 state OK get rpcstate sagt "RPC Process not . 2021.08.14 11:20:05 2: HMCCUDEV [HmIP_RCV_50_001F58A992FA6C] Cannot detect role of HmIP_RCV_50_001F58A992FA6C If no datapoint is specified all datapoints are read. Cannot retrieve contributors at this time. SD card. 'get devicelist'. stopping = RPC server is shutting down. A datapoint is identified by, A or a is the alias for an device or channel defined, If a command allows parameters or either name or address can. Set commands always use State(). Get state of CCU device. Channel for setting device state by devstate command. Some commands use device, channel or datapoint addresses. Force IO device to verify set commands by get commands (default is 0): Note: This won't work if set/get datapoints are different. The FHEM module requires. get devstate [], Specified channel must contain the datapoint 'STATE'. get datapoint [.]. Control reading update in IO and client devices (default is 'hmccu'): attr updatemode { hmccu | both | client }. Otherwise, HMCCU, HMCCUDEV and HMCCUCHN won't work correctly. After starting the RPC server it takes 3 minutes until events from CCU arrive. In this case command, attr ccureadingfilter , attr ccureadingformat { name | address | datapoint }. Variables are stored as readings. Control your lights, heating and more smart devices. check_homematic - Nagios/Icinga Plugin for checking Homematic CCU. A HMCCU I/O device must, exist before a client device can be defined. a semicolon. The keyword 'readonly' declares a channel as read only (i.e. Specify text substitutions for values returned by get commands: attr substitute [;...]. The character ':' is replaced by '.'. update of CCU readings in FHEM or use the external RPC server. an automatic daily device synchronization with AT and command 'get devicelist'. All characters which. state channel is used. This program. Sign up for a free GitHub account to open an issue and contact its maintainers and the community. It's not created automatically. Display list of channels and datapoints of a device: Read list of devices and channels from CCU: This command must be executed after HMCCU is reloaded or after devices are, defined, modified or deleted in the CCU. other adjustments are done by setting attributes. # Set name or IP address and port of FHEM server, echo -e "$1\nquit\n" | $NCCMD/nc $FHEM_SERVER $FHEM_PORT, The script should be called from a CCU program by using the CUXD exec object, (requires installation of CUxD). in client devices only or both in IO device and client devices. Example: set datapoint to. If a CCU channel is not found execute command, This reference contains only commands and attributes which differ from module, [readonly] [defaults] [{group={device|channel}[,...]|groupexp=regexp], If option 'readonly' is specified no set command will be available. A client device is only updated. its own functionality which must be handled different. Display all channels and datapoints of device with datapoint values and types. too. Parameters can be filtered by, Get value of a CCU device datapoint. All. 0 = Floating point numbers are stored as read from CCU (i.e. A number of changes were made to the default AJP Connector configuration in 9.0.31 to harden the default configuration. define HMCCUDEV [] [readonly], define HMCCUDEV [] [readonly], {group={|}[,...]|groupexp=}, The parameter is the CCU device name or address. IODev d_ccu NAME GAWC.FENSTER.ROLLLADEN NR 47 STATE 63 TYPE HMCCUDEV ccuaddr OEQ0048122 ccudevstate active ccuif BidCos-RF ccuname GWC.Rollladen ccutype HM-LC-Bl1-FM channels 2 firmware 2.8 statevals devstate . If no attrname is specified, then the default attribute list will be deleted. attr stateval :[,...]. It can, be placed somewhere under /etc/config/addons directory in CCU. You signed in with another tab or window. After process. Set configuration parameters of CCU device or channel: set config {|} [] = [...], Set configuration parameters via RPC set request. has been terminated the internal "RPCPID" is deleted. Specify text substitutions for values in set commands: attr statevals :[,...], NOTE: Parameter is not a regular expression. The RPC process is started even if attribute 'rpcserver' is already set to, The PID of ccurpcd is stored in the INTERNAL "RPCPID". On systems which, are running on a SD card like Raspbian this can shorten the lifetime of the. If a regular expression for channel name is specified the rule applies, only to datapoints of this channel. are not matching the expression [A-Za-z\d_\.-] are replaced by '_'. Get values of channel datapoints (supports multiple channels): get channel [.] [...], Attention: There's no blank between channel and datapoint. For method MASTER (setting parameters) a channel number, is optional (setting device parameters). The lines 1,2 and 4,5 are accessible via config parameters, TEXTLINE_1 and TEXTLINE_2 in channels 1 and 2. Otherwise command is not, set devstate [...]. Example:<, The lines 2,3 and 4 of the display can be accessed by setting the datapoint SUBMIT of the, display to a string containing command tokens in format 'parameter=value'. set datapoint . [...], If attribute 'statevals' is defined 'devstate' can be ommitted. Example: Substitute values of datapoints STATE and LOWBAT. ccurpcd is started under user 'fhem'. The channel. The RPC server ccurpcd.pl requires the packages RPC::XML::Server, RPC::XML::Client, All module files 88_HMCCU*, RPCQueue.pm and the RPC daemon ccurpcd.pl must be copied. If channel number is not specified. The following. the alias names of CCU devices and most of the get/set commands will fail. HMCCU Device Readings Update funktioniert nicht . * Please read carefully before using the modules. A virtual device is a group, of client devices which only exists in FHEM. Ich habe einen Schaltaktor (HM-LC-Sw2-FM) mit einem Bewegungsmelder (HM-Sen-MDIR-O-3) verbunden. In, those cases one should set the 'ccuget' attribute in the affected client, device. Several rules can be separated by. stored as readings. to enable the usage of the new devices in FHEM. The default datapoint "STATE" can be modified by setting attribute, attr controldatapoint , attr mythermodev controldatapoint SET_TEMPERATURE. To avoid this /tmp can be moved to a RAM disk: 1) Edit file /etc/fstab as user 'root' and append the following line, tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0. ----------------------------------------------, The modules HMCCU, HMCCUDEV and HMCCUCHN provide a simple interface between FHEM. Set datapoint for 'devstate' command (default is "STATE"): The parameter is identical to standard attribute 'stateFormat'. 2 = All trailing zeros and the decimal point are stripped. Misc Software. Parameter refers to the CCU device channel with datapoint STATE. https://forum.fhem.de/index.php/topic,107077.msg1170369.html#msg1170369 2021.08.14 11:20:05 2: HMCCUDEV [HmIP_RCV_50_001F58A992FA6C] Device type RPI-RF-MOD not known . For more information see description of attribute 'ccuget' in HMCCU section. NOTE: HMCCU, can be used standalone without defining client devices but it's highly, recommended to use client devices because every Homematic device type has. We’ll occasionally send you account related emails. Default value for Parameter, Display configuration parameters of CCU device. It's possible to execute FHEM commands from CCU via the FHEM telnet port. i.e. If attribute 'stateval' is set the specified string substitutions are applied. Parameter <, State datapoint of a CCU device channel is set to 'statevalue'. Integer numbers are only substituted. For detailed information see description of HMCCU attribute 'substitute'. 2021.08.14 11:20:05 1: HMCCUDEV [HmIP_RCV_50_001F58A992FA6C] HMCCUDEV: HmIP_RCV_50_001F58A992FA6C No default attributes found. With the const method, the value is the value of the reading at the beginning of the timespan; with the linear method, the value is the arithmetic average of the values at the beginning and the end . Attribute 'statechannel' must be set. Set datapoint for "devstate" command (default is "STATE"): By using XML-API one can query device names, channel names, channel addresses, and datapoint names from CCU. Using '. Supports attribute 'ccuscaleval' for datapoints. This command requires that attribute 'statevals' contains at least 2 states. It is likely that users upgrading to 9.0.31, 8.5.51 or 7.0.100 or later will need to make small changes to their configurations. check_homematic - Nagios/Icinga Plugin for checking Homematic CCU. Filter is ignored by commands 'get datapoint' and 'get channel'. For all channels starting with D_Heat we. section 6.3 for more information about setting up a RAM disk on Raspbian). It's recommended to define. 2019-07-19: not yet calculated: CVE-2019-9229 MISC HMCCU Device Readings Update funktioniert nicht . The following request returns a list of datapoints with current values: http://ccuname-or-ip/config/xmlapi/statelist.cgi?show_internal=1. If no state channel is specified the command is not available. If attribute 'ccureadings' is set to 0, parameters are displayed in browser window (no readings set). "get parfile". If more than one is specified the values are concatinated by blanks, set datapoint . [...], Parameters correspond to 'devstate' command. $ cat .bitcoin/bitcoin.conf # Expose the RPC/JSON API server=1 rpcbind=10.0.1.5 rpcallowip=0.0.0.0/0 rpcport=8332 rpcuser=bitcoin rpcpassword=J9JkYnPiXWqgRzg3vAA If you restart your daemon with this config, it would try to bind to IP 10.0.1.5 and open the RCP JSON API endpoint on its default port 8332. If is specified it must be known by HMCCU. The Value() method, returns the datapoint value stored in the CCU. Set port(s) of CCU RPC interface (default is 2001): For each port specified a separate instance of the RPC server process will. Check, if device address HmIP-RCV-1 is supported by HMCCU. (branch sf_old a mirror of the old repo: svn . in CCU by using option 'virtual' instead of a CCU device specification. A number of changes were made to the default AJP Connector configuration in 9.0.31 to harden the default configuration. As an alternative one can set attribute 'ccureadings' to 0. The following shell script encapsulates the necessary commands. datapoint 'STATE' can be modified by setting attribute 'statedatapoint'. bat baton beat billy blow bludgeon club cudgel hit knock mace mallet pole pound rap activity action business bustle effervescence energy life liveliness motion movement: Die Suche ergab folgende Treffer für "bat activity": 1. The default. ccurpcd_.log in the FHEM log directory. can be modified by setting attribute 'statedatapoint'. With attribute 'substitute' one can define expressions which are substituted by, strings before CCU values are stored in readings. You have to define AT devices with get commands to ensure a continuous. String \_ is substituted by blank. If attribute 'ccureadings' is set to 1 (default) the results of the get commands, are stored in readings. If no regular. 2 = All trailing zeros are stripped from floating point numbers. The restart may take up. Antw:HMCCU Beispiel Geräte-Definitionen. Default attributes are only available for, Set state of a CCU device channel. set datapoint [...], If attribute 'statevals' is defined 'devstate' can be ommitted. The default channel number for devstate commands can be specified with parameter, or via attribute 'statechannel'. Filter is used by command 'get update' and for RPC server events. be started when setting attribute 'rpcserver' to 'on'. After start of ccurpcd, it takes 3 minnutes until first events from CCU arrive in FHEM (don't know, The RPC daemon is stopped when setting 'rpcserver' to "off" or by sending a, signal "INT" to the process. datapoint "STATE" can be modified by setting attribute 'statedatapoint'. The communication between ccurpcd and FHEM happens by using a file based FIFO, queue. If the device can't be found the device list of the HMCCU. for values before setting the device state, a variable or a datapoint value. setting 'stateval' to 'on:true,off:false', will ensure that FHEM commands 'on' and 'off' are replaced by 'true' and 'false'. In some situations HMCCU will trigger events: FHEM can react on these events by using command 'notify'. The option is ignored during FHEM start. Cannot retrieve contributors at this time. Fhem is a GPL'd perl server for house automation. Force IO device to verify set commands by get commands (default is 0): attr <name> ccuverify { 0 | 1 } The RPC event queue consists of two files. Cannot retrieve contributors at this time, # Read current value of datapoint without updating reading, ######################################################################, return "No get command specified" if (!defined (, # Virtual devices only support command get update, summary controls HMCCU client devices for Homematic CCU2 - FHEM integration, The module implements Homematic CCU devices as client devices for HMCCU. auto operation, modes of thermostat devices is set with datapoint AUTO_MODE but for reading, the operation mode datapoint CONTROL_MODE must be used. to your account, https://forum.fhem.de/index.php/topic,107077.msg1170369.html#msg1170369, 2021.08.14 11:20:05 2: HMCCUDEV [HmIP_RCV_50_001F58A992FA6C] Device type RPI-RF-MOD not known by HMCCU If script returns parameter=value pairs separated by newlines via standard. Default is . Specify name of parameter file for command "get parfile": Set interval in seconds for reading RPC events from RPC event queue. Add a default attribute. Each, line can contain a text substitution rule. You signed in with another tab or window. During this time HMCCU devices cannot be used. true/false if on/off is specified in set command: Set format of readings with floating point numbers (default is 0): 0 = Floating point numbers are stored as read from CCU. HMCCU is the IO device for the communication with the CCU. An IO device of type HMCCU must be. hm-simulator - Simulates. This default datapoint can be changed by setting attribute 'statedatapoint'. The daemon writes error messages to file. Sign in No readings will, be set in this case. For read only channels no set command is available. Setting this attribute in the IO device will slow down the, communication between FHEM and CCU because this setting applies to all. attribute to "on" the HMCCU module will start ccurpcd as a separate process. An internal interface exposed to the link-local address 169.254.254.253 allows attackers in the local network to access multiple quagga VTYs. To authenticate, you'd give the. Example: define 2 datapoint related rules and 1 standard rule: STATE!(1|true):on,(0|false):off;LOWBAT! This default datapoint. If no statechannel is set the commands 'get/set devstate' are not available. The State() method queries, the device directly. The variable must exist in CCU. NOTE: Because FHEM doesn't support the same set of special characters for devices, and channels some characters are replaced automatically when storing CCU values, as readings in FHEM. The keyword 'readonly' declares, a device as read only (i.e. So this user must have the permission to, read and write data on from/into queue file and also write log file entries in, the standard FHEM log directory. 1 = Trailing zeros are stripped from floating point numbers except one digit. If no datapoibt is specified all datapoints for specified channel are read. By default the reading names correspond to the CCU, datapoints, including the channel-name. Specify channel number of STATE datapoint: attr statechannel . The only available command for. The, member devices of a CCU group device must be specified with options 'group' or, 'groupexp'. The default datapoint "STATE". The CCU devices or channels related to a group, device are specified by using options 'group' or 'groupexp' followed by the names or, addresses of the CCU devices or channels. IconCode := ico_off, ico_on, ico_open, ico_closed, ico_error, ico_ok, ico_info, SignalCode := sig_off, sig_red, sig_green, sig_orange<. With option 'defaults', some default attributes depending on CCU device type will be set. Have a question about this project? If <. The RPC port is part of the names too. Each device defined from now on will receive this attribute. By using 'groupexp' one can specify a regular, expression for CCU device or channel names. Client device attributes overwrite corresponding HMCCU attributes! If one uses the IO device only for communication of client devices with. HMCCUDEV is used to define HMCCU client devices for CCU devices. So i.e. # Called during Define() or by HMCCU after CCU ready. Otherwise all readings of client devices will be stored in the IO device. Default is STATE. The program is executed even if it's deactivated in CCU. After setting this. Rein technisch funktioniert auch alles und dank hilfreicher Einträge in dem Thread kann ich den Bewegungsmelder in FHEM auslesen. groups of heating controls). with trailing zeros). This phase can take 3 minutes. the packages LWP::UserAgent, Time::HiRes, RPC::XML::Client and RPCQueue. attr myswitch statevals on:true,off:false<, This display has 5 text lines. # Return 0 on successful initialization or >0 on error: # 1 = Invalid channel name or address # 2 = Cannot assign IO device # 3 = No devices in group # 4 = No matching CCU devices found # 5 = Type of virtual device not defined # 6 = Device type not found # 7 = Too many virtual devices # SoundCode := snd_off, snd_longlong, snd_longshort, snd_long2short, snd_short, snd_shortshort. Update all datapoints / readings of channel: Client device attributes overwrite corresponding HMCCU attributes! The state of the RPC process(es) is displayed in browser window. into the folder FHEM under the FHEM installation directory. Normally this is set automatically during HMCCUDEV device definition. For more information about 'State' and 'Value' see description of attribute, If attribute 'parfile' is set parameter can be omitted. NOTE: RPCQueue.pm is a bug fixed copy of File::Queue and part of the HMCCU installation. If 'statedatapoint' is not defined at least attribute 'statechannel'. This program. IODev d_ccu NAME GAWC.FENSTER.ROLLLADEN NR 47 STATE 63 TYPE HMCCUDEV ccuaddr OEQ0048122 ccudevstate active ccuif BidCos-RF ccuname GWC.Rollladen ccutype HM-LC-Bl1-FM channels 2 firmware 2.8 statevals devstate . Otherwise HMCCU does not know. In addition the name of a CCU. expression datapoint_exp is specified all datapoints will be read. running = RPC server is started an waiting for CCU events. For example if CCU reports, device states as "true" or "false" these values can be replaced by "open" or, "closed" by setting 'substitute' to "true:open,false:closed". Parameters can be filtered, Get description of configuration parameters for CCU device. Attribute 'controldatapoint' must be set. PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 1999/tcp open tcp-id-port 2000/tcp open cisco-sccp In addition attribute 'stateFormat' must be set to {HMCCU_State()}. The CCU device must, be known by HMCCU. See, Variable name can be a regular expression. ]:, A device address is a channel address without the channel number. this parameter is specified the CCU value is stored in FHEM using this reading name. The values are available as set commands, i.e. output these values are stored as readings. If readings of the member devices are updated the readings in the, Virtual devices are a special kind of group devices. The text was updated successfully, but these errors were encountered: Successfully merging a pull request may close this issue. Branch 'master' is an unofficial read-only-mirror of https://svn.fhem.de/fhem/trunk which is updated once a day. Example: A virtual device group contains, channels and datapoints of different devices. The only FHEM App for Windows 10. If FHEM command contains blanks it should be, By default ccurpcd creates the queue files in directory /tmp. client devices. This request must be repeated by using command 'get devicelist' after a reload, of the module or after modification or definition of devices in the CCU.