1
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-05-07 22:29:19 +00:00
fhem-mirror/FHEM/lib/AttrTemplate/general_use.template
Beta-User 3cea98f008 general_use.template: add IODev handling
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@25065 2b470e98-0d58-463d-a4d8-8e2adae1ed80
2021-10-11 19:20:48 +00:00

146 lines
8.7 KiB
Plaintext

###########################################
# $Id$
#
# This file provides add-on templates for use within any other attrTemplate
#
# NOTE: This type of attrTemplate is not intented for seperate use!
#
#
# Comments start with #. Empty lines are ignored.
# Syntax of one entry: name: line, one optional filter: line, zero or more par: lines, FHEM-Commands
# filter:INTERNAL=VALUE (optional)
# par: name of the parameter; comment; perl_code (optional)
# perl_code returns a value for the parameter, or undef.
# If undef, the user has to specify them (the comment is shown to the user)
###########
# multichannel helper to set relations
name:set_associatedWith
filter:NAME=speechrecognTesting
order:Z00001
desc:template to set associatedWith reading for multichannel devices; call e.g. with CHANNELS=4.
par:CHANNELS;CHANNELS: Nr. of channels to configure, defaults to 2;{ 2 }
par:MAKECOPIES;MAKECOPIES: boolean, if set, device will be copied to other channel devices , defaults to 0;{ 0 }
par:IODEVATTR;IODEVATTR: attribute value if set, will be copied to other channel devices , defaults to 0;{ AttrVal('DEVICE','IODev',0) }
par:IODEVREADING;IODEVREADING: reading value if set and no attribute is set, will be copied to other channel devices , defaults to 0;{ AttrVal('DEVICE','IODev',0) ? 0 : ReadingsVal('DEVICE','IODev',0)}
# 2 channels
option:{return 1 if CHANNELS==2 && MAKECOPIES==1;;return 0}
copy DEVICE DEVICE_CH2
option:{return 1 if CHANNELS==2;;return 0}
setreading DEVICE associatedWith DEVICE_CH2
setreading DEVICE_CH2 associatedWith DEVICE
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2
attr DEVICE_CH2 comment Channel 2 for DEVICE
# 3 channels
option:{return 1 if CHANNELS==3 && MAKECOPIES==1;;return 0}
copy DEVICE DEVICE_CH2
copy DEVICE DEVICE_CH3
option:{return 1 if CHANNELS==3;;return 0}
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2 and DEVICE_CH3
attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE and DEVICE_CH3
attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE and DEVICE_CH2
setreading DEVICE associatedWith DEVICE_CH2,DEVICE_CH3
setreading DEVICE_CH2 associatedWith DEVICE,DEVICE_CH3
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH2
# 4 channels
option:{return 1 if CHANNELS==4 && MAKECOPIES==1;;return 0}
copy DEVICE DEVICE_CH2
copy DEVICE DEVICE_CH3
copy DEVICE DEVICE_CH4
option:{return 1 if CHANNELS==4;;return 0}
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2, DEVICE_CH3 and DEVICE_CH4
attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE, DEVICE_CH3 and DEVICE_CH4
attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE, DEVICE_CH2 and DEVICE_CH4
attr DEVICE_CH4 comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2 and DEVICE_CH3
setreading DEVICE associatedWith DEVICE_CH2,DEVICE_CH3,DEVICE_CH4
setreading DEVICE_CH2 associatedWith DEVICE,DEVICE_CH3,DEVICE_CH4
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH2,DEVICE_CH4
setreading DEVICE_CH4 associatedWith DEVICE,DEVICE_CH2,DEVICE_CH3
# 5 channels
option:{return 1 if CHANNELS==5 && MAKECOPIES==1;;return 0}
copy DEVICE DEVICE_CH2
copy DEVICE DEVICE_CH3
copy DEVICE DEVICE_CH4
copy DEVICE DEVICE_CH5
option:{return 1 if CHANNELS==5;;return 0}
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2, DEVICE_CH3, DEVICE_CH4 and DEVICE_CH5
attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE, DEVICE_CH3, DEVICE_CH4 and DEVICE_CH5
attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH4 and DEVICE_CH5
attr DEVICE_CH4 comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3 and DEVICE_CH5
attr DEVICE_CH5 comment Channel 5 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3 and DEVICE_CH4
setreading DEVICE associatedWith DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5
setreading DEVICE_CH2 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH4,DEVICE_CH5
setreading DEVICE_CH4 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH5
setreading DEVICE_CH5 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4
# 6 channels
option:{return 1 if CHANNELS==6 && MAKECOPIES==1;;return 0}
copy DEVICE DEVICE_CH2
copy DEVICE DEVICE_CH3
copy DEVICE DEVICE_CH4
copy DEVICE DEVICE_CH5
copy DEVICE DEVICE_CH6
option:{return 1 if CHANNELS==6;;return 0}
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5 and DEVICE_CH6
attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5 and DEVICE_CH6
attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH4, DEVICE_CH5 and DEVICE_CH6
attr DEVICE_CH4 comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH5 and DEVICE_CH6
attr DEVICE_CH5 comment Channel 5 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH4 and DEVICE_CH6
attr DEVICE_CH6 comment Channel 6 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH4 and DEVICE_CH5
setreading DEVICE associatedWith DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6
setreading DEVICE_CH2 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6
setreading DEVICE_CH4 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH5,DEVICE_CH6
setreading DEVICE_CH5 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH6
setreading DEVICE_CH6 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5
# 8 channels
option:{return 1 if CHANNELS==8 && MAKECOPIES==1;return 0}
copy DEVICE DEVICE_CH2
copy DEVICE DEVICE_CH3
copy DEVICE DEVICE_CH4
copy DEVICE DEVICE_CH5
copy DEVICE DEVICE_CH6
copy DEVICE DEVICE_CH7
copy DEVICE DEVICE_CH8
option:{return 1 if CHANNELS==8;;return 0}
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5, DEVICE_CH6, DEVICE_CH7 and DEVICE_CH8
attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5, DEVICE_CH6, DEVICE_CH7 and DEVICE_CH8
attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH4, DEVICE_CH5, DEVICE_CH6, DEVICE_CH7 and DEVICE_CH8
attr DEVICE_CH4 comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH5, DEVICE_CH6, DEVICE_CH7 and DEVICE_CH8
attr DEVICE_CH5 comment Channel 5 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH4, DEVICE_CH6, DEVICE_CH7 and DEVICE_CH8
attr DEVICE_CH6 comment Channel 6 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5, DEVICE_CH7 and DEVICE_CH8
attr DEVICE_CH7 comment Channel 7 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5, DEVICE_CH6, and DEVICE_CH8
attr DEVICE_CH8 comment Channel 8 for DEVICE, see also DEVICE, DEVICE_CH2, DEVICE_CH3, DEVICE_CH4, DEVICE_CH5, DEVICE_CH6 and DEVICE_CH7
setreading DEVICE associatedWith DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6,DEVICE_CH7,DEVICE_CH8
setreading DEVICE_CH2 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6,DEVICE_CH7,DEVICE_CH8
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6,DEVICE_CH7,DEVICE_CH8
setreading DEVICE_CH4 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH5,DEVICE_CH6,DEVICE_CH7,DEVICE_CH8
setreading DEVICE_CH5 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH6,DEVICE_CH7,DEVICE_CH8
setreading DEVICE_CH6 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH7,DEVICE_CH8
setreading DEVICE_CH7 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6,DEVICE_CH8
setreading DEVICE_CH8 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6,DEVICE_CH7
option:{1}
show DEVICE.*
#####
name:set_IODev_in_channels
filter:NAME=speechrecognTesting
order:Z00002
desc:template to set attribute IODev or reading IODev for multichannel devices; call e.g. with set xyz attrTemplate set_IODev_in_channels SUBCHANNELS=DEVICE.
par:SUBCHANNELS;SUBCHANNELS: Regex for devices to copy value to, defaults to DEVICE_CH.*;{ undef }
par:IODEVATTR;IODEVATTR: attribute value if set, will be copied to other channel devices, defaults to 0;{ AttrVal('DEVICE','IODev',0) }
par:IODEVREADING;IODEVREADING: reading value if set and no attribute is set, will be copied to other channel devices , defaults to 0;{ AttrVal('DEVICE','IODev',0) ? 0 : ReadingsVal('DEVICE','IODev',0)}
option:{ return 0 if "IODEVATTR" eq "0"; return 1 }
attr SUBCHANNELS IODev IODEVATTR
option:{ return 0 if "IODEVREADING" eq "0"; return 1 }
setreading SUBCHANNELS IODev IODEVREADING