-Fhem is mainly used for home automation, but it is suitable for other tasks
-too, where notification, timers and logging plays an important role.
-
-
-It supports different hardware devices to interface with certain protocols
-(e.g. FHZ1000PC to interface FS20 and HMS, CM11 to access X10), and logical
-devices like FS20 or FHT to digest the messages for a certain device type using
-this protocol.
-
-
-Fhem is modular. The different devices are represented through modules which
-implement certain functions (e.g. define, get, set). Even seemingly integral
-parts of fhem like triggers (notify) and timers (at) are implemented this way, giving the possibility to
-replace/extend this functionality.
-
-Fhem is controlled through readable / ascii commands, which are specified in
-files (e.g. the configuration file), or issued over a TCP/IP connection, either
-directly in a telnet session, with a fhem.pl in client mode or from one of the
-web frontends.
-
-When starting the server you have to specify a configuration file:
-
- perl fhem.pl fhem.cfg
-
-
-
-A minimal configuration file looks like:
- attr global logfile log/fhem.log
- attr global modpath .
- attr global statefile log/fhem.save
- attr global verbose 3
- define telnetPort telnet 7072 global
- define WEB FHEMWEB 8083 global
-
-Note: the last two lines are optional and assume you wish to use the
-builtin telnet and WEB interface.
-
-
-The web interface can be reached at
-
- http://<fhemhost>:8083
-
-
-
-TCP/IP communication with fhem can either happen in a "session" (via
-telnet) or single client command (via fhem.pl). Example:
-
-There are three types of commands: "fhem" commands (described in this
-document), shell commands (they must be enclosed in double quotes ") and perl
-expressions (enclosed in curly brackets {}). shell commands or perl expressions
-are needed for complex at or notify
-arguments, but can also issued as a "normal" command.
-
-E.g. the following three commands all do the same when issued from a telnet
-prompt:
-
- set lamp off
- "fhem.pl 7072 "set lamp off""
- {fhem("set lamp off")}
-
-
-
-Shell commands will be executed in the background, perl expressions and
-fhem commands will be executed in the main "thread". In order to make perl
-expressions easier to write, some special functions and variables are
-available. See the section Perl special for a description.
-To trigger fhem commands from a shell script (this is the "other way round"),
-use the client form of fhem.pl (described above).
-
-
-Multiple fhem commands are separated by semicolon (;). In order to use semicolon
-in perl code or shell programs, they have to be escaped by the double semicolon
-(;;). See the Notes section of the notify
-chapter on command parameters and escape rules.
-
-E.g. the following first command switches Lamp1 off at 07:00 and Lamp2
-immediately (at the point of definition), the second one switches both lamps
-off at 07:00.
-
- define lampoff at 07:00 set Lamp1 off; set Lamp2 off
- define lampoff at 07:00 set Lamp1 off;; set Lamp2 off
-
-For every further indirection you need to double the semicolons:, e.g. to
-switch on every day 2 devices at 7:00 for 10 minutes you have to write:
-
- define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
-
-Don't dispair, the previous example can also be written as
-
- define onAt at 07:00 set Lamp1,Lamp2 on-for-timer 600
-
-
-
-
-Commands can be either typed in plain, or read from a file (e.g. the
-configuration file at startup). The commands are either executed directly, or
-later if they are arguments to the at and notify fhem commands.
-
-
-A line ending with \ will be concatenated with the next one, so long lines
-(e.g. multiple perl commands) can be split in multiple lines. Some web fronteds
-(e.g. webpgm2) make editing of multiline commands transparent for you (i.e. there is no need for \) .
-
-
-
-
-
-
Device specification (devspec)
-
- The commands
- attr,
- deleteattr,
- displayattr,
- delete,
- get,
- list,
- set,
- setreading,
- setstate,
- trigger
- can take a more complex device specification as argument, which will be
- expanded to a list of devices. A device specification (short devspec) can be:
-
-
a single device name. This is the most common case.
-
a list of devices, separated by comma (,)
-
a regular expression
-
a NAME=VALUE pair, where NAME can be an Internal value like TYPE, a
- Reading-Name or an attribute. VALUE is a regexp. To negate the
- comparison, use NAME!=VALUE
-
if the spec is followed by the expression :FILTER=NAME=VALUE, then the
- values found in the first round are filtered by the second expression.
-
- Examples:
-
- set lamp1 on
- set lamp1,lamp2,lamp3 on
- set lamp.* on
- set room=kitchen off
- set room=kitchen:FILTER=STATE=on off
- set room=kitchen:FILTER=STATE!=off off
- list disabled=
- list TYPE=FS20 STATE
-
- Notes:
-
-
the spec may not contain space characters.
-
if there is a device which exactly corresponds to the spec, then
- no special processing is done.
-
first the spec is separated by komma, then the regular expression and
- filter operations are executed.
-
the returned list can contain the same device more than once, so
- "set lamp3,lamp3 on" switches lamp3 twice.
-
for more complex structuring demands see the
- structure device.
-
-
-
-
-
?, help
-
- ?
- help
-
- Get a list of all commands and short description for each one
-
-
-
-
attr
-
- attr <devspec> <attrname> [<value>]
-
- Set an attribute for a device defined by define.
- You can define your own attributes too to use them in other applications.
-
- Use "attr <name> ?" to get a list of possible attributes.
- See the Device specification section for details on
- <devspec>.
-
-
- Attributes used by all devices:
-
-
-
verbose
- Set the verbosity level. Possible values:
-
-
0 - server start/stop
-
1 - error messages or unknown packets
-
2 - major events/alarms.
-
3 - commands sent out will be logged.
-
4 - you'll see whats received by the different devices.
-
5 - debugging.
-
- The value for the global device is a default for
- other devices without own verbose attribute set.
-
-
-
-
comment
- Add an arbitrary comment.
-
-
alias
- Used by FHEMWEB to display a device with another name e.g. when using
- special characters/spaces not accepted by device definition.
-
-
room
- Filter/group devices. Recognized by web-pgm2 and web-pgm3. A device
- can appear in more than one room, in this case the rooms have to be
- specified comma-separated.
- Devices in the room hidden will not appear in the web output, or set
- the FHEMWEB attribute to selectively disable
- rooms for certain FHEMWEB instances.
-
-
-
-
group
- Group devices. Recognized by web-pgm2 (module FHEMWEB), it makes
- devices in the same group appear in the same box).
- This is used to further group
- devices together. A device can appear in more than one group, in this
- case the groups have to be specified comma-separated.
- If this attribute is not set then the device type is used as the
- grouping attribute.
-
-
-
-
showtime
- Used in the webfrontend pgm2 to show the time of last activity
- instead of the state in the summary view. Useful e.g. for FS20 PIRI
- devices.
-
-
-
-
readingFnAttributes
- The following attributes are honored by the modules that make use
- of the standardized readings updating mechanism in fhem.pl. Check the
- modules attribute list if you want to know if it is supporting it.
-
-
-
-
-
stateFormat
- Modifies the STATE of the device, shown by the list command or in the room
- overview in FHEMWEB. If not set, its value is taken from the state reading.
- If set, then every word in the argument is replaced by the value of the
- reading if such a reading for the current device exists. If the value of
- this attribute is enclused in {}, then it is evaluated. This attribute is
- evaluated each time a reading is updated.
-
-
-
-
event-on-update-reading
- If not set, every update of any reading creates an event, which e.g. is
- handled by notify or FileLog.
- The attribute takes a comma-separated list of readings. You may use regular
- expressions in that list. If set, only updates of the listed readings
- create events.
-
-
-
-
event-on-change-reading
- The attribute takes a comma-separated list of readings. You may use regular
- expressions in that list. If set, only changes of the listed readings
- create events. In other words, if a reading listed here is updated with the
- new value identical to the old value, no event is created.
-
- The precedence of event-on-update-reading and event-on-change-reading is as
- follows:
-
-
If both attributes are not set, any update of any reading of the device
- creates an event.
-
If any of the attributes is set, no events occur for updates or changes
- of readings not listed in any of the attributes.
-
If a reading is listed in event-on-update-reading, an update of the
- reading creates an event no matter whether the reading is also listed
- in event-on-change-reading.
-
-
-
-
event-min-interval
- This attribute takes a comma-separated list of reading:minInterval pairs.
- You may use regular expressions for reading. Events will only be
- generated, if at least minInterval seconds elapsed since the last reading
- of the matched type.
-
-
-
-
userReadings
- A comma-separated list of definitions of user-defined readings. Each
- definition has the form:
-
- After a single or bulk readings update, the user-defined readings are set
- by evaluating the perl code { <perl code>
- } for all definitions and setting the value of the respective
- user-defined reading <reading> to the result. If
- <trigger> is given, then all processing for this specific user
- reading is only done if one of the just updated "reading: value"
- combinations matches <trigger>, which is treated as a regexp.
-
- Examples:
-
none: the same as it would not have been given at all.
-
difference: the reading is set to the difference between the current
- and the previously evaluated value.
-
differential: the reading is set to the difference between the
- current and the previously evaluated value divided by the time in
- seconds between the current and the previous evaluation. Granularity
- of time is one second. No value is calculated if the time past is
- below one second. Useful to calculate rates.
-
offset: if the current evaluated value is smaler than the previously
- evaluated value the reading is incremented by the previous value.
- the reading can then be used as an offset correct for a counter that
- is reset for example due to a power loss.
-
monotonic: if the difference between the current and the previously
- evaluated value is positive the reading is incremented by this difference.
- this allows to derive a monotonic growing counter from an original counter
- even if the original will be rest by a power loss
-
- Example:
-
attr myPowerMeter userReadings power
- differential { ReadingsVal("myPowerMeter","counters.A",0)/1250.0;; }
-
- Note: user readings with modifiers difference and differential store the
- calculated values internally. The user reading is set earliest at the
- second evaluation. Beware of stale values when changing definitions!
-
-
-
-
- Device specific attributes are documented in the corresponding device section.
-
- setdefaultattr [<attrname> [<value>]]
-
- Add a default attribute. Each device defined from now on will receive
- this attribute. If no attrname is specified, then the default attribute
- list will be deleted.
-
-
- Example to set the attribute "room kitchen" and "loglevel 4" to
- each of the lamps:
-
There is no way to delete a single default-attribute from the list
-
-
-
-
-
-
define
-
- define <name> <type> <type-specific>
-
- Define a device. You need devices if you want to manipulate them (e.g.
- set on/off), and the logfile is also more readable if it contains e.g.
- "lamp off" instead of "Device 5673, Button 00, Code 00 (off)".
- Use "define <name> ?" to get a list of possible types.
- After definition, the global event "DEFINED" will be generated, see the
- notify section for details.
-
-
- Each device takes different additional arguments at definition, see the
- corresponding device section for details.
-
-
-
-
-
-
delete
-
- delete <devspec>
-
- Delete something created with the define command.
- See the Device specification section for details on
- <devspec>.
- After deletion, the global event "DELETED" will be generated, see the notify
- section for details.
- Examples:
-
- delete lamp
-
-
-
-
-
-
deleteattr
-
- deleteattr <devspec> [<attrname>]
-
- Delete either a single attribute (see the attr command)
- or all attributes for a device (if no <attrname> is defined).
- See the Device specification section for details on
- <devspec>.
-
-
- Examples:
-
- deletereading <devspec> <readingname>
-
- Delete the reading <readingname>
- for a device. <readingname> is a perl regular expression that must match the whole name of the reading.
- Use with greatest care! FHEM might crash if you delete vital readings of a device.
- See the Device specification section for details on
- <devspec>.
-
-
- Examples:
-
- displayattr <devspec> [<attrname>]
-
- Display either the value of a single attribute (see the attr command)
- or all attributes for a device (if no <attrname> is defined).
- See the Device specification section for details on
- <devspec>.
- If more then one device is specified, then the device name will also included
- in the output.
-
-
- Examples:
-
-
- fhem> di WEB
- menuEntries AlarmOn,/fhem?cmd=set%20alarm%20on
- room Misc.
- fhem> di WEB room
- Misc.
-
-
-
-
-
-
-
get
-
- get <devspec> <type-specific>
-
- Ask a value directly from the device, and wait for an answer. In general, you
- can get a list of possible parameters by
-
- get <device> ?
-
- See the Device specification section for details on
- <devspec>.
-
- Each device has different get parameters, see the corresponding device
- section for details.
-
-
-
-
-
-
-
getstate
-
- getstate <devspec>
-
- Output a short space seperated status for <devspec>. It is useful for
- monitoring the device in e.g. Cacti.
- Examples:
-
- Note: to use this command copy the file contrib/getstate/99_getstate.pm into
- your FHEM directory.
-
-
-
-
-
-
-
include
-
- include <filename>
-
- Read in the file, and process every line as a fhem command. Makes
- configuration files more modular and enables to reread them.
-
-
-
-
-
inform
-
- inform {on|off|timer|raw} [regexp]
-
- If set to on, and a device state changes, send a notification to the current
- client. This command can be used by other programs/modules to receive a
- notification.
- The option timer prepends a timerstamp to the line. Note: this command is
- a nice way to check which events are generated, to help you when creating
- notify or FileLog entries.
-
-
-
-
-
-
list
-
- list [devspec] [value]
-
- Output a list of all definitions, all notify settings and all at
- entries. This is one of the few commands which return a string in a
- normal case.
- See the Device specification section for details on
- <devspec>.
-
- If value is specified, then output this property (like DEF, TYPE, etc) or
- reading (actuator, measured-temp) for all devices from the devspec.
-
- If specifying name, then a detailed status for name
- will be displayed, e.g.:
-
fhem> list fl
-
- Internals:
- CODE 5102
- DEF 5102
- NAME fl
- NR 15
- STATE measured-temp: 21.1 (Celsius)
- TYPE FHT
- IODev FHZ
- Attributes:
- room Heizung
- Readings:
- 2006-11-02 09:45:56 actuator 19%
- [...]
-
-
-
-
-
-
modify
-
- modify <name> <type-dependent-options>
-
-
- Used to modify some definitions. Useful for changing some at or notify definitions. If specifying
- one argument to an at type definition, only the time part will be changed. In
- case of a notify type definition, only the regex part will be changed. All
- other values (state, attributes, etc) will remain intact.
-
- Example:
-
- define lampon at 19:00 set lamp on
- modify lampon *19:00
- modify lampon 19:00 set lamp on-for-timer 16
-
-
-
-
-
quit
-
- quit
-
- If used in a TCP/IP session, terminate the client session.
- If used in a script, terminate the parsing of the current script.
-
- Example:
-
- quit
-
-
-
-
-
-
reload
-
- reload <module>
-
- Reload the given module from the module directory. It is a convenient way to
- test modules whithout restarting the program.
-
- Example:
-
- reload 99_PRIV
-
-
-
-
-
rename
-
- rename <oldname> <newname>
-
- Rename a device from the <oldname> to <newname>, together with
- its attributes. The global event RENAMED will be generated, see the notify
- section for details.
-
- Example:
-
- rename FHT_1234 fht.kitchen
-
-
-
-
-
-
rereadcfg
-
- rereadcfg [fhem-config-file]
-
- Re-read the active configuration file, or the optionally specified file.
- The sequence: the statefile will be saved first,
- then all devices will be deleted, then the currently active config file (or
- the specified file) will be read and at last the statefile will be
- reloaded.
- Upon completion it triggers the global:REREADCFG event. All existing
- connections up to the one issuing the rereadcfg will be closed.
-
-
- Example:
-
- rereadcfg
-
-
-
-
-
save
-
- save [<configfile>]
-
- Save first the statefile, then the
- configfile information. If a parameter is specified,
- it will be used instead the global configfile attribute.
- Notes:
-
-
save only writes out definitions and attributes, but no (set/get)
- commands which were previously part of the config file. If you need such
- commands after the initialization (e.g. FHTcode), you
- should trigger them via notify, when receiving the
- INITIALIZED event.
-
-
save tries to preserve comments (lines starting with #) and include
- structures, but it won't work correctly if some of these files are not
- writeable.
-
-
-
-
-
-
-
set
-
- set <devspec> <type-specific>
-
- Set parameters of a device / send signals to a device. You can
- get a list of possible parameters by
-
- set <name> ?
-
- See the Device specification section for details on
- <devspec>. The set command returns only a value on error.
-
- Each device has different set parameters, see the corresponding device
- section for details.
-
-
-
- Some modules support a common list of set extensions, and point in
- their documentation to this section. If the module itself implements one of
- the following commands, then the module-implementation takes precedence.
-
-
-
on-for-timer <seconds>
- Issue the on command for the device, and after <seconds> the off
- command. For issuing the off command an internal timer will be
- scheduled, which is deleted upon a restart. To delete this internal
- timer without restart specify 0 as argument.
-
off-for-timer <seconds>
- see on-for-timer above.
-
on-till <timedet>
- Issue the on command for the device, and create an at definition with
- <timedet> (in the form HH:MM[:SS]) to set it off. This definition
- is visible, and its name is deviceName+"_till". To cancel the scheduled
- off, delete the at definition.
-
off-till <timedet>
- see on-till above.
-
blink <number> <blink-period>
- set the device on for <blink-period> then off for
- <blink-period> and repeat this <number> times.
- To stop blinking specify "0 0" as argument.
-
intervals <from1>-<till1> <from2>-<till2>...
-
- set the device on for the specified intervals, which are all timespecs
- in the form HH:MM[:SS]. The intervals are space separated.
-
- Examples:
-
-
- set switch on-for-timer 12.5
- set switch on-till {sunset()}
- set switch blink 3 1
- set switch intervals 08:00-12:00 13:00-18:00
-
-
-
-
-
-
-
setreading
-
- setreading <devspec> <reading> <value>
-
- Set the reading <reading> for the device <name> to
- <value> without sending out commands to the device, but triggering
- events and eventMap/stateFormat transformations as usual.
-
- Examples:
-
- setreading lamp state on
-
-
-
-
-
setstate
-
- setstate <devspec> <value>
-
- Set the STATE entry for the device specified by <devspec>,
- which is used for displaying the device state in different frontends.
- No signals will be sent to the device, no events will be generated, and no
- eventMap or stateFormat translation will be done either.
- This command is also used in the statefile.
- See the Device specification section for details on
- <devspec>.
-
- Examples:
-
- setstate lamp on
-
-
-
-
-
-
shutdown
-
- shutdown [restart]
-
- Shut down the server (after saving the state information
- ). It triggers the global:SHUTDOWN event. If the optional restart
- parameter is specified, fhem tries to restart itself.
-
- Sleep for a given amount, millisecond accuracy.
- When called in a notify/at/etc, then nonempty return values of the following
- commands is logged to the global logfile with loglevel 2.
- If quiet is specified, then skip this logging.
-
- Example:
-
- sleep 0.5
- define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp
- toggle
- define a3 at +*00:05 set Windsensor 1w_measure;; sleep 2 quiet;; get
- Windsensor 1w_temp
-
-
- Note: sleep followed by another command and issued in at/notify/etc is not
- blocking fhem
-
-
-
-
version
-
- version [filter]
-
- List the version of fhem.pl and all loaded modules. The optional parameter
- can be used to filter the ouput.
-
-
- The global device is used to set different global attributes. It will be
- automatically defined, it cannot be deleted or renamed and has no set or get
- parameters
-
-
- Define
autoload_undefined_devices
- If set, automatically load the corresponding module when a message
- of this type is received. This is used by the
- autocreate device, to automatically create a fhem device upon
- receiving a corresponding message.
-
-
-
-
updateInBackground
- If this attribute is set to 1, the update will be executed in the
- backgrund process. The return message is communicated via events, and
- in telnet the inform command is activated, in FHEMWEB the Event
- Monitor.
-
-
-
-
backup_before_update
- If this attribute is set to 0, an update skip always backing up your
- installation via the backup command. The default
- is to backup always before updates.
- Note: Set this attribute only if you know what you do!
- This Attribute is used by the update command.
- Example:
-
- attr global backup_before_update 0
-
-
-
-
-
backupcmd
- You could pass the backup to your own command / script by using this attribute.
- If this attribute is specified, then it will be started as a shell command and
- passes a space separated list of files / directories as one
- argument to the command, like e.g.:
-
-
- Note: Your command / script has to return the string "backup done" or
- everything else to report errors, to work properly with updatefhem!
- This Attribute is used by the backup command.
- Example:
-
- attr global backupcmd /usr/local/bin/myBackupScript.sh
-
-
-
-
-
backupdir
- A folder to store the compressed backup file.
- This Attribute is used by the backup command.
- Example:
-
- attr global backupdir /Volumes/BigHD
-
-
-
-
-
backupsymlink
- If this attribute is set to everything else as "no", the archive command tar
- will support symlinks in your backup. Otherwise, if this attribute is set to
- "no" symlinks are ignored by tar.
- This Attribute is used by the backup command.
- Example:
-
- attr global backupsymlinks yes
-
-
-
-
-
configfile
- Contains the name of the fhem configuration file. If save is called without argument, then the output will
- be written to this file.
-
-
-
-
exclude_from_update
- Contains a space separated list of file which will be excluded by an update.
- This Attribute is used by the update command.
- Example:
-
- attr global exclude_from_update 21_OWTEMP.pm temp4hum4.gplot FS20.on.png FS20.off.png
-
-
-
-
-
holiday2we
- If this attribute is set, then the $we variable
- will be true, if the value of the holiday
- variable referenced by this attribute is not none.
- Example:
-
- attr global holiday2we hessen
-
-
-
-
-
lastinclude
- If this attribute is set, then the last command of the generated
- configfile (see the save command) will be
- include <lastinclude-value>
- This attribute is DEPRECATED, use notify, with
- the INITIALIZED event to execute commands after initialization.
-
-
-
-
logfile
- Specify the logfile to write. You can use "-" for
- stdout, in this case the server won't background itself.
- The logfile name can also take wildcards for easier logfile rotation,
- see the FileLog section. Just apply the
- archivecmd / archivedir / nrarchive attributes to the
- global device as you would do for a FileLog device.
- You can access the current name of the logfile with
- { $currlogfile }.
-
-
-
-
modpath
- Specify the path to the modules directory FHEM. The path
- does not contain the directory FHEM. Upon setting the
- attribute, the directory will be scanned for filenames of the form
- NN_<NAME>.pm, and make them available for device definition under
- <NAME>. If the first device of type <NAME> is defined, the
- module will be loaded, and its function with the name
- <NAME>_Initialize will be called. Exception to this rule are
- modules with NN=99, these are considered to be utility modules
- containing only perl helper functions, they are loaded at startup (i.e.
- modpath attribute definition time).
-
-
-
-
motd
- Message Of The Day. Displayed on the homescreen of the FHEMWEB package,
- or directly after the telnet logon, before displaying the fhem> prompt.
- SecurityCheck is setting motd if it is not defined upon startup, to
- avoid this set the motd value to none
-
-
-
-
mseclog
- If set, the timestamp in the logfile will contain a millisecond part.
-
-
-
-
nofork
- If set and the logfile is not "-", do not try to background. Needed on
- some Fritzbox installations, and it will be set automatically for
- Windows.
-
-
-
-
pidfilename
- Write the process id of the perl process to the specified file. The
- server runs as a daemon, and some distributions would like to check by
- the pid if we are still running. The file will be deleted upon
- shutdown.
-
statefile
- Set the filename where the state and certain at
- information will be saved before shutdown. If it is not specified, then
- no information will be saved.
-
-
-
-
title
- Used by the web frontend fhemweb.pl (webpgm2) as a Page title.
-
updatebranch
- The update branch will be set by the file FhemUtils/release.pm contained
- in the modpath. For example, if a stable version (version 5.3 upwards) of
- fhem is installed via a direct download connection of the archieve on the
- fhem-website, then the branch of the update is automatically on "stable".
- In this branch, only updates fixing confirmed errors, relevant security
- fixes or new stable versions are provided.
- By using the command "update development <filename>", particular files
- or packages can always be installed directly from the development branch
- (e.g. "update development <package>").
- If you want to update from the development branch in stable verion in
- general, you can force this behaviour by using the attribute "updatebranch DEVELOPMENT".
- In case the installation of fhem should generally using the development
- branch, this attribute would not have to be set. Instead, use "update development force"
- to update all files including release.pm (containing the release-information)
- to the newest version.
-
-
-
-
userattr
- A space separated list which contains the names of additional
- attributes. Without specifying them you will not be able to set them
- (in order to prevent typos).
-
-
-
-
dupTimeout
- Define the timeout for which 2 identical events from two different
- receiver are considered a duplicate. Default is 0.5 seconds.
-
-
-
-
showInternalValues
- Show data used for internal computations. If the name of an internal
- value, reading or attribute starts with dot (.), then it is normally
- hidden, and will only be visible, if this attribute is set to 1.
- The attribute is checked by the list command, by the FHEMWEB room
- overview and by xmllist.
-
-
-
-
-
-
ALL3076
-
- Note: this module needs the HTTP::Request and LWP::UserAgent perl modules.
-
-
- Define
-
- define <name> ALL3076 <ip-address>
-
- Defines an Allnet 3076 device (Dimmable lightswitch) via its ip address or dns name
- Defines a temperature sensor connected on an Allnet 4000 device via its ip address and port. Use the delay argument to define the delay between polls.
- Defines an Allnet 4027 device (Box with 8 relays) connected to an ALL4000 via its ip address. The status of the device is also pooled (delay interval), because someone else is able to change the state via the webinterface of the device.
-
-
- Examples:
-
- define lamp1 ALL4027 192.168.8.200 0 7 60
-
-
-
-
-
- Set
-
- set <name> <value>
-
- where value is one of:
-
- off
- on
- on-for-timer <Seconds>
- toggle
-
- Examples:
-
- set poolpump on
-
-
- Notes:
-
-
Toggle is special implemented. List name returns "on" or "off" even after a toggle command
-
-
-
-
-
-
BBB_BMP180
-
-
- Prerequesits
-
-
- Module was developed for use with Beaglebone Black.
- To create the device, run the following command on system console:
- This module provides air pressure measurement by a BMP180 sensor connected to I2C bus.
- Optional parameter [bus] defines number of I2C-bus in your hardware (default = 1).
-
-
-
-
-
- Set-Commands
-
-
- No set commands implemented.
-
-
-
-
-
- Get-Commands
-
-
- get <name> readValues
-
-
- Update all values immediately.
-
-
-
-
-
- Attributes
-
-
bbbInterval - Interval for readings update (default = 300 seconds)
-
bbbRoundPressure - If set to 1 = pressure value will be presented without decimals (default = 2 decimals)
-
bbbRoundTemperatue - If set to 1 = temperature value will be presented without decimals (default = 1 decimal)
pressure-nn - pressure (relative), global attribute altitude needed for calculation
-
-
-
- Author's notes
-
-
Have fun!
-
-
-
-
-
-
BS
-
- The module BS allows to collect data from a brightness sensor through a
- FHZ device. For details on the brightness sensor see
- busware wiki.
- You can have at most nine different brightness sensors in range of your
- FHZ.
-
-
- The state contains the brightness in % (reading brightness) and
- the brightness in lux (reading lux). The flags
- reading is always zero. The meaning of these readings is explained in more
- detail on the above mentioned wiki page.
-
-
-
- Define
-
- define <name> BS <sensor#> [<RExt>]
-
-
- <sensor#> is the number of sensor in the brightness
- sensor address system that runs from 1 to 9.
-
- <RExt> is the value of the resistor on your brightness
- sensor in Ω (Ohm). The brightness reading in % is proportional to the resistance, the
- lux reading is proportional to the resistance squared. The value is
- optional. The default resistance is RExt= 50.000Ω.
-
-
- Example:
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module.
-
-
- Define
-
- define <name> CM11 <serial-device>
-
- CM11 is the X10 module to interface X10 devices with the PC.
-
- The current implementation can evaluate incoming data on the powerline of
- any kind. It can send on, off, dimdown and dimup commands.
-
- The name of the serial-device depends on your distribution. If
- serial-device is none, then no device will be opened, so you can experiment
- without hardware attached.
-
- If you experience problems (for verbose 4 you get a lot of "Bad CRC message"
- in the log), then try to define your device as
- define <name> FHZ <serial-device> strangetty
-
-
- Example:
-
- define x10if CM11 /dev/ttyUSB3
-
-
-
-
-
- Set
-
- set <name> reopen
-
- Reopens the serial port.
-
-
-
-
- Get
-
- get <name> fwrev
-
- Reads the firmware revision of the CM11 device. Returns error
- if the serial connection to the device times out. Can be used for error
- detection.
-
-
- get <name> time
-
- Reads the internal time of the device which is the total uptime (modulo one
- year), since fhem sets the time to 0.00:00:00 if the device requests the time
- to be set after being powered on. Returns error
- if the serial connection to the device times out. Can be used for error
- detection.
-
- Module for measuring air quality with usb sticks based on the AppliedSensor iAQ-Engine sensor.
- Products currently know to work are the VOLTCRAFT CO-20 and the Sentinel Haus Institut RaumluftWächter.
- Probably works with all devices recognized as iAQ Stick (0x03eb:0x2013).
-
- Notes:
-
-
Device::USB hast to be installed on the FHEM host.
- It can be installed with 'cpan install Device::USB'
- or on debian with 'sudo apt-get install libdevice-usb-perl''
- define <name> CO20 [bus:device]
-
-
- Defines a CO20 device. bus:device hast to be used if more than one sensor is connected to the same host.
-
- Examples:
-
- define CO20 CO20
-
-
-
-
- Readings
-
-
voc
- CO2 equivalents in the range of 450-2000ppm.
-
-
-
- Get
-
-
update
- trigger an update
-
-
-
- Attributes
-
-
interval
- the interval in seconds used to read updates. the minimum and default ist 60.
-
disable
- 1 -> disconnect and stop polling
-
-
-
-
-
CUL
-
-
-
-
- The CUL/CUN(O) is a family of RF devices sold by busware.de.
-
- With the opensource firmware
- culfw they are capable
- to receive and send different 433/868 MHz protocols (FS20/FHT/S300/EM/HMS/MAX!).
- It is even possible to use these devices as range extenders/routers, see the
- CUL_RFR module for details.
-
-
- 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.
-
- Note: This module may require the Device::SerialPort or
- Win32::SerialPort module if you attach the device via USB
- and the OS sets strange default parameters for serial devices.
- <device> specifies the serial port to communicate with the CUL.
- The name of the serial-device depends on your distribution, under
- linux the cdc_acm kernel module is responsible, and usually a
- /dev/ttyACM0 device will be created. If your distribution does not have a
- cdc_acm module, you can force usbserial to handle the CUL by the
- following command:
-
- In this case the device is most probably /dev/ttyUSB0.
-
- You can also specify a baudrate if the device name contains the @
- character, e.g.: /dev/ttyACM0@38400
-
- If the baudrate is "directio" (e.g.: /dev/ttyACM0@directio), then the
- perl module Device::SerialPort is not needed, and FHEM
- opens the device with simple file io. This might work if the operating
- system uses sane defaults for the serial parameters, e.g. some Linux
- distributions and OSX.
-
-
- Network-connected devices (CUN(O)):
- <device> specifies the host:port of the device, e.g.
- 192.168.0.244:2323
-
-
- If the device is called none, then no device will be opened, so you
- can experiment without hardware attached.
-
- The FHTID is a 4 digit hex number, and it is used when the CUL talks to
- FHT devices or when CUL requests data. Set it to 0000 to avoid answering
- any FHT80b request by the CUL.
-
-
-
-
- Set
-
-
raw
- Issue a CUL firmware command. See the this document
- for details on CUL commands.
-
-
-
freq / bWidth / rAmpl / sens
- SlowRF mode only.
- Set the CUL frequency / bandwidth / receiver-amplitude / sensitivity
-
- Use it with care, it may destroy your hardware and it even may be
- illegal to do so. Note: The parameters used for RFR transmission are
- not affected.
-
-
freq sets both the reception and transmission frequency. Note:
- Although the CC1101 can be set to frequencies between 315 and 915
- MHz, the antenna interface and the antenna of the CUL is tuned for
- exactly one frequency. Default is 868.3 MHz (or 433 MHz)
-
bWidth can be set to values between 58 kHz and 812 kHz. Large values
- are susceptible to interference, but make possible to receive
- inaccurately calibrated transmitters. It affects tranmission too.
- Default is 325 kHz.
-
rAmpl is receiver amplification, with values between 24 and 42 dB.
- Bigger values allow reception of weak signals. Default is 42.
-
-
sens is the decision boundary between the on and off values, and it
- is 4, 8, 12 or 16 dB. Smaller values allow reception of less clear
- signals. Default is 4 dB.
-
-
-
-
hmPairForSec
- HomeMatic mode only.
- Set the CUL in Pairing-Mode for the given seconds. Any HM device set into
- pairing mode in this time will be paired with FHEM.
-
-
-
hmPairSerial
- HomeMatic mode only.
- Try to pair with the given device. The argument is a 10 character
- string, usually starting with letters and ending with digits, printed on
- the backside of the device. It is not necessary to put the given device
- in learning mode if it is a receiver.
-
-
-
led
- Set the CUL led off (00), on (01) or blinking (02).
-
-
-
-
- Get
-
-
version
- returns the CUL firmware version
-
-
uptime
- returns the CUL uptime (time since CUL reset)
-
-
raw
- Issues a CUL firmware command, and waits for one line of data returned by
- the CUL. See the CUL firmware README document for details on CUL
- commands.
-
-
fhtbuf
- CUL has a message buffer for the FHT. If the buffer is full, then newly
- issued commands will be dropped, and an "EOB" message is issued to the
- FHEM log.
- fhtbuf returns the free memory in this buffer (in hex),
- an empty buffer in the CUL V2 is 74 bytes, in CUL V3/CUN(O) 200 Bytes.
- A message occupies 3 + 2x(number of FHT commands) bytes,
- this is the second reason why sending multiple FHT commands with one
- set is a good idea. The first reason is, that
- these FHT commands are sent at once to the FHT.
-
-
-
ccconf
- Read some CUL radio-chip (cc1101) registers (frequency, bandwidth, etc.),
- and display them in human readable form.
-
-
-
cmds
- Depending on the firmware installed, CULs have a different set of
- possible commands. Please refer to the README of the firmware of your
- CUL to interpret the response of this command. See also the raw command.
-
-
credit10ms
- One may send for a duration of credit10ms*10 ms before the send limit
- is reached and a LOVF is generated.
-
sendpool
- If using more than one CUL for covering a large area, sending
- different events by the different CUL's might disturb each other. This
- phenomenon is also known as the Palm-Beach-Resort effect.
- Putting them in a common sendpool will serialize sending the events.
- E.g. if you have three CUN's, you have to specify following
- attributes:
- attr CUN1 sendpool CUN1,CUN2,CUN3
- attr CUN2 sendpool CUN1,CUN2,CUN3
- attr CUN3 sendpool CUN1,CUN2,CUN3
-
-
addvaltrigger
- Create triggers for additional device values. Right now these are RSSI
- and RAWMSG for the CUL family and RAWMSG for the FHZ.
-
-
rfmode
- Configure the RF Transceiver of the CUL (the CC1101). Available
- arguments are:
-
-
SlowRF
- To communicate with FS20/FHT/HMS/EM1010/S300/Hoermann devices @1 kHz
- datarate. This is the default.
-
-
HomeMatic
- To communicate with HomeMatic type of devices @10 kHz datarate.
-
-
MAX
- To communicate with MAX! type of devices @10 kHz datarate.
-
-
-
-
hmId
- Set the HomeMatic ID of this device. If this attribute is absent, the
- ID will be F1<FHTID>. Note 1: After setting or changing this
- attribute you have to relearn all your HomeMatic devices. Note 2: The
- value must be a 6 digit hex number, and 000000 is not valid. FHEM
- won't complain if it is not correct, but the communication won't work.
-
-
-
hmProtocolEvents
- Generate events for HomeMatic protocol messages. These are normally
- used for debugging, by activating "inform timer" in a telnet session,
- or looking at the Event Monitor window in the FHEMWEB frontend.
- Example:
-
- The CUL_EM module interprets EM type of messages received by the CUL, notably
- from EMEM, EMWZ or EMGZ devices.
-
-
-
- Define
-
- define <name> CUL_EM <code> [corr1 corr2
- CostPerUnit BasicFeePerMonth]
-
- <code> is the code which must be set on the EM device. Valid values
- are 1 through 12. 1-4 denotes EMWZ, 5-8 EMEM and 9-12 EMGZ devices.
-
- corr1 is used to correct the current number, corr2
- for the total number.
-
-
for EMWZ devices you should specify the rotation speed (R/kW)
- of your watt-meter (e.g. 150) for corr1 and 12 times this value for
- corr2
-
for EMEM devices the corr1 value is 0.01, and the corr2 value is
- 0.001
-
-
-
- CostPerUnit and BasicFeePerMonth are used to compute your
- daily and monthly fees. Your COST will appear in the log, generated once
- daily (without the basic fee) or month (with the bassic fee included). Your
- definition should look like e.g.:
-
-
- Tip: You can configure your EMWZ device to show in the CUM column of the
- 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 subtract the RAW CUM value from it. Now set the basis reading of your
- EMWZ device (named emwz) to this value.
-
-
- This module handles messages from the FHT80 TF "Fenster-Tür-Kontakt" (Window-Door-Contact)
- which are normally only acted upon by the FHT80B. With this module,
- FHT80 TFs are in a limited way (see Wiki
- for detailed explanation of TF's mode of operation) usable similar to HMS100 TFK. The name
- of the module was chosen as a) only CUL will spill out the datagrams and b) "TF" designates
- usually temperature+humidity sensors (no clue, why ELV didn't label this one "TFK" like with
- FS20 and HMS).
- As said before, FHEM can receive FHT80 TF radio (868.35 MHz) messages only through an
- CUL device, so this must be defined first.
-
-
- Define
-
- define <name> CUL_FHTTK <devicecode>
-
-
- <devicecode> is a six digit hex number, given to the FHT80 TF during
- production, i. e. it is not changeable. (Yes, it keeps this code after changing batteries
- as well.)
-
- Examples:
-
- Correct device definition is the key for HM environment simple maintenance.
-
-
- Background to define entities:
- HM devices has a 3 byte (6 digit hex value) HMid - which is key for
- addressing. Each device hosts one or more channels. HMid for a channel is
- the device's HMid plus the channel number (1 byte, 2 digit) in hex.
- Channels should be defined for all multi-channel devices. Channel entities
- cannot be defined if the hosting device does not exist Note: FHEM
- mappes channel 1 to the device if it is not defined explicitely. Therefore
- it does not need to be defined for single channel devices.
-
- Note: if a device is deleted all assotiated channels will be removed as
- well. An example for a full definition of a 2 channel switch is given
- below:
-
-
-
- livingRoomSwitch is the device managing communication. This device is
- defined prior to channels to be able to setup references.
- LivingroomMainLight is channel 01 dealing with status of light, channel
- peers and channel assotiated register. If not defined channel 01 is covered
- by the device entity. LivingRoomBackLight is the second 'channel',
- channel 02. Its definition is mandatory to operate this function.
-
- Sender specials: HM threats each button of remotes, push buttons and
- similar as channels. It is possible (not necessary) to define a channel per
- button. If all channels are defined access to pairing informatin is
- possible as well as access to channel related register. Furthermore names
- make the traces better readable.
-
- define may also be invoked by the autocreate
- module, together with the necessary subType attribute.
- Usually you issue a hmPairForSec and press the
- corresponding button on the device to be paired, or issue a hmPairSerial set command if the device is a receiver
- and you know its serial number. Autocreate will then create a fhem
- device and set all necessary attributes. Without pairing the device
- will not accept messages from fhem. fhem may create the device even if
- the pairing is not successful. Upon a successful pairing you'll see a
- CommandAccepted entry in the details section of the CUL_HM device.
-
- If you cannot use autocreate, then you have to specify:
-
-
the <6-digit-hex-code>or HMid+ch <8-digit-hex-code>
- It is the unique, hardcoded device-address and cannot be changed (no,
- you cannot choose it arbitrarily like for FS20 devices). You may
- detect it by inspecting the fhem log.
-
the subType attribute
- which is one of switch dimmer blindActuator remote sensor swi
- pushButton threeStateSensor motionDetector keyMatic winMatic
- smokeDetector
-
- Without these attributes fhem won't be able to decode device messages
- appropriately.
-
- Notes
-
-
If the interface is a CUL device, the rfmode
- attribute of the corresponding CUL/CUN device must be set to HomeMatic.
- Note: this mode is BidCos/Homematic only, you will not receive
- FS20/HMS/EM/S300 messages via this device. Previously defined FS20/HMS
- etc devices must be assigned to a different input device (CUL/FHZ/etc).
-
-
Currently supported device families: remote, switch, dimmer,
- blindActuator, motionDetector, smokeDetector, threeStateSensor,
- THSensor, winmatic. Special devices: KS550, HM-CC-TC and the KFM100.
-
-
Device messages can only be interpreted correctly if the device type is
- known. fhem will extract the device type from a "pairing request"
- message, even if it won't respond to it (see hmPairSerial and hmPairForSec to enable pairing).
- As an alternative, set the correct subType and model attributes, for a
- list of possible subType values see "attr hmdevice ?".
-
-
The so called "AES-Encryption" is in reality a signing request: if it is
- enabled, an actor device will only execute a received command, if a
- correct answer to a request generated by the actor is received. This
- means:
-
-
Reaction to commands is noticably slower, as 3 messages are sent
- instead of one before the action is processed by the actor.
-
Every command and its final ack from the device is sent in clear,
- so an outside observer will know the status of each device.
-
The firmware implementation is buggy: the "toggle" event is executed
- before the answer for the signing request is received, at
- least by some switches (HM-LC-Sw1-Pl and HM-LC-SW2-PB-FM).
-
The HMLAN configurator will answer signing
- requests by itself, and if it is configured with the 3-byte address
- of a foreign CCU which is still configurerd with the default
- password, it is able to answer signing requests correctly.
-
AES-Encryption is not useable with a CUL device as the interface,
- but it is supported with a HMLAN. Due to the issues above I do not
- recommend using Homematic encryption at all.
-
-
-
-
-
-
- Set
-
- Note: devices which are normally send-only (remote/sensor/etc) must be set
- into pairing/learning mode in order to receive the following commands.
-
-
-
- Universal commands (available to most hm devices):
-
-
clear <[readings|register|msgEvents]>
- A set of variables can be removed.
-
- readings: all readings will be deleted. Any new reading will be added usual. May be used to eliminate old data
- register: all captured register-readings in FHEM will be removed. This has NO impact to the values in the device.
- msgEvents: all message event counter will be removed. Also commandstack will be cleared.
- rssi: collected rssi values will be cleared.
-
-
-
getConfig
- Will read major configuration items stored in the HM device. Executed
- on a channel it will read pair Inforamtion, List0, List1 and List3 of
- the 1st internal peer. Furthermore the peerlist will be retrieved for
- teh given channel. If executed on a device the command will get the
- above info or all assotated channels. Not included will be the
- configuration for additional peers. The command is a shortcut
- for a selection of other commands.
-
-
getRegRaw [List0|List1|List2|List3|List4|List5|List6]
- <peerChannel>
-
- Read registerset in raw format. Description of the registers is beyond
- the scope of this documentation.
-
- Registers are structured in so called lists each containing a set of
- registers.
-
- List0: device-level settings e.g. CUL-pairing or dimmer thermal limit
- settings.
-
- List1: per channel settings e.g. time to drive the blind up and
- down.
-
- List3: per 'link' settings - means per peer-channel. This is a lot of
- data!. It controlls actions taken upon receive of a trigger from the
- peer.
-
- List4: settings for channel (button) of a remote
-
- <PeerChannel> paired HMid+ch, i.e. 4 byte (8 digit) value like
- '12345601'. It is mendatory for List 3 and 4 and can be left out for
- List 0 and 1.
-
- 'all' can be used to get data of each paired link of the channel.
-
- 'selfxx' can be used to address data for internal channels (associated
- with the build-in switches if any). xx is the number of the channel in
- decimal.
-
- Note1: execution depends on the entity. If List1 is requested on a
- device rather then a channel the command will retrieve List1 for all
- channels assotiated. List3 with peerChannel = all will get all link
- for all channel if executed on a device.
-
- Note2: for 'sender' see remote
-
- Note3: the information retrieval may take a while - especially for
- devices with a lot of channels and links. It may be necessary to
- refresh the web interface manually to view the results
-
- Note4: the direct buttons on a HM device are hidden by default.
- Nevertheless those are implemented as links as well. To get access to
- the 'internal links' it is necessary to issue
- 'set <name> regSet intKeyVisib visib'
- or
- 'set <name> regBulk RegL_0: 2:81'
-
- Reset it by replacing '81' with '01' example:
-
-
- set mydimmer getRegRaw List1
- set mydimmer getRegRaw List3 all
-
-
-
getSerial
- Read serial number from device and write it to attribute serialNr.
-
-
inhibit [on|off]
- Block / unblock all changes to the actor channel, i.e. actor state is frozen
- until inhibit is set off again. Inhibit can be executed on any actor channel
- but obviously not on sensors - would not make any sense.
- Practically it can be used to suspend any notifies as well as peered channel action
- temporarily without the need to delete them.
- Examples:
-
- # Block operation
- set keymatic inhibit on
-
-
-
-
pair
- Pair the device with a known serialNumber (e.g. after a device reset)
- to FHEM Central unit. FHEM Central is usualy represented by CUL/CUNO,
- HMLAN,...
- If paired, devices will report status information to
- FHEM. If not paired, the device won't respond to some requests, and
- certain status information is also not reported. Paring is on device
- level. Channels cannot be paired to central separate from the device.
- See also getPair and
- unpair.
- Don't confuse pair (to a central) with peer (channel to channel) with
- peerChan.
-
-
peerBulk <peerch1,peerch2,...> [set|unset]
- peerBulk will add peer channels to the channel. All peers in the
- list will be added.
- peering sets the configuration of this link to its defaults. As peers are not
- added in pairs default will be as defined for 'single' by HM for this device.
- More suffisticated funktionality is provided by
- peerChan.
- peerBulk will not delete existing peers, just handle the given peerlist.
- Other already installed peers will not be touched.
- peerBulk may be used to remove peers using unset option while default ist set.
-
- Main purpose of this command is to re-store data to a device.
- It is recommended to restore register configuration utilising
- regBulk subsequent.
- Example:
-
- set myChannel peerBulk 12345601,
- set myChannel peerBulk self01,self02,FB_Btn_04,FB_Btn_03,
- set myChannel peerBulk 12345601 unset # remove peer 123456 channel 01
-
-
-
regBulk <reg List>:<peer> <addr1:data1> <addr2:data2>...
-
- This command will replace the former regRaw. It allows to set register
- in raw format. Its main purpose is to restore a complete register list
- to values secured before.
- Values may be read by getConfig. The
- resulting readings can be used directly for this command.
- <reg List> is the list data should be written to. Format could be
- '00', 'RegL_00', '01'...
- <peer> is an optional adder in case the list requires a peer.
- The peer can be given as channel name or the 4 byte (8 chars) HM
- channel ID.
- <addr1:data1> is the list of register to be written in hex
- format.
- Example:
-
- myblind will set the max drive time up for a blind actor to 25,6sec
-
regSet [prep|exec] <regName> <value> <peerChannel>
- For some major register a readable version is implemented supporting
- register names <regName> and value conversionsing. Only a subset
- of register can be supproted.
- Optional parameter [prep|exec] allowes to pack the messages and therefore greatly
- improve data transmission.
- Usage is to send the commands with paramenter "prep". The data will be accumulated for send.
- The last command must have the parameter "exec" in order to transmitt the information.
-
- <value> is the data in human readable manner that will be written
- to the register.
- <peerChannel> is required if this register is defined on a per
- 'peerChan' base. It can be set to '0' other wise.See getRegRaw for full description
- Supported register for a device can be explored using
-
set regSet ? 0 0
- Condensed register description will be printed
- using
-
set regSet <regname> ? 0
-
-
reset
- Factory reset the device. You need to pair it again to use it with
- fhem.
-
-
sign [on|off]
- Activate or deactivate signing (also called AES encryption, see the note above). Warning: if the device is attached via
- a CUL, you won't be able to switch it (or deactivate signing) from
- fhem before you reset the device directly.
-
-
statusRequest
- Update device status. For multichannel devices it should be issued on
- an per channel base
-
-
unpair
- "Unpair" the device, i.e. make it available to pair with other master
- devices. See pair for description.
-
virtual <number of buttons>
- configures a defined curcuit as virtual remote controll. Then number
- of button being added is 1 to 255. If the command is issued a second
- time for the same entity additional buttons will be added.
- Example for usage:
-
- define vRemote CUL_HM 100000 # the selected HMid must not be in use
- set vRemote virtual 20 # define 20 button remote controll
- set vRemote_Btn4 peerChan 0 <actorchannel> # peers Button 4 and 5 to the given channel
- set vRemote_Btn4 press
- set vRemote_Btn5 press long
-
on-for-timer <sec> -
- set the switch on for the given seconds [0-85825945]. Note:
- off-for-timer like FS20 is not supported. It may to be programmed
- thru channel register.
-
on-till <time> - set the switch on for the given end time.
-
set <name> on-till 20:32:10
- Currently a max of 24h is supported with endtime.
-
-
press <[short|long]> <[on|off|<peer>]> <btnNo>
- simulate a press of the local button or direct connected switch of the actor.
- [short|long] select simulation of short or long press of the button.
- Parameter is optional, short is default
- [on|off|<peer>] is relevant for devices with direct buttons per channel (blind or dimmer).
- Those are available for dimmer and blind-actor, usually not for switches
- <peer> allows to stimulate button-press of any peer of the actor.
- i.e. if the actor is peered to any remote, virtual or io (HMLAN/CUL)
- press can trigger the action defined.
- [noBurst] relevant for virtual only
- It will cause the command being added to the command queue of the peer. No burst is
- issued subsequent thus the command is pending until the peer wakes up. It therefore
- delays the button-press, but will cause less traffic and performance cost.
- Example:
-
- set actor press # trigger short of internal peer self assotiated to the channel
- set actor press long # trigger long of internal peer self assotiated to the channel
- set actor press on # trigger short of internal peer self related to 'on'
- set actor press long off # trigger long of internal peer self related to 'of'
- set actor press long FB_Btn01 # trigger long peer FB button 01
- set actor press long FB_chn:8 # trigger long peer FB button 08
- set actor press self01 # trigger short of internal peer 01
- set actor press HMLAN1 2 # trigger short of FHEM IO 'HMLAN1' channel 2
-
-
-
toggle - toggle the Actor. It will switch from any current
- level to off or from off to 100%
-
-
-
-
dimmer, blindActuator
- Dimmer may support virtual channels. Those are autocrated if applicable. Usually there are 2 virtual channels
- in addition to the primary channel. Virtual dimmer channels are inactive by default but can be used in
- in parallel to the primay channel to control light.
- Virtual channels have default naming SW<channel>_V<no>. e.g. Dimmer_SW1_V1 and Dimmer_SW1_V2.
- Dimmer virtual channels are completely different from FHEM virtual buttons and actors but
- are part of the HM device. Documentation and capabilities for virtual channels is out of scope.
-
-
0 - 100 [on-time] [ramp-time]
- set the actuator to the given value (in percent)
- with a resolution of 0.5.
- Optional for dimmer on-time and ramp time can be choosen, both in seconds with 0.1s granularity.
- On-time is analog "on-for-timer".
- Ramp-time default is 2.5s, 0 means instantanous
-
pct <level> [<ontime>] [<ramptime>] - set actor to a desired absolut level.
- Optional ontime and ramptime could be given for dimmer.
- ontime may be time in seconds. It may also be entered as end-time in format hh:mm:ss
-
-
up [changeValue] [<ontime>] [<ramptime>] dim up one step
-
down [changeValue] [<ontime>] [<ramptime>] dim up one step
- changeValue is optional an gives the level to be changed up or down in percent. Granularity is 0.5%, default is 10%.
- ontime is optional an gives the duration of the level to be kept. '0' means forever and is default.
- ramptime is optional an defines the change speed to reach the new level. It is meaningful only for dimmer.
-
-
-
-
-
remotes, pushButton
- This class of devices does not react on requests unless they are put
- to learn mode. FHEM obeys this behavior by stacking all requests until
- learn mode is detected. Manual interaction of the user is necessary to
- activate learn mode. Whether commands are pending is reported on
- device level with parameter 'protCmdPend'.
-
-
-
peerIODev [IO] <btn_no> [set|unset]
- The command is similar to peerChan. While peerChan
- is executed on a remote and peers any remote to any actor channel peerIODev is
- executed on an actor channel and peer this to an channel of an FHEM IO device.
- An IO device according to eQ3 supports up to 50 virtual buttons. Those
- will be peered/unpeerd to the actor. press can be
- used to stimulate the related actions as defined in the actor register.
-
-
peerChan <btn_no> <actChan> [single|dual]
- [set|unset] [both|actor|remote]
-
- peerChan will establish a connection between a sender-channel and
- an actuator-channel called link in HM nomenclatur. Peering must not be
- confused with pairing.
- Pairing refers to assign a device to the central.
- Peering refers to virtally connect two channels.
- Peering allowes direkt interaction between sender and aktor without
- the necessity of a CCU
- Peering a sender-channel causes the sender to expect an ack from -each-
- of its peers after sending a trigger. It will give positive feedback (e.g. LED green)
- only if all peers acknowledged.
- Peering an aktor-channel will setup a parameter set which defines the action to be
- taken once a trigger from -this- peer arrived. In other words an aktor will
- - process trigger from peers only
- - define the action to be taken dedicated for each peer's trigger
- An actor channel will setup a default action upon peering - which is actor dependant.
- It may also depend whether one or 2 buttons are peered in one command.
- A swich may setup oen button for 'on' and the other for 'off' if 2 button are
- peered. If only one button is peered the funktion will likely be 'toggle'.
- The funtion can be modified by programming the register (aktor dependant).
-
- Even though the command is executed on a remote or push-button it will
- as well take effect on the actuator directly. Both sides' peering is
- virtually independant and has different impact on sender and receiver
- side.
-
- Peering of one actuator-channel to multiple sender-channel as
- well as one sender-channel to multiple Actuator-channel is
- possible.
-
- <actChan> is the actuator-channel to be peered.
-
- <btn_no> is the sender-channel (button) to be peered. If
- 'single' is choosen buttons are counted from 1. For 'dual' btn_no is
- the number of the Button-pair to be used. I.e. '3' in dual is the
- 3rd button pair correcponding to button 5 and 6 in single mode.
-
- If the command is executed on a channel the btn_no is ignored.
- It needs to be set, should be 0
-
- [single|dual]: this mode impacts the default behavior of the
- Actuator upon using this button. E.g. a dimmer can be learned to a
- single button or to a button pair.
- Defaults to dual.
-
- 'dual' (default) Button pairs two buttons to one actuator. With a
- dimmer this means one button for dim-up and one for dim-down.
-
- 'single' uses only one button of the sender. It is useful for e.g. for
- simple switch actuator to toggle on/off. Nevertheless also dimmer can
- be learned to only one button.
-
- [set|unset]: selects either enter a peering or remove it.
- Defaults to set.
- 'set' will setup peering for the channels
- 'unset' will remove the peering for the channels
-
- [actor|remote|both] limits the execution to only actor or only remote.
- This gives the user the option to redo the peering on the remote
- channel while the settings in the actor will not be removed.
- Defaults to both.
-
- Example:
-
-
- set myRemote peerChan 2 mySwActChn single set #peer second button to an actuator channel
- set myRmtBtn peerChan 0 mySwActChn single set #myRmtBtn is a button of the remote. '0' is not processed here
- set myRemote peerChan 2 mySwActChn dual set #peer button 3 and 4
- set myRemote peerChan 3 mySwActChn dual unset #remove peering for button 5 and 6
- set myRemote peerChan 3 mySwActChn dual unset aktor #remove peering for button 5 and 6 in actor only
- set myRemote peerChan 3 mySwActChn dual set remote #peer button 5 and 6 on remote only. Link settings il mySwActChn will be maintained
-
-
press [long|short]
- simulates a button press short (default) or long. Note that the current
- implementation will not specify the duration for long. Only one trigger
- will be sent of type "long".
-
-
virtTemp <[off -10..50]>
- simulates a thermostat. If peered to a device it periodically sends the
- temperature until "off" is given. See also virtHum
-
-
virtHum <[off -10..50]>
- simulates the humidity part of a thermostat. If peered to a device it periodically sends
- the temperature and humidity until both are "off". See also virtTemp
-
-
valvePos <[off 0..100]>
- stimulates a VD
-
-
-
-
smokeDetector
- Note: All these commands work right now only if you have more then one
- smoekDetector, and you peered them to form a group. For issuing the
- commands you have to use the master of this group, and currently you
- have to guess which of the detectors is the master.
- smokeDetector can be setup to teams using
- peerChan. You need to peer all
- team-members to the master. Don't forget to also peerChan the master
- itself to the team - i.e. peer it to itself! doing that you have full
- controll over the team and don't need to guess.
-
-
teamCall - execute a network test to all team members
-
alarmOn - initiate an alarm
-
alarmOff - switch off the alarm
-
-
-
4Dis (HM-PB-4DIS-WM)
-
-
text <btn_no> [on|off] <text1> <text2>
- Set the text on the display of the device. To this purpose issue
- this set command first (or a number of them), and then choose from
- the teach-in menu of the 4Dis the "Central" to transmit the data.
- If used on a channel btn_no and on|off must not be given but only pure text.
- Example:
-
-
- set 4Dis text 1 on On Lamp
- set 4Dis text 1 off Kitchen Off
-
- set 4Dis_chn4 text Kitchen Off
-
-
-
-
-
-
Climate-Control (HM-CC-TC)
-
-
desired-temp <temp>
- Set different temperatures. <temp> must be between 6 and 30
- Celsius, and precision is half a degree.
-
tempListSat [prep|exec] HH:MM temp ... 24:00 temp
-
tempListSun [prep|exec] HH:MM temp ... 24:00 temp
-
tempListMon [prep|exec] HH:MM temp ... 24:00 temp
-
tempListTue [prep|exec] HH:MM temp ... 24:00 temp
-
tempListThu [prep|exec] HH:MM temp ... 24:00 temp
-
tempListWed [prep|exec] HH:MM temp ... 24:00 temp
-
tempListFri [prep|exec] HH:MM temp ... 24:00 temp
- Specify a list of temperature intervals. Up to 24 intervals can be
- specified for each week day, the resolution is 10 Minutes. The
- last time spec must always be 24:00.
- Example: until 6:00 temperature shall be 19, from then until 23:00 temperature shall be
- 22.5, thereafter until midnight, 19 degrees celsius is desired.
- set th tempListSat 06:00 19 23:00 22.5 24:00 19
-
-
partyMode <HH:MM><durationDays>
- set control mode to party and device ending time. Add the time it ends
- and the number of days it shall last. If it shall end next day '1'
- must be entered
-
systime
- set time in climate channel to system time
-
-
-
-
Climate-Control (HM-CC-RT-DN|HM-CC-RT-DN-BoM)
-
-
controlMode <auto|boost|day|night>
-
controlManu <temp>
-
controlParty <temp><startDate><startTime><endDate><endTime>
- set control mode to party, define temp and timeframe.
- example:
- set controlParty 15 03.8.13 20:30 5.8.13 11:30
-
systime
- set time in climate channel to system time
-
desired-temp <temp>
- Set different temperatures. <temp> must be between 6 and 30
- Celsius, and precision is half a degree.
-
tempListSat [prep|exec] HH:MM temp ... 24:00 temp
-
tempListSun [prep|exec] HH:MM temp ... 24:00 temp
-
tempListMon [prep|exec] HH:MM temp ... 24:00 temp
-
tempListTue [prep|exec] HH:MM temp ... 24:00 temp
-
tempListThu [prep|exec] HH:MM temp ... 24:00 temp
-
tempListWed [prep|exec] HH:MM temp ... 24:00 temp
-
tempListFri [prep|exec] HH:MM temp ... 24:00 temp
- Specify a list of temperature intervals. Up to 24 intervals can be
- specified for each week day, the resolution is 10 Minutes. The
- last time spec must always be 24:00.
- Optional parameter [prep|exec] allowes to pack the messages and therefore greatly
- improve data transmission. This is especially helpful if device is operated in wakeup mode.
- Usage is to send the commands with paramenter "prep". The data will be accumulated for send.
- The last command must have the parameter "exec" in order to transmitt the information.
- Example: until 6:00 temperature shall be 19, from then until 23:00 temperature shall be
- 22.5, thereafter until midnight, 19 degrees celsius is desired.
- set th tempListSat 06:00 19 23:00 22.5 24:00 19
-
- set th tempListSat prep 06:00 19 23:00 22.5 24:00 19
- set th tempListSun prep 06:00 19 23:00 22.5 24:00 19
- set th tempListMon prep 06:00 19 23:00 22.5 24:00 19
- set th tempListTue exec 06:00 19 23:00 22.5 24:00 19
-
-
-
-
OutputUnit (HM-OU-LED16)
-
-
led [off|red|green|yellow]
- switches the LED of the channel to the color. If the command is
- executed on a device it will set all LEDs to the specified
- color.
- For Expert all LEDs can be set individual by providing a 8-digit hex number to the device.
-
ilum <brightness><duration>
- <brightness> [0-15] of backlight.
- <duration> [0-127] in sec. 0 is permanent 'on'.
-
-
OutputUnit (HM-OU-CFM-PL)
-
-
led <color>[,<color>..] [<repeat>..]
- Possible colors are [redL|greenL|yellowL|redS|greenS|yellowS|pause]. A
- sequence of colors can be given separating the color entries by ','.
- White spaces must not be used in the list. 'S' indicates short and
- 'L' long ilumination.
- repeat defines how often the sequence shall be executed. Defaults to 1.
-
-
playTone <MP3No>[,<MP3No>..] [<repeat>..]
- Play a series of tones. List is to be entered separated by ','. White
- spaces must not be used in the list.
- replay can be entered to repeat the last sound played once more.
- repeat defines how often the sequence shall be played. Defaults to 1.
- Example:
-
- # "hello" in display, symb bulb on, backlight, beep
- set cfm_Mp3 playTone 3 # MP3 title 3 once
- set cfm_Mp3 playTone 3 3 # MP3 title 3 3 times
- set cfm_Mp3 playTone 3,6,8,3,4 # MP3 title list 3,6,8,3,4 once
- set cfm_Mp3 playTone 3,6,8,3,4 255# MP3 title list 3,6,8,3,4 255 times
- set cfm_Mp3 playTone replay # repeat last sequence
-
- set cfm_Led led redL 4 # led red blink 3 times long
- set cfm_Led led redS,redS,redS,redL,redL,redL,redS,redS,redS 255 # SOS 255 times
-
-
-
-
-
HM-RC-19xxx
-
-
alarm <count>
- issue an alarm message to the remote
-
service <count>
- issue an service message to the remote
-
symbol <symbol> [set|unset]
- activate a symbol as available on the remote.
-
beep [off|1|2|3]
- activate tone
-
backlight [off|on|slow|fast]
- activate backlight
-
display <text> comma unit tone backlight <symbol(s)>
-
- control display of the remote
- <text> : up to 5 chars
- comma : 'comma' activates the comma, 'no' leaves it off
- [unit] : set the unit symbols.
- [off|Proz|Watt|x3|C|x5|x6|x7|F|x9|x10|x11|x12|x13|x14|x15]. Currently
- the x3..x15 display is not tested.
-
- tone : activate one of the 3 tones [off|1|2|3]
-
- backlight: activate backlight flash mode [off|on|slow|fast]
-
- <symbol(s)> activate symbol display. Multople symbols can be
- acticated at the same time, concatinating them comma separated. Don't
- use spaces here. Possiblesymbols are
-
- [bulb|switch|window|door|blind|scene|phone|bell|clock|arrowUp|arrowDown]
- Example:
-
- # "hello" in display, symb bulb on, backlight, beep
- set FB1 display Hello no off 1 on bulb
- # "1234,5" in display with unit 'W'. Symbols scene,phone,bell and
- # clock are active. Backlight flashing fast, Beep is second tone
- set FB1 display 12345 comma Watt 2 fast scene,phone,bell,clock
-
-
-
-
-
keyMatic
-
The Keymatic uses the AES signed communication. Therefore the control
- of the Keymatic is only together with the HM-LAN adapter possible. But
- the CUL can read and react on the status information of the
- Keymatic.
-
-
lock
- The lock bolt moves to the locking position
-
unlock [sec]
- The lock bolt moves to the unlocking position.
- [sec]: Sets the delay in seconds after the lock automatically locked again.
- 0 - 65535 seconds
-
open [sec]
- Unlocked the door so that the door can be opened.
- [sec]: Sets the delay in seconds after the lock automatically locked
- again. 0 - 65535 seconds
-
-
winMatic
-
winMatic provides 2 channels, one for the window control and a second
- for the accumulator.
-
-
level <level> <relockDelay> <speed>
- set the level.
- <level>: range is 0 to 100%
- <relockDelay>: range 0 to 65535 sec. 'ignore' can be used to igneore the value alternaly
- <speed>: range is 0 to 100%
-
-
stop
- stop movement
-
-
-
HM-Sys-sRP-Pl
- setup the repeater's entries. Up to 36entries can be applied.
-
-
setRepeat <entry> <sender> <receiver> <broadcast>
- <entry> [1..36] entry number in repeater table. The repeater can handle up to 36 entries.
- <sender> name or HMID of the sender or source which shall be repeated
- <receiver> name or HMID of the receiver or destination which shall be repeated
- <broadcast> [yes|no] determines whether broadcast from this ID shall be repeated
-
- short application:
- setRepeat setAll 0 0 0
- will rewrite the complete list to the deivce. Data will be taken from attribut repPeer.
- attribut repPeer is formated:
- src1:dst1:[y/n],src2:dst2:[y/n],src2:dst2:[y/n],...
-
- Reading repPeer is formated:
- Number src dst broadcast verify
- number: entry sequence number
- src: message source device - read from repeater
- dst: message destination device - assembled from attributes
- broadcast: shall broadcast be repeated for this source - read from repeater
- verify: do attributes and readings match?
-
-
-
-
-
- Debugging:
-
-
raw <data> ...
- Only needed for experimentation.
- send a list of "raw" commands. The first command will be
- immediately sent, the next one after the previous one is acked by
- the target. The length will be computed automatically, and the
- message counter will be incremented if the first two charcters are
- ++. Example (enable AES):
- set hm1 raw ++A001F100001234560105000000001\
- ++A001F10000123456010802010AF10B000C00\
- ++A001F1000012345601080801\
- ++A001F100001234560106
-
-
-
-
-
-
- Get
-
-
configSave <filename>
- Saves the configuration of an entity into a file. Data is stored in a
- format to be executed from fhem command prompt.
- The file is located in the fhem home directory aside of fhem.cfg. Data
- will be stored cumulative - i.e. new data will be appended to the
- file. It is up to the user to avoid duplicate storage of the same
- entity.
- Target of the data is ONLY the HM-device information which is located
- IN the HM device. Explicitely this is the peer-list and the register.
- With the register also the peering is included.
- The file is readable and editable by the user. Additionaly timestamps
- are stored to help user to validate.
- Restrictions:
- Even though all data of the entity will be secured to the file FHEM
- stores the data that is avalilable to FHEM at time of save!. It is up
- to the user to read the data from the HM-hardware prior to execution.
- See recommended flow below.
- This command will not store any FHEM attributes o device definitions.
- This continues to remain in fhem.cfg.
- Furthermore the secured data will not automatically be reloaded to the
- HM-hardware. It is up to the user to perform a restore.
- As with other commands also 'configSave' is best executed on a device
- rather then on a channel. If executed on a device also the assotiated
- channel data will be secured.
-
- Recommended work-order for device 'HMdev':
- set HMdev clear msgEvents # clear old events to better check flow
- set HMdev getConfig # read device & channel inforamtion
- # wait until operation is complete
- # protState should be CMDs_done
- # there shall be no warnings amongst prot... variables
- get configSave myActorFile
-
-
-
param <paramName>
- returns the content of the relevant parameter for the entity.
- Note: if this command is executed on a channel and 'model' is
- requested the content hosting device's 'model' will be returned.
-
-
reg <addr> <list> <peerID>
- returns the value of a register. The data is taken from the storage in FHEM and not
- read directly outof the device.
- If register content is not present please use getConfig, getReg in advance.
-
- <addr> address in hex of the register. Registername can be used alternaly
- if decoded by FHEM. "all" will return all decoded register for this entity in one list.
- <list> list from which the register is taken. If rgistername is used list
- is ignored and can be set to 0.
- <peerID> identifies the registerbank in case of list3 and list4. It an be set to dummy if not used.
-
-
regVal <addr> <list> <peerID>
- returns the value of a register. It does the same as reg but strips off units
-
-
regList
- returns a list of register that are decoded by FHEM for this device.
- Note that there could be more register implemented for a device.
-
-
-
saveConfig <file>
- stores peers and register to the file.
- Stored will be the data as available in fhem. It is necessary to read the information from the device prior to the save.
- The command supports device-level action. I.e. if executed on a device also all related channel entities will be stored implicitely.
- Storage to the file will be cumulative.
- If an entity is stored multiple times to the same file data will be appended.
- User can identify time of storage in the file if necessary.
- Content of the file can be used to restore device configuration.
- It will restore all peers and all register to the entity.
- Constrains/Restrictions:
- prior to rewrite data to an entity it is necessary to pair the device with FHEM.
- restore will not delete any peered channels, it will just add peer channels.
-
aesCommReq
- if set HMLAN/USB is forced to request AES signature before sending ACK to the device.
- This funktion strictly works with HMLAN/USB - it doesn't work for CUL type IOs.
-
-
actCycle
- actCycle <[hhh:mm]|off>
- Supports 'alive' or better 'not alive' detection for devices. [hhh:mm] is the maximum silent time for the device.
- Upon no message received in this period an event will be raised "<device> is dead".
- If the device sends again another notification is posted "<device> is alive".
- This actiondetect will be autocreated for each device with build in cyclic status report.
- Controlling entity is a pseudo device "ActionDetector" with HMId "000000".
- Due to performance considerations the report latency is set to 600sec (10min).
- It can be controlled by the attribute "actCycle" of "ActionDetector".
- Once entered to the supervision the HM device has 2 attributes:
-
- actStatus: activity status of the device
- actCycle: detection period [hhh:mm]
-
- The overall function can be viewed checking out the "ActionDetector" entity. The status of all entities is present in the READING section.
- Note: This function can be enabled for devices with non-cyclic messages as well. It is up to the user to enter a reasonable cycletime.
-
-
autoReadReg
- '0' autoReadReg will be ignored.
- '1' will execute a getConfig for the device automatically after each reboot of FHEM.
- '2' like '1' plus execute after power_on.
- '3' includes '2' plus updates on writes to the device
- '4' includes '3' plus tries to request status if it seems to be missing
- '5' checks reglist and peerlist. If reading seems incomplete getConfig will be scheduled
- '8_stateOnly' will only update status information but not configuration
- data like register and peer
- Execution will be delayed in order to prevent congestion at startup. Therefore the update
- of the readings and the display will be delayed depending on the size of the database.
- Recommendations and constrains upon usage:
-
- use this attribute on the device or channel 01. Do not use it separate on each channel
- of a multi-channel device to avoid duplicate execution
- usage on devices which only react to 'config' mode is not recommended since executen will
- not start until config is triggered by the user
- usage on devices which support wakeup-mode is usefull. But consider that execution is delayed
- until the device "wakes up".
-
-
-
burstAccess
- can be set for the device entity if the model allowes conditionalBurst.
- The attribut will switch off burst operations (0_off) which causes less message load
- on HMLAN and therefore reduces the chance of HMLAN overload.
- Setting it on (1_auto) allowes shorter reaction time of the device. User does not
- need to wait for the device to wake up.
- Note that also the register burstRx needs to be set in the device.
-
expert
- This attribut controls the visibility of the readings. This attibute controlls
- the presentation of device parameter in the readings.
- 3 level can be choosen:
-
- 0_off: standart level. Display commonly used parameter
- 1_on: enhanced level. Display all decoded device parameter
- 2_full: display all parameter plus raw register information as well.
-
- If expert is applied a device it is used for assotiated channels.
- It can be overruled if expert attibute is also applied to the channel device.
- Make sure to check out attribut showInternalValues in the global values as well.
- extert takes benefit of the implementation.
- Nevertheless - by definition - showInternalValues overrules expert.
-
-
levelRange
- can be used with dimmer only. It defines the dimmable range to be used with this dimmer-channel.
- It is meant to support e.g. LED light that starts at 10% and reaches maxbrightness at 40%.
- levelrange will normalize the level to this range. I.e. set to 100% will physically set the
- dimmer to 40%, 1% will set to 10% physically. 0% still switches physially off.
- Impacted are commands on, up, down, toggle and pct. Not effected is the off command
- which still set physically 0%.
- To be considered:
- dimmer level set by peers and buttons is not impacted. Those are controlled by device register
- Readings level may go to negative or above 100%. This simply results from the calculation and reflects
- physical level is above or below the given range.
- In case of virtual dimmer channels available present the attribut needs to be set for
- each channel
- User should be careful to set min level other then '0'
- Example:
-
model,
- subType
- These attributes are set automatically after a successful pairing.
- They are not supposed to be set by hand, and are necessary in order to
- correctly interpret device messages or to be able to send them.
-
msgRepeat
- defines number of repetitions if a device doesn't answer in time.
- Devices which donly support config mode no repeat ist allowed.
- For devices with wakeup mode the device will wait for next wakeup. Lonng delay might be
- considered in this case.
- Repeat for burst devices will impact HMLAN transmission capacity.
rawToReadable
- Used to convert raw KFM100 values to readable data, based on measured
- values. E.g. fill slowly your container, while monitoring the
- values reported with inform. You'll see:
-
- Apply these values with: "attr KFM100 rawToReadable 10:0 50:20 79:40 270:100".
- fhem will do a linear interpolation for values between the bounderies.
-
-
rssiLog
- can be given to devices, denied for channels. If switched '1' each RSSI entry will be
- written to a reading. User may use this to log and generate a graph of RSSI level.
- Due to amount of readings and events it is NOT RECOMMENDED to switch it on by default.
-
-
unit
- set the reported unit by the KFM100 if rawToReadable is active. E.g.
- attr KFM100 unit Liter
-
HM-Sen-RD-O
- offAtPon heat channel only: force heating off after powerOn
- onAtRain heat channel only: force heating on while status changes to 'rain' and off when it changes to 'dry'
-
-
virtuals
- noOnOff virtual entity will not toggle state when trigger is received. If this parameter is
- not given the entity will toggle its state between On and Off with each trigger
- msgReduce:<No> if channel is used for it skips every No message
- in order to reduce transmit load. Numbers from 0 (no skip) up to 9 can be given.
- VD will lose connection with more then 5 skips
-
-
blind
- levelInverse while HM considers 100% as open and 0% as closed this may not be
- intuitive to all user. Ny default 100% is open and will be dislayed as 'on'. Setting this param the display will be inverted - 0% will be open and 100% is closed.
- NOTE: This will apply to readings and set commands. It does not apply to any register.
-
-
-
- Generated events:
-
-
general
- recentStateType:[ack|info] # cannot be used ti trigger notifies
-
ack indicates that some statusinfo is derived from an acknowledge
-
info indicates an autonomous message from the device
-
sabotageAttackId
- Alarming configuration access to the device from a unknown source
-
sabotageAttack
- Alarming configuration access to the device that was not issued by our system
-
-
HM-CC-TC,ROTO_ZEL-STG-RM-FWT
- T: $t H: $h
- battery:[low|ok]
- measured-temp $t
- humidity $h
- actuator $vp %
- desired-temp $dTemp
- desired-temp-manu $dTemp #temperature if switchen to manual mode
- desired-temp-cent $dTemp #temperature if switchen to central mode
- windowopen-temp-%d %.1f (sensor:%s)
- tempList$wd hh:mm $t hh:mm $t ...
- displayMode temp-[hum|only]
- displayTemp [setpoint|actual]
- displayTempUnit [fahrenheit|celsius]
- controlMode [manual|auto|central|party]
- tempValveMode [Auto|Closed|Open|unknown]
- param-change offset=$o1, value=$v1
- ValveErrorPosition_for_$dname $vep %
- ValveOffset_for_$dname : $of %
- ValveErrorPosition $vep %
- ValveOffset $of %
- time-request
- trig_<src> <value> #channel was triggered by <src> channel.
- This event relies on complete reading of channels configuration, otherwise Data can be
- incomplete or incorrect.
- trigLast <channel> #last receiced trigger
-
HM-OU-LED16
- color $value # hex - for device only
- $value # hex - for device only
- color [off|red|green|orange] # for channel
- [off|red|green|orange] # for channel
-
switch/dimmer/blindActuator
- $val
- powerOn [on|off|$val]
- [unknown|motor|dim] [up|down|stop]:$val
- timedOn [running|off] # on is temporary - e.g. started with on-for-timer
-
-
sensRain
- $val
- powerOn
- level
- timedOn [running|off] # on is temporary - e.g. started with on-for-timer
- trigger [Long|Short]_$no trigger event from channel
-
-
smokeDetector
- [off|smoke-Alarm|alive] # for team leader
- [off|smoke-forward|smoke-alarm] # for team members
- [normal|added|addedStrong] #HM-CC-SCD
- SDteam [add|remove]_$dname
- battery [low|ok]
- smoke_detect [none|<src>]
- teamCall:from $src
-
-
threeStateSensor
- [open|tilted|closed]
- [wet|damp|dry] #HM-SEC-WDS only
- cover [open|closed] #HM-SEC-WDS and HM-Sec-RHS
- alive yes
- battery [low|ok]
- contact [open|tilted|closed]
- contact [wet|damp|dry] #HM-SEC-WDS only
- sabotageError [on|off] #HM-SEC-SC only
-
aesCommToDev
- gives information about success or fail of AES communication between IO-device and HM-Device
-
-
-
-
-
-
CUL_HOERMANN
-
- The CUL_HOERMANN module registers the 868MHz Hoermann Garage-Door-Opener
- signals received by the CUL. Note: As the structure of this signal is
- not understood, no checksum is verified, so it is likely to receive bogus
- messages.
-
-
- The CUL_IR module interprets Infrared messages received by the CUN/CUNO/CUNOv2/TuxRadio.
- Those devices can receive Infrared Signals from basically any Remote controller and will transform
- that information in a so called Button-Code
-
-
-
- Define
-
- define <name> CUL_IR <IODev>
-
- <IODev> is the devicename of the IR-receivung device, e.g. CUNO1.
-
- Your definition should look like E.g.:
-
- define IR-Dev CUL_IR CUNO1
-
-
-
- Set
-
-
-
irLearnForSec
- Sets the CUL_IR device in an IR-Code Learning mode for the given seconds. Any received IR-Code will
- be stored as a Button attribute for this devices. The name of these attributes is dependent on the two
- attributes learncount and learnprefix.
- Attention: Before learning IR-Codes the CUL_IR device needs to be set in IR-Receiving mode
- by modifying the irReceive attribute.
-
-
-
irSend
- Sends out IR-commands via the connected IODev. The IR-command can be specified as buttonname according
- to Button.* or as IR-Code directly. If a buttonname is specified, the
- corresponding IR-Code will be sent out.
- Example:
-
set IR-Dev irSend ButtonA001
- If defining an IR-Code directly the following Code-Syntax needs to be followed:
-
IRCode: <PP><AAAA><CCCC><FF>
- with P = Protocol; A = Address; C = Command; F = Flags
- With the Flags you can modify IR-Repetition. Flags between 00-0E will produce
- 0-15 IR-Repetitions.
- You can type the IR-Code as plain as above, or with a heading "I" as learnt for the buttons.
- Example:
- set IR-Dev irSend 0A07070F0F02
- set IR-Dev irSend I0A07070F0F00
-
-
irReceive
- Configure the IR Transceiver of the <IODev> (the CUNO1). Available
- arguments are:
-
-
OFF
- Switching off the reception of IR signals. This is the default.
-
-
ON
- Switching on the reception of IR signals. This is WITHOUT filtering repetitions. This is
- not recommended as many remote controls do repeat their signals.
-
-
ON_NR
- Switching on the reception of IR signals with filtering of repetitions. This is
- the recommended modus operandi.
-
-
-
-
Button.*
- Button.* is the wildcard for all learnt IR-Codes. IR-Codes are learnt as Button-Attributes.
- The name for a learnt Button - IR-Code is compiled out of three elements:
-
- Button<learnprefix><learncount>
-
- When the CUL_IR device is set into learning mode it will generate a
- new button-attribute for each new IR-Code received.This is done according to the following syntax:
-
- <Button-Attribute-Name> <IR-Code>
- Examples of learnt button-attributes with EMPTY <learnprefix> and <learncount> starting from 1:
-
- To make sure that something happens when this IR-code is received later on one has to modify the attribute
- and to add commands as attribute values.
- Examples:
-
- Button001 I02029A000000 set WZ_Lamp on
- Button002 I02029A000001 set Switch on
Group.*
- Group.* is the wildcard for IR-Code groups. With these attributes one can define
- IR-Code parts, which may match to several Button-IR-Codes.
- This is done by defining group-attributes that contain only parts of the IR-Code.
- The syntax is:
-
- <Group-Attribute-Name> <IR-Code>
- Examples of a group-attribute is:
-
- Group001 I02029A
- With this all IR-Codes starting with I02029A will match the Group001.
-
-
learncount
- learncount is used to store the next button-code-number that needs to be learned.
- By manually modifying this attribute new button sequences can be arranged.
-
-
learnprefix
- learnprefix is a string which will be added to the button-attribute-name.
- A button-attribute-name is constructed by:
-
- Button<learnprefix><learncount>
- If learnprefix is empty the button-attribute-name only contains the term
- "Button" and the actual number of learncount.
-
-
-
-
-
-
-
-
CUL_MAX
-
- The CUL_MAX module interprets MAX! messages received by the CUL. It will be automatically created by autocreate, just make sure
- that you set the right rfmode like attr CUL0 rfmode MAX.
-
-
-
- Define
-
- define <name> CUL_MAX <addr>
-
-
- Defines an CUL_MAX device of type <type> and rf address <addr>. The rf address
- must not be in use by any other MAX device.
-
-
-
-
- Set
-
-
pairmode
- Sets the CUL_MAX into pairing mode for 60 seconds where it can be paired with
- other devices (Thermostats, Buttons, etc.). You also have to set the other device
- into pairing mode manually. (For Thermostats, this is pressing the "Boost" button
- for 3 seconds, for example).
-
fakeSC <device> <open>
- Sends a fake ShutterContactState message <open> must be 0 or 1 for
- "window closed" or "window opened". If the <device> has a non-zero groupId,
- the fake ShutterContactState message affects all devices with that groupId.
- Make sure you associate the target device(s) with fakeShutterContact beforehand.
-
fakeWT <device> <desiredTemperature> <measuredTemperature>
- Sends a fake WallThermostatControl message (parameters both may have one digit
- after the decimal point, for desiredTemperature it may only by 0 or 5).
- If the <device> has a non-zero groupId, the fake WallThermostatControl
- message affects all devices with that groupId. Make sure you associate the target
- device with fakeWallThermostat beforehand.
- 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 ui0100". 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 ui0201". 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 seen on
- the image. 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:
-
- set MyCUL raw ui0100
- # Now replace the base CUL with the RFR CUL
- set MyCUL raw ui0201
- # Reattach the base CUL to the PC and attach the RFR CUL to a
- USB power supply
- define MyRFR CUL_RFR 02 01
-
- The rest of the attributes is the same as for the CUL.
-
-
-
-
-
CUL_TX
-
- The CUL_TX module interprets TX2/TX3 type of messages received by the CUL,
- see also http://www.f6fbb.org/domo/sensors/tx3_th.php.
- This protocol is used by the La Crosse TX3-TH thermo/hygro sensor and other
- wireless themperature sensors. Please report the manufacturer/model of other
- working devices.
-
-
- Define
-
- define <name> CUL_TX <code> [corr] [minsecs]
-
-
- <code> is the code of the autogenerated address of the TX device (0
- to 127)
- corr is a correction factor, which will be added to the value received from
- the device.
- minsecs are the minimum seconds between two log entries or notifications
- from this device. E.g. if set to 300, logs of the same type will occure
- with a minimum rate of one per 5 minutes even if the device sends a message
- every minute. (Reduces the log file size and reduces the time to display
- the plots)
-
- The CUL_WS module interprets S300 type of messages received by the CUL.
-
-
-
- Define
-
- define <name> CUL_WS <code> [corr1...corr4]
-
- <code> is the code which must be set on the S300 device. Valid values
- are 1 through 8.
- corr1..corr4 are up to 4 numerical correction factors, which will be added
- to the respective value to calibrate the device. Note: rain-values will be
- multiplied and not added to the correction factor.
-
- CULflash <CUL-Name> <CUL-Version>
-
- Download the CUL firmware from a nightly SVN chekout and flash the
- hardware. Currently only the CUL is supported with its versions:
- CUL_V2, CUL_V2_HM, CUL_V3, CUL_V4.
- Note: dfu-programmer has to be installed in the path, this is
- already the case with the Fritz!Box 7390 image from fhem.de
-
- If the CUL is not yet flashed, then specify "none" as CUL-Name.
- Example:
-
- CULflash CUL CUL_V3
- CULflash none CUL_V3
-
- Note: the message "dfu-programmer: failed to release interface 0." is
- normal on the FB7390.
-
-
- A calendar device periodically gathers calendar events from the source calendar at the given URL or from a file.
- The file must be in ICal format.
-
- If the URL
- starts with https://, the perl module IO::Socket::SSL must be installed
- (use cpan -i IO::Socket::SSL).
-
- Note for users of Google Calendar: You can literally use the private ICal URL from your Google Calendar.
-
- If your Google Calendar
- URL starts with https:// and the perl module IO::Socket::SSL is not installed on your system, you can
- replace it by http:// if and only if there is no redirection to the https:// URL.
- Check with your browser first if unsure.
-
- The optional parameter interval is the time between subsequent updates
- in seconds. It defaults to 3600 (1 hour).
-
- Forces the retrieval of the calendar from the URL. The next automatic retrieval is scheduled to occur
- interval seconds later.
-
-
-
-
-
- Get
-
- get <name> full|text|summary|location|alarm|start|end <reading>|<uid> [max]
-
- Returns, line by line, the full state or a textual representation or the summary (subject, title) or the
- location or the alarm time or the start time or the end time
- of the calendar event(s) listed in the
- reading <reading> or identified by the UID <uid>. The optional parameter max limits
- the number of returned lines.
-
- get <name> find <regexp>
-
- Returns, line by line, the UIDs of all calendar events whose summary matches the regular expression
- <regexp>.
-
- A calendar is a set of calendar events. A calendar event has a summary (usually the title shown in a visual
- representation of the source calendar), a start time, an end time, and zero, one or more alarm times. The calendar events are
- fetched from the source calendar at the given URL. In case of multiple alarm times for a calendar event, only the
- earliest alarm time is kept. Recurring calendar events are currently not supported.
-
- A calendar event is identified by its UID. The UID is taken from the source calendar. All non-alphanumerical characters
- are stripped off the UID to make your life easier.
-
- A calendar event can be in one of the following states:
-
-
new
The calendar event was first seen at the most recent update. Either this was your first retrieval of
- the calendar or you newly added the calendar event to the source calendar.
-
known
The calendar event was already there before the most recent update.
-
updated
The calendar event was already there before the most recent update but it has changed since it
- was last retrieved.
-
deleted
The calendar event was there before the most recent update but is no longer. You removed it from the source calendar. The calendar event will be removed from all lists at the next update.
-
- Calendar events that lie completely in the past (current time on wall clock is later than the calendar event's end time)
- are not retrieved and are thus not accessible through the calendar.
-
-
- A calendar event can be in one of the following modes:
-
-
upcoming
Neither the alarm time nor the start time of the calendar event is reached.
-
alarm
The alarm time has passed but the start time of the calendar event is not yet reached.
-
start
The start time has passed but the end time of the calendar event is not yet reached.
-
end
The end time of the calendar event has passed.
-
- A calendar event transitions from one mode to another immediately when the time for the change has come. This is done by waiting
- for the earliest future time among all alarm, start or end times of all calendar events.
-
-
- A calendar device has several readings. Except for calname, each reading is a semicolon-separated list of UIDs of
- calendar events that satisfy certain conditions:
-
-
calname
name of the calendar
-
all
all events
-
modeAlarm
events in alarm mode
-
modeAlarmOrStart
events in alarm or start mode
-
modeAlarmed
events that have just transitioned from upcoming to alarm mode
-
modeChanged
events that have just changed their mode somehow
-
modeEnd
events in end mode
-
modeEnded
events that have just transitioned from start to end mode
-
modeStart
events in start mode
-
modeStarted
events that have just transitioned to start mode
-
modeUpcoming
events in upcoming mode
-
stateChanged
events that have just changed their state somehow
-
stateDeleted
events in state deleted
-
stateNew
events in state new
-
stateUpdated
events in state updated
-
-
-
-
- When a calendar event has changed, an event is created in the form
- changed: UID mode with mode being the current mode the calendar event is in after the change.
-
-
-
- Usage scenarios
-
- Show all calendar events with details
-
-
- get MyCalendar full all
- 2767324dsfretfvds7dsfn3e4dsa234r234sdfds6bh874googlecom known alarm 31.05.2012 17:00:00 07.06.2012 16:30:00-07.06.2012 18:00:00 Erna for coffee
- 992hydf4y44awer5466lhfdsrgl7tin6b6mckf8glmhui4googlecom known upcoming 08.06.2012 00:00:00-09.06.2012 00:00:00 Vacation
-
-
-
- Show calendar events in your photo frame
-
- Put a line in the layout description to show calendar events in alarm or start mode:
- text 20 60 { fhem("get MyCalendar text modeAlarmOrStart") }
- Think about a calendar with calendar events whose summaries (subjects, titles) are the names of devices in your fhem installation.
- You want the respective devices to switch on when the calendar event starts and to switch off when the calendar event ends.
-
- define LogActors notify MyCalendar:mode(Started|Ended).* { my $reading= "%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get MyCalendar summary $uid");; Log 3 %NAME, 1, "Actor: $actor, Reading $reading" }
-
-
-
-
-
-
-
-
-
-
-
-
Dashboard
-
- Creates a Dashboard in any group can be arranged. The positioning may depend the Groups and column width are made
- arbitrarily by drag'n drop. Also, the width and height of a Group can be increased beyond the minimum size.
-
-
-
- Define
-
dashboard_tabcount
- Returns the number of displayed tabs.
- Default: 1
-
-
-
dashboard_activetab
- Specifies which tab is activated. Can be set manually, but is also set by the switch "Set" to the currently active tab.
- Default: 1
-
-
-
dashboard_tab1name
- Title of Tab 1.
- Default: Dashboard-Tab 1
-
-
-
dashboard_tab2name
- Title of Tab 2.
- Default: Dashboard-Tab 2
-
-
-
dashboard_tab3name
- Title of Tab 3.
- Default: Dashboard-Tab 3
-
-
-
dashboard_tab4name
- Title of Tab 4.
- Default: Dashboard-Tab 4
-
-
-
dashboard_tab5name
- Title of Tab 5.
- Default: Dashboard-Tab 5
-
-
-
dashboard_tab6name
- Title of Tab 6.
- Default: Dashboard-Tab 6
-
-
-
dashboard_tab7name
- Title of Tab 7.
- Default: Dashboard-Tab 7
-
-
-
dashboard_webfrontendfilter
- If this attribute not set, or value is * the dashboard is displayed on all configured FHEMWEB instances.
- Set the Name of an FHEMWEB instance (eg WEB) to the Dashboard appears only in this.
- There may be several valid instances are separated by comma eg WEB,WEBtablet.
- This makes it possible to define an additional dashboard that only Show on Tablet (which of course an own instance FHEMWEB use).
- Default: *
-
- It should NEVER two ore more activ dashboards in a FHEMWEB instance!
-
-
-
dashboard_tab1sorting
- Contains the position of each group in Tab 1. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_tab2sorting
- Contains the position of each group in Tab 2. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_tab3sorting
- Contains the position of each group in Tab 3. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_tab4sorting
- Contains the position of each group in Tab 4. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_tab5sorting
- Contains the position of each group in Tab 5. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_tab6sorting
- Contains the position of each group in Tab 6. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_tab7sorting
- Contains the position of each group in Tab 7. Value is written by the "Set" button. It is not recommended to take manual changes.
-
-
-
dashboard_row
- To select which rows are displayed. top only; center only; bottom only; top and center; center and bottom; top,center and bottom.
- Default: center
-
-
-
dashboard_width
- To determine the Dashboardwidth. The value can be specified, or an absolute width value (eg 1200) in pixels in% (eg 80%).
- Default: 100%
-
-
-
dashboard_rowcenterheight
- Height of the center row in which the groups may be positioned.
- Default: 400
-
-
-
dashboard_rowcentercolwidth
- About this attribute, the width of each column of the middle Dashboardrow can be set. It can be stored for each column a separate value.
- The values ​​must be separated by a comma (no spaces). Each value determines the column width in%! The first value specifies the width of the first column,
- the second value of the width of the second column, etc. Is the sum of the width greater than 100 it is reduced.
- If more columns defined as widths the missing widths are determined by the difference to 100. However, are less columns are defined as the values ​​of
- ignores the excess values​​.
- Default: 100
-
-
-
dashboard_rowtopheight
- Height of the top row in which the groups may be positioned.
- Default: 250
-
-
-
"dashboard_rowbottomheight
- Height of the bottom row in which the groups may be positioned.
- Default: 250
-
-
-
dashboard_tab1groups
- Comma-separated list of the names of the groups to be displayed in Tab 1.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
2
- Comma-separated list of the names of the groups to be displayed in Tab 2.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab3groups
- Comma-separated list of the names of the groups to be displayed in Tab 3.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab4groups
- Comma-separated list of the names of the groups to be displayed in Tab 4.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab5groups
- Comma-separated list of the names of the groups to be displayed in Tab 5.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab6groups
- Comma-separated list of the names of the groups to be displayed in Tab 6.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab7groups
- Comma-separated list of the names of the groups to be displayed in Tab 7.
- Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"
- Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab1icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_tab2icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_tab3icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_tab4icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_tab5icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_tab6icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_tab7icon
- Set the icon for a Tab. There must exist an icon with the name ico.png in the modpath directory. If the image is referencing an SVG icon, then you can use the @colorname suffix to color the image.
-
-
-
dashboard_lockstate
- When set to "unlock" you can edit the Dashboard. When set to "lock" no change can be made.
- If the bar is hidden dashboard_lockstate is "lock". Editing is possible only with activated switch panel.
- Default: unlock
-
-
-
dashboard_colcount
- Number of columns in which the groups can be displayed. Nevertheless, it is possible to have multiple groups
- to be positioned in a column next to each other. This is dependent on the width of columns and groups.
- Default: 1
-
-
-
dashboard_showfullsize
- Hide FHEMWEB Roomliste (complete left side) and Page Header if Value is 1.
- Default: 0
-
-
-
dashboard_showtabs
- Displays the Tabs on top or bottom, or hides them. This also applies to the Buttonbar. If the Buttonbar is hidden dashboard_lockstate the "lock" is used.
- Default: tabs-and-buttonbar-at-the-top
-
-
-
dashboard_showhelper
- Displays frames in order to facilitate the positioning of the groups.
- Default: 1
-
-
-
dashboard_showtooglebuttons
- Displays a Toogle Button on each Group do collapse.
- Default: 1
-
-
-
dashboard_debug
- Show Hiddenfields. Only for Maintainer's use.
- Default: 0
-
-
-
-
-
-
DbLog
-
-
-
-
- Define
-
- define <name> DbLog <configfilename> <regexp>
-
-
- Log events to a database. The database connection is defined in
- <configfilename> (see sample configuration file
- contrib/dblog/db.conf). The configuration is stored in a separate file
- to avoid storing the password in the main configuration file and to have it
- visible in the output of the list command.
-
-
- The modules DBI and DBD::<dbtype>
- need to be installed (use cpan -i <module>
- if your distribution does not have it).
-
- Sample code to create a MySQL/PostgreSQL database is in
- <DBType>_create.sql.
- The database contains two tables: current and
- history. The latter contains all events whereas the former only
- contains the last event for any given reading and device.
- The columns have the following meaning:
-
-
TIMESTAMP: timestamp of event, e.g. 2007-12-30 21:45:22
-
DEVICE: device name, e.g. Wetterstation
-
TYPE: device type, e.g. KS300
-
EVENT: event specification as full string,
- e.g. humidity: 71 (%)
-
READING: name of reading extracted from event,
- e.g. humidity
-
-
VALUE: actual reading extracted from event,
- e.g. 71
-
UNIT: unit extracted from event, e.g. %
-
- The content of VALUE is optimized for automated post-processing, e.g.
- yes is translated to 1
-
- The current values can be retrieved by the following code like FileLog:
-
- get myDbLog - - 2012-11-10 2012-11-10 KS300:temperature::
-
Perform a database disconnect and immediate reconnect to clear cache and flush journal file.
-
- set <name> count
-
Count records in tables current and history and write results into readings countCurrent and countHistory.
-
- set <name> deleteOldDays <n>
-
Delete records from history older than <n> days. Number of deleted record will be written into reading lastRowsDeleted.
-
- set <name> userCommand <validSqlStatement>
-
DO NOT USE THIS COMMAND UNLESS YOU REALLY (REALLY!) KNOW WHAT YOU ARE DOING!!!
- Perform any (!!!) sql statement on connected database. Useercommand and result will be written into corresponding readings.
-
-
-
-
-
- Get
-
- get <name> ReadingsVal <device> <reading> <default>
- get <name> ReadingsTimestamp <device> <reading> <default>
-
- Retrieve one single value, use and syntax are similar to ReadingsVal() and ReadingsTimestamp() functions.
-
-
-
-
- get <name> <infile> <outfile> <from>
- <to> <column_spec>
-
- Read data from the Database, used by frontends to plot data without direct
- access to the Database.
-
-
-
<in>
- A dummy parameter for FileLog compatibility. Sessing by defaultto -
-
-
current: reading actual readings from table "current"
-
history: reading history readings from table "history"
-
-: identical to "history"
-
-
-
<out>
- A dummy parameter for FileLog compatibility. Setting by default to -
- to check the output for plot-computing.
- Set it to the special keyword
- all to get all columns from Database.
-
-
ALL: get all colums from table, including a header
-
Array: get the columns as array of hashes
-
INT: internally used by generating plots
-
-: default
-
-
-
<from> / <to>
- Used to select the data. Please use the following timeformat or
- an initial substring of it:
-
YYYY-MM-DD_HH24:MI:SS
-
<column_spec>
- For each column_spec return a set of data separated by
- a comment line on the current connection.
- Syntax: <device>:<reading>:<default>:<fn>:<regexp>
-
-
<device>
- The name of the device. Case sensitive. Using a the joker "%" is supported.
-
<reading>
- The reading of the given device to select. Case sensitive. Using a the joker "%" is supported.
-
-
<default>
- no implemented yet
-
-
<fn>
- One of the following:
-
-
int
- Extract the integer at the beginning of the string. Used e.g.
- for constructs like 10%
-
int<digit>
- Extract the decimal digits including negative character and
- decimal point at the beginning og the string. Used e.g.
- for constructs like 15.7°C
-
delta-h / delta-d
- Return the delta of the values for a given hour or a given day.
- Used if the column contains a counter, as is the case for the
- KS300 rain column.
-
delta-ts
- Replaced the original value with a measured value of seconds since
- the last and the actual logentry.
-
-
-
<regexp>
- The string is evaluated as a perl expression. The regexp is executed
- before <fn> parameter.
- Note: The string/perl expression cannot contain spaces,
- as the part after the space will be considered as the
- next column_spec.
- Keywords
-
$val is the current value returned from the Database.
-
$ts is the current timestamp returned from the Database.
-
This Logentry will not print out if $val contains th keyword "hide".
-
This Logentry will not print out and not used in the following processing
- if $val contains th keyword "ignore".
-
-
-
-
- Examples:
-
-
get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature
-
get myDbLog current ALL - - %:temperature
- you will get all actual readings "temperature" from all logged devices.
- Be carful by using "history" as inputfile because a long execution time will be expected!
-
get myDbLog - - 2012-11-10_10 2012-11-10_20 KS300:temperature::int1
- like from 10am until 08pm at 10.11.2012
-
get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature
-
get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d
-
get myDbLog - - 2012-11-10 2012-11-20 MyFS20:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg
- return 1 for all occurance of on* (on|on-for-timer etc) and 0 for all off*
-
get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg
- Example of OWAD: value like this: "A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"
- and output for port B is like this: 2012-11-20_10:23:54 66.647
-
get DbLog - - 2013-05-26 2013-05-28 Pumpe:data::delta-ts:$val=~s/on/hide/
- Setting up a "Counter of Uptime". The function delta-ts gets the seconds between the last and the
- actual logentry. The keyword "hide" will hide the logentry of "on" because this time
- is a "counter of Downtime"
- Query the Database to retrieve JSON-Formatted Data, which is used by the charting frontend.
-
-
-
-
<name>
- The name of the defined DbLog, like it is given in fhem.cfg.
-
<in>
- A dummy parameter for FileLog compatibility. Always set to -
-
<out>
- A dummy parameter for FileLog compatibility. Set it to webchart
- to use the charting related get function.
-
-
<from> / <to>
- Used to select the data. Please use the following timeformat:
-
YYYY-MM-DD_HH24:MI:SS
-
<device>
- A string which represents the device to query.
-
<querytype>
- A string which represents the method the query should use. Actually supported values are:
- getreadings to retrieve the possible readings for a given device
- getdevices to retrieve all available devices
- timerange to retrieve charting data, which requires a given xaxis, yaxis, device, to and from
- savechart to save a chart configuration in the database. Requires a given xaxis, yaxis, device, to and from, and a 'savename' used to save the chart
- deletechart to delete a saved chart. Requires a given id which was set on save of the chart
- getcharts to get a list of all saved charts.
- getTableData to get jsonformatted data from the database. Uses paging Parameters like start and limit.
- hourstats to get statistics for a given value (yaxis) for an hour.
- daystats to get statistics for a given value (yaxis) for a day.
- weekstats to get statistics for a given value (yaxis) for a week.
- monthstats to get statistics for a given value (yaxis) for a month.
- yearstats to get statistics for a given value (yaxis) for a year.
-
-
<xaxis>
- A string which represents the xaxis
-
<yaxis>
- A string which represents the yaxis
-
<savename>
- A string which represents the name a chart will be saved with
-
<chartconfig>
- A jsonstring which represents the chart to save
-
<pagingstart>
- An integer used to determine the start for the sql used for query 'getTableData'
-
<paginglimit>
- An integer used to set the limit for the sql used for query 'getTableData'
-
-
- Examples:
-
-
get logdb - webchart "" "" "" getcharts
- Retrieves all saved charts from the Database
-
get logdb - webchart "" "" "" getdevices
- Retrieves all available devices from the Database
-
get logdb - webchart "" "" ESA2000_LED_011e getreadings
- Retrieves all available Readings for a given device from the Database
-
get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e timerange TIMESTAMP day_kwh
- Retrieves charting data, which requires a given xaxis, yaxis, device, to and from
- Will ouput a JSON like this: [{'TIMESTAMP':'2013-02-11 00:10:10','VALUE':'0.22431388090756'},{'TIMESTAMP'.....}]
-
get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e savechart TIMESTAMP day_kwh tageskwh
- Will save a chart in the database with the given name and the chart configuration parameters
-
get logdb - webchart "" "" "" deletechart "" "" 7
- Will delete a chart from the database with the given id
-
-
-
-
- Attributes
-
shutdownWait
-
attr <device> shutdownWait
- causes fhem shutdown to wait n seconds for pending database commit
-
-
-
DbLogExclude
-
-
-
- set <device> DbLogExclude regex:MinInterval [regex:MinInterval] ...
-
-
- A new Attribute DbLogExclude will be propagated
- to all Devices if DBLog is used. DbLogExclude will work as regexp to exclude
- defined readings to log. Each individual regexp-group are separated by comma.
- If a MinInterval is set, the logentry is dropped if the
- defined interval is not reached and value vs. lastvalue is eqal .
-
- Example
-
- Any physical device with request/response-like communication capabilities
- over a TCP connection can be defined as ECMD device. A practical example
- of such a device is the AVR microcontroller board AVR-NET-IO from
- Pollin with
- ECMD-enabled
- Ethersex firmware.
-
- A physical ECMD device can host any number of logical ECMD devices. Logical
- devices are defined as ECMDDevices in fhem.
- ADC 0 to 3 and I/O port 0 to 3 of the above mentioned board
- are examples of such logical devices. ADC 0 to 3 all belong to the same
- device class ADC (analog/digital converter). I/O port 0 to 3 belong to the device
- class I/O port. By means of extension boards you can make your physical
- device drive as many logical devices as you can imagine, e.g. IR receivers,
- LC displays, RF receivers/transmitters, 1-wire devices, etc.
-
- Defining one fhem module for any device class would create an unmanageable
- number of modules. Thus, an abstraction layer is used. You create a device class
- on the fly and assign it to a logical ECMD device. The
- class definition
- names the parameters of the logical device, e.g. a placeholder for the number
- of the ADC or port, as well as the get and set capabilities. Worked examples
- are to be found in the documentation of the ECMDDevice device.
-
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module
- if the module is connected via serial Port or USB.
-
-
-
- Define
-
- define <name> ECMD telnet <IPAddress:Port>
- or
- define <name> ECMD serial <SerialDevice>[<@BaudRate>]
-
-
- Defines a physical ECMD device. The keywords telnet or
- serial are fixed.
-
- Examples:
-
- define AVRNETIO ECMD telnet 192.168.0.91:2701
- define AVRNETIO ECMD serial /dev/ttyS0
- define AVRNETIO ECMD serial /sev/ttyUSB0@38400
-
-
-
-
-
- Set
-
- set <name> classdef <classname> <filename>
-
- Creates a new device class <classname> for logical devices.
- The class definition is in the file <filename>. You must
- create the device class before you create a logical device that adheres to
- that definition.
-
- Closes and reopens the device. Could be handy if connection is lost and cannot be
- reestablished automatically.
-
-
-
-
-
- Get
-
- get <name> raw <command>
-
- Sends the command <command> to the physical ECMD device
- <name> and reads the response.
-
-
-
-
- Attributes
-
-
-
classdefs A colon-separated list of <classname>=<filename>.
- The list is automatically updated if a class definition is added. You can
- directly set the attribute.
-
nonl A newline (\n) is automatically appended to every command string sent to the device
- unless this attribute is set. Please note that newlines (\n) in a command string are interpreted
- as separators to split the command string into several commands and are never literally sent.
-
-
-
-
-
- Class definition
-
-
-
- The class definition for a logical ECMD device class is contained in a text file.
- The text file is made up of single lines. Empty lines and text beginning with #
- (hash) are ignored. Therefore make sure not to use hashes in commands.
-
- The following commands are recognized in the device class definition:
- set <commandname> postproc { <perl command> }
- get <commandname> postproc { <perl command> }
-
- Declares a postprocessor for the command <commandname>.
-
-
-
-
-
- set <commandname> params <parameter1> [<parameter2> [<parameter3> ... ]]
- get <commandname> params <parameter1> [<parameter2> [<parameter3> ... ]]
-
- Declares the names of the named parameters that must be present in the
- set or get command <commandname>. Be careful not to use a parameter name that
- is already used in the device definition (see params above).
-
-
-
-
-
- The perl specials in the definitions of the set and get commands can
- contain macros. Apart from the rules outlined in the documentation of perl specials in fhem, the following
- rules apply:
-
-
The character @ will be replaced with the device
- name. To use @ in the text itself, use the double mode (@@).
-
-
The macro %NAME will expand to the device name (same
- as @).
-
-
The macro %<parameter> will expand to the
- current value of the named parameter. This can be either a parameter
- from the device definition or a parameter from the set or get
- command.
-
-
The macro substitution occurs before perl evaluates the
- expression. It is a plain text substitution.
-
-
If in doubt what happens, run the commands with loglevel 5 and
- observe the log file.
-
-
-
- The rules outlined in the documentation of perl specials
- for the <perl command> in the postprocessor definitions apply.
- Note: Beware of undesired side effects from e.g. doubling of semicolons!
-
- The perl command acts on $_. The result of the perl command is the
- final result of the get or set command.
-
- set <name> <commandname> [<parameter1> [<parameter2> [<parameter3> ... ]]]
-
- The number of given parameters must match those given for the set command <commandname> definition in
- the class definition.
- If set <commandname> is invoked the perl special in curly brackets from the command definition
- is evaluated and the result is sent to the physical ECMD device.
-
- Example:
-
- set myRelais1 on
- set myDisplay text This\x20text\x20has\x20blanks!
-
-
-
-
-
-
- Get
-
- get <name> <commandname> [<parameter1> [<parameter2> [<parameter3> ... ]]]
-
- The number of given parameters must match those given for the get command <commandname> definition in
- the class definition.
- If get <commandname> is invoked the perl special in curly brackets from the command definition
- is evaluated and the result is sent to the physical ECMD device. The response from the physical ECMD device is returned
- and the state of the logical ECMD device is updated accordingly.
-
- The following example shows how to access the ADC of the AVR-NET-IO board from
- Pollin with
- ECMD-enabled
- Ethersex firmware.
-
- The class definition file /etc/fhem/ADC.classdef looks as follows:
-
- get value cmd {"adc get %channel"}
- get value params channel
-
-
- In the fhem configuration file or on the fhem command line we do the following:
-
- define AVRNETIO ECMD telnet 192.168.0.91:2701 # define the physical device
- set AVRNETIO classdef ADC /etc/fhem/ADC.classdef # define the device class ADC
- define myADC ECDMDevice ADC # define the logical device myADC with device class ADC
- get myADC value 1 # retrieve the value of analog/digital converter number 1
-
-
- The get command is evaluated as follows: get value has one named parameter
- channel. In the example the literal 1 is given and thus %channel
- is replaced by 1 to yield "adc get 1" after macro substitution. Perl
- evaluates this to a literal string which is send as a plain ethersex command to the AVR-NET-IO. The
- board returns something like 024 for the current value of analog/digital converter number 1.
-
-
-
-
-
- Example 2
-
-
- The following example shows how to switch a relais driven by pin 3 (bit mask 0x08) of I/O port 2 on for
- one second and then off again.
-
- The class definition file /etc/fhem/relais.classdef looks as follows:
-
- params pinmask
- set on cmd {"io set ddr 2 ff\nioset port 2 0%pinmask\nwait 1000\nio set port 2 00"}
- set on postproc {s/^OK\nOK\nOK\nOK$/success/; "$_" eq "success" ? "ok" : "error"; }
-
-
- In the fhem configuration file or on the fhem command line we do the following:
-
- define AVRNETIO ECMD telnet 192.168.0.91:2701 # define the physical device
- set AVRNETIO classdef relais /etc/fhem/relais.classdef # define the device class relais
- define myRelais ECMDDevice 8 # define the logical device myRelais with pin mask 8
- set myRelais on # execute the "on" command
-
-
- The set command is evaluated as follows: %pinmask
- is replaced by 8 to yield
- "io set ddr 2 ff\nioset port 2 08\nwait 1000\nio set port 2 00" after macro substitution. Perl
- evaluates this to a literal string. This string is split into lines (without trailing newline characters)
-
-
-
io set ddr 2 ff
-
ioset port 2 08
-
wait 1000
-
io set port 2 00
-
-
- These lines are sent as a plain ethersex commands to the AVR-NET-IO one by one. Each line is terminated with
- a newline character unless the nonl attribute of the ECMDDevice is set. After
- each line the answer from the ECMDDevice is read back. They are concatenated with newlines and returned
- for further processing, e.g. by the postproc command.
- For any of the four plain ethersex commands, the AVR-NET-IO returns the string OK. They are
- concatenated and separated by line breaks (\n). The postprocessor takes the result from $_,
- substitutes it by the string success if it is OK\nOK\nOK\nOK, and then either
- returns the string ok or the string error.
-
-
-
-
-
-
-
-
-
-
-
EGPM Socket
-
-
- Defines a Socket from EGPM2LAN Module. If the global Module AUTOCREATE is enabled,
- this device will be created automatically. For manual Setup, pls. see the description of EGPM2LAN.
-
-
-
- Define
-
- define <name> EGPM <device> <socket-nr>
-
-
-
-
-
- Set
-
set <name> <[on|off|toggle]>
- Switches the socket on or of.
-
-
set <name> <[on-for-timer|off-for-timer|on-till|off-till|blink|intervals]>
- Switches the socket for a specified time+duration or n-times. For Details see set extensions
-
- define <name> EGPM2LAN <IP-Address> [<Password>]
-
- Creates a Gembird ® Energenie EG-PM2-LAN device to switch up to 4 sockets over the network.
- If you have more than one device, it is helpful to connect and set names for your sockets over the web-interface first.
- The name settings will be adopted to FHEM and helps you to identify the sockets. Please make sure that you´re logged off from the Energenie web-interface otherwise you can´t control it with FHEM at the same time.
- EG-PMS2-LAN with surge protector feature was not tested until now.
-
-
- Set
-
- set <name> <[on|off|toggle]> <socketnr.>
- Switch the socket on or off.
-
- set <name> <[on|off]> <all>
- Switch all available sockets on or off.
-
- set <name> <staterequest>
- Update the device information and the state of all sockets.
- If autocreate is enabled, an EGPM device will be created for each socket.
-
- set <name> <clearreadings>
- Removes all readings from the list to get rid of old socketnames.
-
-
-
- Get
N/A
-
-
- Attributes
-
-
stateDisplay
- Default: socketNumer changes between socketNumer and socketName in front of the current state. Call set statusrequest to update all states.
-
autocreate
- Default: onEGPM-devices will be created automatically with a set-command.
- Change this attribute to value off to avoid that mechanism.
-
- define mainswitch EGPM2LAN 10.192.192.20 SecretGarden
- set mainswitch on 1
-
-
-
-
-
EIB / KNX
-
- EIB/KNX is a standard for building automation / home automation.
- It is mainly based on a twisted pair wiring, but also other mediums (ip, wireless) are specified.
-
- While the module TUL represents the connection to the EIB network,
- the EIB modules represent individual EIB devices. This module provides a basic set of operations (on, off, on-till, etc.)
- to switch on/off EIB devices. Sophisticated setups can be achieved by combining a number of
- EIB module instances or by sending raw hex values to the network (set raw ).
-
- EIB/KNX defines a series of Datapoint Type as standard data types used
- to allow general interpretation of values of devices manufactured by diferent companies.
- This datatypes are used to interpret the status of a device, so the state in FHEM will then
- show the correct value.
-
-
-
- Define an EIB device, connected via a TUL. The
- <group> parameters are either a group name notation (0-15/0-15/0-255) or the hex representation of the value (0-f0-f0-ff).
- The <main group> is used for sending of commands to the EIB network.
- The state of the instance will be updated when a new state is received from the network for any of the given groups.
- This is usefull for example for toggle switches where a on command is send to one group and the real state (on or off) is
- responded back on a second group.
-
- For actors and sensors the
- autocreate module may help.
-
- Example:
-
- set <name> <value> [<time> g<groupnr>]
- where value one of:
-
on switch on device
-
off switch off device
-
on-for-timer switch on the device for the given time. After the specified seconds a switch off command is sent.
-
on-till
-
raw sends the given value as raw data to the device.
-
value transforms the value according to the chosen model and send the result to the device.
-
- Example:
-
- set lamp1 on
- set lamp1 off
- set lamp1 on-for-timer 10
- set lamp1 on-till 13:15:00
- set lamp1 raw 234578
- set lamp1 value 23.44
-
-
- When as last argument a g<groupnr> is present, the command will be sent
- to the EIB group indexed by the groupnr (starting by 1, in the order as given in Define).
- Example:
-
- define lamp1 EIB 0/10/01 0/10/02
- set lamp1 on g2 (will send "on" to 0/10/02)
-
-
- A dimmer can be used with a slider as shown in following example:
-
- define dim1 EIB 0/0/5
- attr dim1 model percent
- attr dim1 webCmd value
-
-
- The current date and time can be sent to the bus by the following settings:
-
-
- define timedev EIB 0/0/7
- attr timedev model dpt10
- attr timedev eventMap /value now:now/
- attr timedev webCmd now
-
- define datedev EIB 0/0/8
- attr datedev model dpt11
- attr datedev eventMap /value now:now/
- attr datedev webCmd now
-
- # send every midnight the new date
- define dateset at *00:00:00 set datedev value now
-
- # send every hour the current time
- define timeset at +*01:00:00 set timedev value now
-
model
- set the model according to the datapoint types defined by the (EIB / KNX specifications).
- The device state in FHEM is interpreted and shown according to the specification.
-
-
dpt5
-
dpt5.003
-
angle
-
percent
-
dpt5.004
-
percent255
-
dpt7
-
length-mm
-
current-mA
-
brightness
-
timeperiod-ms
-
timeperiod-min
-
timeperiod-h
-
dpt9
-
tempsensor
-
lightsensor
-
speedsensor
-
speedsensor-km/h
-
pressuresensor
-
rainsensor
-
time1sensor
-
time2sensor
-
humiditysensor
-
airqualitysensor
-
voltage-mV
-
current-mA2
-
current-mA2
-
power
-
powerdensity
-
dpt10
-
time
-
dpt11
-
date
-
dpt12
-
dpt14
-
-
-
-
-
-
-
-
-
EM
-
-
- Define
-
- define <name> EM <em1010pc-device>
-
-
- Define a EM1010PC USB device. As the EM1010PC was not designed to be used
- with a PC attached to it all the time, it won't transmit received signals
- automatically, fhem has to poll it every 5 minutes.
-
- Currently there is no way to read the internal log of the EM1010PC with
- fhem, use the program em1010.pl in the contrib directory for this
- purpose.
-
- Examples:
-
- define em EM /dev/elv_em1010pc
-
-
-
-
-
- Set
-
- set EM <value>
-
- where value is either time or reset.
- If time has arguments of the form YYYY-MM-DD HH:MM:SS, then the specified
- time will be set, else the time from the host.
- Note: after reset you should set the time.
-
-
- Define up to 4 EM1000EM attached to the EM1010PC. The device number must
- be between 5 and 8.
- Defining an EMEM will schedule an internal task, which reads the
- status of the device every 5 minutes, and triggers notify/filelog commands.
- Note: Currently this device does not support a "set" function.
-
-
- Example:
-
- define emem EMEM 5
-
-
-
-
- Set
N/A
-
-
-
- Get
-
- get EMEM status
-
- This is the same command which is scheduled every 5 minutes internally.
-
-
- Define up to 4 EM1000GZ attached to the EM1010PC. The device number must
- be between 9 and 12.
- Defining an EMGZ will schedule an internal task, which reads the
- status of the device every 5 minutes, and triggers notify/filelog commands.
-
-
- Example:
-
- define emgz EMGZ 9
-
-
-
-
- Set
-
- set EMGZdevice <param> <value>
- where param is:
-
-
price
- The price of one KW in EURO (use e.g. 0.20 for 20 Cents). It is used
- only on the EM1010PC display, it is of no interest for FHEM.
-
-
-
-
-
- Get
-
- get EMGZ status
-
- This is the same command which is scheduled every 5 minutes internally.
-
-
- Define up to 4 EM1000WZ attached to the EM1010PC. The device number must
- be between 1 and 4. Defining an EMWZ will schedule an internal task, which
- reads the status of the device every 5 minutes, and triggers notify/filelog
- commands.
-
- Example:
-
- define emwz EMWZ 1
-
-
-
-
-
- Set
-
- set EMWZdevice <param> <value>
- where param is one of:
-
-
rperkw
- Number of rotations for a KiloWatt of the EM1000WZ device (actually
- of the device where the EM1000WZ is attached to). Without setting
- this correctly, all other readings will be incorrect.
-
alarm
- Alarm in WATT. if you forget to set it, the default value is
- rediculously low (random), and if a value above this threshold is
- received, the EM1010PC will start beeping once every minute. It can
- be very annoying.
-
price
- The price of one KW in EURO (use e.g. 0.20 for 20 Cents). It is used
- only on the EM1010PC display, it is of no interest for FHEM.
-
-
-
-
-
-
- Get
-
- get EMWZ status
-
- This is the same command which is scheduled every 5 minutes internally.
-
- Module to access the ENECSYS gateway (http://www.ENECSYS.com/products/gateway/).
-
- The actual micro-inverter devices are defined as ENECSYSINV devices.
-
-
- All newly found inverter devices are autocreated and added to the room ENECSYSINV.
-
-
-
-
- Define
-
- define <name> ENECSYSGW [<host>] [<interval>]
-
-
- Defines an ENECSYSGW device with address <host>.
-
- The gateway will be polled every <interval> seconds. The default is 10 and minimum is 5.
-
- Examples:
-
- define gateway ENECSYSGW 10.0.1.1
-
-
-
-
-
-
ENECSYSINV
-
-
-
- Define
-
- define <name> ENECSYSINV <id> [<interval>]
-
-
- Defines an micro-inverter device connected to an ENECSYSGW.
-
- Examples:
-
- define SolarPanel1 ENECSYSINV 100123456
-
-
-
-
- Readings
-
-
acfrequency
- the alternating current frequency reported from the device. Should be around 50 Hz in Europe.
-
acpower
- the alternating current power
-
acvolt
- the alternating current voltage
-
dccurrent
- the direct current
-
dcpower
- the direct current power
-
dcvolt
- the direct current voltage
-
efficiency
- the efficiency of the inverter
-
lifetime
- the sum of collected energy of the inverter
-
temperature
- the temperature of the inverter
-
state
- the current state (equal to dcpower)
-
-
-
-
-
-
-
-
-
- ENIGMA2
-
-
- Define
-
- define <name> ENIGMA2 <ip-address-or-hostname> [<port>] [<poll-interval>] [<http-user>] [<http-password>]
-
- This module controls ENIGMA2 based devices like Dreambox or VUplus via network connection.
-
- Defining an ENIGMA2 device will schedule an internal task (interval can be set with optional parameter <poll-interval> in seconds, if not set, the value is 45 seconds), which periodically reads the status of the device and triggers notify/filelog commands.
-
- Example:
-
- define SATReceiver ENIGMA2 192.168.0.10
-
- # With custom port
- define SATReceiver ENIGMA2 192.168.0.10 8080
-
- # With custom interval of 20 seconds
- define SATReceiver ENIGMA2 192.168.0.10 80 20
-
- # With HTTP user credentials
- define SATReceiver ENIGMA2 192.168.0.10 80 20 root secret
-
-
-
- Set
-
- set <name> <command> [<parameter>]
-
- Currently, the following commands are defined.
-
-
- on - powers on the device and send a WoL magic package if needed
-
-
- off - turns the device in standby mode
-
-
- toggle - switch between on and off
-
-
- shutdown - turns the device in deepstandby mode
-
-
- reboot - reboots the device
-
-
- restartGui - restarts the GUI / ENIGMA2 process
-
-
- channel channel,0...999,sRef - zap to specific channel or service reference
-
-
- channelUp - zap to next channel
-
-
- channelDown - zap to previous channel
-
-
- volume 0...100 - set the volume level in percentage
-
-
- volumeUp - increases the volume level
-
-
- volumeDown - decreases the volume level
-
-
- mute on,off,toggle - controls volume mute
-
-
- play on,off - starts/resumes playback
-
-
- pause on,off - pauses current playback or enables timeshift
-
-
- stop on,off - stops current playback
-
-
- input tv,radio - switches between tv and radio mode
-
-
- statusRequest - requests the current status of the device
-
-
- remoteControl UP,DOWN,... - sends remote control commands; see remoteControl help
-
-
- showText text - sends info message to screen to be displayed for 8 seconds
-
-
- msg yesno,info... - allows more complex messages as showText, see commands as listed below
-
-
-
-
-
- Messaging
-
-
- showText has predefined settings. If you would like to send more individual messages to your TV screen, the function msg can be used. For this application the following commands are available:
-
- Type Selection:
-
- bouquet-tv - service reference address where the favorite television bouquet can be found (initially set automatically during define)
-
-
- bouquet-radio - service reference address where the favorite radio bouquet can be found (initially set automatically during define)
-
-
- disable - Disable polling (true/false)
-
-
- http-method - HTTP access method to be used; e.g. a FritzBox might need to use POST instead of GET (GET/POST)
-
-
- https - Access box via secure HTTP (true/false)
-
-
- timeout - Set different polling timeout in seconds (default=6)
-
-
-
-
-
- Generated Readings/Events:
-
-
-
- acg - Shows Automatic Gain Control value in percent; reflects overall signal quality strength
-
-
- apid - Shows the audio process ID for current channel
-
-
- ber - Shows Bit Error Rate for current channel
-
-
- channel - Shows the service name of current channel or media file name; part of FHEM-4-AV-Devices compatibility
-
-
- currentMedia - The service reference ID of current channel; part of FHEM-4-AV-Devices compatibility
-
-
- currentTitle - Shows the title of the running event; part of FHEM-4-AV-Devices compatibility
-
-
- enigmaversion - Shows the installed version of ENIGMA2
-
-
- eventcurrenttime - Shows the current time of running event as UNIX timestamp
-
-
- eventcurrenttime_hr - Shows the current time of running event in human-readable format
-
-
- eventcurrenttime_next - Shows the current time of next event as UNIX timestamp
-
-
- eventcurrenttime_next_hr - Shows the current time of next event in human-readable format
-
-
- eventdescription - Shows the description of running event
-
-
- eventdescription_next - Shows the description of next event
-
-
- evenduration - Shows the total duration time of running event in seconds
-
-
- evenduration_hr - Shows the total duration time of running event in human-readable format
-
-
- evenduration_next - Shows the total duration time of next event in seconds
-
-
- evenduration_next_hr - Shows the total duration time of next event in human-readable format
-
-
- eventname - Shows the name of running event
-
-
- eventname_next - Shows the name of next event
-
-
- eventremaining - Shows the remaining duration time of running event in seconds
-
-
- eventremaining_hr - Shows the remaining duration time of running event in human-readable format
-
-
- eventremaining_next - Shows the remaining duration time of next event in seconds
-
-
- eventremaining_next_hr - Shows the remaining duration time of next event in human-readable format
-
-
- eventstart - Shows the starting time of running event as UNIX timestamp
-
-
- eventstart_hr - Shows the starting time of running event in human readable format
-
-
- eventstart_next - Shows the starting time of next event as UNIX timestamp
-
-
- eventstart_next_hr - Shows the starting time of next event in human readable format
-
-
- eventtitle - Shows the title of the running event
-
-
- eventtitle_next - Shows the title of the next event
-
-
- fpversion - Shows the firmware version for the front processor
-
-
- hddX_capacity - Shows the total capacity of the installed hard drive in GB
-
-
- hddX_free - Shows the free capacity of the installed hard drive in GB
-
-
- hddX_model - Shows hardware details for the installed hard drive
-
-
- imageversion - Shows the version for the installed software image
-
-
- input - Shows currently used input; part of FHEM-4-AV-Devices compatibility
-
-
- iswidescreen - Indicates widescreen format - 0=off 1=on
-
-
- lanmac - Shows the device MAC address
-
-
- model - Shows details about the device hardware
-
-
- mute - Reports the mute status of the device (can be "on" or "off")
-
-
- nextTitle - Shows the title of the next event; part of FHEM-4-AV-Devices compatibility
-
-
- onid - The ON ID
-
-
- pcrpid - The PCR process ID
-
-
- pmtpid - The PMT process ID
-
-
- power - Reports the power status of the device (can be "on" or "off")
-
-
- presence - Reports the presence status of the receiver (can be "absent" or "present"). In case of an absent device, control is basically limited to turn it on again. This will only work if the device supports Wake-On-LAN packages, otherwise command "on" will have no effect.
-
-
- providername - Service provider of current channel
-
-
- recordings - Number of active recordings
-
-
- servicename - Name for current channel
-
-
- servicereference - The service reference ID of current channel
-
-
- servicevideosize - Video resolution for current channel
-
-
- sid - The S-ID
-
-
- snr - Shows Signal to Noise for current channel in percent
-
-
- snrdb - Shows Signal to Noise in dB
-
-
- state - Reports current power state and an absence of the device (can be "on", "off" or "absent")
-
-
- tsid - The TS ID
-
-
- tuner_X - Details about the used tuner hardware
-
-
- txtpid - The TXT process ID
-
-
- videoheight - Height of the video resolution for current channel
-
-
- videowidth - Width of the video resolution for current channel
-
-
- volume - Reports current volume level of the receiver in percentage values (between 0 and 100 %)
-
-
- vpid - The Video process ID
-
-
- webifversion - Type and version of the used web interface
-
-
-
-
-
-
-
ESA2000
-
- The ESA2000 module interprets ESA1000 or ESA2000 type of messages received by the CUL.
-
-
-
- Define
-
- define <name> ESA2000 <code>
- [base1 base2]
-
- <code> is the 4 digit HEX code identifying the devices.
-
- base1/2 is added to the total kwh as a base (Hoch- und Niedertarifzählerstand).
-
- EnOcean devices are sold by numerous hardware vendors (e.g. Eltako, Peha, etc),
- using the RF Protocol provided by the EnOcean Alliance. Depending on the
- function of the device an specific device profile is used, called EnOcean
- Equipment Profile (EEP). Basically three profiles will be differed, e. g.
- switches, contacts, sensors. Some manufacturers use additional proprietary
- extensions. Further technical information can be found at the
- EnOcean Alliance,
- see in particular the
- EnOcean Equipment Profiles (EEP)
-
- Fhem recognizes a number of devices automatically. In order to teach-in, for
- some devices the sending of confirmation telegrams has to be turned on.
- Some equipment types and/or device models must be manually specified.
- Do so using the attributes
- subType and model, see chapter
- Set and
- Generated events. With the help of additional
- attributes, the behavior of the devices can be
- changed separately.
-
- The teach-in procedure depends on the type of the devices. Switches (EEP RPS)
- and contacts (EEP 1BS) are recognized when receiving the first message.
- Contacts can also send a teach-in telegram. Fhem not need this telegram.
- Sensors (EEP 4BS) has to send a teach-in telegram. The profile-less
- 4BS teach-in procedure transfers no EEP profile identifier and no manufacturer
- ID. In this case Fhem does not recognize the device automatically. The proper
- device type must be set manually, use the attributes
- subType, manufID and/or
- model. If the EEP profile identifier and the manufacturer
- ID are sent the device is clearly identifiable. Fhem automatically assigns
- these devices to the correct profile. Some 4BS, VLD or MSC devices must be paired
- bidirectional, see Bidirectional Teach-In / Teach-Out.
- Fhem supports many of most common EnOcean profiles and manufacturer-specific
- devices. Additional profiles and devices can be added if required.
-
- In order to enable communication with EnOcean remote stations a
- TCM module is necessary.
-
- Please note that EnOcean repeaters also send Fhem data telegrams again.
- Use the TCM attr <name> blockSenderID own
- to block receiving telegrams with a TCM SenderIDs.
-
-
-
- Define
-
- define <name> EnOcean <def>
-
-
- Define an EnOcean device, connected via a TCM modul. The
- <def> is the SenderID/DestinationID of the device (8 digit hex number).
- The autocreate module may help you.
-
- Example:
-
- define switch1 EnOcean ffc54500
-
- In order to control devices, you cannot reuse the SenderIDs/
- DestinationID of other devices (like remotes), instead you have to create
- your own, which must be in the allowed SenderID range of the underlying Fhem
- IO device, see TCM BaseID, LastID. For this first query the
- TCM with the get <tcm> baseID command
- for the BaseID. You can use up to 127 IDs starting with the BaseID + 1 shown there.
- The BaseID is used for 4BS devices with a bidectional teach-in only. If you
- are using an Fhem SenderID outside of the allowed range, you will see an
- ERR_ID_RANGE message in the Fhem log.
- Fhem communicates unicast with the ChipID or BaseID, if the 4BS devices are teached-in with the
- Bidirectional Teach-In / Teach-Out procedure. In this case
- Fhem send telegrams with its SenderID (ChipID or BaseID) and the DestinationID of the
- device.
- Newer devices send acknowledge telegrams. In order to control this devices (switches, actors) with
- additional SenderIDs you can use the attributes subDef,
- subDef0 and subDefI.
- Set the EnOcean Transceiver module (TCM Modul) in the pairing mode.
- A device, which is then also put in this state is to paired with
- Fhem. Pearing is used for some 4BS, VLD and MSC devices,
- e. g. EEP 4BS, RORG A5-20-01 (Battery Powered Actuator).
- Bidirectional 4BS Teach-In and UTE - Universal Uni- and Bidirectional
- Teach-In are supported.
-
- name is the name of the TCM Module . t/s is the
- time for the teach-in period.
-
- where value is one of A0, AI, B0, BI, C0, CI, D0, DI,
- combinations of these and released. First and second action can be sent
- simultaneously. Separate first and second action with a comma.
- In fact we are trying to emulate a PT200 type remote.
- If you define an eventMap attribute with on/off,
- then you will be able to easily set the device from the WEB frontend.
- set extensions are supported, if the corresponding
- eventMap specifies the on and off
- mappings.
- With the help of additional attributes, the
- behavior of the devices can be adapt.
-
- Example:
-
- set switch1 BI
- set switch1 B0,CI
- attr eventMap BI:on B0:off
- set switch1 on
-
- Set attr eventMap to B0:on BI:off, attr subType to switch, attr
- webCmd to on:released and if needed attr switchMode to pushbutton manually.
- Use the sensor type "Schalter" for Eltako devices. The Staircase
- off-delay timer is switched on when pressing "on" and the time will be started
- when pressing "released". "released" immediately after "on" is sent if
- the attr switchMode is set to "pushbutton".
-
-
-
-
Single Input Contact, Door/Window Contact
- 1BS Telegram (EEP D5-00-01)
- [tested with Eltako FSR14]
-
-
closed
- issue closed command
-
open
- issue open command
-
teach
- initiate teach-in mode
-
- The attr subType must be contact. The attribute must be set manually.
-
-
-
Room Sensor and Control Unit (EEP A5-10-02)
- [Thermokon SR04 PTS]
-
- set <name> <value>
-
- where value is
-
teach
- initiate teach-in
-
setpoint [0 ... 255]
- Set the actuator to the specifed setpoint.
-
setpointScaled [<floating-point number>]
- Set the actuator to the scaled setpoint.
-
fanStage [auto|0|1|2|3]
- Set fan stage
-
switch [on|off]
- Set switch
-
- The actual temperature will be taken from the temperature reported by
- a temperature reference device temperatureRefDev
- primarily or from the attribute actualTemp if it is set.
- The scaling of the setpoint adjustment is device- and vendor-specific. Set the
- attributes scaleMax, scaleMin and
- scaleDecimals for the additional scaled setting
- setpointScaled.
- The attr subType must be roomSensorControl.05. The attribute must be set manually.
-
-
-
-
Room Sensor and Control Unit (A5-10-06 plus night reduction)
- [Eltako FVS]
-
- set <name> <value>
-
- where value is
-
teach
- initiate teach-in
-
desired-temp [t/°C [lock|unlock]]
- Set the desired temperature.
-
nightReduction [t/K [lock|unlock]]
- Set night reduction
-
setpointTemp [t/°C [lock|unlock]]
- Set the desired temperature
-
- The actual temperature will be taken from the temperature reported by
- a temperature reference device temperatureRefDev
- primarily or from the attribute actualTemp if it is set.
- This profil can be used with a further Room Sensor and Control Unit Eltako FTR55*
- to control a heating/cooling relay FHK12, FHK14 or FHK61. If Fhem and FTR55*
- is teached in, the temperature control of the FTR55* can be either blocked
- or to a setpoint deviation of +/- 3 K be limited. For this use the optional parameter
- [block] = lock|unlock, unlock is default.
- The attr subType must be roomSensorControl.05 and attr manufID must be 00D.
- The attributes must be set manually.
-
actuator setpoint/%
- Set the actuator to the specifed setpoint (0-100)
-
desired-temp <value>
- Use the builtin PI regulator, and set the desired temperature to the
- specified degree. The actual value will be taken from the temperature
- reported by the MD15 or from the attribute actualTemp if it is set.
-
runInit
- Maintenance Mode (service on): Run init sequence.
-
liftSet
- Maintenance Mode (service on): Lift set
-
valveOpen
- Maintenance Mode (service on): Valve open
- The attr subType must be hvac.01. This is done if the device was
- created by autocreate. To control the device, it must be bidirectional paired,
- see Bidirectional Teach-In / Teach-Out.
- The command is not sent until the device wakes up and sends a mesage, usually
- every 10 minutes.
-
-
-
-
Gateway (EEP A5-38-08)
- The Gateway profile include 7 different commands (Switching, Dimming,
- Setpoint Shift, Basic Setpoint, Control variable, Fan stage, Blind Central Command).
- The commands can be selected by the attribute gwCmd or command line. The attribute
- entry has priority.
-
- set <name> <value>
-
- where value is
-
<gwCmd> <cmd> [subCmd]
- initiate Gateway commands by command line
-
<cmd> [subCmd]
- initiate Gateway commands if attribute gwCmd is set.
-
- The attr subType must be gateway. Attribute gwCmd can also be set to
- switching|dimming|setpointShift|setpointBasic|controlVar|fanStage|blindCmd.
- This is done if the device was created by autocreate.
- For Eltako devices attributes must be set manually.
-
- The attr subType must be gateway and gwCmd must be switching. This is done if the device was
- created by autocreate.
- For Eltako devices attributes must be set manually. For Eltako FSA12 attribute model must be set
- to FSA12.
-
- rampTime Range: t = 1 s ... 255 s or 0 if no time specified,
- for Eltako: t = 1 = fast dimming ... 255 = slow dimming or 0 = dimming speed on the dimmer used
- The attr subType must be gateway and gwCmd must be dimming. This is done if the device was
- created by autocreate.
- For Eltako devices attributes must be set manually. Use the sensor type "PC/FVS" for Eltako devices.
-
-
-
-
Gateway (EEP A5-38-08)
- Dimming of fluorescent lamps
- [Eltako FSG70, tested with Eltako FSG70 only]
-
- The attr subType must be gateway and gwCmd must be dimming. Set attr eventMap to B0:on BI:off,
- attr subTypeSet to switch and attr switchMode to pushbutton manually.
- Use the sensor type "Richtungstaster" for Eltako devices.
-
- Shift Range: T = -12.7 K ... 12.8 K
- The attr subType must be gateway and gwCmd must be setpointShift.
- This is done if the device was created by autocreate.
-
- Setpoint Range: t = 0 °C ... 51.2 °C
- The attr subType must be gateway and gwCmd must be setpointBasic.
- This is done if the device was created by autocreate.
-
-
-
-
Gateway (EEP A5-38-08)
- Control variable
- [untested]
-
controllerState auto|override <0 ... 100>
- issue Control variable override
-
- Override Range: cvov = 0 % ... 100 %
- The attr subType must be gateway and gwCmd must be controlVar.
- This is done if the device was created by autocreate.
-
-
-
-
Gateway (EEP A5-38-08)
- Fan stage
- [untested]
-
- set <name> <value>
-
- where value is
-
teach
- initiate teach-in mode
-
stage 0 ... 3|auto
- issue Fan Stage override
-
- The attr subType must be gateway and gwCmd must be fanStage.
- This is done if the device was created by autocreate.
-
position position/% α/°
- drive blinds to position with angle value
-
stop
- issue blinds stops command
-
runtimeSet tu/s td/s
- set runtime parameter
-
angleSet ta/s
- set angle configuration
-
positionMinMax positionMin/% positionMax/%
- set min, max values for position
-
angleMinMax αo/° αs/°
- set slat angle for open and shut position
-
positionLogic normal|inverse
- set position logic
-
- Runtime Range: tu|td = 0 s ... 255 s
- Select a runtime up and a runtime down that is at least as long as the
- shading element or roller shutter needs to move from its end position to
- the other position.
- Position Range: position = 0 % ... 100 %
- Angle Time Range: ta = 0 s ... 25.5 s
- Runtime value for the sunblind reversion time. Select the time to revolve
- the sunblind from one slat angle end position to the other end position.
- Slat Angle: α|αo|αs = -180 ° ... 180 °
- Position Logic, normal: Blinds fully opens corresponds to Position = 0 %
- Position Logic, inverse: Blinds fully opens corresponds to Position = 100 %
- The attr subType must be gateway and gwCmd must be blindCmd. The profile
- is linked with controller profile, see Blind Status.
-
position position/% [α/°]
- drive blinds to position with angle value
-
stop
- issue stop command
-
- Runtime Range: tu|td = 1 s ... 255 s
- Position Range: position = 0 % ... 100 %
- Slat Angle Range: α = -180 ° ... 180 °
- Angle Time Range: ta = 0 s ... 6 s
- The devive can only fully controlled if the attributes angleMax,
- angleMin, angleTime,
- shutTime and shutTimeCloses,
- are set correctly.
- Set attr subType to manufProfile, manufID to 00D and attr model to
- FSB14|FSB61|FSB70 manually.
- Use the sensor type "Szenentaster/PC" for Eltako devices.
-
-
-
-
Electronic switches and dimmers with Energy Measurement and Local Control (D2-01-00 - D2-01-11)
- [Telefunken Funktionsstecker]
-
- set <name> <value>
-
- where value is
-
on [<channel>]
- issue switch on command
-
off [<channel>]
- issue switch off command
-
dim dim/% [<channel> [<rampTime>]]
- issue dimming command
-
local dayNight day|night, day is default
- set the user interface indication
-
local defaultState on|off|last, off is default
- set the default setting of the output channels when switch on
-
local localControl enabled|disabled, disabled is default
- enable the local control of the device
-
local overCurrentShutdown off|restart, off is default
- set the behavior after a shutdown due to an overcurrent
-
local overCurrentShutdownReset not_active|trigger, not_active is default
- trigger a reset after an overcurrent
-
local rampTime<1...3> 0/s, 0.5/s ... 7/s, 7.5/s, 0 is default
- set the dimming time of timer 1 ... 3
-
local teachInDev enabled|disabled, disabled is default
- enable the taught-in devices with different EEP
-
measurement delta 0/s ... 4095/s, 0 is deflaut
- define the difference between two displayed measurements
-
measurement mode energy|power, energy is default
- define the measurand
-
measurement report query|auto, query is default
- specify the measurement method
-
measurement reset not_active|trigger, not_active is default
- resetting the measured values
-
measurement responseTimeMax 10/s ... 2550/s, 10 is default
- set the maximum time between two outputs of measured values
-
measurement responseTimeMin 0/s ... 255/s, 0 is default
- set the minimum time between two outputs of measured values
-
measurement unit Ws|Wh|KWh|W|KW, Ws is default
- specify the measurement unit
-
- [channel] = 0...29|all|input, all is default
- [rampTime] = 1..3|switch|stop, switch is default
- The attr subType must be actuator.01. This is done if the device was
- created by autocreate. To control the device, it must be bidirectional paired,
- see Bidirectional Teach-In / Teach-Out.
-
1BS|4BS|MSC|RPS|UTE|VLD data [status]
- sent data telegram
-
- [data] = <1-byte hex ... 28-byte hex>
- [status] = 0x00 ... 0xFF
- With the help of this command data messages in hexadecimal format can be sent.
- Telegram types (RORG) 1BS, 4BS, RPS, MSC, UTE and VLD are supported. For further information,
- see EnOcean Equipment Profiles (EEP).
-
-
-
-
-
- Get
-
-
Electronic switches and dimmers with Energy Measurement and Local Control (D2-01-00 - D2-01-11)
- [Telefunken Funktionsstecker]
-
- get <name> <value>
-
- where value is
-
state [<channel>]
-
-
measurement <channel> energy|power
-
-
-
- The attr subType must be actuator.01. This is done if the device was
- created by autocreate. To control the device, it must be bidirectional paired,
- see Bidirectional Teach-In / Teach-Out.
-
-
-
-
-
-
- Attributes
-
-
-
actualTemp t/°C
- The value of the actual temperature, used by a Room Sensor and Control Unit
- or when controlling HVAC components e. g. Battery Powered Actuators (MD15 devices). Should by
- filled via a notify from a distinct temperature sensor.
- If absent, the reported temperature from the HVAC components is used.
-
-
angleMax αs/°, [αs] = -180 ... 180, 90 is default.
- Slat angle end position maximum.
- angleMax is supported for shutter.
-
-
angleMin αo/°, [αo] = -180 ... 180, -90 is default.
- Slat angle end position minimum.
- angleMin is supported for shutter.
-
-
angleTime t/s, [angleTime] = 0 ... 6, 0 is default.
- Runtime value for the sunblind reversion time. Select the time to revolve
- the sunblind from one slat angle end position to the other end position.
- angleTime is supported for shutter.
-
-
comMode biDir|uniDir, [comMode] = uniDir is default.
- Communication Mode between an enabled EnOcean device and Fhem.
- Unidirectional communication means a point-to-multipoint communication
- relationship. The EnOcean device e. g. sensors does not know the unique
- Fhem SenderID.
- Bidirectional communication means a point-to-point communication
- relationship between an enabled EnOcean device and Fhem. It requires all parties
- involved to know the unique Sender ID of their partners. Bidirectional communication
- needs a teach-in / teach-out process, see Bidirectional Teach-In / Teach-Out.
-
-
devChannel 00 ... FF, [devChannel] = FF is default
- Number of the individual device channel, FF = all channels supported by the device
-
dimValueOn dim/%|last|stored,
- [dimValueOn] = 100 is default.
- Dim value for the command "on".
- The dimmer switched on with the value 1 % ... 100 % if [dimValueOn] =
- 1 ... 100.
- The dimmer switched to the last dim value received from the
- bidirectional dimmer if [dimValueOn] = last.
- The dimmer switched to the last Fhem dim value if [dimValueOn] =
- stored.
- dimValueOn is supported for dimmer.
-
-
disable 0|1
- If applied set commands will not be executed.
-
-
disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM...
- Space separated list of HH:MM tupels. If the current time is between
- the two time specifications, set commands will not be executed. Instead of
- HH:MM you can also specify HH or HH:MM:SS. To specify an interval
- spawning midnight, you have to specify two intervals, e.g.:
-
rampTime t/s or relative, [rampTime] = 1 is default.
- No ramping or for Eltako dimming speed set on the dimmer if [rampTime] = 0.
- Ramping time 1 s to 255 s or relative fast to low dimming speed if [rampTime] = 1 ... 255.
- rampTime is supported for gateway, command dimming.
-
repeatingAllowed yes|no,
- [repeatingAllowed] = yes is default.
- EnOcean Repeater in the transmission range of Fhem may forward data messages
- of the device, if the attribute is set to yes.
-
-
scaleDecimals 0 ... 9
- Decimal rounding with x digits of the scaled reading setpoint
-
-
scaleMax <floating-point number>
- Scaled maximum value of the reading setpoint
-
-
scaleMin <floating-point number>
- Scaled minimum value of the reading setpoint
-
-
securityLevel unencrypted, [securityLevel] = unencrypted is default
- Type of Encryption
-
-
switchMode switch|pushbutton,
- [sensorMode] = switch is default.
- The status "released" will be shown in the reading state if the
- attribute is set to "pushbutton".
-
shutTime t/s, [shutTime] = 1 ... 255, 255 is default.
- Use the attr shutTime to set the time delay to the position "Halt" in
- seconds. Select a delay time that is at least as long as the shading element
- or roller shutter needs to move from its end position to the other position.
- shutTime is supported for shutter.
-
-
shutTimeCloses t/s, [shutTimeCloses] = 1 ... 255,
- [shutTimeCloses] = [shutTime] is default.
- Set the attr shutTimeCloses to define the runtime used by the commands opens and closes.
- Select a runtime that is at least as long as the value set by the delay switch of the actuator.
-
- shutTimeCloses is supported for shutter.
-
-
subDef <EnOcean SenderID>,
- [subDef] = [def] is default.
- SenderID (TCM BaseID + offset) to control a bidirectional switch or actor.
- In order to control devices that send acknowledge telegrams, you cannot reuse the ID of this
- devices, instead you have to create your own, which must be in the
- allowed ID-Range of the underlying IO device. For this first query the
- TCM with the "get <tcm> idbase" command. You can use
- up to 128 IDs starting with the base shown there.
-
-
subDef0 <EnOcean SenderID>,
- [subDef0] = [def] is default.
- SenderID (TCM BaseID + offset) for [value] = A0|B0|C0|D0|released
- Used with switch type "central". Set attr switchType to central.
- Use the sensor type "zentral aus/ein" for Eltako devices.
- subDef0 is supported for switches.
- Second action is not sent.
-
-
subDefI <EnOcean SenderID>,
- [subDefI] = [def] is default.
- SenderID (TCM BaseID + offset) for [value] = AI|BI|CI|DI
- Used with switch type "central". Set attr switchType to central.
- Use the sensor type "zentral aus/ein" for Eltako devices.
- subDefI is supported for switches.
- Second action is not sent.
-
subTypeSet <type of device>, [subTypeSet] = [subType] is default.
- Type of device (EEP Profile) used for sending commands. Set the Attribute manually.
- The profile has to fit their basic profile. More information can be found in the basic profiles.
-
-
switchMode switch|pushbutton,
- [SwitchMode] = switch is default.
- The set command "released" immediately after <value> is sent if the
- attribute is set to "pushbutton".
-
-
switchType direction|universal|central,
- [SwitchType] = direction is default.
- EnOcean Devices support different types of sensors, e. g. direction
- switch, universal switch or pushbutton, central on/off.
- For Eltako devices these are the sensor types "Richtungstaster",
- "Universalschalter" or "Universaltaster", "Zentral aus/ein".
- With the sensor type direction switch on/off commands are
- accepted, e. g. B0, BI, released. Fhem can control an device with this
- sensor type unique. This is the default function and should be
- preferred.
- Some devices only support the sensor type universal switch
- or pushbutton. With a Fhem command, for example,
- B0 or BI is switched between two states. In this case Fhem cannot
- control this device unique. But if the Attribute switchType
- is set to universal Fhem synchronized with
- a bidirectional device and normal on/off commands can be used.
- If the bidirectional device response with the channel B
- confirmation telegrams also B0 and BI commands are to be sent,
- e g. channel A with A0 and AI. Also note that confirmation telegrams
- needs to be sent.
- Partly for the sensor type central two different SenderID
- are required. In this case set the Attribute switchType to
- central and define the Attributes
- subDef0 and subDefI.
-
-
temperatureRefDev
- Name of the device whose reference value is read. The reference values is
- the reading temperature.
-
Switch / Bidirectional Actor (EEP F6-02-01 ... F6-03-02)
-
-
A0
-
AI
-
B0
-
BI
-
C0
-
CI
-
D0
-
DI
-
<BtnX,BtnY> First and second action where BtnX and BtnY is
- one of the above, e.g. A0,BI or D0,CI
-
buttons: pressed|released
-
state: <BtnX> released
-
- Switches (remote controls) or actors with more than one
- (pair) keys may have multiple channels e. g. B0/BI, A0/AI with one
- SenderID or with separate addresses.
-
- Set attr subType to switch and model to FAE14|FHK14 manually. In addition
- every telegram received from a teached-in temperature sensor (e.g. FTR55H)
- is repeated as a confirmation telegram from the Heating/Cooling Relay
- FAE14, FHK14. In this case set attr subType to e. g. roomSensorControl.05
- and attr manufID to 00D.
-
Temperature Sensors with with different ranges (EEP A5-02-01 ... A5-02-30)
- [EnOcean STM 330, Eltako FTF55, Thermokon SR65 ...]
-
-
t/°C
-
temperature: t/°C (Sensor Range: t = <t min> °C ... <t max> °C)
-
state: t/°C
-
- The attr subType must be tempSensor.01 ... tempSensor.30. This is done if the device was
- created by autocreate.
-
-
-
-
Temperatur and Humidity Sensor (EEP A5-04-02)
- [Eltako FAFT60, FIFT63AP]
-
-
T: t/°C H: rH/% B: unknown|low|ok
-
battery: unknown|low|ok
-
energyStorage: unknown|empty|charged|full
-
humidity: rH/% (Sensor Range: rH = 0 % ... 100 %)
-
temperature: t/°C (Sensor Range: t = -20 °C ... 60 °C)
-
voltage: U/V
(Sensor Range: U = 0 V ... 6.6 V)
-
state: T: t/°C H: rH/% B: unknown|low|ok
-
- The attr subType must be tempHumiSensor.02 and attr
- manufID must be 00D for Eltako Devices. This is done if the device was
- created by autocreate.
-
- Eltako devices only support Brightness.
- The attr subType must be lightSensor.01 and attr manufID must be 00D
- for Eltako Devices. This is done if the device was created by
- autocreate.
-
-
-
-
Light Sensor (EEP A5-06-02)
- [untested]
-
-
E/lx
-
brightness: E/lx (Sensor Range: 0 lx ... 1020 lx
-
voltage: U/V (Sensor Range: U = 0 V ... 5.1 V)
-
state: E/lx
-
- The attr subType must be lightSensor.02. This is done if the device was
- created by autocreate.
-
-
-
-
Light Sensor (EEP A5-06-03)
- [untested]
-
-
E/lx
-
brightness: E/lx (Sensor Range: E = 0 lx ... 1000 lx, over range)
-
errorCode: 251 ... 255
-
state: E/lx
-
- The attr subType must be lightSensor.03. This is done if the device was
- created by autocreate.
-
current: I/µA (Sensor Range: I = 0 V ... 127.0 µA)
-
errorCode: 251 ... 255
-
motion: on|off
-
sensorType: ceiling|wall
-
voltage: U/V (Sensor Range: U = 0 V ... 5.0 V)
-
state: on|off
-
- The attr subType must be occupSensor.<01|02>. This is done if the device was
- created by autocreate. Current is the solar panel current. Some values are
- displayed only for certain types of devices.
-
-
-
-
Occupancy Sensor (EEP A5-07-03)
- [untested]
-
-
M: on|off E: E/lx U: U/V
-
brightness: E/lx (Sensor Range: E = 0 lx ... 1000 lx, over range)
-
errorCode: 251 ... 255
-
motion: on|off
-
voltage: U/V (Sensor Range: U = 0 V ... 5.0 V)
-
state: M: on|off E: E/lx U: U/V
-
- The attr subType must be occupSensor.03. This is done if the device was
- created by autocreate.
-
- Eltako and PEHA devices only support Brightness and Motion.
- The attr subType must be lightTempOccupSensor.<01|02|03> and attr
- manufID must be 00D for Eltako Devices. This is done if the device was
- created by autocreate.
-
-
-
-
Gas Sensor, CO Sensor (EEP A5-09-01)
- [untested]
-
-
CO: c/ppm (Sensor Range: c = 0 ppm ... 255 ppm)
-
temperature: t/°C (Sensor Range: t = 0 °C ... 255 °C)
-
state: c/ppm
-
- The attr subType must be COSensor.01. This is done if the device was
- created by autocreate.
-
-
-
-
Gas Sensor, CO Sensor (EEP A5-09-02)
- [untested]
-
-
CO: c/ppm (Sensor Range: c = 0 ppm ... 1020 ppm)
-
temperature: t/°C (Sensor Range: t = 0 °C ... 51.0 °C)
-
voltage: U/V
(Sensor Range: U = 0 V ... 5.1 V)
-
state: c/ppm
-
- The attr subType must be COSensor.02. This is done if the device was
- created by autocreate.
-
-
-
-
Gas Sensor, CO2 Sensor (EEP A5-09-04)
- [Thermokon SR04 CO2 *, Eltako FCOTF63, untested]
-
-
airQuality: high|mean|moderate|low (Air Quality Classes DIN EN 13779)
-
CO2: c/ppm (Sensor Range: c = 0 ppm ... 2550 ppm)
-
humidity: rH/% (Sensor Range: rH = 0 % ... 100 %)
-
temperature: t/°C (Sensor Range: t = 0 °C ... 51 °C)
temperature: t/°C (Sensor Range: t = 0 °C ... 40 °C)
-
state: T: t/°C SPT: t/°C NR: t/K
-
- The scaling of the setpoint adjustment is device- and vendor-specific. Set the
- attributes scaleMax, scaleMin and
- scaleDecimals for the additional scaled reading
- setpointScaled. Use attribut userReadings to
- adjust the scaling alternatively.
- The attr subType must be roomSensorControl.05 and attr
- manufID must be 00D for Eltako Devices. This is done if the device was
- created by autocreate.
-
-
-
-
Room Sensor and Control Unit (EEP A5-04-01, A5-10-10 ... A5-10-14)
- [Thermokon SR04 * rH, Thanos SR *, untested]
-
-
T: t/°C H: rH/% SP: 0 ... 255 SW: 0|1
-
humidity: rH/% (Sensor Range: rH = 0 % ... 100 %)
-
switch: 0|1
-
temperature: t/°C (Sensor Range: t = 0 °C ... 40 °C)
-
setpoint: 0 ... 255
-
setpointScaled: <floating-point number>
-
state: T: t/°C H: rH/% SP: 0 ... 255 SW: 0|1
-
- The scaling of the setpoint adjustment is device- and vendor-specific. Set the
- attributes scaleMax, scaleMin and
- scaleDecimals for the additional scaled reading
- setpointScaled. Use attribut userReadings to
- adjust the scaling alternatively.
- The attr subType must be roomSensorControl.01. This is
- done if the device was created by autocreate.
-
-
-
-
Room Sensor and Control Unit (EEP A5-10-15 ... A5-10-17)
- [untested]
-
-
T: t/°C SP: 0 ... 63 P: absent|present
-
presence: absent|present
-
temperature: t/°C (Sensor Range: t = -10 °C ... 41.2 °C)
-
setpoint: 0 ... 63
-
setpointScaled: <floating-point number>
-
state: T: t/°C SP: 0 ... 63 P: absent|present
-
- The scaling of the setpoint adjustment is device- and vendor-specific. Set the
- attributes scaleMax, scaleMin and
- scaleDecimals for the additional scaled reading
- setpointScaled. Use attribut userReadings to
- adjust the scaling alternatively.
- The attr subType must be roomSensorControl.02. This is done if the device was
- created by autocreate.
-
-
-
-
Room Sensor and Control Unit (EEP A5-10-18)
- [untested]
-
- The scaling of the setpoint adjustment is device- and vendor-specific. Set the
- attributes scaleMax, scaleMin and
- scaleDecimals for the additional scaled reading
- setpointScaled. Use attribut userReadings to
- adjust the scaling alternatively.
- The attr subType must be roomSensorControl.1F. This is done if the device was
- created by autocreate.
-
-
-
-
Lighting Controller State (EEP A5-11-01)
- [untested]
-
- The attr subType must be shutterCtrlState.01 This is done if the device was
- created by autocreate.
- The profile is linked with Blind Command Central.
- The profile Blind Command Central
- controls the devices centrally. For that the attributes subDef, subTypeSet
- and gwCmd have to be set manually.
-
-
-
-
Extended Lighting Status (EEP A5-11-04)
- [untested, experimental status]
-
- The attr subType must be autoMeterReading.01 and attr
- manufID must be 00D for Eltako Devices. This is done if the device was
- created by autocreate.
-
-
-
-
Automated meter reading (AMR), Gas, Water (EEP A5-12-02, A5-12-03)
- [untested]
-
-
Vs/l
-
flowrate: Vs/l
-
consumption<0 ... 15>: V/m3
-
currentTariff: 0 ... 15
-
state: Vs/l
-
- The attr subType must be autoMeterReading.02|autoMeterReading.02.
- This is done if the device was created by autocreate.
-
-
-
-
Environmental Applications
- Weather Station (EEP A5-13-01)
- Sun Intensity (EEP A5-13-02)
- [Eltako FWS61, untested]
-
temperature: t/°C (Sensor Range: t = -40 °C ... 80 °C)
-
windSpeed: Vs/m (Sensor Range: V = 0 m/s ... 70 m/s)
-
state:T: t/°C B: E/lx W: Vs/m IR: yes|no
-
- Brightness is the strength of the dawn light. SunEast,
- sunSouth and sunWest are the solar radiation from the respective
- compass direction. IsRaining is the rain indicator.
- The attr subType must be environmentApp and attr manufID must be 00D
- for Eltako Devices. This is done if the device was created by
- autocreate.
- The Eltako Weather Station FWS61 supports not the day/night indicator
- (dayNight).
-
-
-
-
Environmental Applications
- EEP A5-13-03 ... EEP A5-13-06 are not implemented.
-
-
-
-
Environmental Applications
- Sun Position and Radiation (EEP A5-13-10)
- [untested]
-
-
SRA: E m2/W SNA: α/° SNE: β/°
-
dayNight: day|night
-
solarRadiation: E m2/W (Sensor Range: E = 0 W/m2 ... 2000 W/m2)
executeTime: t/s (Sensor Range: t = 0.1 s ... 6553.5 s or 0 if no time specified)
-
executeType: duration|delay
-
block: lock|unlock
-
state: on|off
-
- The attr subType must be gateway and gwCmd must be switching. This is done if the device was
- created by autocreate.
- For Eltako devices attributes must be set manually. Eltako devices only send on/off.
-
dimValueLast: dim/%
- Last value received from the bidirectional dimmer.
-
dimValueStored: dim/%
- Last value saved by set <name> dim <value>.
-
rampTime: t/s (Sensor Range: t = 1 s ... 255 s or 0 if no time specified,
- for Eltako: t = 1 = fast dimming ... 255 = slow dimming or 0 = dimming speed on the dimmer used)
-
state: on|off
-
- The attr subType must be gateway, gwCmd must be dimming and attr manufID must be 00D
- for Eltako Devices. This is done if the device was created by autocreate.
- For Eltako devices attributes must be set manually. Eltako devices only send on/off and dim.
-
- The attr subType must be manufProfile and attr manufID must be 002
- for Thermokon Devices. This is done if the device was
- created by autocreate.
-
open|open_ack
- The status of the device will become "open" after the TOP endpoint is
- reached, or it has finished an "opens" or "position 0" command.
-
closed
- The status of the device will become "closed" if the BOTTOM endpoint is
- reached
-
stop
- The status of the device become "stop" if stop command is sent.
-
not_reached
- The status of the device become "not_reached" between one of the endpoints.
- The values of the reading position and anglePos are updated automatically,
- if the command position is sent or the reading state was changed
- manually to open or closed.
- Set attr subType to manufProfile, attr manufID to 00D and attr model to
- FSB14|FSB61|FSB70 manually.
-
-
-
-
Electronic switches and dimmers with Energy Measurement and Local Control (D2-01-00 - D2-01-11)
- [Telefunken Funktionsstecker]
-
-
- The attr subType must be actuator.01. This is done if the device was
- created by autocreate. To control the device, it must be bidirectional paired,
- see Bidirectional Teach-In / Teach-Out.
-
dataSent: data (Range: 1-byte hex ... 28-byte hex)
-
statusSent: status (Range: 0x00 ... 0xFF)
-
state: RORG: rorg DATA: data STATUS: status ODATA: odata
-
- With the help of this command data messages in hexadecimal format can be sent and received.
- The telegram types (RORG) 1BS and RPS are always received protocol-specific.
- For further information, see
- EnOcean Equipment Profiles (EEP).
-
- Set attr subType to raw manually.
-
-
-
-
Light and Presence Sensor
- [Omnio Ratio eagle-PM101]
-
channel1: yes|no
- Motion message in depending on the brightness threshold
-
channel2: yes|no
- Motion message
-
motion: yes|no
- Channel 2
-
state: yes|no
- Channel 2
-
- The sensor also sends switching commands (RORG F6) with the SenderID-1.
- Set attr subType to PM101 manually. Automatic teach-in is not possible,
- since no EEP and manufacturer ID are sent.
-
-
-
-
-
-
FBAHA
-
- This module connects to the AHA server (AVM Home Automation) on a FRITZ!Box.
- It serves as the "physical" counterpart to the FBDECT
- devices. Note: you have to enable the access to this feature in the FRITZ!Box
- frontend first.
-
-
- Define
-
- define <name> FBAHA <device>
-
-
- <device> is either a <host>:<port> combination, where
- <host> is normally the address of the FRITZ!Box running the AHA server
- (fritz.box or localhost), and <port> 2002, or
- UNIX:SEQPACKET:/var/tmp/me_avm_home_external.ctl, the latter only works on
- the fritz.box. With FRITZ!OS 5.50 the network port is available, on some
- Labor variants only the UNIX socket is available.
-
- Example:
-
control: on power < $v delay:$d sec do:state [on|off]
-
relaytimes: disabled
-
relaytimes: HEX
-
-
-
-
-
FB_CALLMONITOR
-
-
- The FB_CALLMONITOR module connects to a AVM FritzBox Fon and listens for telephone
- events (Receiving incoming call, Making a call)
-
- In order to use this module with fhem you must enable the CallMonitor feature via
- telephone shortcode.
-
- #96*5* - for activating #96*4* - for deactivating
-
-
-
- Just dial the shortcode for activating on one of your phones, after 3 seconds just hang up. The feature is now activated.
-
- After activating the CallMonitor-Support in your FritzBox, this module is able to
- generate an event for each call.
-
- This module work with any FritzBox Fon model.
-
-
-
- Define
-
- define <name> FB_CALLMONITOR <ip-address>[:port]
-
- port is 1012 by default.
-
-
-
-
- Set
-
-
rereadPhonebook - Reloads the FritzBox phonebook (from given file or directly if available)
-
-
-
-
- Get
-
-
search <telephone-number> - returns the name of the given number via reverse-search (internal phonebook, cache or internet research)
- Activate the reverse searching of the external number (at dial and call receiving).
- It is possible to select a specific web service, which should be used for reverse searching.
- If the attribute is set to "all", the reverse search will use the internal phonebook (if running FHEM on a FritzBox) or reverse search on all websites (execept search.ch and dasschnelle.at) until a valid answer is found on of them
- If is set to "none", then no reverse searching will be used.
- If this attribute is activated each reverse-search result is saved in an internal cache
- and will be used instead of reverse searching again the same number.
- Possible values: 0 => off , 1 => on
- Default Value is 0 (off)
- Write the internal reverse-search-cache to the given file and use it next time FHEM starts.
- So all reverse search results are persistent written to disk and will be used instantly after FHEM starts.
- This attribute can be used to specify the (full) path to a phonebook file in FritzBox format (XML structure). Using this option it is possible to use the phonebook of a FritzBox even without FHEM running on a Fritzbox.
- The phonebook file can be obtained by an export via FritzBox web UI
- Default value is /var/flash/phonebook (phonebook filepath on FritzBox)
- Use the given local area code for reverse search in case of a local call (e.g. 0228 for Bonn, Germany)
-
-
-
-
- Generated Events:
-
-
event: (call|ring|connect|disconnect) - which event in detail was triggerd
-
external_number: - The participants number which is calling (event: ring) or beeing called (event: call)
-
external_name: - The result of the reverse lookup of the external_number via internet. Is only available if reverse-search is activated. Special values are "unknown" (no search results found) and "timeout" (got timeout while search request). In case of an timeout and activated caching, the number will be searched again next time a call occurs with the same number
-
internal_number: - The internal number (fixed line, VoIP number, ...) on which the participant is calling (event: ring) or is used for calling (event: call)
-
internal_connection: - The internal connection (FON1, FON2, ISDN, DECT, ...) which is used to take the call
-
external_connection: - The external connection (fixed line, VoIP account) which is used to take the call
-
call_duration: - The call duration in seconds. Is only generated at a disconnect event. The value 0 means, the call was not taken by anybody.
-
call_id: - The call identification number to separate events of two or more different calls at the same time. This id number is equal for all events relating to one specific call.
-
missed_call $number - This event will be raised in case of a missing incoming call. If available, also the name of the calling number will be displayed.
-
-
-
-
-
-
FHEM2FHEM
-
- FHEM2FHEM is a helper module to connect separate FHEM installations.
-
-
- Define
-
- define <name> FHEM2FHEM <host>[:<portnr>][:SSL] [LOG:regexp|RAW:devicename] {portpassword}
-
-
-
- Connect to the remote FHEM on <host>. <portnr> is a telnet
- port on the remote FHEM, defaults to 7072. The optional :SSL suffix is
- needed, if the remote FHEM configured SSL for this telnet port. In this case
- the IO::Socket::SSL perl module must be installed for the local host too.
-
- Note: if the remote FHEM is on a separate host, the telnet port on the remote
- FHEM musst be specified with the global option.
-
- The next parameter specifies the connection
- type:
-
-
LOG
- Using this type you will receive all events generated by the remote FHEM,
- just like when using the inform on command, and you
- can use these events just like any local event for FileLog or notify.
- The regexp will prefilter the events distributed locally, for the syntax
- see the notify definition.
- Drawbacks: the remote devices wont be created locally, so list wont
- show them and it is not possible to manipulate them from the local
- FHEM. It is possible to create a device with the same name on both FHEM
- instances, but if both of them receive the same event (e.g. because both
- of them have a CUL attached), then all associated FileLogs/notifys will be
- triggered twice.
-
-
RAW
- By using this type the local FHEM will receive raw events from the remote
- FHEM device devicename, just like if it would be attached to the
- local FHEM.
- Drawback: only devices using the Dispatch function (CUL, FHZ, CM11,
- SISPM, RFXCOM, TCM, TRX, TUL) generate raw messages, and you must create a
- FHEM2FHEM instance for each remote device.
- devicename must exist on the local
- FHEM server too with the same name and same type as the remote device, but
- with the device-node "none", so it is only a dummy device.
- All necessary attributes (e.g. rfmode if the remote
- CUL is in HomeMatic mode) must also be set for the local device.
- Do not reuse a real local device, else duplicate filtering (see dupTimeout)
- won't work correctly.
-
-
- The last parameter specifies an optional portpassword, if the remote server
- activated portpassword.
-
- Examples:
-
- define ds1 FHEM2FHEM 192.168.178.22:7072 LOG:.*
-
- define RpiCUL CUL none 0000
- define ds2 FHEM2FHEM 192.168.178.22:7072 RAW:RpiCUL
- and on the RPi (192.168.178.22):
- rename CUL_0 RpiCUL
-
- FHEMWEB is the builtin web-frontend, it also implements a simple web
- server (optionally with Basic-Auth and HTTPS).
-
-
-
- Define
-
- define <name> FHEMWEB <tcp-portnr> [global]
-
- Enable the webfrontend on port <tcp-portnr>. If global is specified,
- then requests from all interfaces (not only localhost / 127.0.0.1) are
- serviced.
- To enable listening on IPV6 see the comments here.
-
-
-
-
-
- Set
-
-
rereadicons
- reads the names of the icons from the icon path. Use after adding or
- deleting icons.
-
-
clearSvgCache
- delete all files found in the www/SVGcache directory, which is used to
- cache SVG data, if the SVGcache attribute is set.
-
-
-
-
-
- Get
-
-
icon <logical icon>
- returns the absolute path to the logical icon. Example:
-
- get myFHEMWEB icon FS20.on
- /data/Homeautomation/fhem/FHEM/FS20.on.png
-
-
-
-
pathlist
- return FHEMWEB specific directories, where files for given types are
- located
-
-
-
-
-
- Attributes
-
-
-
webname
- Path after the http://hostname:port/ specification. Defaults to fhem,
- i.e the default http address is http://localhost:8083/fhem
-
-
-
-
refresh
- If set, a http-equiv="refresh" entry will be genererated with the given
- argument (i.e. the browser will reload the page after the given
- seconds).
-
-
-
-
plotmode
- Specifies how to generate the plots:
-
-
SVG
- The plots are created with the SVG module.
- This is the default.
-
-
gnuplot
- The plots are created with the gnuplot program. Note: this mode
- ist only available due to historic reasons.
-
-
gnuplot-scroll
- Like the gnuplot-mode, but scrolling to historical values is alos
- possible, just like with SVG.
-
-
-
-
-
plotsize
- the default size of the plot, in pixels, separated by comma:
- width,height. You can set individual sizes by setting the plotsize of
- the SVG. Default is 800,160 for desktop, and 480,160 for
- smallscreen.
-
-
-
-
nrAxis
- the number of axis for which space should be reserved on the left and
- right sides of a plot and optionaly how many axes should realy be used
- on each side, separated by comma: left,right[,useLeft,useRight]. You
- can set individual numbers by setting the nrAxis of the SVG. Default is
- 1,1.
-
-
-
-
SVGcache
- if set, cache plots which won't change any more (the end-date is prior
- to the current timestamp). The files are written to the www/SVGcache
- directory. Default is off.
- See also the clearSvgCache command for clearing the cache.
-
-
-
-
endPlotToday
- If this FHEMWEB attribute is set to 1, then week and month plots will
- end today. Else the current week (starting at Sunday) or the current
- month will be shown.
-
-
-
-
endPlotNow
- If this FHEMWEB attribute is set to 1, then day and hour plots will
- end at current time. Else the whole day, the 6 hour period starting at
- 0, 6, 12 or 18 hour or the whole hour will be shown. This attribute
- is not used if the SVG has the attribute startDate defined.
-
-
-
-
ploteditor
- Configures if the Plot editor should be shown
- in the SVG detail view.
- Can be set to always, onClick or never. Default is always.
-
-
-
-
plotfork
- If set, generate the logs in a parallel process. Note: do not use it
- on Windows and on systems with small memory foorprint.
-
-
-
-
basicAuth, basicAuthMsg
- request a username/password authentication for access. You have to set
- the basicAuth attribute to the Base64 encoded value of
- <user>:<password>, e.g.:
- # Calculate first the encoded string with the commandline program
- $ echo -n fhemuser:secret | base64
- ZmhlbXVzZXI6c2VjcmV0
- fhem.cfg:
- attr WEB basicAuth ZmhlbXVzZXI6c2VjcmV0
-
- You can of course use other means of base64 encoding, e.g. online
- Base64 encoders. If basicAuthMsg is set, it will be displayed in the
- popup window when requesting the username/password.
-
- If the argument of basicAuth is enclosed in {}, then it will be
- evaluated, and the $user and $password variable will be set to the
- values entered. If the return value is true, then the password will be
- accepted.
- Example:
-
- attr WEB basicAuth { "$user:$password" eq "admin:secret" }
-
-
-
-
-
HTTPS
- Enable HTTPS connections. This feature requires the perl module
- IO::Socket::SSL, to be installed with cpan -i IO::Socket::SSL or
- apt-get install libio-socket-ssl-perl; OSX and the FritzBox-7390
- already have this module.
-
- A local certificate has to be generated into a directory called certs,
- this directory must be in the modpath
- directory, at the same level as the FHEM directory.
-
allowedCommands
- A comma separated list of commands allowed from this FHEMWEB
- instance. If set to an empty list , (i.e. comma only)
- then this FHEMWEB instance will be read-only. If set to
- get,set, then this FHEMWEB instance will only allow
- regular usage of the frontend by clicking the icons/buttons/sliders but
- not changing any configuration.
-
-
- This attribute intended to be used together with hiddenroom/hiddengroup
-
-
- Note:allowedCommands should work as intended, but no guarantee
- can be given that there is no way to circumvent it. If a command is
- allowed it can be issued by URL manipulation also for devices that are
- hidden.
stylesheetPrefix
- prefix for the files style.css, svg_style.css and svg_defs.svg. If the
- file with the prefix is missing, the default file (without prefix) will
- be used. These files have to be placed into the FHEM directory, and can
- be selected directly from the "Select style" FHEMWEB menu entry. Example:
-
- attr WEB stylesheetPrefix dark
-
- Referenced files:
-
- Note:if the argument contains the string smallscreen or touchpad,
- then FHEMWEB will optimize the layout/access for small screen size (i.e.
- smartphones) or touchpad devices (i.e. tablets)
-
- The default configuration installs 3 FHEMWEB instances: port 8083 for
- desktop browsers, port 8084 for smallscreen, and 8085 for touchpad.
-
- If touchpad or smallscreen is specified, then WebApp support is
- activated: After viewing the site on the iPhone or iPad in Safari, you
- can add a link to the home-screen to get full-screen support. Links are
- rendered differently in this mode to avoid switching back to the "normal"
- browser.
-
-
-
-
-
iconPath
- colon separated list of directories where the icons are read from.
- The directories start in the fhem/www/images directory. The default is
- $styleSheetPrefix:default:fhemSVG:openautomation
- Set it to fhemSVG:openautomation to get only SVG images.
-
-
-
-
-
hiddenroom
- Comma separated list of rooms to "hide", i.e. not to show. Special
- values are input, detail and save, in which case the input areas, link
- to the detailed views or save button is hidden (although each aspect
- still can be addressed through URL manipulation).
- The list can also contain values from the additional "Howto/Wiki/FAQ"
- block.
-
-
-
-
-
hiddengroup
- Comma separated list of groups to "hide", i.e. not to show in any room
- of this FHEMWEB instance.
- Example: attr WEBtablet hiddengroup FileLog,dummy,at,notify
-
-
-
-
-
menuEntries
- Comma separated list of name,html-link pairs to display in the
- left-side list. Example:
- attr WEB menuEntries fhem.de,http://fhem.de,culfw.de,http://culfw.de
- attr WEB menuEntries AlarmOn,http://fhemhost:8083/fhem?cmd=set%20alarm%20on
-
-
-
-
-
longpoll
- Affects devices states in the room overview only.
- In this mode status update is refreshed more or less instantaneously,
- and state change (on/off only) is done without requesting a complete
- refresh from the server.
- Default is on.
-
-
-
-
-
longpollSVG
- Reloads an SVG weblink, if an event should modify its content. Since
- an exact determination of the affected events is too complicated, we
- need some help from the #FileLog definition in the .gplot file: the
- filter used there (second parameter) must either contain only the
- deviceName or have the form deviceName.event or deviceName.*. This is
- always the case when using the Plot
- editor. The SVG will be reloaded for any event triggered by
- this deviceName.
- Default is off.
-
-
-
-
-
-
redirectCmds
- Clear the browser URL window after issuing the command by redirecting
- the browser, as a reload for the same site might have unintended
- side-effects. Default is 1 (enabled). Disable it by setting this
- attribute to 0 if you want to study the command syntax, in order to
- communicate with FHEMWEB.
-
-
-
-
-
fwcompress
- Enable compressing the HTML data (default is 1, i.e. yes, use 0 to switch it off).
-
-
-
-
-
reverseLogs
- Display the lines from the logfile in a reversed order, newest on the
- top, so that you dont have to scroll down to look at the latest entries.
- Note: enabling this attribute will prevent FHEMWEB from streaming
- logfiles, resulting in a considerably increased memory consumption
- (about 6 times the size of the file on the disk).
-
-
-
-
-
CORS
- If set to 1, FHEMWEB will supply a "Cross origin resource sharing"
- header, see the wikipedia for details.
-
-
-
-
-
icon
- Set the icon for a device in the room overview. There is an
- icon-chooser in FHEMWEB to ease this task. Setting icons for the room
- itself is indirect: there must exist an icon with the name
- ico.png in the iconPath.
-
-
-
-
-
roomIcons
- Space separated list of room:icon pairs, to override the default
- behaviour of showing an icon, if there is one with the name of
- "icoRoomName". This is the correct way to remove the icon for the room
- Everything, or to set one for rooms with / in the name (e.g.
- Anlagen/EDV). The first part is treated as regexp, so space is
- represented by a dot. Example:
- attr WEB roomIcons Anlagen.EDV:icoEverything
-
-
-
-
-
sortRooms
- Space separated list of rooms to override the default
- sort order of the room links. Example:
- attr WEB sortRooms DG OG EG Keller
-
-
-
-
-
defaultRoom
- show the specified room if no room selected, e.g. on execution of some
- commands. If set hides the motd. Example:
- attr WEB defaultRoom Zentrale
-
-
-
-
-
sortby
- Take the value of this attribute when sorting the devices in the room
- overview instead of the alias, or if that is missing the devicename
- itself.
-
-
-
-
-
devStateIcon
- First form:
-
- Space separated list of regexp:icon-name:cmd triples, icon-name and cmd
- may be empty.
- If the state of the device matches regexp, then icon-name will be
- displayed as the status icon in the room, and (if specified) clicking
- on the icon executes cmd. If fhem cannot find icon-name, then the
- status text will be displayed.
- Example:
-
- Perl regexp enclosed in {}. If the code returns undef, then the default
- icon is used, if it retuns a string enclosed in <>, then it is
- interpreted as an html string. Else the string is interpreted as a
- devStateIcon of the first fom, see above.
- Example:
- {'<div style="width:32px;height:32px;background-color:green"></div>'}
-
-
-
-
-
-
devStateStyle
- Specify an HTML style for the given device, e.g.:
-
webCmd
- Colon separated list of commands to be shown in the room overview for a
- certain device. Has no effect on smallscreen devices, see the
- devStateIcon command for an alternative.
- Example:
-
- attr lamp webCmd on:off:on-for-timer 10
-
-
-
- The first specified command is looked up in the "set device ?" list
- (see the setList attribute for dummy devices).
- If there it contains some known modifiers (colon, followed
- by a comma separated list), then a different widget will be displayed:
-
-
if the modifier is ":noArg", then no further input field is
- displayed
-
if the modifier is ":time", then a javascript driven timepicker is
- displayed.
-
if the modifier is ":textField", an input field is displayed.
-
if the modifier is of the form
- ":slider,<min>,<step>,<max>", then a javascript
- driven slider is displayed
-
if the modifier is of the form ":multiple,val1,val2,...", then
- multiple values can be selected, the result is comma separated.
-
else a dropdown with all the modifier values is displayed
-
- If the command is state, then the value will be used as a command.
- Examples for the modifier:
-
- Note: this is an attribute for the displayed device, not for the FHEMWEB
- instance.
-
-
-
-
-
column
- Allows to display more than one column per room overview, by specifying
- the groups for the columns. Example:
-
- attr WEB column LivingRoom:FS20,notify|FHZ,notify DiningRoom:FS20|FHZ
-
- In this example in the LivingRoom the FS20 and the notify group is in
- the first column, the FHZ and the notify in the second.
- Note: some elements like SVG plots and readingsGroup can only be part of
- a column if they are part of a group.
-
-
-
-
closeConn
- If set, a TCP Connection will only serve one HTTP request. Seems to
- solve problems for certain hardware combinations like slow
- FHEM-Server, and iPad/iPhone as Web-client.
-
-
-
-
-
-
-
FHT
-
- Fhem can receive FHT radio (868.35 MHz) messages either through an FHZ or an CUL device, so this must be
- defined first.
-
-
- Define
-
- define <name> FHT <fhtaddress>
-
-
- <fhtaddress> is a four digit hex number,
- corresponding to the address of the FHT80b device.
-
-
- Examples:
-
- desired-temp
- day-temp night-temp
- report1 report2
- refreshvalues
- mode
- holiday1 holiday2 # see mode holiday_short or holiday
- manu-temp # No clue what it does.
- year month day hour minute
- time date
- lowtemp-offset # Alarm-Temp.-Differenz
- windowopen-temp
- mon-from1 mon-to1 mon-from2 mon-to2
- tue-from1 tue-to1 tue-from2 tue-to2
- wed-from1 wed-to1 wed-from2 wed-to2
- thu-from1 thu-to1 thu-from2 thu-to2
- fri-from1 fri-to1 fri-from2 fri-to2
- sat-from1 sat-to1 sat-from2 sat-to2
- sun-from1 sun-to1 sun-from2 sun-to2
-
-
- Examples:
-
- set wz desired-temp 22.5
- set fl desired-temp 20.5 day-temp 19.0 night-temp 16.0
-
-
-
- Notes:
-
-
Following events are reported (more or less regularly) by each FHT
- device: measured-temp actuator actuator1...actuator8
- warnings
- You can use these strings for notify or
- FileLog definitions.
-
-
warnings can contain following strings:
- none, Battery low,Temperature too low, Window open,
- Fault on window sensor
-
-
actuator (without a suffix) stands for all actuators.
-
actuator or actuator1..8 can take following values:
-
-
<value>%
- This is the normal case, the actuator is instructed to
- open to this value.
-
-
offset <value>%
- The actuator is running with this offset.
-
-
lime-protection
- The actuator was instructed to execute the lime-protection
- procedure.
-
-
synctime
- If you select Sond/Sync on the FHT80B, you'll see a count
- down.
-
-
test
- The actuator was instructed by the FHT80b to emit a beep.
-
-
pair
- The the FHT80b sent a "you-belong-to-me" to this actuator.
-
-
-
-
-
-
The FHT is very economical (or lazy), it accepts one message from the
- FHZ1x00 every 115+x seconds, where x depends on the fhtaddress. Don't
- be surprised if your command is only accepted 10 minutes later by the
- device. FHT commands are buffered in the FHZ1x00/CUL till they are
- sent to the FHT, see the related fhtbuf entry in the
- get section. You can send up to 8
- commands in one message at once to the FHT if you specify them all as
- arguments to the same set command, see the example above.
-
-
-
-
time sets hour and minute to local time
-
-
date sets year, month and date to local time
-
-
refreshvalues is an alias for report1 255 report2 255
-
-
All *-temp values need a temperature
- as argument, which will be rounded to 0.5 Celsius.
- Temperature values must between 5.5 and 30.5 Celsius. Value 5.5 sets
- the actuator to OFF, value 30.5 set the actuator to ON
-
-
mode is one of auto, manual, holiday or
- holiday_short.
- If the mode is holiday, then the mode switches back to either auto or
- manual at 00:00 of the day specified by the following:
-
-
holiday1 sets the end-day of the holiday
-
holiday2 sets the end-month of the holiday
-
- For holiday_short (party mode)
-
-
holiday1 sets the absolute hour to switch back from this
- mode (in 10-minute steps, max 144)
-
holiday2 sets the day of month to switch back from this mode
- (can only be today or tomorrow, since holiday1 accepts only 24
- hours).
- Example:
-
-
current date is 29 Jan, time is 18:05
-
you want to switch to party mode until tomorrow 1:00
-
set holiday1 to 6 (6 x 10min = 1hour) and holiday2 to
- 30
-
-
-
- The temperature for the holiday period is set by the desired-temperature
- parameter. Note that you cannot set holiday mode for days earlier than the
- day after tomorrow, for this you must use holiday_short.
- Note also, you cannot set parameters seperately, you must set them in one command.
- Example:
-
- set FHT1 mode holiday holiday1 24 holiday2 12 desired-temp 14
-
-
-
-
The *-from1/*-from2/*-to1/*-to2 valuetypes need a time
- spec as argument in the HH:MM format. They define the periods, where
- the day-temp is valid. The minute (MM) will be rounded to 10, and
- 24:00 means off.
-
-
To synchronize the FHT time and to "wake" muted FHTs it is adviseable
- to schedule following command:
- define fht_sync at +*3:30 set TYPE=FHT time
-
-
-
-
report1 with parameter 255 requests all settings for
- monday till sunday to be sent. The argument is a bitfield, to request
- unique values add up the following:
-
-
1: monday
-
2: tuesday
-
4: thursday
-
8: wednesday
-
16: friday
-
32: saturday
-
64: sunday
-
- measured-temp and actuator is sent along if it is considered
- appropriate
- by the FHT.
-
- Note: This command generates a lot of RF traffic, which can
- lead to further problems, especially if the reception is not clear.
-
-
-
report2 with parameter 255 requests the following
- settings to be reported: day-temp night-temp windowopen-temp
- lowtemp-offset desired-temp measured-temp mode warnings.
- The argument is (more or less) a bitfield, to request unique values
- add up the following:
-
-
1: warnings
-
2: mode
-
4: day-temp, night-temp, windowopen-temp
-
64: lowtemp-offset
-
- measured-temp and actuator is sent along if it is considered
- appropriate by the FHT.
-
-
-
lowtemp-offset needs a temperature as argument, valid
- values must be between 1.0 and 5.0 Celsius. It will trigger a
- warning if desired-temp - measured-temp >
- lowtemp-offset in a room for at least 1.5 hours after the last
- desired-temp change.
-
-
-
FHEM optionally has an internal software buffer for FHT devices.
- This buffer should prevent transmission errors. If there is no
- confirmation for a given period, FHEM resends the command. You can
- see the queued commands with list
- <fht-device>.
- See the fhtsoftbuffer,
- retrycount and
- minfhtbuffer attributes for details.
-
-
-
-
If a buffer is still in the softbuffer, it will be sent in the
- following order: desired-temp,mode,report1,report2,
- holiday1,holiday2,day-temp,night-temp, [all other commands]
-
-
-
-
-
-
-
- Get
N/A
-
-
- Attributes
-
-
dummy
- Note:It makes sense to define an FHT device even for an FHT8b,
- else you will receive "unknown FHT device, please define one" message
- for each FHT8b as the CUL is reporting the 8b valve messages. But you
- should set the dummy attribute for these devices, else the internal FHT
- buffer of the CUL will be filled with data for the 8b's which is never
- consumed. If the buffer is full, you'll get "EOB" messages from the CUL,
- and you cannot transmit any data to the 80b's
-
-
-
retrycount
- If the fhtsoftbuffer attribute is set, then
- resend commands retrycount times if after 240 seconds
- no confirmation message is received from the corresponding FHT
- device.
- Default is 1.
-
-
-
minfhtbuffer
- FHEM won't send commands to the FHZ if its fhtbuffer is below
- this value, default is 0. If this value is low, then the ordering of
- fht commands (see the note in the FHT section of set)
- has little effect, as only commands in the softbuffer can be
- prioritized. The maximum value should be 7 below the hardware maximum
- (see fhtbuf).
-
-
-
-
lazy
- If the lazy attribute is set, FHEM won't send commands to the FHT if
- the current reading and the value to be set are already identical. This
- may help avoiding conflicts with the max-1%-time-on-air rule in large
- installations. Not set per default.
-
-
-
-
tmpcorr
- Correct the temperature reported by the FHT by the value specified.
- Note: only the measured-temp value reported by FHEM (used for logging)
- will be modified.
-
ack can-xmit can-rcv ack2 start-xmit end-xmit
- (only if the CUL is configured to transmit FHT protocol data)
-
-
-
-
-
-
-
FHT8V
-
- Fhem can directly control FHT8V type valves via a CUL
- device without an intermediate FHT. This paragraph documents one of the
- building blocks, the other is the PID device.
-
-
-
-
- Define
-
- define <name> FHT8V <housecode> [IODev|FHTID]
-
-
- <housecode> is a four digit hex number,
- and must have the following relation to the housecode of the corresponding CUL
- device:
-
given the CUL housecode as AABB, then this housecode must be
- of the form CCBB, where CC is greater or equal to AA, but less then AA+8.
-
- This form is chosen so that the CUL can update all FHT8V valve states
- within 2 minutes.
-
-
- <IODev> must be specified if the last defined CUL device
- is not the one to use. Usually this is done voa the IODev attribute, but as the address checked is performed
- at the definition, we must use an exception here.
-
- As an alternative you can specify the FHTID of the assigned IODev device
- (instead of the IODev itself), this method is needed if you are using FHT8V
- through FHEM2FHEM.
-
-
- Examples:
-
- define wz FHT8V 3232
-
-
-
-
-
- Set
-
-
set <name> valve <value;>
- Set the valve to the given value (in percent, from 0 to 100).
-
-
set <name> pair
- Pair the valve with the CUL.
-
-
set <name> decalc
- Start a decalcifying cycle on the given valve
-
-
-
-
-
- Get
-
-
get <name> valve
- Read back the valve position from the CUL FHT buffer, and convert it to percent (from 0 to 100).
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module
- if the devices is connected via USB or a serial port.
-
-
-
- Define
-
- define <name> FHZ <serial-device>
-
- Specifies the serial port to communicate with the FHZ1000PC or FHZ1300PC.
- The name(s) of the serial-device(s) depends on your distribution.
-
- If the serial-device is called none, then no device will be opened, so you
- can experiment without hardware attached.
-
- The program can service multiple devices, FS20 and FHT device commands will
- be sent out through the last FHZ device defined before the definition of
- the FS20/FHT device. To change the association, use the IODev attribute.
-
-
- For GNU/Linux you may want to read our hints for
- GNU/Linux about multiple USB
- devices.
-
- Note:The firmware of the FHZ1x00 will drop commands if the airtime
- for the last hour would exceed 1% (which corresponds roughly to 163
- commands). For this purpose there is a command counter for the last hour
- (see list FHZDEVICE), which triggers with "TRANSMIT LIMIT EXCEEDED" if
- there were more than 163 commands in the last hour.
-
- If you experience problems (for verbose 4 you get a lot of "Bad CRC
- message" in the log), then try to define your device as define
- <name> FHZ <serial-device> strangetty
-
-
-
-
- Set
-
- set FHZ <variable> [<value>]
-
- where value is one of:
-
- FHTcode
- initFS20
- initHMS
- stopHMS
- initfull
- raw
- open
- reopen
- close
- time
-
- Notes:
-
-
raw is used to send out "raw" FS20/FHT messages ("setters" only - no query messages!).
- See message byte streams in FHEM/00_FHZ.pm and the doc directory for some examples.
-
In order to set the time of your FHT's, schedule this command every
- minute:
- define fhz_timer at +*00:01:00 set FHZ time
- See the verbose to prevent logging of
- this command.
-
-
FHTcode is a two digit hex number (from 00 to 63?) and sets the
- central FHT code, which is used by the FHT devices. After changing
- it, you must reprogram each FHT80b with: PROG (until Sond
- appears), then select CEnt, Prog, Select nA.
-
If the FHT ceases to work for FHT devices whereas other devices
- (e.g. HMS, KS300) continue to work, a
- set FHZ initfull
command could help. Try
- set FHZ reopen
if the FHZ
- ceases to work completely. If all else fails, shutdown fhem, unplug
- and replug the FHZ device. Problems with FHZ may also be related to
- long USB cables or insufficient power on the USB - use a powered hub
- to improve this particular part of such issues.
- See our USB page
- for detailed USB / electromag. interference troubleshooting.
-
initfull issues the initialization sequence for the FHZ
- device:
-
- get FHZ init2
- get FHZ serial
- set FHZ initHMS
- set FHZ initFS20
- set FHZ time
- set FHZ raw 04 01010100010000
-
-
reopen closes and reopens the serial device port. This
- implicitly initializes the FHZ and issues the
- initfull command sequence.
-
stopHMS probably is the inverse of initHMS
- (I don't have authoritative info on what exactly it does).
-
close closes and frees the serial device port until you open
- it again with open, e.g. useful if you need to temporarily
- unload the ftdi_sio kernel module to use the bit-bang mode.
-
-
-
-
-
-
- Get
-
- get FHZ <value>
-
- where value is one of:
-
- init1
- init2
- init3
- serial
- fhtbuf
-
- Notes:
-
-
The mentioned codes are needed for initializing the FHZ1X00
-
The answer for a command is also displayed by list FHZ
-
-
- The FHZ1x00PC has a message buffer for the FHT (see the FHT entry in
- the set section). If the buffer is full, then newly
- issued commands will be dropped, if the attribute fhtsoftbuffer is not set.
- fhtbuf returns the free memory in this buffer (in hex),
- an empty buffer in the FHZ1000 is 2c (42 bytes), in the FHZ1300 is 4a
- (74 bytes). A message occupies 3 + 2x(number of FHT commands) bytes,
- this is the second reason why sending multiple FHT commands with one
- set is a good idea. The first reason is, that
- these FHT commands are sent at once to the FHT.
-
-
-
-
-
-
- Attributes
-
-
-
do_not_notify
- Disable FileLog/notify/inform notification for a device. This affects
- the received signal, the set and trigger commands.
loglevel
- Note:Deprecated! The module maintainer is encouraged to replace it
- with verbose.
-
- Set the device loglevel to e.g. 6 if you do not wish messages from a
- given device to appear in the global logfile (FHZ/FS20/FHT). E.g. to
- set the FHT time, you should schedule "set FHZ time" every minute, but
- this in turn makes your logfile unreadable. These messages will not be
- generated if the FHZ attribute loglevel is set to 6.
- On the other hand, if you have to debug a given device, setting its
- loglevel to a smaller value than the value of the global verbose attribute,
- it will output its messages normally seen only with higher global verbose
- levels.
-
fhtsoftbuffer
- As the FHZ command buffer for FHT devices is limited (see fhtbuf),
- and commands are only sent to the FHT device every 120 seconds,
- the hardware buffer may overflow and FHT commands get lost.
- Setting this attribute implements an "unlimited" software buffer.
- Default is disabled (i.e. not set or set to 0).
-
-
-
-
-
-
-
-
FLOORPLAN
-
- Implements an additional entry "Floorplans" to your fhem menu, leading to a userinterface without fhem-menu, rooms or devicelists.
- Devices can be displayed at a defined coordinate on the screen, usually with a clickable icon allowing to switch
- the device on or off by clicking on it. A background-picture can be used - use e.g. a floorplan of your house, or any picture.
- Use floorplanstyle.css to adapt the representation.
- Step-by-step setup guides are available in
- english and
- german.
-
-
-
- Define
-
- define <name> FLOORPLAN
-
-
- Hint: Store fp_<name>.png in your image folder (www/images/default , www/pgm2 or FHEM) to use it as background picture.
- A userattr fp_<name> will be created automatically if it does not exist yet.
-
-
top = screen-position, pixels from top of screen
-
left = screen-position, pixels from left of screen
-
style =
-
-
0 icon/state only
-
1 devicename and icon/state
-
2 devicename, icon/state and commands
-
3 device-reading and optional description
-
4 S300TH-specific, displays temperature above humidity
-
5 icon/state and commands
-
6 device-reading, reading-timestamp and optional description
-
-
-
description will be displayed instead of the original devicename
-
- Examples:
-
-
-
attr lamp1 fp_Groundfloor 100,100
#display lamp1 with icon only at screenposition 100,100
-
attr lamp2 fp_Groundfloor 100,140,1,Art-Deco
#display lamp2 with description 'Art-Deco-Light' at 100,140
-
attr lamp2 fp_FirstFloor 130,100,1
#display the same device at different positions on other floorplans
-
attr myFHT fp_Groundfloor 300,20,10,Temperature
#display given Text + FHT-temperature
-
-
- Hint: no blanks between parameters
-
-
-
fp_arrange
- Activates the "arrange mode" which shows an additional menu on the screen,
- allowing to place devices easily on the screen.
- Example:
-
- attr Groundfloor fp_arrange 1
- attr Groundfloor fp_arrange detail #displays the devices with infos room, type, alias
- attr Groundfloor fp_arrange WEB #activates arrange mode for frontend-device WEB only
-
-
-
stylesheet
- Explicitely sets your personal stylesheet for the floorplan. This overrides the standard stylesheet.
- The standard stylesheet for floorplans is floorplanstyle.css. If the stylesheetPrefix is set for the corresponding FHEMWEB instance, this same
- stylesheetPrefix is also prepended to the stylesheet for floorplans.
- All stylesheets must be stored in the stylesheet subfolder of the fhem filesystem hierarchy. Store your personal
- stylesheet along with floorplanstyle.css in the same folder.
- Example:
-
fp_default
- The floorplan startscreen is skipped if this attribute is assigned to one of the floorplans in your installation.
-
- Example:
-
- attr Groundfloor fp_default 1
-
-
-
fp_noMenu
- Suppresses the menu which usually shows the links to all your floorplans.
-
- Example:
-
- attr Groundfloor fp_noMenu 1
-
-
-
commandfield
- Adds a fhem-commandfield to the floorplan screen.
-
- Example:
-
- attr Groundfloor commandfield 1
-
-
-
fp_backgroundimg
- Allows to choose a background-picture independent of the floorplan-name.
-
- Example:
-
- attr Groundfloor fp_backgroundimg foobar.png
-
-
-
fp_viewport
- Allows usage of a user-defined viewport-value for touchpad.
- Default-viewport-value is "width=768".
-
-
-
-
fp_roomIcons
- Space separated list of floorplan:icon pairs, to assign icons
- to the floorplan-menu, just like the functionality for rooms
- in FHEMWEB. Example:
- attr Grundriss fp_roomIcons Grundriss:control_building_empty Media:audio_eq
-
- connects fhem to Arduino using
- the Firmata protocol.
-
- A single FRM device can serve multiple FRM-clients.
- Clients of FRM are:
- FRM_IN for digital input
- FRM_OUT for digital out
- FRM_AD for analog input
- FRM_PWM for analog output (pulse_width_modulated)
- FRM_RGB control multichannel/RGB-LEDs by pwm
- FRM_SERVO for pwm-controled servos as being used in modelmaking
- FRM_LCD output text to LCD attached via I2C
- FRM_I2C to read data from integrated circutes attached
- to Arduino supporting the
- i2c-protocol.
- OWX to read/write sensors and actors on 1-Wire bus.
-
- Each client stands for a Pin of the Arduino configured for a specific use
- (digital/analog in/out) or an integrated circuit connected to Arduino by i2c.
-
- Note: this module is based on Device::Firmata module (perl-firmata).
- perl-firmata is included in FHEM-distributions lib-directory. You can download the latest version as a single zip file from github.
-
- Note: this module may require the Device::SerialPort or Win32::SerialPort
- module if you attach the device via USB and the OS sets strange default
- parameters for serial devices.
- <device> specifies the serial port to communicate with the Arduino.
- The name of the serial-device depends on your distribution, under
- linux the cdc_acm kernel module is responsible, and usually a
- /dev/ttyACM0 device will be created. If your distribution does not have a
- cdc_acm module, you can force usbserial to handle the Arduino by the
- following command:
- modprobe usbserial vendor=0x03eb product=0x204b
- In this case the device is most probably /dev/ttyUSB0.
-
- You can also specify a baudrate if the device name contains the @
- character, e.g.: /dev/ttyACM0@38400
-
- If the baudrate is "directio" (e.g.: /dev/ttyACM0@directio), then the
- perl module Device::SerialPort is not needed, and fhem opens the device
- with simple file io. This might work if the operating system uses sane
- defaults for the serial parameters, e.g. some Linux distributions and
- OSX.
-
- The Arduino has to run either 'StandardFirmata' or 'ConfigurableFirmata'.
- StandardFirmata supports Digital and Analog-I/O, Servo and I2C. In addition
- to that ConfigurableFirmata supports 1-Wire, Stepper-motors and allows to
- connect via ethernet in client mode.
-
- You can find StandardFirmata in the Arduino-IDE under 'Examples->Firmata->StandardFirmata
- <port> specifies the port the FRM device listens on. If global is
- specified the socket is bound to all local ip-addresses, otherwise to localhost
- only.
- The Arduino must ConfigurableFirmata. The connection is initiated by the arduino
- in client-mode. Therefor the ip-address and port of the fhem-server has to be
- configured an the arduino, so it knows where to connect to.
- As of now only a single Arduino per FRM-device configured is supported. Multiple
- Arduinos may connect to different FRM-devices configured for different ports.
- ConfigurableFirmata has to be installed manualy. See
- ConfigurableFirmata on GitHub or FHEM-Wiki
-
-
-
- If the device is called none, then no device will be opened, so you
- can experiment without hardware attached.
-
-
-
-
-
- Set
-
-
- set <name> init
- reinitializes the FRM-Client-devices configured for this Arduino
-
-
- set <name> reset
- does a complete reset of FRM by disconnecting from, reconnecting to and reinitializing the Arduino and FRM internals and all attached FRM-client-devices
-
-
-
-
-
- Attributes
-
-
i2c-config
- Configure the arduino for ic2 communication. This will enable i2c on the
- i2c_pins received by the capability-query issued during initialization of FRM.
- As of Firmata 2.3 you can set a delay-time (in microseconds) that will be inserted into i2c
- protocol when switching from write to read.
- See: Firmata Protocol details about I2C
-
- represents a pin of an Arduino running Firmata
- configured for analog input.
- The value read is stored in reading 'state'. Range is from 0 to 1023 (10 Bit)
- Requires a defined FRM-device to work.
-
-
- Define
-
- define <name> FRM_AD <pin>
- Defines the FRM_AD device. <pin> is the arduino-pin to use.
-
-
-
-
- Set
-
- N/A
-
-
- Get
-
-
reading
- returns the voltage-level read on the arduino-pin. Values range from 0 to 1023.
-
alarm-upper-threshold
- returns the current state of 'alarm-upper-threshold'. Values are 'on' and 'off' (Defaults to 'off')
- 'alarm-upper-threshold' turns 'on' whenever the 'reading' is higher than the attribute 'upper-threshold'
- it turns 'off' again as soon 'reading' falls below 'alarm-upper-threshold'
-
alarm-lower-threshold
- returns the current state of 'alarm-lower-threshold'. Values are 'on' and 'off' (Defaults to 'off')
- 'alarm-lower-threshold' turns 'on' whenever the 'reading' is lower than the attribute 'lower-threshold'
- it turns 'off' again as soon 'reading rises above 'alarm-lower-threshold'
-
state
- returns the 'state' reading
-
-
- Attributes
-
-
upper-threshold
- sets the 'upper-threshold'. Whenever the 'reading' exceeds this value 'alarm-upper-threshold' is set to 'on'
- As soon 'reading' falls below the 'upper-threshold' 'alarm-upper-threshold' turns 'off' again
- Defaults to 1024.
-
lower-threshold
- sets the 'lower-threshold'. Whenever the 'reading' falls below this value 'alarm-lower-threshold' is set to 'on'
- As soon 'reading' rises above the 'lower-threshold' 'alarm-lower-threshold' turns 'off' again
- Defaults to -1.
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
- represents an integrated curcuit connected to the i2c-pins of an Arduino
- running Firmata
- Requires a defined FRM-device to work.
- this FRM-device has to be configures for i2c by setting attr 'i2c-config' on the FRM-device
- it reads out the ic-internal storage in intervals of 'sampling-interval' as set on the FRM-device
- represents a pin of an Arduino running Firmata
- configured for digital input.
- The current state of the arduino-pin is stored in reading 'state'. Values are 'on' and 'off'.
- Requires a defined FRM-device to work.
-
-
- Define
-
- define <name> FRM_IN <pin>
- Defines the FRM_IN device. <pin>> is the arduino-pin to use.
-
-
-
-
- Set
-
-
alarm on|off
- set the alarm to on or off. Used to clear the alarm.
- The alarm is set to 'on' whenever the count reaches the threshold and doesn't clear itself.
-
-
- Get
-
-
reading
- returns the logical state of the arduino-pin. Values are 'on' and 'off'.
-
count
- returns the current count. Contains the number of toggles of the arduino-pin.
- Depending on the attribute 'count-mode' every rising or falling edge (or both) is counted.
-
alarm
- returns the current state of 'alarm'. Values are 'on' and 'off' (Defaults to 'off')
- 'alarm' doesn't clear itself, has to be set to 'off' eplicitly.
-
state
- returns the 'state' reading
-
-
- Attributes
-
-
activeLow <yes|no>
-
count-mode none|rising|falling|both
- Determines whether 'rising' (transitions from 'off' to 'on') of falling (transitions from 'on' to 'off')
- edges (or 'both') are counted. Defaults to 'none'
-
count-threshold <number>
- sets the theshold-value for the counter. Whenever 'count' reaches the 'count-threshold' 'alarm' is
- set to 'on'. Use 'set alarm off' to clear the alarm.
-
reset-on-threshold-reached yes|no
- if set to 'yes' reset the counter to 0 when the threshold is reached (defaults to 'no').
-
-
internal-pullup on|off
- allows to switch the internal pullup resistor of arduino to be en-/disabled. Defaults to off.
-
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
- represents a pin of an Arduino running Firmata
- configured for analog output.
- The value set will be output by the specified pin as a pulse-width-modulated signal.
- Requires a defined FRM-device to work.
-
-
- Define
-
- define <name> FRM_PWM <pin>
- Defines the FRM_PWM device. <pin>> is the arduino-pin to use.
-
- set <name> toggle
- toggles the pulse-width in between to the last value set by 'value' or 'dim' and 0 respectivly 100%
-
-
- set <name> value <value>
- sets the pulse-width to the value specified
- Range is from 0 to 255 (for 8-bit resolution) (see analogWrite() for details)
-
-
- set <name> dim <value>
- sets the pulse-width to the value specified in percent
- Range is from 0 to 100
-
-
- set <name> dimUp
- increases the pulse-width by 10%
-
-
- set <name> dimDown
- decreases the pulse-width by 10%
-
-
- Get
-
- N/A
-
-
- Attributes
-
-
restoreOnStartup <on|off>
-
restoreOnReconnect <on|off>
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
- allows to drive LED-controllers and other multichannel-devices that use PWM as input by an Arduino running Firmata
-
- The value set will be output by the specified pins as pulse-width-modulated signals.
- Requires a defined FRM-device to work.
-
-
- Define
-
- define <name> FRM_RGB <pin> <pin> <pin> [pin...]
- Defines the FRM_RGB device. <pin>> are the arduino-pin to use.
- For rgb-controlled devices first pin drives red, second pin green and third pin blue.
-
-
-
-
- Set
-
- set <name> on
- sets the pulse-width of all configured pins to 100%
-
- set <name> off
- sets the pulse-width of all configured pins to 0%
- set <name> toggle
- toggles in between the last dimmed value, 0% and 100%. If no dimmed value was set before defaults to pulsewidth 50% on all channels
-
- set <name> rgb <value>
- sets the pulse-width of all channels at once. Also sets the value toggle can switch to
- Value is encoded as hex-string, 2-digigs per channel (e.g. FFFFFF for reguler rgb)
-
- set <name> pct <value>
- dims all channels at once while leving the ratio in between the channels unaltered.
- Range is 0-100 ('pct' stands for 'percent')
-
- set <name> dimUp
- dims up by 10%
-
- set <name> dimDown
- dims down by 10%
-
- Get
-
- get <name> rgb
- returns the values set for all channels. Format is hex, 2 nybbles per channel.
-
-
- get <name> RGB
- returns the values set for all channels in normalized format. Format is hex, 2 nybbles per channel.
- Values are scaled such that the channel with the highest value is set to FF. The real values are calculated
- by multipying each byte with the value of 'pct'.
-
-
- get <name> pct
- returns the value of the channel with the highest value scaled to the range of 0-100 (percent).
-
-
- Attributes
-
-
restoreOnStartup <on|off>
-
restoreOnReconnect <on|off>
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
- represents a rotary-encoder attached to two pins of an Arduino running Firmata
- Requires a defined FRM-device to work.
-
-
- Define
-
- define <name> FRM_ROTENC <pinA> <pinB> [id]
- Defines the FRM_ROTENC device. <pinA>> and <pinA>> are the arduino-pins to use.
- [id] is the instance-id of the encoder. Must be a unique number per FRM-device (rages from 0-4 depending on Firmata being used, optional if a single encoder is attached to the arduino).
-
-
-
-
- Set
-
reset
- resets to value of 'position' to 0
-
- Get
-
-
position
- returns the position of the rotary-encoder attached to pinA and pinB of the arduino
-
-
- Attributes
-
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
- represents a pin of an Arduino running Firmata
- configured to drive a pwm-controlled servo-motor.
- The value set will be drive the shaft of the servo to the specified angle. see Servo.write for values and range
- Requires a defined FRM-device to work.
-
-
- Define
-
- define <name> FRM_SERVO <pin>
- Defines the FRM_SERVO device. <pin>> is the arduino-pin to use.
-
-
-
-
- Set
-
- set <name> angle <value> sets the angle of the servo-motors shaft to the value specified (in degrees).
-
-
- Get
-
- N/A
-
-
- Attributes
-
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
-
min-pulse
- sets the minimum puls-width to use. Defaults to 544. For most servos this translates into a rotation of 180° counterclockwise.
-
max-pulse
- sets the maximum puls-width to use. Defaults to 2400. For most servos this translates into a rotation of 180° clockwise
[DRIVER|TWO_WIRE|FOUR_WIRE] defines the control-sequence being used to drive the motor.
-
-
DRIVER: motor is attached via a smart circuit that is controlled via two lines: 1 line defines the direction to turn, the other triggers one step per impluse.
-
FOUR_WIRE: motor is attached via four wires each driving one coil individually.
-
TWO_WIRE: motor is attached via two wires. This mode makes use of the fact that at any time two of the four motor
-coils are the inverse of the other two so by using an inverting circuit to drive the motor the number of control connections can be reduced from 4 to 2.
-
-
-
-
-
The sequence of control signals for 4 control wires is as follows:
-
-
-Step C0 C1 C2 C3
- 1 1 0 1 0
- 2 0 1 1 0
- 3 0 1 0 1
- 4 1 0 0 1
-
-
-
The sequence of controls signals for 2 control wires is as follows:
-(columns C1 and C2 from above):
-
-
-Step C0 C1
- 1 0 1
- 2 1 1
- 3 1 0
- 4 0 0
-
-
-
-
-
- If your stepper-motor does not move or does move but only in a single direction you will have to rearrage the pin-numbers to match the control sequence.
- that can be archived either by rearranging the physical connections, or by mapping the connection to the pin-definitions in FRM_STEPPERS define:
- e.g. the widely used cheap 28byj-48 you can get for few EUR on eBay including a simple ULN2003 driver interface may be defined by
- define stepper FRM_STEPPER FOUR_WIRE 7 5 6 8 64 0
- when being connected to the arduio with:
- motor pin1 <-> arduino pin5
- motor pin2 <-> arduino pin6
- motor pin3 <-> arduino pin7
- motor pin4 <-> arduino pin8
- motor pin5 <-> ground
-
-
-
-
-
- Set
-
- set <name> reset
-
resets the reading 'position' to 0 without moving the motor
-
- set <name> position <position> [speed] [acceleration] [deceleration]
-
moves the motor to the absolute position specified. positive or negative integer
- speed (10 * revolutions per minute, optional), defaults to 30, higher numbers are faster) At 2048 steps per revolution (28byj-48) a speed of 30 results in 3 rev/min
- acceleration and deceleration are optional.
-
-
- set <name> step <stepstomove> [speed] [accel] [decel]
-
moves the motor the number of steps specified. positive or negative integer
- speed, accelleration and deceleration are optional.
-
-
-
- Get
-
- N/A
-
-
- Attributes
-
-
restoreOnStartup <on|off>
-
restoreOnReconnect <on|off>
-
IODev
- Specify which FRM to use. (Optional, only required if there is more
- than one FRM-device defined.)
-
- The FS20 protocol is used by a wide range of devices, which are either of
- the sender/sensor category or the receiver/actuator category. The radio
- (868.35 MHz) messages are either received through an FHZ
- or an CUL device, so this must be defined first.
-
-
-
- The values of housecode, button, fg, lm, and gm can be either defined as
- hexadecimal value or as ELV-like "quad-decimal" value with digits 1-4. We
- will reference this ELV-like notation as ELV4 later in this document. You
- may even mix both hexadecimal and ELV4 notations, because FHEM can detect
- the used notation automatically by counting the digits.
-
-
-
<housecode> is a 4 digit hex or 8 digit ELV4 number,
- corresponding to the housecode address.
-
<button> is a 2 digit hex or 4 digit ELV4 number,
- corresponding to a button of the transmitter.
-
The optional <fgaddr> specifies the function group.
- It is a 2 digit hex or 4 digit ELV address. The first digit of the hex
- address must be F or the first 2 digits of the ELV4 address must be
- 44.
-
The optional <lmaddr> specifies the local
- master. It is a 2 digit hex or 4 digit ELV address. The last digit of the
- hex address must be F or the last 2 digits of the ELV4 address must be
- 44.
-
The optional gm specifies the global master, the address must be FF if
- defined as hex value or 4444 if defined as ELV4 value.
- dim06% dim12% dim18% dim25% dim31% dim37% dim43% dim50%
- dim56% dim62% dim68% dim75% dim81% dim87% dim93% dim100%
- dimdown
- dimup
- dimupdown
- off
- off-for-timer
- on # dimmer: set to value before switching it off
- on-for-timer # see the note
- on-old-for-timer # set to previous (before switching it on)
- ramp-on-time # time to reach the desired dim value on dimmers
- ramp-off-time # time to reach the off state on dimmers
- reset
- sendstate
- timer
- toggle # between off and previous dim val
- on-till # Special, see the note
-
- set lamp on
- set lamp1,lamp2,lamp3 on
- set lamp1-lamp3 on
- set lamp on-for-timer 12
-
-
-
- Notes:
-
-
Use reset with care: the device forgets even the housecode.
-
-
As the FS20 protocol needs about 0.22 seconds to transmit a
- sequence, a pause of 0.22 seconds is inserted after each command.
-
-
The FS20ST switches on for dim*%, dimup. It does not respond to
- sendstate.
-
If the timer is set (i.e. it is not 0) then on, dim*,
- and *-for-timer will take it into account (at least by the FS20ST).
-
-
The time argument ranges from 0.25sec to 4 hours and 16
- minutes. As the time is encoded in one byte there are only 112
- distinct values, the resolution gets coarse with larger values. The
- program will report the used timeout if the specified one cannot be
- set exactly. The resolution is 0.25 sec from 0 to 4 sec, 0.5 sec
- from 4 to 8 sec, 1 sec from 8 to 16 sec and so on. If you need better
- precision for large values, use at which has a 1
- sec resolution.
-
on-till requires an absolute time in the "at" format (HH:MM:SS, HH:MM
- or { <perl code> }, where the perl-code returns a time
- specification).
- If the current time is greater than the specified time, then the
- command is ignored, else an "on" command is generated, and for the
- given "till-time" an off command is scheduleld via the at command.
-
-
-
-
-
- Get
N/A
-
-
- Attributes
-
-
-
IODev
- Set the IO or physical device which should be used for sending signals
- for this "logical" device. An example for the physical device is an FHZ
- or a CUL. Note: Upon startup FHEM assigns each logical device
- (FS20/HMS/KS300/etc) the last physical device which can receive data
- for this type of device. The attribute IODev needs to be used only if
- you attached more than one physical device capable of receiving signals
- for this logical device.
-
-
-
eventMap
- Replace event names and set arguments. The value of this attribute
- consists of a list of space separated values, each value is a colon
- separated pair. The first part specifies the "old" value, the second
- the new/desired value. If the first character is slash(/) or komma(,)
- then split not by space but by this character, enabling to embed spaces.
- Examples:
- attr store eventMap on:open off:closed
- attr store eventMap /on-for-timer 10:open/off:closed/
- set store open
-
-
-
-
-
dummy
- Set the device attribute dummy to define devices which should not
- output any radio signals. Associated notifys will be executed if
- the signal is received. Used e.g. to react to a code from a sender, but
- it will not emit radio signal if triggered in the web frontend.
-
-
-
-
follow-on-for-timer
- schedule a "setstate off;trigger off" for the time specified as argument to
- the on-for-timer command. Or the same with on, if the command is
- off-for-timer.
-
-
-
-
follow-on-timer
- Like with follow-on-for-timer schedule a "setstate off;trigger off", but
- this time for the time specified as argument in seconds to this attribute.
- This is used to follow the pre-programmed timer, which was set previously
- with the timer command or manually by pressing the button on the device,
- see your manual for details.
-
-
-
-
-
model
- The model attribute denotes the model type of the device.
- The attributes will (currently) not be used by the fhem.pl directly.
- It can be used by e.g. external programs or web interfaces to
- distinguish classes of devices and send the appropriate commands
- (e.g. "on" or "off" to a fs20st, "dim..%" to fs20du etc.).
- The spelling of the model names are as quoted on the printed
- documentation which comes which each device. This name is used
- without blanks in all lower-case letters. Valid characters should be
- a-z 0-9 and - (dash),
- other characters should be ommited. Here is a list of "official"
- devices:
ignore
- Ignore this device, e.g. if it belongs to your neighbour. The device
- won't trigger any FileLogs/notifys, issued commands will silently
- ignored (no RF signal will be sent out, just like for the dummy attribute). The device won't appear in the
- list command (only if it is explicitely asked for it), nor will it
- appear in commands which use some wildcard/attribute as name specifiers
- (see devspec). You still get them with the
- "ignored=1" special devspec.
-
- From an FS20 device you can receive one of the following events.
-
on
-
off
-
toggle
-
dimdown
-
dimup
-
dimupdown
-
on-for-timer
- Which event is sent is device dependent and can sometimes configured on
- the device.
-
-
-
-
-
FileLog
-
-
-
-
- Define
-
- define <name> FileLog <filename> <regexp>
-
-
- Log events to <filename>. The log format is
-
- YYYY-MM-DD_HH:MM:SS <device> <event>
-
- The regexp will be checked against the device name
- devicename:event or timestamp:devicename:event combination.
- The regexp must match the complete string, not just a part of it.
-
- <filename> may contain %-wildcards of the
- POSIX strftime function of the underlying OS (see your strftime manual).
- Common used wildcards are:
-
-
%d day of month (01..31)
-
%m month (01..12)
-
%Y year (1970...)
-
%w day of week (0..6); 0 represents Sunday
-
%j day of year (001..366)
-
%U week number of year with Sunday as first day of week (00..53)
-
%W week number of year with Monday as first day of week (00..53)
-
- FHEM also replaces %L by the value of the global logdir attribute.
- Before using %V for ISO 8601 week numbers check if it is
- correctly supported by your system (%V may not be replaced, replaced by an
- empty string or by an incorrect ISO-8601 week number, especially
- at the beginning of the year)
- If you use %V you will also have to use %G
- instead of %Y for the year!
- Examples:
-
- define lamplog FileLog %L/lamp.log lamp
- define wzlog FileLog ./log/wz-%Y-%U.log
- wz:(measured-temp|actuator).*
- With ISO 8601 week numbers, if supported:
- define wzlog FileLog ./log/wz-%G-%V.log
- wz:(measured-temp|actuator).*
-
-
-
-
-
- Set
-
-
reopen
-
- Reopen a FileLog after making some manual changes to the
- logfile.
-
-
-
addRegexpPart <device> <regexp>
-
- add a regexp part, which is constructed as device:regexp. The parts
- are separated by |. Note: as the regexp parts are resorted, manually
- constructed regexps may become invalid.
-
-
-
removeRegexpPart <re>
-
- remove a regexp part. Note: as the regexp parts are resorted, manually
- constructed regexps may become invalid.
- The inconsistency in addRegexpPart/removeRegexPart arguments originates
- from the reusage of javascript functions.
-
-
-
absorb secondFileLog
-
- merge the current and secondFileLog into one file, add the regexp of the
- secondFileLog to the current one, and delete secondFileLog.
- This command is needed to create combined plots (weblinks).
- Notes:
-
-
secondFileLog will be deleted (i.e. the FHEM definition).
-
only the current files will be merged.
-
weblinks using secondFilelog will become broken, they have to be
- adopted to the new logfile or deleted.
-
-
-
-
-
-
-
-
-
- Get
-
- get <name> <infile> <outfile> <from>
- <to> <column_spec>
-
- Read data from the logfile, used by frontends to plot data without direct
- access to the file.
-
-
-
<infile>
- Name of the logfile to grep. "-" is the current logfile, or you can
- specify an older file (or a file from the archive).
-
<outfile>
- If it is "-", you get the data back on the current connection, else it
- is the prefix for the output file. If more than one file is specified,
- the data is separated by a comment line for "-", else it is written in
- separate files, numerated from 0.
-
-
<from> <to>
- Used to grep the data. The elements should correspond to the
- timeformat or be an initial substring of it.
-
<column_spec>
- For each column_spec return a set of data in a separate file or
- separated by a comment line on the current connection.
- Syntax: <col>:<regexp>:<default>:<fn>
-
-
<col>
- The column number to return, starting at 1 with the date.
- If the column is enclosed in double quotes, then it is a fix text,
- not a column number.
-
<regexp>
- If present, return only lines containing the regexp. Case sensitive.
-
-
<default>
- If no values were found and the default value is set, then return
- one line containing the from value and this default. We need this
- feature as gnuplot aborts if a dataset has no value at all.
-
-
<fn>
- One of the following:
-
-
int
- Extract the integer at the beginning og the string. Used e.g.
- for constructs like 10%
-
delta-h or delta-d
- Return the delta of the values for a given hour or a given day.
- Used if the column contains a counter, as is the case for the
- KS300 rain column.
-
everything else
- The string is evaluated as a perl expression. @fld is the
- current line splitted by spaces. Note: The string/perl
- expression cannot contain spaces, as the part after the space
- will be considered as the next column_spec.
-
-
-
-
- Example:
-
- get outlog out-2008.log - 2008-01-01 2008-01-08 4:IR:int: 9:IR::
-
-
-
-
-
- Attributes
-
-
-
-
-
archivecmd / archivedir / nrarchive
- When a new FileLog file is opened, the FileLog archiver wil be called.
- This happens only, if the name of the logfile has changed (due to
- time-specific wildcards, see the FileLog
- section), and there is a new entry to be written into the file.
-
-
- If the attribute archivecmd is specified, then it will be started as a
- shell command (no enclosing " is needed), and each % in the command
- will be replaced with the name of the old logfile.
-
- If this attribute is not set, but nrarchive and/or archivecmd are set,
- then nrarchive old logfiles are kept along the current one while older
- ones are moved to archivedir (or deleted if archivedir is not set).
-
- Note: setting these attributes for the global instance will effect the
- FHEM logfile only.
-
logtype
- Used by the pgm2 webfrontend to offer gnuplot/SVG images made from the
- logs. The string is made up of tokens separated by comma (,), each
- token specifies a different gnuplot program. The token may contain a
- colon (:), the part before the colon defines the name of the program,
- the part after is the string displayed in the web frontend. Currently
- following types of gnuplot programs are implemented:
-
-
fs20
- Plots on as 1 and off as 0. The corresponding filelog definition
- for the device fs20dev is:
- define fslog FileLog log/fs20dev-%Y-%U.log fs20dev
-
-
fht
- Plots the measured-temp/desired-temp/actuator lines. The
- corresponding filelog definitions (for the FHT device named
- fht1) looks like:
- define fhtlog1 FileLog log/fht1-%Y-%U.log fht1:.*(temp|actuator).*
-
-
-
temp4rain10
- Plots the temperature and rain (per hour and per day) of a
- ks300. The corresponding filelog definitions (for the KS300
- device named ks300) looks like:
- define ks300log FileLog log/fht1-%Y-%U.log ks300:.*H:.*
-
-
hum6wind8
- Plots the humidity and wind values of a
- ks300. The corresponding filelog definition is the same as
- above, both programs evaluate the same log.
-
-
text
- Shows the logfile as it is (plain text). Not gnuplot definition
- is needed.
-
- Note: GEOFANCY is an extension to FHEMWEB. You need to install FHEMWEB to use GEOFANCY.
-
Define
-
- define <name> <infix>
-
- Defines the webhook server. <infix> is the portion behind the FHEMWEB base URL (usually http://hostname:8083/fhem)
-
- Example:
-
- define geofancy GEOFANCY geo
-
- The webhook will be reachable at http://hostname:8083/fhem/geo in that case.
-
-
Set
-
-
- clear readings can be used to cleanup auto-created readings from deprecated devices.
-
-
-
- Attributes
-
-
-
devAlias: can be used to rename device names in the format DEVICEUUID:Aliasname. Separate using blank to rename multiple devices.
-
-
-
- Usage information
-
-
- Likely your FHEM installation is not reachable directly from the internet (good idea!).
- It is recommended to have a reverse proxy like nginx or Apache in front of FHEM where you can make sure access is only possible to specific subdirectories like /fhem/geo.
- You might also want to think about protecting the access by using HTTP Basic Authentication and encryption via SSL.
- Also the definition of a dedicated FHEMWEB instance for that purpose might help to restrict FHEM's functionality (note that the 'hidden' attributes of FHEMWEB currently do NOT protect from just guessing/knowing the correct URL!)
-
- To make that reverse proxy available from the internet, just forward the appropriate port via your internet router.
-
- The actual solution on how you can securely make your Geofancy webhook available to the internet is not part of this documentation and depends on your own skills.
-
-
- Integration with Home Automation
-
-
- You might want to have a look to the module family of ROOMMATE, GUEST and RESIDENTS for an easy processing of GEOFANCY events.
-
-
-
-
-
-
-
-
- GUEST
-
-
- Define
-
- define <rg_GuestName> GUEST [<device name of resident group>]
-
- Provides a special dummy device to represent a guest of your home.
- Based on the current state and other readings, you may trigger other actions within FHEM.
-
- Used by superior module RESIDENTS but may also be used stand-alone.
-
- Example:
-
- # Standalone
- define rg_Guest GUEST
-
- # Typical group member
- define rg_Guest GUEST rgr_Residents # to be member of resident group rgr_Residents
-
- # Member of multiple groups
- define rg_Guest GUEST rgr_Residents,rgr_Guests # to be member of resident group rgr_Residents and rgr_Guests
-
-
-
- Please note the RESIDENTS group device needs to be existing before a GUEST device can become a member of it.
-
-
-
- Set
-
- set <rg_GuestName> <command> [<parameter>]
-
- Currently, the following commands are defined.
-
-
- location - sets reading 'location'; see attribute rg_locations to adjust list shown in FHEMWEB
-
-
- mood - sets reading 'mood'; see attribute rg_moods to adjust list shown in FHEMWEB
-
-
- state home,gotosleep,asleep,awoken,absent,none switch between states; see attribute rg_states to adjust list shown in FHEMWEB
-
-
-
-
-
- Possible states and their meaning
-
-
- This module differs between 6 states:
-
-
-
- home - individual is present at home and awake
-
-
- gotosleep - individual is on it's way to bed
-
-
- asleep - individual is currently sleeping
-
-
- awoken - individual just woke up from sleep
-
-
- absent - individual is not present at home but will be back shortly
-
-
- none - guest device is disabled
-
-
-
-
-
-
- Presence correlation to location
-
-
- Under specific circumstances, changing state will automatically change reading 'location' as well.
-
- Whenever presence state changes from 'absent' to 'present', the location is set to 'home'. If attribute rg_locationHome was defined, first location from it will be used as home location.
-
- Whenever presence state changes from 'present' to 'absent', the location is set to 'underway'. If attribute rg_locationUnderway was defined, first location from it will be used as underway location.
-
-
-
-
- Auto Gone
-
-
- Whenever an individual is set to 'absent', a trigger is started to automatically change state to 'gone' after a specific timeframe.
- Default value is 16 hours.
-
- This behaviour can be customized by attribute rg_autoGoneAfter.
-
-
-
-
- Synchronizing presence with other ROOMMATE or GUEST devices
-
-
- If you always leave or arrive at your house together with other roommates or guests, you may enable a synchronization of your presence state for certain individuals.
- By setting attribute rg_passPresenceTo, those individuals will follow your presence state changes to 'home', 'absent' or 'gone' as you do them with your own device.
-
- Please note that individuals with current state 'none' or 'gone' (in case of roommates) will not be touched.
-
-
-
-
- Location correlation to state
-
-
- Under specific circumstances, changing location will have an effect on the actual state as well.
-
- Whenever location is set to 'home', the state is set to 'home' if prior presence state was 'absent'. If attribute rg_locationHome was defined, all of those locations will trigger state change to 'home' as well.
-
- Whenever location is set to 'underway', the state is set to 'absent' if prior presence state was 'present'. If attribute rg_locationUnderway was defined, all of those locations will trigger state change to 'absent' as well. Those locations won't appear in reading 'lastLocation'.
-
- Whenever location is set to 'wayhome', the reading 'wayhome' is set to '1' if current presence state is 'absent'. If attribute rg_locationWayhome was defined, LEAVING one of those locations will set reading 'wayhome' to '1' as well. So you actually have implicit and explicit options to trigger wayhome.
- Arriving at home will reset the value of 'wayhome' to '0'.
-
- If you are using the GEOFANCY module, you can easily have your location updated with GEOFANCY events by defining a simple NOTIFY-trigger like this:
-
- define n_rg_Guest.location notify geofancy:currLoc_Guest.* set rg_Guest location $EVTPART1
-
- By defining geofencing zones called 'home' and 'wayhome' in the iOS app, you automatically get all the features of automatic state changes described above.
-
-
-
- Attributes
-
-
-
- rg_autoGoneAfter - hours after which state should be auto-set to 'gone' when current state is 'absent'; defaults to 16 hours
-
-
- rg_locationHome - locations matching these will be treated as being at home; first entry reflects default value to be used with state correlation; separate entries by space; defaults to 'home'
-
-
- rg_locationUnderway - locations matching these will be treated as being underway; first entry reflects default value to be used with state correlation; separate entries by comma or space; defaults to "underway"
-
-
- rg_locationWayhome - leaving a location matching these will set reading wayhome to 1; separate entries by space; defaults to "wayhome"
-
-
- rg_locations - list of locations to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces
-
-
- rg_moodDefault - the mood that should be set after arriving at home or changing state from awoken to home
-
-
- rg_moodSleepy - the mood that should be set if state was changed to gotosleep or awoken
-
-
- rg_moods - list of moods to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces
-
-
- rg_passPresenceTo - synchronize presence state with other GUEST or GUEST devices; separte devices by space
-
-
- rg_realname - whenever GUEST wants to use the realname it uses the value of attribute alias or group; defaults to group
-
-
- rg_showAllStates - states 'asleep' and 'awoken' are hidden by default to allow simple gotosleep process via devStateIcon; defaults to 0
-
-
- rg_states - list of states to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces; unsupported states will lead to errors though
-
-
-
-
-
- Generated Readings/Events:
-
-
-
- durTimerAbsence - timer to show the duration of absence from home in minutes
-
-
- durTimerPresence - timer to show the duration of presence at home in minutes
-
-
- durTimerSleep - timer to show the duration of sleep in minutes
-
-
- lastArrival - timestamp of last arrival at home
-
-
- lastAwake - timestamp of last sleep cycle end
-
-
- lastDeparture - timestamp of last departure from home
-
-
- lastDurAbsence - duration of last absence from home in following format: hours:minutes:seconds
-
-
- lastDurPresence - duration of last presence at home in following format: hours:minutes:seconds
-
-
- lastDurSleep - duration of last sleep in following format: hours:minutes:seconds
-
-
- lastLocation - the prior location
-
-
- lastMood - the prior mood
-
-
- lastSleep - timestamp of last sleep cycle begin
-
-
- lastState - the prior state
-
-
- location - the current location
-
-
- presence - reflects the home presence state, depending on value of reading 'state' (can be 'present' or 'absent')
-
-
- mood - the current mood
-
-
- state - reflects the current state
-
-
- wayhome - depending on current location, it can become '1' if individual is on his/her way back home
-
-
-
-
- The following readings will be set to '-' if state was changed to 'none':
- lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
-
-
-
-
-
-
-
HCS
-
- Defines a virtual device for monitoring thermostats (FHT, HM-CC-TC, MAX) to control a central
- heating unit.
-
-
- Define
-
- define <name> HCS <device>
-
-
-
-
<device> the name of a predefined device to switch.
-
-
-
- The HCS (heating control system) device monitors the state of all detected thermostats
- in a free definable interval (by default: 10 min).
-
-
- Regulation for heating requirement or suppression of the request can be controlled by
- valve position or measured temperature (default) using also free definable thresholds.
- In doing so, the HCS device also includes the hysteresis between two states.
-
-
- Example for monitoring measured temperature:
-
- Threshold temperature for heating requirement: 0.5 (default)
- Threshold temperature for idle: 0.5 (default)
-
-
- Heating is required when the measured temperature of a thermostat is lower than
- 0.5° Celsius as the desired temperature. HCS then activates the defined device
- until the measured temperature of the thermostat is 0.5° Celsius higher as the
- desired temperature (threshold for idle). In this example, both tresholds are equal.
-
-
-
- Example for monitoring valve position:
-
- Threshold valve position for heating requirement: 40% (default)
- Threshold valve position for idle: 35% (default)
-
-
- Heating is required when the "open" position of a valve is more than 40%. HCS then
- activates the defined device until the "open" position of the valve has lowered to
- 35% or less (threshold for idle).
-
-
-
- The HCS device supports an optional eco mode. The threshold oriented regulation by
- measured temperature or valve position can be overridden by setting economic thresholds.
-
-
- Example:
-
- Threshold temperature economic mode on: 15° Celsius
- Threshold temperature economic mode off: 25° Celsius
-
-
- HCS activates the defined device until the measured temperature of one ore more
- thermostats is lower or equal than 15° Celsius. If a measured temperature of one
- or more thermostats is higher or equal than 25° Celsius, HCS switch of the defined
- device (if none of the measured temperatures of all thermostats is lower or equal as
- 15° Celsius).
-
-
-
- In addition, the HCS device supports an optional temp-sensor. The threshold and economic
- oriented regulation can be overriden by the reading of the temp-sensor (overdrive mode).
-
-
- Example:
-
- Threshold temperature reading for heating requirement: 10° Celsius
- Threshold temperature reading for idle: 18° Celsius
-
-
- Is a measured temperature ore valve position reaching or exceeding the threshold for
- heating requirement, but the temperature reading is more than 18° Celcius, the
- selected device will stay deactivated. The measured temperature or valve-position
- oriented regulation has been overridden by the temperature reading in this example.
-
-
-
- The HCS device automatically detects devices which are ignored. Furthermore, certain
- devices can also be excluded of the monitoring manually.
-
-
- To reduce the transmission load, use the attribute event-on-change-reading, e.g.
- attr <name> event-on-change-reading state,devicestate,eco,overdrive
-
-
- To avoid frequent switching "on" and "off" of the device, a timeout (in minutes) can be set
- using the attribute idleperiod.
-
-
-
- Get
-
-
values
- returns the actual values of each device
-
-
-
-
-
- Set
-
-
eco <on>|<off>
- enable (on) or disable (off) the economic mode.
-
-
interval <value>
- value modifies the interval of reading the actual valve positions.
- The unit is minutes.
-
-
mode <thermostat>|<valve>
- changes the operational mode:
- thermostat controls the heating demand by defined temperature
- thresholds.
- valve controls the heating demand by defined valve position thresholds.
-
-
on
- restarts the monitoring after shutdown by off switch.
- HCS device starts up automatically upon FHEM start or after new device implementation!
-
-
off
- shutdown of monitoring, can be restarted by using the on command.
-
-
-
-
-
- Attributes
-
-
deviceCmdOn (mandatory)
- command to activate the device, e.g. on.
- Default value: on
-
-
deviceCmdOff (mandatory)
- command to deactivate the device, e.g. off.
- Default value: off
-
-
ecoTemperatureOn (Required by eco mode)
- defines threshold for measured temperature upon which device is allways switched on
-
-
ecoTemperatureOff (Required by eco mode)
- defines threshold for measured temperature upon which device is switched off
-
-
exclude (optional)
- space or comma separated list of devices (FHT or HM-CC-TC) for excluding from
- monitoring
-
-
idleperiod (mandatory)
- locks the device to be switched for the specified period. The unit is minutes.
- Default value: 10
-
-
mode (mandatory)
- defines the operational mode:
- thermostat controls the heating demand by defined temperature
- thresholds.
- valve controls the heating demand by defined valve position thresholds.
- Default value: thermostat
-
-
sensor (optional)
- device name of the temp-sensor
-
-
sensorThresholdOn (Required by sensor)
- threshold for temperature reading activating the defined device
- Must be set if sensor has been defined
-
-
sensorThresholdOff (Required by sensor)
- threshold for temperature reading deactivating the defined device.
- Must be set if sensor has been defined
-
-
sensorReading (Required by sensor)
- name which is used for saving the "reading" of the defined temp-sensor.
-
-
thermostatThresholdOn (Required by operational mode thermostat)
- defines delta threshold between desired and measured temperature upon which device
- is switched on (heating required).
- Default value: 0.5
-
-
thermostatThresholdOff (Required by operational mode thermostat)
- defines delta threshold between desired and measured temperature upon which
- device is switched off (idle).
- Default value: 0.5
-
-
valveThresholdOn (Required by operational mode valve)
- defines threshold of valve-position upon which device is switched on (heating
- required).
- Default value: 40
-
-
valveThresholdOff (Required by operational mode valve)
- defines threshold of valve-position upon which device is switched off (idle).
- Default value: 35
-
loglevel
- loglevel 3 (or lower) shows a complete statistic of scanned devices (FHT or HM-CC-TC).
- loglevel 4 shows a short summary of scanned devices.
- loglevel 5 suppressed the above messages.
-
-
-
-
-
-
-
-
-
-
-
HMLAN
-
- The HMLAN is the fhem module for the eQ-3 HomeMatic LAN Configurator.
- A description on how to use hmCfgUsb can be found follwing the link.
-
- The fhem module will emulate a CUL device, so the CUL_HM module can be used to define HomeMatic devices.
-
- In order to use it with fhem you must disable the encryption first with the "HomeMatic Lan Interface Configurator"
- (which is part of the supplied Windows software), by selecting the device, "Change IP Settings", and deselect "AES Encrypt Lan Communication".
-
- This device can be used in parallel with a CCU and (readonly) with fhem. To do this:
-
-
start the fhem/contrib/tcptee.pl program
-
redirect the CCU to the local host
-
disable the LAN-Encryption on the CCU for the Lan configurator
-
set the dummy attribute for the HMLAN device in fhem
- define <name> HMLAN <ip-address>[:port]
-
- port is 1000 by default.
- If the ip-address is called none, then no device will be opened, so you can experiment without hardware attached.
-
logIDs
- enables selective logging of HMLAN messages. A list of HMIds or names can be
- entered, comma separated, which shall be logged.
- The attribute only allows device-IDs, not channel IDs.
- Channel-IDs will be modified to device-IDs automatically.
- all will log raw messages for all HMIds
- sys will log system related messages like keep-alive
- in order to enable all messages set "all,sys"
-
-
hmMsgLowLimit
- max messages level of HMLAN allowed for low-level message queue
- to be executed. Above this level processing will be postponed.
- HMLAN will allow a max of messages per hour, it will block sending otherwise.
- After about 90% messages the low-priority queue (currently only CUL_HM autoReadReg)
- will be delayed until the condition is cleared.
- hmMsgLowLimit allowes to reduce this level further.
- Note that HMLAN transmitt-level calculation is based on some estimations and
- has some tolerance.
-
hmKey5
- AES keys for the HMLAN adapter.
- The key is converted to a hash. If a hash is given directly it is not converted but taken directly.
- Therefore the original key cannot be converted back
-
respTime
- Define max response time of the HMLAN adapter in seconds. Default is 1 sec.
- Longer times may be used as workaround in slow/instable systems or LAN configurations.
-
wdTimer
- Time in sec to trigger HMLAN. Values between 5 and 25 are allowed, 25 is default.
- It is not recommended to change this timer. If problems are detected with
- HLMLAN disconnection it is advisable to resolve the root-cause of the problem and not symptoms.
-
hmLanQlen
- defines queuelength of HMLAN interface. This is therefore the number of
- simultanously send messages. increasing values may cause higher transmission speed.
- It may also cause retransmissions up to data loss.
- Effects can be observed by watching protocol events
- 1 - is a conservatibe value, and is default
- 5 - is critical length, likely cause message loss
assignedIDs
- HMIds that are assigned to HMLAN and will be handled. e.g. ACK will be generated internally
-
assignedIDsCnt
- number of IDs that are assigned to HMLAN by FHEM
-
assignedIDsReport
- number of HMIds that HMLAN reports are assigned. This should be identical
- to assignedIDsCnt
-
msgKeepAlive
- performance of keep-alive messages.
- dlyMax: maximum delay of sheduled message-time to actual message send.
- bufferMin: minimal buffer left to before HMLAN would likely disconnect
- due to missing keepAlive message. bufferMin will be reset to 30sec if
- attribut wdTimer is changed.
- if dlyMax is high (several seconds) or bufferMin goes to "0" (normal is 4) the system
- suffers on internal delays. Reasons for the delay might be explored. As a quick solution
- wdTimer could be decreased to trigger HMLAN faster.
-
msgLoadEst
- estimation of load of HMLAN. As HMLAN has a max capacity of message transmit per hour
- FHEM tries to estimate usage - see also
- hmMsgLowLimit
-
msgParseDly
- calculates the delay of messages in ms from send in HMLAN until processing in FHEM.
- It therefore gives an indication about FHEM system performance.
-
prot_keepAlive HMLAN disconnect likely do to slow keep-alive sending
-
prot_ok recent HMLAN ok condition
-
prot_timeout recent HMLAN timeout
-
prot_Warning-HighLoad high load condition entered - HMLAN has about 10% performance left
-
prot_ERROR-Overload overload condition - HMLAN will receive bu tno longer transmitt messages
-
prot_Overload-released overload condition released - normal operation possible
-
-
-
-
-
-
HMS
-
-
- Define
-
- define <name> HMS <housecode>
-
-
- <housecode> is a four digit hex number,
- corresponding to the address of the HMS device.
-
-
- Examples:
-
- define temp HMS 1234
-
- Notes:
-
-
Currently supported devices are the HMS100-T HMS100-TF HMS100-WD
- HMS100-MG HMS100-TFK HMS100-CO HMS100-FIT RM100-2 RM100-3
-
-
The housecode of the HMS devices may change if the battery is renewed.
- In order to make life easier, you can define a "wildcard" device for each
- type of HMS device. First the real device-id will be checked, then the
- wildcard device id. The wildcards are:
-
-
1000 for the HMS100-TF
-
1001 for the HMS100-T
-
1002 for the HMS100-WD
-
1003 for the RM100-2
-
1004 for the HMS100-TFK
-
1006 for the HMS100-MG
-
1008 for the HMS100-CO
-
100e for the HMS100-FIT
-
-
-
-
Some battery low notifications are not yet implemented (RM100,
- HMS100WD).
-
Please test your installation before relying on the
- functionality.
- HMinfo is a module to support getting an overview of
- eQ-3 HomeMatic devices as defines in CUL_HM.
- Status information and counter
- HMinfo gives an overview on the CUL_HM installed base including current conditions.
- Readings and counter will not be updated automatically due to performance issues.
- Command update must be used to refresh the values.
-
- set hm update
-
- Webview of HMinfo will provide details, basically counter about how
- many CUL_HM entities experience exceptional conditions. Areas provided are
-
-
Action Detector status
-
CUL_HM related IO devices and condition
-
Device protocol events which are related to communication errors
-
count of certain readings (e.g. batterie) and conditions - attribut controlled
-
count of error condition in readings (e.g. overheat, motorError) - attribut controlled
-
-
-
- It also allows some HM wide commands such
- as store all collected register settings.
-
- Commands will be executed on all HM entities of the installation.
- If applicable and evident execution is restricted to related entities.
- In fact, rssi is executed on devices only because channels do not support rssi values.
- set <name> <cmd> <filter> [<param>]
- whereby filter has two segments, typefilter and name filter
- [-dcasev] [-f <filter>]
- filter for types
-
-
d - device :include devices
-
c - channels :include channels
-
v - virtual :supress fhem virtual
-
p - physical :supress physical
-
a - aktor :supress actor
-
s - sensor :supress sensor
-
e - empty :include results even if requested fields are empty
-
- and/or filter for names:
-
-
-f <filter> :regexp to filter entity names
-
- Example:
-
- set hm param -d -f dim state # display param 'state' for all devices whos name contains dim
- set hm param -c -f ^dimUG$ peerList # display param 'peerList' for all channels whos name is dimUG
- set hm param -dcv expert # get attribut expert for all channels,devices or virtuals
-
models
- list all HM models that are supported in FHEM
-
-
param[filter] <name> <name>...
- returns a table parameter values (attribute, readings,...)
- for all entities as a table
-
-
register[filter]
- provides a tableview of register of an entity
-
-
regCheck[filter]
- performs a consistency check on register readings for completeness
-
-
peerCheck[filter]
- performs a consistency check on peers. If a peer is set in one channel
- this funktion will search wether the peer also exist on the opposit side.
-
-
peerXref[filter]
- provides a cross-reference on peerings, a kind of who-with-who summary over HM
-
-
configCheck[filter]
- performs a consistency check of HM settings. It includes regCheck and peerCheck
-
-
templateList [<name>]
- list defined templates. If no name is given all templates will be listed
-
-
-
msgStat[filter]
- statistic about message transferes over a week
-
-
protoEvents [filter]
- this is likely a very important view for message incidents.
- Information about pending commands and - much more relevant - about failed executions
- is given in a table over all devices.
- Consider to clear this statistic use clear Protocol.
-
-
rssi [filter]
- statistic over rssi data for HM entities.
-
-
-
templateChk [filter] <template> <peer:[long|short]> [<param1> ...]
- verifies if the register-readings comply to the template
- Parameter are identical to templateSet
- The procedure will check if the register values match the ones provided by the template
- If no peer is necessary use none to skip this entry
- Example to verify settings
-
- set hm templateChk -f RolloNord BlStopUpLg none 1 2 # RolloNord, no peer, parameter 1 and 2 given
- set hm templateChk -f RolloNord BlStopUpLg peerName:long # RolloNord peerName, long only
- set hm templateChk -f RolloNord BlStopUpLg peerName # RolloNord peerName, long and short
- set hm templateChk -f RolloNord BlStopUpLg peerName:all # RolloNord peerName, long and short
- set hm templateChk -f RolloNord BlStopUpLg all:long # RolloNord any peer, long only
- set hm templateChk -f RolloNord BlStopUpLg all # RolloNord any peer,long and short
- set hm templateChk -f Rollo.* BlStopUpLg all # each Rollo* any peer,long and short
- set hm templateChk BlStopUpLg # each entities
-
archConfig[filter] [<file>]
- performs saveConfig for entities that appeare to have achanged configuration.
- It is more conservative that saveConfig since incomplete sets are not stored.
- option -a force an archieve for all devices that have a complete set of data
-
-
loadConfig[filter] [<file>]
- loads register and peers from a file saved by saveConfig.
- It should be used carefully since it will add data to FHEM which cannot be verified. No readings will be replaced, only
- missing readings will be added. The command is mainly meant to be fill in readings and register that are
- hard to get. Those from devices which only react to config may not easily be read.
- Therefore it is strictly up to the user to fill valid data. User should consider using autoReadReg for devices
- that can be read.
- The command will update FHEM readings and attributes. It will not reprogramm any device.
-
-
purgeConfig[filter] [<file>]
- purge (reduce) the saved config file. Due to the cumulative storage of the register setting
- purge will use the latest stored readings and remove older one.
- See CUL_HM saveConfig.
-
-
-
-
tempList[filter][save|restore|verify] [<file>]
- this function supports handling of tempList for thermstates.
- It allows templists to be saved in a separate file, verify settings against the file
- and write the templist of the file to the devices.
-
save saves tempList readings of the system to the file.
- Note that templist as available in FHEM is put to the file. It is up to the user to make
- sure the data is actual
- Storage is not cumulative - former content of the file will be removed
-
restore available templist as defined in the file are written directly
- to the device
-
verify file data is compared to readings as present in FHEM. It does not
- verify data in the device - user needs to ensure actuallity of present readings
-
-
filename is the name of the file to be used. Default ist tempList.cfg
entities comma separated list of entities which refers to the temp lists following.
- The actual entity holding the templist must be given - which is channel 04 for RTs or channel 02 for TCs
-
tempList... time and temp couples as used in the set tempList commands
-
-
-
tempListTmpl[filter][templateName][verify|restore] [<file>]
- program one or more thermostat lists. The list of thermostats is selected by filter.
-
-
templateName is the name of the template as being named in the file. The file format ist
- identical to tempList. If the entity in the file matches templateName the subsequent
- temp-settings from the file are bing programmed to all Thermostats that match the filter
-
file name of the file to be used. Default: tempList.cfg
-
-
-
-
cpRegs <src:peer> <dst:peer>
- allows to copy register, setting and behavior of a channel to
- another or for peers from the same or different channels. Copy therefore is allowed
- intra/inter device and intra/inter channel.
- src:peer is the source entity. Peer needs to be given if a peer behabior beeds to be copied
- dst:peer is the destination entity.
- Example
-
- set hm cpRegs blindR blindL # will copy all general register (list 1)for this channel from the blindR to the blindL entity.
- This includes items like drive times. It does not include peers related register (list 3/4)
- set hm cpRegs blindR:Btn1 blindL:Btn2 # copy behavior of Btn1/blindR relation to Btn2/blindL
- set hm cpRegs blindR:Btn1 blindR:Btn2 # copy behavior of Btn1/blindR relation to Btn2/blindR, i.e. inside the same Actor
-
-
- Restrictions:
-
- cpRegs will not add any peers or read from the devices. It is up to the user to read register in advance
- cpRegs is only allowed between identical models
- cpRegs expets that all readings are up-to-date. It is up to the user to ensure data consistency.
-
-
-
templateDef <name> <param> <desc> <reg1:val1> [<reg2:val2>] ...
- define a template.
- param gives the names of parameter necesary to execute the template. It is template dependant
- and may be onTime or brightnesslevel. A list of parameter needs to be separated with colon
- param1:param2:param3
- if del is given as parameter the template is removed
- desc shall give a description of the template
- reg:val is the registername to be written and the value it needs to be set to.
- In case the register is from link set and can destinguist between long and short it is necessary to leave the
- leading sh or lg off.
- if parameter are used it is necessary to enter p. as value with p0 first, p1 second parameter
-
- Example
-
- set hm templateDef SwOnCond level:cond "my description" CtValLo:p0 CtDlyOn:p1 CtOn:geLo
-
-
-
templateSet <entity> <template> <peer:[long|short]> [<param1> ...]
- sets a bunch of register accroding to a given template. Parameter may be added depending on
- the template setup.
- templateSet will collect and accumulate all changes. Finally the results are written streamlined.
- entity: peer is the source entity. Peer needs to be given if a peer behabior beeds to be copied
- template: one of the programmed template
- peer: [long|short]:if necessary a peer needs to be given. If no peer is used enter '0'.
- with a peer it should be given whether it is for long or short keypress
- param: number and meaning of parameter depends on the given template
- Example could be (templates not provided, just theoretical)
-
- set hm templateSet Licht1 staircase FB1:short 20
- set hm templateSet Licht1 staircase FB1:long 100
-
- Restrictions:
-
- User must ensure to read configuration prior to execution.
- templateSet may not setup a complete register block but only a part if it. This is up to template design.
-
-
sumStatus
- Warnings: list of readings that shall be screend and counted based on current presence.
- I.e. counter is the number of entities with this reading and the same value.
- Readings to be searched are separated by comma.
- Example:
-
- attr hm sumStatus battery,sabotageError
-
- will cause a reading like
- W_sum_batterie ok:5 low:3
- W_sum_sabotageError on:1
-
- Note: counter with '0' value will not be reported. HMinfo will find all present values autonomously
- Setting is meant to give user a fast overview of parameter that are expected to be system critical
-
-
sumERROR
- Similar to sumStatus but with a focus on error conditions in the system.
- Here user can add readingvalues that are not displayed. I.e. the value is the
- good-condition that will not be counted.
- This way user must not know all error values but it is sufficient to supress known non-ciritical ones.
-
- Example:
-
autoUpdate
- retriggers the command update periodically.
- Example:
-
- attr hm autoUpdate 00:10
-
- will trigger the update every 10 min
-
-
autoArchive
- if set fhem will update the configFile each time the new data is available.
- The update will happen with autoUpdate. It will not
- work it autoUpdate is not used.
- see also archConfig
-
-
-
hmAutoReadScan
- defines the time in seconds CUL_HM tries to schedule the next autoRead
- from the queue. Despite this timer FHEM will take care that only one device from the queue will be
- handled at one point in time. With this timer user can stretch timing even further - to up to 300sec
- min delay between execution.
- Setting to 1 still obeys the "only one at a time" prinzip.
- Note that compressing will increase message load while stretch will extent waiting time.
-
-
hmIoMaxDly
- max time in seconds CUL_HM stacks messages if the IO device is not ready to send.
- If the IO device will not reappear in time all command will be deleted and IOErr will be reported.
- Note: commands will be executed after the IO device reappears - which could lead to unexpected
- activity long after command issue.
- default is 60sec. max value is 3600sec
-
-
configDir
- default directory where to store and load configuration files from.
- This path is used as long as the path is not given in a filename of
- a given command.
- It is used by commands like tempList or saveConfig
-
I_autoReadPend: Info:list of entities which are queued to retrieve config and status.
- This is typically scheduled thru autoReadReg
-
ERR___rssiCrit: Error:list of devices with RSSI reading n min level
-
W_unConfRegs: Warning:list of entities with unconfirmed register changes. Execute getConfig to clear this.
-
I_rssiMinLevel: Info:counts of rssi min readings per device, clustered in blocks
-
-
ERR__protocol: Error:count of non-recoverable protocol events per device.
- Those events are NACK, IOerr, ResendFail, CmdDel, CmdPend.
- Counted are the number of device with those events, not the number of events!
-
ERR__protoNames: Error:name-list of devices with non-recoverable protocol events
-
I_HM_IOdevices: Info:list of IO devices used by CUL_HM entities
-
I_actTotal: Info:action detector state, count of devices with ceratin states
-
ERRactNames: Error:names of devices that are not alive according to ActionDetector
-
C_sumDefined: Count:defined entities in CUL_HM. Entites might be count as
- device AND channel if channel funtion is covered by the device itself. Similar to virtual
-
ERR_<reading>: Error:count of readings as defined in attribut
- sumERROR
- that do not match the good-content.
-
ERR_names: Error:name-list of entities that are counted in any ERR_<reading>
- W_sum_<reading>: count of readings as defined in attribut
- sumStatus.
- This module provides a generic way to retrieve information from devices with an HTTP Interface and store them in Readings.
- It queries a given URL with Headers and data defined by attributes.
- From the HTTP Response it extracts Readings named in attributes using Regexes also defined by attributes.
-
- Prerequisites
-
-
-
- This Module uses the non blocking HTTP function HttpUtils_NonblockingGet provided by FHEM's HttpUtils in a new Version published in December 2013.
- If not already installed in your environment, please update FHEM or install it manually using appropriate commands from your environment.
-
-
-
-
-
-
- Define
-
-
- define <name> HTTPMOD <URL> <Interval>
-
- The module connects to the given URL every Interval seconds, sends optional headers and data and then parses the response
-
- Example:
-
-
- Specify optional headers as attr requestHeader1 to attr requestHeaderX,
- optional POST data as attr requestData and then
- pairs of attr readingNameX and attr readingRegexX to define which readings you want to extract from the HTTP
- response and how to extract them.
-
- If you need to do some calculation on a raw value before it is used as a reading you can define the attribute readingsExprX
- which can use the raw value from the variable $val
-
-
- Defines the HTTP server. <infix> is the portion behind the FHEMWEB base URL (usually
- http://hostname:8083/fhem), <directory> is the absolute path the
- files are served from, and <friendlyname> is the name displayed in the side menu of FHEMWEB.
-
- Example:
-
- define myJSFrontend HTTPSRV jsf /usr/share/jsfrontend My little frontend
-
-
-
-
-
- Set
-
- n/a
-
-
-
-
- Attributes
-
-
-
directoryindex: if the request is sent with no filename, i.e. the infix (with or without trailing slash) only, the file given in this attribute is loaded. Defaults to index.html.
-
-
-
- Usage information
-
-
-
- The above example on http://hostname:8083/fhem will return the file
- /usr/share/jsfrontend/foo.html for http://hostname:8083/fhem/jsf/foo.html.
- If no filename is given, the filename prescribed by the directoryindex attribute is returned.
-
- Notice: All links are relative to http://hostname:8083/fhem.
-
-
-
-
-
-
HUEBridge
-
- Module to access the bridge of the phillips hue lighting system.
-
- The actual hue bulbs, living colors or living whites devices are defined as HUEDevice devices.
-
-
- All newly found devices and groups are autocreated at startup and added to the room HUEDevice.
-
-
- Notes:
-
-
This module needs JSON.
- Please install with 'cpan install JSON' or your method of choice.
-
autocreate only works for the first bridge. devices on other bridges have to be manualy defined.
-
-
-
-
-
- Define
-
- define <name> HUEBridge [<host>] [<interval>]
-
-
- Defines a HUEBridge device with address <host>.
-
- If [<host>] is not given the module will try to autodetect the bridge with the hue portal services.
-
- The bridge status will be updated every <interval> seconds. The default and minimum is 60.
-
- After a new bridge is created the pair button on the bridge has to be pressed.
-
- Examples:
-
- define bridge HUEBridge 10.0.1.1
-
-
-
-
- Set
-
-
devices
- list the devices known to the bridge.
-
groups
- list the groups known to the bridge.
-
-
-
- Set
-
-
statusRequest
- Update bridge status.
-
swupdate
- Update bridge firmware. This command is only available if a new firmware is available (indicated by updatestate with a value of 2. The version and release date is shown in the reading swupdate.
- A notify of the form define HUEUpdate notify bridge:swupdate.* {...} can be used to be informed about available firmware updates.
-
-
-
-
-
HUEDevice
-
-
-
- Define
-
- define <name> HUEDevice [group] <id> [<interval>]
-
-
- Defines a device connected to a HUEBridge.
-
- This can be a hue bulb, a living colors light or a living whites bulb or dimmer plug.
-
- The device status will be updated every <interval> seconds. The default and minimum is 60. Groups are updated only on definition and statusRequest
multiple paramters can be set at once separated by :
- Examples:
- set LC on : transitiontime 100
- set bulb on : bri 100 : color 4000
-
-
-
-
- Get
-
-
rgb
-
RGB
-
devStateIcon
- returns html code that can be used to create an icon that represents the device color in the room overview.
-
-
-
- Attributes
-
-
color-icon
- 1 -> use lamp color as icon color and 100% shape as icon shape
- 2 -> use lamp color scaled to full brightness as icon color and dim state as icon shape
-
subType
- colordimmer, dimmer or switch, default is initialized according to device model.
-
delayedUpdate
- 1 -> the update of the device status after a set command will be delayed for 1 second. usefull if multiple devices will ne switched.
-
-
devStateIcon
- will be initialized to {(HUEDevice_devStateIcon($name),"toggle")} to show device color as default in room overview.
-
webCmd
- will be initialized to rgb:rgb FF0000:rgb C8FF12:rgb 0000FF:toggle:on:off to show colorpicker and 3 color preset buttons in room overview.
-
- to set a weekly profile for <device>, eg. a heating sink.
- You can define different switchingtimes for every day.
-
- The new temperature is sent to the <device> automatically with
-
- set <device> (desired-temp|desiredTemerature) <temp>
-
- Because of the fhem-type of structures, a structures of heating sinks is sent "desired-temp":
- Use an explicit command if you have structures of MAX heating thermostats.
- If you have defined a <condition> and this condition is false if the switchingtime has reached, no command will executed.
- A other case is to define an own perl command with <command>.
-
- The following parameter are defined:
-
device
- The device to switch at the given time.
-
-
-
language
- Specifies the language used for definition and profiles.
- de,en,fr are possible. The parameter is optional.
-
-
-
profile
- Define the weekly profile. All timings are separated by space. One switchingtime are defined
- by the following example:
-
[<weekdays>|]<time>|<parameter>
- weekdays: optional, if not set every day is using.
- Otherwise you can define one day as number or as shortname.
- time:define the time to switch, format: HH:MM:[SS](HH in 24 hour format) or a Perlfunction like {sunrise_abs()}
- parameter:the temperature to be set, using a float with mask 99.9 or a sybolic value like eco or comfort - whatever your thermostat understands.
- The symbolic value can be added an additional parameter: dayTemp:16 night-temp:15. See examples
-
-
-
command
- If no condition is set, all others is interpreted as command. Perl-code is setting up
- by well-known Block with {}.
- Note: if a command is defined only this command are executed. In case of executing
- a "set desired-temp" command, you must define it explicit.
- The following parameter are replaced:
-
-
@ => the device to switch
-
% => the new temperature
-
-
-
-
condition
- if a condition is defined you must declare this with () and a valid perl-code.
- The returnvalue must be boolean.
- The parameter @ and % will be interpreted.
-
-
- Example:
-
- define HCB Heating_Control Bad_Heizung 12345|05:20|21 12345|05:25|comfort 17:20|21 17:25|eco
- Mo-Fr are setting the temperature at 05:20 to 21°C, and at 05:25 to comfort.
- Every day will be set the temperature at 17:20 to 21°C and 17:25 to eco.
-
- define HCW Heating_Control WZ_Heizung 07:00|16 Mo,Tu,Th-Fr|16:00|18.5 20:00|12
- {fhem("set dummy on"); fhem("set @ desired-temp %");}
- At the given times and weekdays only(!) the command will be executed.
-
- define HCW Heating_Control WZ_Heizung Sa-Su,We|08:00|21 (ReadingsVal("WeAreThere", "state", "no") eq "yes")
- The temperature is only set if the dummy variable WeAreThere is "yes".
-
- define HCW Heating_Control WZ_Heizung en Su-Fr|{sunrise_abs()}|21 Mo-Fr|{sunset_abs()}|16
- The device is switched at sunrise/sunset. Language: english.
-
- define HCW Heating_Control WZ_Heizung en Mo-Fr|{myFunction}|night-temp:18 Mo-Fr|{myFunction()}|dayTemp:16
- The is switched at time myFunction(). It is sent the Command "night-temp 18" and "dayTemp 16".
-
- If you want to have set all Heating_Controls their current value (after a temperature lowering phase holidays)
- you can call the function Heating_Control_SetAllTemps ().
- This call can be automatically coupled to a dummy by notify:
- define HeizStatus2 notify Heating:. * {Heating_Control_SetAllTemps ()}
-
-
windowSensor Defines a list of window sensors. When one of its window state readings is open the aktual switch is delayed.
-
-
-
-
I2C_BMP180
-
-
-
- With this module you can read values from the digital pressure sensors BMP180 and BMP085
- via the i2c bus on Raspberry Pi.
- There are two possibilities connecting to I2C bus:
-
-
via RPII2C module
- The I2C messages are send through an I2C interface module like RPII2C, FRM
- or NetzerI2C so this device must be defined first.
- attribute IODev must be set
-
-
via HiPi library
- Add these two lines to your /etc/modules file to load the I2C relevant kernel modules
- automaticly during booting your Raspberry Pi.
-
- To change the permissions of the I2C device create file:
-
/etc/udev/rules.d/98_i2c.rules
- with this content:
-
SUBSYSTEM=="i2c-dev", MODE="0666"
- Reboot
-
- To use the sensor on the second I2C bus at P5 connector
- (only for version 2 of Raspberry Pi) you must add the bold
- line of following code to your FHEM start script:
-
case "$1" in
- 'start')
- sudo hipi-i2c e 0 1
- ...
-
-
-
- Define
-
- define BMP180 I2C_BMP180 [<I2C device>]
- <I2C device> must not be used if you connect via RPII2C module. For HiPi it's mandatory.
-
- Examples:
-
- Reads the current temperature and pressure values from sensor.
- Normaly this execute automaticly at each poll intervall. You can execute
- this manually if you want query the current values.
-
-
-
-
- Get
-
- N/A
-
-
-
-
- Attributes
-
-
oversampling_settings
- Controls the oversampling setting of the pressure measurement in the sensor.
- Default: 3, valid values: 0, 1, 2, 3
-
-
poll_interval
- Set the polling interval in minutes to query the sensor for new measured
- values.
- Default: 5, valid values: 1, 2, 5, 10, 20, 30
-
-
roundTemperatureDecimal
- Round temperature values to given decimal places.
- Default: 1, valid values: 0, 1, 2
-
-
roundPressureDecimal
- Round temperature values to given decimal places.
- Default: 1, valid values: 0, 1, 2
-
-
altitude
- if set, this altitude is used for calculating the pressure related to sea level (nautic null) NN
- Note: this is a global attributes, e.g
-
- attr global altitude 220
-
-
-
-
-
-
-
-
I2C_DS1307
-
- reads a DS1307 real-time clock chip via I2C.
-
- Requires a defined I2C-device to work.
-
-
- Define
-
- drives LiquidCrystal Displays (LCD) that are connected to Firmata (via I2C).
- Supported are Displays that use a PCF8574T as I2C Bridge (as found on eBay when searching for
- 'LCD' and 'I2C'). Tested is the 1602 type (16 characters, 2 Lines), the 2004 type (and other cheap chinise-made
- I2C-LCDs for Arduino) ship with the same library, so they should work as well.
- See http://arduino.cc/en/Tutorial/LiquidCrystal for details about
- how to hook up the LCD to the arduino.
-
- Requires a defined I2C-device to work.
- this I2C-device has to be configures for i2c by setting attr 'i2c-config' on the I2C-device
-
-
- Define
-
-
- Provides an interface to the PCA9532 I2C 16 channel PWM IC.
- The PCA9532 has 2 independent PWM stages and every channel can be attached to on of these stages or directly turned on or off.
- The I2C messages are send through an I2C interface module like RPII2C, FRM
- or NetzerI2C so this device must be defined first.
- attribute IODev must be set
-
- Define
-
- define <name> I2C_PCA9532 <I2C Address>
- where <I2C Address> is an 2 digit hexadecimal value
-
-
-
- Set
-
- set <name> <port> <value>
-
-
if <port> is one of Port0 to Port15, then <value> will be one of:
-
-
- off
- on
- PWM0 (output is switched with PWM0 frequency and duty cycle)
- PWM1 (output is switched with PWM1 frequency and duty cycle)
-
-
-
-
- if <port> is PWM0 or PWM1, then <value> is an value between 0 and 255 and stands for the duty cycle of the PWM stage.
-
-
-
- Examples:
-
- set mod1 Port4 PWM1
- set mod1 PWM1 128
-
-
-
-
- Get
-
- get <name>
-
- refreshes all readings
-
-
-
- Attributes
-
-
poll_interval
- Set the polling interval in minutes to query the GPIO's level
- Default: -, valid values: decimal number
-
-
InputPorts
- Space separated list of Portnumers that are used as Inputs
- Ports in this list can't be written
- Default: no, valid values: 0 1 2 .. 15
-
-
T0/T1
- Sets PWM0/PWM1 to another Frequency. The Formula is: Fx = 152/(Tx + 1) The corresponding frequency value is shown under internals.
- Default: 0 (152Hz), valid values: 0-255
-
- Provides an interface to the PCA9532 8 channel port extender IC. On Raspberry Pi the Interrupt Pin can be connected to an GPIO and RPI_GPIO can be used to get the port values if an interrupt occurs.
- The I2C messages are send through an I2C interface module like RPII2C, FRM
- or NetzerI2C so this device must be defined first.
- attribute IODev must be set
-
- Define
-
- define <name> I2C_PCF8574 <I2C Address>
- where <I2C Address> is an 2 digit hexadecimal value
-
-
-
- Set
-
- set <name> <port> <value>
-
-
<port> is one of Port0 to Port7 and <value> is one of:
-
-
- off
- on
-
-
-
-
-
- Example:
-
- set mod1 Port4 on
-
-
-
-
- Get
-
- get <name>
-
- refreshes all readings
-
-
-
- Attributes
-
-
poll_interval
- Set the polling interval in minutes to query the GPIO's level
- Default: -, valid values: decimal number
-
-
InputPorts
- Space separated list of Portnumers that are used as Inputs
- Ports in this list can't be written
- Default: no, valid values: 0 1 2 .. 7
-
- Provides an interface to the SHT21 I2C Humidity sensor from Sensirion.
- The I2C messages are send through an I2C interface module like RPII2C, FRM
- or NetzerI2C so this device must be defined first.
- attribute IODev must be set
-
- Define
-
- define <name> I2C_SHT21 [<I2C Address>]
- where <I2C Address> is an 2 digit hexadecimal value
-
-
- Set
-
- set <name> readValues
- Reads the current temperature and humidity values from sensor.
-
-
- Attributes
-
-
poll_interval
- Set the polling interval in minutes to query data from sensor
- Default: 5, valid values: 1,2,5,10,20,30
-
-
roundHumidityDecimal
- Number of decimal places for humidity value
- Default: 1, valid values: 0 1 2
-
-
roundTemperatureDecimal
- Number of decimal places for temperature value
- Default: 1, valid values: 0,1,2
- IF (<condition>) (<FHEM commands1>) ELSE (<FHEM commands2>)
-
- Executes <FHEM commands1> if <condition> is true, else <FHEM commands2> are executed.
-
- IF can be used anywhere where FHEM commands can be used.
-
- The ELSE-case is optional.
-
- The <condition> is the same as in perl-if.
-
- In addition, readings can be specified in the form:
-
- [<device>:<reading>:<format>|[<regular expression>]]
-
- In addition, internals can be specified with & in the form:
-
- [<device>:&<internal>:<format>|[<regular expression>]]
-
- <format> and [<regular expression>] are filter options und are optional.
-
- possible <format>:
-
- 'd' for decimal number
-
- If only the state of a device is to be used, then only the device can be specified:
-
- [<device>] corresponsed to [<device>:&STATE]
-
- Examples:
-
- IF in combination with at-module, Reading specified in the condition:
-
- define check at +00:10 IF ([outdoor:humidity] > 70) (set switch1 off) ELSE (set switch1 on)
-
- IF state query of the device "outdoor" in the condition:
-
- define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)
-
- corresponds with details of the internal:
-
- define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)
-
- If the reading "state" to be queried, then the name of reading is specified without &:
-
- define check at +00:10 IF ([outdoor:state] eq "open") (set switch1 on)
-
- Nested IF commands (It can be entered in the DEF input on multiple lines with indentation for better representation):
-
- define test notify lamp
- IF ([lampe] eq "on") (
-
- IF ([outdoor:humidity] < 70)
- (set lamp off)
- ELSE
- (set lamp on)
-
- ) ELSE
- (set switch on)
-
- Filter by numbers in Reading "temperature":
-
- define settemp at 22:00 IF ([tempsens:temperature:d] >= 10) (set heating on)
-
- Filter by "on" and "off" in the status of the device "move":
-
- define activity notify move IF ([move:&STATE:[(on|off)] eq "on" and $we) (set lamp off)
-
- Example of the use of Readings in the then-case:
-
- define temp at 18:00 IF ([outdoor:temperature] > 10) (set lampe [dummy])
-
- If an expression is to be evaluated first in a FHEM command, then it must be enclosed in braces.
- For example, if at 18:00 clock the outside temperature is higher than 10 degrees, the desired temperature is increased by 1 degree:
-
- define temp at 18:00 IF ([outdoor:temperature] > 10) (set thermostat desired-temp {[thermostat:desired-temp:d]+1})
-
- Multiple commands are separated by a comma instead of a semicolon, thus eliminating the doubling, quadrupling, etc. of the semicolon:
-
- define check at +00:10 IF ([outdoor:humidity] > 10) (set switch1 off,set switch2 on) ELSE (set switch1 on,set switch2 off)
-
- If a comma in FHEM expression occurs, this must be additionally bracketed so that the comma is not recognized as a delimiter:
-
- define check at +00:10 IF ([outdoor:humidity] > 10) ((set switch1,switch2 off))
-
- IF in combination with a define at multiple set commands:
-
- define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 set lampe1 on;;set lampe2 off;;set temp desired 20)
-
- The comma can be combined as a separator between the FHEM commands with double semicolon, eg:
-
- define check at *10:00 IF ([indoor] eq "on") (set lamp1 on,define a_test at +00:10 set lampe2 on;;set lampe3 off;;set temp desired 20)
-
- Time-dependent switch: In the period 20:00 to 22:00 clock the light should go off when it was on and I leave the room:
-
- define n_lamp_off notify sensor IF ($hms gt "20:00" and $hms lt "22:00" and [sensor] eq "absent") (set lamp:FILTER=STATE!=off off)
-
- Combination of Perl and FHEM commands ($NAME and $EVENT can also be used):
-
- define mail notify door:open IF ([alarm] eq "on")({system("wmail $NAME:$EVENT")},set alarm_signal on)
-
-
-
-
IPCAM
-
-
-
-
- Define
-
- define <name> IPCAM <ip[:port]>
-
-
- Defines a network camera device to trigger snapshots on events.
-
-
- Network cameras (IP cameras) usually have a build-in function to create
- snapshot images. This module enables the event- or time-controlled
- recording of these images.
-
- In addition, this module allows the recording of many image formats like
- JPEG, PNG, GIF, TIFF, BMP, ICO, PPM, XPM, XBM and SVG. The only requirement
- is that the recorded image must be accessible via a URL.
-
- So it is also possible to record images of e.g. a public Weather Camera
- from the internet or any picture of a website.
-
- Furthermore, it is possible to control the camera via PTZ-mode or custom commands.
-
-
- Examples:
-
-
- A local ip-cam takes 5 snapshots with 10 seconds delay per call:
-
-
-
- A public web-cam takes only 1 snapshot per call:
-
-
- define schloss IPCAM www2.braunschweig.de
- attr schloss path webcam/schloss.jpg
- attr schloss storage /srv/share/surveillance/snapshots
-
-
- An at-Job takes every hour a snapshot:
-
-
- define snapshot_schloss at +*00:01:00 get schloss image
-
-
- Move the camera up:
-
-
- set ipcam tilt up
-
-
- Move the camera to a the predefined position 4:
-
-
- set ipcam pos 4
-
-
-
-
-
- Set
-
- set <name> <value> <argument>
-
-
- where value is one of:
-
-
-
cmd 1 .. 15
- Sets the camera to a custom defined command. The command must be defined as an
- attribute first.
-
- You can define up to 15 custom commands. The given number always relates to an
- equivalent attribute cmd<number>.
-
-
pan <direction> [steps]
- Move the camera to the given <direction>, where <direction>
- could be left or right.
-
- The command always relates to an equivalent attribute cmdPan<direction>.
-
- Furthermore, a step size can be specified, which relates to the equivalent attribute
- cmdStep.
-
-
pos 1 .. 15|home
- Sets the camera to a custom defined position in PTZ mode. The position must be
- defined as an attribute first.
-
- You can define up to 15 custom positions and a predefined home position. The given
- number always relates to an equivalent attribute cmdPos<number>.
-
-
tilt <direction> [steps]
- Move the camera to the given <direction>, where <direction>
- could be up or down.
-
- The command always relates to an equivalent attribute cmdPan<direction>.
-
- Furthermore, a step size can be specified, which relates to the equivalent attribute
- cmdStep.
-
-
raw <argument>
- Sets the camera to a custom defined argument.
-
-
-
-
-
-
- Get
-
- get <name> <value>
-
-
- where value is one of:
-
-
-
image
- Get one or more images of the defined IP-Cam. The number of images
- and the time interval between images can be specified using the
- attributes snapshots and delay.
-
-
last
- Show the name of the last snapshot.
-
-
snapshots
- Show the total number of a image sequence.
-
-
-
-
-
-
- Attributes
-
-
- basicauth
- If your camera supports authentication like http://username:password@domain.com/, you
- can store your creditials within the basicauth attribute.
- If you prefer to store the credentials in a file (take a look at the attribute credentials)
- you have to set the placeholder {USERNAME} and {PASSWORD} in the basicauth string.
- These placeholders will be replaced with the values from the credentials file.
- Example: attr ipcam3 basicauth {USERNAME}:{PASSWORD}
-
-
- cmd01, cmd02, cmd03, .. cmd13, cdm14, cdm15
- It is possible to define up to 15 custom commands.
- Examples:
- attr ipcam cmd01 led_mode=0
- attr ipcam cmd02 resolution=8
-
-
- cmdPanLeft, cmdPanRight, cmdTiltUp, cmdTiltDown, cmdStep
- Depending of the camera model, are different commands necessary.
- Examples:
- attr ipcam cmdTiltUp command=0
- attr ipcam cmdTiltDown command=2
- attr ipcam cmdPanLeft command=4
- attr ipcam cmdPanRight command=6
- attr ipcam cmdStep onstep
-
-
- cmdPos01, cmdPos02, cmdPos03, .. cmdPos13, cmdPos14, cmdPos15, cmdPosHome
- It is possible to define up to 15 predefined position in PTZ-mode.
- Examples:
- attr ipcam cmdPosHome command=25
- attr ipcam cmdPos01 command=31
- attr ipcam cmdPos02 command=33
-
-
- credentials
- Defines the location of the credentials file.
- If you prefer to store your cam credentials in a file instead be a part of the
- URI (see attributes path and query), set the full path
- with filename on this attribute.
- Example:
- attr ipcam3 credentials /etc/fhem/ipcam.conf
-
- The credentials file has the following structure:
-
- Replace <name_cam1> respectively <name_cam2>
- with the names of your defined ip-cams and <your_username> respectively
- <your_password> with your credentials (all without the brackets
- < and >!).
-
-
- delay
- Defines the time interval between snapshots in seconds.
- If more then one snapshot is taken, then it makes sense to define a short delay
- between the snapshots. On the one hand, the camera is not addressed in short intervals
- and the second may be better represented movements between images.
- Example: attr ipcam3 delay 10
-
- path
- Defines the path and query component of the complete URI to get a snapshot of the
- camera. Is the full URI of your ip-cam for example http://CAMERA_IP/snapshot.cgi?user=admin&pwd=password,
- then only the path and query part is specified here (without the leading slash (/).
- Example:
- attr ipcam3 path snapshot.cgi?user=admin&pwd=password
-
- If you prefer to store the credentials in a file (take a look at the attribute credentials)
- you have to set the placeholder {USERNAME} and {PASSWORD} in the path string. These placeholders
- will be replaced with the values from the credentials file.
- Example:
- attr ipcam3 path snapshot.cgi?user={USERNAME}&pwd={PASSWORD}
-
-
- pathCmd
- Defines a path for the custom commands, if it is necessary.
- Example:
- attr ipcam3 pathCmd set_misc.cgi
-
-
- pathPanTilt
- Defines a path for the PTZ-mode commands pan, tilt and pos,
- if it is necessary.
- Example:
- attr ipcam3 pathPanTilt decoder_control.cgi?user={USERNAME}&pwd={PASSWORD}
-
- snapshots
- Defines the total number of snapshots to be taken with the get <name> image command.
- If this attribute is not defined, then the default value is 1.
- The snapshots are stored in the given path of the attribute storage and are
- numbered sequentially (starts with 1) like snapshot_01, snapshot_02, etc.
- Furthermore, an additional file last will be saved, which is identical with
- the last snapshot-image. The module checks the imagetype and stores all these files with
- the devicename and a correct extension, e.g. <devicename>_snapshot_01.jpg.
- If you like a timestamp instead a sequentially number, take a look at the attribute timestamp.
- All files are overwritten on every get <name> image command (except: snapshots
- with a timestamp. So, keep an eye on your diskspace if you use a timestamp extension!).
- Example:
- attr ipcam3 snapshots 5
-
-
- storage
- Defines the location for the file storage of the snapshots.
- Default: $modpath/www/snapshots
- Example:
- attr ipcam3 storage /srv/share/surveillance/snapshots
-
-
- timestamp
- If this attribute is unset or set to 0, snapshots are stored with a sequentially number
- like <devicename>_snapshot_01.jpg, <devicename>_snapshot_02.jpg, etc.
- If you like filenames with a timestamp postfix, e.g. <devicename>_20121023_002602.jpg,
- set this attribute to 1.
-
-
- Define a IPWE network attached weather data receiver device sold by ELV. Details see here.
- It's intended to receive the same sensors as WS300 (8 T/H-Sensors and one kombi sensor),
- but can be accessed via http and telnet.
-
- For unknown reason, my try to use the telnet interface was not working neither with raw sockets
- nor with Net::Telnet module. Therefore i choosed here the "easy" way
- to simple readout the http page and extract all data from the offered table. For this reason this module doesnt
- contain any option to configure this device.
-
Note: You should give your sensors a name within the web interface, once they a received the first time.
- To extract a single sensor simply match for this name or sensor id
-
-
- Attributes:
-
-
delay: seconds between read accesses(default 300s)
-
-
-
- Example:
-
- define ipwe IPWE ipwe1 120
-
-
- attr ipwe delay 600 : 10min between readouts
-
-
-
-
- Set
N/A
-
-
- Get
-
- get <name> status
-
- Gets actual data from device for sensors with data
-
- get <name> <sensorname>
-
- will grep output from device for this sensorname
-
- The InterTechno 433MHZ protocol is used by a wide range of devices, which are either of
- the sender/sensor category or the receiver/actuator category. As we right now are only
- able to SEND InterTechno commands, but CAN'T receive them, this module at the moment
- supports just devices like switches, dimmers, etc. through an CUL device, so this must be defined first.
-
-
-
-
- Define
-
- define <name> IT <housecode> <on-code> <off-code>
- [<dimup-code>] [<dimdown-code>]
- or
- define <name> IT <ITRotarySwitches|FLS100RotarySwitches>
-
-
- The value of housecode is a 10-digit InterTechno Code, consisting of 0/1/F as it is
- defined as a tri-state protocol. These digits depend on your device you are using.
-
- Bit 11/12 are used for switching/dimming. As different manufacturers are using
- different bit-codes you can specifiy here the 2-digit code for off/on/dimup/dimdown
- in the same form: 0/1/F.
-
- The value of ITRotarySwitches consist of the value of the alpha switch A-P and
- the numeric switch 1-16 as set on the intertechno device. E.g. A1 or G12.
-
- The value of FLS100RotarySwitches consist of the value of the I,II,II,IV switch
- and the numeric 1,2,3,4 swicht. E.g. I2 or IV4.
-
- The value of ITRotarySwitches and FLS100RotarySwitches is internaly translated
- into a houscode value.
-
-
-
<housecode> is a 10 digit tri-state number (0/1/F) depending on
- your device setting (see list below).
-
<on-code> is a 2 digit tri-state number for switching your device on;
- It is appended to the housecode to build the 12-digits IT-Message.
-
<off-code> is a 2 digit tri-state number for switching your device off;
- It is appended to the housecode to build the 12-digits IT-Message.
-
The optional <dimup-code> is a 2 digit tri-state number for dimming your device up;
- It is appended to the housecode to build the 12-digits IT-Message.
-
The optional <dimdown-code> is a 2 digit tri-state number for dimming your device down;
- It is appended to the housecode to build the 12-digits IT-Message.
-
-
-
- Examples:
-
- define lamp IT 01FF010101 11 00 01 10
- define roll1 IT 111111111F 11 00 01 10
- define otherlamp IT 000000000F 11 10 00 00
- define otherroll1 IT FFFFFFF00F 11 10
- define itswitch1 IT A1
- define lamp IT J10
- define flsswitch1 IT IV1
- define lamp IT II2
-
-
-
-
-
- Set
-
- set <name> <value> [<time>]
-
- where value is one of:
-
- dimdown
- dimup
- off
- on
- on-till # Special, see the note
-
- Examples:
-
- set lamp on
- set lamp1,lamp2,lamp3 on
- set lamp1-lamp3 on
- set lamp off
-
-
- Notes:
-
-
on-till requires an absolute time in the "at" format (HH:MM:SS, HH:MM
- or { <perl code> }, where the perl-code returns a time
- specification).
- If the current time is greater than the specified time, then the
- command is ignored, else an "on" command is generated, and for the
- given "till-time" an off command is scheduleld via the at command.
-
-
-
-
-
- Get
N/A
-
-
- Attributes
-
-
-
IODev
- Set the IO or physical device which should be used for sending signals
- for this "logical" device. An example for the physical device is a CUL.
- Note: Upon startup fhem DOES NOT assigns an InterTechno device an
- IODevice! The attribute IODev needs to be used AT ANY TIME!
-
-
-
eventMap
- Replace event names and set arguments. The value of this attribute
- consists of a list of space separated values, each value is a colon
- separated pair. The first part specifies the "old" value, the second
- the new/desired value. If the first character is slash(/) or komma(,)
- then split not by space but by this character, enabling to embed spaces.
- Examples:
- attr store eventMap on:open off:closed
- attr store eventMap /on-for-timer 10:open/off:closed/
- set store open
-
dummy
- Set the device attribute dummy to define devices which should not
- output any radio signals. Associated notifys will be executed if
- the signal is received. Used e.g. to react to a code from a sender, but
- it will not emit radio signal if triggered in the web frontend.
-
model
- The model attribute denotes the model type of the device.
- The attributes will (currently) not be used by the fhem.pl directly.
- It can be used by e.g. external programs or web interfaces to
- distinguish classes of devices and send the appropriate commands
- (e.g. "on" or "off" to a switch, "dim..%" to dimmers etc.).
- The spelling of the model names are as quoted on the printed
- documentation which comes which each device. This name is used
- without blanks in all lower-case letters. Valid characters should be
- a-z 0-9 and - (dash),
- other characters should be ommited. Here is a list of "official"
- devices:
- Sender/Sensor: itremote
-
- Dimmer: itdimmer
-
- Receiver/Actor: itswitch
-
-
-
-
-
ignore
- Ignore this device, e.g. if it belongs to your neighbour. The device
- won't trigger any FileLogs/notifys, issued commands will silently
- ignored (no RF signal will be sent out, just like for the dummy attribute). The device won't appear in the
- list command (only if it is explicitely asked for it), nor will it
- appear in commands which use some wildcard/attribute as name specifiers
- (see devspec). You still get them with the
- "ignored=1" special devspec.
-
-
-
-
-
-
- Generated events:
-
- From an IT device you can receive one of the following events.
-
on
-
off
-
dimdown
-
dimup
- Which event is sent is device dependent and can sometimes configured on
- the device.
-
-
-
-
-
-
-
ITACH_RELAY
-
- Note: this module needs the Net::Telnet module.
-
-
- Define
-
- define <name> ITACH_RELAY <ip-address> <port>
-
- Defines an Global Cache iTach Relay device (Box with 3 relays) via its ip address.
-
-
- Examples:
-
- define motor1 ITACH_RELAY 192.168.8.200 1
-
-
-
-
-
- Set
-
- set <name> <value>
-
- where value is one of:
-
- off
- on
- toggle
-
- Examples:
-
- set motor1 on
-
-
- Notes:
-
-
Toggle is special implemented. List name returns "on" or "off" even after a toggle command
-
-
-
-
-
-
JSONMETER
-
- This module reads data from a measurement unit (so called smart meters for electricity, gas or heat)
-
- that provides OBIS compliant data in JSON format on a webserver or on the FHEM file system.
-
- It assumes normally, that the structur of the JSON data do not change.
-
-
-
-
- Define
-
[poll-interval]
-
- Default is 300 seconds. Smallest possible value is 10. With 0 it will only update on "manual" request.
-
-
<deviceType>
-
- Used to define the path and port to extract the json file.
-
- The attribute 'pathString' can be used to add login information to the URL path of predefined devices.
-
-
-
ITF - FROETEC Simplex ME one tariff electrical meter (N-ENERGY) (ITF Fröschl)
-
EFR - EFR Smart Grid Hub for electrical meter (EON, N-ENERGY and EnBW)
-
- use the 'pathstring' attribute to specifiy your login information
-
- attr pathString ?LogName=user&LogPSWD=password
-
-
LS110 - YouLess LS110 network sensor (counter) for electro mechanical electricity meter
-
url - use the URL defined via the attributes 'pathString' and 'port'
-
file - use the file defined via the attribute 'pathString' (positioned in the FHEM file system)
-
-
-
-
-
- Set
-
-
INTERVAL <polling interval>
- Polling interval in seconds
-
-
statusRequest
- Update device information
-
-
restartJsonAnalysis
- Restarts the analysis of the json file for known readings (compliant to the OBIS standard).
-
- This analysis happens normally only once if readings have been found.
-
-
-
- Get
-
-
jsonFile
-
- extracts and shows the json data
-
-
jsonAnalysis
-
- extracts the json data and shows the result of the analysis
-
-
-
-
- Attributes
-
-
alwaysAnalyse < 0 | 1 >
-
- Repeats by each update the json analysis - use if structure of json data changes
-
- Normally the once analysed structure is saved to reduce CPU load.
-
-
doStatistics < 0 | 1 >
-
- Builds daily, monthly and yearly statistics for certain readings (average/min/max or cumulated values).
-
- Logging and visualisation of the statistics should be done with readings of type 'statReadingNameLast'.
-
-
pathString <string>
-
-
if deviceType = 'file': specifies the local file name and path
-
if deviceType = 'url': specifies the url path
-
other deviceType: can be used to add login information to the url path of predefined devices
-
-
-
port <number>
-
- Specifies the IP port for the deviceType 'url' (default is 80)
-
- The JeeLink is a family of RF devices sold by jeelabs.com.
-
- It is possible to attach more than one device in order to get better
- reception, fhem will filter out duplicate messages.
-
- This module provides the IODevice for the PCA301 modules that implements the PCA301 protocoll.
- In the future other RF devices like the Energy Controll 3000, JeeLabs room nodes, fs20 or kaku devices will be supportet.
-
- Note: this module may require the Device::SerialPort or Win32::SerialPort
- module if you attach the device via USB and the OS sets strange default
- parameters for serial devices.
-
-
- <device> specifies the serial port to communicate with the JeeLink.
- The name of the serial-device depends on your distribution, under
- linux the cdc_acm kernel module is responsible, and usually a
- /dev/ttyACM0 device will be created. If your distribution does not have a
- cdc_acm module, you can force usbserial to handle the JeeLink by the
- following command:
modprobe usbserial vendor=0x0403
- product=0x6001
In this case the device is most probably
- /dev/ttyUSB0.
-
- You can also specify a baudrate if the device name contains the @
- character, e.g.: /dev/ttyACM0@57600
-
- If the baudrate is "directio" (e.g.: /dev/ttyACM0@directio), then the
- perl module Device::SerialPort is not needed, and fhem opens the device
- with simple file io. This might work if the operating system uses sane
- defaults for the serial parameters, e.g. some Linux distributions and
- OSX.
-
-
-
-
-
-
-
- Set
-
-
raw <datar>
- send <data> as a raw message to the JeeLink to be transmitted over the RF link.
-
-
LaCrossePairForSec <sec> [ignore_battery]
- enable autocreate of new LaCrosse sensors for <sec> seconds. if ignore_battery is not given only sensors
- sending the 'new battery' flag will be created.
-
-
-
-
- Get
-
-
-
-
- Attributes
-
-
-
-
-
-
-
JsonList
-
- Note: this command is deprecated, use jsonlist2 instead.
-
- jsonlist [<devspec>|<typespec>|ROOMS]
-
- Returns an JSON tree of all definitions, all notify settings and all at
- entries if no parameter is given. Can also be called via HTTP by
- http://fhemhost:8083/fhem?cmd=jsonlist&XHR=1
-
- This is a command, to be issued on the command line (FHEMWEB or telnet
- interface). Can also be called via HTTP by
-
- http://fhemhost:8083/fhem?cmd=jsonlist2&XHR=1
-
- Returns an JSON tree of the internal values, readings and attributes of the
- requested definitions.
- Note: the old command jsonlist (without the 2 as suffix) is deprecated
- and will be removed in the future
-
-
-
-
KM271
-
- KM271 is the name of the communication device for the Buderus Logamatic 2105
- or 2107 heating controller. It is connected via a serial line to the fhem
- computer. The fhem module sets the communication device into log-mode, which
- then will generate an event on change of the inner parameters. There are
- about 20.000 events a day, the FHEM module ignores about 90% of them, if the
- all_km271_events attribute is not set.
-
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module.
-
-
-
- Define
-
- define <name> KM271 <serial-device-name>
-
- Example:
-
- define KM271 KM271 /dev/ttyS0@2400
-
-
-
-
-
- Set
-
- set KM271 <param> [<value> [<values>]]
- where param is one of:
-
-
hk1_tagsoll <temp>
- sets the by day temperature for heating circuit 1
- 0.5 celsius resolution - temperature between 10 and 30 celsius
-
hk2_tagsoll <temp>
- sets the by day temperature for heating circuit 2
- (see above)
-
hk1_nachtsoll <temp>
- sets the by night temperature for heating circuit 1
- (see above)
-
hk2_nachtsoll <temp>
- sets the by night temperature for heating circuit 2
- (see above)
-
hk1_betriebsart [automatik|nacht|tag]
- sets the working mode for heating circuit 1
-
-
automatik: the timer program is active and the summer configuration is in effect
-
nacht: manual by night working mode, no timer program is in effect
-
tag: manual by day working mode, no timer program is in effect
-
-
hk2_betriebsart [automatik|nacht|tag]
- sets the working mode for heating circuit 2
- (see above)
-
ww_soll <temp>
- sets the hot water temperature
- 1.0 celsius resolution - temperature between 30 and 60 celsius
-
ww_betriebsart [automatik|nacht|tag]
- sets the working mode for hot water
-
-
automatik: hot water production according to the working modes of both heating circuits
-
nacht: no hot water at all
-
tag: manual permanent hot water
-
-
ww_on-for-timer [period]
- start hot water production for the given period
- period must have the format HH:MM
- ww_betriebsart is set according to the attribut ww_timermode. For switching-off hot water a single one-time at command is automatically generated which will set ww_betriebsart back to nacht
-
hk1_programm [eigen|familie|frueh|spaet|vormittag|nachmittag|mittag|single|senior]
- sets the timer program for heating circuit 1
-
-
eigen: the custom program defined by the user (see below) is used
-
all others: predefined programs from Buderus for various situations (see Buderus manual for details)
-
-
hk2_programm [eigen|familie|frueh|spaet|vormittag|nachmittag|mittag|single|senior]
- sets the timer program for heating circuit 2
- (see above)
-
hk1_timer [<position> delete|<position> <on-day> <on-time> <off-day> <off-time>]
- sets (or deactivates) a by day working mode time interval for the custom program of heating circuit 1
-
-
position: addresses a slot of the custom timer program and must be between 1 and 21
- The slot will be set to the interval specified by the following on- and off-timepoints or is deactivated when the next argument is delete.
-
on-day: first part of the on-timepoint
- valid arguments are [mo|di|mi|do|fr|sa|so]
-
on-time: second part of the on-timepoint
- valid arguments have the format HH:MM (supported resolution: 10 min)
-
off-day: first part of the off-timepoint
- (see above)
-
off-time: second part of the off-timepoint
- valid arguments have the format HH:MM (supported resolution: 10 min)
-
- As the on-timepoint is reached, the heating circuit is switched to by day working mode and when the off-timepoint is attained, the circuit falls back to by night working mode.
- A program can be build up by chaining up to 21 of these intervals. They are ordered by the position argument. There's no behind the scene magic that will automatically consolidate the list.
- The consistency of the program is in the responsibility of the user.
-
- Example:
-
- set KM271 hk1_timer 1 mo 06:30 mo 08:20
-
- This will toogle the by day working mode every Monday at 6:30 and will fall back to by night working mode at 8:20 the same day.
-
hk2_timer [<position> delete|<position> <on-day> <on-time> <off-day> <off-time>]
- sets (or deactivates) a by day working mode time interval for the custom program of heating circuit 2
- (see above)
-
logmode set to logmode / request all readings again
all_km271_events
- If this attribute is set to 1, do not ignore following events:
- HK1_Vorlaufisttemperatur, HK2_Vorlaufisttemperatur, Kessel_Vorlaufisttemperatur,
- Kessel_Integral, Kessel_Integral1
- These events account for ca. 92% of all events.
- All UNKNOWN events are ignored too, most of them were only seen
- directly after setting the device into logmode.
-
-
-
ww_timermode [automatik|tag]
- Defines the working mode for the ww_on-for-timer command (default is tag).
- ww_on-for-timer will set the ww_betriebsart of the heater according to this attribute.
-
-
-
-
-
-
-
- Generated events:
-
-
Abgastemperatur
-
Aussentemperatur
-
Aussentemperatur_gedaempft
-
Brenner_Ansteuerung
-
Brenner_Ausschalttemperatur
-
Brenner_Einschalttemperatur
-
Brenner_Laufzeit1_Minuten2
-
Brenner_Laufzeit1_Minuten1
-
Brenner_Laufzeit1_Minuten
-
Brenner_Laufzeit2_Minuten2
-
Brenner_Laufzeit2_Minuten1
-
Brenner_Laufzeit2_Minuten
-
Brenner_Mod_Stellglied
-
ERR_Fehlerspeicher1
-
ERR_Fehlerspeicher2
-
ERR_Fehlerspeicher3
-
ERR_Fehlerspeicher4
-
ERR_Letzter_Fehlerstatus
-
HK1_Ausschaltoptimierung
-
HK1_Betriebswerte1
-
HK1_Betriebswerte2
-
HK1_Einschaltoptimierung
-
HK1_Heizkennlinie_+10_Grad
-
HK1_Heizkennlinie_-10_Grad
-
HK1_Heizkennlinie_0_Grad
-
HK1_Mischerstellung
-
HK1_Pumpe
-
HK1_Raumisttemperatur
-
HK1_Raumsolltemperatur
-
HK1_Vorlaufisttemperatur
-
HK1_Vorlaufsolltemperatur
-
HK2_Ausschaltoptimierung
-
HK2_Betriebswerte1
-
HK2_Betriebswerte2
-
HK2_Einschaltoptimierung
-
HK2_Heizkennlinie_+10_Grad
-
HK2_Heizkennlinie_-10_Grad
-
HK2_Heizkennlinie_0_Grad
-
HK2_Mischerstellung
-
HK2_Pumpe
-
HK2_Raumisttemperatur
-
HK2_Raumsolltemperatur
-
HK2_Vorlaufisttemperatur
-
HK2_Vorlaufsolltemperatur
-
Kessel_Betrieb
-
Kessel_Fehler
-
Kessel_Integral
-
Kessel_Integral1
-
Kessel_Vorlaufisttemperatur
-
Kessel_Vorlaufsolltemperatur
-
Modulkennung
-
NoData
-
Versionsnummer_NK
-
Versionsnummer_VK
-
WW_Betriebswerte1
-
WW_Betriebswerte2
-
WW_Einschaltoptimierung
-
WW_Isttemperatur
-
WW_Pumpentyp
-
WW_Solltemperatur
-
-
- As I cannot explain all the values, I logged data for a period and plotted
- each received value in the following logs:
-
- All of these events are reported directly after initialization (or after
- requesting logmode), along with some 60 configuration records (6byte long
- each). Most parameters from these records are reverse engeneered, they
- all start with CFG_ for configuration and PRG_ for timer program information.
-
-
-
-
-
-
KS300
-
- Fhem can receive the KS300 radio (868.35 MHz) messages through FHZ, WS300 or an CUL
- device, so one of them must be defined first.
- This module services messages received by the FHZ device, if you use one of
- the other alternetives, see the WS300 or CUL_WS entries.
- Note: The KS555 is also reported to work.
-
-
-
- Define
-
-
- <housecode> is a four digit hex number,
- corresponding to the address of the KS300 device, right now it is ignored.
- The ml/raincounter defaults to 255 ml, but it must be specified if you wish
- to set the wind factor, which defaults to 1.0.
-
-
- Examples:
-
rainadjustment
- If this attribute is set, fhem automatically accounts for rain counter
- resets after a battery change and random counter switches as experienced
- by some users. The raw rain counter values are adjusted by an offset
- in order to flatten out the sudden large increases and decreases in
- the received rain counter values. Default is off.
-
-
-
-
-
-
-
LGTV
-
-
-
- Define
-
- define <name> LGTV
-
-
- This module is expected to work with xxLG7000 as it's
- IODev. With LGTV and a compatible hardware module (currently, there's only
- xxLG7000), you are able to power your TV set on and off, query it's power state,
- select the input (AV, RGB, Composites, analogue TV, DVB-T, HDMI) or mute/unmute
- the volume.
- Defining a LGTV device will schedule an internal task, which periodically reads
- the status of the TV set (power state; if power is on, query the selected input)
- and triggers notify/filelog commands.
- Currently, the following commands are defined; not all may be available on a
- given TV set. An error messages should be recorded if e. g. the input in question
- is not usable.
-
-
power on
-power off
-input AV1
-input AV2
-input AV3
-input AV3
-input Component
-input RGB
-input HDMI1
-input HDMI2
-input HDMI3
-input HDMI4
-input DVBT
-input PAL
-audio mute
-audio normal
-
-
-
- Get
-
- get <name> <what>
-
- Currently, the following commands are defined; not all may be available on a
- given TV set. An error messages should be recorded if e. g. the input in question
- is not usable.
-
- The commands listed above are send 1:1 to the underlying IODev (e. g. xxLG7000); that IODev
- is responsible for translation into whatever means to invoke the function on the TV.
- It is my hope that other's will adopt this idea and write compatible low level drivers for other
- TV sets, to make this module (even ;)) more useful.
-
-
-
-
-
-
LINDY_HDMI_SWITCH
-
- Note: this module needs the Net::Telnet module.
-
- Defines an Lindy 4:2 HDMI Switch serial connected to a transparent ethernet to serial adapter via the ip address of the adapter. Lindy partnumber: 38054
- First digit is the output port, second digit is the input port.
- Example:
-
- set livingroom.hdmi 12
-
-
-
-
-
-
-
LIRC
-
- Generate FHEM-events when an LIRC device receives infrared signals.
-
- Note: this module needs the Lirc::Client perl module.
-
-
-
- Define
-
- define <name> LIRC <lircrc_file>
- Example:
-
- define Lirc LIRC /etc/lirc/lircrc
-
- Note: In the lirc configuration file you have to define each possible event.
- If you have this configuration
-
- begin
- prog = fhem
- button = pwr
- config = IrPower
- end
- and you press the pwr button the IrPower toggle event occures at fhem.
-
- define IrPower01 notify Lirc:IrPower set lamp toggle
- turns the lamp on and off.
- If you want a faster reaction to keypresses you have to change the
- defaultvalue of readytimeout from 5 seconds to e.g. 1 second in fhem.pl
-
-
-
-
- Set
-
- This module can control all mediaplayers runnng ListenLive Firmware laufen via a network connection.
- It can control power state on/off, volume up/down/mute and can send all remomte-control commands.
-
- The port value is optional. If not defined, standard port 8080 will be used.
-
- The status_interval value is optional. If not defined, standard interval 60sec will be used.
-
- Upon the definition of a new LISTENLIVE-device an internal Loop will be defined which will check and update the device readings
- all seconds to trigger all notify and FileLog entities.
-
-
- Example:
-
-
- define llradio LISTENLIVE 192.168.0.10
-
- define llradio LISTENLIVE 192.168.0.10:8085 120 # with port (8085) und status interval (120 seconds)
-
-
-
-
- Set-Commands
-
- set <name> <commandGroup> [<command>] [<parameter>]
-
- Commands are grouped into commandGroups depending on their functional tasks.
- The following groups and commands are currently available:
-
-
-commandGroup power
-power on
-power off
-
-commandGroup audio
-audio mute
-audio unmute
-audio volm
-audio volp
-
-commandGroup cursor
-cursor up
-cursor down
-cursor left
-cursor right
-cursor home
-cursor exit
-cursor enter
-
-commandGroup message
-message [<textMessage>]
-
-commandGroup reset
-reset power
-reset mute
-reset menupos
-
-commandGroup raw
-raw
-
-commandGroup user (experimental)
-user
-
-commandGroup help
-help
-
-commandGroup statusRequest
-statusRequest
-
listinfo - current selection list on device and position in it
-
metainfo1-5 - metainfo for currently playing stream
-
mi_info - current menu state
-
mi_app, mi_mp, mi_ms, mi_state - readings splitted from mi_info, mi_app is derived from numerical mi_state
-
mute - current mute state ("on" => muted, "off" => unmuted)
-
power - current power state
-
state - current device state (online or offline)
-
volume - current volume level
-
-
- Author's notes
-
- You need to activate option "remote control settings" -> "network remote control [on]" in your device's settings.
-
- Upon the device definion a corresponding PRESENCE-entity will be created to evaluate the device availability.
-
-
-
-
-
-
LUXTRONIK2
-
- Luxtronik 2.0 is a heating controller used in Alpha Innotec, Siemens Novelan (WPR NET) and Wolf Heiztechnik (BWL/BWS) heat pumps.
-
- It has a built-in ethernet port, so it can be directly integrated into a local area network (LAN).
-
- The modul is reported to work with firmware: V1.54C, V1.60, V1.69.
-
- More Info on the particular page of FHEM-Wiki (in German).
-
-
-
-
-
- Define
-
- define <name> LUXTRONIK2 <IP-address> [poll-interval]
- If the pool interval is omitted, it is set to 300 (seconds). Smallest possible value is 30.
-
- Example: define Heizung LUXTRONIK2 192.168.0.12 600
-
-
-
-
- Set
-
A firmware check assures before each set operation that a heat pump with untested firmware is not damaged accidently.
-
opModeHotWater <Mode>
- Operating Mode of domestic hot water boiler (Auto | Party | Off)
-
-
hotWaterTemperatureTarget <temperature>
- Target temperature of domestic hot water boiler in °C
-
-
INTERVAL <polling interval>
- Polling interval in seconds
-
-
statusRequest
- Update device information
-
-
synchClockHeatPump
- Synchronizes controller clock with FHEM time. !! This change is lost in case of controller power off!!
-
-
-
-
- Get
-
- No get implemented yet ...
-
-
-
-
- Attributes
-
-
statusHTML
-
- If set, a HTML-formatted reading named "floorplanHTML" is created. It can be used with the FLOORPLAN module.
-
- Currently, if the value of this attribute is not NULL, the corresponding reading consists of the current status of the heat pump and the temperature of the water.
-
-
doStatistics < 0 | 1 >
-
- Calculates statistic values: statBoilerGradientHeatUp, statBoilerGradientCoolDown, statBoilerGradientCoolDownMin (boiler heat loss)
-
- Builds daily, monthly and yearly statistics for certain readings (average/min/max or cumulated values).
-
- Logging and visualisation of the statistic should be done with readings of type 'statReadingNameLast'.
-
-
allowSetParameter < 0 | 1 >
-
- The parameters of the heat pump controller can only be changed if this attribut is set to 1.
-
-
autoSynchClock <delay>
-
- Corrects the clock of the heatpump automatically if a certain delay (10 s - 600 s) against the FHEM time is exeeded. Does a firmware check before.
-
- (A 'delayDeviceTimeCalc' <= 2 s can be caused by the internal calculation interval of the heat pump controller.)
-
-
ignoreFirmwareCheck < 0 | 1 >
-
- A firmware check assures before each set operation that a heatpump controller with untested firmware is not damaged accidently.
-
- If this attribute is set to 1, the firmware check is ignored and new firmware can be tested for compatibility.
-
- FHEM module for LaCrosse Temperature and Humidity sensors.
-
- It can be integrated in to FHEM via a JeeLink as the IODevice.
-
- The JeeNode sketch required for this module can be found in .../contrib/36_LaCrosse-pcaSerial.zip.
-
-
- Define
-
- define <name> LaCrosse <addr>
-
- addr is a 2 digit hex number to identify the LaCrosse device.
- Note: devices are autocreated only if LaCrossePairForSec is active for the JeeLink IODevice device.
-
-
-
-
- Set
-
-
replaceBatteryForSec <sec> [ignore_battery]
- sets the device for <sec> seconds into replace battery mode. the first unknown address that is
- received will replace the current device address. this can be partly automated with a readings group configured
- to show the battery state of all LaCrosse devices and a link/command to set replaceBatteryForSec on klick.
-
-
-
-
- Get
-
-
-
-
- Readings
-
-
battery[]
- ok or low
-
temperature[]
- Notice: see the filterThreshold attribute.
-
humidity
-
-
-
- Attributes
-
-
doAverage
- use an average of the last 4 values for temperature and humidity readings
-
doDewpoint
- calculate dewpoint
-
filterThreshold
- if the difference between the current and previous temperature is greater than filterThreshold degrees
- the readings for this channel are not updated. the default is 10.
-
resolution
- the resolution in 1/10 degree for the temperature reading
-
ignore
- 1 -> ignore this device.
-
-
-
-
-
LightScene
-
- Allows to store the state of a group of lights and other devices and recall it later.
- Multiple states for one group can be stored.
-
-
-
- The device detail view will show an html overview of the current state of all included devices and all
- configured scenes with the device states for each. The column heading with the device names is clickable
- to go to detail view of this device. The first row that displays the current device state is clickable
- and should react like a click on the device icon in a room overview would. this can be used to interactively
- configure a new scene and save it with the command menu of the detail view. The first column of the table with
- the scene names ic clickable to activate the scene.
-
- A weblink with a scene overview that can be included in any room or a floorplan can be created with:
-
save <scene_name>
- save current state for alle devices in this LightScene to <scene_name>
-
scene <scene_name>
- shows scene <scene_name> - all devices are switched to the previously saved state
-
set <scene_name> <device> [<cmd>]
- set the saved state of <device> in <scene_name> to <cmd>
-
setcmd <scene_name> <device> [<cmd>]
- set command to be executed for <device> in <scene_name> to <cmd>.
- <cmd> can be any commandline that fhem understands including multiple commands separated by ;;
-
-
set kino_group setcmd allOff LampeDecke sleep 30 ;; set LampeDecke off
-
set light_group setcmd test Lampe1 sleep 10 ;; set Lampe1 on ;; sleep 5 ;; set Lampe1 off
-
-
remove <scene_name>
- remove <scene_name> from list of saved scenes
-
-
-
- Get
-
-
scenes
-
scene <scene_name>
-
-
-
- Attributes
-
-
lightSceneParamsToSave
- this attribute can be set on the devices to be included in a scene. it is set to a comma separated list of readings
- that will be saved. multiple readings separated by : are collated in to a single set command (this has to be supported
- by the device). each reading can have a perl expression appended with '@' that will be used to alter the $value used for
- the set command. this can for example be used to strip a trailing % from a dimmer state. this perl expression must not contain
- spaces,colons or commas.
- in addition to reading names the list can also contain expressions of the form abc -> xyz
- or get cba -> set uvw to map reading abc to set xyz or get cba to set uvw. the list can be given as a
- string or as a perl expression enclosed in {} that returns this string.
- attr myReceiver lightSceneParamsToSave volume,channel
- attr myHueDevice lightSceneParamsToSave {(Value($DEVICE) eq "off")?"state":"bri : xy"}
lightSceneRestoreOnlyIfChanged
- this attribute can be set on the lightscene and/or on the individual devices included in a scene.
- the device settings have precedence over the scene setting.
- 1 -> for each device do nothing if current device state is the same as the saved state
- 0 -> always set the state even if the current state is the same as the saved state. this is the default
-
switchingOrder
- space separated list of <scene>:<deviceList> items that will give a per scene order
- in which the devices should be switched.
- the devices from <deviceList> will come before all other devices of this LightScene;
- if the first character of the <deviceList> ist a ! the devices from the list will come after
- all other devices from this lightScene.
- <scene> and each element of <deviceList> are treated as a regex.
- Example: To switch a master power outlet before every other device at power on and after every device on power off:
- define media LightScene TV,DVD,Amplifier,masterPower
- attr media switchingOrder .*On:masterPower,.* allOff:!.*,masterPower
-
-
-
-
-
-
M232
-
-
-
-
- Define
-
- define <name> M232 <m232-device>
-
-
- Define a M232 device. You can attach as many M232 devices as you like. A
- M232 device provides 6 analog inputs (voltage 0..5V with 10 bit resolution)
- and 8 bidirectional digital ports. The eighth digital port can be used as a
- 16 bit counter (maximum frequency 3kHz). The M232 device needs to be
- connected to a 25pin sub-d RS232 serial port. A USB-to-serial converter
- works fine if no serial port is available.
-
- Examples:
-
- define m232 M232 /dev/ttyUSB2
-
-
-
-
-
- Set
-
- set <name> stop
-
- Stops the counter.
-
- set <name> start
-
- Resets the counter to zero and starts it.
-
- set <name> octet
-
- Sets the state of all digital ports at once, value is 0..255.
-
- set <name> io0..io7 0|1
-
- Turns digital port 0..7 off or on.
-
-
-
-
-
- Get
-
- get <name> [an0..an5]
-
- Gets the reading of analog input 0..5 in volts.
-
- get <name> [io0..io7]
-
- Gets the state of digital ports 0..7, result is 0 or 1.
-
- get <name> octet
-
- Gets the state of all digital ports at once, result is 0..255.
-
- get <name> counter
-
- Gets the number of ticks of the counter since the last reset. The counter
- wraps around from 65,535 to 0 and then stops.
- See M232Counter for how we care about this.
-
-
- Define at most one M232Counter for a M232 device. Defining a M232Counter
- will schedule an internal task, which periodically reads the status of the
- counter, and triggers notify/filelog commands. unit is the unit
- name, factor is used to calculate the reading of the counter
- from the number of ticks. deltaunit is the unit name of the counter
- differential per second, deltafactor is used to calculate the
- counter differential per second from the number of ticks per second.
- Default values:
-
-
unit: ticks
-
factor: 1.0
-
deltaunit: ticks per second
-
deltafactor: 1.0
-
- Note: the parameters in square brackets are optional. If you wish to
- specify an optional parameter, all preceding parameters must be specified
- as well.
-
-
- Do not forget to start the counter (with set .. start for
- M232) or to start the counter and set the reading to a specified value
- (with set ... value for M232Counter).
- To avoid issues with the tick count reaching the end point, the device's
- internal counter is automatically reset to 0 when the tick count is 64,000
- or above and the reading basis is adjusted accordingly.
-
-
-
-
- Set
-
- set <name> value <value>
-
- Sets the reading of the counter to the given value. The counter is reset
- and started and the offset is adjusted to value/unit.
-
- set <name> interval <interval>
-
- Sets the status polling interval in seconds to the given value. The default
- is 60 seconds.
-
-
-
-
-
- Get
-
- get <name> status
-
- Gets the reading of the counter multiplied by the factor from the
- define statement. Wraparounds of the counter are accounted for
- by an offset (see reading basis in the output of the
- list statement for the device).
-
-
- Define as many M232Voltages as you like for a M232 device. Defining a
- M232Voltage will schedule an internal task, which reads the status of the
- analog input every minute, and triggers notify/filelog commands.
- unit is the unit name, factor is used to
- calibrate the reading of the analog input.
-
- Note: the unit defaults to the string "volts", but it must be specified
- if you wish to set the factor, which defaults to 1.0.
- Devices from the eQ-3 MAX! group.
- When heating thermostats show a temperature of zero degrees, they didn't yet send any data to the cube. You can
- force the device to send data to the cube by physically setting a temperature directly at the device (not through fhem).
-
-
- Define
-
- define <name> MAX <type> <addr>
-
-
- Define an MAX device of type <type> and rf address <addr>.
- The <type> is one of HeatingThermostat, HeatingThermostatPlus, WallMountedThermostat, ShutterContact, PushButton.
- The <addr> is a 6 digit hex number.
- You should never need to specify this by yourself, the autocreate module will do it for you.
- It's advisable to set event-on-change-reading, like
- attr MAX_123456 event-on-change-reading .*
- because the polling mechanism will otherwise create events every 10 seconds.
-
- Example:
-
- define switch1 MAX PushButton ffc545
-
-
-
-
-
- Set
-
-
desiredTemperature <value> [until <date>]
- For devices of type HeatingThermostat only. <value> maybe one of
-
-
degree celcius between 3.5 and 30.5 in 0.5 degree steps
-
"on" or "off" set the thermostat to full or no heating, respectively
-
"eco" or "comfort" using the eco/comfort temperature set on the device (just as the right-most physical button on the device itself does)
-
"auto <temperature>". The weekly program saved on the thermostat is processed. If the optional <temperature> is given, it is set as desiredTemperature until the next switch point of the weekly program.
-
"boost", activates the boost mode, where for boostDuration minutes the valve is opened up boostValveposition percent.
-
- All values but "auto" maybe accompanied by the "until" clause, with <data> in format "dd.mm.yyyy HH:MM" (minutes may only be "30" or "00"!)
- to set a temporary temperature until that date/time. Make sure that the cube/device has a correct system time.
-
groupid <id>
- For devices of type HeatingThermostat only.
- Writes the given group id the device's memory. To sync all devices in one room, set them to the same groupid greater than zero.
-
ecoTemperature <value>
- For devices of type HeatingThermostat only. Writes the given eco temperature to the device's memory. It can be activated by pressing the rightmost physical button on the device.
-
comfortTemperature <value>
- For devices of type HeatingThermostat only. Writes the given comfort temperature to the device's memory. It can be activated by pressing the rightmost physical button on the device.
-
measurementOffset <value>
- For devices of type HeatingThermostat only. Writes the given temperature offset to the device's memory. If the internal temperature sensor is not well calibrated, it may produce a systematic error. Using measurementOffset, this error can be compensated. The reading temperature is equal to the measured temperature at sensor + measurementOffset. Usually, the internally measured temperature is a bit higher than the overall room temperature (due to closeness to the heater), so one uses a small negative offset. Must be between -3.5 and 3.5 degree celsius.
-
minimumTemperature <value>
- For devices of type HeatingThermostat only. Writes the given minimum temperature to the device's memory. It confines the temperature that can be manually set on the device.
-
maximumTemperature <value>
- For devices of type HeatingThermostat only. Writes the given maximum temperature to the device's memory. It confines the temperature that can be manually set on the device.
-
windowOpenTemperature <value>
- For devices of type HeatingThermostat only. Writes the given window open temperature to the device's memory. That is the temperature the heater will temporarily set if an open window is detected. Setting it to 4.5 degree or "off" will turn off reacting on open windows.
-
windowOpenDuration <value>
- For devices of type HeatingThermostat only. Writes the given window open duration to the device's memory. That is the duration the heater will temporarily set the window open temperature if an open window is detected by a rapid temperature decrease. (Not used if open window is detected by ShutterControl. Must be between 0 and 60 minutes in multiples of 5.
-
decalcification <value>
- For devices of type HeatingThermostat only. Writes the given decalcification time to the device's memory. Value must be of format "Sat 12:00" with minutes being "00". Once per week during that time, the HeatingThermostat will open the valves shortly for decalcification.
-
boostDuration <value>
- For devices of type HeatingThermostat only. Writes the given boost duration to the device's memory. Value must be one of 5, 10, 15, 20, 25, 30, 60. It is the duration of the boost function in minutes.
-
boostValveposition <value>
- For devices of type HeatingThermostat only. Writes the given boost valveposition to the device's memory. It is the valve position in percent during the boost function.
-
maxValveSetting <value>
- For devices of type HeatingThermostat only. Writes the given maximum valveposition to the device's memory. The heating thermostat will not open the valve more than this value (in percent).
-
valveOffset <value>
- For devices of type HeatingThermostat only. Writes the given valve offset to the device's memory. The heating thermostat will add this to all computed valvepositions during control.
-
factoryReset
- Resets the device to factory values. It has to be paired again afterwards.
- ATTENTION: When using this on a ShutterContact using the MAXLAN backend, the ShutterContact has to be triggered once manually to complete
- the factoryReset.
-
associate <value>
- Associated one device to another. <value> can be the name of MAX device or its 6-digit hex address.
- Associating a ShutterContact to a {Heating,WallMounted}Thermostat makes it send message to that device to automatically lower temperature to windowOpenTemperature while the shutter is opened. The thermostat must be associated to the ShutterContact, too, to accept those messages.
- !Attention: After sending this associate command to the ShutterContact, you have to press the button on the ShutterContact to wake it up and accept the command. See the log for a message regarding this!
- Associating HeatingThermostat and WallMountedThermostat makes them sync their desiredTemperature and uses the measured temperature of the
- WallMountedThermostat for control.
-
deassociate <value>
- Removes the association set by associate.
-
weekProfile [<day> <temp1>,<until1>,<temp2>,<until2>] [<day> <temp1>,<until1>,<temp2>,<until2>] ...
- Allows setting the week profile. For devices of type HeatingThermostat or WallMountedThermostat only. Example:
- set MAX_12345 weekProfile Fri 24.5,6:00,12,15:00,5 Sat 7,4:30,19,12:55,6
- sets the profile
- Friday: 24.5 °C for 0:00 - 6:00, 12 °C for 6:00 - 15:00, 5 °C for 15:00 - 0:00
- Saturday: 7 °C for 0:00 - 4:30, 19 °C for 4:30 - 12:55, 6 °C for 12:55 - 0:00
- while keeping the old profile for all other days.
-
keepAuto Default: 0. If set to 1, it will stay in the auto mode when you set a desiredTemperature while the auto (=weekly program) mode is active.
-
-
-
-
- Generated events:
-
-
desiredTemperature Only for HeatingThermostat and WallMountedThermostat
-
valveposition Only for HeatingThermostat
-
battery
-
temperature The measured temperature (= measured temperature at sensor + measurementOffset), only for HeatingThermostat and WallMountedThermostat
-
-
-
-
-
MAXLAN
-
-
- The MAXLAN is the fhem module for the eQ-3 MAX! Cube LAN Gateway.
-
- The fhem module makes the MAX! "bus" accessible to fhem, automatically detecting paired MAX! devices. It also represents properties of the MAX! Cube. The other devices are handled by the MAX module, which uses this module as its backend.
-
-
-
- Define
-
- define <name> MAXLAN <ip-address>[:port] [<pollintervall> [ondemand]]
-
- port is 62910 by default. (If your Cube listens on port 80, you have to update the firmware with
- the official MAX! software).
- If the ip-address is called none, then no device will be opened, so you
- can experiment without hardware attached.
- The optional parameter <pollintervall> defines the time in seconds between each polling of data from the cube.
- You may provide the option ondemand forcing the MAXLAN module to tear-down the connection as often as possible
- thus making the cube usable by other applications or the web portal.
-
-
-
-
- Set
-
-
pairmode [<n>,cancel]
- Sets the cube into pairing mode for <n> seconds (default is 60s ) where it can be paired with other devices (Thermostats, Buttons, etc.). You also have to set the other device into pairing mode manually. (For Thermostats, this is pressing the "Boost" button for 3 seconds, for example).
-Setting pairmode to "cancel" puts the cube out of pairing mode.
-
raw <data>
- Sends the raw <data> to the cube.
-
clock
- Sets the internal clock in the cube to the current system time of fhem's machine (uses timezone attribute if set). You can add
- attr ml set-clock-on-init
- to your fhem.cfg to do this automatically on startup.
-
factorReset
- Reset the cube to factory defaults.
-
reconnect
- FHEM will terminate the current connection to the cube and then reconnect. This allows
- re-reading the configuration data from the cube, as it is only send after establishing a new connection.
-
-
-
-
- Get
-
- N/A
-
-
-
-
-
- Attributes
-
-
set-clock-on-init
- (Default: 1). Automatically call "set clock" after connecting to the cube.
timezone
- (Default: CET-CEST). Set MAX Cube timezone (requires "set clock" to take effect).
- NB.Cube time and cubeTimeDifference will not change until Cube next connects.
-
-
GMT-BST - (UTC +0, UTC+1)
-
CET-CEST - (UTC +1, UTC+2)
-
EET-EEST - (UTC +2, UTC+3)
-
FET-FEST - (UTC +3)
-
MSK-MSD - (UTC +4)
-
- The following are settings with no DST (daylight saving time)
-
-
GMT - (UTC +0)
-
CET - (UTC +1)
-
EET - (UTC +2)
-
-
-
-
-
-
-
MPD
- FHEM module to control a MPD like the MPC (MPC = Music Player Command, the command line interface to the Music Player Daemon )
-To install a MPD on a Raspberry Pi you will find a lot of documentation at the web e.g. http://www.forum-raspberrypi.de/Thread-tutorial-music-player-daemon-mpd-und-mpc-auf-dem-raspberry-pi in german
-FHEM Forum : Modul für MPD ( in german )
-
-
- Define
-
- define <name> MPD <IP MPD Server | default localhost> <Port MPD Server | default 6600>
- Example:
-
- define myMPD MPD 192.168.0.99 7000
-
- if FHEM and MPD a running on the same device :
-
- define myMPD MPD
-
-
-
-
- Set
- set <name> <what>
-
- Currently, the following commands are defined.
-
- play => like MPC play , start playing song in playlist
- clear => like MPC clear , delete MPD playlist
- stop => like MPC stop, stops playing
- pause => like MPC pause
- previous => like MPC previous, play previous song in playlist
- next => like MPC next, play next song in playlist
- random => like MPC random, toggel on/off
- repaet => like MPC repeat, toggel on/off
- updateDb => like MPC update
- volume (%) => like MPC volume %, 0 - 100
- volumeUp => inc volume ( + attr volumeStep size )
- volumeDown => dec volume ( - attr volumeStep size )
- playlist (playlist name) => set playlist on MPD Server
- playfile (file) => create playlist + add file to playlist + start playing
- IdleNow => send Idle command to MPD and wait for events to return
- interval => set polling interval of MPD server, overwrites attr interval temp , use 0 to disable polling
- reset => reset MPD Modul
- mpdCMD => same as GET mpdCMD
-
-
-
- Get
- get <name> <what>
-
- Currently, the following commands are defined.
- music => list all MPD music files in MPD databse
- playlists => list all MPD playlist in MPD databse
- playlistsinfo => show current playlist informations
- webrc => HTML output for a simple Remote Control on FHEM webpage e.g :.
-
- statusRequest => get MPD status
- mpdCMD (cmd) => send a command to MPD Server ( MPD Command Ref )
- currentsong => get infos from current song in playlist
- outputs => get name,id,status about all MPD output devices in /etc/mpd.conf
-
-
-
- Attributes
-
-
interval = polling interval at MPD server, use 0 to disable polling (default 30)
-
password (not ready yet) if password on MPD server is set
-
loadMusic 0|1 = load titles from MPD database at startup
-
loadPlaylists 0|1 = load playlist names from MPD database at startup
-
volumeStep 1|2|5|10 = Step size for Volume +/- (default 5)
-
useIdle 0|1 = send Idle command to MPD and wait for MPD events needs MPD Version 0.16.0 or greater
-
titleSplit 1|0 = split title to artist and title if no artist is given in songinfo (e.g. radio-stream)
-
-
- Readings
-
- all MPD internal values
-
-
-
-
MSG
-
- The MSG device is the backend device for all the message handling (I/O-engine).
- Under normal conditions only one MSG device is needed to serve multiple frontend
- message devices like file or email.
-
-
- Define
-
- define <name> MSG
- Specifies the MSG device. A single MSG device could serve multiple MSG frontends.
- But, for special conditions there could be defined more than one MSG device.
-
-
-
- Set
-
- set <name> send|write <devicename>
-
- Notes:
-
- To send the data, both send or write could be used.
- The devicename is the name of a frontenddevice previously
- defined. Based on the type of the frontend device, the MSG device
- will send out the lines of data.
-
- Frontend devices are available for:
-
- For details about this devices, please review the device-definitions.
- After sending/writing the data, the data stills exists with the
- frontend device, MSG do not delete/purge any data, this must be done
- by the frontend device.
-
- The MSGFile device is a frontend device for message handling.
- With a MSGFile device data is written to disk (or other media).
- Multiple MSGFile devices could be defined.
- To write the data to disk, a MSG device is necessary.
- A MSGFile device needs the operating systems rights to write to the filesystem.
- To set the rights for a directory, please use OS related commands.
-
-
-
- Define
-
- define <name> MSGFile <filename>
- Specifies the MSGFile device. At definition the message counter is set to 0.
- A filename must be specified at definition.
-
-
- Examples:
-
- define myFile MSGFile
-
-
-
- Set
-
set <name> add|clear|list [text]
- Set is used to manipulate the message buffer of the device. The message
- buffer is an array of lines of data, stored serial based on the incoming
- time into the buffer. Lines of data inside the buffer could not be deleted
- anymore, except of flashing the whole buffer.
-
add to add lines of data to the message buffer. All data behind
- "add" will be interpreted as text message. To add a carriage return to the data,
- please use the CR attribute.
-
-
clear to flash the message buffer and set the line counter to 0.
- All the lines of data are deleted and the buffer is flushed.
-
list to list the message buffer.
-
- Examples:
-
- set myFile add Dies ist Textzeile 1
- set myFile add Dies ist Textzeile 2
- set myFile clear
- Full working example to write two lines of data to a file:
- define myMsg MSG
- define myFile MSGFile /tmp/fhemtest.txt
- attr myFile filemode append
- set myFile add Textzeile 1
- set myFile add Textzeile 2
- set myMsg write myFile
- set myFile clear
-
-
-
- Attributes
-
-
filename
- sets the filename, must be a fully qualified filename.
- FHEM must have the rights to write this file to the directory
-
filemode
- sets the filemode, valid are "new" or "append"
- new creates a new, empty file and writes the data to this file. Existing files are cleared, the data is lost!
- append uses, if available, an existing file and writes the
- buffer data to the end of the file. If the file do not exist, it will
- be created
-
CR
- set the option to write a carriage return at the end of the line.
- CR could be set to 0 or 1, 1 enables this feature
- The MSGMail device is a frontend device for mail message handling.
- With a MSGMaildevice data is fowarded to a mail provider and send to a recipent.
- Multiple MSGMail devices could be defined.
- MSGMail supports by the moment only mail provider, which uses SSL secured connection
- like Googlemail, GMX, Yahoo or 1und1 for example.
- To send an email, a MSG device is necessary.
- MAIL::Lite and Net::SMTP::SSL from CPAN is needed to use MSGMail!!
-
- Specifies the MSGMail device. At definition the message counter is set to 0.
- From, To, SMTPHost and the authfile (see attributes below) need to be defined
- at definition time.
-
set <name> add|clear|list [text]
- Set is used to manipulate the message buffer of the device. The message
- buffer is an array of lines of data, stored serial based on the incoming
- time into the buffer. Lines of data inside the buffer could not be deleted
- anymore, except of flashing the whole buffer.
-
add to add lines of data to the message buffer. All data behind
- "add" will be interpreted as text message. To add a carriage return to the data,
- please use the CR attribute.
-
-
clear to flash the message buffer and set the line counter to 0.
- All the lines of data are deleted and the buffer is flushed.
-
list to list the message buffer.
-
- Examples:
-
- set myMail add Dies ist Textzeile 1
- set myMail add Dies ist Textzeile 2
- set myMail clear
- Full working example to send two lines of data to a recipent:
- define myMsg MSG
- define myMail MSGMail donald.duck@entenhausen.com dagobert.duck@duck-banking.com smtp.entenhausen.net /etc/fhem/msgmailauth
- attr myMail smtpport 9999
- attr myMail subject i need more money
- attr myMail CR 0
- set myMail add Please send me
- set myMail add 1.000.000 Taler
- set myMsg send myMail
- set myMail clear
-
-
-
-
- Attributes
-
- Almost all of these attributes are not optional, most of them could set at definition.
-
smtphost
- sets the name of the smtphost, for example for GMX
- you could use mail.gmx.net or for Googlemail the smtphost is
- smtp.googlemail.com
-
smtpport (optional)
- sets the port of the smtphost, for example for GMX
- or for Googlemail the smtport is 465, which is also
- the default and do not need to be set
-
subject (optional)
- sets the subject of this email. Per default the subject is set to "FHEM"
-
-
authfile
- sets the authfile for the SSL connection to the SMTP host
- the authfile is a simple textfile with the userid in line 1 and
- the password in line 2.
- Example:
- 123user45
- strenggeheim
- It is a good behaviour to protect this data and put the file, for
- example into the /etc directory and set the rights to 440
- (chmod 440 /etc/msgmailauthfile), so that not everyone could see the contents
- of the file. FHEM must have access to this file to read the userid and password.
-
-
-
CR
- set the option to write a carriage return at the end of the line.
- CR could be set to 0 or 1, 1 enables this feature.
- Per default this attribute is enabled
- Note: this module needs the HTTP::Request and LWP::UserAgent perl modules.
-
- Please also note: the PDU must use firmware 3.1 or later and set to unencrypted mode.
-
- Defines a switching device, where sockets can be switched
-
-
-
separately (just use 0-4 as socket number)
-
all together (use 1234 as socket number)
-
in arbitrary groups (e.g 13 switches socket 1 and 3, 42
- switches socket 2 and 4, etc...), invalid numbers are
- ignored
-
-
- User name and password are optional. When no user name or
- password is passed, the module looks for a configfile at
- '/var/log/fhem/netio.conf'. If no config file is found, it
- uses 'admin/admin' as user/pass, since this is the default
- configuration for the device.
-
- Alternatively you can pass a path to a configfile instead of
- the user/pass combo. (e.g. /var/tmp/tmp.conf)
- Configfile-Format:
-
- returns the state of the socket(s)
-
- Example:
-
- get coffeemaker_and_light => on or off
-
-
-
-
-
- Set
-
- set <name> <value>
-
- where value is one of:
-
- on
- off
-
- Examples:
-
- set coffeemaker_and_light on
-
-
-
-
-
-
-
-
-
-
- ONKYO_AVR
-
-
- Define
-
- define <name> ONKYO_AVR <ip-address-or-hostname> [<protocol-version>] [<zone>] [<poll-interval>]
-
- This module controls ONKYO A/V receivers via network connection.
-
- Defining an ONKYO device will schedule an internal task (interval can be set with optional parameter <poll-interval> in seconds, if not set, the value is 75 seconds), which periodically reads the status of the device and triggers notify/filelog commands.
-
- Example:
-
- define avr ONKYO_AVR 192.168.0.10
-
- # With explicit protocol version 2013 and later
- define avr ONKYO_AVR 192.168.0.10 2013
-
- # With protocol version prior 2013
- define avr ONKYO_AVR 192.168.0.10 pre2013
-
- # With zone2
- define avr ONKYO_AVR 192.168.0.10 pre2013 zone2
-
- # With custom interval of 60 seconds
- define avr ONKYO_AVR 192.168.0.10 pre2013 main 60
-
- # With zone2 and custom interval of 60 seconds
- define avr ONKYO_AVR 192.168.0.10 pre2013 zone2 60
-
-
-
- Set
-
- set <name> <command> [<parameter>]
-
- Currently, the following commands are defined (may vary depending on zone).
-
-
- on - powers on the device
-
-
- off - turns the device in standby mode
-
-
- sleep 1..90,off - sets auto-turnoff after X minutes
-
-
- toggle - switch between on and off
-
-
- volume 0...100 - set the volume level in percentage
-
-
- volumeUp - increases the volume level
-
-
- volumeDown - decreases the volume level
-
-
- mute on,off - controls volume mute
-
-
- input - switches between inputs
-
-
- statusRequest - requests the current status of the device
-
-
- remoteControl - sends remote control commands; see remoteControl help
-
-
-
-
- Get
-
- get <name> <what>
-
- Currently, the following commands are defined (may vary depending on zone):
-
-
- power
- input
- volume
- mute
- sleep
-
-
-
- Generated Readings/Events (may vary depending on zone):
-
-
- input - Shows currently used input; part of FHEM-4-AV-Devices compatibility
-
-
- mute - Reports the mute status of the device (can be "on" or "off")
-
-
- power - Reports the power status of the device (can be "on" or "off")
-
-
- presence - Reports the presence status of the receiver (can be "absent" or "present"). In case of an absent device, control is not possible.
-
-
- sleep - Reports current sleep state (can be "off" or shows timer in minutes)
-
-
- state - Reports current power state and an absence of the device (can be "on", "off" or "absent")
-
-
- volume - Reports current volume level of the receiver in percentage values (between 0 and 100 %)
-
-
-
-
-
-
OREGON
-
- The OREGON module interprets Oregon sensor messages received by a RFXCOM receiver. You need to define a RFXCOM receiver first.
- See RFXCOM.
-
-
-
-
- Define
-
- define <name> OREGON <deviceid>
-
- <deviceid> is the device identifier of the Oregon sensor. It consists of the sensors name and a one byte hex string (00-ff) that identifies the sensor. The define statement with the deviceid is generated automatically by autocreate. The following sensor names are used:
-BTHR918, BTHR918N, PCR800 RGR918, RTGR328N, THN132N, THGR228N, THGR328N, THGR918, THR128, THWR288A, THGR810, UV138, UVN800, WGR918, WGR800, WTGR800_A, WTGR800_T.
-
-The one byte hex string is generated by the Oregon sensor when is it powered on. The value seems to be randomly generated. This has the advantage that you may use more than one Oregon sensor of the same type even if it has no switch to set a sensor id. For exampple the author uses three BTHR918 sensors at the same time. All have different deviceids. The drawback is that the deviceid changes after changing batteries.
-
FHEM module to commmunicate with 1-Wire A/D converters
- This 1-Wire module works with the OWX interface module or with the OWServer interface module
- (prerequisite: Add this module's name to the list of clients in OWServer).
- Please define an OWX device or OWServer device first.
attr <name> stateAL1 <string>
- character string for denoting low alarm condition, default is down triangle,
- e.g. the code ▾ leading to the sign ▾
-
attr <name> stateAH1 <string>
- character string for denoting high alarm condition, default is upward
- triangle, e.g. the code ▴ leading to the sign ▴
-
For each of the following attributes, the channel identification A,B,C,D may be used.
attr <name> <channel>Function
- <string>
- arbitrary functional expression involving the values VA,VB,VC,VD. VA is replaced by
- the measured voltage in channel A, etc. This attribute allows linearization of measurement
- curves as well as the mixing of various channels. Replacement for Offset/Factor !
FHEM module to commmunicate with 1-Wire Counter/RAM DS2423 or its emulation DS2423emu
- This 1-Wire module works with the OWX interface module or with the OWServer interface module
- (prerequisite: Add this module's name to the list of clients in OWServer).
- Please define an OWX device or OWServer device first.
-
- Defines a 1-wire device. The 1-wire device is identified by its <address>. It is
- served by the most recently defined OWServer.
-
-
- If <interval> is given, the OWServer is polled every <interval> seconds for
- a subset of readings.
-
-
- OWDevice is a generic device. Its characteristics are retrieved at the time of the device's
- definition. The available readings that you can get or set as well as those that are
- regularly retrieved by polling can be seen when issuing the
- list <name> command.
-
- The following devices are currently supported:
-
-
DS2401 - Silicon Serial Number
-
DS1990A - Serial Number iButton
-
DS2405 - Addressable Switch
-
DS18S20 - High-Precision 1-Wire Digital Thermometer
-
DS1920 - iButton version of the thermometer
-
DS2406, DS2407 - Dual Addressable Switch with 1kbit Memory
-
DS2436 - Battery ID/Monitor Chip
-
DS2423 - 4kbit 1-Wire RAM with Counter
-
DS2450 - Quad A/D Converter
-
DS1822 - Econo 1-Wire Digital Thermometer
-
DS2415 - 1-Wire Time Chip
-
DS1904 - RTC iButton
-
DS2438 - Smart Battery Monitor
-
DS2417 - 1-Wire Time Chip with Interrupt
-
DS18B20 - Programmable Resolution 1-Wire Digital Thermometer
-
DS2408 - 1-Wire 8 Channel Addressable Switch
-
DS2413 - Dual Channel Addressable Switch
-
DS1825 - Programmable Resolution 1-Wire Digital Thermometer with ID
-
EDS0066 - Multisensor for temperature and pressure
-
LCD - LCD controller by Louis Swart
-
-
- Adding more devices is simple. Look at the code (subroutine OWDevice_GetDetails).
-
- This module is completely unrelated to the 1-wire modules with names all in uppercase.
-
- Note:The state reading never triggers events to avoid confusion.
-
- Example:
-
-
- define myOWServer localhost:4304
- get myOWServer devices
- 10.487653020800 DS18S20
- define myT1 10.487653020800
- list myT1 10.487653020800
- Internals:
- ...
- Readings:
- 2012-12-22 20:30:07 temperature 23.1875
- Fhem:
- ...
- getters:
- address
- family
- id
- power
- type
- temperature
- templow
- temphigh
- polls:
- temperature
- setters:
- alias
- templow
- temphigh
- ...
-
-
-
-
-
-
- Set
-
-
set <name> interval <value>
-
- value modifies the interval for polling data. The unit is in seconds.
-
-
set <name> <reading> <value>
-
- Sets <reading> to <value> for the 1-wire device <name>. The permitted values are defined by the underlying
- 1-wire device type.
-
- Example:
-
- set myT1 templow 5
-
-
-
-
-
-
-
- Get
-
- get <name> <reading> <value>
-
- Gets <reading> for the 1-wire device <name>. The permitted values are defined by the underlying
- 1-wire device type.
-
- Example:
-
- get myT1 temperature
-
-
-
-
-
-
- Attributes
-
-
-
IODev:
- Set the OWServer device which should be used for sending and receiving data
- for this OWDevice. Note: Upon startup fhem assigns each OWDevice
- to the last previously defined OWServer. Thus it is best if you define OWServer
- and OWDevices in blocks: first define the first OWServer and the OWDevices that
- belong to it, then continue with the next OWServer and the attached OWDevices, and so on.
-
-
trimvalues: removes leading and trailing whitespace from readings. Default is 1 (on).
-
polls: a comma-separated list of readings to poll. This supersedes the list of default readings to poll.
-
interfaces: supersedes the interfaces exposed by that device.
-
model: preset with device type, e.g. DS18S20.
-
resolution: resolution of temperature reading in bits, can be 9, 10, 11 or 12.
- Lower resolutions allow for faster retrieval of values from the bus.
- Particularly reasonable for large 1-wire installations to reduce busy times for FHEM.
- OWFS is a suite of programs that designed to make the 1-wire bus and its
- devices easily accessible. The underlying priciple is to create a virtual
- filesystem, with the unique ID being the directory, and the individual
- properties of the device are represented as simple files that can be read
- and written.
- where value is one of (not supported by passive Devices e.g. DS9097):
-
-
- address (read-only)
- The entire 64-bit unique ID. address starts with the family code.
- Given as upper case hexidecimal digits (0-9A-F).
-
-
- crc8 (read-only)
- The 8-bit error correction portion. Uses cyclic redundancy check. Computed
- from the preceeding 56 bits of the unique ID number.
- Given as upper case hexidecimal digits (0-9A-F).
-
-
- family (read-only)
- The 8-bit family code. Unique to each type of device.
- Given as upper case hexidecimal digits (0-9A-F).
-
-
- id (read-only)
- The 48-bit middle portion of the unique ID number. Does not include the
- family code or CRC.
- Given as upper case hexidecimal digits (0-9A-F).
-
-
- locator (read-only)
- Uses an extension of the 1-wire design from iButtonLink company that
- associated 1-wire physical connections with a unique 1-wire code. If
- the connection is behind a Link Locator the locator will show a unique
- 8-byte number (16 character hexidecimal) starting with family code FE.
- If no Link Locator is between the device and the master, the locator
- field will be all FF.
-
-
- present (read-only)
- Is the device currently present on the 1-wire bus?
-
-
- type (read-only)
- Part name assigned by Dallas Semi. E.g. DS2401 Alternative packaging
- (iButton vs chip) will not be distiguished.
-
-
-
- Examples:
-
- get DS9490R type
- DS9490R type => DS1420
- get DS9490R address
- DS9490R address => 8193302D0000002B
-
- temp-scale
- Specifies the temperature-scale unit:
-
-
C
- Celsius. This is the default.
-
F
- Fahrenheit
-
K
- Kelvin
-
R
- Rankine
-
-
-
-
-
-
-
-
-
OWID
-
FHEM module for 1-Wire devices that know only their unique ROM ID
- This 1-Wire module works with the OWX interface module or with the OWServer interface module
- Please define an OWX device or OWServer device first.
FHEM module to commmunicate with 1-Wire multi-sensors, currently the DS2438 smart battery
- monitor
This 1-Wire module works with the OWX interface module or with the OWServer interface module
- (prerequisite: Add this module's name to the list of clients in OWServer).
- Please define an OWX device or OWServer device first.
- [<model>] Defines the sensor model (and thus 1-Wire family
- id), currently the following values are permitted:
-
model DS2438 with family id 26 (default if the model parameter is omitted).
- Measured is a temperature value, an external voltage and the current supply
- voltage
-
-
-
- <fam>
- 2-character unique family id, see above
-
-
- <id>
- 12-character unique ROM id of the converter device without family id and CRC
- code
-
- <interval>
- Measurement interval in seconds. The default is 300 seconds.
FHEM module to commmunicate with 1-Wire Programmable Switches
- This 1-Wire module works with the OWX interface module or with the OWServer interface module
- (prerequisite: Add this module's name to the list of clients in OWServer).
- Please define an OWX device or OWServer device first.
- set <name> output <channel-name> on | off | on-for-timer <time> | off-for-timer <time>
- Set
- value for channel (A,B,... or defined channel name). 1 = off, 0 = on in normal
- usage. See also the note above.
- on-for-timer/off-for-timer will set the desired value only for the given time,
- either given as hh:mm:ss or as integers seconds
- and then will return to the opposite value.
-
- set <name> gpio <value> Set values for
- channels (For 2 channels: 3 = A and B off, 1 = B on 2 = A on 0 = both on)
- get <name> input <channel-name> state for
- channel (A,B, ... or defined channel name) This value reflects the measured value,
- not necessarily the one set as output state, because the output transistors are open
- collector switches. A measured state of 1 = OFF therefore corresponds to an output
- state of 1 = OFF, but a measured state of 0 = ON can also be due to an external
- shortening of the output.
-
- Defines a logical OWServer device. OWServer is the server component of the
- 1-Wire Filesystem. It serves as abstraction layer
- for any 1-wire devices on a host. <protocol> has
- format <hostname>:<port>. For details see
- owserver documentation.
-
- You need OWNet.pm from owfs.org, which is normally deployed with FHEM. As at 2012-12-23 the OWNet module
- on CPAN has an issue which renders it useless for remote connections.
-
- The actual 1-wire devices are defined as OWDevice devices.
- If autocreate is enabled, all the devices found are created at
- start of FHEM automatically.
-
- This module is completely unrelated to the 1-wire modules with names all in uppercase.
-
- Notice: if you get no devices add both localhost and the FQDN of your owserver as server directives
- to the owserver configuration file
- on the remote host.
-
-
-
-
-
- Set
-
- set <name> <value>
-
- where value is one of
-
reopen
- Reopens the connection to the owserver.
-
-
owserver (OWFS) specific settings:
-
-
timeout/directory
-
timeout/ftp
-
timeout/ha7
-
timeout/network
-
timeout/presence
-
timeout/serial
-
timeout/server
-
timeout/stable
-
timeout/uncached
-
timeout/usb
-
timeout/volatile
-
timeout/w1
-
units/pressure_scale
-
units/temperature_scale
-
-
- For further informations have look on owserver manual).
-
-
-
-
-
-
- Get
-
- get <name> <value>
-
- where value is one of
-
devices
- Lists the addresses and types of all 1-wire devices provided by the owserver. Also shows
- the corresponding OWDevice if one is defined for the respective 1-wire devices.
-
-
errors
- List a view of error statistics.
-
owserver (OWFS) specific settings:
-
-
/settings/timeout/directory
-
/settings/timeout/ftp
-
/settings/timeout/ha7
-
/settings/timeout/network
-
/settings/timeout/presence
-
/settings/timeout/serial
-
/settings/timeout/server
-
/settings/timeout/stable
-
/settings/timeout/uncached
-
/settings/timeout/usb
-
/settings/timeout/volatile
-
/settings/timeout/w1
-
/settings/units/pressure_scale
-
/settings/units/temperature_scale
-
-
- For further informations have look on owserver manual).
-
-
-
-
-
-
- Attributes
-
-
nonblocking
- Get all readings (OWServer / OWDevice) via a child process. This ensures, that FHEM
- is not blocked during communicating with the owserver.
- Example:
- attr <name> nonblocking 1
-
- temperature (read-only)
- Read by the chip at high resolution (~12 bits). Units are selected from
- the defined OWFS Device. See temp-scale for choices.
-
FHEM module to commmunicate with 1-Wire bus digital thermometer devices
- This 1-Wire module works with the OWX interface module or with the OWServer interface module
- (prerequisite: Add this module's name to the list of clients in OWServer).
- Please define an OWX device or OWServer device first.
-
- [<model>] Defines the thermometer model (and thus 1-Wire family
- id) currently the following values are permitted:
-
-
model DS1820 with family id 10 (default if the model parameter is omitted)
-
model DS1822 with family id 22
-
model DS18B20 with family id 28
-
-
-
- <fam>
- 2-character unique family id, see above
-
- <id>
- 12-character unique ROM id of the thermometer device without family id and CRC
- code
-
-
- <interval>
- Temperature measurement interval in seconds. The default is 300 seconds.
-
-
-
-
Set
-
-
- set <name> interval <int> Temperature
- readout interval in seconds. The default is 300 seconds. Attention:This is the
- readout interval. Whether an actual temperature measurement is performed, is determined by the
- tempConv attribute
attr <name> stateAL <string>
-
- character string for denoting low alarm condition, default is down triangle,
- e.g. the code ▾ leading to the sign ▾
-
attr <name> stateAH <string>
-
- character string for denoting high alarm condition, default is upward
- triangle, e.g. the code ▴ leading to the sign ▴
-
- attr <name> tempConv onkick|onread
-
- determines, whether a temperature measurement will happen when "kicked"
- through the OWX backend module (all temperature sensors at the same time), or on
- reading the sensor (1 second waiting time, default).
- attr <name> interval <int> Temperature
- readout interval in seconds. The default is 300 seconds. Attention:This is the
- readout interval. Whether an actual temperature measurement is performed, is determined by the
- tempConv attribute
- define <name> OWX <serial-device> or
- define <name> OWX <cuno/coc-device> or
- define <name> OWX <arduino-pin>
-
Define a 1-Wire interface to communicate with a 1-Wire bus.
-
-
-
-
- <serial-device> The serial device (e.g. USB port) to which the
- 1-Wire bus is attached.
-
- <cuno-device> The previously defined CUNO to which the 1-Wire bus
- is attached.
-
- <arduino-pin> The pin of the previous defined FRM
- to which the 1-Wire bus is attached. If there is more than one FRM device defined
- use IODev attribute to select which FRM device to use.
sets the time period in seconds for "kicking" the 1-Wire bus (default
- is 300 seconds). This means:
-
With 1-Wire bus interfaces that do not supply power to the 1-Wire bus (attr
- buspower parasitic), the 1-Wire bus is reset at these intervals.
-
With 1-Wire bus interfaces that supply power to the 1-Wire bus (attr
- buspower = real), all temperature measurement devices on the bus receive the
- command to start a temperature conversion (saves a lot of time when reading)
-
With 1-Wire bus interfaces that contain a busmaster chip, the response to a
- reset pulse contains information about alarms.
instructs the module to start an alarm search in case a reset pulse
- discovers any 1-Wire device which has the alarm flag set.
-
-
-
-
Get
-
-
- get <name> alarms
-
performs an "alarm search" for devices on the 1-Wire bus and, if found,
- generates an event in the log (not with CUNO).
-
- get <name> devices
-
redicovers all devices on the 1-Wire bus. If a device found has a
- previous definition, this is automatically used. If a device is found but has no
- definition, it is autocreated. If a defined device is not on the 1-Wire bus, it is
- autodeleted.
- The PCA301 is a RF controlled AC mains plug with integrated power meter functionality from ELV.
-
- It can be integrated in to FHEM via a JeeLink as the IODevice.
-
- The JeeNode sketch required for this module can be found in .../contrib/arduino/36_PCA301-pcaSerial.zip.
-
-
- Define
-
- define <name> PCA301 <addr> <channel>
-
- addr is a 6 digit hex number to identify the PCA301 device.
- channel is a 2 digit hex number to identify the PCA301 device.
- Note: devices are autocreated on reception of the first message.
-
consumptionTotal
- will be created as a default user reading to have a continous consumption value that is not influenced
- by the regualar reset or overflow of the normal consumption reading
-
-
-
- Attributes
-
-
readonly
- if set to a value != 0 all switching commands (on, off, toggle, ...) will be disabled.
-
forceOn
- try to switch on the device whenever an off status is received.
-
- This module controls Philips TV devices and their Ambilight.
- Defining a PHTV device will schedule an internal task (interval can be set
- with optional parameter <poll-interval> in seconds, if not set, the value is 45
- seconds), which periodically reads the status of the device and triggers notify/filelog commands.
-
- Example:
-
- define PhilipsTV PHTV 192.168.0.10
-
- # With custom interval of 20 seconds
- define PhilipsTV PHTV 192.168.0.10 20
-
-
-
-
-
-
- Set
-
- set <name> <command> [<parameter>]
-
- Currently, the following commands are defined.
-
-
on - powers on the device and send a WoL magic package if needed
-
off - turns the device in standby mode
-
toggle - switch between on and off
-
channel channel,0...999,sRef - zap to specific channel or service reference
-
channelUp - zap to next channel
-
channelDown - zap to previous channel
-
volume 0...100 - set the volume level in percentage
-
volumeStraight 1...60 - set the volume level in device specific range
-
volumeUp - increases the volume level
-
volumeDown - decreases the volume level
-
mute on,off,toggle - controls volume mute
-
input ... - switches between inputs
-
statusRequest - requests the current status of the device
-
remoteControl UP,DOWN,... - sends remote control commands; see remoteControl help
-
ambiHue on,off - activates/disables Ambilight+Hue function
-
ambiMode internal,manual,expert - set source register for Ambilight
-
ambiPreset - set Ambilight to predefined state
-
rgb HEX,LED address - set an RGB value for Ambilight
-
hue 0-65534 - set the color hue value Ambilight
-
sat 0-255 - set the saturation value for Ambilight
-
bri 0-255 - set the brightness value for Ambilight
-
play - starts/resumes playback
-
pause - starts/resumes playback
-
stop - stops current playback
-
record - starts recording of current channel
-
-
-
-
-
-
- Advanced Ambilight Control
-
-
- If you would like to specificly control color for individual sides or even individual LEDs, you may use special addressing to be used with set command 'rgb':
-
- LED addressing format:
- <Layer$gt;<Side$gt;<LED number$gt;
-
- Examples:
-
- # set LED 0 on left side within layer 1 to color RED
- set PhilipsTV rgb L1L0:FF0000
-
- # set LED 0, 2 and 4 on left side within layer 1 to color RED
- set PhilipsTV rgb L1L0:FF0000 L1L2:FF0000 L1L4:FF0000
-
- # set complete right side within layer 1 to color GREEN
- set PhilipsTV rgb L1R:00FF00
-
- # set complete layer 1 to color BLUE
- set PhilipsTV rgb L1:0000FF
-
-
-
-
-
-
-
-
-
-
- Advanced Ambilight+HUE Control
-
-
- Linking to your HUE devices within attributes ambiHueLeft, ambiHueTop, ambiHueRight and ambiHueBottom uses some defaults to calculate the actual color.
- The following settings can be fine tuned:
-
-
LED(s) to be used as color source
- either 1 single LED or a few in a raw like 2-4. Defaults to use the middle LED and it's left and right partners. Counter starts at 1. See readings ambiLED* for how many LED's your TV has.
-
saturation in percent of the original value (1-99, default=100)
-
brightness in percent of the original value (1-99, default=100)
-
- Use the following addressing format for fine tuning:
- devicename:<LEDs$gt;<saturation$gt;<brightness$gt;
-
- Examples:
-
- # to use only LED 4 from the top as source
- attr PhilipsTV ambiHueTop HUEDevice0:4
-
- # to use a combination of LED's 1+2 as source
- attr PhilipsTV ambiHueTop HUEDevice0:1-2
-
- # to use LED's 1+2 and only 90% of their saturation
- attr PhilipsTV ambiHueTop HUEDevice0:1-2:90
-
- # to use LED's 1+2 and only 50% of their brightness
- attr PhilipsTV ambiHueTop HUEDevice0:1-2::50
-
- # to use LED's 1+2, 90% saturation and 50% brightness
- attr PhilipsTV ambiHueTop HUEDevice0:1-2:90:50
-
- # to use default LED settings but only adjust their brightness to 50%
- attr PhilipsTV ambiHueTop HUEDevice0:::50
-
-
-
-
-
-
-
- Get
-
- get <name> <what>
-
- Currently, the following commands are defined:
-
-
channel
- mute
- power
- input
- volume
- rgb
-
-
-
-
-
-
- Attributes
-
-
ambiHueLeft - HUE devices that should get the color from left Ambilight.
-
ambiHueTop - HUE devices that should get the color from top Ambilight.
-
ambiHueRight - HUE devices that should get the color from right Ambilight.
-
ambiHueBottom - HUE devices that should get the color from bottom Ambilight.
-
ambiHueLatency - Controls the update interval for HUE devices in milliseconds; defaults to 200 ms.
-
disable - Disable polling (true/false)
-
inputs - Presents the inputs read from device. Inputs can be renamed by adding ,NewName right after the original name.
-
timeout - Set different polling timeout in seconds (default=7)
-
-
-
-
-
- Generated Readings/Events:
-
-
ambiHue - Ambilight+Hue status
-
ambiLEDBottom - Number of LEDs of bottom Ambilight
-
ambiLEDLayers - Number of physical LED layers
-
ambiLEDLeft - Number of LEDs of left Ambilight
-
ambiLEDRight - Number of LEDs of right Ambilight
-
ambiLEDTop - Number of LEDs of top Ambilight
-
ambiMode - current Ambilight color source
-
channel - Shows the service name of current channel; part of FHEM-4-AV-Devices compatibility
-
country - Set country
-
currentMedia - The preset number of this channel; part of FHEM-4-AV-Devices compatibility
-
frequency - Shows current channels frequency
-
input - Shows currently used input; part of FHEM-4-AV-Devices compatibility
-
language - Set menu language
-
model - Device model
-
mute - Reports the mute status of the device (can be "on" or "off")
-
onid - The ON ID
-
power - Reports the power status of the device (can be "on" or "off")
-
presence - Reports the presence status of the receiver (can be "absent" or "present"). In case of an absent device, control is basically limited to turn it on again. This will only work if the device supports Wake-On-LAN packages, otherwise command "on" will have no effect.
-
receiveMode - Receiving mode (analog or DVB)
-
rgb - Current Ambilight color if ambiMode is not set to internal and all LEDs have the same color
-
rgb_X - Current Ambilight color of a specific LED if ambiMode is not set to internal
-
serialnumber - Device serial number
-
servicename - Name for current channel
-
sid - The S-ID
-
state - Reports current power state and an absence of the device (can be "on", "off" or "absent")
-
systemname - Device system name
-
tsid - The TS ID
-
volume - Reports current volume level of the receiver in percentage values (between 0 and 100 %)
-
volumeStraight - Reports current volume level of the receiver in device specific range
-
-
-
-
-
-
PID
-
- The PID device is a loop controller, used to set the value e.g of a heating
- valve dependent of the current and desired temperature.
-
-
-
-
- Define
-
- define <name> PID sensor[:reading:regexp] actor[:cmd:min:max] [p i d]
-
-
- sensor[:reading:regexp] specifies the sensor, which is an
- already defined fhem device, e.g. a S300TH temperature sensor. The reading
- and regexp fields are necessary only for unknown devices (currently CUL_WS and HMS devices are "known").
- Reading specifies the READINGS field of the sensor, and the regexp extracts
- the number from this field. E.g. for the complete definition for a CUL_WS
- device is: s300th_dev:temperature:([\d\.]*)
-
-
- actor[:cmd:min:max] specifies the actor, which is an
- already defined fhem device, e.g. an FHT8V valve. The cmd, min and max
- fields are necessary only for unknown devices (currently FHT8V is "known"). cmd specifies the command name for the
- actor, min the minimum value and max the maximum value. The complete
- definition for an FHT8V device is:fht8v_dev:valve:0:100
-
-
- p, i and d are the parameters use to controlling, see also the this wikipedia entry.
- The default values are around 25.5, 3 and 5.88, you probably need to tune
- these values. They can be also changed later.
-
-
- Examples:
-
- define wz_pid PID wz_th wz_fht8v
-
-
-
-
-
- Set
-
-
set <name> factors p i d
- Set the p, i and d factors, as described above.
-
-
set <name> desired <value>
- Set the desired value (e.g. temperature). Note: until this value is not
- set, no command is issued.
-
roundValveValue
- round the valve value to an integer, of the attribute is set to 1.
- The valve value is automatically rounded, if the attribtue is not set,
- and the difference between min and max is greater than 100.
-
- The PIFACE module managed the Raspberry Pi extension board PiFace Digital.
- PIFACE controls the input ports 0..7 and output ports 0..7.
-
-
The relays 0 and 1 have corresponding output port 0 and 1.
-
The switches 0..3 have corresponding input ports 0..3 and must be read with attr portMode<0..7> = up
-
- The status of the ports can be displayed periodically. The update of the states via interrupt is not supported.
- The module can be periodically monitored by a watchdog function.
- The ports can be read and controlled individually by the function readingsProxy.
- PIFACE is tested with the Raspbian OS.
-
- Preparatory Work
- The use of PIFACE module requires some preparatory work.
-
-
-
Module needs tools from Wiring Pi. Install it with
- git clone git://git.drogon.net/wiringPi
- cd wiringPi
- ./build
-
-
PiFace Digital need the SPI pins on the Raspberry Pi to be enabled in order to function.
- Start sudo raspi-config, select Option 8 Advanced Options
- and set the A5 SPI option to "Yes".
-
-
The function of the PiFace Digital can be tested at OS command line. For example:
- gpio -p readall
- gpio -p read 200
- gpio -p write 201 0 or gpio -p write 201 1
-
-
The watchdog function monitors the input port 7 and the output port 7.
- If the watchdog is enabled, this ports can not be used for other tasks.
- In order to monitor the input port 7, it must be connected to the ground!
- The OS command "shutdown" must be enable for fhem if an OS restart is to
- be executed in case of malfunction. For example, with chmod +s /sbin/shutdown
- or sudo chmod +s /sbin/shutdown.
-
-
-
-
-
-
- Define
-
- define <name> PIFACE
-
-
-
- Set
-
-
-
- set <name> <port> <value>
-
-
-
set single port n to 1 (on) or 0 (off)
- Examples:
- set <name> 3 1 => set port 3 on
- set <name> 5 0 => set port 5 off
-
-
set all ports in one command by bitmask
- Example:
- set <name> all 255 => set all ports on
- set <name> all 0 => set all ports off
- set <name> all 170 => bitmask(170) = 10101010 => set ports 1 3 5 7 on, ports 0 2 4 6 off
-
-
- port 76543210
- bit 10101010
-
-
-
-
-
-
-
- Get
-
-
-
- get <name> <port>
-
-
-
get state of single port
- Example:
- get <name> 3 => get state of port 3
-
-
-
get state of input ports and update changed readings
- Example:
- get <name> in => get state of all input ports
-
-
-
get state of out ports and update changed readings
- Example:
- get <name> out => get state of all output ports
-
-
-
get state of input and out ports and update all readings
- Example:
- get <name> all => get state of all ports
-
-
-
-
-
-
-
- Attributes
-
-
defaultState last|off|0|1,
- [defaultState] = off is default.
- Restoration of the status of the output port after a Fhem reboot.
-
-
disable 0|1
- If applied set commands will not be executed.
-
-
disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM...
- Space separated list of HH:MM tupels. If the current time is between
- the two time specifications, set commands will not be executed. Instead of
- HH:MM you can also specify HH or HH:MM:SS. To specify an interval
- spawning midnight, you have to specify two intervals, e.g.:
-
- 23:00-24:00 00:00-01:00
-
-
-
pollInterval off|1,2,...,9,10,
- [pollInterval] = off is default.
- Define the polling interval of the input ports in seconds.
-
-
portMode<0..7> tri|up,
- [portMode<0..7>] = tri is default.
- This enables (up) or disables (tri) the internal pull-up resistor on the given input port.
- You need to enable the pull-up if you want to read any of the on-board switches on the PiFace board.
-
watchdog off|on|silent,
- [watchdog] = off is default.
- The function of the PiFace extension can be monitored periodically.
- The watchdog module checks the function of ports in7 and out7.
- If the watchdog function is to be used, ports in7 and out7 are reserved for this purpose.
- The port 7 must be connected to ground.
- If [watchdog] = on, the result of which is periodically logged and written to the reading watchdog.
- If [watchdog] = silent, FHEM is restarted after the first error detected.
- If the error could not be eliminated, then the Raspberry operating system is restarted.
- If the error is not corrected as well, the monitoring function is disabled and the error is logged.
-
-
watchdogInterval 10..65535,
- [watchdogInterval] = 60 is default.
- Interval between two monitoring tests in seconds.
-
-
-
-
- Generated Readings/Events:
-
-
-
<out0..out7>: 0|1
- state of output port 0..7
-
<in0..in7>: 0|1
- state of input port 0..7
-
watchdog: off|ok|error|restart|start
- state of the watchdog function
-
state: active|error
-
-
-
-
-
-
POKEYS
-
- The POKEYS module is used to control the LAN POKEYS device (POKEYS56e) which supports
- up to 56 digital input, analog inputs, counter inputs and digital outputs.
- Each port/pin has to be configured before it can be used.
-
-
-
-
- Define
-
- define <name> POKEYS <ip-address> <pin> <io-state> [<time in ms>]
-
- <ip-address> the IP address where the POKEYS device can be accessed
- <pin> the pin number which should be configured
- <io-state> the new io state of the pin Obsolete(=undef) DigIn DigOut AdcIn DigInCtRise DigInCtFall ExtDigOut GetBasic
- <time in ms> optional else 1000ms: cyclic update time for Input pin
-
-
- Example:
-
- define PoInfo POKEYS 192.168.178.34 0 GetBasic
- # creates a virtual pin for getting infos about the device with the get command
- define Pin44in POKEYS 192.168.178.34 44 DigIn 200
- # creates a digitial input port on pin 44
- define Pin25out POKEYS 192.168.178.34 25 DigOut
- # creates a digial output port on pin 25
-
-
-
-
- Set
-
- set <name> <state> [<time in ms>]
-
- <state> can be OFF ON OFF_PULSE ON_PULSE
- <time in ms> optional else 1000ms hold time for the ON_PULSE OFF_PULSE state
-
- Example:
-
- set Pin25out ON
- # sets Pin25out to ON (0V)
-
-
-
-
- Get
-
- get <name> <type>
-
- only supported for pins of type GetBasic
- <type> can be Version DevName Serial User CPUload
-
- Example:
-
- get PoInfo Version
- # gets the version of the POKEYS device
-
-
-
-
- Attributes
-
- todo
-
-
-
-
-
-
PRESENCE
-
-
- The PRESENCE module provides several possibilities to check the presence of mobile phones or similar mobile devices such as tablets.
-
- This module provides several operational modes to serve your needs. These are:
-
-
lan-ping - A presence check of a device via network ping in your LAN/WLAN
-
fritzbox - A presence check by requesting the device state from the FritzBox internals (only available when running FHEM on a FritzBox!)
-
local-bluetooth - A presence check by searching directly for a given bluetooth device nearby
-
function - A presence check by using your own perl function which returns a presence state
-
shellscript - A presence check by using an self-written script or binary which returns a presence state
-
lan-bluetooth - A presence check of a bluetooth device via LAN network by connecting to a presenced or collectord instance
-
-
- Each mode can be optionally configured with a specific check interval and a present check interval.
-
-
check-interval - The interval in seconds between each presence check. Default value: 30 seconds
-
present-check-interval - The interval in seconds between each presence check in case the device is present. Otherwise the normal check-interval will be used.
-
-
-
- Define
-
Mode: lan-ping
- define <name> PRESENCE lan-ping <ip-address> [ <check-interval> [ <present-check-interval> ] ]
-
- Checks for a network device via PING requests and reports its presence state.
- define <name> PRESENCE fritzbox <device-name> [ <check-interval> [ <present-check-interval> ] ]
-
- Checks for a network device by requesting the internal state on a FritzBox via ctlmgr_ctl. The device-name must be the same as shown in the network overview of the FritzBox
- This check is only applicaple when FHEM is running on a FritzBox!
- Example
- define iPhone PRESENCE fritzbox iPhone-4S
- Mode: local-bluetooth
- define <name> PRESENCE local-bluetooth <bluetooth-address> [ <check-interval> [ <present-check-interval> ] ]
-
- Checks for a bluetooth device and reports its presence state. For this mode the shell command "hcitool" is required (provided with a bluez installation under Debian via APT), as well
- as a functional bluetooth device directly attached to your machine.
- define <name> PRESENCE function {...} [ <check-interval> [ <present-check-interval> ] ]
-
- Checks for a presence state via perl-code. You can use a self-written perl function to obtain the presence state of a specific device (e.g. via SNMP check).
- The function must return 0 (absent) or 1 (present). An example can be found in the FHEM-Wiki.
- Example
- define iPhone PRESENCE function {snmpCheck("10.0.1.1","0x44d77429f35c")}
- Mode: shellscript
- define <name> PRESENCE shellscript "<path> [<arg1>] [<argN>]..." [ <check-interval> [ <present-check-interval> ] ]
-
- Checks for a presence state via shell script. You can use a self-written script or binary in any language to obtain the presence state of a specific device (e.g. via SNMP check).
- The shell must return 0 (absent) or 1 (present) on console (STDOUT). Any other values will be treated as an error
- Checks for a bluetooth device with the help of presenced or collectord. They can be installed where-ever you like, just must be accessible via network.
- The given device will be checked for presence status.
-
- define <name> PRESENCE lan-bluetooth <bluetooth-address> <ip-address>[:port] [ <check-interval> ]
-
- The default port is 5111 (presenced). Alternatly you can use port 5222 (collectord)
-
- Example
The presence is a perl network daemon, which provides presence checks of multiple bluetooth devices over network.
- It listens on TCP port 5111 for incoming connections from a FHEM PRESENCE instance or a running collectord.
-
-Usage:
- presenced -d [-p <port>] [-P <filename>]
- presenced [-h | --help]
-
-
-Options:
- -p, --port
- TCP Port which should be used (Default: 5111)
- -P, --pid-file
- PID file for storing the local process id (Default: /var/run/presenced.pid)
- -d, --daemon
- detach from terminal and run as background daemon
- -v, --verbose
- Print detailed log output
- -h, --help
- Print detailed help screen
-
-
- It uses the hcitool command (provided by a bluez installation)
- to make a paging request to the given bluetooth address (like 01:B4:5E:AD:F6:D3). The devices must not be visible, but
- still activated to receive bluetooth requests.
-
- If a device is present, this is send to FHEM, as well as the device name as reading.
- The collectord is a perl network daemon, which handles connections to several presenced installations to search for multiple bluetooth devices over network.
-
- It listens on TCP port 5222 for incoming connections from a FHEM presence instance.
-
-Usage:
- collectord -c <configfile> [-d] [-p <port>] [-P <pidfile>]
- collectord [-h | --help]
-
-
-Options:
- -c, --configfile <configfile>
- The config file which contains the room and timeout definitions
- -p, --port
- TCP Port which should be used (Default: 5222)
- -P, --pid-file
- PID file for storing the local process id (Default: /var/run/collectord.pid)
- -d, --daemon
- detach from terminal and run as background daemon
- -v, --verbose
- Print detailed log output
- -l, --logfile <logfile>
- log to the given logfile
- -h, --help
- Print detailed help screen
-
- Before the collectord can be used, it needs a config file, where all different rooms, which have a presenced detector, will be listed. This config file looks like:
-
-
- # room definition
- # ===============
- #
- [room-name] # name of the room
- address=192.168.0.10 # ip-address or hostname
- port=5111 # tcp port which should be used (5111 is default)
- presence_timeout=120 # timeout in seconds for each check when devices are present
- absence_timeout=20 # timeout in seconds for each check when devices are absent
-
- [living room]
- address=192.168.0.11
- port=5111
- presence_timeout=180
- absence_timeout=20
-
-
- If a device is present in any of the configured rooms, this is send to FHEM, as well as the device name as reading and the room which has detected the device.
(Only in Mode "ping" on non-Windows machines applicable)
- Changes the count of the used ping packets to recognize a present state. Depending on your network performance sometimes a packet can be lost or blocked.
(Only in Mode "fritzbox" applicable)
- If your FritzBox is part of a network using repeaters, than this attribute needs to be enabled to ensure a correct recognition for devices, which are connected via repeater.
-
- This attribute is also needed, if your network device has no speed information on the FritzBox website (Home Network).
- BE AWARE: The recognition of device going absent in a repeated network can take about 15 - 20 minutes!!
-
- Possible values: 0 => Use default recognition, 1 => Use repeater-supported recognition
- Default Value is 0 (Use default recognition)
-
-
-
-
-
-
- Generated Events:
-
- General Events:
-
-
state: $state (absent|present|disabled) - The state of the device or "disabled" when the disable attribute is enabled
-
- Bluetooth specific events:
-
-
device_name: $name - The name of the Bluetooth device in case it's present
-
- presenced/collectord specific events:
-
-
command_accepted: $command_accepted (yes|no) - Was the last command acknowleged and accepted by the presenced or collectord?
-
room: $room - If the module is connected with a collector daemon this event shows the room, where the device is located (as defined in the collectord config file)
-
-
-
-
-
-
-
PachLog
-
- The PachLog-Module Logs SensorData like (temperature and humidity) to www.pachube.com.
-
- Note: this module needs the HTTP::Request and LWP::UserAgent perl modules.
-
-
- Define
-
- define <name> PachLog <Pachube-API-Key>
-
- <Pachube-API-Key>:
- The Pachube-API-Key however is what you need in your code to authenticate your application's access the Pachube service.
- Don't share this with anyone: it's just like any other password.
- www.pachube.com
-
-
-
-
-
- Set
-
-
- Add a new Device for Logging to www.pachube.com
- set <NAME> ADD <FHEM-DEVICENAME> FEED-NR:ID:READING:ID:READING
- Example: KS300-Weather-Data
- READINGS: temperature humidity wind rain
- 1. Generate Input-Feed on www.pachube.com => Yout get your FEED-NR: 1234
- 2. Add Datastreams to the Feed:
-
-
-
ID
0
temperature
-
ID
1
humidity
-
ID
2
wind
-
ID
3
rain
-
- 3. Add the KS300 to your PachLog-Device
- set <NAME> ADD <My-KS300> 1234:0temperature:1:humidity:2:wind:3:rain
disable
- Disables PachLog.
- Nor more Logging to www.pachube.com
-
-
-
-
-
-
-
-
Pushover
-
- Pushover is a service to receive instant push notifications on your
- phone or tablet from a variety of sources.
- You need an account to use this module.
- For further information about the service see pushover.net.
-
- Discuss the module here.
-
-
-
- Define
-
- define <name> Pushover <token> <user>
-
- You have to create an account to get the user key.
- And you have to create an application to get the API token.
-
- Example:
-
- set Pushover1 msg 'Titel' 'This is a text.' '' 0 ''
- set Pushover1 msg 'Emergency' 'Security issue in living room.' '' 2 'siren' 30 3600
-
-
- Notes:
-
-
If device is empty, the message will be sent to all devices.
-
-
If sound is empty, the default setting in the app will be used.
-
-
If priority is higher or equal 2, retry and expire must be defined.
-
-
For further documentation of these parameters have a look at the Pushover API.
-
-
-
-
- Get
N/A
-
- Attributes
-
-
-
timestamp
- Send the unix timestamp with each message.
-
-
-
-
- Generated events:
-
- N/A
-
-
-
-
-
-
-
- RESIDENTS
-
-
- Define
-
- define <rgr_ResidentsName> RESIDENTS
-
- Provides a special dummy device to represent a group of individuals living at your home.
- It locically combines individual states of ROOMMATE and GUEST devices and allows state changes for all members.
- Based on the current state and other readings, you may trigger other actions within FHEM.
-
- Example:
-
- # Standalone
- define rgr_Residents RESIDENTS
-
-
-
- Set
-
- set <rgr_ResidentsName> <command> [<parameter>]
-
- Currently, the following commands are defined.
-
-
- addGuest - creates a new GUEST device and adds it to the current RESIDENTS group. Just enter the dummy name and there you go.
-
-
- addRoommate - creates a new ROOMMATE device and adds it to the current RESIDENTS group. Just enter the first name and there you go.
-
-
- removeGuest - shows all GUEST members and allows to delete their dummy devices easily.
-
-
- removeRoommate - shows all ROOMMATE members and allows to delete their dummy devices easily.
-
-
- state home,gotosleep,asleep,awoken,absent,gone switch between states for all group members at once; see attribute rgr_states to adjust list shown in FHEMWEB
-
-
-
-
-
- Possible states and their meaning
-
-
- This module differs between 7 states:
-
-
-
- home - residents are present at home and at least one of them is not asleep
-
-
- gotosleep - present residents are on their way to bed (if they are not asleep already)
-
-
- asleep - all present residents are currently sleeping
-
-
- awoken - at least one resident just woke up from sleep
-
-
- absent - no resident is currently at home but at least one will be back shortly
-
-
- gone - all residents left home for longer period
-
-
- none - no active member
-
-
-
- Note: State 'none' cannot explicitly be set. Setting state to 'gone' will be handled as 'none' for GUEST member devices.
-
-
-
- Attributes
-
-
-
- rgr_showAllStates - states 'asleep' and 'awoken' are hidden by default to allow simple gotosleep process via devStateIcon; defaults to 0
-
-
- rgr_states - list of states to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces; unsupported states will lead to errors though
-
-
-
-
-
- Generated Readings/Events:
-
-
-
- lastActivity - the last state change of one of the group members
-
-
- lastActivityBy - the realname of the last group member with changed state
-
-
- lastArrival - timestamp of last arrival at home
-
-
- lastAwake - timestamp of last sleep cycle end
-
-
- lastDeparture - timestamp of last departure from home
-
-
- lastDurAbsence - duration of last absence from home in following format: hours:minutes:seconds
-
-
- lastDurPresence - duration of last presence at home in following format: hours:minutes:seconds
-
-
- lastDurSleep - duration of last sleep in following format: hours:minutes:seconds
-
-
- lastSleep - timestamp of last sleep cycle begin
-
-
- lastState - the prior state
-
-
- presence - reflects the home presence state, depending on value of reading 'state' (can be 'present' or 'absent')
-
-
- residentsAbsent - number of residents with state 'absent'
-
-
- residentsAsleep - number of residents with state 'asleep'
-
-
- residentsAwoken - number of residents with state 'awoken'
-
-
- residentsGone - number of residents with state 'gone'
-
-
- residentsGotosleep - number of residents with state 'gotosleep'
-
-
- residentsGuests - number of active guests who are currently treated as part of the residents scope
-
-
- residentsHome - number of residents with state 'home'
-
-
- residentsTotal - total number of all active residents despite their current state
-
-
- residentsTotalAbsent - number of all residents who are currently underway
-
-
- residentsTotalPresent - number of all residents who are currently at home
-
-
- residentsTotalWayhome - number of all active residents who are currently on their way back home
-
-
- state - reflects the current state
-
-
-
-
-
-
-
RFXCOM
-
-
-
- This module is for the old RFXCOM USB or LAN based 433 Mhz RF receivers and transmitters (order order code 80002 and others). It does not support the new RFXtrx433 transmitter because it uses a different protocol. See RFXTRX for support of the RFXtrx433 transmitter.
-These receivers supports many protocols like Oregon Scientific weather sensors, RFXMeter devices, X10 security and lighting devices and others.
- Currently the following parser modules are implemented:
-
-
41_OREGON.pm (see device OREGON): Process messages Oregon Scientific weather sensors.
- See http://www.rfxcom.com/oregon.htm of
- Oregon Scientific weather sensors that could be received by the RFXCOM receivers.
- Until now the following Oregon Scientific weather sensors have been tested successfully: BTHR918, BTHR918N, PCR800, RGR918, THGR228N, THGR810, THR128, THWR288A, WTGR800, WGR918. It will probably work with many other Oregon sensors supported by RFXCOM receivers. Please give feedback if you use other sensors.
-
43_RFXX10REC.pm (see device RFXX10REC): Process X10 security and X10 lighting devices.
-
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module
- if the devices is connected via USB or a serial port.
-
-
- Define
-
- define <name> RFXCOM <device> [noinit]
-
-
- USB-connected (80002):
- <device> specifies the USB port to communicate with the RFXCOM receiver.
- Normally on Linux the device will be named /dev/ttyUSBx, where x is a number.
- For example /dev/ttyUSB0.
-
- Example:
- define RFXCOMUSB RFXCOM /dev/ttyUSB0
-
-
-
- Network-connected devices:
-
- <device> specifies the host:port of the device. E.g.
- 192.168.1.5:10001
-
-
- noninit is optional and issues that the RFXCOM device should not be
- initialized. This is useful if you share a RFXCOM device. It is also useful
- for testing to simulate a RFXCOM receiver via netcat or via FHEM2FHEM.
-
-
- Example:
- define RFXCOMTCP RFXCOM 192.168.1.5:10001
-
- define RFXCOMTCP2 RFXCOM 192.168.1.121:10001 noinit
-
-
longids
- Comma separated list of device-types for RFXCOM that should be handled using long IDs. This additional ID is a one byte hex string and is generated by the Oregon sensor when is it powered on. The value seems to be randomly generated. This has the advantage that you may use more than one Oregon sensor of the same type even if it has no switch to set a sensor id. For example the author uses two BTHR918N sensors at the same time. All have different deviceids. The drawback is that the deviceid changes after changing batteries. All devices listed as longids will get an additional one byte hex string appended to the device name.
-Default is to use long IDs for all devices.
-
- Examples:
-# Do not use any long IDs for any devices:
-attr RFXCOMUSB longids 0
-# Use any long IDs for all devices (this is default):
-attr RFXCOMUSB longids 1
-# Use longids for BTHR918N devices.
-# Will generate devices names like BTHR918N_f3.
-attr RFXCOMUSB longids BTHR918N
-# Use longids for TX3_T and TX3_H devices.
-# Will generate devices names like TX3_T_07, TX3_T_01 ,TX3_H_07.
-attr RFXCOMUSB longids TX3_T,TX3_H
-
-
-
-
-
-
RFXMETER
-
- The RFXMETER module interprets RFXCOM RFXMeter messages received by a RFXCOM receiver. You need to define an RFXCOM receiver first.
- See the RFXCOM.
-
-
-
-
- Define
-
- define <name> RFXMETER <deviceid> [<scalefactor>] [<unitname>]
-
- <deviceid> is the device identifier of the RFXMeter sensor and is a one byte hexstring (00-ff).
-
- <scalefactor> is an optional scaling factor. It is multiplied to the value that is received from the RFXmeter sensor.
-
- <unitname> is an optional string that describes the value units. It is added to the Reading generated to describe the values.
-
- The RFXX10REC module interprets X10 security and X10 lighting messages received by a RFXCOM RF receiver. Reported also to work with KlikAanKlikUit. You need to define an RFXCOM receiver first.
- See RFXCOM.
-
-
- specifies the type of the X10 device:
- X10 security devices:
-
-
ds10a (X10 security ds10a Door/Window Sensor or compatible devices. This device type reports the status of the switch [Open/Closed], status of the delay switch [min|max]], and battery status [ok|low].)
-
ms10a (X10 security ms10a motion sensor. This device type reports the status of motion sensor [normal|alert] and battery status [ok|low].))
-
sd90 (Marmitek sd90 smoke detector. This device type reports the status of the smoke detector [normal|alert] and battery status [ok|low].)
-
kr18 (X10 security remote control. Report the Reading "Security" with values [Arm|Disarm], "ButtonA" and "ButtonB" with values [on|off] )
-
- X10 lighting devices:
-
-
ms14a (X10 motion sensor. Reports [normal|alert] on the first deviceid (motion sensor) and [on|off] for the second deviceid (light sensor))
-
x10 (All other x10 devices. Report [on|off] on both deviceids.)
-
-
-
- <deviceid>
-
- specifies the first device id of the device. X10 security have a a 16-Bit device id which has to be written as a hex-string (example "5a54").
- A X10 lighting device has a house code A..P followed by a unitcode 1..16 (example "B1").
-
-
- <devicelog>
-
- is the name of the Reading used to report. Suggested: "Window" or "Door" for ds10a, "motion" for motion sensors, "Smoke" for sd90.
-
-
- <deviceid2>
-
- is optional and specifies the second device id of the device if it exists. For example sd90 smoke sensors can be configured to report two device ids. ms14a motion sensors report motion status on the first deviceid and the status of the light sensor on the second deviceid.
-
-
- <devicelog2>
-
- is optional for the name used for the Reading of <deviceid2>.
-
- define <rr_FirstName> ROOMMATE [<device name of resident group>]
-
- Provides a special dummy device to represent a resident of your home.
- Based on the current state and other readings, you may trigger other actions within FHEM.
-
- Used by superior module RESIDENTS but may also be used stand-alone.
-
- Example:
-
- # Standalone
- define rr_Manfred ROOMMATE
-
- # Typical group member
- define rr_Manfred ROOMMATE rgr_Residents # to be member of resident group rgr_Residents
-
- # Member of multiple groups
- define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # to be member of resident group rgr_Residents and rgr_Parents
-
- # Complex family structure
- define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # Parent
- define rr_Lisa ROOMMATE rgr_Residents,rgr_Parents # Parent
- define rr_Rick ROOMMATE rgr_Residents,rgr_Children # Child1
- define rr_Alex ROOMMATE rgr_Residents,rgr_Children # Child2
-
-
-
- Please note the RESIDENTS group device needs to be existing before a ROOMMATE device can become a member of it.
-
-
-
- Set
-
- set <rr_FirstName> <command> [<parameter>]
-
- Currently, the following commands are defined.
-
-
- location - sets reading 'location'; see attribute rr_locations to adjust list shown in FHEMWEB
-
-
- mood - sets reading 'mood'; see attribute rr_moods to adjust list shown in FHEMWEB
-
-
- state home,gotosleep,asleep,awoken,absent,gone switch between states; see attribute rr_states to adjust list shown in FHEMWEB
-
-
-
-
-
- Possible states and their meaning
-
-
- This module differs between 6 states:
-
-
-
- home - individual is present at home and awake
-
-
- gotosleep - individual is on it's way to bed
-
-
- asleep - individual is currently sleeping
-
-
- awoken - individual just woke up from sleep
-
-
- absent - individual is not present at home but will be back shortly
-
-
- gone - individual is away from home for longer period
-
-
-
-
-
-
- Presence correlation to location
-
-
- Under specific circumstances, changing state will automatically change reading 'location' as well.
-
- Whenever presence state changes from 'absent' to 'present', the location is set to 'home'. If attribute rr_locationHome was defined, first location from it will be used as home location.
-
- Whenever presence state changes from 'present' to 'absent', the location is set to 'underway'. If attribute rr_locationUnderway was defined, first location from it will be used as underway location.
-
-
-
-
- Auto Gone
-
-
- Whenever an individual is set to 'absent', a trigger is started to automatically change state to 'gone' after a specific timeframe.
- Default value is 36 hours.
-
- This behaviour can be customized by attribute rr_autoGoneAfter.
-
-
-
-
- Synchronizing presence with other ROOMMATE or GUEST devices
-
-
- If you always leave or arrive at your house together with other roommates or guests, you may enable a synchronization of your presence state for certain individuals.
- By setting attribute rr_passPresenceTo, those individuals will follow your presence state changes to 'home', 'absent' or 'gone' as you do them with your own device.
-
- Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
-
-
-
-
- Location correlation to state
-
-
- Under specific circumstances, changing location will have an effect on the actual state as well.
-
- Whenever location is set to 'home', the state is set to 'home' if prior presence state was 'absent'. If attribute rr_locationHome was defined, all of those locations will trigger state change to 'home' as well.
-
- Whenever location is set to 'underway', the state is set to 'absent' if prior presence state was 'present'. If attribute rr_locationUnderway was defined, all of those locations will trigger state change to 'absent' as well. Those locations won't appear in reading 'lastLocation'.
-
- Whenever location is set to 'wayhome', the reading 'wayhome' is set to '1' if current presence state is 'absent'. If attribute rr_locationWayhome was defined, LEAVING one of those locations will set reading 'wayhome' to '1' as well. So you actually have implicit and explicit options to trigger wayhome.
- Arriving at home will reset the value of 'wayhome' to '0'.
-
- If you are using the GEOFANCY module, you can easily have your location updated with GEOFANCY events by defining a simple NOTIFY-trigger like this:
-
- define n_rr_Manfred.location notify geofancy:currLoc_Manfred.* set rr_Manfred location $EVTPART1
-
- By defining geofencing zones called 'home' and 'wayhome' in the iOS app, you automatically get all the features of automatic state changes described above.
-
-
-
- Attributes
-
-
-
- rr_autoGoneAfter - hours after which state should be auto-set to 'gone' when current state is 'absent'; defaults to 36 hours
-
-
- rr_locationHome - locations matching these will be treated as being at home; first entry reflects default value to be used with state correlation; separate entries by space; defaults to 'home'
-
-
- rr_locationUnderway - locations matching these will be treated as being underway; first entry reflects default value to be used with state correlation; separate entries by comma or space; defaults to "underway"
-
-
- rr_locationWayhome - leaving a location matching these will set reading wayhome to 1; separate entries by space; defaults to "wayhome"
-
-
- rr_locations - list of locations to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces
-
-
- rr_moodDefault - the mood that should be set after arriving at home or changing state from awoken to home
-
-
- rr_moodSleepy - the mood that should be set if state was changed to gotosleep or awoken
-
-
- rr_moods - list of moods to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces
-
-
- rr_passPresenceTo - synchronize presence state with other ROOMMATE or GUEST devices; separte devices by space
-
-
- rr_realname - whenever ROOMMATE wants to use the realname it uses the value of attribute alias or group; defaults to group
-
-
- rr_showAllStates - states 'asleep' and 'awoken' are hidden by default to allow simple gotosleep process via devStateIcon; defaults to 0
-
-
- rr_states - list of states to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces; unsupported states will lead to errors though
-
-
-
-
-
- Generated Readings/Events:
-
-
-
- durTimerAbsence - timer to show the duration of absence from home in minutes
-
-
- durTimerPresence - timer to show the duration of presence at home in minutes
-
-
- durTimerSleep - timer to show the duration of sleep in minutes
-
-
- lastArrival - timestamp of last arrival at home
-
-
- lastAwake - timestamp of last sleep cycle end
-
-
- lastDeparture - timestamp of last departure from home
-
-
- lastDurAbsence - duration of last absence from home in following format: hours:minutes:seconds
-
-
- lastDurPresence - duration of last presence at home in following format: hours:minutes:seconds
-
-
- lastDurSleep - duration of last sleep in following format: hours:minutes:seconds
-
-
- lastLocation - the prior location
-
-
- lastMood - the prior mood
-
-
- lastSleep - timestamp of last sleep cycle begin
-
-
- lastState - the prior state
-
-
- location - the current location
-
-
- presence - reflects the home presence state, depending on value of reading 'state' (can be 'present' or 'absent')
-
-
- mood - the current mood
-
-
- state - reflects the current state
-
-
- wayhome - depending on current location, it can become '1' if individual is on his/her way back home
-
-
-
-
-
-
-
RPII2C
-
-
- Provides access to Raspberry Pi's I2C interfaces for some logical modules and also directly.
- This modul will basically work on every linux system that provides /dev/i2c-x.
-
- preliminary:
-
-
- This module uses gpio utility from WiringPi library change access rights of I2C-Interface
- WiringPi installation is described here: RPI_GPIO
- Alternatively for other systems (BeagleBone, etc.) you can manually change access rights for /dev/i2c-x. You will need write-/read access for user that runs FHEM. This can be doen e.g. in etc/init.d/fhem
-
-
- To access the I2C-Bus the Device::SMBus module is necessary:
- sudo apt-get install libmoose-perl
- sudo cpan Device::SMBus
-
-
-
- Define
-
- define <name> RPII2C <I2C Bus Number>
- where <I2C Bus Number> is the number of the I2C bus that should be used (0 or 1)
-
-
-
- Set
-
-
- Write one byte (or more bytes sequentially) directly to an I2C device (for devices that have only one register to write):
- set <name> writeByte <I2C Address> <value>
-
-
- Write one byte (or more bytes sequentially) to the specified register of an I2C device:
- set <name> writeByteReg <I2C Address> <Register Address> <value>
-
-
- Write n-bytes to an register range, beginning at the specified register:
- set <name> writeBlock <I2C Address> <Register Address> <value>
-
-
- Same as writeBlock but writes register range sequentially. The numbers of byte to write must be a multipe of the number of register.
- set <name> writeNBlock <I2C Address> <Register Address> <number of registers> <value>
-
- Examples:
-
- Write 0xAA to device with I2C address 0x60
- set test1 writeByte 60 AA
- Write 0xAA to register 0x01 of device with I2C address 0x6E
- set test1 writeByteReg 6E 01 AA
- Write 0xAA to register 0x01 of device with I2C address 0x6E, after it write 0x55 to 0x02 as two separate commands
- set test1 writeByteReg 6E 01 AA 55
- Write 0xA4 to register 0x03, 0x00 to register 0x04 and 0xDA to register 0x05 of device with I2C address 0x60 as an block command
- set test1 writeBlock 60 03 A4 00 DA
-
-
-
-
-
- Get
-
- get <name> read <I2C Address> [<Register Address> [<number of registers>]]
-
- gets value of I2C device's registers
- Examples:
-
- Reads byte from device with I2C address 0x60
- get test1 writeByte 60
- Reads register 0x01 of device with I2C address 0x6E.
- get test1 read 6E 01 AA 55
- Reads register 0x03 to 0x06 of device with I2C address 0x60.
- get test1 read 60 03 4
-
- Raspberry Pi offers direct access to several GPIO via header P1 (and P5 on V2). The Pinout is shown in table under define.
- With this module you are able to access these GPIO's directly as output or input. For input you can use either polling or interrupt mode
- Warning: Never apply any external voltage to an output configured pin! GPIO's internal logic operate with 3,3V. Don't exceed this Voltage!
-
- preliminary:
- GPIO Pins accessed by sysfs. The files are located in folder /system/class/gpio which can be only accessed by root.
- This module uses gpio utility from WiringPi library to export and change access rights of GPIO's
- Install WiringPi:
-
- readval refreshes the reading Pinlevel and, if attr toggletostate not set, the state value
-
-
- Examples:
-
- set Pin12 off
- set Pin11,Pin12 on
-
-
-
-
- Get
-
- get <name>
-
- returns "high" or "low" regarding the actual status of the pin and writes this value to reading Pinlevel
-
-
-
- Attributes
-
-
direction
- Sets the GPIO direction to input or output.
- Default: input, valid values: input, output
-
-
interrupt
- can only be used with GPIO configured as input
- enables edge detection for GPIO pin
- on each interrupt event readings Pinlevel and state will be updated
- Default: none, valid values: none, falling, rising, both
- For "both" the reading Longpress will be added and set to on as long as kes hold down longer than 1s
- For "falling" and "rising" the reading Toggle will be added an will be toggled at every interrupt and the reading Counter that increments at every interrupt
-
-
poll_interval
- Set the polling interval in minutes to query the GPIO's level
- Default: -, valid values: decimal number
-
-
toggletostate
- works with interrupt set to falling or rising only
- if yes, state will be toggled at each interrupt event
- Default: no, valid values: yes, no
-
-
pud_resistor
- Sets the internal pullup/pulldown resistor
- Default: -, valid values: off, up, down
-
-
debounce_in_ms
- readout of pin value x ms after an interrupt occured. Can be used for switch debouncing
- Default: 0, valid values: decimal number
-
-
restoreOnStartup
- Restore Readings and sets after reboot
- Default: on, valid values: on, off
-
-
longpressinterval
- works with interrupt set to both only
- time in seconds, a port need to be high to set reading longpress to on
- Default: 1, valid values: 0.1 - 10
-
- Currently a media RSS feed delivering status pictures in JPEG format is supported. This media
- RSS feed can be used to feed a status display to a network-enabled photo frame.
-
- You need to have the perl module GD installed. This module is most likely not
- available for small systems like Fritz!Box.
- RSS is an extension to FHEMWEB. You must install FHEMWEB to use RSS.
-
-
- Define
-
- define <name> RSS jpg <hostname> <filename>
-
- Defines the RSS feed. jpg is a fixed literal to allow for future
- extensions. <hostname> is the hostname of the fhem server as
- seen from the consumer of the RSS feed. <filename> is the
- name of the file that contains the layout definition.
- Rereads the layout definition from the file. Useful to enable
- changes in the layout on-the-fly.
-
-
-
-
- Attributes
-
-
-
size The dimensions of the JPEG picture in the format
- <width>x<height>.
-
bg The directory that contains the background pictures (must be in JPEG format).
-
tmin The background picture is shown at least tmin seconds,
- no matter how frequently the RSS feed consumer accesses the page.
-
-
-
- Usage information
-
-
- If a least one RSS feed is defined, the menu entry RSS appears in the FHEMWEB
- side menu. If you click it you get a list of all defined RSS feeds. The URL of any such is
- RSS feed is http://hostname:port/fhem/rss/name.rss with hostname and
- name from the RSS feed's definition and the port
- (usually 8083) and literal /fhem from the underlying FHEMWEB
- definition.
-
- The media RSS feed points to a dynamically generated JPEG picture. The URL of the JPEG picture
- belonging to the RSS feed is http://hostname:port/fhem/rss/name.jpg, i.e. the URL
- of the RSS feed with the extension rss changed to jpg.
-
- To render the JPEG picture the current, or, if tmin seconds have elapsed, the next
- JPEG picture from the directory bg is chosen and scaled to the dimensions given
- in size. The background is black if no usable JPEG picture can be found. Next the
- script in the layout definition is used to superimpose items on
- the background.
-
- You can directly access the URL of the JPEG picture in your browser. Reload the page to see
- how it works.
-
- The media RSS feed advertises to refresh after 1 minute (ttl). Some photo frames ignore it and
- use their preset refresh rate. Go for a photo frame with an adjustable refresh rate (e.g
- every 5 seconds) if you have the choice!
-
- This is how the fhem config part might look like:
- The layout definition is a script for placing items on the background. It is read top-down.
- It consists of layout control commands and items placement commands. Layout control
- commands define the appearance of subsequent items. Item placement commands actually
- render items.
-
- Everything after a # is treated as a comment and ignored. You can fold long lines by
- putting a \ at the end.
-
- General notes
-
-
Use double quotes to quote literal text if perl specials are allowed.
-
Text alignment requires the Perl module GD::Text::Align to be installed. Text wrapping (in text boxes) require GD::Text::Wrap to be installed. Debian-based systems can install both with apt-get install libgd-text-perl.
-
-
- Notes on coordinates
-
-
(0,0) is the upper left corner.
-
Coordinates equal or greater than 1 are considered to be absolute pixels, coordinates between 0 and 1 are considered to
- be relative to the total width or height of the picture.
-
Literal x and y evaluate to the most recently used x- and y-coordinate. See also moveto and moveby below.
-
-
-
-
-
- Layout control commands
-
-
-
moveto <x> <y> Moves most recently used x- and y-coordinate to the given absolute or relative position.
-
-
moveby <x> <y> Moves most recently used x- and y-coordinate by the given absolute or relative amounts.
-
-
font "<font>" Sets the font. <font> is the name of a TrueType font (e.g.
- Arial) or the full path to a TrueType font
- (e.g. /usr/share/fonts/truetype/arial.ttf),
- whatever works on your system.
-
-
rgb "<color>" Sets the color. <color> is a 6-digit hex number, every 2 digits
- determining the red, green and blue color components as in HTML color codes (e.g.
- FF0000 for red, C0C0C0 for light gray). You can use
- { <perl special> } for <color>.
-
-
pt <pt> Sets the font size in points.
-
-
thalign|ihalign|halign "left"|"center"|"right" Sets the horizontal alignment of text, image or both. Defaults to left-aligned. You can use
- { <perl special> } instead of the literal alignment control word.
-
-
tvalign|ivalign|valign "top"|"center"|"base"|"bottom" Sets the vertical alignment of text, image or both. Defaults to base-aligned for text and
- top-aligned for image. You can use
- { <perl special> } instead of the literal alignment control word.
-
-
linespace <space> Sets the line spacing in pixels for text boxes (see textbox item below).
-
-
condition <condition> Subsequent layout control and item placement commands except for another condition command
- are ignored if and only if <condition>
- evaluates to false.
-
-
- Item placement commands
-
-
text <x> <y> <text> Renders the text <text> at the
- position (<x>, <y>) using the current font, font size and color.
- You can use
- { <perl special> } for <text> to fully
- access device readings and do some programming on the fly. See below for examples.
-
textbox <x> <y> <boxwidth> <text> Same as before but text is rendered in a box of horizontal width <boxwidth>.
-
time <x> <y> Renders the current time in HH:MM format.
-
seconds <x> <y> <format> Renders the curent seconds. Maybe usefull for a RSS Clock. With option colon a :
-
date <x> <y> Renders the current date in DD:MM:YYY format.
-
line <x1> <y1> <x2> <y2> [<thickness>] Draws a line from position (<x1>, <y1>) to position (<x2>, <y2>) with optional thickness (default=1).
-
img <x> <y> <['w' or 'h']s> <imgtype> <srctype> <arg> Renders a picture at the
- position (<x>, <y>). The <imgtype> is one of gif, jpeg, png.
- The picture is scaled by the factor <s> (a decimal value). If 'w' or 'h' is in front of scale-value the value is used to set width or height to the value in pixel. If <srctype> is file, the picture
- is loaded from the filename <arg>, if <srctype> is url, the picture
- is loaded from the URL <arg>, if <srctype> is data, the picture
- is piped in from data <arg>. You can use
- { <perl special> } for <arg>. See below for example.
- Notice: do not load the image from URL that is served by fhem as it leads to a deadlock.
-
-
-
- Example
- This is how a layout definition might look like:
-
- font /usr/share/fonts/truetype/arial.ttf # must be a TrueType font
- rgb "c0c0c0" # HTML color notation, RGB
- pt 48 # font size in points
- time 0.10 0.90
- pt 24
- text 0.10 0.95 { ReadingsVal("MyWeather","temperature","?"). "C" }
- moveby 0 -25
- text x y "Another text"
- img 20 530 0.5 png file { "/usr/share/fhem/www/images/weather/" . ReadingsVal("MyWeather","icon","") . ".png" }
-
-
-
- Special uses
-
- You can display SVG plots with the aid of the helper function plotAsPng(<name>[,<zoom>[,<offset>]]) (in 98_SVG.pm). Examples:
- This requires the perl module Image::LibRSVG and librsvg. Debian-based systems can install these with apt-get install libimage-librsvg-perl.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RandomTimer
-
Define
-
- define <name> RandomTimer <timespec_start> <device> <timespec_stop> [<timeToSwitch>]
-
- Defines a device, that imitates the random switch functionality of a timer clock, like a FS20 ZSU.
- The idea to create it, came from the problem, that is was always a little bit tricky to install a timer clock before
- holiday: finding the manual, testing it the days before and three different timer clocks with three different manuals - a horror.
- By using it in conjunction with a dummy and a disableCond, i'm able to switch the always defined timer on every weekend easily from all over the word.
-
-
Deskrition
- a RandomTimer device starts at timespec_start switching device. Every (timeToSwitch
- seconds +-10%) it trys to switch device on/off. The switching period stops when the
- next time to switch is greater than timespec_stop.
-
-
-
Parameter
-
- timespec_start
-
- The parameter timespec_start defines the start time of the timer with format: HH:MM:SS.
- It can be a Perlfunction as known from the timespec at .
-
- device
-
- The parameter device defines the fhem device that should be switched.
-
- timespec_stop
-
- The parameter timespec_stop defines the stop time of the timer with format: HH:MM:SS.
- It can be a Perlfunction as known from the timespec at .
-
- timeToSwitch
-
- The parameter timeToSwitch defines the time in seconds between two on/off switches.
-
-
-
Examples
-
-
- define ZufallsTimerTisch RandomTimer *{sunset_abs()} StehlampeTisch +03:00:00 500
- defines a timer that starts at sunset an ends 3 hous later. The timer trys to switch every 500 seconds(+-10%).
-
-
- define ZufallsTimerTisch RandomTimer *{sunset_abs()} StehlampeTisch *{sunset_abs(3*3600)} 480
- defines a timer that starts at sunset and stops after sunset + 3 hours. The timer trys to switch every 480 seconds(+-10%).
-
-
- define ZufallsTimerTisch RandomTimer *{sunset_abs()} StehlampeTisch 22:30:00 300
- defines a timer that starts at sunset an ends at 22:30. The timer trys to switch every 300 seconds(+-10%).
-
disableCond
- The default behavior of a RandomTimer is, that it works.
- To set the Randomtimer out of work, you can specify in the disableCond attibute a condition in perlcode that must evaluate to true.
- The Condition must be put into round brackets. The best way is to define
- a function in 99_utils.
-
- Examples
-
disableCond
- The default behavior of a RandomTimer is, that it shuts down the device after stoptime is reached.
- The keepDeviceAlive attribute changes the behavior. If set, the device status is not changed when the stoptime is reached.
-
- Example
-
- attr ZufallsTimerZ keepDeviceAlive
-
-
-
-
onCmd, offCmd
- Setting the on-/offCmd changes the command sent to the device. Standard is: "set <device> on".
- The device can be specified by a @.
-
- Examples
-
- attr Timer oncmd {fhem("set @ on-for-timer 14")}
- attr Timer offCmd {fhem("set @ off 16")}
- attr Timer oncmd set @ on-for-timer 12
- attr Timer offCmd set @ off 12
-
-
-
-
switchmode
- Setting the switchmode you can influence the behavior of switching on/off.
- The parameter has the Format 999/999 and the default ist 800/200. The values are in "per mill".
- The first parameter sets the value of the probability that the device will be switched on when the device is off.
- The second parameter sets the value of the probability that the device will be switched off when the device is off.
- Examples
-
- attr ZufallsTimerZ switchmode 400/400
-
-
-
-
-
-
-
Revolt NC-5462
-
- Provides voltage, current, frequency, power, pf, energy readings for Revolt NC-5462 devices via CUL.
-
-
-
- Define
-
- define <name> Revolt <id>
-
- <id> is a 4 digit hex number to identify the NC-5462 device.
- Note: devices are autocreated on reception of the first message.
-
-
-
- Readings
-
-
energy [kWh]
-
power [W]
-
voltage [V]
-
current [A]
-
frequency [Hz]
-
Pf
-
-
-
-
-
SCIVT
-
-
-
-
- Define
-
- define <name> SCIVT <SCD-device>
-
-
- Define a SCD series solar controler device. Details see here.
- You probably need a Serial to USB controller like the PL2303.
-
- Defining an SCIVT device will schedule an internal task, which reads the
- status of the device every 5 minutes, and triggers notify/filelog commands.
- Note: Currently this device does not support a "set" function, only
- a single get function which reads the device status immediately.
-
- When using multiple SIS PMs on one host, sispmctl up to and including V 2.7 has a bug:
-
plug-2:# sispmctl -v -s -d 1 -g all -d 2 -g all
-
-SiS PM Control for Linux 2.7
-
-(C) 2004, 2005, 2006, 2007, 2008 by Mondrian Nuessle, (C) 2005, 2006 by Andreas Neuper.
-This program is free software.
-[...]
-
-Gembird #0 is USB device 013.This device is a 4-socket SiS-PM.
-[...]
-
-Gembird #1 is USB device 015.This device is a 4-socket SiS-PM.
-[...]
-
-Accessing Gembird #1 USB device 015
-Status of outlet 1: on
-Status of outlet 2: on
-Status of outlet 3: on
-Status of outlet 4: on
-Error performing requested action
-Libusb error string: error sending control message: Invalid argument
-Terminating
-*** glibc detected *** sispmctl: double free or corruption (fasttop): 0x000251e0 ***
-[...]
- Well, the fix is simple and will be sent upstream, but in case it's not incorporated
- at the time you need it, here it is; it's easy to apply even by hand ;-)
-
-
- Defines a path to the program "sispmctl", which is used to control (locally attached)
- "Silver Shield Power Manager" devices. Usually these are connected to the local computer
- via USB, more than one "sispm" device per computer is supported. (Please note that, due
- to neglections in their USB driver, AVM's Fritz!Box 7170 (and derivates, like Deutsche
- Telekom's Speedport W901V) is not able to talk to these devices ... The Fritz!Box
- 72xx and 73xx should be fine.)
-
- The communication between FHEM and the Power Manager device is done by using the open
- source sispmctl program. Thus, for the
- time being, THIS functionality is only available running FHEM on Linux (or any other platform
- where you can get the sispmctl program compiled and running). On the bright side: by
- interfacing via commandline, it is possible to define multiple SISPM devices, e. g. with
- a wrapper that does execute sispmctl on a remote (Linux) system. And: sispmctl runs happily
- on Marvells SheevaPlug ;) Please note: if you're not running FHEM as root, you most likely
- have to make sispmctl setuid root (chmod 4755 /path/to/sispmctl) or fiddle with
- udev so that the devices of the Power Manager are owned by the user running FHEM.
-
- After defining a SISPM device, a first test is done, identifying attached PMs. If this
- succeeds, an internal task is scheduled to read the status every 30 seconds. (Reason
- being that someone else could have switched sockets externally to FHEM.)
-
- To actually control any power sockets, you need to define a SIS_PMS
- device ;) If autocreate is enabled, those should be autocreated for your convenience as
- soon as the first scan took place (30 seconds after the define).
-
- Implementation of SISPM.pm tries to be nice, that is it reads from the pipe only
- non-blocking (== if there is data), so it should be safe even to use it via ssh or
- a netcat-pipe over the Internet, but this, as well, has not been tested extensively yet.
-
- This module is responsible for handling the actual sockets (power on,
- power off, toggle) on a "Silver Shield Power Manager", see SISPM
- for how to define access to one (SIS_PMS stands for "Silver Shield Power Manager Socket").
-
-
-
- Define
-
- define <name> SIS_PMS <serial> <socket>
-
-
- To securely distinguish multiple attached Power Manager devices, the
- serial number of those is used. You get these with "sispmctl -s" - or
- just let autocreate define the sockets attached for you.
-
-
-
<serial> is the serial number of the Power Manager device, see above.
-
<socket> is a number between 1 and 4 (for a 4 socket model)
- off
- on
- toggle
- on-till # Special, see the note
- off-till # Special, see the note
-
- Examples:
-
- set lamp on
- set lamp1,lamp2,lamp3 on
- set lamp1-lamp3 on
- set hql_lamp on-till 18:45
-
-
- Notes:
-
-
As an external program is used, a noticeable delay may occur.
-
*-till requires an absolute time in the "at" format (HH:MM:SS, HH:MM
- or { <perl code> }, where the perl-code returns a time
- specification).
- If the current time is greater than the specified time, then the
- command is ignored, else an "on" or "off" command, respectively, is
- generated, and for the given time an "off"/"on" command is
- scheduleld via the at command.
dummy
- Set the device attribute dummy to define devices which should not
- output any signals. Associated notifys will be executed if the signal
- is received. Used e.g. to react to a code from a sender, but it will
- not actually switch if triggered in the web frontend.
-
-This module supports "Intelligenter Strom Zhler"(ENBW) and "Sparzhler" (Yellow Strom).
-The electricity meter will be polled in a defined interval (1-100) for new values.
-
-
- Set
- set <name> <value> <nummber> where value is one of:
-
-
TOTALPOWER
-
YEARPOWER
-
MONTHPOWER
-
DAYPOWER
-
Interval
-
- Example:
- set <name> TOTALPOWER 12345
-
- Get
- get <name> <value> where value is one of:
-
-
TOTALPOWER
-
YEARPOWER
-
MONTHPOWER
-
DAYPOWER
-
Interval
-
- Example:
- get <name> DAYPOWER
- get <name> YEARPOWER
-
-
-
-
-
STACKABLE_CC
-
- This module handles the stackable CC1101 devices for the Raspberry PI from
- busware.de. You can attach a lot of CUL-Type devices to a single RPi this way.
- The first device is defined as a CUL, the rest of them as STACKABLE_CC.
-
-
-
- Define
-
- define <name> STACKABLE_CC <Base-Device-Name>
-
- <Base-Device-Name> is the name of the device, which this device is
- attached on, the first one has to be defined as a CUL device
- Example:
-
The rfmode has to be specified explicitely (valid for the STACKABLE_CC
- types only, not for the first, which is defined as a CUL).
-
In case of SlowRF, the FHTID has to be specified explicitely with the
- command "set SCCX raw T01HHHH". Again, this is valid for the STACKABLE_CC
- types only.
-
If you rename the base CUL or a STACKABLE_CC, which is a base for
- another one, the define of the next one has to be adjusted, and FHEM has to be
- restarted.
- perl functions, to be used in at or FS20 on-till commands.
- First you should set the longitude and latitude global attributes to the
- exact longitude and latitude values (see e.g. maps.google.com for the exact
- values, which should be in the form of a floating point value). The default
- value is Frankfurt am Main, Germany.
-
- The default altitude ($defaultaltit in SUNRISE_EL.pm) defines the sunrise/sunset
- for Civil twilight (i.e. one can no longer read outside without artificial
- illumination), which differs from sunrise/sunset times found on different
- websites. See perldoc "DateTime::Event::Sunrise" for alternatives.
-
-
- sunrise()/sunset() returns the absolute time of the next sunrise/sunset,
- adding 24 hours if the next event is tomorrow, to use it in the timespec of
- an at device or for the on-till command for FS20 devices.
-
- sunrise_rel()/sunset_rel() returns the relative time to the next
- sunrise/sunset.
- sunrise_abs()/sunset_abs() return the absolute time of the corresponding
- event today (no 24 hours added).
- All functions take up to three arguments:
-
-
The first specifies an offset (in seconds), which will be added to the
- event.
-
The second and third specify min and max values (format: "HH:MM").
-
-
- isday() can be used in some notify or at commands to check if the sun is up or
- down.
-
- Optionally, for all functions you can set first argument which defines a horizon value
- which then is used instead of the $defaultaltit in SUNRISE_EL.pm.
- Possible values are: "REAL", "CIVIL", "NAUTIC", "ASTRONOMIC" or a
- positive or negative number preceded by "HORIZON="
- REAL is 0, CIVIL is -6, NATUIC is -12, ASTRONOMIC is -18 degrees above horizon.
- Example:
-
-
- # When sun is 6 degrees below horizon - same as sunrise();
- sunrise("CIVIL");
-
- # When sun is 3 degrees below (-3 above) horizon (Between real and civil sunset)
- sunset("HORIZON=-3");
-
- # When sun is 1 degree above horizon
- sunset("HORIZON=1");
-
- # Switch lamp1 on at real sunset, not before 18:00 and not after 21:00
- define a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on
-
-
-
- Define
N/A
-
- Set
N/A
-
- Get
N/A
-
- Attributes
-
-
-
latitude
- If set, this latitude is used to calculate sunset/sunrise
- Notation need to be in decimal format (for example Berlin = 52.666)
- As default Frankfurt/Main, Germany (50.112) is used.
-
-
-
longitude
- If set, this longitude is used to calculate sunset/sunrise
- Notation need to be in decimal format (for example Berlin = 13.400)
- As default Frankfurt/Main, Germany (8.686) is used.
-
-
-
altitude
- Used by other modules.
-
- Note: these are global attributes, e.g.
-
- attr global latitude 50.112
- attr global longitude 8.686
-
- This is the Plotting/Charting device of FHEMWEB
- Examples:
-
- define MyPlot SVG inlog:temp4hum4:CURRENT
-
-
-
- Notes:
-
-
Normally you won't define an SVG device manually, as
- FHEMWEB makes it easy for you, just plot a logfile (see logtype) and click on "Create SVG instance".
- Specifying CURRENT as a logfilename will always access the current
- logfile, even if its name changes regularly.
-
For historic reasons this module uses a Gnuplot file description
- to store different attributes. Some special commands (beginning with
- #FileLog or #DbLog) are used additionally, and not all gnuplot
- attribtues are implemented.
-
-
-
-
- Set
-
-
copyGplotFile
- Copy the currently specified gplot file to a new file, which is named
- after the SVG device, existing files will be overwritten.
- This operation is needed in order to use the plot editor (see below)
- without affecting other SVG instances using the same gplot file.
- Creating the SVG instance from the FileLog detail menu will also
- create a unique gplot file, in this case this operation is not needed.
-
-
-
-
- Get
N/A
-
-
- Attributes
-
-
-
fixedrange [offset]
- Contains two time specs in the form YYYY-MM-DD separated by a space.
- In plotmode gnuplot-scroll or SVG the given time-range will be used,
- and no scrolling for this SVG will be possible. Needed e.g. for
- looking at last-years data without scrolling.
- If the value is one of hour, day, <N>days, week, month, year than
- set the zoom level for this SVG independently of the user specified
- zoom-level. This is useful for pages with multiple plots: one of the
- plots is best viewed in with the default (day) zoom, the other one with
- a week zoom.
-
- If given, the optional integer parameter offset refers to a different
- period (e.g. last year: fixedrange year -1, 2 days ago: fixedrange day
- -2).
-
-
-
-
-
fixedoffset <nDays>
- Set an fixed offset (in days) for the plot.
-
-
-
-
startDate
- Set the start date for the plot. Used for demo installations.
-
label
- Double-Colon separated list of values. The values will be used to replace
- <L#> type of strings in the .gplot file, with # beginning at 1
- (<L1>, <L2>, etc.). Each value will be evaluated as a perl
- expression, so you have access e.g. to the Value functions.
-
- If the plotmode is gnuplot-scroll or SVG, you can also use the min, max,
- avg, cnt, sum, currval (last value) and currdate (last date) values of
- the individual curves, by accessing the corresponding values from the
- data hash, see the example below:
-
-
.gplot file entry:
- set ylabel <L1>
- set y2label <L2>
-
-
Title with maximum and current values of the 1st curve (FileLog)
-
-
Fhem config:
- attr wl_1 label "Max $data{max1}, Current $data{currval1}"
-
.gplot file entry:
- set title <L1>
-
-
-
-
-
-
title
- A special form of label (see above), which replaces the string <TL>
- in the .gplot file. It defaults to the filename of the logfile.
-
-
-
-
plotfunction
- Space value separated list of values. The value will be used to replace
- <SPEC#> type of strings in the .gplot file, with # beginning at 1
- (<SPEC1>, <SPEC2>, etc.) in the #FileLog or #DbLog directive.
- With this attribute you can use the same .gplot file for multiple devices
- with the same logdevice.
-
-
-
-
- Plot-Editor
-
- This editor is visible on the detail screen of the SVG instance.
- Most features are obvious here, up to some exceptions:
-
-
if you want to omit the title for a Diagram label, enter notitle in the
- input field.
-
if you want to specify a fixed value (not taken from a column) if a
- string found (e.g. 1 if the FS20 switch is on and 0 if it is off), then
- you have to specify the Tics first, and write the .gplot file, before you
- can select this value from the dropdown.
- Example:
-
- Enter in the Tics field: ("On" 1, "Off" 0)
- Write .gplot file
- Select "1" from the column dropdown (note the double quote!) for the
- regexp switch.on, and "0" for the regexp switch.off.
- Write .gplot file again
-
-
- The visibility of the ploteditor can be configured with the FHEMWEB attribute
- ploteditor.
-
-
-
-
-
SWAP
-
-
-
- The SWAP protocoll is used by panStamps (panstamp.com).
-
- This is a generic module that will handle all SWAP devices with known device description files via
- a panStick as the IODevice.
-
- All communication is done on the SWAP register level. FHEM readings are created for all user registers
- and userReadings are created to map low level SWAP registers to 'human readable' format with the
- mapping from the device descriprion files.
-
- For higher level features like "on,off,on-for-timer,..." specialized modules have to be used.
-
- Messages for devices in power-down-state are queued and send when the device enters SYNC state.
- This typicaly happens during device startup after a reset.
-
-
- Notes:
-
-
This module requires XML::Simple.
-
Devices with the default address FF will be changed to the first free address in the range F0-FE.
-
For power-down devices the default transmit interval of FFFF will be changed to 0384 (900 seconds).
-
-
-
-
-
-
- Define
-
- define <name> SWAP <ID>
-
- The ID is a 2 digit hex number to identify the moth in the panStamp network.
-
-
-
-
- Set
-
-
regGet <reg>
- request status message for register id <reg>.
- for system registers the register name can be used instead if the two digit register id in hex.
-
-
-
regSet <reg> <data>
- write <data> to register id <reg>.
- for system registers the register name can be used instead if the twi digit register id in hex.
-
-
-
regSet <reg>.<ep> <data>
- write <data> to endpoint <ep> of register <reg>. will not work if no reading for register <reg> is available as all nibbles that are not part of endpoint <ep> will be filled from this reading.
-
-
-
statusRequest
- request transmision of all registers.
-
-
readDeviceXML
- reload the device description xml file.
-
-
clearUnconfirmed
- clears the list of unconfirmed messages.
-
-
-
-
- Get
-
-
regList
- list all non-system registers of this device.
-
-
regListAll
- list all registers of this device.
-
-
listUnconfirmed
- list all unconfirmed messages.
-
-
products
- dumps all known devices.
-
-
deviceXML
- dumps the device xml data.
-
-
-
-
- Attributes
-
-
ProductCode
- ProductCode of the device. used to read the register configuration from the device definition file.
- hast to be set manualy for devices that are in sleep mode during definition.
-
-
-
-
-
-
-
SWAP_0000002200000003
-
-
-
- Module for the justme version of the panstamp rgb driver board with ir (sketch product code 0000002200000003).
-
-
- to learn an ir command the simplest way ist to use 'learnIR #'. the on board led will start to blink indicating ir learning mode. after an ir command is received the blinking will switch to slow and the boards waits for a fhem command (on/off/...) and will link the ir command to the fhem command.
-
- received ir commands that will not trigger one of the 16 possible learned commands will be send as SWAP register 0C to fhem and can be used in notifys.
-
- SWAP register 0E will configure the power on state of the board: off, configured color, last color before power down.
-
listIR
- list all IR registers of this device. use getIR first.
-
-
listFade
- list all fade registers. use getFade first.
-
-
-
-
- Attributes
-
-
color-icon
- 1 -> use lamp color as icon color and 100% shape as icon shape
- 2 -> use lamp color scaled to full brightness as icon color and dim state as icon shape
-
ProductCode
- must be 0000002200000003
-
-
-
-
-
-
SYSMON
-
-This module provides statistics about the system running FHEM server. Only Linux-based systems are supported.
-Some informations are hardware specific and are not available on every platform.
-So far, this module has been tested on the following systems:
-Raspberry Pi (Debian Wheezy) BeagleBone Black, FritzBox 7390 (no CPU data), WR703N under OpenWrt (no CPU data).
-
- Define
-
- define <name> SYSMON [<M1>[ <M2>[ <M3>[ <M4>]]]]
-
-
-This statement creates a new SYSMON instance. The parameters M1 to M4 define the refresh interval for various Readings (statistics). The parameters are to be understood as multipliers for the time defined by INTERVAL_BASE. Because this time is fixed at 60 seconds, the Mx-parameter can be considered as time intervals in minutes.
-If one (or more) of the multiplier is set to zero, the corresponding readings is deactivated.
-
-
- The parameters are responsible for updating the readings according to the following scheme:
-
The following parameters are always updated with the base interval (regardless of the Mx-parameter):
- fhemuptime, fhemuptime_text, idletime, idletime_text, uptime, uptime_text
-
-
-
-
- Readings:
-
-
-
cpu_bogomips
- CPU Speed: BogoMIPS
-
-
cpu_freq
- CPU frequency
-
-
-
cpu_temp
- CPU temperature
-
-
-
cpu_temp_avg
- Average of the CPU temperature, formed over the last 4 values.
-
-
-
fhemuptime
- Time (in seconds) since the start of FHEM server.
-
-
-
fhemuptime_text
- Time since the start of the FHEM server: human-readable output (text representation).
-
-
-
idletime
- Time spent by the system since the start in the idle mode (period of inactivity).
-
-
-
idletime_text
- The inactivity time of the system since system start in human readable form.
-
-
-
loadavg
- System load (load average): 1 minute, 5 minutes and 15 minutes.
-
-
-
ram
- memory usage.
-
-
-
swap
- swap usage.
-
-
-
uptime
- System uptime.
-
-
-
uptime_text
- System uptime (human readable).
-
-
-
Network statistics
- Statistics for the specified network interface about the data volumes transferred and the difference since the previous measurement.
-
- Examples:
- Amount of the transmitted data via interface eth0.
- eth0: RX: 940.58 MB, TX: 736.19 MB, Total: 1676.77 MB
- Change of the amount of the transferred data in relation to the previous call (for eth0).
- eth0_diff: RX: 0.66 MB, TX: 0.06 MB, Total: 0.72 MB
-
-
-
File system information
- Usage of the desired file systems.
- Example:
- fs_root: Total: 7340 MB, Used: 3573 MB, 52 %, Available: 3425 MB at /
-
interval
- Lists the specified polling intervalls.
-
-
-
list
- Lists all readings.
-
-
-
update
- Refreshs all readings.
-
-
-
version
- Displays the version of SYSMON module.
-
-
-
-
- Set:
-
-
interval_multipliers
- Defines update intervals (as in the definition of the device).
-
-
-
clean
- Clears user-definable Readings. After an update (manual or automatic) new readings are generated.
-
-
-
clear <reading name>
- Deletes the Reading entry with the given name. After an update this entry is possibly re-created (if defined). This mechanism allows the selective deleting unnecessary custom entries.
-
-
-
-
- Attributes:
-
-
filesystems <reading name>[:<mountpoint>[:<comment>]],...
- Specifies the file system to be monitored (a comma-separated list).
- Reading-name is used in the display and logging, the mount point is the basis of the evaluation, comment is relevant to the HTML display (see SYSMON_ShowValuesHTML)
- Examples:
- /boot,/,/media/usb1
- fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
-
-
-
network-interfaces <name>[:<interface>[:<comment>]],...
- Comma-separated list of network interfaces that are to be monitored. Each entry consists of the Reading-name, the name of the Netwerk adapter and a comment for the HTML output (see SYSMON_ShowValuesHTML). If no colon is used, the value is used simultaneously as a Reading-name and interface name.
- Example ethernet:eth0:Ethernet,wlan:wlan0:WiFi
-
-
-
user-defined <readingsName>:<Interval_Minutes>:<Comment>:<Cmd>,...
- This comma-separated list defines user defined Readings with the following data: Reading name, refresh interval (in minutes), a Comment, and operating system command.
- The os commands are executed according to the specified Intervals and are noted as Readings with the specified name. Comments are used for the HTML output (see SYSMON_ShowValuesHTML)..
- All parameter parts are required!
- It is important that the specified commands are executed quickly, because at this time the entire FHEM server is blocked!
- If results of the long-running operations required, these should be set up as a CRON job and store results as a text file.
- Example: Display of package updates for the operating system:
- cron-Job:
- apt-get upgrade --dry-run| perl -ne '/(\d*)\s[upgraded|aktualisiert]\D*(\d*)\D*install|^ \S+.*/ and print "$1 aktualisierte, $2 neue Pakete"' 2>/dev/null > /opt/fhem/data/updatestatus.txt
-
- uder-defined attribute sys_updates:1440:System Aktualisierungen:cat /opt/fhem/data/updatestatus.txt
- the number of available updates is daily recorded as 'sys_updates'.
-
-
-
disable
- Possible values: 0 and 1. '1' means that the update is stopped.
-
-
- HTML output method (see Weblink): SYSMON_ShowValuesHTML(<SYSMON-Instance>[,<Liste>])
-
- The module provides a function that returns selected Readings as HTML.
- As a parameter the name of the defined SYSMON device is expected.
- The second parameter is optional and specifies a list of readings to be displayed in the format <ReadingName>[:<Comment>[:<Postfix>]].
- ReadingName is the Name of desired Reading, Comment is used as the display name and postfix is displayed after eihentlichen value (such as units or as MHz can be displayed).
- If no Comment is specified, an internally predefined description is used.
- If no list specified, a predefined selection is used (all values are displayed).
- Provides system statistics for the host FHEM runs on or a remote Linux system that is reachable by preconfigured passwordless ssh access.
-
- Notes:
-
-
This module needs Sys::Statistics::Linux on Linux.
- It can be installed with 'cpan install Sys::Statistics::Linux'
- or on debian with 'apt-get install libsys-statistics-linux-perl'
-
-
To monitor a target by snmp Net::SNMP hast to be installed.
-
-
To plot the load values the following code can be used:
-
to match the root filesystem (mount point '/') in diskusage plots use
- '#FileLog 4:/\x3a:0:' or '#FileLog 4:\s..\s:0:'
- and not '#FileLog 4:/:0:' as the later will match all mount points
-
- The load is updated every <interval> seconds. The default and minimum is 60.
- The diskusage is updated every <interval_fs> seconds. The default is <interval>*60 and the minimum is 60.
- <interval_fs> is only aproximated and works best if <interval_fs> is an integral multiple of <interval>.
-
- If <host> is given it has to be accessible by ssh without the need for a password.
-
- Examples:
-
showpercent
- If set the usage is shown in percent. If not set the remaining free space in bytes is shown.
-
snmp
- 1 -> use snmp to monitor load, uptime and filesystems (including physical and virtual memory)
-
stat
- 1 -> monitor user,system,idle and iowait percentage of system utilization (available only for linux targets)
-
raspberrytemperature
- If set and > 0 the raspberry pi on chip termal sensor is read.
- If set to 2 a geometric average over the last 4 values is created.
-
synologytemperature
- If set and > 0 the main temperaure of a synology diskstation is read. requires snmp.
- If set to 2 a geometric average over the last 4 values is created.
-
raspberrycpufreq
- If set and > 0 the raspberry pi on chip termal sensor is read.
-
uptime
- If set and > 0 the system uptime is read.
- If set to 2 the uptime is displayed in seconds.
-
useregex
- If set the entries of the filesystems list are treated as regex.
- The TCM module serves an USB or TCP/IP connected TCM120 or TCM310 EnOcean
- Transceiver module. These are mostly packaged together with a serial to USB
- chip and an antenna, e.g. the BSC BOR contains the TCM120, the USB 300 from
- EnOcean and the EUL from busware contains a TCM310. See also the datasheet
- available from www.enocean.com.
-
- As the TCM120 and the TCM310 speak completely different protocols, this
- module implements 2 drivers in one. It is the "physical" part for the EnOcean module.
- Please note that EnOcean repeaters also send Fhem data telegrams again. Use
- attr <name> blockSenderID own
- to block receiving telegrams with TCM SenderIDs.
- The address range used by your transceiver module, can be found in the
- parameters BaseID and LastID.
-
- The transceiver moduls do not always support all commands. The supported range
- of commands depends on the hardware and the firmware version. A firmware update
- is usually not provided.
-
- The TCM module enables also a read-only wired connection to Eltako actuators over the
- Eltako RS485 bus in the switchboard or distribution box via Eltako FGW14 RS232-RS485
- gateway modules. These actuators are linked to an associated wireless antenna module
- (FAM14) on the bus. The FAM14 device frequently polls the actuator status of all
- associated devices if the FAM14 operating mode rotary switch is on position 4.
- Therefore, actuator states can be retrieved more reliable, even after any fhem downtime,
- when switch events or actuator confirmations could not have been tracked during the
- downtime. As all actuators are polled approx. every 1-2 seconds, it should be avoided to
- use event-on-update-reading. Use instead either event-on-change-reading or
- event-min-interval.
- The Eltako bus uses the EnOcean Serial Protocol version 2 (ESP2) protocol, which is
- the same serial protocol used by TCM120 modules. For this reason, a FGW14 can be
- configured as a TCM120.
-
-
- Define
-
- define <name> TCM [120|310] <device>
-
- First you have to specify the type of the EnOcean Transceiver Chip, i.e
- either 120 for the TCM120 or 310 for the TCM310.
- device can take the same parameters (@baudrate, @directio,
- TCP/IP, none) like the CUL, but you probably have
- to specify the baudrate: the TCM120 should be opened with 9600 Baud, the
- TCM310 with 57600 baud. For Eltako FGW14 devices, type has to be set to 120 and
- the baudrate has to be set to 57600 baud if the FGW14 operating mode
- rotary switch is on position 6.
- Example:
-
idbase [FF800000 ... FFFFFF80]
- Set the BaseID.
- Note: The firmware executes this command only up to then times to prevent misuse.
-
modem_off
- Deactivates TCM modem functionality
-
modem_on [0000 ... FFFF]
- Activates TCM modem functionality and sets the modem ID
-
teach <t/s> or pairForSec <t/s>
- Set Fhem in teach-in mode.
- The command is required for UTE and to teach-in bidirectional actuators
- e. g. EEP 4BS (RORG A5-20-XX),
- see Bidirectional Teach-In / Teach-Out.
-
reset
- Reset the device
-
sensitivity [00|01]
- Set the TCM radio sensitivity: low = 00, high = 01
-
sleep
- Enter the energy saving mode
-
wake
- Wakes up from sleep mode
-
- For details see the TCM 120 User Manual available from www.enocean.com.
-
-
-
TCM 310
-
baseID [FF800000 ... FFFFFF80]
- Set the BaseID.
- Note: The firmware executes this command only up to then times to prevent misuse.
maturity [00|01]
- Waiting till end of maturity time before received radio telegrams will transmit:
- radio telegrams are send immediately = 00, after the maturity time is elapsed = 01
-
teach <t/s> or pairForSec <t/s>
- Set Fhem in teach-in mode.
- The command is required for UTE and to teach-in bidirectional actuators
- e. g. EEP 4BS (RORG A5-20-XX),
- see Bidirectional Teach-In / Teach-Out.
-
reset
- Reset the device
-
repeater [0000|0101|0102]
- Set Repeater Level: off = 0000, 1 = 0101, 2 = 0102.
-
sleep <t/10 ms> (Range: 00000000 ... 00FFFFFF)
- Enter the energy saving mode
- Diverse controls can be realized by means of the module by evaluation of sensor data.
- In the simplest case, this module reads any sensor that provides values in decimal and execute FHEM/Perl commands, if the value of the sensor is higher or lower than the threshold value.
- A typical application is the simulation of a thermostat or humidistat.
-
- With one or more such modules, complex systems can be implemented for heating, cooling, ventilation, dehumidification or shading.
- But even simple notification when crossing or falling below a specific value can be easily realized. It no if-statements in Perl or notify definitions need to be made.
- This leads to quickly create and clear controls, without having to necessarily go into the Perl matter.
- Some application examples are at the end of the module description.
-
- According to the definition of a module type THRESHOLD eg:
-
- define <name> THRESHOLD <sensor> <actor>
-
- It is controlled by setting a desired value with:
-
- set <name> desired <value>
-
- The module begins with the control system only when a desired value is set!
-
- The specification of the desired value may also come from another sensor. This control may take place by the comparison of two sensors.
-
- Likewise, any wall thermostats can be used (eg, HM, MAX, FHT) for the definition of the reference temperature.
-
- The switching behavior can also be influenced by another sensor or sensor group.
-
- The combination of multiple THRESHOLD modules together is possible, see examples below.
-
-
reading (optional)
- reading of the sensor, which includes a value in decimal
- default value: temperature
-
-
-
hysteresis (optional)
- Hysteresis, this provides the threshold_min = desired_value - hysteresis
- default value: 1 at temperature, 10 at huminity
-
-
-
target_value (optional)
- number: Initial value, if no value is specified, it must be set with "set desired value".
- else:<sensorname>:<reading>, an additional sensor can be specified, which sets the target value dynamically.
- default value: no value
-
-
-
offset (optional)
- Offset to desired value
- This results:
- threshold_max = desired_value + offset and threshold_min = desired_value - hysteresis + offset
- Defaultwert: 0
-
-
-
-
AND|OR (optional)
- logical operator with an optional second sensor
-
-
-
sensor2 (optional, nur in Verbindung mit AND oder OR)
- the second sensor
-
-
-
reading2 (optional)
- reading of the second sensor
- default value: state
-
-
-
state (optional)
- state of the second sensor
- default value: open
-
-
-
actor (optional)
- actor device defined in FHEM
-
-
-
cmd1_gt (optional)
- FHEM/Perl command that is executed, if the value of the sensor is higher than desired value and/or the value of sensor 2 is matchted. @ is a placeholder for the specified actor.
- default value: set actor off, if actor defined
-
-
-
cmd2_lt (optional)
- FHEM/Perl command that is executed, if the value of the sensor is lower than threshold_min or the value of sensor 2 is not matchted. @ is a placeholder for the specified actor.
- default value: set actor on, if actor defined
-
-
-
cmd_default_index (optional)
- Index of command that is executed after setting the desired value until the desired value or threshold_min value is reached.
- 0 - no command
- 1 - cmd1_gt
- 2 - cmd2_lt
- default value: 2, if actor defined, else 0
-
-
-
state_cmd1_gt (optional, is defined as an attribute at the same time and can be changed there)
- state, which is displayed, if FHEM/Perl-command cmd1_gt was executed. If state_cmd1_gt state ist set, other states, such as active or deactivated are suppressed.
-
- default value: none
-
-
-
state_cmd2_lt (optional, is defined as an attribute at the same time and can be changed there)
- state, which is displayed, if FHEM/Perl-command cmd1_gt was executed. If state_cmd1_gt state ist set, other states, such as active or deactivated are suppressed.
-
- default value: none
-
-
-
state_format (optional, is defined as an attribute at the same time and can be changed there)
- Format of the state output: arbitrary text with placeholders.
- Possible placeholders:
- _m: mode
- _dv: desired_value
- _s1v: sensor_value
- _s2s: sensor2_state
- _sc: state_cmd
- Default value: _m _dv _sc, _sc when state_cmd1_gt and state_cmd2_lt set without actor.
-
-
- Examples:
-
- Example for heating:
-
- It is heated up to the desired value of 20. If the value below the threshold_min value of 19 (20-1)
- the heating is switched on again.
-
- define thermostat THRESHOLD temp_sens heating
-
- set thermostat desired 20
-
-
- Example for heating with window contact:
-
- define thermostat THRESHOLD temp_sens OR win_sens heating
-
-
- Example for heating with multiple window contacts:
-
- define W_ALL structure W_type W1 W2 W3 ....
- attr W_ALL clientstate_behavior relative
- attr W_ALL clientstate_priority open closed
-
- then:
-
- define thermostat THRESHOLD S1 OR W_ALL heating
-
-
- More examples for dehumidification, air conditioning, watering:
-
- define hygrostat THRESHOLD hym_sens:humidity dehydrator|set @ on|set @ off|1
- define hygrostat THRESHOLD hym_sens:humidity AND Sensor2:state:close dehydrator|set @ on|set @ off|1
- define thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1
- define thermostat THRESHOLD temp_sens AND Sensor2:state:close aircon|set @ on|set @ off|1
- define hygrostat THRESHOLD hym_sens:humidity:20 watering|set @ off|set @ on|2
-
-
- It can also FHEM/perl command chains are specified:
-
- Examples:
-
- define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1
- define thermostat THRESHOLD sensor alarm|{Log 2,"value is exceeded"}|set @ on;;set Switch2 on
- define thermostat THRESHOLD sensor ||{Log 2,"value is reached"}|
-
-
- Examples of the reference input by another sensor:
-
- Hot water circulation: The return temperature is 5 degrees (offset) below the hot water tank temperature and can vary by up to 4 degrees (hysteresis).
-
- define TH_water_circulation THRESHOLD return_w:temperature:4:water_storage:temperature:-5 circualtion_pump
-
- Control of heating by a wall thermostat with acquisition the desired and actual temperature from the wall thermostat:
-
- define TH_heating THRESHOLD WT:measured-temp:1:WT:desired-temp heating
-
- set TH_heating desired 17 overrides the desired-values from the wall thermostat until called set TH_heating external
-
-
- Examples of customized state output:
-
- define thermostat THRESHOLD sensor aircon|set @ on|set @ off|2|on:off
-
-
- Example of state output (eg for state evaluation in other modules) without executing code:
-
- define thermostat THRESHOLD sensor:temperature:0:30
-
- by reason of default values​​:
-
- define thermostat THRESHOLD sensor:temperature:0:30||||off:on|_sc
-
-
- Example of combining several THRESHOLD modules together:
-
- It should be heated when the room temperature drops below 21 degrees and the outside temperature is below 15 degrees:
-
- define TH_outdoor THRESHOLD outdoor:temperature:0:15
- define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating
- set TH_room desired 21
-
-
- An example of time-dependent heating in combination with Heating_Control module:
-
- define TH_living_room THRESHOLD T_living_room heating
- define HC_living_room Heating_Control TH_living_room 06:00|22 22:00|18 set @ desired %
-
-
- Examples of customized state output:
-
- State output: <mode> <state_cmd> <desired_value> <sensor_value>
-
- define TH_living_room THRESHOLD T_living_room heating|set @ off|set @ on|2|off:on|_m _sc _dv _s1v
-
- or
-
- define TH_living_room THRESHOLD T_living_room heating
- attr TH_living_room state_cmd1_gt off
- attr TH_living_room state_cmd2_lt on
- attr TH_living_room state_format _m _sc _dv _s1v
-
-
-
- Set
-
-
set <name> desired <value>
- Set the desired value. If no desired value is set, the module is not active.
-
-
-
set <name> deactivated <value>
- Module is disabled.
-
-
-
set <name> active <value>
- Module is activated. If under target_value a sensor for reference input has been defined, the current setpoint will be inhibited until set "set external".
-
-
-
set <name> externel
- Module is activated, reference input comes from the target sensor, if a sensor has been defined under target_value.
-
-
-
set <name> hysteresis <value>
- Set hysteresis value.
-
-
-
set <name> offset <value>
- Set offset value.
- Defaultwert: 0
-
-
-
set <name> cmd1_gt
- Executes the command defined in cmd1_gt.
-
-
-
set <name> cmd2_lt
- Executes the command defined in cmd2_lt.
-
- THZ module: comunicate through serial interface RS232/USB (eg /dev/ttyxx) or through ser2net (e.g 10.0.x.x:5555) with a Tecalor/Stiebel Eltron heatpump.
- Tested on a THZ303/Sol (with serial speed 57600/115200@USB) and a THZ403 (with serial speed 115200) with the same Firmware 4.39.
- Tested on a LWZ404 (with serial speed 115200) with Firmware 5.39.
- Tested on fritzbox, nas-qnap, raspi and macos.
- This module is not working if you have an older firmware; Nevertheless, "parsing" could be easily updated, because now the registers are well described.
- https://answers.launchpad.net/heatpumpmonitor/+question/100347
- Implemented: read of status parameters and read/write of configuration parameters.
-
-
-
- Define
-
- define <name> THZ <device>
-
- device can take the same parameters (@baudrate, @directio,
- TCP/IP, none) like the CUL, e.g 57600 baud or 115200.
- Example:
- direct connection
-
-
- If the attributes interval_allFB and interval_history are not defined (or 0), their internal polling is disabled.
- Clearly you can also define the polling interval outside the module with the "at" command.
-
-
- This module is for the RFXCOM RFXtrx433 USB based 433 Mhz RF transmitters.
-This USB based transmitter is able to receive and transmit many protocols like Oregon Scientific weather sensors, X10 security and lighting devices, ARC ((address code wheels) HomeEasy, KlikAanKlikUit, ByeByeStandBy, Intertechno, ELRO,
-AB600, Duewi, DomiaLite, COCO) and others.
- Currently the following parser modules are implemented:
-
-
46_TRX_WEATHER.pm (see device TRX): Process messages Oregon Scientific weather sensors.
- See http://www.rfxcom.com/oregon.htm for a list of
- Oregon Scientific weather sensors that could be received by the RFXtrx433 tranmitter.
- Until now the following Oregon Scientific weather sensors have been tested successfully: BTHR918, BTHR918N, PCR800, RGR918, THGR228N, THGR810, THR128, THWR288A, WTGR800, WGR918. It will also work with many other Oregon sensors supported by RFXtrx433. Please give feedback if you use other sensors.
-
-
46_TRX_SECURITY.pm (see device TRX_SECURITY): Receive X10, KD101 and Visonic security sensors.
-
46_TRX_LIGHT.pm (see device RFXX10REC): Process X10, ARC, ELRO AB400D, Waveman, Chacon EMW200, IMPULS, RisingSun, Philips SBC, AC, HomeEasy EU and ANSLUT lighting devices (switches and remote control). ARC is a protocol used by devices from HomeEasy, KlikAanKlikUit, ByeByeStandBy, Intertechno, ELRO, AB600, Duewi, DomiaLite and COCO with address code wheels. AC is the protocol used by different brands with units having a learning mode button:
-KlikAanKlikUit, NEXA, CHACON, HomeEasy UK.
-
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module
- if the devices is connected via USB or a serial port.
-
-
- Define
-
- define <name> TRX <device> [noinit]
-
-
- USB-connected:
- <device> specifies the USB port to communicate with the RFXtrx433 receiver.
- Normally on Linux the device will be named /dev/ttyUSBx, where x is a number.
- For example /dev/ttyUSB0. Please note that RFXtrx433 normally operates at 38400 baud. You may specify the baudrate used after the @ char.
-
- Example:
- define RFXTRXUSB TRX /dev/ttyUSB0@38400
-
-
-
- Network-connected devices:
-
- <device> specifies the host:port of the device. E.g.
- 192.168.1.5:10001
-
-
- noninit is optional and issues that the RFXtrx433 device should not be
- initialized. This is useful if you share a RFXtrx433 device via LAN. It is
- also useful for testing to simulate a RFXtrx433 receiver via netcat or via
- FHEM2FHEM.
-
-
-
- Example:
- define RFXTRXTCP TRX 192.168.1.5:10001
-
- define RFXTRXTCP2 TRX 192.168.1.121:10001 noinit
-
-
longids
- Comma separated list of device-types for TRX_WEATHER that should be handled using long IDs. This additional ID is a one byte hex string and is generated by the Oregon sensor when is it powered on. The value seems to be randomly generated. This has the advantage that you may use more than one Oregon sensor of the same type even if it has no switch to set a sensor id. For example the author uses two BTHR918N sensors at the same time. All have different deviceids. The drawback is that the deviceid changes after changing batteries. All devices listed as longids will get an additional one byte hex string appended to the device name.
-Default is to use no long IDs.
-
- Examples:
-# Do not use any long IDs for any devices (this is default):
-attr RFXCOMUSB longids 0
-# Use long IDs for all devices:
-attr RFXCOMUSB longids 1
-# Use longids for BTHR918N devices.
-# Will generate devices names like BTHR918N_f3.
-attr RFXTRXUSB longids BTHR918N
-# Use longids for TX3_T and TX3_H devices.
-# Will generate devices names like TX3_T_07, TX3_T_01 ,TX3_H_07.
-attr RFXTRXUSB longids TX3_T,TX3_H
-
-
rssi
- 1: enable RSSI logging, 0: disable RSSI logging
-Default is no RSSI logging.
-
- Examples:
-# Do log rssi values (this is default):
-attr RFXCOMUSB rssi 0
-# Enable rssi logging for devices:
-attr RFXCOMUSB rssi 1
-
-
-
-
-
-
-
TRX_ELSE
-
- The TRX_ELSE module is invoked by TRX if a code is received by RFXCOM RFXtrx433 RF receiver that is currently not handled by a TRX_-Module. You need to define an RFXtrx433 receiver first.
-See TRX.
-
-
-
- Define
-
- The TRX_LIGHT module receives and sends X10, ARC, ELRO AB400D, Waveman, Chacon EMW200, IMPULS, RisingSun, AC, HomeEasy EU and ANSLUT lighting devices (switches and remote control). Allows to send Philips SBC (receive not possible). ARC is a protocol used by devices from HomeEasy, KlikAanKlikUit, ByeByeStandBy, Intertechno, ELRO, AB600, Duewi, DomiaLite and COCO with address code wheels. AC is the protocol used by different brands with units having a learning mode button:
-KlikAanKlikUit, NEXA, CHACON, HomeEasy UK. You need to define an RFXtrx433 transceiver receiver first.
- See TRX.
-
-
- specifies the type of the device:
- X10 lighting devices:
-
-
MS14A (X10 motion sensor. Reports [normal|alert] on the first deviceid (motion sensor) and [on|off] for the second deviceid (light sensor))
-
X10 (All other x10 devices. Report [off|on|dim|bright|all_off|all_on] on both deviceids.)
-
ARC (ARC devices. ARC is a protocol used by devices from HomeEasy, KlikAanKlikUit, ByeByeStandBy, Intertechno, ELRO, AB600, Duewi, DomiaLite and COCO with address code wheels. Report [off|on|all_off|all_on|chime].)
AC (AC devices. AC is the protocol used by different brands with units having a learning mode button: KlikAanKlikUit, NEXA, CHACON, HomeEasy UK. Report [off|on|level <NUM>|all_off|all_on|all_level <NUM>].)
-
HOMEEASY (HomeEasy EU devices. Report [off|on|level|all_off|all_on|all_level].)
PT2262 (Devices using PT2262/PT2272 (coder/decoder) chip. To use this enable Lighting4 in RFXmngr. Please note that this disables ARC. For more information see FHEM-Wiki
-)
-
-
-
- <deviceid>
-
- specifies the first device id of the device.
- A lighting device normally has a house code A..P followed by a unitcode 1..16 (example "B1").
- For AC, HomeEasy EU and ANSLUT it is a 10 Character-Hex-String for the deviceid, consisting of
- - unid-id: 8-Char-Hex: 00000001 to 03FFFFFF
- - unit-code: 2-Char-Hex: 01 to 10
-
-
- <devicelog>
-
- is the name of the Reading used to report. Suggested: "motion" for motion sensors. If you use "none" then no additional Reading is reported. Just the state is used to report the change.
-
-
- <deviceid2>
-
- is optional and specifies the second device id of the device if it exists. For example ms14a motion sensors report motion status on the first deviceid and the status of the light sensor on the second deviceid.
-
-
- <devicelog2>
-
- is optional for the name used for the Reading of <deviceid2>.If you use "none" then no addional Reading is reported. Just the state is used to report the change.
-
-
- <commandcodes>
-
- is used for PT2262 and specifies the possible base4 digits for the command separated by : and a string that specifies a string that is the command. Example '0:off,1:on'.
-
- off
- on
- dim # only for X10, KOPPLA
- bright # only for X10, KOPPLA
- all_off # only for X10, ARC, EMW200, AC, HOMEEASY, ANSLUT
- all_on # only for X10, ARC, EMW200, AC, HOMEEASY, ANSLUT
- chime # only for ARC
- level <levelnum> # only AC, HOMEEASY, ANSLUT: set level to <levelnum> (range: 0=0% to 15=100%)
- on-till # Special, see the note
- on-for-timer # Special, see the note
-
- Example:
- set Steckdose on
-
-
- Notes:
-
-
on-till requires an absolute time in the "at" format
- (HH:MM:SS, HH:MM) or { <perl code> }, where the perl code
- returns a time specification).
- If the current time is greater than the specified time, then the
- command is ignored, else an "on" command is generated, and for the
- given "till-time" an off command is scheduleld via the at command.
-
-
on-for-timer requires a relative time in the "at" format
- (HH:MM:SS, HH:MM) or { <perl code> }, where the perl code
- returns a time specification).
-
- The TRX_SECURITY module interprets X10, KD101 and Visonic security sensors received by a RFXCOM RFXtrx433 RF receiver. You need to define an RFXtrx433 receiver first. See TRX.
-
-
- specifies one of the following security devices:
-
-
DS10A (X10 security ds10a Door/Window Sensor or compatible devices. This device type reports the status of the switch [Open/Closed], status of the delay switch [min|max]], and battery status [ok|low].)
-
MS10A (X10 security ms10a motion sensor. This device type reports the status of motion sensor [normal|alert] and battery status [ok|low].))
-
SD90 (Marmitek sd90 smoke detector. This device type reports the status of the smoke detector [normal|alert] and battery status [ok|low].)
-
KR18 (X10 security remote control. Report the Reading "Security" with values [Arm|Disarm], "ButtonA" and "ButtonB" with values [on|off] )
-
KD101 (KD101 smoke sensor. Report the Reading "smoke" with values [normal|alert])
-
VISONIC_WINDOW (VISONIC security Door/Window Sensor or compatible devices. This device type reports the status of the switch [Open/Closed] and battery status [ok|low].)
-
VISONIC_MOTION (VISONIC security motion sensor. This device type reports the status of motion sensor [normal|alert] and battery status [ok|low].))
-
-
-
- <deviceid>
-
- specifies the first device id of the device. X10 security (DS10A, MS10A) and SD90 have a a 16 bit device id which has to be written as a hex-string (example "5a54"). All other devices have a 24 bit device id.
-
-
- <devicelog>
-
- is the name of the Reading used to report. Suggested: "Window" or "Door" for ds10a, "motion" for motion sensors, "smoke" for sd90. If you use "none" then no additional Reading is reported. Just the state is used to report the change.
-
-
- <deviceid2>
-
- is optional and specifies the second device id of the device if it exists. For example sd90 smoke sensors can be configured to report two device ids.
-
-
- <devicelog2>
-
- is optional for the name used for the Reading of <deviceid2>. If you use "none" then no additional Reading is reported. Just the state is used to report the change.
-
- The TRX_WEATHER module interprets weather sensor messages received by a RTXtrx receiver. See http://www.rfxcom.com/oregon.htm for a list of
- Oregon Scientific weather sensors that could be received by the RFXtrx433 tranmitter. You need to define a RFXtrx433 receiver first. See
- See TRX.
-
-
- is the device identifier of the sensor. It consists of the sensors name and (only if the attribute longids is set of the RFXtrx433) an a one byte hex string (00-ff) that identifies the sensor. If an sensor uses an switch to set an additional is then this is also added. The define statement with the deviceid is generated automatically by autocreate. The following sensor names are used:
- "THR128" (for THR128/138, THC138),
- "THGR132N" (for THC238/268,THN132,THWR288,THRN122,THN122,AW129/131),
- "THWR800",
- "RTHN318",
- "TX3_T" (for LaCrosse TX3, TX4, TX17),
- "THGR228N" (for THGN122/123, THGN132, THGR122/228/238/268),
- "THGR810",
- "RTGR328",
- "THGR328",
- "WTGR800_T" (for temperature of WTGR800),
- "THGR918" (for THGR918, THGRN228, THGN500),
- "TFATS34C" (for TFA TS34C),
- "BTHR918",
- "BTHR918N (for BTHR918N, BTHR968),
- "RGR918" (for RGR126/682/918),
- "PCR800",
- "TFA_RAIN" (for TFA rain sensor),
- "WTGR800_A" (for wind sensor of WTGR800),
- "WGR800" (for wind sensor of WGR800),
- "WGR918" (for wind sensor of STR918 and WGR918),
- "TFA_WIND" (for TFA wind sensor),
- "BWR101" (for Oregon Scientific BWR101),
- "GR101" (for Oregon Scientific GR101)
-
- is the device identifier of the energy sensor. It consists of the sensors name and (only if the attribute longids is set of the RFXtrx433) an a two byte hex string (0000-ffff) that identifies the sensor. The define statement with the deviceid is generated automatically by autocreate. The following sensor names are used:
- "CM160" (for OWL CM119 or CM160),
- "CM180" (for OWL CM180),
- "CM180i"(for OWL CM180i),
-
- The following Readings are generated:
-
- "energy_current:":
-
- Only for CM160 and CM180: current usage in Watt. If <scale_current> is defined the result is: energy_current * <scale_current>.
-
- "energy_chx:":
-
- Only for CM180i (where chx is ch1, ch2 or ch3): current usage in Ampere. If <scale_current> is defined the result is: energy_chx * <scale_current>.
-
- "energy_total:":
-
- current usage in kWh. If scale_total and add_total is defined the result is: energy_total * <scale_total> + <add_total>.
-
- The TUL module is the representation of a EIB / KNX connector in FHEM.
- EIB instances represent the EIB / KNX devices and will need a TUL as IODev to communicate with the EIB / KNX network.
- The TUL module is designed to connect to EIB network either using EIBD or the TUL usb stick created by busware.de
-
- Note: this module may require the Device::SerialPort or Win32::SerialPort
- module if you attach the device via USB and the OS sets strange default
- parameters for serial devices.
-
-
-
-
-
-
-
- Define
-
- define <name> TUL <device> <physical address>
-
- TUL usb stick / TPUART serial devices:
- <device> specifies the serial port to communicate with the TUL.
- The name of the serial-device depends on your distribution, under
- linux the cdc_acm kernel module is responsible, and usually a
- /dev/ttyACM0 device will be created. If your distribution does not have a
- cdc_acm module, you can force usbserial to handle the TUL by the
- following command:
modprobe usbserial vendor=0x03eb
- product=0x204b
In this case the device is most probably
- /dev/ttyUSB0.
-
- You can also specify a baudrate if the device name contains the @
- character, e.g.: /dev/ttyACM0@19200
- Note: For TUL usb stick the baudrate 19200 is needed and this is the default
- when no baudrate is given.
-
-
- Example:
- define tul TUL tul:/dev/ttyACM0 1.1.249
-
- EIBD:
- <device> specifies the host:port of the eibd device. E.g.
- eibd:192.168.0.244:2323. When using the standard port, the port can be omitted.
-
-
- Example:
- define tul TUL eibd:localhost 1.1.249
-
-
- If the device is called none, then no device will be opened, so you
- can experiment without hardware attached.
-
- The physical address is used as the source address of telegrams sent to EIB network.
-
- Defines a path to the program "tdtool", which is used to control a (locally attached)
- "Telldus TellStick [Duo]" USB device. A TellStick controls a wide range of 433 MHz
- devices, like the widely available switchable power outlets from InterTechno.
- To keep things simple, FHEM interfaces with the telldus-core suite (available
- for Linux, Windows, Mac OSX) via the supplied tool, "tdtool". This FHEM module
- will initially use "tdtool --list" to receive a list of configured devices, then let
- autocreate (if enabled) create them as SIS_PMS devices.
- Please make sure that the user running FHEM under ("fhem" in a standard setup on
- Linux) has the r/w-right to access the stick's device ("/dev/tellstick"
- in telldus-core version 2.0) — if the state of your devices do not change when
- modified im FHEM, access rights problems are the most probable cause
- (chmod o+rw /dev/tellstick should fix that; you may want to automate it
- via udev or adding the fhem user to the proper group ;))
- This module has only been tested with the 2.0 branch of teldus-core because of a known bug
- in 2.1, preventing
- version 2.1 working properly with some TellSticks and/or "tdtool" application; FTR, the
- "Batch: 8" version a was granted usage of for writing this module was impacted by it ...
-
- To actually control any power sockets, you need to define a SIS_PMS
- device — TellStick.pm uses SIS_PMS devices ("socket" is te:ll:st:ck:01, "socketnr"
- is the ID of the device in "tdtool"), as as of now only on/off switching is supported and
- this was the easiest implementation path. SIS_PMS is supported by andFHEM, the Android
- frontend, so this make some sense. (Furthermore, I don't own dimmable devices and they are
- actually not really cheap; >15 EUR/socket compared to the 15 EUR for 5 switch-only, non-self
- learning socket adapters from Intertechno at your local home improvement store.)
-
- This module converts any text into speech with serveral possible providers. The Device can be defined as locally
- or remote device.
-
-
-
- Local Device
-
- The output will be send to any connected audiodevice. For example external speakers connected per jack
- or with bluetooth speakers - connected per bluetooth dongle. Its important to install mplayer.
- apt-get install mplayer
- The given alsadevice has to be configured in /etc/asound.conf
-
- Special AlsaDevice: none
- The internal mplayer command will be without any audio directive if the given alsadevice is none.
- In this case mplayer is using the standard audiodevice.
-
- This module can configured as remote-device for client-server Environments. The Client has to be configured
- as local device.
- Notice: the Name of the locally instance has to be the same!
-
-
Host: setting up IP-adress
-
PortNr: setting up TelnetPort of FHEM; default: 7072
-
SSL: setting up if connect over SSL; default: no SSL
-
PortPassword: setting up the configured target telnet passwort
volume:
- Setting up the volume audio response.
- Notice: Only available in locally instances!
-
-
-
-
-Get
-
N/A
-
-
-Attributes
-
-
TTS_Delemiter
- optional: By using the google engine, its not possible to convert more than 100 characters in a single audio brick.
- With a delemiter the audio brick will be split at this character. A delemiter must be a single character.!
- By default, ech audio brick will be split at sentence end. Is a single sentence longer than 100 characters,
- the sentence will be split additionally at comma, semicolon and the word and.
- Notice: Only available in locally instances with Google engine!
-
-
-
TTS_Ressource
- optional: Selection of the Translator Engine
- Notice: Only available in locally instances!
-
-
Google
- Using the Google Engine. It´s nessessary to have internet access. This engine is the recommend engine
- because the quality is fantastic. This engine is using by default.
-
-
ESpeak
- Using the ESpeak Engine. Installation of the espeak sourcen is required.
- apt-get install espeak
-
-
-
-
-
TTS_CacheFileDir
- optional: The downloaded Goole audio bricks are saved in this folder for reusing.
- No automatically implemented deleting are available.
- Default: cache/
- Notice: Only available in locally instances!
-
-
-
TTS_UseMP3Wrap
- optional: To become a liquid audio response its recommend to use the tool mp3wrap.
- Each downloaded audio bricks are concatinated to a single audio file to play with mplayer.
- Installtion of the mp3wrap source is required.
- apt-get install mp3wrap
- Notice: Only available in locally instances!
-
-
-
TTS_MplayerCall
- optional: Setting up the Mplayer system call. The following example is default.
- Example: sudo /usr/bin/mplayer
-
-
-
TTS_SentenceAppendix
- Optional: Definition of one mp3-file to append each time of audio response.
- Using of Mp3Wrap is required. The audio bricks has to be downloaded before into CacheFileDir.
- Example: silence.mp3
-
-
-
TTS_FileMapping
- Definition of mp3files with a custom templatedefinition. Separated by space.
- All templatedefinitions can used in audiobricks by i>tts.
- The definition must begin and end with e colon.
- The mp3files must saved in the given directory by TTS_FIleTemplateDir.
- attr myTTS TTS_FileMapping ring:ringtone.mp3 beep:MyBeep.mp3
- set MyTTS tts Attention: This is my ringtone :ring: Its loud?
-
-
-
TTS_FileTemplateDir
- Directory to save all mp3-files are defined in TTS_FileMapping und TTS_SentenceAppendix
- Optional, Default: cache/templates
-
disable
- If this attribute is activated, the soundoutput will be disabled.
- Possible values: 0 => not disabled , 1 => disabled
- Default Value is 0 (not disabled)
-
-
-
verbose
- 4: each step will be logged
- 5: Additionally the individual debug informations from mplayer and mp3wrap will be logged
-
-
-
-
-
-
Twilight
-
-
-
-
- Define
-
- define <name> Twilight <latitude> <longitude> [<indoor_horizon> [<Weather_Position>]]
-
- Defines a virtual device for Twilight calculations
-
- latitude, longitude
-
- The parameters latitude and longitude are decimal numbers which give the position on earth for which the twilight states shall be calculated.
-
- indoor_horizon
-
- The parameter indoor_horizon gives a virtual horizon higher than 0, that shall be used for calculation of indoor twilight (typical values are between 0 and 6)
-
- Weather_Position
-
- The parameter Weather_Position is the yahoo weather id used for getting the weather condition. Go to http://weather.yahoo.com/ and enter a city or zip code. In the upcoming webpage, the id is a the end of the URL. Example: Munich, Germany -> 676757
-
-
- A Twilight device periodically calculates the times of different twilight phases throughout the day.
- It calculates a virtual "light" element, that gives an indicator about the amount of the current daylight.
- Besides the location on earth it is influenced by a so called "indoor horizon" (e.g. if there are high buildings, mountains) as well as by weather conditions. Very bad weather conditions lead to a reduced daylight for nearly the whole day.
- The light calculated spans between 0 and 6, where the values mean the following:
-
- light
-
- 0 - total night, sun is at least -18 degree below horizon
- 1 - astronomical twilight, sun is between -12 and -18 degree below horizon
- 2 - nautical twilight, sun is between -6 and -12 degree below horizon
- 3 - civil twilight, sun is between 0 and -6 degree below horizon
- 4 - indoor twilight, sun is between the indoor_horizon and 0 degree below horizon (not used if indoor_horizon=0)
- 5 - weather twilight, sun is between indoor_horizon and a virtual weather horizon (the weather horizon depends on weather conditions (optional)
- 6 - maximum daylight
-
- Azimut, Elevation, Twilight
-
- The module calculates additionally the azimuth and the elevation of the sun. The values can be used to control a roller shutter.
-
- As a new (twi)light value the reading Twilight ist added. It is derived from the elevation of the sun with the formula: (Elevation+12)/18 * 100). The value allows a more detailed
- control of any lamp during the sunrise/sunset phase. The value ist betwenn 0% and 100% when the elevation is between -12° and 6°.
-
- You must know, that depending on the latitude, the sun will not reach any elevation. In june/july the sun never falls in middle europe
- below -18°. In more northern countries(norway ...) the sun may not go below 0°.
-
- Any control depending on the value of Twilight must
- consider these aspects.
-
the time when the next event will probably happen (during light phase 5 and 6 this is updated when weather conditions change
-
sr_astro
time of astronomical sunrise
-
sr_naut
time of nautical sunrise
-
sr_civil
time of civil sunrise
-
sr
time of sunrise
-
sr_indoor
time of indoor sunrise
-
sr_weather
time of weather sunrise
-
ss_weather
time of weather sunset
-
ss_indoor
time of indoor sunset
-
ss
time of sunset
-
ss_civil
time of civil sunset
-
ss_nautic
time of nautic sunset
-
ss_astro
time of astro sunset
-
azimuth
the current azimuth of the sun 0° ist north 180° is south
-
compasspoint
a textual representation of the compass point
-
elevation
the elevaltion of the sun
-
twilight
a percetal value of a new (twi)light value: (elevation+12)/18 * 100)
-
twilight_weather
a percetal value of a new (twi)light value: (elevation-WEATHER_HORIZON+12)/18 * 100). So if there is weather, it
- is always a little bit darker than by fair weather
-
condition
the yahoo condition weather code
-
condition_txt
the yahoo condition weather code as textual representation
- implements a routine to compute the twilighttimes like sunrise with min max values.
-
-
$twilight
name of the twilight instance
-
$reading
name of the reading to use example: ss_astro, ss_weather ...
-
$min
parameter min time - optional
-
$max
parameter max time - optional
-
-
-
-
-
-
-
-
UNIRoll
-
- The protocol is used by the Lott UNIROLL R-23700 reciever. The radio
- (868.35 MHz) messages are either received through an FHZ
- or an CUL device, so this must be defined first.
- Recieving sender messages is not integrated jet.
- The CUL has to allow working with zero synchbits at the beginning of a raw-message.
- This is possible with culfw 1.49 or higher.
-
-
- The values of devicegroup address (similar to the housecode) and device address (button)
- has to be defined as hexadecimal value.
- There is no master or group code integrated.
-
-
-
-
<devicecode> is a 4 digit hex number,
- corresponding to the housecode address.
-
<channel> is a 1 digit hex number,
- corresponding to a button of the transmitter.
-
-
-
- Example:
-
- define roll UNIRoll 7777 0
-
-
-
-
-
- Set
-
- set <name> <value> [<time>]
-
- where value is one of:
-
- up
- stop
- down
- pos (The attribute useRolloPos has to be set to 1 to use this.)
- [<time>] in seconds for up, down or pos
-
- Examples:
-
- set roll up
- set roll up 10
- set roll1,roll2,roll3 up
- set roll1-roll3 up
-
-
-
- Get
N/A
-
-
- Attributes
-
-
-
IODev
- Set the IO or physical device which should be used for sending signals
- for this "logical" device. An example for the physical device is an FHZ
- or a CUL. The device will not work without this entry.
-
-
-
eventMap
- Replace event names and set arguments. The value of this attribute
- consists of a list of space separated values, each value is a colon
- separated pair. The first part specifies the "old" value, the second
- the new/desired value. If the first character is slash(/) or komma(,)
- then split not by space but by this character, enabling to embed spaces.
- Examples:
- attr device eventMap up:open down:closed
- set device open
-
sendStopBeforeCmd <value>
- Before any up/down-command a stop-command will be sent to stop a random
- operation. This might cause failure in some situations. This attribute
- can be used to switch off the stop-command by setting it to these values.
- where value is one of:
-
- 1 - send always stop (default)
- 0 - send no stop
- 2 - send stop only before up
- 3 - send stop only before down
-
-
-
-
useRolloPos <value>
- The position of each device can be stored. By this it is possible to move from
- any position to any other position. As this feature is software-based, a
- manual operation will not be recognized. To set the device into a definite
- state, a up or down command will reset the counter for the position.
- where value is one of:
-
- 1 - RolloPos will be used
- 0 - RolloPos is not used (default)
-
- These attributes will be created automatical if useRolloPos is set to 1.
- They will not be deleted, if the value is set to 0 or the attribut is deleted.
-
- rMin - Time in seconds for the topmost position
- rMax - Time in seconds until the device is fully closed
- rPos - This is an internal value and must not be changed!
-
-
-
-
model
- The model attribute denotes the model type of the device.
- The attributes will (currently) not be used by the fhem.pl directly.
- It can be used by e.g. external programs or web interfaces to
- distinguish classes of devices and send the appropriate commands.
- The spelling of the model names are as quoted on the printed
- documentation which comes which each device. This name is used
- without blanks in all lower-case letters. Valid characters should be
- a-z 0-9 and - (dash),
- other characters should be ommited. Here is a list of "official"
- devices:
-
- Receiver/Actor: there is only one reciever: R_23700
-
-
-
-
-
-
-
-
-
USBWX
-
- The USBWX module interprets the messages received by the ELV USB-WDE1
- weather receiver. This receiver is compaptible with the following ELV sensors:
- KS200/KS300, S300IA, S300TH, ASH2200, PS50. It also known to work with Conrad
- weather sensors KS555, S555TH and ASH555. This module was tested with ELV
- S300TH, ELV ASH2200, ELV KS300, Conrad S555TH and Conrad KS555. Readings
- and STATE of temperature/humidity sensors are compatible with the CUL_WS
- module. For KS300/KS555 sensors STATE is compatible with the KS300 module. The
- module is integrated into autocreate to generate the appropriate filelogs and
- weblinks automatically.
-
- Note: this module requires the Device::SerialPort or Win32::SerialPort module
- if the devices is connected via USB or a serial port.
-
-
-
- Define
-
- define <name> USBWX <serial device>
-
- Defines USB-WDE1 attached via usb.
-
- define <name> USBWX <code> [corr1...corr4]
-
- <code> is the code which must be set on the sensor. Valid values
- are 1 through 8. 9 is used as the sensor id of the ks300 sensor.
- corr1..corr4 are up to 4 numerical correction factors, which will be added
- to the respective value to calibrate the device. Note: rain-values will be
- multiplied and not added to the correction factor.
-
-
- Example:
- Fhem can receive your tank's fill level from the USF1000S device
- through a FHZ device, so one must be defined first.
- The state contains the fill level in % (lower case v in the device state)
- and the current volume in liters (upper case V in the device state).
- Measured distance to the liquid's surface, fill level, volume and warnings
- (Test mode, Battery low) are available. Due to the design of the USF1000S
- protocol, you can have only one USF1000S in range of your FHZ as these
- devices cannot be distinguished.
-
-
-
- Define
-
- define <name> USF1000 <geometry>
-
-
- <geometry> determines the form of the tank and the
- position of the sensor. The following geometries are currently
- supported:
-
-
cub <length> <width> <height> <offset>
-
cylv <diameter> <height> <offset>
-
-
- cub stands for a cuboid whose base is <length> × <width>.
- cylv stands for a vertical cylinder whose diameter is <diameter>.
- <height> is the distance of the surface of the liquid from the ground
- if the tank is full. <offset> is the distance of the sensor relative to
- the surface of the liquid. All quantities are expressed in meters.
-
-
- Example:
-
- define MyTank USF1000 cylv 2 1 0.3: a cylindrical water tank with
- 2 meters diameter. The water stands 1 meter high if the tank is full. The
- sensor is fixed 1,3 meters above ground.
-
-
- This is a collection of functions that can be used module-independant in all your own development
-
-
-# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-# IMPORTANT: do not insert your own functions inside
-# the file 99_Utils.pm!
-#
-# This file will be overwritten during an FHEM update and all
-# your own inserts will be lost.
-# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-#
-# To avoid this, we recommend following procedure:
-#
-# 1. Create your own file 99_myUtils.pm from the template below
-# 2. Put this file inside the ./FHEM directory
-# 3. Put your own functions into this new file
-#
-
-
-# start-of-template
-package main;
-
-use strict;
-use warnings;
-use POSIX;
-
-sub
-myUtils_Initialize($$)
-{
- my ($hash) = @_;
-}
-
-# start with your own functions below this line
-
-
-# behind your last function, we need the following
-1;
-# end-of-template
-
-
-
- Defined functions
-
-
abstime2rel() ???
-
ltrim() returns string without leading spaces
-
max() returns the highest value from a given list (sorted alphanumeric)
-
maxNum() returns the highest value from a given list (sorted numeric)
-
min() returns the lowest value from a given list (sorted alphanumeric)
-
minNum() returns the lowest value from a given list (sorted numeric)
-
rtrim() returns string without trailing spaces
-
time_str2num() ???
-
trim() returns string without leading and without trailing spaces
-
UntoggleDirect() For devices paired directly, converts state 'toggle' into 'on' or 'off'
-
UntoggleIndirect() For devices paired indirectly, switches the target device 'on' or 'off'
- also when a 'toggle' was sent from the source device
-
-
-
-
VIERA
-
-
- Define
-
- define <name> VIERA <host> [<interval>]
-
- This module controls Panasonic TV device over ethernet. It's possible to
- power down the tv, change volume or mute/unmute the TV. Also this modul is simulating
- the remote control and you are able to send different command buttons actions of remote control.
- The module is tested with Panasonic plasma TV tx-p50vt30e
-
- Defining a VIERA device will schedule an internal task (interval can be set
- with optional parameter <interval> in seconds, if not set, the value is 30
- seconds), which periodically reads the status of volume and mute status and triggers
- notify/filelog commands.
- Example:
-
- define myTV1 VIERA 192.168.178.20
- define myTV1 VIERA 192.168.178.20 60 #with custom interval of 60 seconds
-
-
-
-
-
- Set
-
- set <name> <command> [<value>]
-
- Currently, the following commands are defined.
-
-
- Remote control (depending on your model, maybe)
- For this application the following commands are available:
-
- 3D => 3D button
- BLUE => Blue
- CANCEL => Cancel / Exit
- CHG_INPUT => AV
- CH_DOWN => Channel down
- CH_UP => Channel up
- D0 => Digit 0
- D1 => Digit 1
- D2 => Digit 2
- D3 => Digit 3
- D4 => Digit 4
- D5 => Digit 5
- D6 => Digit 6
- D7 => Digit 7
- D8 => Digit 8
- D9 => Digit 9
- DISP_MODE => Display mode / Aspect ratio
- DOWN => Control DOWN
- ENTER => Control Center click / enter
- EPG => Guide / EPG
- FF => Fast forward
- GREEN => Green
- HOLD => TTV hold / image freeze
- INDEX => TTV index
- INFO => Info
- INTERNET => VIERA connect
- LEFT => Control LEFT
- MENU => Menu
- MUTE => Mute
- PAUSE => Pause
- PLAY => Play
- POWER => Power off
- P_NR => P-NR (Noise reduction)
- REC => Record
- RED => Red
- RETURN => Return
- REW => Rewind
- RIGHT => Control RIGHT
- R_TUNE => Seems to do the same as INFO
- SD_CARD => SD-card
- SKIP_NEXT => Skip next
- SKIP_PREV => Skip previous
- STOP => Stop
- STTL => STTL / Subtitles
- SUBMENU => Option
- TEXT => Text / TTV
- TV => TV
- UP => Control UP
- VIERA_LINK => VIERA link
- VOLDOWN => Volume down
- VOLUP => Volume up
- VTOOLS => VIERA tools
- YELLOW => Yellow
-
-
-
- Example:
-
- set <name> mute on
- set <name> volume 20
- set <name> remoteControl CH_DOWN
-
-
-
- Notes:
-
Activate volume remotecontrol by DLNA: Menu -> Setup -> Network Setup -> Network Link Settings -> DLNA RemoteVolume -> On
-
-
-
-
- Get
-
- get <name> <what>
-
- Currently, the following commands are defined and return the current state of the TV.
-
- mute
- volume
- power
- presence
-
-
-
-
-
- Attributes
-
N/A
-
-
-
- Generated events:
-
-
volume
-
mute
-
presence
-
power
-
state
-
-
-
-
-
VantagePro2
-
- Note: this module needs the Net::Telnet perl module.
-
-
- Define
-
- define <name> <ip-address> <port> <delay>
-
- Defines a Davis VantagePro2 weatherstation attached on transparent ethernet/usb|serial server accessable by telnet.
- Defines an Web-IO-Digital device (Box with up to 12 digital in/outputs, www.wut.de) via ip address. The status of the device is also pooled (delay interval).
- This module connects a Web-Thermometer made by W&T to your FHEM installation.
- Currently this module is no longer maintained, but it should work in its current state.
- It is provided "as is" for backward compatibility.
-
-
- Define
-
- define <name> WEBTHERM <ip-address> <port-nr> <interval>
-
- Defines a WEBTHERM device at given ip and port.
- Values are polled periodically defined by given interval (in seconds).
- Read temperature is written into reading "state".
-
-
-
-
- Set
-
- N/A
-
-
-
-
- Get
-
- N/A
-
-
-
-
- Attr
-
- N/A
-
-
-
-
WOL
-
-Defines a WOL device via its MAC and IP address.
-
-when sending the on command to a WOL device it wakes up the dependent device by sending a magic packet. When running in repeat mode the magic paket ist sent every n seconds to the device.
-So, for example a Buffalo NAS can be kept awake.
-
-
-
Define
-
- define <name> WOL <MAC> <IP> [<mode> [<repeat>]]
-
-
-
-
MAC
-
MAC-Adress of the host
-
IP
-
IP-Adress of the host (or broadcast address of the local network if IP of the host is unknown)
-
mode [EW|UDP]
-
EW: wakeup by usr/bin/ether-wake
-
UDP: wakeup by an implementation like Net::Wake(CPAN)
-
-
-
- Examples:
-
- define computer1 WOL 72:11:AC:4D:37:13 192.168.0.24 switching only one time
- define computer1 WOL 72:11:AC:4D:37:13 192.168.0.24 EW by ether-wake(linux command)
- define computer1 WOL 72:11:AC:4D:37:13 192.168.0.24 BOTH by both methods
- define computer1 WOL 72:11:AC:4D:37:13 192.168.0.24 UDP 200 in repeat modeusr/bin/ether-wake in repeatmode
-
-
-
- Notes:
-
- Not every hardware is able to wake up other devices by default. Oftenly firewalls filter magic packets. Switch them first off.
- You may need a packet sniffer to check some malfunktion.
- With this module you get two methods to do the job: see the mode parameter.
-
-
-
-
-
Set
-
- set <name> <value>
-
- where value is one of:
-
- refresh # checks(by ping) whether the device is currently running
- on # sends a magic packet to the defined MAC address
- off # stops sending magic packets and sends the shutdownCmd(see attributes)
-
-
- Examples:
-
- set computer1 on
- set computer1 off
- set computer1 refresh
-
-
-
-
-
Attributes
-
-
attr <name> sysCmd <string>
- Custom command executed to wakeup a remote machine, i.e. /usr/bin/ether-wake or /usr/bin/wakeonlan
-
attr <name> shutdownCmd <command>
- Custom command executed to shutdown a remote machine. You can use <command>, like you use it in at, notify or Watchdog
-
- Examples:
-
- attr wol shutdownCmd set lamp on # fhem command
- attr wol shutdownCmd { Log 1, "Teatime" } # Perl command
- attr wol shutdownCmd "/bin/echo "Teatime" > /dev/console" # shell command
-
-
attr <name> interval <seconds>
- defines the time between two checks by a ping if state of <name> is on
-
-
-
-
-
WS2000
-
-
-
-
- Define
-
- define <name> WS2000 <device_to_connect>
-
-
- Define a WS2000 series raw receiver device sold by ELV. Details see here.
- Unlike 86_FS10.pm it will handle the complete device communication itself
- and doesnt require an external program. For this reason you can now use
- this also on windows.
-
- This Device will be usually connect to a serial port, but you can also
- define a raw network redirector like lantronix XPORT(TM).
- Note: Currently this device does not support a "set" function
-
-
- Attributes:
-
-
rain: factor for calculating amount of rain in ml/count
-
altitude: height in meters to calculate pressure for NN (not used yet)
-
-
- Example:
-
- define WS2000 WS2000 /dev/ttyS0
-
-
- define WS2000 WS2000 xport:10001
-
-
- attr WS2000 rain 366 : use factor 366 ml/count for rain sensor S2000R
-
-
-
-
- Set
N/A
-
-
- Get
-
- get <name> list
-
- Gets the last reading of all received sensord
-
- get <name> [TH0..TH7, T0..T7, I0..I7, R0..R7, W0..W7, L0..L7, P0..P7,LAST,RAW]
- get the last reading for the name sensor,
- LAST: Last received Sensor
-
- define WS300Device WS300 <serial device>
- or
- define <devname> WS300 [0-9]
-
- The first line is mandatory if you have a WS300 device: it defines the
- input device with its USB port. The name of this device is fixed and must
- be WS300Device. It must be the first defined WS300 device.
-
- For each additional device (with number 0 to 9) you have to define another
- WS300 device, with an arbitrary name. The WS300 device which reports the
- readings will be defined with the port number 9, an optional KS300 with the
- port number 8.
- Defines a weather station, which is queried by means of an external
- program. That program is executed by FHEM and is expected to deliver the
- data at stdout in the format of a WS3600 series weather station (details
- see below).
-
- Define
-
full path to the executable which queries the weatherstation
- (for WS3600 series fetch3600 should be used)
-
<options>
-
options for <wsreaderprog>, if necessary
-
<interval>
-
this optional parameter is the time between subsequent calls to
- <wsreaderprog>. It defaults to 60s.
-
-
-
- Supported Stations are:
-
-
WS3600 series weather station (Europe Supplies, technotrade, etc;
- refer to Wetterstationen.info
- (german) for details on this model) with fetch3600 from the
- toolchain open3600).
- Fetch3600 delivers the current readings line by line as
- reading-value-pairs. These are read periodically and translated into
- more readable names for FHEM by the module WS3600.pm.
-
WS2300
- with toolchain open2300,
- because it is rather similar to the WS3600.
-
WS1080
- (and other stations which come with the EasyWeather windows
- application) with fowsr
- (version 2.0 or above)
-
-
- Currently, it is expected that the WS is attached to the local computer
- and <wsreaderprog> is run locally. Basically the executable called
- needs to supply on stdout an output similar to what fetch3600 returns;
- how to implement a "networked setup" is left as an excercise to the
- reader.
- For the records, this is an output of fetch3600:
-
- There is no expectation on the readings received from the fetch3600
- binary; so, in essence, if you have a similar setup (unsupported,
- attached weather station and a means to get it's reading into an output
- similar to above's), you should be able to use WS3600.pm with
- a custom written script to interface FHEM with your station as well.
- WS3600.pm only recognizes the above readings (and translates
- these into, e. g., Temp-inside for Ti for
- use within FHEM), other lines are silently dropped on the floor. Note:
- To step down the number of readings date and time records will now be
- merged to one reading containing date and time. This now also allows
- records with merged date / time values delivered from
- <wsreaderprog> - detected by prefix DT (e.g. Date
- + Time --> DTime, DRPmin +
- TRPmin --> DTRPmin and so on).
- fetch3600 is available as binary for the Windows OS as well, but
- operation under that OS isn't tested yet.
-
- Examples:
-
model WS3600, WS2300,
- WS1080 (not used for anything, yet)
-
-
-
-
-
-
WWO
-
-
-
-
- Define
-
- define <name> WWO <location> <apikey>
-
- Defines a virtual device for WWO forecasts.
-
- A WWO device periodically gathers current and forecast weather conditions
- from worldweatheronline.com (the free api version)
- You need to signup at http://developer.worldweatheronline.com to get an apikey)
-
- The parameter location is the WOEID (WHERE-ON-EARTH-ID), go to
- http://www.worldweatheronline.com to find it out for your valid location.
-
- The natural language in which the forecast information appears is english.
-
-
- The interval is set to update the values every hour.
-
-
- Examples:
-
- define MyWeather WWO Berlin,Germany
-
-
- The module provides one additional function WWOAsHtml. The function return the HTML code for a
- vertically arranged weather forecast.
-
-
- Forces the retrieval of the weather data. The next automatic retrieval is scheduled to occur
- interval seconds later.
-
-
-
-
- Get
-
- get <name> <reading>
-
- Valid readings and their meaning (? can be one of 0, 1, 2, 3, 4, 5 and stands
- for today, tomorrow, etc. - with 'fc?_' or without! - without is meaning 'current condition'):
-
-
cloudcover
cloudcover in percent
-
current_date_time
last update of forecast on server
-
fc?_date
date of the forecast condition - not valid without 'fc?'
- define <name> Weather <location> [<interval> [<language>]]
-
- Defines a virtual device for weather forecasts.
-
- A Weather device periodically gathers current and forecast weather conditions
- from the Yahoo Weather API.
-
- The parameter location is the WOEID (WHERE-ON-EARTH-ID), go to
- http://weather.yahoo.com to find it out for your location.
-
- The optional parameter interval is the time between subsequent updates
- in seconds. It defaults to 3600 (1 hour).
-
- The optional language parameter may be one of
- de,
- en,
- nl,
-
- It determines the natural language in which the forecast information appears.
- It defaults to en. If you want to set the language you also have to set the interval.
-
- The module provides four additional functions WeatherAsHtml, WeatherAsHtmlV, WeatherAsHtmlH and
- WeatherAsHtmlD. The former two functions are identical: they return the HTML code for a
- vertically arranged weather forecast. The third function returns the HTML code for a horizontally arranged weather forecast. The
- latter function dynamically picks the orientation depending on wether a smallscreen style is set (vertical layout) or not (horizontal layout).
-
- You can define different switchingtimes for every day.
- The new parameter is sent to the <device> automatically with
-
- set <device> <para>
-
- If you have defined a <condition> and this condition is false if the switchingtime has reached, no command will executed.
- An other case is to define an own perl command with <command>.
-
- The following parameter are defined:
-
device
- The device to switch at the given time.
-
-
-
profile
- Define the weekly profile. All timings are separated by space. A switchingtime is defined by the following example:
-
[<weekdays>|]<time>|<parameter>
- weekdays: optional, if not set every day is used. Otherwise you can define a day as a number or as shortname.
- time:define the time to switch, format: HH:MM(HH in 24 hour format).
- parameter:the parameter to be set, using any text value like on, off, dim30%, eco or comfort - whatever your device understands.
-
-
-
command
- If no condition is set, all other is interpreted as a command. Perl-code is setting up
- by well-known Block with {}.
- Note: if a command is defined only this command is executed. In case of executing
- a "set desired-temp" command, you must define it explicit.
- The following parameter are replaced:
-
-
@ => the device to switch
-
% => the new parameter
-
-
-
-
condition
- if a condition is defined you must declared this with () and a valid perl-code.
- The return value must be boolean.
- The parameter @ and % will be interpreted.
-
-
- Example:
-
- define shutter WeekdayTimer bath 12345|05:20|up 12345|20:30|down
- Mo-Fr are setting the shutter at 05:20 to up, and at 20:30 down.
-
- define heatingBath WeekdayTimer bath 07:00|16 Mo,Tu,Th-Fr|16:00|18.5 20:00|eco
- {fhem("set dummy on"); fhem("set @ desired-temp %");}
- At the given times and weekdays only(!) the command will be executed.
-
- define dimmer WeekdayTimer livingRoom Sa-Su,We|07:00|dim30% Sa-Su,We|21:00|dim90% (ReadingsVal("WeAreThere", "state", "no") eq "yes")
- The dimmer is only set to dimXX% if the dummy variable WeAreThere is "yes"(not a real live example).
-
- If you want to have set all WeekdayTimer their current value (after a phase of exception),
- you can call the function WeekdayTimer_SetAllParms ().
- This call can be automatically coupled to a dummy by notify:
- define WDStatus2 notify Dummy:. * {WeekdayTimer_SetAllParms ()}
-
-
-
- Defines an X10 device via its model, housecode and unitcode.
-
- Notes:
-
-
<model> is one of
-
-
lm12: lamp module, dimmable
-
lm15: lamp module, not dimmable
-
am12: appliance module, not dimmable
-
tm12: tranceiver module, not dimmable. Its
- unitcode is 1.
-
- Model determines whether a dim command is reasonable to be sent
- or not.
-
<housecode> ranges from A to P.
-
<unitcode> ranges from 1 to 16.
-
-
-
- Examples:
-
- define lamp1 X10 lm12 N 10
- define pump X10 am12 B 7
- define lamp2 X10 lm15 N 11
-
-
-
-
-
- Set
-
- set <name> <value> [<argument>]
-
- where value is one of:
-
- dimdown # requires argument, see the note
- dimup # requires argument, see the note
- off
- on
- on-till # Special, see the note
- on-for-timer # Special, see the note
-
- Examples:
-
- set lamp1 dimup 10
- set lamp1,lamp2 off
- set pump off
- set lamp2 on-till 19:59
- set lamp2 on-for-timer 00:02:30
-
-
- Notes:
-
-
Only switching and dimming are supported by now.
-
Dimming is valid only for a dimmable device as specified by
- the model argument in its define
- statement.
-
An X10 device has 210 discrete brightness levels. If you use a
- X10 sender, e.g. a remote control or a wall switch to dim, a
- brightness step is 100%/210.
-
dimdown and dimup take a number in the
- range from 0 to 22 as argument. It is assumed that argument 1 is
- a 1% brightness change (microdim) and arguments 2 to 22 are
- 10%..100% brightness changes. The meaning of argument 0 is
- unclear.
-
This currently leads to some confusion in the logs as the
- dimdown and dimup codes are logged with
- different meaning of the arguments depending on whether the commands
- were sent from the PC or from a remote control or a wall switch.
-
dimdown and dimup from on and off states may
- have unexpected results. This seems to be a feature of the X10
- devices.
-
on-till requires an absolute time in the "at" format
- (HH:MM:SS, HH:MM) or { <perl code> }, where the perl code
- returns a time specification).
- If the current time is greater than the specified time, then the
- command is ignored, else an "on" command is generated, and for the
- given "till-time" an off command is scheduleld via the at command.
-
-
on-for-timer requires a relative time in the "at" format
- (HH:MM:SS, HH:MM) or { <perl code> }, where the perl code
- returns a time specification).
-
-
- This module allows you to control XBMC and receive events from XBMC. It can also be used to control Plex (see attribute compatibilityMode).
-
- Prerequisites
-
-
Requires XBMC "Frodo" 12.0.
-
To use this module you will have to enable JSON-RPC. See here.
-
The Perl module JSON is required.
- On Debian/Raspbian: apt-get install libjson-perl
- Via CPAN: cpan install JSON
- To get it working on a Fritzbox the JSON module has to be installed manually.
-
-
- To receive events it is necessary to use TCP. The default TCP port is 9090. Username and password are optional for TCP. Be sure to enable JSON-RPC
- for TCP. See here.
-
- Example:
-
-
- define htpc XBMC 192.168.0.10 tcp
-
- define htpc XBMC 192.168.0.10:9000 tcp # With custom port
-
- define htpc XBMC 192.168.0.10 http # Use HTTP instead of TCP - Note: to receive events use TCP!
-
- define htpc XBMC 192.168.0.10 http xbmc passwd # Use HTTP with credentials - Note: to receive events use TCP!
-
-
-
- Remote control:
- There is an simple remote control layout for XBMC which contains the most basic buttons. To add the remote control to the webinterface execute the
- following commands:
-
-
- define <rc_name> remotecontrol #adds the remote control
-
- set <rc_name> layout XBMC_RClayout #sets the layout for the remote control
-
- set <rc_name> makenotify <XBMC_device> #links the buttons to the actions
-
-
-
- Known issues:
- XBMC sometimes creates events twices. For example the Player.OnPlay event is created twice if play a song. Unfortunately this
- is a issue of XBMC. The fix of this bug is included in future version of XBMC (> 12.2).
-
-
-
-
- Set
-
- set <name> <command> [<parameter>]
-
- This module supports the following commands:
-
- Player related commands:
-
-
play [<all|audio|video|picture>] - starts the playback (might only work if previously paused). The second argument defines which player should be started. By default the active players will be started
-
pause [<all|audio|video|picture>] - pauses the playback
-
playpause [<all|audio|video|picture>] - toggles between play and pause for the given player
-
stop [<all|audio|video|picture>] - stop the playback
-
next [<all|audio|video|picture>] - jump to the next track
-
prev [<all|audio|video|picture>] - jump to the previous track or the beginning of the current track.
-
goto <position> [<audio|video|picture>] - Goes to the in the playlist. has to be a number.
-
shuffle [<toggle|on|off>] [<audio|video|picture>] - Enables/Disables shuffle mode. Without furhter parameters the shuffle mode is toggled.
-
repeat <one|all|off> [<audio|video|picture>] - Sets the repeat mode.
-
open <URI> - Plays the resource located at the URI (can be a url or a file)
-
opendir <path> - Plays the content of the directory
-
- Input related commands:
-
-
back - Back-button
-
down - Down-button
-
up - Up-button
-
left - Left-button
-
right - Right-button
-
home - Home-button
-
select - Select-button
-
info - Info-button
-
showosd - Opens the OSD (On Screen Display)
-
showcodec - Shows Codec information
-
exec <action> - Execute an input action. All available actions are listed here
-
send <text> - Sends <text> as input to XBMC
-
- Libary related commands:
-
-
videolibrary clean - Removes non-existing files from the video libary
-
videolibrary scan - Scan for new video files
-
audiolibrary clean - Removes non-existing files from the audio libary
-
audiolibrary scan - Scan for new audio files
-
- Application related commands:
-
-
mute [<0|1>] - 1 for mute; 0 for unmute; by default the mute status will be toggled
-
volume <n> - sets the volume to <n>. <n> must be a number between 0 and 100
-
volumeDown <n> - volume down
-
volumeUp <n> - volume up
-
quit - closes XBMC
-
off - depending on the value of the attribute "offMode" XBMC will be closed (see quit) or the system will be shut down, put into hibernation or stand by. Default is quit.
-
- System related commands:
-
-
eject - will eject the optical drive
-
shutdown - the XBMC host will be shut down
-
suspend - the XBMC host will be put into stand by
-
hibernate - the XBMC host will be put into hibernation
-
reboot - the XBMC host will be rebooted
-
-
-
-
- Messaging
-
- To show messages on XBMC (little message PopUp at the bottom right egde of the screen) you can use the following commands:
- set <XBMC_device> msg <title> <msg> [<duration>] [<icon>]
- The default duration of a message is 5000 (5 seconds). The minimum duration is 1500 (1.5 seconds). By default no icon is shown. XBMC provides three
- different icon: error, info and warning. You can also use an uri to define an icon. Please enclose title and/or message into quotes (" or ') if it consists
- of multiple words.
-
-
-
- Generated Readings/Events:
-
-
audiolibrary - Possible values: cleanfinished, cleanstarted, remove, scanfinished, scanstarted, update
-
currentAlbum - album of the current song/musicvideo
-
currentArtist - artist of the current song/musicvideo
-
currentMedia - file/URL of the media item being played
-
currentTitle - title of the current media item
-
currentTrack - track of the current song/musicvideo
-
episode - episode number
-
episodeid - id of the episode in the video library
-
fullscreen - indicates if XBMC runs in fullscreen mode (on/off)
-
label - label of the current media item
-
movieid - id of the movie in the video library
-
musicvideoid - id of the musicvideo in the video library
-
mute - indicates if XBMC is muted (on/off)
-
name - software name (e.g. XBMC)
-
originaltitle - original title of the movie being played
-
partymode - indicates if XBMC runs in party mode (on/off) (not available for Plex)
-
playlist - Possible values: add, clear, remove
-
playStatus - Indicates the player status: playing, paused, stopped
-
repeat - current repeat mode (one/all/off)
-
season - season of the current episode
-
showtitle - title of the show being played
-
shuffle - indicates if the playback is shuffled (on/off)
-
skin - current skin of XBMC
-
songid - id of the song in the music library
-
system - Possible values: lowbattery, quit, restart, sleep, wake
-
time - current position in the playing media item (only updated on play/pause)
-
totaltime - total run time of the current media item
-
type - type of the media item. Possible values: episode, movie, song, musicvideo, picture, unknown
-
version - version of XBMC
-
videolibrary - Possible values: cleanfinished, cleanstarted, remove, scanfinished, scanstarted, update
-
volume - value between 0 and 100 stating the current volume setting
-
year - year of the movie being played
-
-
- Remarks on the events
-
- The event playStatus = playing indicates a playback of a media item. Depending on the event type different events are generated:
-
-
type = song generated events are: album, artist, file, title and track
-
type = musicvideo generated events are: album, artist, file and title
-
type = episode generated events are: episode, file, season, showtitle, and title
-
type = movie generated events are: originaltitle, file, title, and year
-
type = picture generated events are: file
-
type = unknown generated events are: file
-
-
-
-
- Attributes
-
-
compatibilityMode
- This module can also be used to control Plex, since the JSON Api is mostly the same, but there are some differences.
- If you want to control Plex set the attribute compatibilityMode to plex.
-
offMode
- Declares what should be down if the off command is executed. Possible values are quit (closes XBMC), hibernate (puts system into hibernation),
- suspend (puts system into stand by), and shutdown (shuts down the system). Default value is quit
-
fork
- If XBMC does not run all the time it used to be the case that FHEM blocks because it cannot reach XBMC (only happened
- if TCP was used). If you encounter problems like FHEM not responding for a few seconds then you should set attr <XBMC_device> fork enable
- which will move the search for XBMC into a separate process.
-
-
-
-
-
xmllist
-
- xmllist [devspec]
-
- Returns an XML tree of device definitions. devspec is
- optional, and restricts the list of devices if specified.
-
-
- This module controls AV receiver from Yamaha via network connection. You are able
- to power your AV reveiver on and off, query it's power state,
- select the input (HDMI, AV, AirPlay, internet radio, Tuner, ...), select the volume
- or mute/unmute the volume.
- Defining a YAMAHA_AVR device will schedule an internal task (interval can be set
- with optional parameter <status_interval> in seconds, if not set, the value is 30
- seconds), which periodically reads the status of the AV receiver (power state, selected
- input, volume and mute status) and triggers notify/filelog commands.
-
- Different status update intervals depending on the power state can be given also.
- If two intervals are given in the define statement, the first interval statement stands for the status update
- interval in seconds in case the device is off, absent or any other non-normal state. The second
- interval statement is used when the device is on.
-
- Example:
-
- define AV_Receiver YAMAHA_AVR 192.168.0.10
-
- # With custom status interval of 60 seconds
- define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60
-
- # With custom "off"-interval of 60 seconds and "on"-interval of 10 seconds
- define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60 10
-
-
-
-
- Zone Selection
-
- If your receiver supports zone selection (e.g. RX-V671, RX-V673,... and the AVANTAGE series)
- you can select the zone which should be controlled. The RX-V3xx and RX-V4xx series for example
- just have a "Main Zone" (which is the whole receiver itself). In general you have the following
- possibilities for the parameter <zone> (depending on your receiver model).
-
-
mainzone - this is the main zone (standard)
-
zone2 - The second zone (Zone 2)
-
zone3 - The third zone (Zone 3)
-
zone4 - The fourth zone (Zone 4)
-
-
- Depending on your receiver model you have not all inputs available on these different zones.
- The module just offers the real available inputs.
-
- Example:
-
-
- define AV_Receiver YAMAHA_AVR 192.168.0.10 # If no zone is specified, the "Main Zone" will be used.
- attr AV_Receiver YAMAHA_AVR room Livingroom
-
- # Define the second zone
- define AV_Receiver_Zone2 YAMAHA_AVR 192.168.0.10 zone2
- attr AV_Receiver_Zone2 room Bedroom
-
- For each Zone you will need an own YAMAHA_AVR device, which can be assigned to a different room.
- Each zone can be controlled separatly from all other available zones.
-
-
-
-
- Set
-
- set <name> <command> [<parameter>]
-
- Currently, the following commands are defined; the available inputs are depending on the used receiver.
- The module only offers the real available inputs and scenes. The following input commands are just an example and can differ.
-
-
-
on - powers on the device
-
off - shuts down the device
-
input hdm1,hdmX,... - selects the input channel (only the real available inputs were given)
-
scene scene1,sceneX - select the scene
-
volume 0...100 - set the volume level in percentage
-
volumeStraight -80...15 - set the volume level in decibel
-
volumeUp [0-100] - increases the volume level by 5% or the value of attribute volumeSteps (optional the increasing level can be given as argument, which will be used instead)
-
volumeDown [0-100] - decreases the volume level by 5% or the value of attribute volumeSteps (optional the decreasing level can be given as argument, which will be used instead)
-
mute on|off|toggle - activates volume mute
-
statusRequest - requests the current status of the device
-
remoteControl up,down,... - sends remote control commands as listed below
-
-
-
-Remote control (not in all zones available, depending on your model)
-
- In many receiver models, inputs exist, which can't be used just by selecting them. These inputs needs
- a manual interaction with the remote control to activate the playback (e.g. Internet Radio, Network Streaming).
- For this application the following commands are available:
-
- Cursor Selection:
-
- remoteControl up
- remoteControl down
- remoteControl left
- remoteControl right
- remoteControl enter
- remoteControl return
-
- Optional attribute to disable the internal cyclic status update of the receiver. Manual status updates via statusRequest command is still possible.
-
- Possible values: 0 => perform cyclic status update, 1 => don't perform cyclic status updates.
- Optional attribute to define the default increasing and decreasing level for the volumeUp and volumeDown set command. Default value is 5%
-
-
- Generated Readings/Events:
-
-
input - The selected input source according to the FHEM input commands
-
inputName - The input description as seen on the receiver display
-
mute - Reports the mute status of the receiver or zone (can be "on" or "off")
-
power - Reports the power status of the receiver or zone (can be "on" or "off")
-
presence - Reports the presence status of the receiver or zone (can be "absent" or "present"). In case of an absent device, it cannot be controlled via FHEM anymore.
-
volume - Reports the current volume level of the receiver or zone in percentage values (between 0 and 100 %)
-
volumeStraight - Reports the current volume level of the receiver or zone in decibel values (between -80.5 and +15.5 dB)
-
state - Reports the current power state and an absence of the device (can be "on", "off" or "absent")
-
Input dependent Readings/Events:
-
currentChannel - Number of the input channel (SIRIUS only)
-
currentStation - Station name of the current radio station (available on NET RADIO, PANDORA
-
currentAlbum - Album name of the current song
-
currentArtist - Artist name of the current song
-
currentTitle - Title of the current song
-
playStatus - indicates if the input plays music or not
-
-
- Implementator's note
-
- The module is only usable if you activate "Network Standby" on your receiver. Otherwise it is not possible to communicate with the receiver when it is turned off.
-
-
- This module controls Blu-Ray players from Yamaha via network connection. You are able
- to switch your player on and off, query it's power state,
- control the playback, open and close the tray and send all remote control commands.
- Defining a YAMAHA_BD device will schedule an internal task (interval can be set
- with optional parameter <status_interval> in seconds, if not set, the value is 30
- seconds), which periodically reads the status of the player (power state, current disc, tray status,...)
- and triggers notify/filelog commands.
-
- Different status update intervals depending on the power state can be given also.
- If two intervals are given to the define statement, the first interval statement represents the status update
- interval in seconds in case the device is off, absent or any other non-normal state. The second
- interval statement is used when the device is on.
-
- Example:
-
- define BD_Player YAMAHA_BD 192.168.0.10
-
- # With custom status interval of 60 seconds
- define BD_Player YAMAHA_BD 192.168.0.10 60
-
- # With custom "off"-interval of 60 seconds and "on"-interval of 10 seconds
- define BD_Player YAMAHA_BD 192.168.0.10 60 10
-
-
-
-
-
- Set
-
- set <name> <command> [<parameter>]
-
- Currently, the following commands are defined.
-
-
-
on - powers on the device
-
off - shuts down the device
-
tray open,close - open or close the disc tray
-
statusRequest - requests the current status of the device
-
remoteControl up,down,... - sends remote control commands as listed in the following chapter
-
-Playback control commands
-
-
play - start playing the current media
-
pause - pause the current media playback
-
stop - stop the current media playback
-
skip forward,reverse - skip the current track or chapter
-
fast forward,reverse - fast forward or reverse playback
-
slow forward,reverse - slow forward or reverse playback
- Optional attribute change the response timeout in seconds for all queries to the player.
-
- Possible values: 1-5 seconds. Default value is 4 seconds.
-
- Generated Readings/Events:
-
-
input - The current playback source (can be "DISC", "USB" or "Network")
-
discType - The current type of disc, which is inserted (e.g. "No Disc", "CD", "DVD", "BD",...)
-
error - indicates an hardware error of the player (can be "none", "fan error" or "usb overcurrent")
-
power - Reports the power status of the player or zone (can be "on" or "off")
-
presence - Reports the presence status of the player or zone (can be "absent" or "present"). In case of an absent device, it cannot be controlled via FHEM anymore.
-
trayStatus - The disc tray status (can be "open" or "close")
-
state - Reports the current power state and an absence of the device (can be "on", "off" or "absent")
-
Input dependent Readings/Events:
-
currentChapter - Number of the current DVD/BD Chapter (only at DVD/BD's)
-
currentMedia - Name of the current file (only at USB)
-
playTimeCurrent - current timecode of played media
-
playTimeTotal - the total time of the current movie (only at DVD/BD's)
-
playStatus - indicates if the player plays media or not (can be "play", "pause", "stop", "fast fwd", "fast rev", "slow fwd", "slow rev")
-
-
- Implementator's note
-
-
Some older models (e.g. BD-S671) cannot be controlled over networked by delivery. A firmware update is neccessary to control theese models via FHEM
-
The module is only usable if you activate "Network Control" on your player. Otherwise it is not possible to communicate with the player.
-
-
-
-
-
-
-
ZWDongle
-
- This module serves a ZWave dongle, which is attached via USB or TCP/IP, and
- enables the use of ZWave devices (see also the ZWave
- module). It was tested wit a Goodway WD6001, but since the protocol is
- standardized, it should work with other devices too. A notable exception is
- the USB device from Merten.
-
-
- Define
-
- define <name> ZWDongle <device>
-
-
- Upon initial connection the module will get the homeId of the attached
- device. Since the DevIo module is used to open the device, you can also use
- devices connected via TCP/IP. See this paragraph on
- device naming details.
-
- Example:
-
addNode [on|off]
- Activate (or deactivate) inclusion mode. The controller (i.e. the dongle)
- will accept inclusion (i.e. pairing/learning) requests only while in this
- mode. After activating inclusion mode usually you have to press a switch
- three times within 1.5 seconds on the node to be included into the network
- of the controller. If autocreate is active, a fhem device will be created
- after inclusion.
-
-
removeNode [on|off]
- Activate (or deactivate) exclusion mode. Note: the corresponding fhem
- device have to be deleted manually.
-
-
createNode id
- Request the class information for the specified node, and create a fhem
- device upon reception of the answer. Used for previously included nodes,
- see the nodeList get command below.
-
-
-
-
-
- Get
-
-
nodeList
- return the list of included nodeIds. Can be used to recreate fhem-nodes
- with the createNode command.
-
-
homeId
- return the six hex-digit homeId of the controller.
-
-
caps, ctrlCaps, version
- return different controller specific information. Needed by developers
- only.
-
-
nodeInfo
- return node specific information. Needed by developers only.
-
-
-
raw
- Send raw data to the controller. Developer only.
- This module is used to control ZWave devices via FHEM, see www.z-wave.com on details for this device family.
- This module is a client of the ZWDongle module, which
- is directly attached to the controller via USB or TCP/IP.
-
-
- Define
-
- define <name> ZWave <homeId> <id> [classes]
-
-
- <homeId> is the homeId of the controller node, and id is the id of the
- slave node in the network of this controller.
- classes is a hex-list of ZWave device classes. This argument is usually
- specified by autocreate when creating a device. If you wish to manually
- create a device, use the classes attribute instead, see below for details.
- Defining a ZWave device the first time is usually done by autocreate.
-
- Example:
-
- define lamp ZWave 00ce2074 9
- attr lamp classes SWITCH_BINARY BASIC MANUFACTURER_SPECIFIC VERSION SWITCH_ALL ASSOCIATION METER CONFIGURATION ALARM
-
-
-
-
- Note: the sets/gets/generated events of a gven node depend on the classes
- supported by this node. If a node supports 3 classes, then the union of
- these sets/gets/events will be available for this node.
- Commands for battery operated nodes will be queues internally, and sent when
- the node sends a message. Answer to get commands appear then as events, the
- corresponding readings will be updated.
-
-
-
- Set
-
-
- Note: devices with on/off functionality support the set extensions.
-
-
Class ASSOCIATION
-
associationAdd groupId nodeId ...
- Add the specified list of nodeIds to the assotion group groupId. Note:
- upon creating a fhem-device for the first time fhem will automatically add
- the controller to the first association group of the node corresponding to
- the fhem device, i.e it issues a "set name associationAdd 1
- controllerNodeId"
-
-
associationDel groupId nodeId ...
- Remove the specified list of nodeIds from the assotion group groupId.
-
-
Class BASIC
-
basicValue value
- Send value (0-255) to this device. The interpretation is device dependent,
- e.g. for a SWITCH_BINARY device 0 is off and anything else is on.
-
-
Class CONFIGURATION
-
configByte cfgAddress 8bitValue
- configWord cfgAddress 16bitValue
- configLong cfgAddress 32bitValue
- Send a configuration value for the parameter cfgAddress. cfgAddress and
- value is node specific.
-
configDefault cfgAddress
- Reset the configuration parameter for the cfgAddress parameter to its
- default value. See the device documentation to determine this value.
-
-
Class SWITCH_BINARY
-
on
- switch the device on
-
off
- switch the device off
-
reportOn,reportOff
- activate/deactivate the reporting of device state changes to the
- association group.
-
-
Class SWITCH_MULTILEVEL
-
on, off, reportOn, reportOff
- the same as for SWITCH_BINARY.
-
dim value
- dim to the requested value (0..100)
-
-
Class THERMOSTAT_MODE
-
tmOff
-
tmCooling
-
tmHeating
-
tmManual
- set the thermostat mode to off, cooling, heating or manual.
-
-
-
Class WAKE_UP
-
wakeupInterval value
- Set the wakeup interval of battery operated devices to the given value in
- seconds. Upon wakeup the device sends a wakeup notification.
-
wakeupNoMoreInformation
- put a battery driven device into sleep mode.
-
-
-
-
-
- Get
-
-
-
Class ALARM
-
alarm alarmId
- return the value for alarmId. The value is device specific.
-
-
-
Class ASSOCIATION
-
association groupId
- return the list of nodeIds in the association group groupId in the form:
- assocGroup_X:Max Y, Nodes id,id...
-
-
- Class BASIC
-
basicStatus
- return the status of the node as basicReport:XY. The value (XY) depends on
- the node, e.g a SWITCH_BINARY device report 00 for off and FF (255) for on.
-
-
-
Class BATTERY
-
battery
- return the charge of the battery in %, as battery:value %
-
-
-
Class CONFIGURATION
-
config cfgAddress
- return the value of the configuration parameter cfgAddress. The value is
- device specific.
-
-
-
HRV_STATUS
-
hrvStatus
- report the current status (temperature, etc)
-
-
hrvStatusSupported
- report the supported status fields as a bitfield.
-
-
-
Class MULTI_CHANNEL
-
mcEndpoints
- return the list of endpoints available, e.g.:
- mcEndpoints: total 2, identical
-
-
mcCapability chid
- return the classes supported by the endpoint/channel chid. If the channel
- does not exists, create a FHEM node for it. Example:
- mcCapability_02:SWITCH_BINARY
- Note: This is the best way to create the secondary nodes of a
- MULTI_CHANNEL device. The device is only created for channel 2 or greater.
-
-
-
Class SENSOR_ALARM
-
alarm alarmType
- return the nodes alarm status of the requested alarmType. 00 = GENERIC,
- 01 = SMOKE, 02 = CO, 03 = CO2, 04 = HEAT, 05 = WATER, ff = returns the
- nodes first supported alarm type.
-
-
-
Class SENSOR_BINARY
-
sbStatus
- return the status of the node, as state:open or state:closed.
-
-
-
Class SENSOR_MULTILEVEL
-
smStatus
- request data from the node (temperature/humidity/etc)
-
-
-
Class SWITCH_BINARY
-
swbStatus
- return the status of the node, as state:on or state:off.
-
-
-
Class SWITCH_MULTILEVEL
-
swmStatus
- return the status of the node, as state:on, state:off or state:dim value.
-
-
-
Class THERMOSTAT_MODE
-
thermostatMode
- request the mode
-
-
-
Class THERMOSTAT_SETPOINT
-
setpoint
- request the setpoint
-
-
-
Class VERSION
-
version
- return the version information of this node in the form:
- Lib A Prot x.y App a.b
-
-
-
Class WAKE_UP
-
wakeupInterval
- return the wakeup interval in seconds, in the form
- wakeupReport:interval seconds target id
-
classes
- This attribute is needed by the ZWave module, as the list of the possible
- set/get commands depends on it. It contains a space separated list of
- class names (capital letters).
-
-
-
-
-
- Generated events:
-
-
-
Class ALARM
-
alarm_type_X:level Y
-
-
Class ASSOCIATION
-
assocGroup_X:Max Y Nodes A,B,...
-
- Class BASIC
-
basicReport:XY
-
-
Class BATTERY
-
battery:chargelevel %
-
-
Class CLOCK
-
clock:get
-
-
Class CONFIGURATION
-
config_X:Y
-
-
Class HRV_STATUS
-
outdoorTemperature: %0.1f C
-
supplyAirTemperature: %0.1f C
-
exhaustAirTemperature: %0.1f C
-
dischargeAirTemperature: %0.1f C
-
indoorTemperature: %0.1f C
-
indoorHumidity: %s %
-
remainingFilterLife: %s %
-
supportedStatus:
-
-
Class METER
-
energy:val [kWh|kVAh|pulseCount]
-
gas:val [m3|feet3|pulseCount]
-
water:val [m3|feet3|USgallons|pulseCount]
-
power:val W
-
-
Class MULTI_CHANNEL
-
endpoints:total X $dynamic $identical
-
mcCapability_X:class1 class2 ...
-
-
Class SENSOR_ALARM
-
alarm_type_X:level Y node $nodeID seconds $seconds
-
-
Class SENSOR_BINARY
-
state:open
-
state:closed
-
motion:00|ff
-
tamper:00|ff
-
-
-
Class SENSOR_MULTILEVEL
-
temperature $val [C|F]
-
generalPurpose $val %
-
luminance $val [%|Lux]
-
power $val [W|Btu/h]
-
humidity $val %
-
velocity $val [m/s|mph]
-
direction $val
-
atmosphericPressure $val [kPa|inchHg]
-
barometricPressure $val [kPa|inchHg]
-
solarRadiation $val W/m2
-
dewpoint $val [C|F]
-
rain $val [mm/h|in/h]
-
tideLevel $val [m|feet]
-
weight $val [kg|pound]
-
voltage $val [V|mV]
-
current $val [A|mA]
-
CO2-level $val ppm
-
airFlow $val [m3/h|cfm]
-
tankCapacity $val [l|cbm|usgal]
-
distance $val [m|cm|feet]
-
anglePosition $val [%|relN|relS]
-
-
Class SWITCH_BINARY
-
state:on
-
state:off
-
-
Class SWITCH_MULTILEVEL
-
state:on
-
state:off
-
state:dim value
-
-
Class THERMOSTAT_MODE
-
off
-
cooling
-
heating
-
manual
-
-
Class THERMOSTAT_SETPOINT
-
temperature:$temp [C|F] [heating|cooling]
-
-
Class VERSION
-
version:Lib A Prot x.y App a.b
-
-
Class WAKE_UP
-
wakeup:notification
-
wakeupReport:interval:X target:Y
-
-
-
-
-
-
apptime
-
- apptime
-
-
- apptime provides information about application procedure execution time.
- It is designed to identify long runner jobs causing latency as well as
- overall high cpu usage jobs
- No information about FHEM kernel times and delays will be provided.
- Once started apptime monitors tasks. User may reset counter during operation.
- apptime adds about 1% CPU load in average to FHEM.
- in order to remove apptime shutdown restart is necessary.
-
-
- Features:
-
-
apptime
- apptime is started with the its first call nad continously monitor operation.
- To unload apptime shutdown restart is necessary
-
apptime clear
- reset all counter and start fom Zero
-
apptime [count|funktion|average|clear|max|name|total] [all]
- display a table sorted by the field selected
- all will display the complete table while by default only the top lines are printed.
-
-
- Columns:
-
-
name
- name of the entity executing the procedure
- if it is a function called by InternalTimer the name starts with tmr-.
- by then it gives the name of the funktion to be called
-
-
function
- procedure name which was executed
- if it is an InternalTimer call it gives its calling parameter
-
-
max
- longest duration measured for this procedure in ms
-
count
- number of calls for this procedure
-
total
- accumulated duration of this procedure over all calls monitored
-
average
- average time a call of this procedure takes
-
maxDly
- maximum delay of a timer call to its schedules time. This column is not relevant
- for non-timer calls.
-
param Max call
- gives the parameter of the call with the max duration
-
-
-
-
-
-
at
-
-
- Start an arbitrary FHEM command at a later time.
-
-
-
- Define
-
- The optional + indicates that the specification is
- relative(i.e. it will be added to the current time).
- The optional * indicates that the command should be
- executed repeatedly.
- The optional {N} after the * indicates,that the command
- should be repeated N-times only.
- <timedet> is either HH:MM, HH:MM:SS or {perlfunc()}, where perlfunc
- must return a HH:MM or HH:MM:SS date. Note: {perlfunc()} may not contain
- any spaces or tabs.
-
-
-
- Examples:
-
- # absolute ones:
- define a1 at 17:00:00 set lamp on # fhem command
- define a2 at 17:00:00 { Log 1, "Teatime" } # Perl command
- define a3 at 17:00:00 "/bin/echo "Teatime" > /dev/console" # shell command
- define a4 at *17:00:00 set lamp on # every day
-
- # relative ones
- define a5 at +00:00:10 set lamp on # switch on in 10 seconds
- define a6 at +00:00:02 set lamp on-for-timer 1 # Blink once in 2 seconds
- define a7 at +*{3}00:00:02 set lamp on-for-timer 1 # Blink 3 times
-
- # Blink 3 times if the piri sends a command
- define n1 notify piri:on.* define a8 at +*{3}00:00:02 set lamp on-for-timer 1
-
- # Switch the lamp on from sunset to 11 PM
- define a9 at +*{sunset_rel()} set lamp on
- define a10 at *23:00:00 set lamp off
-
- # More elegant version, works for sunset > 23:00 too
- define a11 at +*{sunset_rel()} set lamp on-till 23:00
-
- # Only do this on weekend
- define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }
-
- # Switch lamp1 and lamp2 on from 7:00 till 10 minutes after sunrise
- define a13 at *07:00 set lamp1,lamp2 on-till {sunrise(+600)}
-
- # Switch the lamp off 2 minutes after sunrise each day
- define a14 at +{sunrise(+120)} set lamp on
-
- # Switch lamp1 on at sunset, not before 18:00 and not after 21:00
- define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on
-
-
-
- Notes:
-
-
if no * is specified, then a command will be executed
- only once, and then the at entry will be deleted. In
- this case the command will be saved to the statefile (as it
- considered volatile, i.e. entered by cronjob) and not to the
- configfile (see the save command.)
-
-
-
if the current time is greater than the time specified, then the
- command will be executed tomorrow.
-
-
For even more complex date handling you either have to call fhem from
- cron or filter the date in a perl expression, see the last example and
- the section Perl special.
-
-
-
-
-
-
-
- Set
N/A
-
-
- Get
N/A
-
-
- Attributes
-
-
-
disable
- Can be applied to at/watchdog/notify/FileLog devices.
- Disables the corresponding at/notify or FileLog device. Note:
- If applied to an at, the command will not be executed,
- but the next time will be computed.
-
-
-
disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM...
- Space separated list of HH:MM tupels. If the current time is between
- the two time specifications, the current device is disabled. Instead of
- HH:MM you can also specify HH or HH:MM:SS. To specify an interval
- spawning midnight, you have to specify two intervals, e.g.:
-
- 23:00-24:00 00:00-01:00
-
-
-
-
-
skip_next
- Used for at commands: skip the execution of the command the next
- time.
-
-
-
alignTime
- Applies only to relative at definitions: adjust the time of the next
- command execution so, that it will also be executed at the desired
- alignTime. The argument is a timespec, see above for the
- definition.
- Example:
-
- # Make sure that it chimes when the new hour begins
- define at2 at +*01:00 set Chime on-for-timer 1
- attr at2 alignTime 00:00
-
-
-
-
-
-
-
-
-
-
autocreate
-
-
- Automatically create not yet defined fhem devices upon reception of a message
- generated by this device. Note: devices which are polled (like the EMEM/EMWZ
- accessed through the EM1010PC) will NOT be automatically created.
-
-
-
-
- Define
-
- define <name> autocreate
-
-
- By defining an instance, the global attribute autoload_undefined_devices
- is set, so that modules for unknnown devices are automatically loaded.
- The autocreate module intercepts the UNDEFINED event generated by each
- module, creates a device and optionally also FileLog and SVG
- entries.
- Note 1: devices will be created with a unique name, which contains
- the type and a unique id for this type. When renaming
- the device, the automatically created filelog and SVG devices
- will also be renamed.
- Note 2: you can disable the automatic creation by setting the
- disable attribute, in this case only the rename
- hook is active, and you can use the createlog
- command to add FileLog and SVG to an already defined device.
- Note 3: It makes no sense to create more than one instance of this
- module.
-
-
autosave
- After creating a device, automatically save the config file with the
- command save command. Default is 1 (i.e. on), set
- it to 0 to switch it off.
-
-
-
device_room
- "Put" the newly created device in this room. The name can contain the
- wildcards %TYPE and %NAME, see the example above.
-
-
-
filelog
- Create a filelog associated with the device. The filename can contain
- the wildcards %TYPE and %NAME, see the example above. The filelog will
- be "put" in the same room as the device.
-
-
-
weblink
- Create an SVG associated with the device/filelog.
-
-
-
weblink_room
- "Put" the newly created SVG in this room. The name can contain the
- wildcards %TYPE and %NAME, see the example above.
ignoreTypes
- This is a regexp, to ignore certain devices, e.g. you neighbours FHT.
- You can specify more than one, with usual regexp syntax, e.g.
- attr autocreate ignoreTypes CUL_HOERMANN.*|FHT_1234|CUL_WS_7
-
-
-
-
-
-
- createlog
-
- Use this command to manually add a FileLog and an SVG to an existing
- device.
- This command is part of the autocreate module.
-
-
-
-
- usb
-
- Usage:
-
- usb scan
- usb create
-
- This command will scan the /dev directory for attached USB devices, and
- will try to identify them. With the argument scan you'll get back a list
- of fhem commands to execute, with the argument create there will be no
- feedback, and the devices will be created instead.
-
- Note that switching a CUL to HomeMatic mode is still has to be done
- manually.
-
- On Linux it will also check with the lsusb command, if unflashed CULs are
- attached. If this is the case, it will call CULflash with the appropriate
- parameters (or display the CULflash command if scan is specified). The
- usb command will only flash one device per call.
-
- This command is part of the autocreate module.
-
-
-
-
-
-
average
-
-
- Compute additional average, minimum and maximum values for current day and
- month.
-
-
-
-
- Define
-
- define <name> average <regexp>
-
-
- The syntax for <regexp> is the same as the
- regexp for notify.
- If it matches, and the event is of the form "eventname number", then this
- module computes the daily and monthly average, maximum and minimum values
- and generates events of the form
-
-
- at the beginning of the next day or month respectively.
- The current average, minimum, maximum and the cumulated values are stored
- in the device readings.
-
-
-
- Example:
- # Compute the average, minimum and maximum for the temperature events of
- # the ws1 device
- define avg_temp_ws1 average ws1:temperature.*
-
- # Compute the average, minimum and maximum for each temperature event
- define avg_temp_ws1 average .*:temperature.*
-
- # Compute the average, minimum and maximum for all temperature and humidity events
- # Events:
- # ws1 temperature: 22.3
- # ws1 humidity: 67.4
- define avg_temp_ws1 average .*:(temperature|humidity).*
-
- # Compute the same from a combined event. Note: we need two average
- # definitions here, each of them defining the name with the first
- # paranthesis, and the value with the second.
- #
- # Event: ws1 T: 52.3 H: 67.4
- define avg_temp_ws1_t average ws1:(T):.([-\d\.]+).*
- define avg_temp_ws1_h average ws1:.*(H):.([-\d\.]+).*
-
- backup
-
- The complete FHEM directory (containing the modules), the WebInterface
- pgm2 (if installed) and the config-file will be saved into a .tar.gz
- file by default. The file is stored with a timestamp in the
- modpath/backup directory or to a directory
- specified by the global attribute backupdir.
- Note: tar and gzip must be installed to use this feature.
-
-
- If you need to call tar with support for symlinks, you could set the
- global attribute backupsymlink to everything
- else as "no".
-
-
- You could pass the backup to your own command / script by using the
- global attribute backupcmd.
-
-
-
-
-
-
-
cloneDummy
-
- This module provides a cloneDummy which will receive readings from any other device sending data to fhem.
- E.g. may be used in an FHEM2FHEM environment
-
-
-
- Define
-
- parameter is optional and is a regexp which must match the command
- entered.
- If it matches, then the specified newcommand will be executed, which is
- a fhem command (see Fhem command types for
- details). Like in the notify commands, $EVENT or
- $EVTPART may be used, in this case representing the command arguments as
- whole or the unique words entered.
- Notes:
-
newcommand may contain cmd, but recursion is not allowed.
-
if there are multiple definitions, they are checked/executed in
- alphabetically sorted name oder.
-
- Examples:
-
- define s1 cmdalias shutdown update AS save;;shutdown
- define s2 cmdalias set lamp .* AS { Log 1, "$EVENT";; fhem("set $EVENT") }
-
-
-
-
-
-
-
configDB
-
- This is the core backend library for configuration from SQL database.
- See configdb command documentation for detailed info.
-
-
-
-
configdb
-
- Starting with version 5079, fhem can be used with a configuration database instead of a plain text file (e.g. fhem.cfg).
- This offers the possibility to completely waive all cfg-files, "include"-problems and so on.
- Furthermore, configDB offers a versioning of several configuration together with the possibility to restore a former configuration.
- Access to database is provided via perl's database interface DBI.
-
- Prerequisits / Installation
-
-
Please install perl package Text::Diff if not already installed on your system.
-
You must have access to a SQL database. Supported database types are SQLITE, MYSQL and POSTGRESQL.
-
The corresponding DBD module must be available in your perl environment,
- e.g. sqlite3 running on a Debian systems requires package libdbd-sqlite3-perl
-
Create an empty database, e.g. with sqlite3:
-
- mba:fhem udo$ sqlite3 configDB.db
-
- SQLite version 3.7.13 2012-07-17 17:46:21
- Enter ".help" for instructions
- Enter SQL statements terminated with a ";"
- sqlite> pragma auto_vacuum=2;
- sqlite> .quit
-
- mba:fhem udo$
-
-
The database tables will be created automatically.
-
Create a configuration file containing the connection string to access database.
-
- IMPORTANT:
-
-
This file must be named "configDB.conf"
-
This file must be located in your fhem main directory, e.g. /opt/fhem
-
-
-
-## for MySQL
-################################################################
-#%dbconfig= (
-# connection => "mysql:database=configDB;host=db;port=3306",
-# user => "fhemuser",
-# password => "fhempassword",
-#);
-################################################################
-#
-## for PostgreSQL
-################################################################
-#%dbconfig= (
-# connection => "Pg:database=configDB;host=localhost",
-# user => "fhemuser",
-# password => "fhempassword"
-#);
-################################################################
-#
-## for SQLite (username and password stay empty for SQLite)
-################################################################
-#%dbconfig= (
-# connection => "SQLite:dbname=/opt/fhem/configDB.db",
-# user => "",
-# password => ""
-#);
-################################################################
-
-
-
- Start with a complete new "fresh" fhem Installation
-
- It's easy... simply start fhem by issuing following command:
-
perl fhem.pl configDB
-
- configDB is a keyword which is recognized by fhem to use database for configuration.
-
- That's all. Everything (save, rereadcfg etc) should work as usual.
-
-
-
- or:
-
-
- Migrate your existing fhem configuration into the database
-
- It's easy, too...
-
-
start your fhem the last time with fhem.cfg
-
perl fhem.pl fhem.cfg
-
-
transfer your existing configuration into the database
-
enter
configdb migrate
-
- into frontend's command line
- Be patient! Migration can take some time, especially on mini-systems like RaspberryPi or Beaglebone.
- Completed migration will be indicated by showing database statistics.
- Your original configfile will not be touched or modified by this step.
-
shutdown fhem
-
restart fhem with keyword configDB
-
perl fhem.pl configDB
- configDB is a keyword which is recognized by fhem to use database for configuration.
-
- That's all. Everything (save, rereadcfg etc) should work as usual.
-
-
-
- Additional functions provided
-
- A new command configdb is propagated to fhem.
- This command can be used with different parameters.
-
-
-
configdb attr [attribute] [value]
- Provides the possibility to pass attributes to backend and frontend.
-
- configdb attr private 1 - set the attribute named 'private' to value 1.
-
- configdb attr private - delete the attribute named 'private'
-
- configdb attr - show all defined attributes.
-
- Currently, only one attribute is supported. If 'private' is set to 1 the user and password info
- will not be shown in 'configdb info' output.
-
-
-
configdb backup
- Replaces fhem's default backup process, since backup is no longer supported
- with activated configDB.
-
- Important:
- Please be aware you are responsible for data backup of your database yourself!
- The backup command can and will not do this job for you!
-
-
-
configdb diff <device> <version>
- Compare configuration dataset for device <device>
- from current version 0 with version <version>
- Example for valid request:
-
- get configDB telnetPort 1
-
- will show a result like this:
-
-compare device: telnetPort in current version 0 (left) to version: 1 (right)
-+--+--------------------------------------+--+--------------------------------------+
-| 1|define telnetPort telnet 7072 global | 1|define telnetPort telnet 7072 global |
-* 2|attr telnetPort room telnet * | |
-+--+--------------------------------------+--+--------------------------------------+
-
-
configdb export <targetFilename> [version];
- Exports specified version from config database into file <targetFilename>
- Default version if not specified = 0
- The target file can be imported again, if needed.
-
-
-
configdb info
- Returns some database statistics
-
---------------------------------------------------------------------------------
- configDB Database Information
---------------------------------------------------------------------------------
- dbconn: SQLite:dbname=/opt/fhem/configDB.db
- dbuser:
- dbpass:
- dbtype: SQLITE
---------------------------------------------------------------------------------
- fhemconfig: 7707 entries
-
- Ver 0 saved: Sat Mar 1 11:37:00 2014 def: 293 attr: 1248
- Ver 1 saved: Fri Feb 28 23:55:13 2014 def: 293 attr: 1248
- Ver 2 saved: Fri Feb 28 23:49:01 2014 def: 293 attr: 1248
- Ver 3 saved: Fri Feb 28 22:24:40 2014 def: 293 attr: 1247
- Ver 4 saved: Fri Feb 28 22:14:03 2014 def: 293 attr: 1246
---------------------------------------------------------------------------------
- fhemstate: 1890 entries saved: Sat Mar 1 12:05:00 2014
---------------------------------------------------------------------------------
-
-Ver 0 always indicates the currently running configuration.
-
-
-
configdb list [device] [version]
- Search for device named [device] in configuration version [version]
- in database archive.
- Default value for [device] = % to show all devices.
- Default value for [version] = 0 to show devices from current version.
- Examples for valid requests:
-
- get configDB list
- get configDB list global
- get configDB list '' 1
- get configDB list global 1
-
-
-
configdb recover <version>
- Restores an older version from database archive.
- set configDB recover 3 will copy version #3 from database
- to version #0.
- Original version #0 will be lost.
- Important!
- The restored version will NOT be activated automatically!
- You must do a rereadcfg or - even better - shutdown restart yourself.
-
-
-
configdb reorg [keep]
- Deletes all stored versions with version number higher than [keep].
- Default value for optional parameter keep = 3.
- This function can be used to create a nightly running job for
- database reorganisation when called from an at-Definition.
-
-
-
configdb uuid
- Returns a uuid that can be used for own purposes.
-
-
-
-
-
- Author's notes
-
-
-
You can find two template files for datebase and configfile (sqlite only!) for easy installation.
- Just copy them to your fhem installation directory (/opt/fhem) and have fun.
-
-
The frontend option "Edit files"->"config file" will be removed when running configDB.
-
-
Please be patient when issuing a "save" command
- (either manually or by clicking on "save config").
- This will take some moments, due to writing version informations.
- Finishing the save-process will be indicated by a corresponding message in frontend.
-
-
There still will be some more (planned) development to this extension,
- especially regarding some perfomance issues.
-
-
Have fun!
-
-
-
-
-
-
dewpoint
-
- Dewpoint calculations. Offers three different ways to use dewpoint:
-
-
dewpoint
- Compute additional event dewpoint from a sensor offering temperature and humidity.
-
fan
- Generate a event to turn a fan on if the outside air has less water than the inside.
-
alarm
- Generate a mold alarm if a reference temperature is lower that the current dewpoint.
- Calculates dewpoint for device <devicename-regex> from temperature and humidity
- and write it to a new reading named dewpoint.
- If optional <temp_name>, <hum_name> and <new_name> is specified
- then read temperature from reading <temp_name>, humidity from reading <hum_name>
- and write the calculated dewpoint to reading <new_name>.
- If <temp_name> is T then use temperature from state T: H:, add <new_name> to the state.
-
-
-
- Example:
- # Compute the dewpoint for the temperature/humidity
- # events of the temp1 device and generate reading dewpoint.
- define dew_temp1 dewpoint dewpoint temp1
- define dew_temp1 dewpoint dewpoint temp1 temperature humidity dewpoint
-
- # Compute the dewpoint for the temperature/humidity
- # events of all devices offering temperature and humidity
- # and generate reading dewpoint.
- define dew_all dewpoint dewpoint .*
- define dew_all dewpoint dewpoint .* temperature humidity dewpoint
-
- # Compute the dewpoint for the temperature/humidity
- # events of the device Aussen_1 offering temperature and humidity
- # and insert is into STATE.
- define dew_state dewpoint dewpoint Aussen_1 T H D
-
- # Compute the dewpoint for the temperature/humidity
- # events of all devices offering temperature and humidity
- # and insert the result into the STATE.
- # Example STATE: "T: 10 H: 62.5" will change to
- # "T: 10 H: 62.5 D: 3.2"
- define dew_state dewpoint dewpoint .* T H D
-
-
- May be used to turn an fan on or off if the outside air has less water.
-
-
- Generate event "fan: on" if (dewpoint of <devicename-outside>) + <diff_temp> is lower
- than dewpoint of <devicename> and temperature of <devicename-outside> is >= min-temp
- and reading "fan" was not already "on". The event will be generated for <devicename>. Parameter <diff-temp> is optional
-
Generate event "fan: off": else and if reading "fan" was not already "off".
-
-
-
-
- Example:
- # Generate event "fan: on" when dewpoint of Aussen_1 is first
- # time lower than basement_tempsensor and outside temperature is >= 0
- # and change it to "fan: off" is this condition changes.
- # Set a switch on/off (fan_switch) depending on the state.
- define dew_fan1 dewpoint fan basement_tempsensor Aussen_1 0
- define dew_fan1_on notify basement_tempsensor.*fan:.*on set fan_switch on
- define dew_fan1_off notify basement_tempsensor.*fan:.*off set fan_switch off
-
-
- Generate a mold alarm if a reference temperature is lower that the current dewpoint.
-
-
- Generate reading/event "alarm: on" if temperature of <devicename-reference> - <diff-temp> is lower
- than dewpoint of <devicename> and reading "alarm" was not already "on". The event will be generated for <devicename>.
-
Generate reading/event "alarm: off" if temperature of <devicename-reference> - <diff-temp> is higher than dewpoint of <devicename> and reading "alarm" was not already "off".
-
-
-
-
- Example:
- # Using a wall temperature sensor (wallsensor) and a temp/hum sensor
- # (roomsensor) to alarm if the temperature of the wall is lower than
- # the dewpoint of the air. In this case the water of the air will
- # condense on the wall because the wall is cold.
- # Set a switch on (alarm_siren) if alarm is on using notify.
- define dew_alarm1 dewpoint alarm roomsensor wallsensor 0
- define roomsensor_alarm_on notify roomsensor.*alarm:.*on set alarm_siren on
- define roomsensor_alarm_off notify roomsensor.*alarm:.*off set alarm_siren off
-
- # If you do not have a temperature sensor in/on the wall, you may also
- # compare the rooms dewpoint to the temperature of the same or another
- # inside sensor. Alarm is temperature is 5 degrees colder than the
- # inside dewpointinside.
- define dev_alarm2 dewpoint alarm roomsensor roomsensor 5
-
-
max_timediff
- Maximum time difference in seconds allowed between the temperature and humidity values for a device. dewpoint uses the Readings for temperature or humidity if they are not delivered in the event. This is necessary for using dewpoint with event-on-change-reading. Also needed for sensors that do deliver temperature and humidity in different events like for example technoline sensors TX3TH.
-If not set default is 1 second.
-
- Examples:
-# allow maximum time difference of 60 seconds
-define dew_all dewpoint dewpoint .*
-attr dew_all max_timediff 60
-
-
-
-
-
-
dummy
-
-
- Define a dummy. A dummy can take via set any values.
- Used for programming.
-
-
-
- Define
-
- define <name> dummy
-
-
- Example:
-
- define myvar dummy
- set myvar 7
-
-
-
-
-
- Set
-
- set <name> <value>
- Set any value.
-
-
-
-
- Get
N/A
-
-
- Attributes
-
-
setList
- Space separated list of commands, which will be returned upon "set name ?",
- so the FHEMWEB frontend can construct a dropdown and offer on/off
- switches. Example: attr dummyName setList on off
-
- Collect event types for all devices. This service is used by frontends.
- The filename is used to store the collected events before shutdown.
- More than one instance of eventTypes should not be necessary.
- Examples:
-
- define et eventTypes log/eventTypes.txt
-
-
-
-
-
-
- Set
N/A
-
-
- Get
-
-
list [devicename]
- return the list of collected event types for all devices or for
- devicename if specified.
-
- fheminfo [send]
-
-
- fheminfo displays information about the system and FHEM definitions.
-
-
- The optional parameter send transmitts the collected data
- to a central server in order to support the development of FHEM. The
- transmitted data is processed graphically. The results can be viewed
- on http://fhem.de/stats/statistics.cgi.
- Based on the IP address, the approximate location is determined with
- an accuracy of about 40-80 km. The IP address is not saved.
-
-
- Features:
-
-
Operating System Information
-
Hardware architecture
-
Installed Perl version
-
Installed FHEM release and branch
-
Defined modules (only official FHEM Modules are counted)
-
-
-
- Attributes
-
-
- The following attributes are used only in conjunction with the
- send parameter. They are set on attr global.
-
-
-
-
uniqueID
- A randomly generated ID (16 pairs of hash values), e.g.
- 87c5cca38dc75a4f388ef87bdcbfbf6f which is assigned to the transmitted
- data to prevent duplicate entries.
-
- The uniqueID is stored automatically in a file named FhemUtils/uniqueID
- in FHEM's modules path.
-
- IMPORTANT NOTE:
-
- Every installation of FHEM should have to have his own unique ID.
-
- Please do not modify, move or delete this file! You should always backup this file
- (this is normally done by the update command automatically) and please restore
- this file to the same path (FhemUtils in FHEM's modules path), if you plan to
- reinstall your FHEM installation. This prevents duplicate entries for identical
- installations on the same hardware in the statistics.
-
- Otherwise, please use different unique IDs for each installation of FHEM on different
- hardware, e.g. one randomly generated unique ID for FRITZ!Box, another one for the first
- Raspberry Pi, another one for the second Raspberry Pi, etc.
-
- Thanks for your support!
-
-
-
sendStatistics
- This attribute is used in conjunction with the update command.
-
- onUpdate: transfer of data on every update (recommended setting).
-
- manually: manually transfer of data via the fheminfo send command.
-
- never: prevents transmission of data at anytime.
-
-
-
-
-
-
-
geodata
-
-
- Collect some location based data from various internet sources.
- Data will be updated once an hour.
-
-
openweathermap will always be used.
-
wunderground api will be used, if wunderground api key is provided by attribute.
-
google api will be used, if google api key is provided by attribute.
- Currently google's elevation api and timezone api are used, so check access to those apis for your api key.
-
-
-
-
- Define
-
-
define <location> latitude longitude
-
-
-
- Set
-
n/a
-
-
-
- Get
-
n/a
-
-
-
- Attributes
-
-
-
geo_owoGetUrl - used to correct owo api url manually, normally not needed.
-
geo_wuApiKey - enter your wunderground api key to access wunderground data.
-
geo_googleApiKey - enter your google api key to access google api.
-
geo_language:de,en - select language to be used if supported by api.
-
-
-
-
-
-
-
-
holiday
-
-
- Define
-
- define <name> holiday
-
- Define a set of holidays. The module will try to open the file
- <name>.holiday in the modpath/FHEM directory.
- If entries in the holiday file match the current day, then the STATE of
- this holiday instance displayed in the list command
- will be set to the corresponding values, else the state is set to the text
- none. Most probably you'll want to query this value in some perl script:
- see Value() in the perl section or the global attribute
- holiday2we. The file will be reread once
- every night, to compute the value for the current day, and by each get
- command (see below).
-
-
- Holiday file definition:
- The file may contain comments (beginning with #) or empty lines.
- Significant lines begin with a number (type) and contain some space
- separated words, depending on the type. The different types are:
-
5
- Date relative, weekday fixed holiday. Arguments: <nth>
- <weekday> <month> <day> < holiday-name>
- Note that while +0 or -0 as offsets are not forbidden, their behaviour
- is undefined in the sense that it might change without notice.
- Examples:
-
- 5 -1 Wed 11 23 Buss und Bettag (first Wednesday before Nov, 23rd)
- 5 1 Mon 01 31 First Monday after Jan, 31st (1st Monday in February)
-
-
-
- See also he.holiday in the contrib directory for official holidays in the
- german country of Hessen, and by.holiday for the Bavarian definition.
-
-
-
-
- Set
N/A
-
-
- Get
-
- get <name> <MM-DD>
- get <name> yesterday
- get <name> today
- get <name> tomorrow
-
- Return the holiday name of the specified date or the text none.
-
-
-
-
-
- Attributes
N/A
-
-
-
-
-
mailcheck
-
- Watches a mailbox with imap idle and for each new mail triggers an event with the subject of this mail.
- This can be used to send mails *to* FHEM and react to them from a notify. Application scenarios are for example
- a geofencing apps on mobile phones, networked devices that inform about warning or failure conditions by e-mail or
- (with a little logic in FHEM) the absence of regular status messages from such devices and so on.
-
- Notes:
-
-
Mail::IMAPClient and IO::Socket::SSL and IO::Socket::INET hast to be installed on the FHEM host.
-
Probably only works reliably if no other mail programm is marking messages as read at the same time.
-
If you experience a hanging system caused by regular forced disconnects of your internet provider you
- can disable and enable the mailcheck instance with an at.
-
If MIME::Parser is installed non ascii subjects will be docoded to utf-8
-
If MIME::Parser and Mail::GnuPG are installed gpg signatures can be checked and mails from unknown senders can be ignored.
delete_message
- 1 -> delete message after Subject reading is created
-
interval
- the interval in seconds used to trigger an update on the connection.
- if idle is supported the defailt is 600, without idle support the default is 60. the minimum is 60.
interval
- the interval in seconds used to check for new values.
-
disable
- 1 -> stop polling
-
-
-
-
-
notice
-
- notice [confirm [value]|list [<keyword>]|reset [yes]|view <id> [noheader|[de|en]]]
-
- View and confirmation of system messages.
-
-
- During an update or a system start from FHEM sometimes it is necessary to
- inform the user about important changes or additions. It may be necessary
- to confirm a system message by the user.
-
-
- By entering the command 'notice' a list of all messages is displayed.
- Are messages available in different languages, they are ordered by language.
-
- Example:
-
- fhem> notice
- ==> Language: de
- ID Published Expired Confirmed Description
- advice-20130128-002 actually never not needed kurze beschreibung
- update-20130128-002 31.01.2013 01.02.2013 no kurze beschreibung
-
- ==> Language: en
- ID Published Expired Confirmed Description
- advice-20130128-001 actually never no short description
- advice-20130128-002 actually never not needed short description
- update-20130128-001 actually never no short description
- update-20130128-002 31.01.2013 01.02.2013 no short description
-
- By entering 'notice list <keyword>' the output of the list contains only
- available messages that starts with '<keyword>'.
-
- Example:
-
- fhem> notice list update
- ==> Language: de
- ID Published Expired Confirmed Description
- update-20130128-002 31.01.2013 01.02.2013 no kurze beschreibung
-
- ==> Language: en
- ID Published Expired Confirmed Description
- update-20130128-001 actually never no short description
- update-20130128-002 31.01.2013 01.02.2013 no short description
-
- To display a single message, enter the command 'notice view <id>' where id
- is the Identifier of the message. You can use the optional parameter noheader
- or the language codes de or en to display the message
- without the header informations or in your prefered language if available.
-
- Example:
-
- fhem> notice view advice-20130128-002 de
- ID : advice-20130128-002
- From : M. Fischer
- Date : 28.01.2013
- Expire : 0
- Title : kurze beschreibung
- ### Start of Text
- test-advice
-
- dies ist ein test
-
- 001
- ### End of Text
-
- If it is necessary to confirm a message, this is be done by entering 'notice confirm <id> [value]'.
- The optional argument value will also be stored with the confirmation.
-
- Example:
-
- Sometimes it is necessary to reset all confirmations. This is be done by entering
- 'notice reset'.
-
- Example:
-
- fhem> notice reset
- This command delete all confirmations.
- If you really want to do this, call 'notice reset yes'
-
-
- For developers only:
-
-
- notice [condition <id>|get <keyword> <value>|position <id>]
-
-
- These arguments are normally not needed by any user.
-
-
- A message may optionally contains one or more code snippets. The argument condition supplies the determined
- value(s) of the embedded test(s) as a key:value pair. If more than one pair returned, they they are seperated by |.
- It is possible to define your own rules for a condition, like !empty or >>5 and so on. An example
- of a condition is shown in the below example message file.
- Example:
-
- The argument get, followed by a keyword and a number from 0 to 8, returns a
- comma seperated list of message ids.
- The possible outputs are:
-
-
0 returns a list of all messages.
-
1 returns a list of unconfirmed messages.
-
2 returns a list of messages that are not expired.
-
3 returns a list of messages that are not expired and unconfirmed.
-
4 returns a list of published messages.
-
5 returns a list of unconfirmed and published messages.
-
6 returns a list of published messages that are not expired.
-
7 returns a list of published, unconfirmed and not expired messages.
-
8 returns a list of confirmed messages.
-
- Example:
-
- fhem> notice get all 2
- advice-20130128-001,advice-20130128-002,update-20130128-001,update-20130128-002
-
- The argument position followed by an <id> returns the view position of a message if defined.
-
- Example:
-
- fhem> notice position update-20130128-001
- before
-
- Example of a message file:
-
- # FROM: M. Fischer
- # DATE: 28.01.2013
- # CONFIRM: 1
- # PUBLISH: 31.01.2013
- # EXPIRE: 01.02.2013
- # KEY_1: sendStatistics
- # VAL_1: AttrVal("global","sendStatistics",undef);
- # CON_1: !empty
- # KEY_2: configfile
- # VAL_2: AttrVal("global","configfile",undef);
- # POSITION: top
- # TITLE_DE: kurze beschreibung
- # NOTICE_DE
- Hinweis:
-
- dies ist ein test
- # TITLE_EN: short description
- # NOTICE_EN
- Advice:
-
- this is a test
-
- The keywords 'FROM, DATE, CONFIRM, PUBLISH, EXPIRE, TITLE_DE, TITLE_EN, NOTICE_DE, NOTICE_EN' are fixed.
- It is possible to add any key:value string to these files. Also it is possible to set only one or both keywords of
- 'TITLE_DE, TITLE_EN' and 'NOTICE_DE, NOTICE_EN'.
-
-
-
-
notify
-
-
-
-
- Define
-
- define <name> notify <pattern> <command>
-
- Execute a command when received an event for the definition<pattern>. If
- <command> is enclosed in {}, then it is a perl expression, if it is
- enclosed in "", then it is a shell command, else it is a "plain" fhem.pl
- command (chain). See the trigger command for
- testing it.
-
- Examples:
-
<pattern> is either the name of the triggering
- device, or devicename:event.
-
-
<pattern> must completely (!)
- match either the device name, or the compound of the device name and the
- event. To identify the events use "inform" command in telnet or "Event
- Monitor" in FHEMWEB.
-
in the command section you can access the event:
-
-
The variable $EVENT will contain the complete event, e.g.
- measured-temp: 21.7 (Celsius)
-
$EVTPART0,$EVTPART1,$EVTPART2,etc contain the space separated event
- parts (e.g. $EVTPART0="measured-temp:", $EVTPART1="21.7",
- $EVTPART2="(Celsius)". This data is available as a local
- variable in perl, as environment variable for shell scripts, and will
- be textually replaced for FHEM commands.
-
$NAME contains the device triggering the event, e.g.
- myFht
-
-
-
Note: the following is deprecated and will be removed in a future
- release. The described replacement is attempted if none of the above
- variables ($NAME/$EVENT/etc) found in the command.
-
-
The character % will be replaced with the received
- event, e.g. with on or off or
- measured-temp: 21.7 (Celsius) It is advisable to put
- the % into double quotes, else the shell may get a syntax
- error.
-
-
The character @ will be replaced with the device
- name.
-
-
To use % or @ in the text itself, use the double mode (%% or
- @@).
-
-
Instead of % and @, the parameters
- %EVENT (same as %), %NAME (same
- as @) and %TYPE (contains the device type,
- e.g. FHT) can be used. The space separated event "parts"
- are available as %EVTPART0, %EVTPART1, etc. A single %
- looses its special meaning if any of these parameters appears in the
- definition.
-
-
-
To use database logging, define a dblog instance and change the
- $dbconn parameter in the file.
-
-
Following special events will be generated for the device "global"
-
-
INITIALIZED after initialization is finished.
-
DEFINED <devname> after a device is defined.
-
DELETED <devname> after a device was deleted.
-
RENAMED <old> <new> after a device was renamed.
-
UNDEFINED <defspec> upon reception of a message for an
- undefined device.
-
-
-
Notify can be used to store macros for manual execution. Use the trigger command to execute the macro.
- E.g.
- fhem> define MyMacro notify MyMacro { Log 1, "Hello"}
- fhem> trigger MyMacro
-
forwardReturnValue
- Forward the return value of the executed command to the caller,
- default is disabled (0). If enabled (1), then e.g. a set command which
- triggers this notify will also return this value. This can cause e.g
- FHEMWEB to display this value, when clicking "on" or "off", which is
- often not intended.
-
-
showTriggerTime
- Replace STATE content 'active' by timestamp of last execution.
-
-
-
-
-
-
-
openweathermap
-
-
- Prerequisits
-
-
-
Module uses following additional Perl modules:
- XML::Simple, JSON
- If not already installed in your environment, please install them using appropriate commands from your environment.
- Use of JSON is optional. You can activate it by setting attribute owoUseXml to 0
-
please check global attributes latitude, longitude and altitude are set correctly
-
you can use all task alone, in any combination or all together
-
-
-
-
- Define
-
-
- define <name> openweathermap
-
- This module provides connection to openweathermap-network www.openweathermap.org (owo)
- You can use this module to do three different tasks:
-
-
-
1. send weather data from your own weather station to owo network.
-
2. set any weather data in owo network as datasource for your fhem installation. Data from this station will be updated periodically.
-
3. retrieve weather data from any weather station in owo network once. (same as 2. but without update)
- <yourOpenweathermapApiKey> - find it in your owo account! If set, it will be used in all owo requests.
-
owoDebug
- <0|1> this attribute must be defined and set to 0 to start sending own weather data to owo network. Otherwise you can find all data as debug informations in logfile.
-
owoGetUrl
- <owoApiUrl> - current URL to owo api. If this url changes, you can correct it here unless updated version of 98_openweather becomes available.
-
owoInterval
- <intervalSeconds> - define the interval used for sending own weather data and for updating SET station. Default = 1800sec. If deleted, default will be used.
- Please do not set interval below 600 seconds! This regulation is defined by openweathermap.org.
- Values below 600 will be corrected to 600.
-
owoProxy
- <proxyAddress> - define a proxy server address, please give full url and port, e.g. http://192.168.111.222:8080
-
owoStation
- <yourStationName> - define the station name to be used in "my stats" in owo account
-
owoUser
- <user:password> - define your username and password for owo access here
-
owoRaw
- <0|1> - defines wether JSON date from owo will be shown in an additional reading (e.g. to use it for own presentations)
-
owoSendUrl
- Current URL to post your own data. If this url changes, you can correct it here unless updated version of 98_openweather becomes available.
-
owoTimestamp
- <0|1> - defines whether date/time readings show timestamps or localtime-formatted informations
-
owoSrc00 ... owoSrc19
- Each of this attributes contains information about weather data to be sent in format owoParam:sensorName:readingName:offset
- Example: attr owo owoSrc00 temp:outside:temperature will define an attribut owoSrc00, and
- reading "temperature" from device "outside" will be sent to owo network als paramater "temp" (which indicates current temperature)
- Parameter "offset" will be added to the read value (e.g. necessary to send dewpoint - use offset 273.15 to send correct value)
-
owoUseXml
- <0|1> - defines wether data must be decoded from XML, e.g. JSON not available on Fritzbox
-
-
- Generated Readings/Events:
-
-
state - current device state (defined|active)
-
c_<readingName> - weather data from SET weather station. Readings will be updated periodically
-
g_<readingName> - weather data from GET command. Readings will NOT be updated periodically
-
my_lastSent - time of last upload to owo network
-
my_<readingName> - all readings from own weather station. These readings will be sent to owo network.
-
-
- Author's notes
-
-
further informations about sending your own weather data to owo: Link
-
further informations about owo location search: Link
- The panStamp is a family of RF devices sold by panstamp.com.
-
- It is possible to attach more than one device in order to get better
- reception, fhem will filter out duplicate messages.
-
- This module provides the IODevice for the SWAP modules that implement the SWAP protocoll
- to communicate with the individual moths in a panStamp network.
-
- Note: currently only panSticks are know to work. The panStamp shield for a Rasperry Pi is untested.
-
-
- Note: this module may require the Device::SerialPort or Win32::SerialPort
- module if you attach the device via USB and the OS sets strange default
- parameters for serial devices.
-
-
- <device> specifies the serial port to communicate with the panStamp.
- The name of the serial-device depends on your distribution, under
- linux the cdc_acm kernel module is responsible, and usually a
- /dev/ttyACM0 device will be created. If your distribution does not have a
- cdc_acm module, you can force usbserial to handle the panStamp by the
- following command:
modprobe usbserial vendor=0x0403
- product=0x6001
In this case the device is most probably
- /dev/ttyUSB0.
-
- You can also specify a baudrate if the device name contains the @
- character, e.g.: /dev/ttyACM0@38400
-
- If the baudrate is "directio" (e.g.: /dev/ttyACM0@directio), then the
- perl module Device::SerialPort is not needed, and fhem opens the device
- with simple file io. This might work if the operating system uses sane
- defaults for the serial parameters, e.g. some Linux distributions and
- OSX.
-
-
-
- The address is a 2 digit hex number to identify the moth in the panStamp network. The default is 01.
- The channel is a 2 digit hex number to define the channel. the default is 00.
- The syncword is a 4 digit hex number to identify the panStamp network. The default is B547.
-
- Uppon initialization a broadcast message is send to the panStamp network to try to
- autodetect and autocreate all listening SWAP devices (i.e. all devices not in power down mode).
-
-
-
-
- Set
-
-
raw data
- send raw data to the panStamp to be transmitted over the RF link.
-
-
-
-
- Get
-
-
-
-
- Attributes
-
-
-
-
-
-
-
pilight
-
-
-
Define
-
- define <name> pilight <protocol>
-
-
- Defines a module for setting pilight compartible switches on or off. See Sweetpi.
- Supported protocols: kaku_switch, elso. If you need more, just contact me!
- Calculates rain values for device <devicename-regex> from incremental rain-value and israining-state
- and write it to some new readings named rain_calc_???????.
- If optional <rain_name>, <israining_name> and <new_name> is specified
- then read rain from reading <rain_name>, israining from reading <israining_name>
- and write the calculated rain to reading <new_name>.
-
-
- The following values are generated:
-
-
rain_calc_all --> all values in one line
-
rain_calc_d_curr --> liter rain at the current day (from 7:30 local time)
-
rain_calc_d_last --> liter rain of 24h before 7:30 local time
-
rain_calc_d_start --> first incremental rain value from the rain device after 7:30 local time
-
rain_calc_h_curr --> liter rain at the current hour (from XX:30)
-
rain_calc_h_last --> liter rain of 1 hour before the last XX:30 time
-
rain_calc_h_start --> first incremental rain value from the rain device after last XX:30
-
rain_calc_now_diff --> fallen rain in liter since last value from rain device
-
rain_calc_now_rate --> fallen rain in liter/hour since last value from rain device
-
-
-
-
-
- Example:
- # Compute the rain for the rain/israining
- # events of the ks300 device and generate reading rain_calc.
- define rain_ks300 rain ks300
-
-
DontUseIsRaining 0/1
-
- Don't use the devicevalue IsRaining, if set to 1
-
-
DayChangeTime HHMM
-
- Change the default (day)time of the 'set value to zero' time (use the timecode as four digits!)
-
- The minutevalue is used to set the (hour)time of the 'set value to zero' time
-
-
-
CorrectionValue 1
-
- Use this value if you wish to do a correction of the rain-device-values. It is used as an factor. The value 1 will not change anything.
-
-
-
-
-
-
-
-
readingsGroup
-
- Displays a collection of readings from on or more devices.
-
-
<device> can be of the form INTERNAL=VALUE where INTERNAL is the name of an internal value and VALUE is a regex.
-
<device> can be of the form <STRING> or <{perl}> where STRING or the string returned by perl is
- inserted as a line in the readings list. skipped if STRING is undef.
-
If regex is a comma separatet list the reading values will be shown on a single line.
-
If regex starts with a '+' it will be matched against the internal values of the device instead of the readings.
-
If regex starts with a '?' it will be matched against the attributes of the device instead of the readings.
-
regex can be of the form <STRING> or <{perl}[@readings]> where STRING or the string returned by perl is
- inserted as a reading or:
-
the item will be skipped if STRING is undef
-
if STRING is br a new line will be started
-
if STRING is of the form %ICON[%CMD] ICON will be used as the name of an icon instead of a text and CMD
- as the command to be executed if the icon is clicked. also see the commands attribute.
- if readings is given the perl expression will be reevaluated during longpoll updates.
-
For internal values and attributes longpoll update is not possible. Refresh the page to update the values.
-
the <{perl}> expression is limited to expressions without a space. it is best just to call a small sub
- in 99_myUtils.pm instead of having a compex expression in the define.
alwaysTrigger
- 1 -> alwaysTrigger update events. even if not visible.
-
disable
- 1 -> disable notify processing and longpoll updates. Notice: this also disables rename and delete handling.
- 2 -> also disable html table creation
- 3 -> also disable html creation completely
-
sortDevices
- 1 -> sort the device lines alphabetically. use the first of sortby or alias or name that is defined for each device.
-
noheading
- If set to 1 the readings table will have no heading.
-
nolinks
- Disables the html links from the heading and the reading names.
-
nostate
- If set to 1 the state reading is excluded.
-
notime
- If set to 1 the reading timestamp is not displayed.
-
mapping
- Can be a simple string or a perl expression enclosed in {} that returns a hash that maps reading names
- to the displayed name. The keys can be either the name of the reading or <device>.<reading>.
- %DEVICE, %ALIAS, %ROOM, %GROUP and %READING are replaced by the device name, device alias, room attribute,
- group attribute and reading name respectively. You can also prefix these keywords with $ instead of %. Examples:
- attr temperatures mapping $DEVICE-$READING
- attr temperatures mapping {temperature => "%DEVICE Temperatur"}
-
-
separator
- The separator to use between the device alias and the reading name if no mapping is given. Defaults to ':'
- a space can be enteread as
-
style
- Specify an HTML style for the readings table, e.g.:
- attr temperatures style style="font-size:20px"
-
nameStyle
- Specify an HTML style for the reading names, e.g.:
- attr temperatures nameStyle style="font-weight:bold"
-
valueStyle
- Specify an HTML style for the reading values, e.g.:
- attr temperatures valueStyle style="text-align:right"
-
valueColumns
- Specify an HTML colspan for the reading values, e.g.:
- attr wzReceiverRG valueColumns { eventdescription => 'colspan="4"' }
-
valueFormat
- Specify an sprintf style format string used to display the reading values. If the format string is undef
- this reading will be skipped. Can be given as a string, a perl expression returning a hash or a perl
- expression returning a string, e.g.:
- attr temperatures valueFormat %.1f °C
- attr temperatures valueFormat { temperature => "%.1f °C", humidity => "%.1f %" }
- attr temperatures valueFormat { ($READING eq 'temperature')?"%.1f °C":undef }
-
nameIcon
- Specify the icon to be used instead of the reading name. Can be a simple string or a perl expression enclosed
- in {} that returns a hash that maps reading names to the icon name. e.g.:
- attr devices nameIcon $DEVICE
-
valueIcon
- Specify an icon to be used instead of the reading value. Can be a simple string or a perl expression enclosed
- in {} that returns a hash that maps reading value to the icon name. e.g.:
- attr devices valueIcon $VALUE
- attr devices valueIcon {state => '%VALUE'}
- attr devices valueIcon {state => '%devStateIcon'}
- attr rgMediaPlayer valueIcon { "playStatus.paused" => "rc_PLAY", "playStatus.playing" => "rc_PAUSE" }
-
commands
- Can be used in to different ways:
-
-
To make a reading or icon clickable by directly specifying the command that should be executed. eg.:
- attr rgMediaPlayer commands { "playStatus.paused" => "set %DEVICE play", "playStatus.playing" => "set %DEVICE pause" }
-
Or if the mapped command is of the form <command>:[<modifier>] then the normal FHEMWEB
- webCmd widget for <modifier> will be used for this command. if <modifier> is omitted then the FHEMWEB lookup mechanism for <command> will be used. eg:
- attr rgMediaPlayer commands { volume => "volume:slider,0,1,100" }
- attr lights commands { pct => "pct:", dim => "dim:" }
-
-
-
-
- The nameStyle and valueStyle attributes can also contain a perl expression enclosed in {} that returns the style
- string to use. The perl code can use $DEVICE,$READING and $VALUE, e.g.:
-
- Note: Only valueStyle, valueFomat, valueIcon and <{...}@reading> are evaluated during longpoll updates
- and valueStyle has to return a non empty style for every possible value. All other perl expressions are
- evaluated only once during html creation and will not reflect value updates with longpoll.
- Refresh the page to update the dynamic style. For nameStyle the color attribut is not working at the moment,
- the font-... and background attributes do work.
-
-
-
-
readingsProxy
-
- Makes (a subset of) a reading from one device available as a new device.
- This can be used to map channels from 1-Wire, EnOcean or SWAP devices to independend devices that
- can have state,icons and webCmd different from the parent device and can be used in a floorplan.
-
disable
- 1 -> disable notify processing. Notice: this also disables rename and delete handling.
-
getList
- Space separated list of commands, which will be returned upon "get name ?",
- so the FHEMWEB frontend can construct a dropdown.
- %PARENT% will result in the complete list of commands from the parent device.
- get commands not in this list will be rejected.
-
setList
- Space separated list of commands, which will be returned upon "set name ?",
- so the FHEMWEB frontend can construct a dropdown and offer on/off switches.
- %PARENT% will result in the complete list of commands from the parent device.
- set commands not in this list will be rejected.
- Example: attr proxyName setList on off
getFn
- perl expresion that will return the get command forwarded to the parent device.
- has access to $DEVICE, $READING, $CMD and $ARGS.
- undef -> do nothing
- "" -> pass-through
- (,1) -> directly return , don't call parent getFn
- everything else -> use this instead
-
setFn
- perl expresion that will return the set command forwarded to the parent device.
- has access to $DEVICE, $READING, $CMD and $ARGS.
- undef -> do nothing
- "" -> pass-through
- everything else -> use this instead
- Examples:
- attr myProxy setFn {($CMD eq "on")?"off":"on"}
-
-
valueFn
- perl expresion that will return the value that sould be used as state.
- has access to $DEVICE, $READING, $CMD and $VALUE.
- undef -> do nothing
- "" -> pass-through
- everything else -> use this instead
- Examples:
- attr myProxy valueFn {($VALUE == 0)?"off":"on"}
-
-
-
-
-
-
remotecontrol
-
- Displays a graphical remote control. Buttons (=icons) can be chosen and arranged. Predefined layouts are available for e.g. Samsung-TV or iTunes.
- Any buttonclick can be forwarded to the actual fhem-device. For further explanation, please check the Wiki-Entry<>.
-
-
- Define
-
- define <rc-name> remotecontrol
- Typical steps to implement a remotecontrol:
-
-
define rc1 remotecontrol
# defines a "blank" remotecontrol
-
get rc1 layout
# displays all available predefined layouts
-
set rc1 layout samsung
# assigns keys for a SamsungTV
-
set rc1 makenotify myTV
# creates notify_rc1 which forwards every buttonclick to myTV for execution
-
Note: keys can be changed at any time, it is not necessary to redefine the weblink
-
attr rc1 row15 VOLUP,VOLDOWN
-
-
-
-
- Set
-
-
set <rc-name> layout [delete|<layoutname>]
- layout delete deletes all rowXX-attributes
- layout <layoutname> assigns a predefined layout to rowXX-attributes
-
set <rc-name> makeweblink [<name>]
- creates a weblink to display the graphical remotecontrol. Default-name is weblink_<rc-name> .
-
set <rc-name> makenotify <executingDevice>
- creates a notify to trigger <executingDevice> every time a button has been pressed. name is notify_<rc-name> .
-
-
-
- Get
-
- get <rc-name> [htmlcode|layout]
-
htmlcode displays htmlcode for the remotecontrol on fhem-page
-
layout shows which predefined layouts ae available
rc_iconpath
- path for icons, default is "icons" . The attribute-value will be used for all icon-files except .svg .
-
rc_iconprefix
- prefix for icon-files, default is "" . The attribute-value will be used for all icon-files except .svg .
-
Note: Icon-names (button-image-file-names) will be composed as fhem/<rc_iconpath>/<rc_iconprefix><command|image>
- For .svg -icons, the access sequence is according to the FHEMWEB-attribute iconPath, default is openautomation:fhemSVG:default .
-
rc_devStateIcon
- In FHEMWEB-room-overview, displays the button-layout on the rc-device itself. Default is 1, set to 0 is the remotecontrol-device should not display its buttons in FHEMWEB roomview.
-
-
rowXX
- attr <rc-name> rowXX <command>[:<image>][,<command>[:<image>]][,...]
- Comma-separated list of buttons/images per row. Any number of buttons can be placed in one row. For each button, use
-
-
<command> is the command that will trigger the event after a buttonclick. Case sensitive.
-
<image> is the filename of the image
-
Per button for the remotecontrol, use
-
<command> where an icon with the name <command> is displayed
- Example:
- attr rc1 rc_iconprefix black_btn_ # used for ALL icons on remotecontrol rc1
- attr rc1 row00 VOLUP
- icon is black_btn_VOLUP, a buttonclick creates the event VOLUP
-
- or
-
<command>:<image> where an icon with the name <rc_iconprefix><image> is displayed
- Example:
- row00=LOUDER:VOLUP
- icon is black_btn_VOLUP, a buttonclick creates the event LOUDER
-
- Examples:
- attr rc1 row00 1,2,3,TV,HDMI
- attr rc2 row00 play:PLAY,pause:PAUSE,louder:VOLUP,quieter:VOLDOWN
-
-
Hint: use :blank for a blank space, use e.g. :blank,:blank,:blank for a blank row
-
- A sequence is used to allow to trigger events for a certain combination of
- button presses on a remote. E.g. to switch on a lamp when pressing the
- Btn1:on, then Btn2:off and at last Btn1:on one after the other you could
- define the following:
-
-
-
- define lampseq sequence Btn1:on 0.5 Btn2:off 0.5 Btn1:on
- define lampon notify lampseq:trigger set lamp on
-
-
- The structure device is used to organize/structure devices in order to
- set groups of them at once (e.g. switching everything off in a house).
-
- The list of attached devices can be modified through the addstruct /
- delstruct commands. Each attached device will get the attribute
- <struct_type>=<name> when it is added to the list, and the
- attribute will be deleted if the device is deleted from the structure.
-
- The structure devices can also be added to a structure, e.g. you can have
- a building consisting of levels which consists of rooms of devices.
-
-
- Example:
-
-
define kitchen structure room lamp1 lamp2
-
addstruct kitchen TYPE=FS20
-
delstruct kitchen lamp1
-
define house structure building kitchen living
-
set house off
-
-
-
-
-
-
- Set
-
- Every set command is propagated to the attached devices. Exception: if an
- attached device has an attribute structexclude, and the attribute value
- matches (as a regexp) the name of the current structure.
- If the set is of the form set <structure> [FILTER=<filter>] <type-specific>
- then :FILTER=<filter> will be appended to the device name in the propagated set for
- the attached devices like this: set :FILTER=<filter> <type-specific>
-
-
-
-
- Get
-
- get is not supported through a structure device.
-
-
-
-
- Attributes
-
-
-
clientstate_behavior
- The backward propagated status change from the devices to this structure
- works in two different ways.
-
-
absolute
- The structure status will changed to the common device status of all
- defined devices to this structure if all devices are identical.
- Otherwise the structure status is "undefined".
-
-
relative
- See below for clientstate_priority.
-
-
relativeKnown
- Like relative, but do not trigger on events not described in
- clientstate_priority. Needed e.g. for HomeMatic devices.
-
-
last
- The structure state corresponds to the state of the device last changed.
-
-
-
-
-
-
clientstate_priority
- If clientstate_behavior is set to relative, then you have to set the
- attribute "clientstate_priority" with all states of the defined devices
- to this structure in descending order. Each group is delemited by
- space or /. Each entry of one group is delimited by "pipe". The status
- represented by the structure is the first entry of each group.
- Example:
-
attr house clientstate_priority Any_On|An All_Off|Aus
-
- In this example the status of kitchen is either on or off. The status
- of house is either Any_on or All_off.
-
-
<struct_type>_map
- With this attribute, which has to specified for the structure-
- member, you can redefine the value reported by a specific
- structure-member for the structure value. The attribute has three
- variants:
-
-
readingName
- take the value from readingName instead of state.
-
-
oldVal:newVal
- if the state reading matches oldVal, then replace it with newVal
-
-
readingName:oldVal:newVal
- if readingName matches oldVal, then replace it with newVal
-
-
- Example:
-
-
define door OWSWITCH <ROMID>
-
define lamp1 dummy
-
attr lamp1 cmdlist on off
-
define kitchen structure struct_kitchen lamp1 door
attr door struct_kitchen_map A:open:on A:closed:off
-
attr door2 struct_kitchen_map A
-
-
-
-
-
structexclude
- exclude the device from set/notify or attribute operations. For the set
- and notify the value of structexclude must match the structure name,
- for the attr/deleteattr commands ist must match the combination of
- structure_name:attribute_name. Examples:
-
-
- First form, server mode:
- Listen on the TCP/IP port <portNumber> for incoming
- connections. If the second parameter global is not specified,
- the server will only listen to localhost connections.
-
- To use IPV6, specify the portNumber as IPV6:<number>, in this
- case the perl module IO::Socket:INET6 will be requested.
- On Linux you may have to install it with cpan -i IO::Socket::INET6 or
- apt-get libio-socket-inet6-perl; OSX and the FritzBox-7390 perl already has
- this module.
- Examples:
-
- Note: The old global attribute port is automatically converted to a
- telnet instance with the name telnetPort. The global allowfrom attibute is
- lost in this conversion.
-
-
- Second form, client mode:
- Connect to the specified server port, and execute commands received from
- there just like in server mode. This can be used to connect to a fhem
- instance sitting behind a firewall, when installing exceptions in the
- firewall is not desired or possible. Note: this client mode supprts SSL,
- but not IPV6.
- Example:
-
- Start tcptee first on publicly reachable host outside the firewall.
- perl contrib/tcptee.pl --bidi 3000
- Configure fhem inside the firewall:
- define tClient telnet <tcptee_host>:3000
- Connect to the fhem from outside of the firewall:
- telnet <tcptee_host> 3000
-
-
-
-
-
-
-
- Set
N/A
-
-
- Get
N/A
-
-
- Attributes:
-
-
-
password
- Specify a password, which has to be entered as the very first string
- after the connection is established. If the argument is enclosed in {},
- then it will be evaluated, and the $password variable will be set to
- the password entered. If the return value is true, then the password
- will be accepted. If thies parameter is specified, fhem sends telnet
- IAC requests to supress echo while entering the password.
- Also all returned lines are terminated with \r\n.
- Example:
-
globalpassword
- Just like the attribute password, but a password will only required for
- non-local connections.
-
-
-
-
SSL
- Enable SSL encryption of the connection, see the description here on generating the needed SSL certificates. To
- connect to such a port use one of the following commands:
-
allowfrom
- Regexp of allowed ip-addresses or hostnames. If set,
- only connections from these addresses are allowed.
-
-
-
-
connectTimeout
- Wait at maximum this many seconds for the connection to be established.
- Default is 2.
-
-
-
-
connectInterval
- After closing a connection, or if a connection cannot be estblished,
- try to connect again after this many seconds. Default is 60.
-
-
-
-
encoding
- Sets the encoding for the data send to the client. Possible values are latin1 and utf8. Default is utf8.
-
- Third party package update / check for a package update:
-
- update thirdparty <url> <package> [force]
- update thirdparty <url> <package> check
-
- The installed fhem distribution and its installed extensions (just like the
- webGUI PGM2) are updated via this command from the online repository. The
- locally installed files will be checked against the online repository and
- will be updated in case the files online are in a newer version.
-
-
- The update function will process more advanced distribution information
- as well as control commands for updating, removing or renaming existing files.
- New file structures can also be set up via control command files.
- The update process will exclusively work with the file path which is
- given by the global attribute "modpath" except for the fhem.pl file. The user
- decides whether to use a stable, or a developer-rated version of fhem.
- stable is not yet implemented, so an update use always the developer-rated version.
-
-
- Furthermore, the use of packages is supported just like in a manual installation
- of fhem. On the moment this only refers to FHEM including PGM2 (FHEMWEB), others
- may follow up. By using the update in this way, only files which are acutally
- used will be updated.
-
-
- The update function supports the installation of third-party packages like
- modules or GUIs that are not part of the FHEM distribution.
-
-
- Notice for Developers of third-party packages:
-
- Further information can be obtained from the file 'docs/LIESMICH.update-thirdparty'.
-
-
- Examples:
-
Check for new updates:
- fhem> update check
-
-
-
FHEM update:
- fhem> update
-
-
-
Force FHEM update (all files are updated!):
- fhem> update force
-
-
-
Update a single file:
- fhem> update 98_foobar.pm
-
-
-
Search for a filename:
- fhem> update backup
- 'backup' not found. Did you mean:
- ==> 98_backup.pm
- nothing to do...
-
- define <name> watchdog <regexp1> <timespec> <regexp2> <command>
-
- Start an arbitrary fhem.pl command if after <timespec> receiving an
- event matching <regexp1> no event matching <regexp2> is
- received.
- The syntax for <regexp1> and <regexp2> is the same as the
- regexp for notify.
- <timespec> is HH:MM[:SS]
- <command> is a usual fhem command like used int the at or notify
-
-
- Examples:
-
- # Request data from the FHT80 _once_ if we do not receive any message for
- # 15 Minutes.
- define w watchdog FHT80 00:15:00 SAME set FHT80 date
-
- # Request data from the FHT80 _each_ time we do not receive any message for
- # 15 Minutes, i.e. reactivate the watchdog after it triggered. Might be
- # dangerous, as it can trigger in a loop.
- define w watchdog FHT80 00:15:00 SAME set FHT80 date;; trigger w .
-
- # Shout once if the HMS100-FIT is not alive
- define w watchdog HMS100-FIT 01:00:00 SAME "alarm-fit.sh"
-
- # Send mail if the window is left open
- define w watchdog contact1:open 00:15 contact1:closed "mail_me close window1"
- attr w regexp1WontReactivate
-
-
- Notes:
-
-
if <regexp1> is . (dot), then activate the watchdog at
- definition time. Else it will be activated when the first matching
- event is received.
-
<regexp1> resets the timer of a running watchdog, to avoid it
- use the regexp1WontReactivate attribute.
-
if <regexp2> is SAME, then it will be the same as the first
- regexp, and it will be reactivated, when it is received.
-
-
trigger <watchdogname> . will activate the trigger if its state
- is defined, and set it into state defined if its state is
- triggered. You always have to reactivate the watchdog with this
- command once it has triggered (unless you restart fhem)
-
a generic watchdog (one watchdog responsible for more devices) is
- currently not possible.
regexp1WontReactivate
- When a watchdog is active, a second event matching regexp1 will
- normally reset the timeout. Set this attribute to prevents this.
-
interval
- the interval in seconds used to check for new values.
-
disable
- 1 -> stop polling
-
-
-
-
-
xxLG7000
-
-
-
-
- Define
-
- define <name> xxLG7000 <serial-device>
-
-
- Defines a serial link to a TV set of LG's xxLG70yy (e. g. 47LG7000) series
- and similar TV sets from LG. As of January 2010, the following TV sets should
- be compatible:
-
-
xxLG7000, e. g. 47LG7000 (tested)
-
xxPG7000, e. g. 50PG7000 (same Manual as 47LG7000 ;))
-
PS3000/6000/7000/8000 series (according to LG brochure; no liabilities assumed)
-
PQ3000/6000 series (see PS3000)
-
LU4000/5000 series (not LU7000; see PS3000)
-
LH2000/3000/4000/5000 series (see PS3000)
-
SL9500/9000/8000 series (see PS3000)
-
- These TV sets feature a serial connector which can officially be used to control
- the TV set (see your Onwer's Manual, there's an Appendix labelled "External Control
- Device setup", referening to cabling and command set). The xxLG7000 module is
- the FHEM module to actually utilize this. (BTW, those TVs run Linux internally ;))
- To exercise control over your TV set, use the LGTV module and
- bind it ("attr <LGTV-name> IODev <xxLG7000-name>") to xxLG7000.
SetID (1, 2, ...; see your TV's Owner's Manual how to set it. Defaults to 1 if unset.)
-
-
-
-
-
-
-
Perl specials
- If you want to automate some tasks via fhem, then you'll probably use at or notify. For more complex tasks
- you'll use either a shell-script or a perl "oneliner" as the at/notify
- argument. This chapter gives some tips in using the perl oneliners.
-
-
To test perl oneliners, type them on the telnet prompt (or FHEMWEB text
- input) by enclosing it in {}, one line at once. The last line will only
- write something in the logfile, the output of the other lines is directly
- visible.
-
- Perl expressions are separated by ;, in fhem oneliners they have to
- escaped with ;;
-
- { my $a = 1+1;; Log 1, "Hello $a" }
-
-
-
-
To use fhem commands from the perl expression, use the function fhem(),
- which takes a string argument, this string will be evaluated as a fhem
- command:
-
- Note: if this function returns a value, it will also be logged into the
- global fhem log. Use 1 as a second argument to disable this logging, this
- makes sense when obtainig some values via fhem "get...".
-
-
-
-
Notify can be used to store macros for manual execution. Use the trigger command to execute the macro:
-
To make date and time handling easier, the variables $sec, $min, $hour,
- $mday, $month, $year, $wday, $yday, $isdst are available in the perl
- oneliners (see also perldoc -f localtime). Exceptions: $month is in the
- range of 1 to 12, and $year is corrected by 1900 (as I would expect).
- Additionally the variable $hms contains the time in the HH:MM:SS format.
-
- Additionally the variabe $we is 1 if it is weekend (i.e $wday == 0 or
- $wday == 6), and 0 otherwise. If the holida2we
- global attribute is set, $we is 1 for holidays too.
-
- offset is in seconds, and the format of min/max is "HH:MM" or "HH:MM:SS".
- isday returns 1 if the sun is visible, and 0 else.
-
-
-
-
-
-
-
gnuplot file syntax
-
-The .gplot files are also used by the FHEMWEB/SVG module
-when the plotmode attribute is set to SVG. In this case
-only a subset of the .gnuplot attributes are used, and some lines have special
-meanings: the difference will be explained in this chapter. See also this fhemwiki entry on
-creating logs.
-Following is a minimal .gplot definition (valid only for plotmode SVG):
-
- set terminal size <SIZE>
- #FileLog 4:::
- plot title 'Temperature' with lines
-
-The .gnuplot file consists of 3 parts:
-
-
set commands
- Following sets are recognized:
-
-
terminal, only the size parameter.
- This is usually set to <SIZE>, which is replaced by the plotsize attribute of the FHEMWEB or weblink
- instance.
-
-
title
- Usually set to <TL> which is replace by the weblink title attribute, or to <Lx>, which is replaced
- by the weblink label attribute.
-
-
ylabel,y2label
- Left and right labels, printed vertically. Are also subject to label
- replacement.
-
-
yrange,y2range
- Specify the range of the left and right axis. Examples:
-
- set yrange [-0.1:1.1]
- set y2range [0:]
-
-
-
ytics,y2tics
- the label for the left/right axis tics. Examples:
-
- set ytics ("on" 0, "off" 1)
- set y2tics
-
-
-
-
-
-
-
#FileLog entries
- Each line from the plot section must have one corresponding #FileLog
- line. For the syntax see the column_spec paragraph of the Filelog get description.
- Note that for SVG plots the first column of the input file always has to
- be in the standard fhem timestamp format (YYYY-MM-DD_HH:MM:SS)
-
-
-
-
plot entries
- There is always one plot command with comma separated argument-blocks.
- Each argument-block represents one line, and has its own parameters.
- Following parameters are recognized:
-
-
axes x1y1 / x1y2
- tells the program to assign the current line to one of the two axes
- (left or right).
-
-
title
- Caption of the line. Whan clicking on this title, a small javascript
- program will change the title to the min/max and last values of the plot,
- will enable copying this line or pasting an already copied one (the
- existing scale of the plot wont'be changed, only the pasted line will
- be scaled), and other lines of the plot will temporarily be hidden.
-
-
with <linetype>
- Specify the line type. Following types are recognized: points,
- steps, fsteps, histeps and lines. Everything unknown will be mapped to
- the type lines.
-
-
ls <linestyle>
- The linestyle defaults to l0 for the first line, l1 for the second, and
- so on. It is defined in the svg_style.css file. There are two sets
- defined here: l0-l8 and l0fill-l6fill. The second set must be specified
- explicitly. If the name of the linestyle contains the word fill, then
- plots of the lineytype "lines" will have an additional starting and
- ending segment, so that filling is done correctly.
- See the SVG spec for details of this CSS file.
- Note: if you plan to use this attribute, you have to specify it for all
- the lines (attribute-blocks) in the plot command.
-
-
lw <linewidth>
- Sets the stroke-width style of the line. This attribute is deprecated,
- the corresponding feature of the CSS file / (attribute ls) should be
- used instead.
-
-
FHEM wird hauptsächlich zur Heimautomatisierung benutzt,
-ist aber ebenso für andere Aufgaben einsetzbar wo Benachrichtigungen,
-Zeitschaltungen und Datensammlungen eine wichtige Rolle spielen.
-
FHEM unterstützt verschiedene Hardwaregeräte die eine
-Verbindung mittels unterschiedlicher Protokolle (z.B. FHZ1000 mit Interfaces vom
-Typ FS20 und HMS, CM11 um mit X10 zu arbeiten) sowie logischer Geräte wie FS20
-oder FHT die einen Nachrichtenaustausch mit verschiedensten Geräten die diese
-Protokolle verwenden ermöglichen.
-
-FHEM ist modular. Abhängig von den unterschiedlichen Geräten werden in den
-Modulen verschiedene Funktionen (z.B. define, get, set) realisiert. FHEM enthält
-weitere Funktionen wie Trigger (notify),
-Zeitabhängige Funktionen (at)
-die die Funktionalität erweitern.
-
-FHEM wird entweder über einfache ASCII-Kommandozeilen gesteuert die in Dateien
-wie z.B. der Konfigurationsdatei fhem.cfg gespeichert sind oder über eine TCP/IP
-Verbindung, entweder direkt in einer "telnet"-Sitzung, oder per fhem.pl im
-Client-Modus oder über eines der Webfrontends.
-
Wenn Sie den FHEM-Server starten, müssen Sie eine
-Konfigurationsdatei auswählen:
-
- perl fhem.pl fhem.cfg
-
-
Nachstehend eine Minimal-Konfiguration Datei:
- attr global logfile log/fhem.log
- attr global modpath .
- attr global statefile log/fhem.save
- attr global verbose 3
- define telnetPort telnet 7072 global
- define WEB FHEMWEB 8083 global
-
-Die letzten zwei Zeilen definieren einen telnet und einen WEB Zugang, beide können aber
-bei Bedarf auch abgeschaltet werden.
-
-Die WEB Schnittstelle kann über
-
- http://<fhemhost>:8083
-
-erreicht werden.
-
-
-Die Kommunikation mit FHEM kann entweder in einer "session" (über telnet) oder
-über einzelne Klient-Kommandos (über fhem.pl) erfolgen. Beispiel:
-
- telnet <fhemhost> 7072
- <NL> (Die Betätigung der "Enter"-Taste schaltet in den "prompt"
- Modus)
- <command>...
- quit
-
- oder
-
- fhem.pl <fhemhost>:7072 "<command>..."
-
-
-
-
-
-
-
FHEM Befehlstypen
-
-Es gibt drei Arten von Befehlen: "fhem" Befehle (werden in diesem Dokument
-beschrieben), SHELL-Befehle (diese müssen von doppelten
-Anführungszeichen "" eingeschlossen werden) und PERL-Ausdrücken (von
-geschwungenen Klammern {} eingeschlossen). SHELL-Befehle oder
-PERL-Ausdrücke werden für komplexe at oder notify Ausdrücke benötigt, können aber auch
-als "normale" Befehle angewendet werden.
-
-
-
-Die folgenden drei Befehle bewirken z.B. dasselbe Ergebnis, wenn sie am
-telnet-Prompt eingegeben werden:
-
- set lamp off
- "fhem.pl 7072 "set lamp off""
- {fhem("set lamp off")}
-
-SHELL-Kommandos werden im Hintergrund ausgeführt,
-PERL-Ausdrücke und FHEM-Kommandos werden im Haupt-"thread" ausgeführt. Um
-PERL-Ausdrücke leichter eingeben zu können, sind einige Spezialfunktionen und
-Variablen verfügbar. Lesen Sie sich bitte die Abschnitte
-Perl special zum besseren Verständnis durch.
-
Um FHEM-Befehle in einen SHELL-Script zu triggern (dies ist
-eine "andere" Möglichkeit), benutzen Sie bitte die oben beschriebene Client-Form
-der fhem.pl.
-
-
-Mehrere FHEM-Kommandos hintereinander werden mittels
-Semikolon (;) getrennt. Weil Semikola auch in PERL-Code oder SHELL-Programmen
-benutzt werden, müssen sie mittels doppelten Semikola geschützt werden. Lesen
-Sie sich bitte die Bermerkungen des notify-Abschnittes zu Kommandoparametern und Regeln durch.
-
-
-Z.B. schaltet die erste der folgenden Befehlszeilen die Lampe 1 nur/erst zur
-Uhrzeit 07:00 Uhr aus, die Lampe 2 aber sofort und die zweite Befehlszeile
-schaltet Lampe 1 und 2 um 7:00 Uhr gleichzeitig aus.
-
- define lampoff at 07:00 set Lamp1 off; set Lamp2 off
- define lampoff at 07:00 set Lamp1 off;; set Lamp2 off
-
-
-Für jede weitere Indirektion muss man die Strichpunkte verdoppeln. Um also die beiden Lampen um 7:00 für 10 Minuten einzuschalten schreibt man:
-
- define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
-
-Keine Angst, das Vorherige kann in FHEM auch deutlich einfacher formuliert werden als:
-
- define onAt at 07:00 set Lamp1,Lamp2 on-for-timer 600
-
-
-
-Befehle können entweder direkt eingegeben oder aus einer Datei (z.B. am
-Start von FHEM aus der Konfugurationsdatei) eingelesen werden. Die Befehle
-werden entweder direkt ausgeführt oder später wenn sie als Argumente
-eines at oder notify-Befehles verwendet
-werden.
-
-
Eine mit einem \ abgeschlossene Zeile wird mit der
-nachfolgenden Zeile verbunden. Somit können lange Befehlszeilen (die z.B. aus
-mehreren PERL-Befehlen bestehen) auf mehrere Zeilen aufgteilt werden. Einige
-Web-Frontends (z.B. webpgm2) erleichtern die Eingabe von sich über mehrere
-Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.
-
-
-
-
-
-
Geräte-Spezifikation (devspec)
-
- Die Befehle
- attr,
- set,
- get, usw.
- attr,
- deleteattr,
- displayattr,
- delete,
- get,
- list,
- set,
- setreading,
- setstate,
- trigger
- können eine komplexere Gerätespezifikation als Argumente enthalten,
- die auch eine Anzahl von Geräten betreffen kann. Eine
- Gerätespezifikation kann folgendes sein:
-
-
ein einzelner Gerätename. Dies ist der Normalfall
-
eine durch Komma(,) getrennte Liste von Gerätenamen
-
ein regulärer Ausdruck
-
ein NAME=WERT Ausdruck, wo NAME ein "Internal" Wert wie TYPE ist, ein
- Reading-Name oder ein Attribut. WERT ist ein regulärer Ausdruck.
- Um die Bedingung zu negieren, sollte NAME!=WERT verwendet werden.
-
-
Falls die Spezifikation von :FILTER=NAME=WERT gefolgt wird,
- dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck
- gefiltert.
-
- Beispiele:
-
- set lamp1 on
- set lamp1,lamp2,lamp3 on
- set lamp.* on
- set room=kitchen off
- set room=kitchen:FILTER=STATE=on off
- set room=kitchen:FILTER=STATE!=off off
- list disabled=
- list TYPE=FS20 STATE
-
- Bemerkungen:
-
-
die Spezifikation kann keine Leerzeichen enthalten.
-
falls ein Gerätename exakt dem Spezifikation entspricht, dann werden
- keine reguläre Ausdrücke oder Filter ausgewertet.
-
zuerst wird die durch Komma getrennte Spezifikation abgearbeitet, dann
- folgen die regulären Ausdrücke und die Filter
-
die Befehlszeile kann die selbe Gerätebezeichnung mehrfach enthalten
- z.B.: "set lamp3,lamp3 on". Lamp3 wird hier zwei Mal
- eingeschalten.
-
um Strukturen mit komplexeren Anforderungen zu realisieren lesen Sie
- bitte den Abschnitt zu structure.
-
-
-
-
-
?, help
-
- ?
- help
-
- Sie erhalten eine Liste aller Befehle mit einer Kurzbeschreibung jedes
- Befehls.
-
-
-
-
attr
-
- attr <devspec> <attrname> [<value>]
-
-
- Dieser Befehl setzt ein Attribut für ein Gerät welches mit define definiert wurde. Sie können auch Ihre eigenen
- Attribute definieren, um sie in anderen Applikationen anzuwenden. Geben Sie
- "<attr <name> ?" ein, um eine Liste verfügbarer Attribute
- anzuzeigen.
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
-
Attribute, die für
- alle Geräte anwendbar sind:
-
-
-
verbose
- Setzt den Schwellwert für die Logfile-Meldungen.
- Mögliche Werte sind:
-
-
0 - Server start/stop
-
1 - Fehlermeldungen oder unbekannte Pakete
-
2 - bedeutende Ereigbisse/Alarme.
-
3 - ausgesendete Kommandos werden gelogged.
-
4 - von den einzelnen Geräten empfangene Daten.
-
5 - Fehlersuche.
-
- Der für die global Instanz gesetzte Wert gilt
- als Voreinstellung für die Instanzen, die dieses Attribut nicht
- gesetzt haben.
-
-
-
-
comment
- Fügt einen beliebigen Kommentar hinzu.
-
-
-
alias
- Wird in FHEMWEB benutzt, um ein en anderen Namen für ein Gerät
- anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der
- Gerätedefinition verwendet werden können.
-
-
-
room
- Filtert/gruppiert Geräte.
- Ein Gerät kann zu mehr als einem Raum zugeordnet werden. In diesem
- Fall müssen die Raumzuordnungen durch Kommata getrennt
- angegeben werden.
- Geräte, die dem Raum mit der Bezeichnung "hidden" zugeordnet
- werden, erscheinen nicht auf der Webseite.
-
-
-
group
- Gerätegruppen. FHEMWEB zeigt Geräte die in die gleiche Gruppe
- gehören auch in einer gemeinsamen Box an. Ein Gerät kann zu
- mehr als einer Gruppe gehören. In diesem Fall müssen die
- entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn
- dieses Attribut nicht gesetzt ist, wird der in der Gerätegruppe
- gesetzte Gerätetyp verwendet.
-
-
-
-
showtime
- Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivität
- anstelle des Status in der Gesamtansicht anzuzeigen. Nützlich z.B.
- für FS20 PIRI Geräte.
-
-
-
-
readingFnAttribute
- Die folgenden Attribute werden bei Modulen verwendet, die standardisierte
- "readings" Aktualisierung der fhem.pl benutzen. Informieren Sie sich in der
- Liste der Modulattribute wenn Sie wissen möchten ob dies
- unterstützt wird.
-
-
-
stateFormat
- Ändert den Gerätestatus, dies ist z.Bsp. in der Ausgabe des list
- Kommandos zu sehen, oder in der Raumübersicht von FHEMWEB. Falls
- nicht gesetzt, dann wird das state Reading übernommen. Sonst werden
- alle Wörter im Wert des Attributes durch das entsprechende Reading des
- Gerätes ersetzt (soweit vorhanden). Falls der Wert in {}
- eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die
- Auswertung passiert bei jeder Änderung eines Readings.
-
-
-
-
event-on-update-reading
- Wenn nicht gesetzt, erzeugt jede Veränderung eines "readings" ein
- Ereignis, welches z.B. von notify oder FileLog berücksichtigt wird. Wenn gesetzt erzeugen
- nur Aktualisierungen der eingetragenen "readings" ein Ereignis.
-
-
-
-
event-on-change-reading
- Dieses Attribut enthält eine durch Kommata getrennte Liste von
- "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten
- "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten
- "readings" identisch sind, wird kein Ereignis generiert.
-
- Die unterschiedlichen Bedeutungen von event-on-update-reading und
- event-on-change-reading sind folgende:
-
-
Wenn beide Attribute nicht gesetzt sind erzeugt jede Aktualisierung
- eines jeden "readings" eines Gerätes ein Ereignis.
-
Wenn eines der Attribute gesetzt ist, erzeugen nur Updates oder
- änderungen von "readings" die nicht in einem der Attribute gesetzt
- sind ein Ereignis.
-
Wenn ein "reading" in event-on-update-reading aufgeführt ist,
- erzeugt eine Aktualisierung ein Ereignis unabhängig ob das
- "reading" auch in event-on-change-reading aufgelistet ist.
-
-
-
-
event-min-interval
- Dieses Attribut enthält eine durch Kommata getrennte Liste von
- "readings:minInterval" Paare. readings kann ein regexp sein. Ein Event wird
- nur dann generiert, falls seit dem letzten Auftreten des gleichen Events
- mindestens minInterval Sekunden vergangen sind.
-
-
-
-
userReadings
- Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat
- folgendes Format:
-
- Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der
- Gerätereadings gesetzt, indem das spezifizierte perl
- code{ <perl code> } ausgeführt wird, und
- dessen Wert dem Reading zugewiesen wird.
-
- Falls <trigger> spezifiziert ist, dann findet diese Ausführung
- nur dann statt, falls einer der aktualisierten Readings dem regexp
- <trigger> entspricht (matched).
- Beispiele:
-
difference: das Reading wird auf die Differenz zw. dem aktuellen und
- dem vorherigen Wert gesetzt.
-
differential: das Reading wird auf die Differenz zw. dem aktuellen und
- dem vorherigen Wert, geteilt durch die Sekunden zw. der aktuellen Zeit
- und der letzten Auswertung, sekundengenau. Kein Wert wird berechnet,
- falls der Unterschied unter eine Sekunde liegt.
-
offset: wenn der aktuellen Wert kleiner als der vorherige Wert ist
- wird der vorherige Wert zum Reading addiert. Das Reading kann dann
- als offset verwendet werden um einen Zähler der durch Sromverlust zurückgesetzt
- wird zu korrigieren.
-
monotonic: wenn die Differenz zw. dem aktuellen und dem vorherigen Wert
- positiv ist wird diese Differenz zum Reading addiert. Damit lässt sich von
- einem Zähler der bei Stromverlust zurückgesetzt wird ein monoton
- wachsender Zähler ableiten.
-
- Beispiel:
-
- attr myPowerMeter userReadings power differential
- { ReadingsVal("myPowerMeter","counters.A",0)/1250.0}
-
- Achtung: Falls difference oder differential spezifiziert ist, dann werden
- für die Berechnung ältere Werte benötigt, d.h. der Wert wird
- frühestens beim zweiten Änderung gesetzt.
-
-
-
-
-
-
- Gerätespezifische Attribute sind in der Beschreibung zum jeweiligen
- Gerät aufgeführt.
-
-
- Beispiele:
-
Lesen Sie unter deleteattr nach um Attribute
- zu löschen.
-
-
-
-
-
setdefaultattr
-
- setdefaultattr [<attrname> [<value>]]
-
-
- Fügt Sie ein Standardattribut hinzu. Jedem nach dieser Zuweisung definierte
- Gerät wird dieses Attribut zugewiesen. Wenn kein "attrname" angegeben wird,
- dann wird die Liste der Standardattribute gelöscht.
-
-
- Beispiel, um das Attribut "room kitchen" und "loglevel 4" allen Lampen
- zuzuweisen:
-
es gibt keine Möglichkeit, ein einzelnes Standardattribut aus der Liste
- tu löschen.
-
-
-
-
-
-
define
-
- define <name> <type> <type-specific>
-
- Definiert ein Gerät. Sie müssen Geräte einrichten um sie zu beeinflussen (z.B.
- das Kommando set on/off auszuführen). Gleichfalls ist das Logfile besser
- lesbar wenn es z.B.
- "lamp off" anstatt "Device 5673, Button 00, Code 00 (off)" als Text enthält.
- Geben Sie an der Befehlszeile "define <name> ?" ein, um eine Liste der
- verfügbaren "types" zu erhalten.
- Nach der Definition, wird das globale Ereignis "DEFINED" genriert. Genauere
- Beschreibung erhalten Sie im Abschnitt "notify".
-
-
- Jedes Gerät besitzt unterschiedliche hinzufügbare Argumente per Definition,
- lesen Sie sich bitte die zu dem jeweiligen Gerät gehörenden Abschnitte durch.
-
-
-
-
-
-
delete
-
- delete <devspec>
-
- Löscht etwas was mit dem define Befehl erstellt
- worden ist.
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
- Nach dem löschen, wird das globale Ereignis "DELETED" erzeugt.
-
- Beispiel:
-
- delete lamp
-
-
-
-
-
-
deleteattr
-
- deleteattr <devspec> [<attrname>]
-
- Löscht entweder ein einzelnes Attribut (siehe Abschnitt attr ) oder alle Attribute eines Gerätes (falls
- kein <attrname> angegeben wird).
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
-
- Beispiele:
-
- deletereading <devspec> <readingname>
-
- Entfernt das Reading <readingname> für das spezifizierte
- Gerät. <readingname> ist ein perl Regular-Expression, was den
- vollständigen Namen des Readings erfassen muss.
-
- Mit größter Sorgfalt verwenden! FHEM kann abstürzen, falls
- man lebenswichtige Readings entfernt.
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
-
- Beispiele:
-
- displayattr <devspec> [<attrname>]
-
- Zeigt entweder den Wert eines Attributes an (falls <attrname>
- spezifiziert wurde) oder alle Attribute eines Gerätes.
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
- Falls mehrere Geräte spezifiziert wurden, dann enthält die Ausgabe
- den Namen der Geräte.
-
-
- Beispiele:
-
-
- fhem> di WEB
- menuEntries AlarmOn,/fhem?cmd=set%20alarm%20on
- room Misc.
- fhem> di WEB room
- Misc.
-
-
-
-
-
-
-
get
-
- get <devspec> <type-specific>
-
- Fragt einen Wert direkt (aktuell) vom Gerät ab und wartet auf eine
- Antwort. Eine allgemeine Liste möglicher Paramter erhalten Sie mit
- get <device> ?
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
- Jedes Gerät hat unterschiedliche "get"-Parameter. Lesen Sie Details bitte im
- zugehörigen Abschnitt nach.
-
-
-
-
-
-
-
getstate
-
- getstate <devspec>
-
- Gibt einen kurzen, durch Leerzeichen getrennte Statusliste für <devspec>
- aus . Dies ist nützlich, um das Gerät in z.B. Cacti zu beobachten.
- Beispiel:
-
- Bemerkung: Um diesen Befehl nutzen zu können, kopieren Sie bitte die
- Datei 99_getstate.pm aus dem Verzeichnis contrib/getstate/ in Ihr FHEM
- Verzeichnis.
-
-
-
-
-
-
-
include
-
- include <filename>
-
- Liest (z.B. als Befehlszeile in der fhem.cfg) die in <filename> angegebene
- Datei in FHEM ein und interpretiert jede Dateizeile als FHEM Befehl. Mit
- dieser Hilfe werden Konfigurationsdateien modularer und erlaubt es sie z.B.
- nach Räumen geordnet auftzuteilen.
-
-
-
-
-
inform
-
- inform {on|off|timer|raw} [regexp]
-
- Wenn auf "on" gesetzt und der Status eines Gerätes ändert sich, dann wird eine
- Nachricht an den Client gesendet. Dieser Befehl kann von anderen
- Programmen/Modulen dazu benutzt werden, eine Hinweisnachricht zu erhalten.
- Die Option "timer" fügt der Nachricht einen Zeitstempel hinzu. Hinweis:
- Dieser Befehl erleichtert Ihnen die bessere Kontrolle in
- notify oder FileLog , wann welche
- Ereignisse erzeugt wurden.
-
-
-
-
-
-
list
-
- list [devspec] [value]
-
- Auflistung aller "definitions", "notify" und "at"-Definitionen. Dies ist eines
- der wenigen Befehle, die im Normalfall eine Zeichenkette ausgeben.
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
-
- Wenn value angegeben ist, der von ( DEF, TYPE, usw) oder reading (actuator,
- measured-temp) für alle Geräte die in devspec angegeben sind.
-
- Wenn Sie für name einen Gerätenamen eingeben, dann erhalten Sie
- einen genauen Status für das in name angegebene Gerät angezeigt,
- z.B.:
-
fhem> list fl
-
- Internals:
- CODE 5102
- DEF 5102
- NAME fl
- NR 15
- STATE measured-temp: 21.1 (Celsius)
- TYPE FHT
- IODev FHZ
- Attributes:
- room Heizung
- Readings:
- 2006-11-02 09:45:56 actuator 19%
- [...]
-
-
-
-
-
-
modify
-
- modify <name> <type-dependent-options>
-
-
- Dieser Befehl wird benutzt, um Definitionen zu verändern. Er ist nützlich, um at oder notify
- Definitionen zu verändern. Wenn Sie einen Wert einer an Definition verändern,
- dann wird nur der für die Zeit zuständige Teil geändert. Im Falle der
- Veränderung einer Definition vom Typ "notify" wird nur der regex Teil
- geändert. Alle anderen Werte (Stati, Attribute, etc) bleiben erhalten.
-
- Beispiel:
-
- define lampon at 19:00 set lamp on
- modify lampon *19:00
- modify lampon 19:00 set lamp on-for-timer 16
-
-
-
-
-
quit
-
- quit
-
- Dieser Befehl wird in einer TCP/IP Session benutzt um die Client-Sitzung zu
- beenden.
- Wird dieser Befehl in einem Skript benutzt, wird das abarbeiten des Skriptes
- beendet.
-
- Beispiel:
-
- quit
-
-
-
-
-
-
reload
-
- reload <module>
-
- Reload the given module from the module directory. It is a convenient way to
- test modules whithout restarting the program.
-
- Example:
-
- reload 99_PRIV
-
-
-
-
-
rename
-
- rename <oldname> <newname>
-
- Benennt ein Gerät von <oldname> in <newname>, einschliesslich der
- Attribute, um. Das globale Ereignis "RENAMED" wird erstellt, Lesen Sie bitte
- den Abschnitt "notify" durch um Details zu erfahren.
-
- Beispiel:
-
- rename FHT_1234 fht.kitchen
-
-
-
-
-
-
rereadcfg
-
- rereadcfg [fhem-config-file]
-
- Liest entweder die aktuelle Konfigurationsdatei oder die angegebene Datei ein.
- Der Ablauf ist dabei wie folgt: Zuerst wird das statefile
- gesichert. Dann werden alle Geräte gelöscht. Dann wird die aktuelle
- Konfigurationsdatei (oder die angegebene Datei) eingelesen zuletzt wird das statefile
- neu eingelesen.
- Wenn dieser Ablauf abgeschlossen ist, wird das globale REREADCFG Ereignis
- ausgelöst. Alle existierenden Verbindungenwerden bis zum "rereadcfg" Ereignis
- getrennt.
-
-
- Beipiel:
-
- rereadcfg
-
-
-
-
-
save
-
- save [<configfile>]
-
- Sichert zuerst das statefile und dann das
- configfile. Wenn ein Parameter angegeben wird dieser
- anstelle der allgemeinen Konfigurationsdatei benutzt.
- Hinweise:
-
-
Der Befehl speichert nur "definitions" und "attributes" aber keine (set/get)
- Befehle die vorher Teil der Konfigurationsdatei waren. Wenn Sie solche
- Befehle nach der Initialisierung (z.B. FHTcode)
- benötigen,dann müssen Sie sie mit notify triggern wenn
- das
- INITIALIZED Ereignis eintritt.
-
-
Der Befehl "save" versucht Kommentarzeilen (Zeilen die mit #
- beginnen) und "include"-Zeilen zu erhalten, aber arbeitet nicht korrekt wenn
- FHEM für diese Dateien keine Schreibrechte besitzt.
-
-
-
-
-
-
-
set
-
- set <devspec> <type-specific>
-
- Der Befehl setzt Geräteparameter/sendet Signale an ein Gerät. Sie
- erhalten eine Liste verfügbarer Parameter wenn Sie folgendes eingeben:
-
- set <name> ?
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
- Der "set"-Befehl gibt nur bei Fehler einen Wert zurück.
-
- Jedes Gerät hat verschiedene Parameter die mit "set" gesetzt
- werden können. Lesen Sie bitte den entsprechenden Abschnitt für
- das Gerät für Details durch.
-
-
-
-
- Manche Module unterstützen die sog. set extensions, und in der
- entsprechenden Dokumentation ist ein Link auf diesem Text zu finden. Falls im
- Modul selber einer der unten aufgeführten Befehle implementiert ist, dann
- wird die Modul-Implementation verwendet.
-
-
on-for-timer <sekunden>
- Das Gerät wird per "on" eingeschaltet, und ein interner Zeitgeber
- wird erstellt, um nach <sekunden> ein "off" Kommando
- auszuführen. Um diesen Zeitgeber zu entfernen sollte man das
- Kommando mit dem Argument 0 erneut aufrufen. Achtung: dieser Zeitgeber
- wird bei einem restart nicht gespeichert.
-
off-for-timer <sekunden>
- siehe on-for-timer.
-
on-till <timedet>
- Das Gerät wird per "on" eingeschaltet, und ein at Instanz wird
- definiert, um es um <timedet> (Format: HH:MM[:SS]) per off
- auszuschalten. Diese at Instanz ist sichtbar unter dem Namen
- geräteName+"_till". Um das Ausschalten zu deaktivieren
- löscht man diese at Definition.
-
off-till <timedet>
- siehe on-till.
-
blink <anzahl> <blink-periode>
- Das Gerät wird mit "on" für die <blink-periode>
- eingeschaltet, und das wird nach <blink-periode> wiederholt. Um
- das Blinken vorzeitig zu stoppen spezifiziert man "0 0" als
- Argument.
-
intervals <from1>-<till1> <from2>-<till2>...
-
- Das Gerät wird für die spezifizierten Intervalle
- eingeschaltet. Die einzelnen Intervalle sind Leerzeichen getrennt, und
- ein Intervall besteht aus zwei Zeitspezifikationen, die mit einem "-"
- getrennt sind.
-
-
- Beispiele:
-
-
- set switch on-for-timer 12.5
- set switch on-till {sunset()}
- set switch blink 3 1
- set switch intervals 08:00-12:00 13:00-18:00
-
-
-
-
-
-
-
-
setreading
-
- setreading <devspec> <reading> <value>
-
- Der Befehl setzt das Reading <reading> auf den Wert <value> ohne
- Signale an das betroffene Gerät zu senden, generiert aber Ereignisse und
- die übliche eventMap und stateFormat Umwandlung wird auch
- durchgeführt.
-
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
- Beispiel:
-
- setreading lampe state on
-
-
-
-
-
setstate
-
- setstate <devspec> <value>
-
- Der Befehl setzt den STATE Eintrag des Ger&aauml;tes direkt, ohne Ereignisse zu
- generieren oder ein Signal an das Gerät zu senden. Dieser Eintrag ist
- maßgebend für die Status-Anzeige in diversen Frontends.
- Dieser Befehl wird auch im statefile benutzt.
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
- Beispiel:
-
- setstate lampe An
-
-
-
-
-
-
shutdown
-
- shutdown [restart]
-
- Der Befehl fährt den Server herunter (nach dem sichern aller Gerätestati). Er triggert das global:SHUTDOWN
- Ereignis. Mit der optionalen Parameter restart startet FHEM danach neu.
-
- Beispiel:
-
- shutdown
- shutdown restart
-
-
-
-
-
-
trigger
-
- trigger <devspec> <event>
-
- Generiert das Ereignis <event>, was z.Bsp. ein notify anstoßen kann, oder den FileLog zum
- protokollieren dieser Zeile bewegen kann.
- Siehe den Abschnitt über Geräte-Spezifikation
- für Details der <devspec>.
-
- Beispiel:
-
- trigger btn3 on
-
-
-
-
-
sleep
-
- sleep <sec> [quiet]
-
- Wartet für die angegebene Anzahl von Millisekunden.
- Falls sleep in at/notify/etc aufgerufen wurde, und die nachfolgenden
- Kommandos einen nicht leeren Text zurückgeliefert haben, dann wird dieser
- Text mit loglevel 2 protokolliert.
- quiet vermeidet diese Protokollierung.
-
- Beispiele:
-
- sleep 0.5
- define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp
- toggle
- define a3 at +*00:05 set Windsensor 1w_measure;; sleep 2 quiet;; get
- Windsensor 1w_temp
-
-
- Bemerkung: sleep gefolgt von weiteren Befehlen und aufgerufen in
- at/notify/etc blockiert die Abarbeitung von FHEM nicht.
-
-
-
-
version
-
- version [filter]
-
- Gibt die Versionsinformation von fhem.pl und aller geladenen Module aus. Mit der
- optionalen Parameter kann man die Ausgabe filtern.
-
-
- Das "global" Gerät wird benutzt, um allgemeingültige Attribute zu setzen. Es
- wird automatisch erstellt und kann nicht gelöscht oder umbenannt werden. Es
- hat keine "set" oder "get" Parameter.
-
-
- Define
autoload_undefined_devices
- wenn dieses Attribut gesetzt ist, werden die zu einer neu empfangenen
- Nachricht zugehörigen Module automatisch geladen. Dies
- erfolgt vom autocreate Gerät, um so
- automatisch ein FHEM-Gerät bei erreichen einer entsprechenden
- Nachricht zu erstellen.
-
-
-
-
updateInBackground
- wenn dieses Attribut gesetzt ist, wird das update Befehl in einem
- separaten Prozess ausgeführt, und alle Meldungen werden per Event
- übermittelt. In der telnet Sitzung wird inform, in FHEMWEB wird
- das Event Monitor aktiviert.
-
-
-
-
backup_before_update
- Wenn dieses Attribut auf "0" gesetzt wurde, erstellt FHEM keine
- Sicherheitskopie Ihrer Installation bei Verwendung des Befehls backup.
- Die Standardeinstellung ist die Erstellung einer Sicherheitskopie vor einem
- Update.
- Hinweis: Setzen Sie dieses Attribut nur wenn Sie sich sicher sind!
- Das Attribut wird vom update Befehl benutzt.
- Beispiel:
-
- attr global backup_before_update 0
-
-
-
-
-
backupcmd
- Sie können das Update durch Ihre eigenen Befehle/Skripts durchführen
- indem Sie dieses Attribut setzen.
- Wenn dieses Attribut gesetzt ist, dann startet es als ein SHELL-Befehl
- und erstellt eine durch Leerzeichen getrennte Liste von
- Dateien/Verzeichnissen als ein Argument zum Befehl, z.B.:
-
-
- Bemerkung: Ihr Befehl/Skript muss die Zeichenkette "backup done"
- zurückgeben oder eine entsprechende Zeichenkette um Fehlermeldungen
- auszugeben, damit die Zusammenarbeit mit updatefhem funktioniert!
- Dieses Attribut wird vom backup Befehl benutzt.
- Beispiel:
-
- attr global backupcmd /usr/local/bin/myBackupScript.sh
-
-
-
-
-
backupdir
- Ein Ordner um die komprimierten Sicherheitsdateien zu speichern.
- Dieses Attribut wird vom backup Befehl benutzt.
- Beispiel:
-
- attr global backupdir /Volumes/BigHD
-
-
-
-
-
backupsymlink
- Wenn dieses Attribut auf etwas anderes als "no", dann unterstützt der
- Archviierungsbefehl "tar" symbolische Links in Ihrem Backup. Andererseits,
- wenn dieses Attribut auf
- "no" gesetzt ist werden symbolische Links vom Befehl "tar" ignoriert.
- Dieses Attribut wird vom backup Befehl benutzt.
- Beispiel:
-
- attr global backupsymlinks yes
-
-
-
-
-
configfile
- Enthält den Namen der FHEM Konfigurationsdatei. Wenn save
- ohne Argumente aufgerufen wird dann wird die Ausgabedatei unter diesem
- Dateinamen gespeichert.
-
-
-
-
exclude_from_update
- Enthält eine Liste durch Leerzeichen getrennter Dateien welche nicht im
- Update berücksichtigt werden. Dieses Attribut wird vom update
- Befehl benutzt.
- Beispiel:
-
- attr global exclude_from_update 21_OWTEMP.pm temp4hum4.gplot FS20.on.png FS20.off.png
-
-
-
-
-
holiday2we
- Wenn dieses Attribut gesetzt wurde, dann wird die $we
- Variable
- als "true" betrachtet, wenn der Wert der holiday
- Variable zu diesem Attribut nicht "none" ist.
- Beispiel:
-
- attr global holiday2we hessen
-
-
-
-
-
lastinclude
- Wurde dieses Attribut gesetzt, dann wird der letzte Befehl der generierten
- Konfigurationsdatei (siehe save Befehl) berücksichtigt <lastinclude-value>
- Dieses Attribut ist DEPRECATED, bitte benutzen Sie notify,
- mit dem INITIALIZED Ereignis um Befehle nach der Intialisierung
- auszuführen.
-
-
-
-
logfile
- Gibt das Logfile an, in welches gespeichert werden soll. Sie
- können "-" für die Ausgabe in das stdout-Gerät. In diesem Fall the server won't background itself.
- Der Name der Logdatei kann auch "wildcards" enthalten, um eine
- einfachere Abfolge für die Dateien zu erreichen. Lesen Sie bitte den
- Abschnitt FileLog. Fügen Sie die Attribute
- archivecmd / archivedir / nrarchive zum
- global Gerät hinzu wie Sie es auch bei einem FileLog device
- tun könnten.
- Sie können den Namen der Logdatei mit
- { $currlogfile }festlegen.
-
-
-
-
modpath
- Mit modpath geben Sie den Pfad zu dem Verzeichnis der FHEM
- Module an. Der Pfad enhält nicht das Verzeichnis FHEM. Durch das
- setzen der Attribute, wird das Verzeichnis nach Dateinamen in der Form NN_<NAME>.pm,
- und sie werden für die Definition von Geräten unter dem Namen
- <NAME> verfügbar gemacht. Wenn das erste Gerät des Typs <NAME> definiert
- wird, werden die entsprechenden Module geladen und in dem Modul die
- entsprechende Function mit dem Namen
- <NAME>_Initialize wird aufgerufen. Eine Ausnahme bilden Module die
- mit der Nummer 99 im Dateinamen beginnen. Diese sind enhalten
- PERL-Hilfsfunktionen. Die Module werden zur Startzeit geladen (i.e.
- modpath attribute definition time).
-
-
-
-
motd
- Nachricht des Tages. Wird im Begrüßungsbildschirm von FHEM angezeigt,
- oder direkt beim Start einer "telnet" Sitzung, bevor der fhem> Prompt
- erscheint. Der SecurityCheck setzt motd wenn es bisher nicht gesetzt ist. Um
- das zu verhindern, können sie den Wert von motd auf "none" setzen
-
-
-
-
mseclog
- Wenn dieses Attribut gesetzt ist, enthalten Datums/Zeiteinträge (timestamp)
- in der Logdatei einen Millisekunden-Eintrag.
-
-
-
-
nofork
- Wenn dieses Attribut oder "attr global logfile -" gesetzt ist,
- dann wird FHEM nicht im Hintergrund abgearbeitet.
- Dieses Attribut ist bei einigen FHEM Installationen auf FRITZ!-Boxen
- notwendig, und wid fuer Windows automatisch gesetzt.
-
-
-
-
pidfilename
- Schreibt die PERL Prozess-ID in die angegebene Datei. Der Server läuft
- als Daemon und einige Distributionen wollen anhand der PID testen, ob der
- FHEM Prozess läuft. Die Datei wird bei Ausführung des "shutdown"-Kommandos
- gelöscht.
-
statefile
- Dieses Attribut legt den Namen der Datei fest, in die
- Statusinformationen aller Geräte gespeichert werden bevor der
- Server heruntergefahren wird. Falls diese Datei nicht angegeben wird, so
- werden keinerlei Informationen gesichert.
-
-
-
-
title
- Das Attribut "title" wird unter dem Frontend fhemweb.pl (webpgm2) zur
- Festlegung des Seitentitels benutzt..
-
updatebranch
- Dieses Attribut wird mittels der Datei FhemUtils/release.pm gesetzt die
- im "modpath"-Verzeichnis enthalten ist. Z.B, wenn eine stabile Version von
- FHEM (ab Version 5.3 aufwärts) über eine direkte Download-Verbindung vom
- Archiv der FHEM-Webseite installiert wurde, then wird automatisch der Zweig
- der Aktualisierung auf "stable"eingestellt.
- In dieser Form der Aktualisierung werden nur behobene Fehler, relevante
- Sicherheitslücken oder neue stabile Versionen aktualisiert.
- Mittels dem Befehl "update development <filename>" benutzen,
- können Dateien oder Pakete jederzei direkt aus dem Entwicklungszweig
- (z.B. mittels "update development <package>") installiert werden.
- Wenn Sie anstelle von Entwicklungsversionen eine stabile Version
- installieren wollen, so können Sie dies durch Angabe des Attributes "updatebranch DEVELOPMENT"
- erzwingen.
- Bei der Installation von FHEM sollten Sie generell die
- Entwicklungsversion installieren. Dieses Attribut muss nicht gesetzt werden.
- Benutzen Sie dagegen "update development force"
- um alle Dateien, einschliesslich der Datei release.pm (enthält die
- aktuellen Informationen)
- zu aktualisieren.
-
-
-
-
userattr
- Enthält eine durch Leerzeichen getrennte Liste in welcher die Namen
- zusätzlicher Attribute aufgeführt sind. Diese müssen zuerst in dieser Liste
- definiert werden, bevor sie angewendet werden können.
-
-
-
-
dupTimeout
- Definert die Wartezeit, nach der 2 identische Ereignisse zweier
- Empfänger als Duplikat angesehen werden. Voreingestellt sind 0,5
- Sekunden.
-
-
-
-
showInternalValues
- Attribute/Geräte-Eintraege/Readings die mit Punkt (.) anfangen
- werden nicht angezeigt, es sei denn das globale Attribut
- showInternalValues ist gesetzt. Diese Variable wird bei dem list und
- xmllist Befehl, und bei der FHEMWEB Raumansicht geprüft.
-
-
-
-
-
-
-
-
ALL3076
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ALL3076
-
-
-
ALL4000T
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ALL4000T
-
-
-
ALL4027
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ALL4027
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: BS
-
-
-
CM11
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CM11
-
-
-
CO20
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CO20
-
-
-
CUL
-
-
-
-
- Der CUL/CUN(O) ist eine Familie von Funkempfängern, die von der Firma
- Busware verkauft wird.
-
- Mit der OpenSource Firmware
- culfw können sie verschiedene
- 868 MHz Funkprotokolle empfangen bzw. senden (FS20/FHT/S300/EM/HMS/MAX!).
- Man kann diese Geräte auch zur Reichweitenverlängerung, siehe
- CUL_RFR einsetzen.
-
-
- Einige Protokolle (FS20, FHT und KS300) werden von diesem Modul in das FHZ
- Format konvertiert, daher kann dasselbe logische Gerät verwendet werden,
- egal ob das Funktelegramm von einem CUL oder einem FHZ Gerät empfangen
- wird.
-
- Andere Protokolle (S300/EM) benötigen ihre eigenen Module. S300
- Geräte werden vom Modul CUL_WS verarbeitet, wenn das Signal von einem
- CUL empfangen wurde, ähnliches gilt für EMWZ/EMGZ/EMEM: diese
- werden vom CUL_EM Modul verarbeitet.
-
- Es ist möglich mehr als ein Gerät zu verwenden, um einen besseren
- Empfang zu erhalten, FHEM filtert doppelte Funktelegramme aus.
-
- Bemerkung: Dieses Modul benötigt unter Umständen das
- Device::SerialPort bzw. Win32::SerialPort Modul,
- wenn Sie das Gerät über USB anschließen und das
- Betriebssystem unübliche Parameter für serielle Schnittstellen
- setzt.
-
-
-
-
-
-
-
- Define
-
- define <name> CUL <device> <FHTID>
-
- Geräte, die an USB angeschlossen sind (CUL/CUN):
-
- <device> gibt die serielle Schnittstelle an, mit der der CUL
- kommuniziert. Der Name der seriellen Schnittstelle hängt von der
- gewählten Distribution und USB-Treiber ab, unter Linux ist dies das
- Kernel Modul cdc_acm und üblicherweise wird die Schnittstelle
- /dev/ttyACM0 genannt. Wenn die Linux Distribution über kein Kernel
- Modul cdc_acm verfügt, dann kann die Schnittstelle über
- usbserial mit dem folgenden Befehl erzeugt werden:
-
- In diesem Fall ist diese Schnittstelle dann wahrscheinlich
- /dev/ttyUSB0.
-
- Wenn der Name der Schnittstelle ein @ enthält, kann nachfolgend die
- verwendete Baudrate angegeben werden, z.B.: /dev/ttyACM0@38400.
-
- Wenn die Baudrate mit "directio" angegeben wird (z.B.:
- /dev/ttyACM0@directio), wird das Perl Modul
- Device::SerialPort nicht benötigt und FHEM öffnet
- die Schnittstelle mit einfachem Dateizugriff. Dies sollte dann
- funktionieren, wenn das Betriebssystem vernünftige Standardwerte
- für die serielle Schnittstelle verwendet, wie z.B. einige Linux
- Distributionen oder OSX.
-
-
- Geräte, die mit dem Netzwerk verbunden sind (CUN(O)):
-
- <device> gibt die Hostadresse:Port des Gerätes an, z.B.
- 192.168.0.244:2323
-
-
-
- Wenn das Gerät mit none bezeichnet wird, wird keine Schnittstelle
- geöffnet und man kann ohne angeschlossene Hardware
- experimentieren.
-
- Die FHTID ist eine 4-stellige hexadezimale Zahl und wird verwendet, wenn
- der CUL FHT Telegramme sendet bzw. Daten anfragt. Diese sollte als 0000
- gewählt werden, wenn man FHT80b Anfragen durch den CUL vermeiden will.
-
-
-
-
- Set
-
-
raw
- Sendet einen CUL Firmware Befehl. Siehe auch
- hier für
- nähere Erläuterungen der CUL Befehle.
-
-
-
freq / bWidth / rAmpl / sens
- Nur in der Betriebsart SlowRF. Bestimmt die
- CUL Frequenz / Bandbreite / Empfänger Amplitude /
- Empfindlichkeit
-
- Bitte mit Vorsicht verwenden, da es die verwendete Hardware
- zerstören kann bzw. es zu illegalen Funkzuständen kommen
- kann. Bemerkung: Die Parameter für die RFR Übermittlung
- werden hierdurch nicht beeinflußt.
-
-
freq bestimmt sowohl die Empfangs- als auch die Sendefrequenz.
- Bemerkung: Auch wenn der CC1101 zwischen den Frequenzen 315 und 915
- MHz eingestellt werden kann, ist die Antennenanbindung bzw. die Antenne
- des CUL exakt auf eine Frequenz eingestellt.
- Standard ist 868.3 MHz (bzw. 433 MHz).
-
-
bWidth kann zwischen 58 kHz und 812 kHz variiert werden.
- Große Werte sind empfindlicher gegen Interferencen, aber
- machen es möglich, nicht genau kalbrierte Signale zu
- empfangen. Die Einstellung beeinflusst ebenso die Übertragung.
- Standardwert ist 325 kHz.
-
-
rAmpl ist die Verstärkung des Empfängers mit Werten
- zwischen 24 and 42 dB. Größere Werte erlauben den
- Empfang von schwachen Signalen. Standardwert ist 42.
-
-
sens ist die Entscheidungsgrenze zwischen "on" und "off"
- Zuständen und kann 4, 8, 12 oder 16 dB sein. Kleinere Werte
- erlauben den Empfang von undeutlicheren Signalen. Standard ist 4
- dB.
-
-
-
-
hmPairForSec
- Nur in der Betriebsart HomeMatic. Versetzt den
- CUL für die angegebene Zeit in Sekunden in den Anlern-Modus. Jedes
- HM Gerät, das sich im Anlern-Modus befindet, wird an FHEM
- angelernt.
-
-
-
hmPairSerial
- Nur in der Betriebsart HomeMatic.
- Versucht, das angegebene Gerät anzulernen (zu "pairen"). Der
- Parameter ist eine 10-stellige Zeichenfolge, die normalerweise mit
- Buchstaben beginnt und mit Ziffern endet; diese sind auf der
- Rückseite der Geräte aufgedruckt. Wenn das Gerät ein
- Empfänger ist, ist es nicht notwendig, das angegebene Gerät in
- den Anlern-Modus zu versetzen.
-
-
-
led
- Schaltet die LED des CUL: aus (00), an (01) oder blinkend (02).
-
-
-
-
- Get
-
-
version
- gibt die Version der CUL Firmware zurück
-
-
uptime
- gibt die Betriebszeit des CULs zurück (Zeit seit dem letzten Reset
- des CULs)
-
-
raw
- Sendet einen CUL Firmware Befehl und wartet auf eine Rückgabe des
- CULs. Siehe auch README der Firmware für nähere
- Erläuterungen zu den CUL Befehlen.
-
-
fhtbuf
- Der CUL hat einen Puffer für Nachrichten für FHT. Wenn der
- Puffer voll ist, werden neu empfangene Telegramme ignoriert und eine
- "EOB" Meldung wird in die FHEM Logdatei geschrieben.
-
- fhtbuf gibt den freien Speicher dieses Puffers (in hex)
- zurück, ein leerer Puffer im CUL V2 hat 74 Byte, im CUL V3/CUN(O)
- hat 200 Byte. Eine Telegramm benötigt 3 + 2x(Anzahl der FHT
- Befehle) Byte, dies ist ein Grund, warum man mehrere FHT Befehle mit
- einem set senden sollte. Ein weiterer Grund ist,
- dass diese FHT Befehle in einem "Paket" zum FHT Gerät gesendet werden.
-
-
-
ccconf
- Liest einige CUL Register des CC1101 (Sende- und Empfängerchips)
- aus (Frequenz, Bandbreite, etc.) und stellt diese in lesbarer Form dar.
-
-
-
cmds
- In abhägigkeit der installierten Firmware hat der CUL/CUN(O)
- unterschiedliche Befehlssätze. Nähere Informationen über
- die Befehle bzw. deren Interpretation siehe README Datei der
- verwendeten CUL Firmware. Siehe auch Anmerkungen beim raw Befehl.
-
-
-
credit10ms
- Der Funkraum darf für eine Dauer von credit10ms*10 ms belegt
- werden, bevor die gesetzliche 1% Grenze erreicht ist und eine
- LOVF Meldung ausgegeben wird.
sendpool
- Wenn mehr als ein CUL verwendet wird, um einen größeren
- Bereich abzudecken, können diese sich gegenseitig
- beeinflussen. Dieses Phänomen wird auch Palm-Beach-Resort Effekt
- genannt. Wenn man diese zu einen gemeinsamen Sende"pool"
- zusammenschließt, wird das Senden der einzelnen Telegramme
- seriell (d.h. hintereinander) durchgeführt.
- Wenn z.B. drei CUN's zur
- Verfügung stehen, werden folgende Attribute gesetzt:
- attr CUN1 sendpool CUN1,CUN2,CUN3
- attr CUN2 sendpool CUN1,CUN2,CUN3
- attr CUN3 sendpool CUN1,CUN2,CUN3
-
-
-
addvaltrigger
- Generiert Trigger für zusätzliche Werte. Momentan sind dies
- RSSI und RAWMSG für die CUL Familie und RAWMSG für FHZ.
-
-
-
rfmode
- Konfiguriert den RF Transceiver des CULs (CC1101). Verfügbare
- Argumente sind:
-
-
SlowRF
- Für die Kommunikation mit FS20/FHT/HMS/EM1010/S300/Hoermann
- Geräten @1 kHz Datenrate (Standardeinstellung).
-
-
HomeMatic
- Für die Kommunikation mit HomeMatic Geräten @10 kHz
- Datenrate.
-
-
MAX
- Für die Kommunikation mit MAX! Geräten @10 kHz
- Datenrate.
-
-
-
-
-
hmId
- Setzt die HomeMatic ID des Gerätes. Wenn dieses Attribut fehlt,
- wird die ID zu F1<FHTID> gesetzt. Bemerkung 1: Nach dem Setzen
- bzw. Verändern dieses Attributes müssen alle HomeMatic
- Geräte neu angelernt werden. Bemerkung 2: Der Wert muss
- eine 6-stellige Hexadezimalzahl sein, 000000 ist ungültig. FHEM
- überprüft nicht, ob die ID korrekt ist, im Zweifelsfall
- funktioniert die Kommunikation nicht.
-
-
hmProtocolEvents
- Generiert Ereignisse für HomeMatic Telegramme. Diese werden
- normalerweise für die Fehlersuche verwendet, z.B. durch Aktivieren
- von inform timer in einer telnet Sitzung bzw. im
- Event Monitor Fenster im FHEMWEB Frontend.
- Beispiel:
-
- Das Modul CUL_EM wertet von einem CUL empfange Botschaften des Typs EM aus,
- dies sind aktuell Botschaften von EMEM, EMWZ bzw. EMGZ Geräten.
-
-
-
- Define
-
- define <name> CUL_EM <code> [corr1 corr2
- CostPerUnit BasicFeePerMonth]
-
- <code> ist der Code, der am EM Gerät eingestellt wird. Gütige Werte sind
- 1 bis 12. 1-4 gilt für EMWZ, 5-8 für EMEM und 9-12 für EMGZ Geräte.
-
- corr1 ist der Kalibrierfaktor für den Momentanverbrauch, corr2
- für den Gesamtverbrauch.
-
-
für EMWZ Geräte wird die Umdrehungsgeschwindigkeit (U/kW)
- des verwendeten Stromzählers (z.B. 150) für corr1 und 12 mal
- diesen Wert für corr2 verwendet
-
für EMEM devices ist corr1 mit 0.01 und corr2 mit 0.001 anzugeben
-
-
-
- CostPerUnit und BasicFeePerMonth werden dazu verwendet, die
- tägliche bzw. monatliche Kosten zu berechnen. Die Kosten werden in der
- Logdatei einmal täglich (ohne Fixkosten) bzw. monatlich (mit Fixkosten)
- generiert und angezeigt.
- Die Definition sollte in etwa so aussehen:
-
- define emwz 1 75 900 0.15 12.50
-
- und in der Logdatei sollten diese Zeilen erscheinen:
-
-
- Tipp: Das EMWZ Gerät kann so konfiguriert werden, dass es in der CUM Spalte
- des STATE Wertes den aktuellen Wert des Stromzählers anzeigt.
- Hierfür muss der aktuell am Stromzähler abgelesene Wert mit corr1 (U/kW)
- multipliziert werden und der CUM Rohwert aus der aktuellen fhem Messung ('reading')
- davon abgezogen werden. Dann muss dieser Wert als Basiswert des EMWZ Gerätes
- (im Beispiel emwz) gesetzt werden.
-
-
- Dieses Modul hantiert die empfangen Daten von FHT80 TF "Fenster-Tür-Kontakt" Sensoren, welche
- normalerweise nur mit den FHT80B Geräten kommunizieren. Mit diesen Modul können
- FHT80 TFs in eingeschränkter Weise ähnlich wie HMS TFK Sensoren benutzt werden (weitere
- Informationen sind unter Wiki zu lesen).
- Der name des FHEM Moduls wurde so gewählt, weil a) nur der CUL die Daten empfangen kann und b) "TF" normalerweise
- Temperatur- und Feuchtigkeitssensoren suggeriert. (Keine Ahnung, warum ELV diesen Sensor nicht TFK genannt hat,
- wie die Sensoren von FS20 und HMS).
-
-
- <devicecode> Ist eine sechstellige Hexadezimalzahl, welche zum Zeitpunkt der Produktion
- des FHT80 TF gegeben wurde. Somit ist diese auch nicht mehr änderbar und bleibt auch nach einem Batteriewechsel
- erhalten.
-
- Examples:
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CUL_HM
-
-
-
CUL_HOERMANN
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CUL_HOERMANN
-
-
-
CUL_IR
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CUL_IR
-
-
-
CUL_MAX
-
- Das Modul CUL_MAX wertet von einem CUL empfangene MAX! Botschaften aus.
- Es wird mit Hilfe von autocreate automatisch generiert, es muss nur sichergestellt
- werden, dass der richtige rfmode gesetzt wird, z.B. attr CUL0 rfmode MAX.
-
-
-
- Define
-
- define <name> CUL_MAX <addr>
-
-
- Definiert ein CUL_MAX Gerät des Typs <type> und der Adresse <addr>.
- Die Adresse darf nicht schon von einem anderen MAX! Gerät verwendet werden.
-
-
-
-
- Set
-
-
pairmode
- Versetzt den CUL_MAX für 60 Sekunden in den Pairing Modus, während dieser Zeit
- kann das Gerät mit anderen Geräten gepaart werden (Heizkörperthermostate,
- Eco-Taster, etc.). Auch das zu paarende Gerät muss manuell in den Pairing Modus
- versetzt werden (z.B. beim Heizkörperthermostat durch Drücken der "Boost"
- Taste für 3 Sekunden).
-
fakeSC <device> <open>
- Sendet eine fingierte ShutterContactState Meldung <open>, dies muss 0 bzw. 1 für
- "Fenster geschlossen" bzw. "Fenster offen" sein. Wenn das <device> eine Gruppen-ID
- ungleich Null hat, beeinflusst diese fingierte ShutterContactState Meldung alle Geräte
- mit dieser Gruppen-ID. Es muss sichergestellt werden, dass vorher alle Zielgeräte
- mit fakeShutterContact verbunden werden.
-
fakeWT <device> <desiredTemperature> <measuredTemperature>
- Sendet eine fingierte WallThermostatControl Meldung (beide Parameter können
- eine Nachkommastelle haben, für desiredTemperature darf die Nachkommastelle nur 0 bzw. 5 sein).
- Wenn das <device> eine Gruppen-ID ungleich Null hat, beeinflusst diese fingierte
- WallThermostatControl Meldung alle Geräte mit dieser Gruppen-ID.
- Es muss sichergestellt werden, dass vorher alle Zielgeräte
- mit fakeWallThermostat verbunden werden.
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CUL_RFR
-
-
-
CUL_TX
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CUL_TX
-
-
-
CUL_WS
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CUL_WS
-
-
-
CULflash
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: CULflash
-
-
-
Calendar
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: Calendar
-
-
-
Dashboard
-
- Erstellt eine Übersicht in der Gruppen angeordnet werden können. Dabei können die Gruppen mit Drag'n Drop frei positioniert
- und in mehreren Spalten angeordnet werden. Auch kann die Breite und Höhe einer Gruppe über die Mindestgröße hinaus gezogen werden.
-
-
-
- Define
-
dashboard_tabcount
- Gibt die Anzahl der angezeigten Tabs an.
- Standard: 1
-
-
-
dashboard_activetab
- Gibt an welches Tab aktiviert ist. Kann manuell gesetzt werden, wird aber auch durch den Schalter "Set" auf das gerade aktive Tab gesetzt.
- Standard: 1
-
-
-
dashboard_tab1name
- Titel des 1. Tab.
- Standard: Dashboard-Tab 1
-
-
-
dashboard_tab2name
- Titel des 2. Tab.
- Standard: Dashboard-Tab 2
-
-
-
dashboard_tab3name
- Titel des 3. Tab.
- Standard: Dashboard-Tab 3
-
-
-
dashboard_tab4name
- Titel des 4. Tab.
- Standard: Dashboard-Tab 4
-
-
-
dashboard_tab5name
- Titel des 5. Tab.
- Standard: Dashboard-Tab 5
-
-
-
dashboard_tab6name
- Titel des 6. Tab.
- Standard: Dashboard-Tab 6
-
-
-
dashboard_tab7name
- Titel des 7. Tab.
- Standard: Dashboard-Tab 7
-
-
-
dashboard_webfrontendfilter
- Ist dieses Attribut nicht gesetzt, oder hat den Wert * wird das Dashboard auf allen konfigurierten FHEMWEB Instanzen angezeigt.
- Wird dem Attribut der Name einer FHEMWEB Instanz (z.B. WEB) zugewiesen so wird das Dashboard nur in dieser Instanz angezeigt.
- Es können auch mehrere Instanzen durch Komma getrennt angegeben werden, z.B. WEB,WEBtablet. Dadurch ist es möglich ein
- zusätzliches Dashboard zu definieren und dieses nur z.B. auf Tablet anzeigen zulassen (die natürlich eine eigenen FHEMWEB Instanz verwenden).
- Standard: *
-
- Es dürfen NIE zwei Dashboards in einer FHEMWEB instanz aktiv sein!
-
-
-
dashboard_tab1sorting
- Enthält die Poistionierung jeder Gruppe im Tab 1. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_tab2sorting
- Enthält die Poistionierung jeder Gruppe im Tab 2. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_tab3sorting
- Enthält die Poistionierung jeder Gruppe im Tab 3. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_tab4sorting
- Enthält die Poistionierung jeder Gruppe im Tab 4. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_tab5sorting
- Enthält die Poistionierung jeder Gruppe im Tab 5. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_tab6sorting
- Enthält die Poistionierung jeder Gruppe im Tab 6. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_tab7sorting
- Enthält die Poistionierung jeder Gruppe im Tab 7. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
-
-
-
dashboard_row
- Auswahl welche Zeilen angezeigt werden sollen. top (nur Oben), center (nur Mitte), bottom (nur Unten) und den Kombinationen daraus.
- Standard: center
-
-
-
dashboard_width
- Zum bestimmen der Dashboardbreite. Der Wert kann in % (z.B. 80%) angegeben werden oder als absolute Breite (z.B. 1200) in Pixel.
- Standard: 100%
-
-
-
dashboard_rowcenterheight
- Höhe der mittleren Zeile, in der die Gruppen angeordnet werden.
- Standard: 400
-
-
-
dashboard_rowcentercolwidth
- Über dieses Attribut wird die Breite der einzelnen Spalten der mittleren Dashboardreihe festgelegt. Dabei kann je Spalte ein separater Wert hinterlegt werden.
- Die Werte sind durch ein Komma (ohne Leerzeichen) zu trennen. Jeder Wert bestimmt die Spaltenbreite in %! Der erste Wert gibt die Breite der ersten Spalte an,
- der zweite Wert die Breite der zweiten Spalte usw. Ist die Summe der Breite größer als 100 werden die Spaltenbreiten reduziert.
- Sind mehr Spalten als Breiten definiert werden die fehlenden Breiten um die Differenz zu 100 festgelegt. Sind hingegen weniger Spalten als Werte definiert werden
- die überschüssigen Werte ignoriert.
- Standard: 100
-
-
-
dashboard_rowtopheight
- Höhe der oberen Zeile, in der die Gruppen angeordnet werden.
- Standard: 250
-
-
-
"dashboard_rowbottomheight
- Höhe der unteren Zeile, in der die Gruppen angeordnet werden.
- Standard: 250
-
-
-
dashboard_tab1groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 1 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab2groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 2 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab3groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 3 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab4groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 4 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab5groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 5 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab6groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 6 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab7groups
- Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 7 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
- Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden
- Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
-
-
-
dashboard_tab1icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_tab2icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_tab3icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_tab4icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_tab5icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_tab6icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_tab7icon
- Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.
-
-
-
dashboard_lockstate
- Bei Dashboard Einstellung "unlock" kann dieses bearbeitet werden. Bei der Einstellung "lock" können keine Änderung vorgenommen werden.
- Wenn die Leiste ausgeblendet ist (dashboard_showtabs) ist das Dashboard gespert. Die Bearbeitung ist daher nur mit sichtbarer Buttonbar möglich ist.
- Standard: unlock
-
-
-
dashboard_colcount
- Die Anzahl der Spalten in der Gruppen dargestellt werden können. Dennoch ist es möglich, mehrere Gruppen
- in einer Spalte nebeneinander zu positionieren. Dies ist abhängig von der Breite der Spalten und Gruppen.
- Gilt nur für die mittlere Spalte!
- Standard: 1
-
-
-
dashboard_showfullsize
- Blendet die FHEMWEB Raumliste (kompleter linker Bereich der Seite) und den oberen Bereich von FHEMWEB aus wenn der Wert auf 1 gesetzt ist.
- Default: 0
-
-
-
dashboard_showtabs
- Zeigt die Tabs des Dashboards oben oder unten an, oder blendet diese aus. Dies gilt auch für die Schalterleiste. Wenn die Schalterleiste ausgeblendet wird ist das Dashboard gespert.
- Standard: tabs-and-buttonbar-at-the-top
-
-
-
dashboard_showhelper
- Blendet Ränder ein, die eine Positionierung der Gruppen erleichtern.
- Standard: 1
-
-
-
dashboard_showtooglebuttons
- Zeigt eine Schaltfläche in jeder Gruppe mit der man diese auf- und zuklappen kann.
- Standard: 1
-
-
-
dashboard_debug
- Zeigt Debug-Felder an. Sollte nicht gesetzt werden!
- Standard: 0
-
-
-
-
-
-
DbLog
-
-
-
-
- Define
-
- define <name> DbLog <configfilename> <regexp>
-
-
- Speichert Events in eine Datenbank. Die Datenbankverbindungsparameter werden
- definiert in <configfilename>. (Vergleiche
- Beipspielkonfigurationsdatei in contrib/dblog/db.conf).
- Die Konfiguration ist in einer sparaten Datei abgelegt um das Datenbankpasswort
- nicht in Klartext in der FHEM-Haupt-Konfigurationsdatei speichern zu mössen.
- Ansonsten wäre es mittels des list
- Befehls einfach auslesbar.
-
-
- Die Perl-Module DBI and DBD::<dbtype>
- mössen installiert werden (use cpan -i <module>
- falls die eigene Distribution diese nicht schon mitbringt).
-
- Ein Beispielcode zum Erstellen einer MySQL/PostGreSQL Datenbak ist in
- contrib/dblog/<DBType>_create.sql zu finden.
- Die Datenbank beinhaltet 2 Tabellen: current und
- history. Die Tabelle current enthält den letzten Stand
- pro Device und Reading. In der Tabelle history sind alle
- Events historisch gespeichert.
-
- Die Tabellenspalten haben folgende Bedeutung:
-
-
TIMESTAMP: Zeitpunkt des Events, z.B. 2007-12-30 21:45:22
-
DEVICE: name des Devices, z.B. Wetterstation
-
TYPE: Type des Devices, z.B. KS300
-
EVENT: das auftretende Event als volle Zeichenkette
- z.B. humidity: 71 (%)
-
READING: Name des Readings, ermittelt aus dem Event,
- z.B. humidity
-
-
VALUE: aktueller Wert des Readings, ermittelt aus dem Event,
- z.B. 71
-
UNIT: Einheit, ermittelt aus dem Event, z.B. %
-
- Der Wert des Rreadings ist optimiert för eine automatisierte Nachverarbeitung
- z.B. yes ist transformiert nach 1
-
- Die gespeicherten Werte können mittels GET Funktion angezeigt werden:
-
- get myDbLog - - 2012-11-10 2012-11-10 KS300:temperature
-
-
- Beispiel:
-
- Speichert alles in der Datenbank
- define myDbLog DbLog /etc/fhem/db.conf .*:.*
-
-
-
-
-
- Set
-
- set <name> reopen
-
Schließt die Datenbank und öffnet sie danach sofort wieder. Dabei wird die Journaldatei geleert und neu angelegt.
- Verbessert den Datendurchsatz und vermeidet Speicherplatzprobleme.
-
- set <name> count
-
Zählt die Datensätze in den Tabellen current und history und schreibt die Ergebnisse in die Readings countCurrent und countHistory.
-
- set <name> deleteOldDays <n>
-
Löscht Datensätze, die älter sind als <n> Tage. Die Anzahl der gelöschten Datensätze wird in das Reading lastRowsDeleted geschrieben.
-
- set <name> userCommand <validSqlStatement>
-
BENUTZE DIESE FUNKTION NUR, WENN DU WIRKLICH (WIRKLICH!) WEISST, WAS DU TUST!!!
- Führt einen beliebigen (!!!) sql Befehl in der Datenbank aus. Der Befehl und ein zurückgeliefertes Ergebnis werden in entsprechende Readings geschrieben.
-
-
-
-
-
-
- Get
-
- get <name> ReadingsVal <device> <reading> <default>
- get <name> ReadingsTimestamp <device> <reading> <default>
-
- Liest einen einzelnen Wert aus der Datenbank, Benutzung und Syntax sind weitgehend identisch zu ReadingsVal() und ReadingsTimestamp().
-
-
-
-
- get <name> <infile> <outfile> <from>
- <to> <column_spec>
-
- Liesst Daten aus der Datenbank. Wird durch die Frontends benutzt um Plots
- zu generieren ohne selbst auf die Datenank zugreifen zu mössen.
-
-
-
<in>
- Ein Parameter um eine Kompatibilität zum Filelog herzustellen.
- Dieser Parameter ist per default immer auf - zu setzen.
- Folgende Ausprägungen sind zugelassen:
-
-
current: die aktuellen Werte aus der Tabelle "current" werden gelesen.
-
history: die historischen Werte aus der Tabelle "history" werden gelesen.
-
-: identisch wie "history"
-
-
-
<out>
- Ein Parameter um eine Kompatibilität zum Filelog herzustellen.
- Dieser Parameter ist per default immer auf - zu setzen um die
- Ermittlung der Daten aus der Datenbank för die Plotgenerierung zu pröfen.
- Folgende Ausprägungen sind zugelassen:
-
-
ALL: Es werden alle Spalten der Datenbank ausgegeben. Inclusive einer Überschrift.
-
Array: Es werden alle Spalten der Datenbank als Hash ausgegeben. Alle Datensätze als Array zusammengefasst.
-
INT: intern zur Plotgenerierung verwendet
-
-: default
-
-
-
<from> / <to>
- Wird benutzt um den Zeitraum der Daten einzugrenzen. Es ist das folgende
- Zeitformat oder ein Teilstring davon zu benutzen:
-
YYYY-MM-DD_HH24:MI:SS
-
<column_spec>
- För jede column_spec Gruppe wird ein Datenset zuröckgegeben welches
- durch einen Kommentar getrennt wird. Dieser Kommentar repräsentiert
- die column_spec.
- Syntax: <device>:<reading>:<default>:<fn>:<regexp>
-
-
<device>
- Der Name des Devices. Achtung: Gross/Kleinschreibung beachten!
- Es kann ein % als Jokerzeichen angegeben werden.
-
<reading>
- Das Reading des angegebenen Devices zur Datenselektion.
- Es kann ein % als Jokerzeichen angegeben werden.
- Achtung: Gross/Kleinschreibung beachten!
-
-
<default>
- Zur Zeit noch nicht implementiert.
-
-
<fn>
- Angabe einer speziellen Funktion:
-
-
int
- Ermittelt den Zahlenwert ab dem Anfang der Zeichenkette aus der
- Spalte "VALUE". Benutzt z.B. för Ausprägungen wie 10%.
-
-
int<digit>
- Ermittelt den Zahlenwert ab dem Anfang der Zeichenkette aus der
- Spalte "VALUE", inclusive negativen Vorzeichen und Dezimaltrenner.
- Benutzt z.B. för Ausprägungen wie -5.7°C.
-
-
delta-h / delta-d
- Ermittelt die relative Veränderung eines Zahlenwertes pro Stunde
- oder pro Tag. Wird benutzt z.B. för Spalten die einen
- hochlaufenden Zähler enthalten wie im Falle för ein KS300 Regenzähler
- oder dem 1-wire Modul OWCOUNT.
-
-
delta-ts
- Ermittelt die vergangene Zeit zwischen dem letzten und dem aktuellen Logeintrag
- in Sekunden und ersetzt damit den originalen Wert.
-
-
-
<regexp>
- Diese Zeichenkette wird als Perl Befehl ausgewertet. Die regexp wird vor dem angegebenen <fn> Parameter ausgeföhrt.
-
- Bitte zur Beachtung: Diese Zeichenkette darf keine Leerzeichen
- enthalten da diese sonst als <column_spec> Trennung
- interpretiert werden und alles nach dem Leerzeichen als neue
- <column_spec> gesehen wird.
- Schlösselwörter
-
$val ist der aktuelle Wert die die Datenbank för ein Device/Reading ausgibt.
-
$ts ist der aktuelle Timestamp des Logeintrages.
-
Wird als $val das Schlösselwort "hide" zuröckgegeben, so wird dieser Logeintrag nicht
- ausgegeben, trotzdem aber för die Zeitraumberechnung verwendet.
-
Wird als $val das Schlösselwort "ignore" zuröckgegeben, so wird dieser Logeintrag
- nicht för eine Folgeberechnung verwendet.
-
-
-
-
- Beispiele:
-
-
get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature
-
get myDbLog current ALL - - %:temperature
- Damit erhält man alle aktuellen Readings "temperature" von allen in der DB geloggten Devices.
- Achtung: bei Nutzung von Jokerzeichen auf die historyTabelle kann man sein FHEM aufgrund langer Laufzeit lahmlegen!
-
get myDbLog - - 2012-11-10_10 2012-11-10_20 KS300:temperature::int1
- gibt Daten aus von 10Uhr bis 20Uhr am 10.11.2012
-
get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature
-
get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d
-
get myDbLog - - 2012-11-10 2012-11-20 MyFS20:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg
- gibt 1 zuröck för alle Ausprägungen von on* (on|on-for-timer etc) und 0 för alle off*
-
get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg
- Beispiel von OWAD: Ein Wert wie z.B.: "A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"
- und die Ausgabe ist för das Reading B folgende: 2012-11-20_10:23:54 66.647
-
get DbLog - - 2013-05-26 2013-05-28 Pumpe:data::delta-ts:$val=~s/on/hide/
- Realisierung eines Betriebsstundenzählers.Durch delta-ts wird die Zeit in Sek zwischen den Log-
- einträgen ermittelt. Die Zeiten werden bei den on-Meldungen nicht ausgegeben welche einer Abschaltzeit
- entsprechen wörden.
- Liest Daten aus der Datenbank aus und gibt diese in JSON formatiert aus. Wird för das Charting Frontend genutzt
-
-
-
-
<name>
- Der Name des definierten DbLogs, so wie er in der fhem.cfg angegeben wurde.
-
<in>
- Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
- Dieser Parameter ist immer auf - zu setzen.
-
<out>
- Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
- Dieser Parameter ist auf webchart zu setzen um die Charting Get Funktion zu nutzen.
-
-
<from> / <to>
- Wird benutzt um den Zeitraum der Daten einzugrenzen. Es ist das folgende
- Zeitformat zu benutzen:
-
YYYY-MM-DD_HH24:MI:SS
-
<device>
- Ein String, der das abzufragende Device darstellt.
-
<querytype>
- Ein String, der die zu verwendende Abfragemethode darstellt. Zur Zeit unterstötzte Werte sind:
- getreadings um för ein bestimmtes device alle Readings zu erhalten
- getdevices um alle verfögbaren devices zu erhalten
- timerange um Chart-Daten abzufragen. Es werden die Parameter 'xaxis', 'yaxis', 'device', 'to' und 'from' benötigt
- savechart um einen Chart unter Angabe eines 'savename' und seiner zugehörigen Konfiguration abzuspeichern
- deletechart um einen zuvor gespeicherten Chart unter Angabe einer id zu löschen
- getcharts um eine Liste aller gespeicherten Charts zu bekommen.
- getTableData um Daten aus der Datenbank abzufragen und in einer Tabelle darzustellen. Benötigt paging Parameter wie start und limit.
- hourstats um Statistiken för einen Wert (yaxis) för eine Stunde abzufragen.
- daystats um Statistiken för einen Wert (yaxis) för einen Tag abzufragen.
- weekstats um Statistiken för einen Wert (yaxis) för eine Woche abzufragen.
- monthstats um Statistiken för einen Wert (yaxis) för einen Monat abzufragen.
- yearstats um Statistiken för einen Wert (yaxis) för ein Jahr abzufragen.
-
-
<xaxis>
- Ein String, der die X-Achse repräsentiert
-
<yaxis>
- Ein String, der die Y-Achse repräsentiert
-
<savename>
- Ein String, unter dem ein Chart in der Datenbank gespeichert werden soll
-
<chartconfig>
- Ein jsonstring der den zu speichernden Chart repräsentiert
-
<pagingstart>
- Ein Integer um den Startwert för die Abfrage 'getTableData' festzulegen
-
<paginglimit>
- Ein Integer um den Limitwert för die Abfrage 'getTableData' festzulegen
-
-
- Beispiele:
-
-
get logdb - webchart "" "" "" getcharts
- Liefert alle gespeicherten Charts aus der Datenbank
-
get logdb - webchart "" "" "" getdevices
- Liefert alle verfögbaren Devices aus der Datenbank
-
get logdb - webchart "" "" ESA2000_LED_011e getreadings
- Liefert alle verfögbaren Readings aus der Datenbank unter Angabe eines Gerätes
-
get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e timerange TIMESTAMP day_kwh
- Liefert Chart-Daten, die auf folgenden Parametern basieren: 'xaxis', 'yaxis', 'device', 'to' und 'from'
- Die Ausgabe erfolgt als JSON, z.B.: [{'TIMESTAMP':'2013-02-11 00:10:10','VALUE':'0.22431388090756'},{'TIMESTAMP'.....}]
-
get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e savechart TIMESTAMP day_kwh tageskwh
- Speichert einen Chart unter Angabe eines 'savename' und seiner zugehörigen Konfiguration
-
get logdb - webchart "" "" "" deletechart "" "" 7
- Löscht einen zuvor gespeicherten Chart unter Angabe einer id
-
-
-
-
-
- Attribute
-
shutdownWait
-
attr <device> shutdownWait
- fhem wartet waehrend des shutdowns fuer n Sekunden, um die Datenbank korrekt zu beenden
-
-
-
DbLogExclude
-
-
- set <device> DbLogExclude regex:MinInterval [regex:MinInterval] ...
-
-
-
- Wenn DbLog genutzt wird, wird in alle Devices das Attribut DbLogExclude
- propagiert. Der Wert des Attributes wird als Regexp ausgewertet und schliesst die
- damit matchenden Readings von einem Logging aus. Einzelne Regexp werden durch
- Kommata getrennt. Ist MinIntervall angegeben, so wird der Logeintrag nur
- dann nicht geloggt, wenn das Intervall noch nicht erreicht und der Wert des
- Readings sich nicht verändert hat.
-
- Beispiele
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ECMD
-
-
-
ECMDDevice
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ECMDDevice
-
-
-
EGPM Steckdose
-
- Definiert eine einzelne Netzwerk-Steckdose vom EGPM2LAN. Diese Definition wird beim Einrichten eines EGPM2LAN automatisch erstellt,
- wenn das globale FHEM-Attribut AUTOCREATE aktiviert wurde. Für weitere Informationen, siehe Beschreibung von EGPM2LAN.
-
-
-
- Define
-
- define <name> EGPM <device> <socket-nr>
-
-
-
-
-
- Set
-
set <name> <[on|off|toggle]>
- Schaltet die Steckdose ein oder aus.
-
-
set <name> <[on-for-timer|off-for-timer|on-till|off-till|blink|intervals]>
- Schaltet die Steckdose fü einen bestimmten Zeitraum oder mehrfach hintereinander. Weitere Infos hierzu unter set extensions.
-
- Beispiel:
-
- define lampe1 EGPM steckdose 1
- set lampe1 on
-
- define <name> EGPM2LAN <IP-Address> [<Password>]
-
- Das Modul erstellt eine Verbindung zu einer Gembird ® Energenie EG-PM2-LAN Steckdosenleiste und steuert 4 angeschlossene Geräte..
- Falls mehrere Steckdosenleisten über das Netzwerk gesteuert werden, ist es ratsam, diese zuerst über die Web-Oberfläche zu konfigurieren und die einzelnen Steckdosen zu benennen. Die Namen werden dann automatisch in die
- Oberfläche von FHEM übernommen. Bitte darauf achten, die Weboberfläche mit Logoff wieder zu verlassen, da der Zugriff sonst blockiert wird.
-
-
- Set
-
- set <name> <[on|off|toggle]> <socketnr.>
- Schaltet die gewählte Steckdose ein oder aus.
-
- set <name> <[on|off]> <all>
- Schaltet alle Steckdosen gleichzeitig ein oder aus.
-
- set <name> <staterequest>
- Aktualisiert die Statusinformation der Steckdosenleiste.
- Wenn das globale Attribut autocreate aktiviert ist, wird für jede Steckdose ein EGPM-Eintrag erstellt.
-
- set <name> <clearreadings>
- Löscht alle ungültigen Einträge im Abschnitt <readings>.
-
-
-
- Get
N/A
-
-
- Attribute
-
-
stateDisplay
- Default: socketNumer wechselt zwischen socketNumer and socketName für jeden Statuseintrag. Verwende set statusrequest, um die Anzeige zu aktualisieren.
-
autocreate
- Default: onEGPM-Einträge werden automatisch mit dem set-command erstellt.
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ESA2000
-
-
-
EnOcean
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: EnOcean
-
-
-
FBAHA
-
- Dieses Modul verbindet sich mit dem AHA (AVM Home Automation) Server auf
- einem FRITZ!Box. Es dient als "physikalisches" Gegenstück zum FBDECT Modul. Achtung: als erstes muss der Zugang zu
- diesen Daten in der FRITZ!Box Web-Oberfläche aktiviert werden.
-
-
- Define
-
- define <name> FBAHA <device>
-
-
- <host> ist normalerweise die Adresse der FRITZ!Box, wo das AHA Server
- läuft (fritz.box oder localhost), <port> ist 2002.
-
- <device> is entweder a eine Kombianation aus <host>:<port>,
- wobei <host> die Adresse der FRITZ!Box ist (localhost AUF dem
- FRITZ.BOX) und <port> 2002 ist, oder
- UNIX:SEQPACKET:/var/tmp/me_avm_home_external.ctl, wobei das nur fuer
- FHEM@FRITZ!BOX zur Verfügung steht. Mit FRITZ!OS 5.50 steht auch der
- Netzwerkport zur Verfügung, auf manchen Laborvarianten nur das UNIX socket.
-
- Beispiel:
-
-
- Einfach die entsprechende Kurzwahl auf irgend einem Telefon eingeben, welches an die Fritz!Box angeschlossen ist.
- Nach ca. 3 Sekunden kann man einfach wieder auflegen. Nun ist der CallMonitor aktiviert.
-
- Sobald der CallMonitor auf der Fritz!Box aktiviert wurde erzeugt das Modul entsprechende Events (s.u.)
-
- Dieses Modul funktioniert mit allen Fritz!Box Modellen, welche Telefonie unterstützen (Namenszusatz: Fon).
-
-
-
- Definition
-
- define <name> FB_CALLMONITOR <IP-Addresse>[:Port]
-
- Port 1012 ist der Standardport und muss daher nicht explizit angegeben werden.
-
-
-
-
- Set-Kommandos
-
-
rereadPhonebook - Liest das Telefonbuch der FritzBox neu ein (per Datei oder direkt lokal)
-
-
-
-
- Get-Kommandos
-
-
search <Rufnummer> - gibt den Namen der Telefonnummer zurück (aus Cache, Telefonbuch oder Rückwärtssuche)
- Aktiviert die Rückwärtssuche der externen Rufnummer der Gegenstelle (bei eingehenden/abgehenden Anrufen).
- Es ist möglich einen bestimmten Suchanbieter zu verwenden, welcher für die Rückwärtssuche verwendet werden soll.
- Falls FHEM auf einer FritzBox Fon läuft, kann mit dem Wert "internal" ausschließlich das interne Telefonbuch verwendet werden.
- Wenn dieses Attribut auf dem Wert "all" steht, wird (sofern FHEM auf einer FritzBox Fon läuft) das interne Telefonbuch verwendet,
- sowie alle verfügbaren Suchanbieter (ausser search.ch und dasschnelle.at)
- für die Rückwärtssuche herangezogen, solange bis irgend ein Anbieter ein valides Ergebniss liefert.
- Wenn der Wert "none" ist, wird keine Rückwärtssuche durchgeführt.
- Wenn dieses Attribut gesetzt ist, werden alle Ergebisse der Rückwärtssuche in einem modul-internen gespeichert
- und von da an nur noch aus dem Cache genutzt anstatt eine erneute Rückwärtssuche durchzuführen.
- Da der Cache nur im Arbeitsspeicher existiert, ist er nicht persisten und geht beim stoppen von FHEM verloren.
- Mit diesem Parameter werden alle Cache-Ergebnisse in eine Textdatei geschrieben (z.B. /usr/share/fhem/telefonbuch.txt)
- und beim nächsten Start von FHEM direkt wieder in den Cache geladen und genutzt.
-
- Mit diesem Attribut kann man optional den Pfad zu einer Datei angeben, welche ein Telefonbuch im FritzBox-Format (XML-Struktur) enthält.
- Dadurch ist es möglich ein FritzBox-Telefonbuch zu verwenden, ohne das FHEM auf einer FritzBox laufen muss.
- Sofern FHEM auf einer FritzBox läuft (und nichts abweichendes angegeben wurde), wird das interne File /var/flash/phonebook verwendet. Alternativ kann man das Telefonbuch in der FritzBox-Weboberfläche exportieren und dieses verwenden
- Standartwert ist /var/flash/phonebook (entspricht dem Pfad auf einer FritzBox)
- Wenn dieses Attribut aktiviert ist, wird die führende Null aus der externen Rufnummer (bei eingehenden & abgehenden Anrufen) entfernt. Dies ist z.B. notwendig bei Telefonanlagen.
- Wenn dieses Attribut aktiviert ist, wird für jedes Gespräch eine eineindeutige Identifizierungsnummer verwendet. Dadurch lassen sich auch bereits beendete Gespräche voneinander unterscheiden. Dies ist zum Beispiel notwendig bei der Verarbeitung der Events durch eine Datenbank.
- Verwendet die gesetze Vorwahlnummer bei Rückwärtssuchen bei Ortsgesprächen (z.B. 0228 für Bonn)
-
-
-
-
- Generierte Events:
-
-
event: (call|ring|connect|disconnect) - Welches Event wurde genau ausgelöst.
-
external_number: - Die Rufnummer des Gegenübers, welcher anruft (event: ring) oder angerufen wird (event: call)
-
external_name: - Das Ergebniss der Rückwärtssuche (sofern aktiviert). Im Fehlerfall kann diese Reading auch den Inhalt "unknown" (keinen Eintrag gefunden) und "timeout" (Zeitüberschreitung bei der Abfrage) enthalten. Im Falle einer Zeitüberschreitung und aktiviertem Caching, wird die Rufnummer beim nächsten Mal erneut gesucht.
-
internal_number: - Die interne Rufnummer (Festnetz, VoIP-Nummer, ...) auf welcher man angerufen wird (event: ring) oder die man gerade nutzt um jemanden anzurufen (event: call)
-
internal_connection: - Der interne Anschluss an der Fritz!Box welcher genutzt wird um das Gespräch durchzuführen (FON1, FON2, ISDN, DECT, ...)
-
external_connection: - Der externe Anschluss welcher genutzt wird um das Gespräch durchzuführen (Festnetz, VoIP Nummer, ...)
-
call_duration: - Die Gesprächsdauer in Sekunden. Dieser Wert wird nur bei einem disconnect-Event erzeugt. Ist der Wert 0, so wurde das Gespräch von niemandem angenommen.
-
call_id: - Die Identifizierungsnummer eines einzelnen Gesprächs. Dient der Zuordnung bei 2 oder mehr parallelen Gesprächen, damit alle Events eindeutig einem Gespräch zugeordnet werden können
-
missed_call: - Dieses Event wird nur generiert, wenn ein eingehender Anruf nicht beantwortet wird. Sofern der Name dazu bekannt ist, wird dieser ebenfalls mit angezeigt.
-
-
-
-
-
-
FHEM2FHEM
-
- FHEM2FHEM ist ein Hilfsmodul, um mehrere FHEM-Installationen zu verbinden.
-
-
- Define
-
- define <name> FHEM2FHEM <host>[:<portnr>][:SSL] [LOG:regexp|RAW:devicename] {portpassword}
-
-
-
- Zum remote (entfernten) FHEM auf Rechner <host> verbinden.
- <portnr> ist der telnetPort des remote FHEM, Standardport ist 7072.
- Der Zusatz :SSL wird benötigt, wenn das remote FHEM
- SSL-Verschlüsselung voraussetzt. Auch auf dem lokalen Host muss dann
- das Perl-Modul IO::Socket::SSL installiert sein.
-
- Anmerkung: Wenn das remote FHEM auf einem eigenen Host läuft, muss
- "telnetPort" des remote FHEM als global festgelegt sein.
-
- Der nächste Parameter spezifiziert den Verbindungs-Typ:
-
-
LOG
- Bei Verwendung dieses Verbindungstyps werden alle Ereignisse (Events) der
- remote FHEM-Installation empfangen. Die Ereignisse sehen aus wie die, die
- nach inform on Befehl erzeugt werden. Sie können
- wie lokale Ereignisse durch FileLog oder notify genutzt werden und mit einem regulären
- Ausdruck gefiltert werden. Die Syntax dafür ist unter der
- notify-Definition beschrieben.
-
- Einschränkungen: die Geräte der remote Installation werden nicht
- lokal angelegt und können weder mit list angezeigt noch lokal
- angesprochen werden. Auf beiden FHEM-Installationen können
- Geräte gleichen Namens angelegt werden, aber wenn beide dasselbe
- Ereignis empfangen (z.B. wenn an beiden Installationen CULs angeschlossen
- sind), werden alle FileLogs und notifys doppelt ausgelöst.
-
-
RAW
- Bei diesem Verbindungstyp werden unaufbereitete Ereignisse (raw messages)
- des remote FHEM-Geräts devicename genau so empfangen, als
- wäre das Gerät lokal verbunden.
-
- Einschränkungen: nur Geräte, welche die "Dispatch-Funktion"
- unterstützen (CUL, FHZ, CM11, SISPM, RFXCOM, TCM, TRX, TUL) erzeugen
- raw messages, und für jedes entfernte Gerät muss ein eigenes
- FHEM2FHEM Objekt erzeugt werden.
-
- devicename muss mit demselben Namen und Typ wie das Remote Devive
- angelegt sein, aber als Dummy, d.h. als device-node "none".
- Zusätzlich müssen alle notwendigen Attribute lokal gesetzt sein
- (z.B. rfmode, wenn die remote CUL im HomeMatic-Modus
- läuft). Die Verwendung bereits bestehender lokaler Geräte ist zu
- vermeiden, weil sonst die Duplikatsfilterung nicht richtig funktioniert
- (siehe dupTimeout).
-
-
- Der letzte Parameter enthält das Passwort des Remote-Servers, wenn dort
- eines aktiviert ist portpassword.
-
-
- Beispiele:
-
- define ds1 FHEM2FHEM 192.168.178.22:7072 LOG:.*
-
- define RpiCUL CUL none 0000
- define ds2 FHEM2FHEM 192.168.178.22:7072 RAW:RpiCUL und auf dem RPi (192.168.178.22):
- rename CUL_0 RpiCUL
-
- FHEMWEB ist das default WEB-Frontend, es implementiert auch einen einfachen
- Webserver (optional mit Basic-Auth und HTTPS).
-
-
-
- Define
-
- define <name> FHEMWEB <tcp-portnr> [global]
-
- Aktiviert das Webfrontend auf dem Port <tcp-portnr>. Mit dem
- Parameter global werden Anfragen von allen Netzwerkschnittstellen
- akzeptiert (nicht nur vom localhost / 127.0.0.1) .
-
- Informationen für den Betrieb mit IPv6 finden Sie hier.
-
-
-
-
- Set
-
-
rereadicons
- Damit wird die Liste der Icons neu eingelesen, für den Fall, dass
- Sie Icons löschen oder hinzufügen.
-
-
clearSvgCache
- Im Verzeichnis www/SVGcache werden SVG Daten zwischengespeichert, wenn
- das Attribut SVGcache gesetzt ist. Mit diesem Befehl leeren Sie diesen
- Zwischenspeicher.
-
-
-
-
-
- Get
-
-
icon <logical icon>
- Liefert den absoluten Pfad des (logischen) Icons zurück. Beispiel:
-
- get myFHEMWEB icon FS20.on
- /data/Homeautomation/fhem/FHEM/FS20.on.png
-
-
-
pathlist
- Zeigt diejenigen Verzeichnisse an, in welchen die verschiedenen Dateien
- für FHEMWEB liegen.
-
-
-
-
-
-
- Attributes
-
-
-
webname
- Der Pfad nach http://hostname:port/ . Standard ist fhem,
- so ist die Standard HTTP Adresse http://localhost:8083/fhem
-
-
-
-
refresh
- Damit erzeugen Sie auf den ausgegebenen Webseiten einen automatischen
- Refresh, z.B. nach 5 Sekunden.
-
-
-
-
plotmode
- Spezifiziert, wie Plots erzeugt werden sollen:
-
-
SVG
- Die Plots werden mit Hilfe des SVG Moduls als SVG
- Grafik gerendert. Das ist die Standardeinstellung.
-
-
gnuplot
- Die Plots werden mit Hilfe des gnuplot Programmes erzeugt. Diese
- Option ist aus historischen Gründen vorhanden.
-
-
-
gnuplot-scroll
- Wie gnuplot, der einfache Zugriff auf historische Daten ist aber
- genauso möglich wie mit dem SVG Modul.
-
-
-
-
-
-
plotsize
- gibt die Standardbildgröße aller erzeugten Plots an als
- Breite,Höhe an. Um einem individuellen Plot die Größe zu
- ändern muss dieses Attribut bei der entsprechenden SVG Instanz
- gesetzt werden. Default sind 800,160 für Desktop und 480,160
- für Smallscreen
-
-
-
-
nrAxis
- (bei mehrfach-Y-Achsen im SVG-Plot) Die Darstellung der Y Achsen
- benötigt Platz. Hierdurch geben Sie an wie viele Achsen Sie
- links,rechts [useLeft,useRight] benötigen. Default ist 1,1 (also 1
- Achse links, 1 Achse rechts).
-
-
-
-
SVGcache
- Plots die sich nicht mehr ändern, werden im SVGCache Verzeichnis
- (www/SVGcache) gespeichert, um die erneute, rechenintensive
- Berechnung der Grafiken zu vermeiden. Default ist 0, d.h. aus.
- Siehe den clearSvgCache Befehl um diese Daten zu löschen.
-
-
-
-
endPlotToday
- Wird dieses FHEMWEB Attribut gesetzt, so enden Wochen- bzw. Monatsplots
- am aktuellen Tag, sonst wird die aktuelle Woche/Monat angezeigt.
-
-
-
-
endPlotNow
- Wenn Sie dieses FHEMWEB Attribut auf 1 setzen, werden Tages und
- Stunden-Plots zur aktuellen Zeit beendet. (Ähnlich wie
- endPlotToday, nur eben minütlich).
- Ansonsten wird der gesamte Tag oder eine 6 Stunden Periode (0, 6, 12,
- 18 Stunde) gezeigt. Dieses Attribut wird nicht verwendet, wenn das SVG
- Attribut startDate benutzt wird.
-
-
-
-
ploteditor
- Gibt an ob der Plot Editor in der SVG detail
- ansicht angezeigt werden soll. Kann auf always, onClick oder never
- gesetzt werden. Der Default ist always.
-
-
-
-
plotfork
- Normalerweise wird die Ploterstellung im Hauptprozess ausgeführt,
- FHEM wird wärend dieser Zeit nicht auf andere Ereignisse
- reagieren. Auf Rechnern mit sehr wenig Speicher (z.Bsp. FRITZ!Box 7170)
- kann das zum automatischen Abschuss des FHEM Prozesses durch das OS
- führen.
-
-
-
-
basicAuth, basicAuthMsg
- Fragt username/password zur Autentifizierung ab. Es gibt mehrere
- Varianten:
-
-
falls das Argument nicht in {} eingeschlossen ist, dann wird
- es als base64 kodiertes benutzername:passwort interpretiert.
- Um sowas zu erzeugen kann man entweder einen der zahlreichen
- Webdienste verwenden, oder das base64 Programm. Beispiel:
-
Werden die Argumente in {} angegeben, wird es als perl-Ausdruck
- ausgewertet, die Variablen $user and $password werden auf die
- eingegebenen Werte gesetzt. Falls der Rückgabewert wahr ist,
- wird die Anmeldung akzeptiert.
-
- Beispiel:
-
- attr WEB basicAuth { "$user:$password" eq "admin:secret" }
-
-
-
-
-
-
-
HTTPS
- Ermöglicht HTTPS Verbindungen. Es werden die Perl Module
- IO::Socket::SSL benötigt, installierbar mit cpan -i
- IO::Socket::SSL oder apt-get install libio-socket-ssl-perl; (OSX und
- die FritzBox-7390 haben dieses Modul schon installiert.)
-
- Ein lokales Zertifikat muss im Verzeichis certs erzeugt werden.
- Dieses Verzeichnis muss im modpath
- angegeben werden, also auf der gleichen Ebene wie das FHEM Verzeichnis.
- Beispiel:
-
allowedCommands
- Eine Komma getrennte Liste der erlaubten Befehle. Bei einer leeren
- Liste (, dh. nur ein Komma) wird dieser FHEMWEB-Instanz "read-only".
- Falls es auf get,set gesetzt ist, dann sind in dieser
- FHEMWEB Instanz keine Konfigurationsänderungen möglich, nur
- "normale" Bedienung der Schalter/etc.
-
- Dieses Attribut sollte zusammen mit dem hiddenroom/hiddengroup
- Attributen verwendet werden.
-
- Achtung: allowedCommands sollte wie hier beschrieben
- funktionieren, allerdings können wir keine Garantie geben,
- daß man sie nicht überlisten, und Schaden anrichten kann.
-
stylesheetPrefix
- Präfix für die Dateien style.css, svg_style.css und
- svg_defs.svg. Wenn die Datei mit dem Präfix fehlt, wird die Default
- Datei (ohne Präfix) verwendet. Diese Dateien müssen im FHEM
- Ordner liegen und können direkt mit "Select style" im FHEMWEB
- Menüeintrag ausgewählt werden. Beispiel:
-
- attr WEB stylesheetPrefix dark
-
- Referenzdateien:
-
- Anmerkung:Wenn der Parametername smallscreen oder touchpad
- enthält, wird FHEMWEB das Layout/den Zugriff für entsprechende
- Geräte (Smartphones oder Touchpads) optimieren
-
- Standardmäßig werden 3 FHEMWEB Instanzen aktiviert: Port 8083
- für Desktop Browser, Port 8084 für Smallscreen, und 8085
- für Touchpad.
-
- Wenn touchpad oder smallscreen benutzt werden, wird WebApp support
- aktiviert: Nachdem Sie eine Seite am iPhone oder iPad mit Safari
- angesehen haben, können Sie einen Link auf den Homescreen anlegen um
- die Seite im Fullscreen Modus zu sehen. Links werden in diesem Modus
- anders gerendert, um ein "Zurückfallen" in den "normalen" Browser zu
- verhindern.
-
-
-
-
iconPath
- Durch Doppelpunkt getrennte Aufzählung der Verzeichnisse, in
- welchen nach Icons gesucht wird. Die Verzeichnisse müssen unter
- fhem/www/images angelegt sein. Standardeinstellung ist:
- $styleSheetPrefix:default:fhemSVG:openautomation
- Setzen Sie den Wert auf fhemSVG:openautomation um nur SVG Bilder zu
- benutzen.
-
-
-
-
hiddenroom
- Eine Komma getrennte Liste, um Räume zu verstecken, d.h. nicht
- anzuzeigen. Besondere Werte sind input, detail und save. In diesem
- Fall werden diverse Eingabefelder ausgeblendent. Durch direktes Aufrufen
- der URL sind diese Räume weiterhin erreichbar!
- Ebenso können Einträge in den Logfile/Commandref/etc Block
- versteckt werden.
-
-
-
hiddengroup
- Wie hiddenroom (siehe oben), jedoch auf Gerätegruppen bezogen.
-
- Beispiel: attr WEBtablet hiddengroup FileLog,dummy,at,notify
-
-
-
-
menuEntries
- Komma getrennte Liste; diese Links werden im linken Menü angezeigt.
- Beispiel:
- attr WEB menuEntries fhem.de,http://fhem.de,culfw.de,http://culfw.de
- attr WEB menuEntries AlarmOn,http://fhemhost:8083/fhem?cmd=set%20alarm%20on
-
-
-
-
longpoll
- Dies betrifft die Aktualisierung der Gerätestati in der
- Weboberfläche. Ist longpoll aktiviert, werden
- Statusänderungen sofort im Browser dargestellt. ohne die Seite
- manuell neu laden zu müssen. Standard ist aktiviert.
-
-
-
-
-
longpollSVG
- Lädt SVG Instanzen erneut, falls ein Ereignis dessen Inhalt
- ändert. Funktioniert nur, falls der dazugehörige #FileLog
- Definition in der .gplot Datei folgenden Form hat: deviceName.Event
- bzw. deviceName.*. Wenn man den Plot
- Editor benutzt, ist das übrigens immer der Fall. Die SVG Datei
- wird bei jedem auslösenden Event dieses Gerätes neu
- geladen. Standard ist aus.
-
-
-
-
redirectCmds
- Damit wird das URL Eingabefeld des Browser nach einem Befehl geleert.
- Standard ist eingeschaltet (1), ausschalten kann man es durch
- setzen des Attributs auf 0, z.Bsp. um den Syntax der Kommunikation mit
- FHEMWEB zu untersuchen.
-
-
-
-
fwcompress
- Aktiviert die HTML Datenkompression (Standard ist 1, also ja, 0 stellt
- die Kompression aus).
-
-
-
-
reverseLogs
- Damit wird das Logfile umsortiert, die neuesten Einträge stehen
- oben. Der Vorteil ist, dass man nicht runterscrollen muss um den
- neuesten Eintrag zu sehen, der Nachteil dass FHEM damit deutlich mehr
- Hauptspeicher benötigt, etwa 6 mal so viel, wie das Logfile auf
- dem Datenträger groß ist. Das kann auf Systemen mit wenig
- Speicher (FRITZ!Box) zum Terminieren des FHEM Prozesses durch das
- Betriebssystem führen.
-
-
-
-
CORS
- Wenn auf 1 gestellt, wird FHEMWEB einen "Cross origin resource sharing"
- Header bereitstellen, näheres siehe Wikipedia.
-
-
-
-
icon
- Damit definiert man ein Icon für die einzelnen Geräte in der
- Raumübersicht. Es gibt einen passenden Link in der Detailansicht
- um das zu vereinfachen. Um ein Bild für die Räume selbst zu
- definieren muss ein Icon mit dem Namen ico<Raumname>.png im
- iconPath existieren (oder man verwendet roomIcons, s.u.)
-
-
-
-
roomIcons
- Leerzeichen getrennte Liste von room:icon Zuordnungen
- Der erste Teil wird als regexp interpretiert, daher muss ein
- Leerzeichen als Punkt geschrieben werden. Beispiel:
- attr WEB roomIcons Anlagen.EDV:icoEverything
-
-
-
-
sortRooms
- Durch Leerzeichen getrennte Liste von Räumen, um deren Reihenfolge
- zu definieren. Beispiel:
- attr WEB sortRooms DG OG EG Keller
-
-
-
-
defaultRoom
- Zeigt den angegebenen Raum an falls kein Raum explizit ausgewählt
- wurde. Achtung: falls gesetzt, wird motd nicht mehr angezeigt.
- Beispiel:
- attr WEB defaultRoom Zentrale
-
-
-
-
sortby
- Der Wert dieses Attributs wird zum sortieren von Geräten in
- Räumen verwendet, sonst wäre es der Alias oder, wenn keiner
- da ist, der Gerätename selbst.
-
-
-
-
devStateIcon
- Erste Variante:
-
- Leerzeichen getrennte Auflistung von regexp:icon-name:cmd
- Dreierpärchen, icon-name und cmd dürfen leer sein.
-
- Wenn der Zustand des Gerätes mit der regexp übereinstimmt,
- wird als icon-name das entsprechende Status Icon angezeigt, und (falls
- definiert), löst ein Klick auf das Icon das entsprechende cmd aus.
- Wenn fhem icon-name nicht finden kann, wird der Status als Text
- angezeigt.
- Beispiel:
-
- Perl regexp eingeschlossen in {}. Wenn der Code undef
- zurückliefert, wird das Standard Icon verwendet; wird ein String
- in <> zurück geliefert, wird dieser als HTML String interpretiert.
- Andernfalls wird der String als devStateIcon gemäß der
- ersten Variante interpretiert, siehe oben. Beispiel:
-
- {'<div style="width:32px;height:32px;background-color:green"></div>'}
-
-
-
-
-
devStateStyle
- Für ein best. Gerät einen best. HTML-Style benutzen.
- Beispiel:
-
webCmd
- Durch Doppelpunkte getrennte Auflistung von Befehlen, die für ein
- bestimmtes Gerät gelten sollen. Funktioniert nicht mit
- smallscreen, ein Ersatz dafür ist der devStateIcon Befehl.
- Beispiel:
-
- attr lamp webCmd on:off:on-for-timer 10
-
-
-
- Der erste angegebene Befehl wird in der "set device ?" list
- nachgeschlagen (Siehe das setList Attrib
- für Dummy Geräte). Wenn dort bekannte Modifier sind,
- wird ein anderes Widget angezeigt:
-
-
Ist der Modifier ":noArg", wird kein weiteres Eingabefeld
- angezeigt.
-
-
Ist der Modifier ":time", wird ein in Javaskript geschreibenes
- Zeitauswahlmenü angezeigt.
-
-
Ist der Modifier ":textField", wird ein Eingabefeld
- angezeigt.
-
-
Ist der Modifier in der Form
- ":slider,<min>,<step>,<max>", so wird ein in
- JavaScript programmierter Slider angezeigt
-
-
Ist der Modifier ":multiple,val1,val2,...", dann ein
- Mehrfachauswahl ist möglich, das Ergebnis ist Komma-separiert.
-
-
In allen anderen Fällen erscheint ein Dropdown mit allen
- Modifier Werten.
-
-
- Wenn der Befehl state ist, wird der Wert als Kommando interpretiert.
- Beispiele für modifier:
-
-
- Anmerkung: dies ist ein Attribut für das anzuzeigende Gerät,
- nicht für die FHEMWEBInstanz.
-
-
-
-
column
- Damit werden mehrere Spalten für einen Raum angezeigt, indem
- sie verschiedene Gruppen Spalten zuordnen. Beispiel:
-
- attr WEB column LivingRoom:FS20,notify|FHZ,notify DiningRoom:FS20|FHZ
-
-
- In diesem Beispiel werden im Raum LivingRoom die FS20 sowie die notify
- Gruppe in der ersten Spalte, die FHZ und das notify in der zweiten
- Spalte angezeigt.
-
- Anmerkung: einige Elemente, wie SVG Plots und readingsGroup können
- nur Teil einer Spalte sein wenn sie in group
- stehen.
-
-
-
-
closeConn
- Falls gesetzt, wird pro TCP Verbindung nur ein HTTP Request
- durchgefuehrt. Fuer bestimmte Hardware-Kombinationen (langsamer FHEM
- Server, iPad/iPhone als Client) scheint dieses Attribu Ladeprobleme zu
- beheben.
-
-
-
-
-
-
-
FHT
-
- Fhem kann FHT Funktelegramme (868.35 MHz) entweder mit einem FHZ oder einem CUL empfangen, daher muss
- dieses zuerst definiert sein.
-
-
-
- Define
-
- define <name> FHT <fhtaddress>
-
-
- <fhtaddress> ist eine vierstellige HEX Zahl entsprechend der
- Adresse des FHT80b Gerätes.
-
-
- Beispiel:
-
- Diese Strings können für notify oder
- FileLog Definitionen verwendet werden.
-
-
Warnings können folgende Strings enthalten:
- none, Battery low,Temperature too low, Window open,
- Fault on window sensor
-
-
actuator (ohne Suffix) steht für alle Aktoren.
-
actuator or actuator1..8 kann folgende Werte verarbeiten:
-
-
<value>%
- Das ist der Normalfall. Der Aktor wird angewiesen auf diesen
- Wert zu öffnen.
-
-
offset <value>%
- Der Aktor läuft mit diesem Offset.
-
-
lime-protection
- Der Aktor wird angewiesen die lime-protection (Kalkschutz)
- Prozedur auszuführen.
-
-
synctime
- Wenn Sond/Sync beim FHT80B gewählt wird, wird ein
- Countdown gesetzt.
-
-
test
- Der Aktor wird vom FHT80b angewiesen zu piepsen (beep).
-
-
pair
- Das FHT80b sendet ein "you-belong-to-me"
- (Du-gehörst-zu-mir) an diesen Aktor.
-
-
-
-
-
-
Das FHT ist sehr sparsam (oder faul). Es akzeptiert eine Nachricht
- vom FHZ1x00 alle 115+x Sekunden, wobei x von der fhtaddress
- abhängt. Nicht überrascht sein wenn ein Befehl erst 10
- Minuten später vom Gerät angenommen wird. Die FHT Befehle
- werden im FHZ1x00/CUL gepuffert bis sie zum FHT geschickt werden.
- Siehe den zugehörigen fhtbuf Eintrag im der get Abschnitt. Es können bis zu 8 Befehle in
- einer Nachricht an ein FHT geschickt werden wenn diese alle als
- Argumente im gleichen set Befehl zusammengefasst werden. Siehe
- nachfolgendes Beispiel.
-
-
time setzt Stunde und Minute auf lokale Zeit
-
-
date setzt Jahr, Monat und Tag auf lokale Zeit
-
-
refreshvalues ist ein Alias für report1 255 report2 255
-
-
Alle *-temp Werte brauchen eine Temperatur als Argument welche auf
- 0.5°C gerundet wird. Temperatur Werte müssen zwischen
- 5.5°C und 30.5°C sein. Der Wert 5.5 setzt den Aktor auf OFF,
- der Wert 30.5 setzt den Aktor auf ON
-
-
mode kann auto, manual, holiday or
- holiday_short sein.
- Wenn der mode holiday ist, schaltet dieser zurück auf entweder
- auto oder manual um 00:00 des Tages der wie folgt spezifiziert wird:
-
-
holiday1 setzt Endtag des Urlaubs
-
holiday2 setzt den Endmonat des Urlaubs
-
- Für holiday_short (Party Modus)
-
-
holiday1 setzt die absolute Stunde zu der von diesem Modus
- zurück geschalten wird (in 10-Minuten Schritten, max.
- 144)
-
-
holiday2 setzt den Tag des Monats an dem von diesem Modus
- zurück geschalten wird (kann nur heute oder morgen sein, da
- holiday1 nur 24h akzeptiert.)
-
- Beispiel:
-
-
Aktuelles Datum ist der 29. Januar, Uhrzeit ist 18:05
-
Es soll bis morgen 1:00Uhr in den Party Modus geschalten
- sein
-
set holiday1 to 6 (6 x 10min = Std) and holiday2 to
- 30
-
-
-
- Die Temperatur für den Urlaubszeitraum wird durch den
- desired-temperature Parameter setzt. Bitte beachten, dass der
- Holiday Mode nicht früher als auf Übermorgen eingestellt
- werden kann. Alternativ muss hier holiday_short genutzt werden.
- Weiterhin bitte beachten das diese Kommandos nur in einem
- "Sammelkommando" erfolgen können. Beispiel:
-
- set FHT1 mode holiday holiday1 24 holiday2 12 desired-temp 14
-
-
-
Die *-from1/*-from2/*-to1/*-to2 Wertetypen brauchen eine
- Zeitspezifikation als Argument im Format HH:MM. Diese definieren den
- Zeitraum in dem die day-temp gültig ist. Minuten (MM) werden
- auf 10er gerundet, 24:00 bedeutet OFF.
-
-
Um die FHZ Zeit zu synchronisieren und um "stumme" Geräte
- zu wecken, wird folgendes Kommando empfohlen: define fht_sync at
- +*3:30 set TYPE=FHT time
-
-
report1 mit dem Parameter 255 fordert das Senden aller Einstellungen
- von Montag bis Sonntag an. Das Argument ist ein Bitfeld um einzelne
- Werte wie folgt anzufordern:
-
-
1: monday
-
2: tuesday
-
4: thursday
-
8: wednesday
-
16: friday
-
32: saturday
-
64: sunday
-
- measured-temp und actuator werden mitgesendet wenn vom FHT als
- notwendig erachtet.
-
- Hinweis: Dieser Befehl erzeugt sehr viel Funkverkehr was zu
- weiteren Problemen führen kann, besonders wenn Empfang nicht gut
- ist.
-
-
report2 mit dem Parameter 255 fordert die Ausgabe der nachfolgenden
- Einstellungen an: day-temp night-temp windowopen-temp
- lowtemp-offset desired-temp measured-temp mode warnings. Das
- Argument ist ein Bitfeld, um einzelne Werte abzufragen folgendes
- anhängen:
-
-
1: warnings
-
2: mode
-
4: day-temp, night-temp, windowopen-temp
-
64: lowtemp-offset
-
- measured-temp und actuator werden mitgesendet wenn vom FHT als
- notwendig erachtet.
-
-
lowtemp-offset braucht eine Temperatur als Argument. Gültige
- Werte müssen zwischen 1.0 und 5.0°C liegen. Wird eine
- Warnung erzeugen wenn die desired-temp - measured-temp >
- lowtemp-offset, jedoch frühestens 1,5Stunden nach der letzten
- Änderung der desired-temp.
-
-
FHEM hat optional einen internen Softwarepuffer für FHT
- Devices. Dieser Puffer soll vor Übertragungsfehlern
- schützen. Wenn nach einem bestimmten Zeitraum keine
- Bestätigung erhalten wurde wird FHEM den Befehl erneut senden.
- Die Befehle in der Warteschlagen können mit list <fht-device> angezeigt werden. Siehe die
- Attribute fhtsoftbuffer, retrycount und minfhtbuffer für weitere Details.
-
-
-
Befehle im Softwarepuffer werden in folgender Reihenfolge
- gesendet:
- desired-temp,mode,report1,report2,holiday1,holiday2,day-temp,night-temp,
- [all other commands]
-
-
-
-
-
- Get
N/A
-
-
- Attribute
-
-
dummy
- Hinweis: Es macht Sinn ein FHT Device auch für ein FHT8b zu
- definieren da sonst der Fehler "unknown FHT device, please define one"
- für jedes FHT8b generiert wird, denn das CUL meldet die 8b
- Nachrichten. Das dummy Attribut sollte bei diesen Devices gesetzt werden
- da sonst der interne FHT Buffer des CUL mit 8b-Daten gefüllt wird
- die niemals gebraucht werden. Wenn der Puffer dann voll ist werden "EOB"
- Nachrichten vom CUL erzeugt, und Senden zu den 8b ist nicht mehr
- möglich.
-
-
-
retrycount
- Wenn das fhtsoftbuffer Attribut gesetzt ist,
- dann werden die Befehle entsprechend dem retrycount n-mal erneut
- versendet wenn nach 240 Sekunden keine Bestätigungsmeldung vom
- entsprechenden FHZ Device empfangen wurde. Der Default-Wert ist
- 1.
-
-
-
minfhtbuffer
- FHEM sendet keine Befehle mehr zum FHZ wenn der fhtbuffer-Wert diesen
- Wert unterschritten hat. Default-Wert ist 0. Wenn dieser Wert zu niedrig
- ist hat die Reihenfolge von fht-Befehlen weniger Einfluss da nur Befehle
- im Softbuffer priorisiert werden können. (Siehe Hinweise in der FHT
- Sektion set) Der Maximalwert sollte 7 unter dem
- Hardware Maximum sein, siehe fhtbuf.
-
-
-
lazy
- Wenn das Attribut lazy (faul) gesetzt wurde sendet FHEM keine Befehle
- wenn die aktuell gelesenen Werte und der zu setzende Wert identisch sind.
- Das spart Funkzeit und hilft Konflikte mit der Regelung die besagt, dass
- maximal 1% der Zeit als Funkzeit verwendet werden darf, zu vermeiden.
- Nicht standardmäßig aktiviert.
-
-
-
tmpcorr
- Korrigiert die Werte die vom FHZ gemeldet werden um den angegebenen Wert.
- Hinweis: nur die measured-temp Werte die von FHEM gemeldet (für
- Logging genutzt) werden angepasst.
ack can-xmit can-rcv ack2 start-xmit end-xmit (Nur wenn das CUL
- für die Übertragung von FHT Protokoll Daten konfiguriert
- ist)
-
-
-
-
-
-
-
FHT8V
-
-
- Fhem kann die Ventile vom Typ FHT8V durch einen CUL
- direkt, ohne zwischengeschalteten FHT, ansteuern. Dieser Abschnitt
- beschreibt einen der Bausteine, der andere ist das PID Device.
-
-
-
-
- Define
-
- define <name> FHT8V <Hauscode> [IODev|FHTID]
-
-
- <Hauscode> ist eine vierstellige hexadezimale Zahl, die
- folgende Beziehung zum zuständigen CUL-Device aufweisen muss:
-
-
Bei gegebenem Hauscode des CUL als AABB muss dieser Hauscode die Form CCBB
- haben, wobei CC größer oder gleich AA, aber kleiner AA+8 sein muss.
-
-
- Diese Form wurde gewählt, damit der CUL alle FHT8V-Ventilstellungen
- innerhalb von zwei Minuten aktualisieren kann.
-
- <IODev> muß angegeben werden, wenn der als letzter
- definierte CUL nicht der zuständige ist. Normalerweise wird dies mit
- dem IODev-Attribut gesetzt, da die
- Überprüfung der Adresse aber während der Definition erfolgt,
- brauchen wir hier eine Ausnahme.
-
- Als Alternative kann man die FHTID des zuständigen IODev-Gerätes
- (anstelle des IODev selbst) setzen. Diese Methode ist nötig, wenn man
- FHT8V über FHEM2FHEM betreibt.
-
- Beispiel:
-
- define wz FHT8V 3232
-
-
-
-
-
- Set
-
-
set <name> valve <Wert>
- Öffnet das Ventil auf den angegebenen Wert (in Prozent, von 0 bis 100).
-
-
set <name> pair
- Verbindet das Ventil mit dem CUL.
-
-
set <name> decalc
- Startet einen Entkalkungslauf des angegebenen Ventils.
-
-
-
-
-
- Get
-
-
get <name> valve
- Liest die Ventilöffnung aus dem FHT-Puffer des CUL und wandelt sie
- in Prozent (von 0 bis 100) um.
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FHZ
-
-
-
FLOORPLAN
-
- Fügt dem fhem-Menü einen zusätzlichen Menüpunkt "Floorplans" hinzu, dre zu einer Anzeige ohne fhem-Menü, Räume oder device-Listen führt.
- Geräte können an einer festlegbaren Koordinate auf dem Bildschirm angezeigt werden, üblicherweise mit einem anklickbaren icon, das das Ein- oder Aus-Schalten
- des Geräts durch klicken erlaubt. Ein Hintergrundbild kann verwendet werden - z.B. ein Grundriss oder jegliches andere Bild.
- Mit floorplanstyle.css kann die Formatierung angepasst werden.
- Eine Schritt-für-Schritt-Anleitung zur Einrichtung ist verfügbar in
- Englisch und
- Deutsch.
-
-
-
- Define
-
- define <name> FLOORPLAN
-
-
- Hinweis: Speichern Sie Ihr Hintergrundbild mit dem Dateinamen fp_<name>.png in Ihrem icon_ordner (www/images/default , www/pgm2 or FHEM) .
- A userattr fp_<name> wird automatisch angelegt, sofern es noch nicht existiert.
-
-
top = Bildschirmposition, pixel vom oberen Bildschirmrand
-
left = Bildschirmposition, pixel vom linken Bildschirmrand
-
style =
-
-
0 nur icon/Status
-
1 Gerätename und icon/Status
-
2 Gerätename, icon/Status und Kommandos
-
3 Geräte-reading und optionale Beschreibung
-
4 S300TH-spezifisch, zeigt Temperatur und Luftfeuchtigkeit an
-
5 icon/Status und Kommandos (ohne Gerätename)
-
6 Geräte-reading, Zeitstempel und optionale Beschreibung
-
-
-
Eine ggf. angegebene Bschreibung wird anstelle des original-Gerätenamens angezeigt.
-
- Beispiele:
-
-
-
attr lamp1 fp_Erdgeschoss 100,100
#display lamp1 with icon only at screenposition 100,100
-
attr lamp2 fp_Erdgeschoss 100,140,1,Art-Deco
#display lamp2 with description 'Art-Deco-Light' at 100,140
-
attr lamp2 fp_ErsteEtage 130,100,1
#display the same device at different positions on other floorplans
-
attr myFHT fp_Erdgeschoss 300,20,10,Temperature
#display given Text + FHT-temperature
-
-
- Hinweis: Die Parameter müssen ohne Leerstellen aneinandergereiht werden.
-
-
-
fp_arrange
- Aktiviert den "arrange-Modus" der ein zusätzliches Menü anzeigt,
- mit dem Geräte auf dem Bildschirm angeordnet werden können. Dabei können die Koordinaten auch durch Platzieren mit der Maus gesetzt werden.
- Beispiel:
-
- attr Erdgeschoss fp_arrange 1
- attr Erdgeschoss fp_arrange detail #Zeigt die Geräte mit den Infos Raum, Typ und Alias
- attr Erdgeschoss fp_arrange WEB #Aktiviert den arrange-Modus nur für die Webinstanz WEB
-
-
-
stylesheet
- Ermöglicht die Verwendung eines eigenen css-stylesheet für Ihren floorplan. Dieses Attribut hat Vorrang vor dem Standard-stylesheet.
- Das Standard-stylesheet für floorplans ist floorplanstyle.css. Falls stylesheetPrefix in der korrespondierenden FHEMWEB-Instanz gesetzt ist, wird dieser
- stylesheetPrefix auch dem stylesheet für floorplans vorangestellt (prepend).
- Alle stylesheets werden im stylesheet-Ordner des fhem-Dateisystems abgelegt. Legen Sie dort
- Ihr eigenes stylesheet neben floorplanstyle.css in demselben Ordner ab.
- Beispiel:
-
fp_default
- Der floorplan-Startbildschirm wird übersprungen wenn dieses Attribut einem der von Ihnen definierten floorplans zugeordnet ist.
-
- Beispiel:
-
- attr Erdgeschoss fp_default 1
-
-
-
fp_noMenu
- Blendet das floorplans-Menü aus, das normalerweise am linken Bildschirmrand angezeigt wird.
-
- Beispiel:
-
- attr Erdgeschoss fp_noMenu 1
-
-
-
commandfield
- Fügt Ihrem floorplan ein fhem-Kommandofeld hinzu.
-
- Beispiel:
-
- attr Erdgeschoss commandfield 1
-
-
-
fp_backgroundimg
- Gestattet die Bennung eine Hintergundbilds unabhängig vom floorplan-Namen.
- Hinweis: Das Attribut kann mittels notify geändert werden, um z.B. unterschiedliche Hintergundbidlder am Tag oder in der Nacht anzuzeigen.
- Beispiel:
-
- attr Erdgeschoss fp_backgroundimg foobar.png
-
-
-
-
fp_viewport
- Gestattet die Verwendung eines abweichenden viewport-Wertes für die touchpad-Ausgabe.
- Die Default-viewport-Angbe ist "width=768".
-
-
-
-
fp_roomIcons
- Mit Leerstellen getrennte Liste von floorplan:icon -Paaren, um
- einem Eintrag des floorplan-Menues icons zuzuordnen, genau wie
- die entsprechende Funktionalitaet in FHEMWEB. Beispiel:
- attr Grundriss fp_roomIcons Grundriss:control_building_empty Media:audio_eq
-
-
-
-
Vererbt von FHEMWEB
- Die folgenden Attribute werden von der zugrundliegenden FHEMWEB-Instanz vererbt:
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM
-
-
-
FRM_AD
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_AD
-
-
-
FRM_I2C
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_I2C
-
-
-
FRM_IN
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_IN
-
-
-
FRM_LCD
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_LCD
-
-
-
FRM_OUT
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_OUT
-
-
-
FRM_PWM
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_PWM
-
-
-
FRM_RGB
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_RGB
-
-
-
FRM_ROTENC
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_ROTENC
-
-
-
FRM_SERVO
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_SERVO
-
-
-
FRM_STEPPER
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: FRM_STEPPER
-
-
-
FS20
-
- Das FS20 Protokoll wird von einem großen Spektrum an Geräten
- verwendet. Diese stammen entweder aus der Kategorie Sensor/Sender oder
- Aktor/Empfänger. Die Funknachrichten (868.35 MHz) können mit einem
- FHZ oder einem CUL empfangen werden.
- Dieses muss daher zuerst definiert werden.
-
-
- Die Werte housecode, button, fg, lm, und gm können entweder hexadezimal
- oder in der ELV-typischen quaternären Notation (Zahlen von 1-4)
- eingegeben werden.
- Hier und auch in späteren Beispielen wird als Referenz die ELV4
- Notation verwendet. Die Notationen können auch gemischt werden da FHEM
- die verwendete Notation durch zählen der Zeichen erkennt.
-
-
-
<housecode> ist eine 4 stellige Hex oder 8 stellige
- ELV4 Zahl, entsprechend der Hauscode Adresse.
-
-
<button> ist eine 2 stellige Hex oder 4 stellige ELV4
- Zahl, entsprechend dem Button des Transmitters.
-
-
Optional definiert <fgaddr> die Funktionsgruppe mit
- einer 2 stelligen Hex oder 4 stelligen ELV4 Adresse. Bei Hex muss die
- erste Stelle F, bei ELV4 die ersten zwei Stellen 44 sein.
-
-
Optional definiert <lmaddr> definiert einen local
- master mit einer 2 stelligen Hex oder 4 stelligen ELV4 Adresse. Bei Hex
- muss die letzte Stelle F, bei ELV4 die letzten zwei Stellen 44 sein.
-
-
Optional definiert gm den global master. Die Adresse muss FF bei HEX
- und 4444 bei ELV4 Notation sein.
- Wobei value einer der folgenden Werte sein kann:
-
- dim06% dim12% dim18% dim25% dim31% dim37% dim43% dim50%
- dim56% dim62% dim68% dim75% dim81% dim87% dim93% dim100%
- dimdown
- dimup
- dimupdown
- off
- off-for-timer
- on # dimmer: Setze auf diesen Wert vor dem Ausschalten
- on-for-timer # Siehe Hinweise
- on-old-for-timer # Setze zum vorherigen (vor dem Einschalten)
- ramp-on-time # Zeit bis zum erreichen des gewünschten Dim-Wertes
- ramp-off-time # Zeit bis zum Ausschalten bei Dimmern
- reset
- sendstate
- timer
- toggle # zwischen aus und dem letztern Dim-Wert
- on-till # Siehe Hinweise
-
- Die set extensions sind ebenfalls
- unterstützt.
-
- Beispiele:
-
- set lamp on
- set lamp1,lamp2,lamp3 on
- set lamp1-lamp3 on
- set lamp on-for-timer 12
-
-
-
- Hinweise:
-
-
reset nur mit Vorsicht verwenden: Auch der Hauscode wird
- gelöscht.
-
-
Da das FS20 Protokoll 0.22Sek für eine Funksequenz benötigt
- wird nach jeder Ausführung eine Pause von 0.22Sek eingefügt.
-
-
-
Das FS20ST schaltet für dim*% und dimup ein. Es reagiert nicht
- auf sendstate.
-
-
Wenn ein Timer gesetzt ist (und dieser nicht 0 ist) werden on, dim*,
- und *-for-timer berücksichtigt (zumindest beim FS20ST).
-
-
Das time Argument geht von 0.25Sek bis 4Std und 16Min.
- Da time nur mit einem Byte dargestellt wird ergeben sich
- hieraus nur 112 eindeutige Zeit-Werte die mit ansteigender
- größe immer gröber aufgelöst werden. Das Programm
- zeigt die exakte Restzeit an wenn die gewählte Auflösung
- nicht eindeutig war. Die Auflösung ist is 0.25Sek von 0 bis 4
- Sekunden, 0.5Sek von 4 bis 8Sek, 1Sek von 8 bis 16 Sek und so weiter.
- Wenn eine höhere Genauigkeit bei großen Werten gebraucht
- wird, dann hilft at mit einer Auflösung von
- 1Sek.
-
-
on-till setzt eine absolute Zeit im "at" Format voraus (HH:MM:SS,
- HH:MM oder { <perl code> }, wobei der perl-code eine Zeit
- zurück geben muss). Wenn die aktuelle Zeit größer ist
- als die angegebene, dann wird der Befehl ignoriert und ein at-"on"
- Befehl erzeugt, sowie für die angegebe "till-time" ein at-"off"
- Befehl.
-
-
-
-
-
- Get
N/A
-
-
- Attribute
-
-
-
IODev
- Setzt das IO oder das physische Device welches zum Senden der Signale an
- dieses logische Device verwendet werden soll (Beispielsweise FHZ oder
- CUL). Hinweis: Beim Start weist FHEM jedem logischen Device das letzte
- physische Device zu, das Daten von diesem Typ empfangen kann. Das
- Attribut IODev muss nur gesetzt werden wenn mehr als ein physisches
- Device fähig ist Signale von diesem logischen Device zu empfangen.
-
-
-
-
eventMap
- Ersetze Event Namen und setze Argumente. Der Wert dieses Attributes
- besteht aus einer Liste von durch Leerzeichen getrennte Werten. Jeder
- Wert ist ein durch Doppelpunkt getrenntes Paar. Der erste Teil stellt den
- "alten" Wert, der zweite Teil den "neuen" Wert dar. Wenn der erste Wert
- ein Slash (/) oder ein Komma (,) ist, dann wird nicht durch Leerzeichen
- sondern durch das vorgestellte Zeichen getrennt.
- Beispiele:
-
- attr store eventMap on:open off:closed
- attr store eventMap /on-for-timer 10:open/off:closed/
- set store open
-
-
-
-
-
dummy
- Setzt das Attribut dummy um Devices zu definieren, die keine Funksignale
- absetzen. Zugehörige notifys werden ausgeführt wenn das Signal
- empfangen wird. Wird beispielsweise genutzt um auf Code eines Sender zu
- reagieren, dennoch wird es auch dann kein Signal senden wenn es im Web
- Frontend getriggert wird.
-
-
-
-
follow-on-for-timer
- Plant ein "setstate off;trigger off" für die angegebene Zeit als
- Argument zum on-for-timer Command. Oder das gleiche mit "on" wenn der
- Befehl "follow-off-for-timer" war.
-
-
-
-
follow-on-timer
- Wie follow-on-for-timer plant es ein "setstate off;trigger off", aber
- diesmal als Argument in Sekunden zum Attribut. Wird verwendet um dem
- vorprogrammierten Timer zu folgen welcher vorher durch den timer-Befehl,
- oder manuell durch Drücken des Buttons gesetzt wurde. Im Handbuch
- finden sich noch mehr Informationen.
-
-
-
-
-
model
- Das "model" Attribut bezeichnet den Modelltyp des Gerätes. Dieses
- Attribut wird (derzeit) nicht direkt durch fhem.pl genutzt. Es kann
- beispielsweise von externen Programmen oder Webinterfaces genutzt werden
- um Geräteklassen zu unterscheiden und dazu passende Befehle zu senden
- (z.B. "on" oder "off" an ein fs20st, "dim..%" an ein fs20du etc.). Die
- Schreibweise des Modellnamens ist wie die in Anführungszeichen in
- der Anleitung gedruckte Bezeichnung die jedem Gerät beiliegt.
- Dieser Name wird ohne Leerzeichen ausschließlich in Kleinbuchstaben
- verwendet. Gültige Zeichen sind a-z 0-9 und
- -, andere Zeichen sind zu vermeiden. Hier ist eine Liste der
- "offiziellen" Devices:
ignore
- Ignoriere dieses Gerät, beispielsweise wenn es dem Nachbar
- gehört. Das Gerät wird keine FileLogs/notifys triggern,
- empfangene Befehle werden stillschweigend ignoriert (es wird kein
- Funksignal gesendet, wie auch beim dummy
- Attribut). Das Gerät wird weder in der Device-List angezeigt (es sei
- denn, es wird explizit abgefragt), noch wird es in Befehlen mit
- "Wildcard"-Namenspezifikation (siehe devspec)
- erscheinen. Es kann mit dem "ignored=1" devspec dennoch erreicht werden.
-
- Von einem FS20 Gerät können folgende Events empfangen werden:
-
on
-
off
-
toggle
-
dimdown
-
dimup
-
dimupdown
-
on-for-timer
- Welches Event gesendet wird ist Geräteabhängig und kann manchmal
- auf dem Device konfiguriert werden.
-
-
-
-
-
FileLog
-
-
-
-
- Define
-
- define <name> FileLog <filename> <regexp>
-
-
- Speichert Ereignisse in einer Log-Datei mit Namen <filename>. Das Log-Format ist
-
- YYYY-MM-DD_HH:MM:SS <device> <event>
-
- Der Ausdruck unter regexp wird anhand des Gerätenames überprüft und zwar
- devicename:event oder der timestamp:devicename:event-Kombination.
- Der regexp muss mit dem kompletten String übereinstimmen und nicht nur teilweise.
-
- <filename> können %-wildcards der POSIX
- strftime-Funktion des darunterliegenden OS enthalten (siehe auch strftime
- Beschreibung).
- Allgemein gebräuchliche Wildcards sind:
-
-
%d Tag des Monats (01..31)
-
%m Monat (01..12)
-
%Y Jahr (1970...)
-
%w Wochentag (0..6); beginnend mit Sonntag (0)
-
%j Tag des Jahres (001..366)
-
%U Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)
-
%W Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)
-
- FHEM ersetzt %L mit dem Wert des global logdir Attributes.
-
- Bevor %V für ISO 8601 Wochennummern verwendet werden,
- muss überprüft werden, ob diese Funktion durch das Brriebssystem
- unterstützt wird (Es kann sein, dass %V nicht umgesetzt wird, durch
- einen Leerstring ersetzt wird oder durch eine falsche ISO-Wochennummer
- dargestellt wird - besonders am Jahresanfang)
-
- Bei der Verwendung von %V muss gleichzeitig für das Jahr
- ein %G anstelle von %Y benutzt werden.
-
- Beispiele:
-
- Erneutes Öffnen eines FileLogs nach händischen Änderungen in dieser Datei.
-
-
-
addRegexpPart <device> <regexp>
-
- Hinzufügen eines regexp Teiles, der gemäß device:regexp
- aufgebaut ist. Die Teile werden mit einem | voneinander getrennt.
- Achtung: Wenn die regexp-Teile umsortiert werden, können die
- manuell erzeugten regexps ungültig werden.
-
-
-
removeRegexpPart <re>
-
- Entfernt ein regexp-Teil. Achtung: Wenn die regexp-Teile umsortiert
- werden, können die manuell erzeugten regexps ungültig
- werden.
- Die Inkonsistenz von addRegexpPart/removeRegexPart-Argumenten hat
- seinen Ursprung in der Wiederverwendung von Javascript-Funktionen.
-
-
-
absorb secondFileLog
-
- Führt den gegenwärtigen Log und den secondFileLog zu einer
- gemeinsamen Datei zusammen, fügt danach die regexp des
- secondFileLog dem gegenwärtigen Filelog hinzu und löscht dann
- anschließend das secondFileLog.
-
- Dieses Komanndo wird zur Erzeugung von kombinierten Plots (weblinks)
- benötigt.
-
- Hinweise:
-
-
secondFileLog wird gelöscht (d.h. die FHEM-Definition und
- die Datei selbst).
-
nur das aktuelle File wird zusammengeführt, keine
- archivierten Versionen.
-
Weblinks, die das secondFilelog benutzen werden unbrauchbar, sie
- müssen deshalb auf das neue Logfile angepasst oder gelöscht
- werden.
-
-
-
-
-
-
-
-
-
- Get
-
- get <name> <infile> <outfile> <from>
- <to> <column_spec>
-
- Liest Daten aus einem Logfile und wird von einem Frontend benötigt, um
- Daten ohne direkten Zugriff aus der Datei zu lesen.
-
-
-
<infile>
- Name des Logfiles, auf das zugegriffen werden soll. "-" steht für
- das aktuelle Logfile. Man kann auch auf ein älteres File zugreifen
- (oder eines aus dem Archiv).
-
-
<outfile>
- Bei einem "-", bekommt man die Daten auf der aktuellen Verbindung
- zurück, anderenfall ist es das Name (eigentlich Prefix, s.u.) des
- Output-Files. Wenn mehr als ein File angesprochen wird, werden die
- einzelnen Dateinamen durch ein "-" getrennt, anderenfalls werden die
- Daten in einzelne Dateien geschrieben, die - beginnend mit 0 -
- durchnummeriert werden.
-
-
-
<from> <to>
- Bezeichnet den gewünschten Datenbereich. Die beiden Elemente
- müssen ganz oder mit dem Anfang des Zeitformates
- übereinstimmen.
-
-
<column_spec>
- Jede column_spec sendet die gewünschten Daten entweder in eine
- gesonderte Datei oder über die gegenwärtige Verbindung durch
- "-" getrennt.
-
- Syntax: <col>:<regexp>:<default>:<fn>
-
-
<col>
- gibt die Spaltennummer zurück, beginnend mit 1 beim Datum.
- Wenn die Spaltenmummer in doppelten Anführungszeichen steht,
- handelt es sich um einen festen Text und nicht um eine
- Spaltennummer.
-
-
<regexp>
- gibt, falls vorhanden, Zeilen mit Inhalten von regexp zurück.
- Groß- und Kleinschreibung beachten.
-
<default>
- Wenn keine Werte gefunden werden, und der Default-Wert
- (Voreinstellung) wurde gesetzt, wird eine Zeile zurückgegeben,
- die den von-Wert (from) und diesen Default-Wert enthält.
- Dieses Leistungsmerkmal ist notwendig, da gnuplot abbricht, wenn
- ein Datensatz keine Daten enthält.
-
-
<fn>
- Kann folgende Inhalte haben:
-
-
int
- Löst den Integer-Wert zu Beginn eines Strings heraus. Wird
- z.B. bei 10% gebraucht.
-
delta-h oder delta-d
- Gibt nur den Unterschied der Werte-Spalte pro
- Stunde oder pro Tag aus. Wird benötigt, wenn die Spalte
- einen Zähler enthält, wie im Falles des KS300 in der
- Spalte für die Regenmenge.
-
alles andere
- Dieser String wird als Perl-Ausdruck ausgewertet. @fld enthaelt
- die aktuelle Zeile getrennt durch Leerzeichen. Achtung:
- Dieser String/Perl-Ausdruck darf keine Leerzeichen enthalten.
-
-
-
-
-
- Beispiel:
-
- get outlog out-2008.log - 2008-01-01 2008-01-08 4:IR:int: 9:IR::
-
-
-
-
-
- Attribute
-
-
-
-
-
archivecmd / archivedir / nrarchive
- Wenn eine neue FileLog-Datei geöffnet wird, wird der FileLog
- archiver aufgerufen. Das geschieht aber nur , wenn der Name der Datei
- sich geändert hat(abhängig von den zeitspezifischen
- Wildcards, die weiter oben unter FileLog
- (define) beschrieben werden) und gleichzeitig ein neuer Datensatz
- in diese Datei geschrieben werden muss.
-
- Wenn das Attribut archivecmd benutzt wird, startet es als
- shell-Kommando ( eine Einbettung in " ist nicht notwendig), und jedes %
- in diesem Befehl wird durch den Namen des alten Logfiles ersetzt.
-
- Wenn dieses Attribut nicht gesetzt wird, aber dafür nrarchive
- und/oder archivecmd, werden nrarchive viele Logfiles im aktuellen
- Verzeichnis gelassen, und ältere Dateien in das Archivverzeichnis
- (archivedir) verschoben (oder gelöscht, falls kein archivedir
- gesetzt wurde).
-
- Hinweis: Werden diese Attribute als global instance gesetzt, hat das
- auschließlich auf das FHEM logfile
- Auswirkungen.
-
-
logtype
- Wird vom pgm2 webfrontend benötigt, um gnuplot/SVG-Kurven aus den
- Logdateien zu zeichnen. Der String wird aus komma-separierten Tokens
- (,) erzeugt, wobei jeder Token ein eigenes gnuplot-Programm bezeichnet.
- Die Token können Doppelpunkte (:) enthalten. Der Teil vor dem
- Doppelpunkt bezeichnet den Namen des Programms; der Teil nach dem
- Doppelpunkt ist der String, der im Web.Frontend dargestellt werden
- soll. Gegenwärtig sind folgende Typen von gnuplot-Programmen
- implementiert:
-
-
-
fs20
- Zeichnet on als 1 and off als 0. Die geeignete
- filelog-Definition für das Gerät fs20dev lautet:
- define fslog FileLog log/fs20dev-%Y-%U.log fs20dev
-
-
fht
- Zeichnet die Ist-Temperatur/Soll-temperatur/Aktor Kurven. Die
- passende FileLog-Definition (für das FHT-Gerät mit
- Namen fht1)sieht wie folgt aus:
- define fhtlog1 FileLog log/fht1-%Y-%U.log fht1:.*(temp|actuator).*
-
-
temp4rain10
- Zeichnet eine Kurve aus der Temperatur und dem Niederschlag (pro
- Stunde und pro Tag) eines KS300. Die dazu passende
- FileLog-Definition (für das KS300
- Gerät mit Namen ks300) sieht wie folgt aus:
- define ks300log FileLog log/fht1-%Y-%U.log ks300:.*H:.*
-
-
hum6wind8
- Zeichnet eine Kurve aus der Feuchtigkeit und der
- Windgeschwindigkeit eines ks300. Die geeignete
- FileLog-Definition ist identisch mit der vorhergehenden
- Definition. Beide programme erzeugen das gleiche Log.
-
-
text
- Zeigt das LogFile in seiner ursprünglichen Form (Nur
- Text).Eine gnuplot-Definition ist nicht notwendig.
- define <rg_FirstName> GUEST [<Device Name der Bewohnergruppe>]
-
- Stellt ein spezielles Dummy Device bereit, welches einen Gast repräsentiert.
- Basierend auf dem aktuelle Status und anderen Readings können andere Aktionen innerhalb von FHEM angestoßen werden.
-
- Wird vom übergeordneten Modul RESIDENTS verwendet, kann aber auch einzeln benutzt werden.
-
- Beispiele:
-
- # Einzeln
- define rg_Guest GUEST
-
- # Typisches Gruppenmitglied
- define rg_Guest GUEST rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein
-
- # Mitglied in mehreren Gruppen
- define rg_Guest GUEST rgr_Residents,rgr_Guests # um Mitglied den Gruppen rgr_Residents und rgr_Guests zu sein
-
-
-
- Bitte beachten, dass das RESIDENTS Gruppen Device zunächst angelegt werden muss, bevor ein GUEST Objekt dort Mitglied werden kann.
-
-
-
- Set
-
- set <rg_FirstName> <command> [<parameter>]
-
- Momentan sind die folgenden Kommandos definiert.
-
-
- location - setzt das Reading 'location'; siehe auch Attribut rg_locations, um die in FHEMWEB angezeigte Liste anzupassen
-
-
- mood - setzt das Reading 'mood'; siehe auch Attribut rg_moods, um die in FHEMWEB angezeigte Liste anzupassen
-
-
- state home,gotosleep,asleep,awoken,absent,gone wechselt den Status; siehe auch Attribut rg_states, um die in FHEMWEB angezeigte Liste anzupassen
-
-
-
-
-
- Mögliche Stati und ihre Bedeutung
-
-
- Dieses Modul unterscheidet 6 verschiedene Stati:
-
-
-
- home - Mitbrwohner ist zuhause und wach
-
-
- gotosleep - Mitbewohner ist auf dem Weg ins Bett
-
-
- asleep - Mitbewohner schläft
-
-
- awoken - Mitbewohner ist gerade aufgewacht
-
-
- absent - Mitbewohner ist momentan nicht zuhause, wird aber bald zurück sein
-
-
- none - Gast Device ist deaktiviert
-
-
-
-
-
-
- Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location
-
-
- Unter bestimmten Umständen führt der Wechsel des Status auch zu einer Änderung des Readings 'location'.
-
- Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rg_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.
-
- Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rg_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
-
-
-
-
- Auto-Status 'gone'
-
-
- Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Zähler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.
- Der Standard ist nach 16 Stunden.
-
- Dieses Verhalten kann über das Attribut rg_autoGoneAfter angepasst werden.
-
-
-
-
- Anwesenheit mit anderen GUEST oder ROOMMATE Devices synchronisieren
-
-
- Wenn Sie immer zusammen mit anderen Mitbewohnern oder Gästen das Haus verlassen oder erreichen, können Sie ihren Status ganz einfach auf andere Mitbewohner übertragen.
- Durch das Setzen des Attributs rg_PassPresenceTo folgen die dort aufgeführten Mitbewohner ihren eigenen Statusänderungen nach 'home', 'absent' oder 'gone'.
-
- Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'none' oder 'gone' (im Falle von ROOMMATE Devices) nicht beachtet werden.
-
-
-
-
- Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence
-
-
- Unter bestimmten Umständen hat der Wechsel des Readings 'location' auch einen Einfluss auf den tatsächlichen Status.
-
- Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rg_locationHome gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.
-
- Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rg_locationUnderway gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' übertragen.
-
- Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rg_locationWayhome gesetzt wurde, so führt das VERLASSEN einer dort aufgeführten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 Möglichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).
- Die Ankunft zuhause setzt den Wert von 'wayhome' zurück auf '0'.
-
- Wenn Sie auch das GEOFANCY Modul verwenden, können Sie das Reading 'location' ganz einfach über GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:
-
- define n_rg_Manfred.location notify geofancy:currLoc_Manfred.* set rg_Manfred location $EVTPART1
-
- Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zukünftig automatisch alle Statusänderungen wie oben beschrieben durchgeführt.
-
-
-
- Attribute
-
-
-
- rg_autoGoneAfter - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' ändert, wenn der aktuelle Status 'absent' ist; Standard ist 36 Stunden
-
-
- rg_locationHome - hiermit übereinstimmende Lokationen werden als zuhause gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'home'
-
-
- rg_locationUnderway - hiermit übereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'underway'
-
-
- rg_locationWayhome - das Verlassen einer Lokation, die hier aufgeführt ist, lässt das Reading 'wayhome' auf '1' setzen; mehrere Einträge durch Leerzeichen trennen; Standard ist "wayhome"
-
-
- rg_locations - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
-
-
- rg_moodDefault - die Stimmung, die nach Ankunft zuhause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
-
-
- rg_moodSleepy - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
-
-
- rg_moods - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
-
-
- rg_passPresenceTo - synchronisiere die Anwesenheit mit anderen GUEST oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
-
-
- rg_realname - wo immer GUEST den richtigen Namen verwenden möchte nutzt es den Wert des Attributs alias oder group; Standard ist group
-
-
- rg_showAllStates - die Stati 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess über das devStateIcon Attribut zu ermöglichen; Standard ist 0
-
-
- rg_states - Liste aller in FHEMWEB angezeigter Stati; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterstützte Stati führen zu Fehlern
-
-
-
-
-
- Generierte Readings/Events:
-
-
-
- durTimerAbsence - Timer, der die Dauer der Abwesenheit in Minuten anzeigt
-
-
- durTimerPresence - Timer, der die Dauer der Anwesenheit in Minuten anzeigt
-
-
- durTimerSleep - Timer, der die Schlafdauer in Minuten anzeigt
-
-
- lastArrival - Zeitstempel der letzten Ankunft zu Hause
-
-
- lastAwake - Zeitstempel des Endes des letzten Schlafzyklus
-
-
- lastDeparture - Zeitstempel des letzten Verlassens des Zuhauses
-
-
- lastDurAbsence - Dauer der letzten Abwesenheit im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastDurPresence - Dauer der letzten Anwesenheit im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastDurSleep - Dauer des letzten Schlafzyklus im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastLocation - der vorherige Aufenthaltsort
-
-
- lastMood - die vorherige Stimmung
-
-
- lastSleep - Zeitstempel des Beginns des letzten Schlafzyklus
-
-
- lastState - der vorherige Status
-
-
- location - der aktuelle Aufenthaltsort
-
-
- presence - gibt den Zuhause Status in Abhängigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
-
-
- mood - die aktuelle Stimmung
-
-
- state - gibt den aktuellen Status wieder
-
-
- wayhome - abhängig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zurück nach Hause ist
-
-
-
- Die folgenden Readings werden auf '-' gesetzt, sobald der Status auf 'none' steht:
- lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
-
-
-
-
-
-
-
HCS
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: HCS
-
-
-
HMLAN
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: HMLAN
-
-
-
HMS
-
-
- Define
-
- define <name> HMS <housecode>
-
-
- Der <housecode> ist eine vierstellige HEX-Zahl,
- entsprechend dem HMS Gerät.
-
- Beispiel:
-
Der Hauscode kann sich ändern wenn die Batterie gewechselt wird.
- Um sich das Leben einfacher zu machen kann man ein "Wildcard"
- (Platzhalter) Device für jeden Typ von HMS Gerät anlegen.
- Zuerst wird die echte Device-ID geprüft, danach die Wildcard-ID.
- Wildcards sind:
-
-
1000 für das HMS100-TF
-
1001 für das HMS100-T
-
1002 für das HMS100-WD
-
1003 für das RM100-2
-
1004 für das HMS100-TFK
-
1006 für das HMS100-MG
-
1008 für das HMS100-CO
-
100e für das HMS100-FIT
-
-
-
-
Einige "Batteriestand niedrig" Benachrichtigungen sind noch nicht
- implemeniert (RM100, HMS100WD).
-
-
Die Installation ist zu testen bevor man sich auf die
- Funktionalität verlässt.
-
- Bildet ein Wochenprofil für ein <device>, zb. Heizkörper, ab.
- Es können für jeden Tag unterschiedliche Schaltzeiten angegeben werden.
- Ist das <device> ein Heizkörperthermostat (zb. FHT8b, MAX) so wird bei FHT8b/MAX die
- zu setzende Temperatur im <profile> automatisch mittels
- set <device> (desired-temp|desiredTemerature) <temp>
gesendet.
- Struktuen von Heizkörperthermostaten bekommen aufgrund des fhem-Typs auch desired-temp gesendet:
- Nutze bitte explizite Kommandos wenn Strukturen von MAX Heizthermostaten gesteuert werden sollen.
- Ist eine <condition> angegeben und ist zum Schaltpunkt der Ausdruck unwahr,
- so wird dieser Schaltpunkt nicht ausgeführt.
- Alternativ zur Automatik kann stattdessen eigener Perl-Code im <command> ausgeführt werden.
-
- Folgende Parameter sind im Define definiert:
-
device
- Name des zu schaltenden Device.
-
-
-
language
- Spezifiziert die Sprache für die Definition und die Anzeige der Profile in der Weboberfläche.
- Zurzeit sind de,en,fr definiert. Der Parameter ist optional.
-
-
-
profile
- Angabe des Wochenprofils. Die einzelnen Schaltzeiten sind durch Leerzeichen getrennt
- Die Angabe der Schaltzeiten ist nach folgendem Muster definiert:
-
[<Wochentage>|]<Uhrzeit>|<Parameter>
- Wochentage: optionale Angabe, falls nicht gesetzt wird der Schaltpunkt jeden Tag ausgeführt.
- Für die Tage an denen dieser Schaltpunkt aktiv sein soll, ist jeder Tag mit seiner
- Tagesnummer (Mo=1, ..., So=7) oder Name des Tages (Mo, Di, ..., So) einzusetzen.
- Uhrzeit:Angabe der Uhrzeit zu der geschaltet werden soll, Format: HH:MM:[SS](HH im 24 Stunden Format) oder eine Perlfunction wie {sunrise_abs()}
- Parameter:Angabe der zu setzenden Temperatur als Zahl mit Format 99.9 oder als symbolische Konstante eco
- or comfort - was immer das Heizkörperthermostat versteht.
- Symbolischen Werten kann ein zusätzlicher Parameter angehängt werden: dayTemp:16 night-temp:15. Unten folgen Beispiele
-
-
-
command
- Falls keine Condition in () angegeben wurde, so wird alles weitere als Command
- interpretiert. Perl-Code ist in {} zu setzen.
- Wichtig: Falls ein Command definiert ist, so wird zu den definierten Schaltzeiten
- nur(!) das Command ausgeführt. Falls ein desired-temp Befehl abgesetzt werde soll,
- so muss dies explizit angegeben werden.
- Folgende Parameter werden ersetzt:
-
-
@ => das zu schaltende Device
-
% => die zu setzende Temperatur
-
-
-
-
condition
- Bei Angabe einer Condition ist diese in () zu setzen und mit validem Perl-Code zu versehen.
- Der Rückgabedatentyp der condition muss boolean sein.
- Die Parameter @ und % werden interpretiert.
-
-
- Beispiel:
-
- define HCW Heating_Control Bad_Heizung 12345|05:20|21 12345|05:25|comfort 17:20|21 17:25|eco
- Mo-Fr wird die Temperatur um 05:20Uhr auf 21°C, und um 05:25Uhr auf comfort gesetzt.
- Jeden Tag wird die Temperatur um 17:20Uhr auf 21°C und 17:25Uhr auf eco gesetzt.
-
- define HCW Heating_Control WZ_Heizung 07:00|16 Mo,Di,Mi|16:00|18.5 20:00|12
- {fhem("set dummy on"); fhem("set @ desired-temp %");}
- Zu den definierten Schaltzeiten wird nur(!) der in {} angegebene Perl-Code ausgeführt.
-
- define HCW Heating_Control WZ_Heizung Sa-So,Mi|08:00|21 (ReadingsVal("WeAreThere", "state", "no") eq "yes")
- Die zu setzende Temperatur wird nur gesetzt, falls die Dummy Variable WeAreThere = "yes" ist.
-
- define HCW Heating_Control WZ_Heizung en Su-Fr|{sunrise_abs()}|21 Mo-Fr|{sunset_abs()}|16
- Das Gerät wird bei Sonnenaufgang und Sonnenuntergang geschaltet. Sprache: Englisch.
-
- define HCW Heating_Control WZ_Heizung en Mo-Fr|{myFunction}|night-temp:18 Mo-Fr|{myFunction()}|dayTemp:16
- Das Gerät wird bei myFunction() geschaltet. Es wird das Kommando "night-temp 18" bzw. "dayTemp 16" gesendet.
-
- Wenn du beispielsweise nach einer Temperaturabsenkungsphase erreichen willst, dass alle Heating_Controls ihren aktuellen Wert
- einstellen sollen, kannst du die Funktion Heating_Control_SetAllTemps() aufrufen.
- Dieser Aufruf kann per notify automatisch an ein dummy gekoppelt werden:
- define HeizStatus2 notify Heizung:.* {Heating_Control_SetAllTemps()}
-
-
windowSensor Definiert eine Liste mit Fensterkontakten. Wenn das Reading window state eines Fensterkontakts open ist, wird der aktuelle Schaltvorgang verzögert.
-
-
-
-
-
I2C_BMP180
-
-
-
- Dieses Modul ermöglicht das Auslesen der digitalen (Luft)drucksensoren
- BMP085 und BMP180 über den I2C Bus des Raspberry Pi.
- Es gibt zwei Möglichkeiten das Modul mit dem I2C Bus zu verbinden:
-
-
Über das RPII2C Modul
- I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
- oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
- Das Attribut IODev muss definiert sein.
-
-
Über die HiPi Bibliothek
- Diese beiden Zeilen müssen in die Datei /etc/modules angefügt werden,
- um die Kernel Module automatisch beim Booten des Raspberry Pis zu laden.
-
- Um die Rechte für die I2C Devices anzupassen, folgende Datei:
-
/etc/udev/rules.d/98_i2c.rules
- mit diesem Inhalt anlegen:
-
SUBSYSTEM=="i2c-dev", MODE="0666"
- Reboot
- Falls der Sensor am zweiten I2C Bus am Stecker P5 (nur in Version 2 des
- Raspberry Pi) verwendet werden soll, muss die fett gedruckte Zeile
- des folgenden Codes in das FHEM Start Skript aufgenommen werden:
-
case "$1" in
- 'start')
- sudo hipi-i2c e 0 1
- ...
-
-
-
- Define
-
- define BMP180 <BMP180_name> <I2C_device>
- <I2C device> darf nicht verwendet werden, wenn der I2C Bus über das RPII2C Modul angesprochen wird. For HiPi ist es allerdings notwendig.
-
- Beispiel:
-
- Liest die aktuelle Temperatur und den Luftdruck des Sensors aus.
- Dies wird automatisch nach Ablauf des definierten Intervalls ausgeführt.
- Wenn der aktuelle Wert gelesen werden soll, kann dieser Befehl auch manuell
- ausgeführt werden.
-
-
-
-
- Get
-
- N/A
-
-
-
-
- Attribute
-
-
oversampling_settings
- Steuert das Oversampling der Druckmessung im Sensor.
- Default: 3, gültige Werte: 0, 1, 2, 3
-
-
poll_interval
- Definiert das Poll Intervall in Minuten für das Auslesen einer neuen Messung.
- Default: 5, gültige Werte: 1, 2, 5, 10, 20, 30
-
-
roundTemperatureDecimal
- Rundet den Temperaturwert mit den angegebenen Nachkommastellen.
- Default: 1, gültige Werte: 0, 1, 2
-
-
roundPressureDecimal
- Rundet die Drucksensorwerte mit den angegebenen Nachkommastellen.
- Default: 1, valid values: 0, 1, 2
-
-
altitude
- Wenn dieser Wert definiert ist, wird diese Angabe zusä für die Berechnung des
- Luftdrucks bezogen auf Meereshöhe (Normalnull) NN herangezogen.
- Bemerkung: Dies ist ein globales Attribut.
- attr global altitude 220
-
-
-
-
-
-
-
I2C_DS1307
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: I2C_DS1307
-
-
-
I2C_LCD
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: I2C_LCD
-
-
-
I2C_PCA9532
-
-
- Ermöglicht die Verwendung eines PCA9532 I2C 16 Kanal PWM IC.
- Das PCA9532 hat 2 unabhängige PWM Stufen. Jeder Kanal kanne einer der Stufen zugeordnet werden oder direkt auf off/on gesetzt werden.
- I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
- oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
- Das Attribut IODev muss definiert sein.
-
- Define
-
- define <name> I2C_PCA9532 <I2C Address>
- Der Wert <I2C Address> ist ein zweistelliger Hex-Wert
-
-
-
- Set
-
- set <name> <port> <value>
-
-
wenn als <port> Port0 bis Port15 verwendet wird, dann ist <value> einer dieser Werte:
-
-
- off
- on
- PWM0 (Port wird auf PWM0 Frequenz- und Pulsweiteneinstellung gesetzt)
- PWM1 (Port wird auf PWM1 Frequenz- und Pulsweiteneinstellung gesetzt)
-
-
-
-
- wenn als <port> PWM0 oder PWM1 verwendet wird, ist <value> ein Wert zwischen 0 und 255 ensprechend der Pulsweite der PWM Stufe.
-
-
-
- Beispiele:
-
- set mod1 Port4 PWM1
- set mod1 PWM1 128
-
-
-
-
- Get
-
- get <name>
-
- Aktualisierung aller Werte
-
-
-
- Attribute
-
-
poll_interval
- Aktualisierungsintervall aller Werte in Minuten.
- Standard: -, gültige Werte: Dezimalzahl
-
-
InputPorts
- Durch Leerzeichen getrennte Portnummern die als Inputs genutzt werden.
- Ports in dieser Liste können nicht geschrieben werden.
- Standard: no, gültige Werte: 0 1 2 .. 15
-
-
T0/T1
- Änderung der Frequenzwerte von PWM0/PWM1 nach der Formel: Fx = 152/(Tx + 1). Der entsprechende Frequenzwert wird unter Internals angezeigt.
- Standard: 0 (152Hz), gültige Werte: 0-255
-
- Ermöglicht die Verwendung eines PCF8574 I2C 8 Bit Portexenders.
- Auf einem Raspberry Pi kann der Interrupt Pin des PCF8574 mit einem GPIO verbunden werden und ¨ber die Interrupt Funktionen von RPI_GPIO l&aml;sst sich dann ein get für den PCF8574 bei Pegel&aml;nderung ausl&oml;sen.
- I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
- oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
- Das Attribut IODev muss definiert sein.
-
- Define
-
- define <name> I2C_PCF8574 <I2C Address>
- Der Wert <I2C Address> ist ein zweistelliger Hex-Wert
-
-
-
- Set
-
- set <name> <port> <value>
-
-
<port> kann Port0 bis Port7 annehmen und <value> folgende Werte:
-
-
- off
- on
-
-
-
-
-
- Beispiel:
-
- set mod1 Port4 on
-
-
-
-
- Get
-
- get <name>
-
- Aktualisierung aller Werte
-
-
-
- Attribute
-
-
poll_interval
- Aktualisierungsintervall aller Werte in Minuten.
- Standard: -, gültige Werte: Dezimalzahl
-
-
InputPorts
- Durch Leerzeichen getrennte Portnummern die als Inputs genutzt werden.
- Ports in dieser Liste können nicht geschrieben werden.
- Standard: no, gültige Werte: 0 1 2 .. 15
-
- Ermöglicht die Verwendung eines SHT21 I2C Feuchtesensors von Sensirion.
- I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
- oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
- Das Attribut IODev muss definiert sein.
-
- Define
-
- define <name> I2C_SHT21 [<I2C Address>]
- Der Wert <I2C Address> ist ein zweistelliger Hex-Wert
-
-
- Set
-
- set <name> readValues
- Aktuelle Temperatur und Feuchte Werte vom Sensor lesen.
-
-
- Attribute
-
-
poll_interval
- Aktualisierungsintervall aller Werte in Minuten.
- Standard: 5, gültige Werte: 1,2,5,10,20,30
-
-
roundHumidityDecimal
- Anzahl Dezimalstellen für den Feuchtewert
- Standard: 1, gültige Werte: 0 1 2
-
-
roundTemperatureDecimal
- Anzahl Dezimalstellen für den Temperaturwert
- Standard: 1, gültige Werte: 0,1,2
- IF (<Bedingung>) (<FHEM-Kommandos1>) ELSE (<FHEM-Kommandos2>)
-
- Es werden <FHEM-Kommandos1> ausgeführt, wenn <Bedingung> erfüllt ist, sonst werden <FHEM-Kommanodos2> ausgeführt.
-
- Beim IF-Befehl handelt es sich um einen FHEM-Befehl. Der Befehl kann überall dort genutzt werden, wo FHEM-Befehle vorkommen dürfen.
- Im Gegensatz zu Perl-if bleibt man auf der FHEM-Ebene und muss nicht auf die Perl-Ebene, um FHEM-Befehle mit Hilfe der fhem-Funktion auszuführen.
-
- IF ist kein eigenständig arbeitendes Modul, sondern ein FHEM-Befehl, der in Kombination mit anderen Modulen, wie z. B. notify oder at, sinnvoll eingesetzt werden kann.
-
- In der Bedingung des IF-Befehls wird die vollständige Syntax des Perl-if unterstützt. Mögliche Operatoren sind u. a.:
-
- ++ -- Inkrementieren, Dekrementieren
- ** Potenzierung
- ! ~ logische und bitweise Negation
- =~ !~ Bindung an Seite reguläre Ausdrücke
- * / % x Multiplikation, Division, Modulo-Operation, Zeichenkettenwiederholung
- + - . Addition, Subtraktion, Zeichenkettenaddition
- < <= > >= lt le gt ge Vergleich größer/kleiner
- == != eq ne Gleichheit/Ungleichheit
- & bitweises UND
- | ^ bitweises ODER - inklusiv/exklusiv
- && logisches UND
- || logisches ODER
- not logische Negation
- and logisches UND
- or xor logisches ODER (inklusiv/exklusiv)
-
-Features:
-
-
-
Angabe von Readings und Internals ist an beliebiger Stelle möglich
-
-
Filtern nach Zahlen oder beliebigen Ausdrücken über reguläre Ausdrücke ist möglich
-
-
IF kann beliebig mit anderen FHEM-Befehlen kombiniert werden (at, notify usw.)
-
-
es können beliebig viele IF-Befehle ineinander geschachtelt werden
-
-
Syntaxprüfung: fehlende Klammern werden erkannt
-
-
Definition über mehrere Zeilen mit Einrückung zwecks übersichtlicher Darstellung ist möglich
-
-
Überprüfung auf Existenz von Device und Reading bzw. Internal
-
-
Ausführung von Perl-Befehlen im dann- und sonst-Fall ist weiterhin möglich
-
-
Auswertung von Ausdrücken in geschweiften Klammen innerhalb eines FHEM-Befehls ist möglich
-
-
ELSE-Fall ist optional
-
-
-
- Die Syntax für die Nutzung von Readings oder Internals (ein Internal wird durch ein & gekennzeichnet)
-
- [<device>:<reading>:<format>|[<regulärer Ausdruck>]]
- bzw. [<device>:&<internal>:<format>|[<regulärer Ausdruck>]]
-
- <format> und [<regulärer Ausdruck>] sind Filteroptionen, sie können optional genutzt werden.
-
- Mögliche Formatangaben für <format> sind:
-
- 'd' zum Filtern von positiven und negatien Dezimalzahlen. [<device>:<reading>:d] entspricht [<device>:<reading>:[(-?\d+(\.\d+)?)]]
-
- Wenn nur der Status eines Devices genutzt werden soll, dann kann auch nur das Device angeben werden:
-
- [<device>] entspricht [<device>:&STATE]
-
- Beispiele:
-
- IF in Kombination mit at-Modul, Readingangabe in der Bedingung:
-
- define check at +00:10 IF ([outdoor:humidity] > 70) (set switch1 off) ELSE (set switch1 on)
-
- IF Statusabfrage des Devices "outdoor" in der Bedingung:
-
- define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)
-
- entspricht mit Angabe des Internals:
-
- define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)
-
- Wenn der Reading "state" abgefragt werden soll, dann wird der Readingname ohne & angegeben:
-
- define check at +00:10 IF ([outdoor:state] eq "open") (set switch1 on)
-
- Geschachtelte Angabe von zwei IF-Befehlen (kann in mehreren Zeilen mit Einrückungen zwecks übersichtlicher Darstellung in der DEF-Eingabe eingegeben werden):
-
- define test notify lamp
- IF ([lamp] eq "on") (
-
- IF ([outdoor:humidity] < 70)
-
- (set lamp off)
-
- ELSE
-
- (set lamp on)
-
-
- ) ELSE
-
- (set switch on)
-
-
- Filtern nach Zahlen im Reading "temperature":
-
- define settemp at 22:00 IF ([tempsens:temperature:d] >= 10) (set heating on)
-
- Filtern nach "on" und "off" im Status des Devices "move":
-
- define activity notify move IF ([move:&STATE:[(on|off)] eq "on" and $we) (set lamp off)
-
- Beispiel für die Nutzung von Readings im dann-Fall:
-
- define temp at 18:00 IF ([outdoor:temperature] > 10) (set lampe [dummy])
-
- Falls bei einem FHEM-Befehl ein Ausdruck mit Readings zuvor ausgewertet werden soll, so muss er in geschweifte Klammern gesetzt werden.
- Beispiel: Wenn um 18:00 Uhr die Außentemperatur höher ist als 10 Grad, dann wird die Solltemperatur um 1 Grad erhöht.
-
- define temp at 18:00 IF ([outdoor:temperature] > 10) (set thermostat desired-temp {[thermostat:desired-temp:d]+1})
-
- Mehrerer Befehle werden durch ein Komma statt durch ein Semikolon getrennt, dadurch entfällt das Doppeln, Vervierfachen usw. des Semikolons:
-
- define check at +00:10 IF ([outdoor:humidity] > 10) (set switch1 off,set switch2 on) ELSE (set switch1 on,set switch2 off)
-
- Falls ein Komma im FHEM-Ausdruck vorkommt, muss dieser zusätzlich geklammert werden, damit das Komma nicht als Trennzeichen erkannt wird:
-
- define check at +00:10 IF ([outdoor:humidity] > 10) ((set switch1,switch2 off))
-
- IF in Kombination mit einem define at mit mehreren set-Befehlen (Eingabe muss wegen der Semikolons im DEF-Editor erfolgen,
- einfaches Semikolon ist nicht erlaubt - es würde vom FHEM-Parser "geschluckt" werden und beim IF nicht mehr ankommen):
-
- define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 set lampe1 on;;set lampe2 off;;set temp desired 20)
-
- Man kann die Problematik des Doppelns von Semikolons wie folgt umgehen:
-
- define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 IF (1) (set lampe1 on,set lampe2 off,set temp desired 20))
-
- Das Komma als Trennzeichen zwischen den FHEM-Befehlen lässt sich mit ;; kombinieren, z. B.:
-
- define check at *10:00 IF ([indoor] eq "on") (set lamp1 on,define a_test at +00:10 set lampe2 on;;set lampe3 off;;set temp desired 20)
-
- Zeitabhängig schalten: In der Zeit zwischen 20:00 und 22:00 Uhr soll das Licht ausgehen, wenn es an war und ich den Raum verlasse:
-
- define n_lamp_off notify sensor IF ($hms gt "20:00" and $hms lt "22:00" and [sensor] eq "absent") (set lamp:FILTER=STATE!=off off)
-
- Kombination von Perl und FHEM-Befehlen ($NAME sowie $EVENT können ebenso benutzt werden):
-
- define mail notify door:open IF ([alarm] eq "on")({system("wmail $NAME:$EVENT")},set alarm_signal on)
-
-
-
IPCAM
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: IPCAM
-
-
-
IPWE
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: IPWE
-
-
-
IT
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: IT
-
-
-
Itach_Relay
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: Itach_Relay
-
-
-
JSONMETER
-
- Dieses Modul liest Daten von Messgeräten (z.B. Stromzähler, Gaszähler oder Wärmezähler, so genannte Smartmeter),
-
- welche OBIS kompatible Daten im JSON-Format auf einem Webserver oder auf dem FHEM-Dateisystem zur Verfügung stellen.
-
-
-
-
- Define
-
[Abfrageinterval]
-
- Optional. Standardmässig 300 Sekunden. Der kleinste mögliche Wert ist 30.
-
- Bei 0 kann die Geräteabfrage nur manuell gestartet werden.
-
-
<Gerätetyp>
-
- Definiert den Pfad und den Port, um die JSON-Datei einzulesen.
-
- Mit dem Attribute 'pathString' können Login Information an den URL-Pfad von vordefinierten Geräte angehangen werden.
-
-
ITF - FROETEC Simplex ME Eintarifzähler (N-ENERGY) (ITF Fröschl)
-
EFR - EFR Smart Grid Hub für Stromzähler (EON, N-ENERGY, EnBW)
-
- Die Login-Information wird über das Attribute 'pathstring' angegeben.
-
- ?LogName=Benutzer&LogPSWD=Passwort
-
LS110 - YouLess LS110 Netzwerkfähiger Sensor für elektromechanische Stromzähler
-
url - benutzt die URL, welche durch das Attribut 'pathString' und 'port' definiert wird.
-
file - benutzt die Datei, welche durch das Attribut 'pathString' definiert wird (im FHEM Dateisystem)
-
-
-
-
-
- Set
-
-
INTERVAL <Abfrageinterval>
-
- Abfrageinterval in Sekunden
-
-
restartJsonAnalysis
-
- Neustart der Analyse der json-Datei zum Auffinden bekannter Gerätewerte (kompatibel zum OBIS Standard).
-
- Diese Analysie wird normaler Weise nur einmalig durchgeführt, nachdem Gerätewerte gefunden wurden.
-
-
statusRequest
-
- Aktualisieren der Gerätewerte
-
-
-
- Get
-
-
jsonFile
-
- Liest die JSON-Datei ein und zeigt sie an.
-
-
jsonAnalysis
-
- Extrahiert die JSON-Daten und zeigt das Resultat der JSON-Analyse.
-
-
-
-
- Attributes
-
-
alwaysAnalyse < 0 | 1 >
-
- Führt bei jeder Abfrage der Gerätewerte eine Analyse der JSON-Datenstruktur durch.
-
- Dies ist sinnvoll, wenn sich die JSON-Struktur ändert. Normalerweise wird die analysierte Struktur
- zwischengespeichert, um die CPU-Last gering zu halten.
-
-
doStatistics < 0 | 1 >
-
- Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte (Mittel/Min/Max oder kumulierte Werte).
-
- Für grafische Auswertungen können die Werte der Form 'statReadingNameLast' genutzt werden.
-
-
pathString <Zeichenkette>
-
-
Gerätetyp 'file': definiert den lokalen Dateinamen und -pfad
-
-
Gerätetyp 'url': Definiert den URL-Pfad
-
-
Andere: Kann benutzt werden um Login-Information zum URL Pfad von vordefinerten Geräten hinzuzufügen
-
-
-
-
port <Nummer>
-
- Beim Gerätetyp 'url' kann hier der URL-Port festgelegt werden (standardmässig 80)
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: JeeLink
-
-
-
JsonList
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: JsonList
-
-
-
JsonList2
-
- jsonlist [<devspec>]
-
- Dieses Befehl sollte in der FHEMWEB oder telnet Eingabezeile ausgeführt
- werden, kann aber auch direkt über HTTP abgerufen werden über
-
- http://fhemhost:8083/fhem?cmd=jsonlist2&XHR=1
-
- Es liefert die JSON Darstellung der internen Variablen, Readings und
- Attribute zurück.
- Achtung: die alte Version dieses Befehls (jsonlist, ohne 2 am Ende) is
- überholt, und wird in der Zukunft entfernt.
-
-
-
-
KM271
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: KM271
-
-
-
KS300
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: KS300
-
-
-
LGTV
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: LGTV
-
-
-
LINDY_HDMI_SWITCH
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: LINDY_HDMI_SWITCH
-
-
-
LIRC
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: LIRC
-
- Die Luxtronik 2.0 ist eine Heizungssteuerung, welche in Wärmepumpen von Alpha Innotec,
- Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist.
-
- Sie besitzt einen Ethernet Anschluss, so dass sie direkt in lokale Netzwerke (LAN) integriert werden kann.
-
- Das Modul wurde bisher mit folgender Steuerungs-Firmware getestet: V1.54C, V1.60, V1.69.
-
- Mehr Infos unter im entsprechenden Artikel der FHEM-Wiki.
-
-
-
- Define
-
- define <name> LUXTRONIK2 <IP-Adresse> [Abfrageinterval]
-
- Wenn das Abfrage-Interval nicht angegeben ist, wird es auf 300 (Sekunden) gesetzt. Der kleinste mögliche Wert ist 30.
-
- Beispiel: define Heizung LUXTRONIK2 192.168.0.12 600
-
-
-
-
-
- Set
-
- Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen mit ungetester Firmware nicht unabsichtlich beschädigt werden.
-
opModeHotWater <Betriebsmodus>
-
- Betriebsmodus des Heißwasserboilers ( Auto | Party | Off )
-
-
hotWaterTemperatureTarget <Temperatur>
-
- Soll-Temperatur des Heißwasserboilers in °C
-
-
INTERVAL <Abfrageinterval>
-
- Abfrageinterval in Sekunden
-
-
statusRequest
-
- Aktualisieren der Gerätewerte
-
-
synchClockHeatPump
-
- Abgleich der Uhr der Steuerung mit der FHEM Zeit. Diese Änderung geht verloren, sobald die Steuerung ausgeschaltet wird!!
-
-
-
-
- Get
-
- Es wurde noch kein "get" implementiert ...
-
-
-
-
- Attribute
-
-
statusHTML
- wenn gesetzt, dann wird ein HTML-formatierter Wert "floorplanHTML" erzeugt,
- welcher vom Modul FLOORPLAN genutzt werden kann.
- Momentan wird nur geprüft, ob der Wert dieses Attributes ungleich NULL ist,
- der entsprechende Gerätewerte besteht aus dem aktuellen Wärmepumpenstatus und der Heizwassertemperatur.
-
-
doStatistics < 0 | 1 >
-
- Berechnet statistische Werte: statBoilerGradientHeatUp, statBoilerGradientCoolDown,
- statBoilerGradientCoolDownMin (Wärmeverlust des Boilers)
-
- Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte.
- Für grafische Auswertungen können die Werte der Form 'statReadingNameLast' genutzt werden.
-
-
allowSetParameter < 0 | 1 >
-
- Die internen Parameter der Wärmepumpensteuerung können
- nur geändert werden, wenn dieses Attribut auf 1 gesetzt ist.
-
-
autoSynchClock <Zeitunterschied>
-
- Die Uhr der Wärmepumpe wird automatisch korrigiert, wenn ein gewisser Zeitunterschied (10 s - 600 s)
- gegenüber der FHEM Zeit erreicht ist. Zuvor wird die Kompatibilität der Firmware überprüft.
- (Ein Gerätewert 'delayDeviceTimeCalc' <= 2 s ist auf die internen Berechnungsintervale der
- Wärmepumpensteuerung zurückzuführen.)
-
-
ignoreFirmwareCheck < 0 | 1 >
-
- Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen
- mit ungetester Firmware nicht unabsichtlich beschädigt werden. Wenn dieses Attribute auf 1
- gesetzt ist, dann wird der Firmware-Test ignoriert und neue Firmware kann getestet werden.
- Dieses Attribut wird jedoch ignoriert, wenn die Steuerungs-Firmware bereits als nicht kompatibel berichtet wurde.
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: LaCrosse
-
-
-
LightScene
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: LightScene
-
-
-
M232
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: M232
-
-
-
M232Counter
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: M232Counter
-
-
-
M232Voltage
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: M232Voltage
-
-
-
MAX
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: MAX
-
-
-
MAXLAN
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: MAXLAN
-
-
-
MPD
-
- FHEM Modul zur Steuerung des MPD ähnlich dem MPC (MPC = Music Player Command, das Kommando Zeilen Interface für den
- Music Player Daemon ) (englisch)
- Um den MPD auf einem Raspberry Pi zu installieren finden sich im Internet zahlreiche gute Dokumentaionen
- z.B. hier
- Thread im FHEM Forum : Modul für MPD
-
-
- Define
-
- define <name> MPD <IP MPD Server | default localhost> <Port MPD Server | default 6600>
- Beispiel :
-
- define myMPD MPD 192.168.0.99 7000
-
- wenn FHEM und der MPD auf dem gleichen PC laufen :
-
- define myMPD MPD
-
-
-
-
-
- Set
- set <name> <was>
-
- z.Z. unterstützte Kommandos
-
- play => spielt den aktuellen Titel der geladenen Playliste
- clear => löscht die Playliste
- stop => stoppt die Wiedergabe
- pause => Pause an/aus
- previous => spielt den vorherigen Titel in der Playliste
- next => spielt den nächsten Titel in der Playliste
- random => zufällige Wiedergabe an/aus
- repaet => Wiederholung an/aus
- volume (%) => ändert die Lautstärke von 0 - 100%
- volumeUp => Lautstärke schrittweise erhöhen , Schrittweite = ( attr volumeStep size )
- volumeDown => Lautstärke schrittweise erniedrigen , Schrittweite = ( attr volumeStep size )
- playlist (playlist name) => lade Playliste aus der MPD Datenbank und starte Wiedergabe mit dem ersten Titel
- playfile (file) => erzeugt eine temoräre Playliste mit file und spielt dieses ab
- updateDb => wie MPC update, Update der MPD Datenbank
- interval => in Sekunden bis neue aktuelle Informationen vom MPD geholt werden. Überschreibt die Einstellung von attr interval Ein Wert von 0 deaktiviert diese Funktion
- reset => reset des FHEM MPD Moduls
- mpdCMD => gleiche Funktion wie get mpdCMD
- IdleNow => sendet das Kommando idle zum MPD und wartet auf Ereignisse - siehe auch Attribut useIdle
-
-
-
- Get
- get <name> <was>
-
- z.Z. unterstützte Kommandos
- music => zeigt alle Dateien der MPD Datenbank
- playlists => zeigt alle Playlisten der MPD Datenbank
- playlistsinfo => zeigt Informationen der aktuellen Playliste
- webrc => HTML Ausgabe einer einfachen Web Fernbedienung Bsp :.
-
- statusRequest => hole aktuellen MPD Status
- mpdCMD (cmd) => sende cmd direkt zum MPD Server ( siehe auch MPD Comm Ref )
- currentsong => zeigt Informationen zum aktuellen Titel in der Playliste
- outputs => zeigt Informationen der definierten MPD Ausgabe Kanäle ( aus /etc/mpd.conf )
-
-
-
- Attribute
-
-
interval 0..x => polling Interval des MPD Servers, 0 zum abschalten oder in Verbindung mit useIdle
-
password => (z.Z. nicht umgesetzt)
-
loadMusic 0|1 => lade die MPD Titel beim FHEM Start
-
loadPlaylists 0|1 => lade die MPD Playlisten beim FHEM Start
-
volumeStep x => Schrittweite für Volume +/-
-
useIdle 0|1 => sendet das Kommando idle zum MPD und wartet auf Ereignisse - benötigt MPD Version 0.16.0 oder höher
- Wenn useIdle benutzt wird kann das Polling auf einen hohen Wert (300-600) gesetzt werden oder gleich ganz abgeschaltet werden.
- FHEM startet einen Hintergrundprozess und wartet auf Änderungen des MPD , wie z.B Titelwechsel im Stream, start/stop, etc.
- So lassen sich relativ zeitnah andere Geräte an/aus schalten oder z.B. eine LCD Anzeige aktualisieren ohne erst den nächsten Polling Intervall abwarten zu müssen !
-
titleSplit 1|0 = zerlegt die aktuelle Titelangabe am ersten Vorkommen von - (BlankMinusBlank) in die zwei Felder Artist und Titel,
- wenn im abgespielten Titel die Artist Information nicht verfügbar ist (sehr oft bei Radio-Streams)
- Liegen keine Titelangaben vor wird die Ausgabe durch den Namen der Radiostation erstetzt
-
-
- Readings
-
- alle MPD internen Werte
-
-
-
-
MSG
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: MSG
-
-
-
MSGFile
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: MSGFile
-
-
-
MSGMail
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: MSGMail
-
-
-
NetIO230B
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: NetIO230B
-
-
-
-
-
- ONKYO_AVR
-
-
- Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OREGON
-
-
-
OWAD
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWAD
-
-
-
OWCOUNT
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWCOUNT
-
-
-
OWDevice
-
-
-
- Definition
-
- define <name> OWDevice <address> [<interval>]
-
-
- Definiert ein 1-Wire- Gerät. 1-Wire- Geräte werden anhand ihrer Adresse <address> definiert. Diese wird
- durch den zuvor eingerichteten OWServer bereitgestellt.
-
-
- Wird zusätzlich <interval> angegeben, ruft OWServer alle <interval> Sekunden
- einen Datensatz des Gerätes ab.
-
-
- Jedes OWDevice ist ein eigenständiges Gerät. Seine Eigenschaften werden erstmals zum Zeitpunkt der Definition
- abgefragt. Die durch "get" oder "set" erzeugten, sowie durch den zyklischen Abruf gelieferten readings,
- können mit dem Kommando list <name> angezeigt werden.
-
- Folgende 1-Wire- und iButton- Komponenten werden aktuell unterstützt:
-
-
DS2401 - Im Chip integrierte Seriennummer
-
DS1990A - iButton mit fester Seriennummer
-
DS2405 - Adressierbarer Schalter
-
DS18S20 - Hochpräzisions-Digital-Thermosensor
-
DS1920 - iButton-Thermosensor
-
DS2406, DS2407 - Dualer adressierbarer Schalter mit 1 kbit Speicher
-
DS2436 - Batterie-ID/Monitor- Schaltkreis
-
DS2423 - Dual-Zählerbaustein mit Speicherfunktion
-
DS2450 - Vierfach-A/D Umsetzer
-
DS1822 - Econo-Thermosensor
-
DS2415 - Zeitgeber- Schaltkreis
-
DS1904 - iButton-Echtzeituhr
-
DS2438 - Smart-Batterie-Monitor
-
DS2417 - Zeitgeber-Schaltkreis mit Interrupt
-
DS18B20 - Thermosensor mit programmierbarer Auflösung
-
DS2408 - 8-kanaliger adressierbarer Schalter
-
DS2413 - 2-kanaliger adressierbarer Schalter
-
DS1825 - Thermosensor mit programmierbarer Auflösung und ID
-
EDS0066 - Vielfachsensor für Temperatur und Luftdruck
-
LCD - LCD-Ansteuerung von Louis Swart
-
-
- Das Hinzufügen weiterer Geräte ist im Modulcode (subroutine OWDevice_GetDetails) sehr einfach möglich.
-
- Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Großbuchstaben bestehen!
-
- Bitte beachten: Um einer Verwechselung entgegenzuwirken, stößt das reading "state" der Geräte keine Events an.
-
- Beispiele zur Einrichtung:
-
-
- define myOWServer localhost:4304
- get myOWServer devices
- 10.487653020800 DS18S20
- define myT1 10.487653020800
- list myT1 10.487653020800
- Internals:
- ...
- Readings:
- 2012-12-22 20:30:07 temperature 23.1875
- Fhem:
- ...
- getters:
- address
- family
- id
- power
- type
- temperature
- templow
- temphigh
- polls:
- temperature
- setters:
- alias
- templow
- temphigh
- ...
-
-
-
-
-
-
- Set-Befehle
-
-
set <name> interval <value>
-
- value überschreibt das Abrufintervall der Datensätze. Der Wert ist in Sekunden anzugeben.
-
-
set <name> <reading> <value>
-
- Setzt das <reading> auf <value> für das 1-Wire-Gerät <name>. Die verwendbaren Werte werden durch die
- jeweiligen 1-wire-Geräte bestimmt.
-
- Beispiel:
-
- set myT1 templow 5
-
-
-
-
-
-
-
- Get-Befehle
-
- get <name> <reading> <value>
-
- Holt das <reading> des 1- Wire Geräte- <name>. Die verwendbaren Werte werden durch die
- jeweiligen 1-wire-Geräte bestimmt.
-
- Beispiel:
-
- get myT1 temperature
-
-
-
-
-
-
- Attribute
-
-
-
IODev:
- Bestimmt die OWServer-Instanz, welche für das Senden und Abrufen der Daten
- eines OWDevice-Gerätes genutzt werden soll. Hinweis: Während des Starts
- ordnet FHEM die neuen OWDevice-Geräte der jeweils zuletzt definierten OWServer-Instanz zu.
- Deshalb verfährt man idealerweise so, dass man zuerst eine OWServer-Instanz und
- anschließend die zugehörigen OWDevice-Geräte definiert. Danach definiert man die
- nächste OWServer-Instanz, gefolgt von den zugehörigen OWDevice-Geräten, usw.
-
-
trimvalues: Entfernt voran- und nachgestellte Leerzeichen aus den readings. Standartwert ist 1 (ein).
-
polls: Eine per Komma getrennte Liste der abzurufenden readings. Mit diesem Attribut unterdrückt man alle standartmäßig abgerufenen readings und ersetzt sie durch die eigene Zusammenstellung.
-
interfaces: Ersetzt die durch dieses Gerät erzeugten Interfaces.
-
model: Angabe des Gerätetyps, z.B.: DS18S20.
-
resolution: Angabe der Auflösung für die Temperaturmessung in bits, zur Verfügung stehen: 9, 10, 11 oder 12.
- Hinweis: Geringere Auflösungen bewirken schnellere Reaktionen des Busses. Dies kann z.B. bei umfangreichen 1-Wire- Installationen hilfreich sein,
- um eventuelle Stillstände von FHEM zu vermindern.
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWFS
-
-
-
OWID
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWID
-
-
-
OWLCD
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWLCD
-
-
-
OWMULTI
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWMULTI
-
-
-
OWSWITCH
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: OWSWITCH
-
-
-
OWServer
-
-
-
- Definition
-
- define <name> OWServer <protocol>
-
-
- Definiert eine logische OWServer- Instanz. OWServer ist die Serverkomponente des
- 1-Wire Dateisystems. Sie ermöglicht den Zugriff auf
- alle 1-Wire- Busteilnehmer eines Systems.
- <protocol> hat das Format <hostname>:<port> Nähere Informationen dazu gibt es in der owserver Dokumentation.
-
- Voraussetzung innerhalb von FHEM ist das Modul OWNet.pm von owfs.org, welches bereits mit FHEM ausgeliefert wird.
- Das auf CPAN erhältliche OWNet- Modul beinhaltet seit dem 23.12.2012 einen Fehler, der es für Fernzugriffe unbrauchbar macht.
- Auf dem Computer, an dem der 1-Wire- Bus angeschlossen ist, muss die Software "owserver" installiert sein. Zusätzlich sollte auf diesem Rechner die Konfigurationsdatei "owfs.conf" eingesehen bzw. angepasst werden. Einen WIKI- Artikel dazu gibt es hier.
-
- Die vorhandenen 1-Wire- Busteilnehmer werden als OWDevice -Geräte definiert.
- Wenn autocreate aktiviert ist, werden beim Start von FHEM alle Geräte automatisch erkannt und eingerichtet.
-
- Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Großbuchstaben bestehen!
-
-
- Hinweis: Sollten keine Geräte erkannt werden, kann man versuchen in der owserver- Konfigurationsdatei (owfs.conf) zwei Servereinträge anzulegen:
- Einen mit localhost und einen mit dem "FQDN", bzw. dem Hostnamen, oder der IP-Adresse des Computers, auf dem die Software "owserver" läuft.
-
-
-
-
-
- Set- Befehle
-
- set <name> <value>
-
- wobei value für einen der folgenden Befehle steht:
-
reopen
- Erneuert die Verbindung zum owserver.
-
-
owserver (OWFS) -spezifische Einstellungen:
-
-
timeout/directory
-
timeout/ftp
-
timeout/ha7
-
timeout/network
-
timeout/presence
-
timeout/serial
-
timeout/server
-
timeout/stable
-
timeout/uncached
-
timeout/usb
-
timeout/volatile
-
timeout/w1
-
units/pressure_scale
-
units/temperature_scale
-
-
- Nähere Informationen zu diesen Einstellungen gibt es im owserver- Manual.
-
-
-
-
-
-
- Get- Befehle
-
- get <name> <value>
-
- wobei value für einen der folgenden Befehle steht:
-
devices
- Gibt eine Liste der Adressen und Typen aller von owserver erkannten Geräte aus. Außerdem
- werden die entsprechenden OWDevice- Namen angezeigt, soweit sie bereits definiert sind.
-
-
errors
- Liefert eine Fehlerstatistik zurück.
-
owserver (OWFS) -spezifische Einstellungen:
-
-
/settings/timeout/directory
-
/settings/timeout/ftp
-
/settings/timeout/ha7
-
/settings/timeout/network
-
/settings/timeout/presence
-
/settings/timeout/serial
-
/settings/timeout/server
-
/settings/timeout/stable
-
/settings/timeout/uncached
-
/settings/timeout/usb
-
/settings/timeout/volatile
-
/settings/timeout/w1
-
/settings/units/pressure_scale
-
/settings/units/temperature_scale
-
-
- Nähere Informationen zu diesen Einstellungen gibt es im owserver- Manual.
-
-
-
-
-
- Attribute
-
-
nonblocking
- Holt alle readings (OWServer / OWDevice) über einen Tochterprozess. Dieses Verfahren stellt sicher,
- dass FHEM während der Kommunikation mit owserver nicht angehalten wird.
- Beispiel:
- attr <name> nonblocking 1
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: PID
-
-
-
PID20
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: PID20
-
-
-
PIFACE
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: PIFACE
-
-
-
POKEYS
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: POKEYS
-
-
-
PRESENCE
-
-
- Das PRESENCE Module bietet mehrere Möglichkteiten um die Anwesenheit von Handys/Smartphones oder anderen mobilen Geräten (z.B. Tablets) zu erkennen.
-
- Dieses Modul bietet dazu mehrere Modis an um Anwesenheit zu erkennen. Diese sind:
-
-
lan-ping - Eine Erkennung auf Basis von Ping-Tests im lokalen LAN/WLAN
-
fritzbox - Eine Erkennung aufgrund der internen Abfrage des Status auf der FritzBox (nur möglich, wenn FHEM auf einer FritzBox läuft)
-
local-bluetooth - Eine Erkennung auf Basis von Bluetooth-Abfragen durch den FHEM Server. Das Gerät muss dabei in Empfangsreichweite sein, aber nicht sichtbar sein
-
function - Eine Erkennung mithilfe einer selbst geschriebenen Perl-Funktion, welche den Anwesenheitsstatus ermittelt.
-
shellscript - Eine Erkennung mithilfe eines selbst geschriebenen Skriptes oder Programm (egal in welcher Sprache).
-
lan-bluetooth - Eine Erkennung durch Bluetooth-Abfragen via Netzwerk (LAN/WLAN) in ein oder mehreren Räumen
-
-
- Jeder Modus kann optional mit spezifischen Prüf-Intervallen ausgeführt werden.
-
-
check-interval - Das normale Prüfinterval in Sekunden für eine Anwesenheitsprüfung. Standardwert: 30 Sekunden
-
present-check-interval - Das Prüfinterval in Sekunden, wenn ein Gerät anwesend (present) ist. Falls nicht angegeben, wird der Wert aus check-interval verwendet
-
-
-
- Define
-
Modus: lan-ping
- define <name> PRESENCE lan-ping <IP-Addresse oder Hostname> [ <Interval> [ <Anwesend-Interval> ] ]
-
- Prüft ob ein Gerät über Netzwerk (üblicherweise WLAN) auf Ping-Anfragen reagiert und setzt entsprechend den Anwesenheitsstatus.
- Beispiel
- define iPhone PRESENCE lan-ping 192.168.179.21
- Modus: fritzbox
- define <name> PRESENCE fritzbox <Gerätename> [ <Interval> [ <Anwesend-Interval> ] ]
-
- Prüft ob ein Gerät welches per WLAN mit der FritzBox verbunden ist, erreichbar durch Abfrage des Status mit dem Befehl ctlmgr_ctl.
- Der Gerätename (Parameter: <Gerätename>) muss dem Namen entsprechen, welcher im Menüpunkt "Heimnetz" auf der FritzBox-Oberfläche angezeigt wird.
- Dieser Modus ist nur verwendbar, wenn FHEM auf einer FritzBox läuft!
- Beispiel
- define iPhone PRESENCE fritzbox iPhone-4S
- Modus: local-bluetooth
- define <name> PRESENCE local-bluetooth <Bluetooth-Adresse> [ <Interval> [ <Anwesend-Interval> ] ]
-
- Prüft ob ein Bluetooth-Gerät abgefragt werden kann und meldet dies als Anwesenheit. Für diesen Modus wird der Shell-Befehl "hcitool" benötigt
- (wird durch das Paket bluez bereitgestellt), sowie ein funktionierender Bluetooth-Empfänger (intern oder als USB-Stick)
- define <name> PRESENCE function {...} [ <Interval> [ <Anwesend-Interval> ] ]
-
- Prüft den Anwesenheitsstatus mithilfe einer selbst geschriebenen Perl-Funktion (z.B. SNMP Abfrage).
- Diese Funktion muss 0 (Abwesend) oder 1 (Anwesend) zurückgeben. Ein entsprechendes Beispiel findet man im FHEM-Wiki.
- Beispiel
- define iPhone PRESENCE function {snmpCheck("10.0.1.1","0x44d77429f35c")
- Mode: shellscript
- define <name> PRESENCE shellscript "<Skript-Pfad> [<arg1>] [<argN>]..." [ <Interval> [ <Anwesend-Interval> ] ]
-
- Prüft den Anwesenheitsstatus mithilfe eines selbst geschrieben Skripts oder Programmes (egal in welcher Programmier-/Skriptsprache)
- Der Aufruf dieses Skriptes muss eine 0 (Abwesend) oder 1 (Anwesend) auf der Kommandozeile (STDOUT) ausgeben. Alle anderen Werte/Ausgaben werden als Fehler behandelt.
- Prüft ein Bluetooth-Gerät auf Anwesenheit über Netzwerk mit Hilfe von presenced oder collectord. Diese können auf jeder Maschine installiert werden,
- welche eine Standard-Perl-Umgebung bereitstellt und über Netzwerk erreichbar ist.
-
-
- define <name> PRESENCE lan-bluetooth <Bluetooth-Adresse> <IP-Adresse>[:Port] [ <Interval> ]
-
- Der Standardport ist 5111 (presenced). Alternativ kann man den Port 5222 (collectord) nutzen. Generell ist der Port aber frei wählbar.
Der presenced ist ein Perl Netzwerk Dienst, welcher eine Bluetooth-Anwesenheitserkennung von ein oder mehreren Geräten über Netzwerk bereitstellt.
- Dieser lauscht standardmäßig auf TCP Port 5111 nach eingehenden Verbindungen von dem PRESENCE Modul oder einem collectord.
-
-Usage:
- presenced -d [-p <port>] [-P <filename>]
- presenced [-h | --help]
-
-
-Options:
- -p, --port
- TCP Port which should be used (Default: 5111)
- -P, --pid-file
- PID file for storing the local process id (Default: /var/run/presenced.pid)
- -d, --daemon
- detach from terminal and run as background daemon
- -v, --verbose
- Print detailed log output
- -h, --help
- Print detailed help screen
-
-
- Zur Bluetooth-Abfrage wird der Shell-Befehl "hcitool" verwendet (Paket: bluez)
- um sogenannte "Paging-Request" an die gewünschte Bluetooth Adresse (z.B. 01:B4:5E:AD:F6:D3) durchzuführen. Das Gerät muss dabei nicht sichtbar sein, allerdings ständig aktiviert sein
- um Bluetooth-Anfragen zu beantworten.
-
-
- Wenn ein Gerät anwesend ist, wird dies an FHEM übermittelt zusammen mit dem Gerätenamen als Reading.
- Der collectord ist ein Perl Netzwerk Dienst, welcher Verbindungen zu mehreren presenced-Instanzen verwaltet um eine koordinierte Suche nach ein oder mehreren Bluetooth-Geräten über Netzwerk durchzuführen.
-
- Er lauscht auf TCP port 5222 nach eingehenden Verbindungen von einem PRESENCE Modul.
-
-Usage:
- collectord -c <configfile> [-d] [-p <port>] [-P <pidfile>]
- collectord [-h | --help]
-
-
-Options:
- -c, --configfile <configfile>
- The config file which contains the room and timeout definitions
- -p, --port
- TCP Port which should be used (Default: 5222)
- -P, --pid-file
- PID file for storing the local process id (Default: /var/run/collectord.pid)
- -d, --daemon
- detach from terminal and run as background daemon
- -v, --verbose
- Print detailed log output
- -l, --logfile <logfile>
- log to the given logfile
- -h, --help
- Print detailed help screen
-
- Bevor der collectord verwendet werden kann, benötigt er eine Konfigurationsdatei in welcher alle Räume mit einem presenced-Agenten eingetragen sind. Diese Datei sieht wie folgt aus:
-
-
- # Raum Definitionen
- # =================
- #
- [Raum-Name] # Name des Raumes
- address=192.168.0.10 # IP-Adresse oder Hostname
- port=5111 # TCP Port welcher benutzt werden soll (standardmäßig 5111)
- presence_timeout=120 # Prüfinterval in Sekunden für jede Abfrage eines Gerätes, welches anwesend ist
- absence_timeout=20 # Prüfinterval in Sekunden für jede Abfrage eines Gerätes, welches abwesend ist
-
- [Wohnzimmer]
- address=192.168.0.11
- port=5111
- presence_timeout=180
- absence_timeout=20
-
-
- Wenn ein Gerät in irgend einem Raum anwesend ist, wird dies an FHEM übermittelt, zusammen mit dem Gerätenamen und dem Raum, in welchem das Gerät erkannt wurde.
-
- Der collectord ist zum Download verfügbar als:
(Nur im Modus "ping" anwendbar auf Nicht-Windows-Maschinen)
- Verändert die Anzahl der Ping-Pakete die gesendet werden sollen um die Anwesenheit zu erkennen.
- Je nach Netzwerkstabilität können erste Pakete verloren gehen oder blockiert werden.
(Nur im Modus "fritzbox" anwendbar)
- Wenn die FritzBox Teil eines Netzwerkes ist, welches mit Repeatern arbeitet, dann muss dieses Attribut gesetzt sein um die Erkennung von Geräten zu gewährleisten,
- welche über einen Repeater erreichbar sind.
-
- Dies gilt ebenso für Devices, welche keine Geschwindigkeitsangaben auf der FritzBox Seite (Heimnetz) anzeigen können.
- ACHTUNG: Die Erkennung der Abwesenheit eines Gerätes in einem Repeater-Netzwerk kann ca. 15 - 20 Minuten dauern!!
-
state: $state (absent|present|disabled) - Der Anwesenheitsstatus eine Gerätes (absent = abwesend; present = anwesend) oder "disabled" wenn das disable-Attribut aktiviert ist
-
- Bluetooth-spezifische Events:
-
-
device_name: $name - Der Name des Bluetooth-Gerätes, wenn es anwesend (Status: present) ist
-
- presenced-/collectord-spezifische Events:
-
-
command_accepted: $command_accepted (yes|no) - Wurde das letzte Kommando an den presenced/collectord akzeptiert (yes = ja, no = nein)?
-
room: $room - Wenn das Modul mit einem collectord verbunden ist, zeigt dieses Event den Raum an, in welchem dieses Gerät erkannt wurde (Raumname entsprechend der Konfigurationsdatei des collectord)
-
-
-
-
-
-
-
PachLog
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: PachLog
-
-
-
Pushover
-
- Pushover ist ein Dienst, um Benachrichtigungen von einer vielzahl
- von Quellen auf Deinem Smartphone oder Tablet zu empfangen.
- Du brauchst einen Account um dieses Modul zu verwenden.
- Für weitere Informationen über den Dienst besuche pushover.net.
-
- Diskutiere das Modul hier.
-
-
-
- Define
-
- define <name> Pushover <token> <user>
-
- Du musst einen Account erstellen, um den User Key zu bekommen.
- Und du musst eine Anwendung erstellen, um einen API Token zu bekommen.
-
- Beispiel:
-
- set Pushover1 msg 'Titel' 'Dies ist ein Text.' '' 0 ''
- set Pushover1 msg 'Notfall' 'Sicherheitsproblem im Wohnzimmer.' '' 2 'siren' 30 3600
-
-
- Anmerkungen:
-
-
Wenn device leer ist, wird die Nachricht an alle Geräte geschickt.
-
-
Wenn sound leer ist, dann wird die Standardeinstellung in der App verwendet.
-
-
Wenn die Priorität höher oder gleich 2 ist müssen retry und expire definiert sein.
-
-
Für weiterführende Dokumentation über diese Parameter lies Dir die Pushover API durch.
-
-
-
-
- Get
N/A
-
- Attributes
-
-
-
timestamp
- Sende den Unix-Zeitstempel mit jeder Nachricht.
-
-
-
-
- Generated events:
-
- N/A
-
-
-
-
-
-
-
- RESIDENTS
-
-
- Define
-
- define <rgr_ResidentsName> RESIDENTS
-
- Stellt ein spezielles Dummy-Device bereit, um eine Gruppe von Personen zu repräsentieren, die zusammen wohnen.
- Es kombiniert dabei logisch die individuellen Stati von ROOMMATE und GUEST Devices und erlaubt den Status für alle Mitglieder zeitgleich zu ändern. Basierend auf dem aktuelle Status und anderen Readings können andere Aktionen innerhalb von FHEM angestoßen werden.
-
- Beispiele:
-
- # Einzeln
- define rgr_Residents RESIDENTS
-
-
-
- Set
-
- set <rgr_ResidentsName> <command> [<parameter>]
-
- Momentan sind die folgenden Kommandos definiert.
-
-
- addGuest - erstellt ein neues GUEST Device und fügt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Platzhalternamen eingeben und das wars.
-
-
- addRoommate - erstellt ein neues GUEST Device und fügt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Vornamen eingeben und das wars.
-
-
- removeGuest - zeigt alle Mitglieder vom Typ GUEST an und ermöglicht ein einfaches löschen des dazugehörigen Dummy Devices.
-
-
- removeRoommate - zeigt alle Mitglieder vom Typ ROOMMATE an und ermöglicht ein einfaches löschen des dazugehörigen Dummy Devices.
-
-
- state home,gotosleep,asleep,awoken,absent,gone wechselt den Status für alle Gruppenmitglieder gleichzeitig; siehe Attribut rgr_states, um die angezeigte Liste in FHEMWEB abzuändern
-
-
-
-
-
- Mögliche Stati und ihre Bedeutung
-
-
- Dieses Modul unterscheidet 7 verschiedene Stati:
-
-
-
- home - Bewohner sind zu Hause und mindestens einer schläft nicht
-
-
- gotosleep - alle anwesenden Bewohner sind auf dem Weg ins Bett (wenn sie nicht schon schlafen)
-
-
- asleep - alle anwesenden Bewohner schlafen
-
-
- awoken - mindestens einer der anwesenden Bewohner ist gerade aufgewacht
-
-
- absent - keiner der Bewohner ist momentan zu Hause; mindestens einer ist aber in Kürze zurück
-
-
- gone - alle Bewohner sind für längere Zeit verreist
-
-
- none - kein Mitglied aktiv
-
-
-
- Hinweis: Der Status 'none' kann nicht explizit gesetzt werden. Das setzen von 'gone' wird bei Mitgliedern vom Typ GUEST als 'none' behandelt.
-
-
-
- Attribute
-
-
-
- rgr_showAllStates - die Stati 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess über das devStateIcon Attribut zu ermöglichen; Standard ist 0
-
-
- rgr_states - Liste aller in FHEMWEB angezeigter Stati; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterstützte Stati führen zu Fehlern
-
-
-
-
-
- Generierte Readings/Events:
-
-
-
- lastActivity - der letzte Status Wechsel eines Gruppenmitglieds
-
-
- lastActivityBy - der Name des Gruppenmitglieds, dessen Status zuletzt geändert wurde
-
-
- lastArrival - Zeitstempel der letzten Ankunft zu Hause
-
-
- lastAwake - Zeitstempel des Endes des letzten Schlafzyklus
-
-
- lastDeparture - Zeitstempel des letzten Verlassens des Zuhauses
-
-
- lastDurAbsence - Dauer der letzten Abwesenheit im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastDurPresence - Dauer der letzten Anwesenheit im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastDurSleep - Dauer des letzten Schlafzyklus im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastSleep - Zeitstempel des Beginns des letzten Schlafzyklus
-
-
- lastState - der vorherige Status
-
-
- presence - gibt den Zuhause Status in Abhängigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
-
-
- residentsAbsent - Anzahl der Bewohner mit Status 'absent'
-
-
- residentsAsleep - Anzahl der Bewohner mit Status 'asleep'
-
-
- residentsAwoken - Anzahl der Bewohner mit Status 'awoken'
-
-
- residentsGone - Anzahl der Bewohner mit Status 'gone'
-
-
- residentsGotosleep - Anzahl der Bewohner mit Status 'gotosleep'
-
-
- residentsGuests - Anzahl der aktiven Gäste, welche momentan du den Bewohnern dazugezählt werden
-
-
- residentsHome - Anzahl der Bewohner mit Status 'home'
-
-
- residentsTotal - Summe aller aktiven Bewohner unabhängig von ihrem aktuellen Status
-
-
- residentsTotalAbsent - Summe aller aktiven Bewohner, die unterwegs sind
-
-
- residentsTotalPresent - Summe aller aktiven Bewohner, die momentan Zuhause sind
-
-
- residentsTotalWayhome - Summe aller aktiven Bewohner, die momentan auf dem Weg zurück nach Hause sind
-
-
- state - gibt den aktuellen Status wieder
-
-
-
-
-
-
-
RFXCOM
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: RFXCOM
-
-
-
RFXMETER
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: RFXMETER
-
-
-
RFXX10REC
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: RFXX10REC
-
-
-
-
-
- ROOMMATE
-
-
- Define
-
- define <rr_FirstName> ROOMMATE [<Device Name der Bewohnergruppe>]
-
- Stellt ein spezielles Dummy Device bereit, welches einen Mitbewohner repräsentiert.
- Basierend auf dem aktuelle Status und anderen Readings können andere Aktionen innerhalb von FHEM angestoßen werden.
-
- Wird vom übergeordneten Modul RESIDENTS verwendet, kann aber auch einzeln benutzt werden.
-
- Beispiele:
-
- # Einzeln
- define rr_Manfred ROOMMATE
-
- # Typisches Gruppenmitglied
- define rr_Manfred ROOMMATE rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein
-
- # Mitglied in mehreren Gruppen
- define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # um Mitglied den Gruppen rgr_Residents und rgr_Parents zu sein
-
- # Komplexe Familien Struktur
- define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # Elternteil
- define rr_Lisa ROOMMATE rgr_Residents,rgr_Parents # Elternteil
- define rr_Rick ROOMMATE rgr_Residents,rgr_Children # Kind1
- define rr_Alex ROOMMATE rgr_Residents,rgr_Children # Kind2
-
-
-
- Bitte beachten, dass das RESIDENTS Gruppen Device zunächst angelegt werden muss, bevor ein ROOMMATE Objekt dort Mitglied werden kann.
-
-
-
- Set
-
- set <rr_FirstName> <command> [<parameter>]
-
- Momentan sind die folgenden Kommandos definiert.
-
-
- location - setzt das Reading 'location'; siehe auch Attribut rr_locations, um die in FHEMWEB angezeigte Liste anzupassen
-
-
- mood - setzt das Reading 'mood'; siehe auch Attribut rr_moods, um die in FHEMWEB angezeigte Liste anzupassen
-
-
- state home,gotosleep,asleep,awoken,absent,gone wechselt den Status; siehe auch Attribut rr_states, um die in FHEMWEB angezeigte Liste anzupassen
-
-
-
-
-
- Mögliche Stati und ihre Bedeutung
-
-
- Dieses Modul unterscheidet 6 verschiedene Stati:
-
-
-
- home - Mitbrwohner ist zuhause und wach
-
-
- gotosleep - Mitbewohner ist auf dem Weg ins Bett
-
-
- asleep - Mitbewohner schläft
-
-
- awoken - Mitbewohner ist gerade aufgewacht
-
-
- absent - Mitbewohner ist momentan nicht zuhause, wird aber bald zurück sein
-
-
- gone - Mitbewohner ist für längere Zeit verreist
-
-
-
-
-
-
- Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location
-
-
- Unter bestimmten Umständen führt der Wechsel des Status auch zu einer Änderung des Readings 'location'.
-
- Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rr_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.
-
- Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rr_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
-
-
-
-
- Auto-Status 'gone'
-
-
- Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Zähler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.
- Der Standard ist nach 36 Stunden.
-
- Dieses Verhalten kann über das Attribut rr_autoGoneAfter angepasst werden.
-
-
-
-
- Anwesenheit mit anderen ROOMMATE oder GUEST Devices synchronisieren
-
-
- Wenn Sie immer zusammen mit anderen Mitbewohnern oder Gästen das Haus verlassen oder erreichen, können Sie ihren Status ganz einfach auf andere Mitbewohner übertragen.
- Durch das Setzen des Attributs rr_PassPresenceTo folgen die dort aufgeführten Mitbewohner ihren eigenen Statusänderungen nach 'home', 'absent' oder 'gone'.
-
- Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von Gästen) nicht beachtet werden.
-
-
-
-
- Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence
-
-
- Unter bestimmten Umständen hat der Wechsel des Readings 'location' auch einen Einfluss auf den tatsächlichen Status.
-
- Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rr_locationHome gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.
-
- Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rr_locationUnderway gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' übertragen.
-
- Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rr_locationWayhome gesetzt wurde, so führt das VERLASSEN einer dort aufgeführten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 Möglichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).
- Die Ankunft zuhause setzt den Wert von 'wayhome' zurück auf '0'.
-
- Wenn Sie auch das GEOFANCY Modul verwenden, können Sie das Reading 'location' ganz einfach über GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:
-
- define n_rr_Manfred.location notify geofancy:currLoc_Manfred.* set rr_Manfred location $EVTPART1
-
- Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zukünftig automatisch alle Statusänderungen wie oben beschrieben durchgeführt.
-
-
-
- Attribute
-
-
-
- rr_autoGoneAfter - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' ändert, wenn der aktuelle Status 'absent' ist; Standard ist 36 Stunden
-
-
- rr_locationHome - hiermit übereinstimmende Lokationen werden als zuhause gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'home'
-
-
- rr_locationUnderway - hiermit übereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'underway'
-
-
- rr_locationWayhome - das Verlassen einer Lokation, die hier aufgeführt ist, lässt das Reading 'wayhome' auf '1' setzen; mehrere Einträge durch Leerzeichen trennen; Standard ist "wayhome"
-
-
- rr_locations - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
-
-
- rr_moodDefault - die Stimmung, die nach Ankunft zuhause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
-
-
- rr_moodSleepy - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
-
-
- rr_moods - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
-
-
- rr_passPresenceTo - synchronisiere die Anwesenheit mit anderen ROOMMATE oder GUEST Devices; mehrere Devices durch Leerzeichen trennen
-
-
- rr_realname - wo immer ROOMMATE den richtigen Namen verwenden möchte nutzt es den Wert des Attributs alias oder group; Standard ist group
-
-
- rr_showAllStates - die Stati 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess über das devStateIcon Attribut zu ermöglichen; Standard ist 0
-
-
- rr_states - Liste aller in FHEMWEB angezeigter Stati; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterstützte Stati führen zu Fehlern
-
-
-
-
-
- Generierte Readings/Events:
-
-
-
- durTimerAbsence - Timer, der die Dauer der Abwesenheit in Minuten anzeigt
-
-
- durTimerPresence - Timer, der die Dauer der Anwesenheit in Minuten anzeigt
-
-
- durTimerSleep - Timer, der die Schlafdauer in Minuten anzeigt
-
-
- lastArrival - Zeitstempel der letzten Ankunft zu Hause
-
-
- lastAwake - Zeitstempel des Endes des letzten Schlafzyklus
-
-
- lastDeparture - Zeitstempel des letzten Verlassens des Zuhauses
-
-
- lastDurAbsence - Dauer der letzten Abwesenheit im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastDurPresence - Dauer der letzten Anwesenheit im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastDurSleep - Dauer des letzten Schlafzyklus im folgenden Format: Stunden:Minuten:Sekunden
-
-
- lastLocation - der vorherige Aufenthaltsort
-
-
- lastMood - die vorherige Stimmung
-
-
- lastSleep - Zeitstempel des Beginns des letzten Schlafzyklus
-
-
- lastState - der vorherige Status
-
-
- location - der aktuelle Aufenthaltsort
-
-
- presence - gibt den Zuhause Status in Abhängigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
-
-
- mood - die aktuelle Stimmung
-
-
- state - gibt den aktuellen Status wieder
-
-
- wayhome - abhängig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zurück nach Hause ist
-
-
-
-
-
-
-
RPII2C
-
-
- Ermöglicht den Zugriff auf die I2C Schnittstellen des Raspberry Pi über logische Module. Register von I2C IC's können auch direkt gelesen und geschrieben werden.
- Dieses Modul funktioniert grunsätzlich auf allen Linux Systemen, die /dev/i2c-x bereitstellen.
-
- Vorbereitung:
-
-
- Dieses Modul nutzt das gpio Utility der WiringPi Bibliothek um FHEM Schreibrechte auf die I2C Schnittstelle zu geben.
- WiringPi Installation ist hier beschrieben: RPI_GPIO
- Für andere Systeme (BeagleBone, etc.) oder auch für das Raspberry kann auf WiringPi verzichtet werden. In diesem Fall müssen die Dateien /dev/i2c-x Schreib-/Leserechte, für den User unter dem FHEM läuft, gesetzt bekommen. (z.B. in der etc/init.d/fhem)
-
- Desweiteren ist das Perl Modul Device::SMBus für den Zugrff auf den I2C Bus notwendig:
- sudo apt-get install libmoose-perl
- sudo cpan Device::SMBus
-
-
-
- Define
-
- define <name> RPII2C <I2C Bus Number>
- Die <I2C Bus Number> ist die Nummer des I2C Bus an den die I2C IC's angeschlossen werden (0 oder 1)
-
-
-
- Set
-
-
- Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein I2C device (manche I2C Module sind so einfach, das es nicht einmal mehrere Register gibt):
- set <name> writeByte <I2C Address> <value>
-
-
- Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein Register des adressierten I2C device:
- set <name> writeByteReg <I2C Address> <Register Address> <value>
-
-
- Schreibe n-bytes auf einen Registerbereich, beginnend mit dem angegebenen Register:
- set <name> writeBlock <I2C Address> <Register Address> <value>
-
-
- Identisch zu writeBlock nur kann der Registerbereich sequentiell beschrieben werden. Die Anzahl der Byte muss ein vielfaches der <number of registers> sein.
- set <name> writeNBlock <I2C Address> <Register Address> <number of registers> <value>
-
- Beispiele:
-
- Schreibe 0xAA zu Modul mit I2C Addresse 0x60
- set test1 writeByte 60 AA
- Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E
- set test1 writeByteReg 6E 01 AA
- Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E, schreibe danach 0x55 in das Register 0x02 als einzelne Befehle
- set test1 writeByteReg 6E 01 AA 55
- Schreibe 0xA4 zu Register 0x03, 0x00 zu Register 0x04 und 0xDA zu Register 0x05 des Moduls mit der I2C Adresse 0x60 zusammen als ein Blockbefehl
- set test1 writeBlock 60 03 A4 00 DA
-
-
-
-
- Get
-
- get <name> read <I2C Address> [<Register Address> [<number of registers>]]
-
- Auslesen der Registerinhalte des I2C Moduls
- Examples:
-
- Lese Byte vom Modul mit der I2C Adresse 0x60
- get test1 writeByte 60
- Lese den Inhalt des Registers 0x01 vom Modul mit der I2C Adresse 0x6E.
- get test1 read 6E 01 AA 55
- Lese den Inhalt des Registerbereichs 0x03 bis 0x06 vom Modul mit der I2C Adresse 0x60.
- get test1 read 60 03 4
-
- Das Raspberry Pi ermöglicht direkten Zugriff zu einigen GPIO's über den Pfostenstecker P1 (und P5 bei V2). Die Steckerbelegung ist in den Tabellen unter Define zu finden.
- Dieses Modul ermöglicht es, die herausgefühten GPIO's direkt als Ein- und Ausgang zu benutzen. Die Eingänge können zyklisch abgefragt werden oder auch sofort bei Pegelwechsel gesetzt werden.
- Wichtig: Niemals Spannung an einen GPIO anlegen, der als Ausgang eingestellt ist! Die interne Logik der GPIO's arbeitet mit 3,3V. Ein überschreiten der 3,3V zerstört den GPIO und vielleicht auch den ganzen Prozessor!
-
- Vorbereitung:
- Auf GPIO Pins wird im Modul über sysfs zugegriffen. Die Dateien befinden sich unter /system/class/gpio und können nur mit root erreicht werden.
- Dieses Modul nutzt das gpio Tool von der WiringPi. Bibliothek um GPIS zu exportieren und die korrekten Nutzerrechte zu setzen.
- Installation WiringPi:
-
- readval aktualisiert das reading Pinlevel und, wenn attr toggletostate nicht gesetzt ist, auch state
-
-
- Beispiele:
-
- set Pin12 off
- set Pin11,Pin12 on
-
-
-
-
- Get
-
- get <name>
-
- Gibt "high" oder "low" entsprechend dem aktuellen Pinstatus zurück und schreibt den Wert auch in das reading Pinlevel
-
-
-
- Attributes
-
-
direction
- Setzt den GPIO auf Ein- oder Ausgang.
- Standard: input, gültige Werte: input, output
-
-
interrupt
- kann nur gewählt werden, wenn der GPIO als Eingang konfiguriert ist
- Aktiviert Flankenerkennung für den GPIO
- bei jedem interrupt Ereignis werden die readings Pinlevel und state aktualisiert
- Standard: none, gültige Werte: none, falling, rising, both
- Bei "both" wird ein reading Longpress angelegt, welches auf on gesetzt wird solange der Pin länger als 1s gedrückt wird
- Bei "falling" und "rising" wird ein reading Toggle angelegt, das bei jedem Interruptereignis toggelt und das Reading Counter, das bei jedem Ereignis um 1 hochzählt
-
-
-
poll_interval
- Fragt den Zustand des GPIO regelmäßig ensprechend des eingestellten Wertes in Minuten ab
- Standard: -, gültige Werte: Dezimalzahl
-
-
toggletostate
- Funktioniert nur bei auf falling oder rising gesetztem Attribut interrupt
- Wenn auf "yes" gestellt wird bei jedem Triggerereignis das state reading invertiert
- Standard: no, gültige Werte: yes, no
debounce_in_ms
- Wartezeit in ms bis nach ausgelöstem Interrupt der entsprechende Pin abgefragt wird. Kann zum entprellen von mechanischen Schaltern verwendet werden
- Standard: 0, gültige Werte: Dezimalzahl
-
-
restoreOnStartup
- Wiederherstellen der Portzust&äuml;nde nach Neustart
- Standard: on, gültige Werte: on, off
-
-
longpressinterval
- Funktioniert nur bei auf both gesetztem Attribut interrupt
- Zeit in Sekunden, die ein GPIO auf high verweilen muss, bevor das Reading longpress auf on gesetzt wird
- Standard: 1, gültige Werte: 0.1 - 10
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: RSS
-
-
-
RandomTimer
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: RandomTimer
-
-
-
Revolt
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: Revolt
-
-
-
SCIVT
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: SCIVT
-
-
-
SISPM
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: SISPM
-
-
-
SIS_PMS
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: SIS_PMS
-
-
-
SML
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: SML
-
-
-
STACKABLE_CC
-
- Mit Hilfe dieses Moduls kann man die "Stackable CC" Geräte von busware.de in
- FHEM integrieren. Diese Geräte ermöglichen eine Menge von CULs an einem RPi
- anzuschliessen.
- Das erste Gerät wird als CUL definiert, alle nachfolgenden als STACKABLE_CC.
-
-
-
- Define
-
- define <name> STACKABLE_CC <Base-Device-Name>
-
- <Base-Device-Name> ist der Name des Gerätes, der als Basis für das
- aktuelle Gerät dient.
- Beispiel:
-
Das rfmode Attribut muss explizit spezifiziert werden. Das gilt nur
- für die STACKABLE_CC Definitionen, und nicht für die erste, die
- als CUL definiert wurde.
-
Falls SlowRF spezifiziert wurde, dann muss das FHTID explizit gesetzt
- werden, mit folgendem Kommando: "set SCCX raw T01HHHH". Auch das ist nur
- für die STACKABLE_CC nötig.
-
Falls ein Gerät umbenannt wird, was als Basis für ein STACKABLE_CC
- dient, dann muss es auch in der Definition des abhängigen Gerätes
- umbenannt werden, und FHEM muss neugestartet werden.
- Dies ist das Zeichenmodul von FHEMWEB, mit dem Vektorgrafiken (SVG) erzeugt
- werden.
- Beispiel:
-
- define MyPlot SVG inlog:temp4hum4:CURRENT
-
-
-
- Hinweise:
-
-
Normalerweise müssen SVG-Geräte nicht manuell erzeugt
- werden, da FHEMWEB es für den Nutzer einfach macht: man muss in
- der Detailansicht eines FileLogs wechseln und auf "Create SVG instance"
- klicken.
-
-
CURRENT als <logfile> wird immer das aktuelle Logfile
- benutzen, selbst dann, wenn der Name des Logfiles sich
- regelmäßig ändert.
-
-
Aus historischen Gründen benötigt jede SVG-Instanz eine
- sog. .gplot Datei, die auch als Input für das gnuplot Programm
- verwendet werden kann. Einige besondere Zeilen (welche mit #FileLog
- oder #DbLog beginnen) werden zusätzlich benutzt, diese werden von
- gnuplot als Kommentar betrachtet. Auf der anderen Seite implementiert
- dieses Modul nicht alle gnuplot-Attribute.
-
-
-
-
-
-
- Set
-
-
copyGplotFile
- Kopiert die aktuell ausgewählte .gplot Datei in eine neue Datei, die
- den Namen der SVG Instanz trägt; bereits bestehende Dateien mit
- gleichem Namen werden überschrieben. Diese Vorgehensweise ist
- notwendig, wenn man den Ploteditor benutzt. Erzeugt man aus der
- Detailansicht des FileLogs die SVG Instanz, wird eine eindeutige
- .gplot-Datei erzeugt. In diesem Fall ist dieses Befehl nicht
- erforderlich.
-
-
-
-
- Get
N/A
-
-
- Attribute
-
-
-
fixedrange [offset]
- Version 1
- Enthält zwei Zeit-Spezifikationen in der Schreibweise YYYY-MM-DD,
- getrennt durch ein Leerzeichen. Im Plotmodus gnuplot-Scroll oder SVG wird
- das vorgegebene Intervall verwendet und ein Scrolling der Zeitachse ist
- nicht möglich. Dies wird z.B. verwendet, um sich die Daten des
- vergangenen Jahres ohne Scrollen anzusehen.
-
- Version 2
- Wenn der Wert entweder Tag, <N>Tage, Woche, Monat oder Jahr lautet,
- kann der Zoom-Level für dieses SVG unabhängig vom
- User-spezifischen Zoom eingestellt werden. Diese Einstellung ist
- nützlich für mehrere Plots auf einer Seite: Eine Grafik ist mit
- dem Standard-Zoom am aussagekräftigsten, die anderen mit einem Zoom
- über eine Woche.
- Der optionale ganzzahlige Parameter [offset] setzt ein anderes
- Zeitintervall (z.B. letztes Jahr: fixedrange year -1,
- vorgestern: fixedrange day -2).
-
-
-
-
fixedoffset <nTage>
- Verschiebt den Plot-Offset um einen festen Wert (in Tagen).
-
-
-
-
startDate
- Setzt das Startdatum für den Plot. Wird für Demo-Installationen
- verwendet.
-
label
- Eine Liste, bei der die einzelnen Werte mit einem zweifachen Doppelpunkt
- voneinander getrennt werden. Diese Liste wird verwendet um die <L#>
- Zeichenfolgen in der .gplot-Datei zu ersetzen. Dabei steht das # für
- eine laufende Ziffer beginnend mit 1 (<L1>, <L2>, usw.).
- Jeder Wert wird als Perl-Ausdruck bewertet, deshalb hat man Zugriff z.B.
- auf die hinterlegten Funktionen.
-
- Egal, ob es sich bei der Plotart um gnuplot-scroll oder SVG handelt, es
- können ebenfalls die Werte der individuellen Kurve für min,
- max, avg, cnt, sum, currval (letzter Wert) und currdate (letztes Datum)
- durch Zugriff der entsprechenden Werte über das DataHash verwendet
- werden. Siehe untenstehendes Beispiel:
-
title
- Eine besondere Form der Überschrift (siehe oben), bei der die
- Zeichenfolge <TL> in der .gplot-Datei ersetzt wird.
- Standardmäßig wird als <TL> der Dateiname des Logfiles
- eingesetzt.
-
-
-
-
plotfunction
- Eine Liste, deren Werte durch Leerzeichen voneinander getrennt sind.
- Diese Liste wird verwendet um die <SPEC#> Zeichenfolgen in der
- .gplot-Datei zu ersetzen. Dabei steht das # für eine laufende Ziffer
- beginnend mit 1 (<SPEC1>, <SPEC2>, usw.) in der #FileLog oder
- #DBLog Anweisung. Mit diesem Attrbute ist es möglich eine
- .gplot-Datei für mehrere Geräte mit einem einzigen logdevice zu
- verwenden.
-
-
-
- Plot-Editor
-
- Dieser Editor ist in der Detailansicht der SVG-Instanz zu sehen. Die
- meisten Features sind hier einleuchtend und bekannt, es gibt aber auch
- einige Ausnahmen:
-
-
wenn für ein Diagramm die Überschrift unterdrückt werden
- soll, muss im Eingabefeld notitle eingetragen werden.
-
-
-
wenn ein fester Wert (nicht aus einer Wertespalte) definiert werden
- soll, für den Fall, das eine Zeichenfoge gefunden wurde (z.B. 1
- für eine FS20 Schalter, der AN ist und 0 für den AUS-Zustand),
- muss zuerst das Tics-Feld gefüllt, und die .gplot-Datei
- gespeichert werden, bevor der Wert über die Dropdownliste erreichbar
- ist.
-
Beispiel:
- Eingabe im Tics-Feld: ("On" 1, "Off" 0)
- .gplot-Datei speichern
- "1" als Regexp switch.on und "0" für den Regexp switch.off vom
- Spalten-Dropdown auswählen (auf die Gänsefüßchen
- achten!).
- .gplot-Datei erneut speichern
-
-
-
- Die sichtbarkeit des Plot-Editors kann mit dem FHEMWEB Attribut ploteditor konfiguriert werden.
-
-
-
-
-
SWAP
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: SWAP
-
-
-
SWAP_0000002200000003
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: SWAP_0000002200000003
-
-
-
SYSMON
-
- Dieses Modul liefert diverse Informationen und Statistiken zu dem System, auf dem FHEM-Server ausgeführt wird.
- Es werden nur Linux-basierte Systeme unterstützt. Manche Informationen sind hardwarespezifisch und sind daher nicht auf jeder Plattform
- verfügbar.
- Bis jetzt wurde dieses Modul auf folgenden Systemen getestet: Raspberry Pi (Debian Wheezy), BeagleBone Black,
- FritzBox 7390 (keine CPU-Daten), WR703N unter OpenWrt.
-
- Define
-
- define <name> SYSMON [<M1>[ <M2>[ <M3>[ <M4>]]]]
-
- Diese Anweisung erstellt eine neue SYSMON-Instanz.
- Die Parameter M1 bis M4 legen die Aktualisierungsintervalle für verschiedenen Readings (Statistiken) fest.
- Die Parameter sind als Multiplikatoren für die Zeit, die durch INTERVAL_BASE definiert ist, zu verstehen.
- Da diese Zeit fest auf 60 Sekunden gesetzt ist, können die Mx-Parameters als Zeitintervalle in Minuten angesehen werden.
- Wird einer (oder mehrere) Multiplikatoren auf Null gesetzt werden, wird das entsprechende Readings deaktiviert.
-
- Die Parameter sind für die Aktualisierung der Readings nach folgender Schema zuständig:
-
folgende Parameter werden immer anhand des Basisintervalls (unabhängig von den Mx-Parameters) aktualisiert:
- fhemuptime, fhemuptime_text, idletime, idletime_text, uptime, uptime_text
-
-
-
-
- Readings:
-
-
-
cpu_bogomips
- CPU Speed: BogoMIPS
-
-
cpu_freq
- CPU-Frequenz
-
-
-
cpu_temp
- CPU-Temperatur
-
-
-
cpu_temp_avg
- Durchschnitt der CPU-Temperatur, gebildet über die letzten 4 Werte.
-
-
-
fhemuptime
- Zeit (in Sekunden) seit dem Start des FHEM-Servers.
-
-
-
fhemuptime_text
- Zeit seit dem Start des FHEM-Servers: Menschenlesbare Ausgabe (texttuelle Darstellung).
-
-
-
idletime
- Zeit (in Sekunden und in Prozent), die das System (nicht der FHEM-Server!)
- seit dem Start in dem Idle-Modus verbracht hat. Also die Zeit der Inaktivität.
-
-
-
idletime_text
- Zeit der Inaktivität des Systems seit dem Systemstart in menschenlesbarer Form.
-
-
-
loadavg
- Ausgabe der Werte für die Systemauslastung (load average): 1 Minute-, 5 Minuten- und 15 Minuten-Werte.
-
-
-
ram
- Ausgabe der Speicherauslastung.
-
-
-
swap
- Benutzung und Auslastung der SWAP-Datei (bzw. Partition).
-
-
-
uptime
- Zeit (in Sekenden) seit dem Systemstart.
-
-
-
uptime_text
- Zeit seit dem Systemstart in menschenlesbarer Form.
-
-
-
Netzwerkinformationen
- Informationen zu den über die angegebene Netzwerkschnittstellen übertragene Datenmengen
- und der Differenz zu der vorherigen Messung.
-
- Beispiele:
- Menge der übertragenen Daten über die Schnittstelle eth0.
- eth0: RX: 940.58 MB, TX: 736.19 MB, Total: 1676.77 MB
- Änderung der übertragenen Datenmenge in Bezug auf den vorherigen Aufruf (für eth0).
- eth0_diff: RX: 0.66 MB, TX: 0.06 MB, Total: 0.72 MB
-
-
-
Dateisysteminformationen
- Informationen zu der Größe und der Belegung der gewünschten Dateisystemen.
- Seit Version 1.1.0 können Dateisysteme auch benannt werden (s.u.).
- In diesem Fall werden für die diese Readings die angegebenen Namen verwendet.
- Dies soll die Übersicht verbessern und die Erstellung von Plots erleichten.
- Beispiel:
- fs_root: Total: 7340 MB, Used: 3573 MB, 52 %, Available: 3425 MB at /
-
Benutzerdefinierte Einträge
- Diese Readings sind Ausgaben der Kommanden, die an das Betriebssystem übergeben werden.
- Die entsprechende Angaben werden im Attribut user-defined vorgenommen.
-
interval
- Listet die bei der Definition angegebene Polling-Intervalle auf.
-
-
-
list
- Gibt alle Readings aus.
-
-
-
update
- Aktualisiert alle Readings. Alle Werte werden neu abgefragt.
-
-
-
version
- Zeigt die Version des SYSMON-Moduls.
-
-
-
-
- Set:
-
-
interval_multipliers
- Definiert Multipliers (wie bei der Definition des Gerätes).
-
-
-
clean
- Löscht benutzerdefinierbare Readings. Nach einem Update (oder nach der automatischen Aktualisierung) werden neue Readings generiert.
-
-
-
clear <reading name>
- Löscht den Reading-Eintrag mit dem gegebenen Namen. Nach einem Update (oder nach der automatischen Aktualisierung)
- wird dieser Eintrag ggf. neu erstellt (falls noch definiert). Dieses Mechanismus erlaubt das gezielte Löschen nicht mehr benötigter
- benutzerdefinierten Einträge.
-
-
-
-
- Attributes:
-
-
filesystems <reading name>[:<mountpoint>[:<comment>]],...
- Gibt die zu überwachende Dateisysteme an. Es wird eine kommaseparierte Liste erwartet.
- Reading-Name wird bei der Anzeige und Logging verwendet, Mount-Point ist die Grundlage der Auswertung,
- Kommentar ist relevant für die HTML-Anzeige (s. SYSMON_ShowValuesHTML)
- Beispiel: /boot,/,/media/usb1
- oder: fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
- Im Sinne der besseren Übersicht sollten zumindest Name und MountPoint angegeben werden.
-
-
-
network-interfaces <name>[:<interface>[:<comment>]],...
- Kommaseparierte Liste der Netzwerk-Interfaces, die überwacht werden sollen.
- Jeder Eintrag besteht aus dem Reading-Namen, dem Namen
- des Netwerk-Adapters und einem Kommentar für die HTML-Anzeige (s. SYSMON_ShowValuesHTML). Wird kein Doppelpunkt verwendet,
- wird der Wert gleichzeitig als Reading-Name und Interface-Name verwendet.
- Beispiel ethernet:eth0:Ethernet,wlan:wlan0:WiFi
-
-
-
user-defined <readingsName>:<Interval_Minutes>:<Comment>:<Cmd>,...
- Diese kommaseparierte Liste definiert Einträge mit jeweils folgenden Daten:
- Reading-Name, Aktualisierungsintervall in Minuten, Kommentar und Betriebssystem-Commando.
- Die BS-Befehle werden entsprechend des angegebenen Intervalls ausgeführt und als Readings mit den angegebenen Namen vermerkt.
- Kommentare werden für die HTML-Ausgaben (s. SYSMON_ShowValuesHTML) benötigt.
- Alle Parameter sind nicht optional!
- Es ist wichtig, dass die angegebenen Befehle schnell ausgeführt werden, denn in dieser Zeit wird der gesamte FHEM-Server blockiert!
- Werden Ergebnisse der lang laufenden Operationen benötigt, sollten diese z.B als CRON-Job eingerichtet werden
- und in FHEM nur die davor gespeicherten Ausgaben visualisiert.
- Beispiel: Anzeige der vorliegenden Paket-Aktualisierungen für das Betriebssystem:
- In einem cron-Job wird folgendes täglich ausgeführt:
- apt-get upgrade --dry-run| perl -ne '/(\d*)\s[upgraded|aktualisiert]\D*(\d*)\D*install|^ \S+.*/ and print "$1 aktualisierte, $2 neue Pakete"' 2>/dev/null > /opt/fhem/data/updatestatus.txt
-
- Das Attribute uder-defined wird auf sys_updates:1440:System Aktualisierungen:cat /opt/fhem/data/updatestatus.txt gesetzt.
- Danach wird die Anzahl der verfügbaren Aktualisierungen täglich als Reading 'sys_updates' protokolliert.
-
-
-
disable
- Mögliche Werte: 0,1. Bei 1 wird die Aktualisierung gestoppt.
-
-
-
-
- Plots:
-
- Für dieses Modul sind bereits einige gplot-Dateien vordefiniert:
-
-
- HTML-Ausgabe-Methode (für ein Weblink): SYSMON_ShowValuesHTML(<SYSMON-Instanz>[,<Liste>])
-
- Das Modul definiert eine Funktion, die ausgewählte Readings in HTML-Format ausgibt.
- Als Parameter wird der Name des definierten SYSMON-Geräts erwartet.
- Der zweite Parameter ist optional und gibt eine Liste der anzuzeigende Readings
- im Format <ReadingName>[:<Comment>[:<Postfix>]] an.
- Dabei gibt ReadingName den anzuzeigenden Reading an, der Wert aus Comment wird als der Anzeigename verwendet
- und Postfix wird nach dem eihentlichen Wert angezeigt (so können z.B. Einheiten wie MHz angezeigt werden).
- Falls kein Comment angegeben ist, wird eine intern vordefinierte Beschreibung angegeben.
- Bei benutzerdefinierbaren Readings wird ggf. Comment aus der Definition verwendet.
- Wird keine Liste angegeben, wird eine vordefinierte Auswahl verwendet (alle Werte).
- Das Modul stellt Systemstatistiken für den Rechner, auf dem FHEM läuft bzw.
- für ein entferntes Linux System, das per vorkonfiguriertem ssh Zugang ohne Passwort
- erreichbar ist, zur Vefügung.
-
- Notes:
-
-
Dieses Modul benötigt Sys::Statistics::Linux für Linux.
- Es kann mit 'cpan install Sys::Statistics::Linux'
- bzw. auf Debian mit 'apt-get install libsys-statistics-linux-perl'
- installiert werden.
-
-
Um einen Zielrechner mit snmp zu überwachen, muss
- Net::SNMP installiert sein.
-
-
Um die Lastwerte zu plotten, kann der folgende Code verwendet werden:
-
Um das Wurzel-Dateisystem (Mountpunkt '/') bei Plots der Plattennutzung zu erhalten,
- sollte dieser Code '#FileLog 4:/\x3a:0:' bzw. '#FileLog 4:\s..\s:0:'
- und nicht dieser Code '#FileLog 4:/:0:' verwendet werden, da der letztere
- alle Mountpunkte darstellt.
-
- Die (Prozessor)last wird alle <interval> Sekunden aktualisiert. Standard bzw. Minimum ist 60.
- Die Plattennutzung wird alle <interval_fs> Sekunden aktualisiert. Standardwert ist <interval>*60
- und Minimum ist 60.
- <interval_fs> wird nur angenähert und funktioniert am Besten, wenn <interval_fs>
- ein ganzzahliges Vielfaches von <interval> ist.
-
- Wenn <host> angegeben wird, muss der Zugang per ssh ohne Passwort möglich sein.
showpercent
- Wenn gesetzt, wird die Nutzung in Prozent angegeben. Wenn nicht gesetzt, wird der verfübare
- Platz in Bytes angezeigt.
-
snmp
- 1 -> snmp wird verwendet, um Last, Einschaltzeit und Dateisysteme (inkl. physikalischem und
- virtuellem Speicher) zu überwachen
-
stat
- 1 -> überwacht Prozentsatz der user, system, idle und iowait Last
- (nur auf Linux Systemen verfügbar)
-
raspberrytemperature
- Wenn gesetzt und > 0 wird der Temperatursensor auf dem Raspberry Pi ausgelesen.
- Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.
-
synologytemperature
- Wenn gesetzt und > 0 wird die Temperatur einer Synology Diskstation ausgelesen (erfordert snmp).
- Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.
-
raspberrycpufreq
- Wenn gesetzt und > 0 wird die Raspberry Pi CPU Frequenz ausgelesen.
-
uptime
- Wenn gesetzt und > 0 wird die Betriebszeit (uptime) des Systems ausgelesen.
- Wenn Wert 2 ist, wird die Betriebszeit (uptime) in Sekunden angezeigt.
-
useregex
- Wenn Wert gesetzt, werden die Einträge der Dateisysteme als regex behandelt.
-
ssh_user
- Der Username für den ssh Zugang auf dem entfernten Rechner.
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: TCM
-
-
-
THRESHOLD
-
- Vielfältige Steuerungen, bei denen durch die Auswertung von Sensordaten eine Steuerung erfolgen soll, können mit Hilfe dieses Moduls realisiert werden.
- Nach der Definition eines THRESHOLD-Moduls und der Vorgabe eines Sollwertes beginnt bereits das definierte Modul mit der Steuerung. Im einfachsten Fall liest das Modul einen Sensor aus, der Werte als Dezimalzahlen liefert
- und schaltet beim Überschreiten einer definierten Schwellen-Obergrenze (Sollwert)
- bzw. beim Unterschreiten einer Schwellen-Untergrenze einen Aktor oder führt beliebige FHEM/Perl-Befehle aus.
- Typisches Anwendungsgebiet ist z. B. die Nachbildung eines Thermostats oder Hygrostats - auch Zweipunktregler genannt.
-
- Mit Hilfe des Moduls, bzw. vieler solcher Module, lassen sich einfache oder auch komplexe Steuerungen für Heizung, Kühlung, Lüftung, Entfeuchtung, Beschattung oder z. B. einfache Benachrichtung
- beim Über- oder Unterschreiten eines bestimmten Wertes realisieren. Dabei müssen keine If-Abfragen in Perl oder Notify-Definitionen vorgenommen werden.
- Das führt, nicht nur bei FHEM-Anfängern, zu schnell erstellten und übersichtlichen Steuerungen, ohne zwingend in die Perl-Materie einsteigen zu müssen.
-
- Nach der Definition eines Moduls vom Typ THRESHOLD z. B. mit:
-
- define <name> THRESHOLD <sensor> <actor>
-
- erfolgt die eigentliche Steuerung über die Vorgabe eines Sollwertes. Das geschieht über:
-
- set <name> desired <value>
-
- Das Modul beginnt mit der Steuerung erst dann, wenn ein Sollwert gesetzt wird!
-
- Die Vorgabe des Sollwertes kann bereits bei der Definition des Moduls angegeben werden. Alternativ kann der Sollwert von einem weiteren Sensor kommen.
- Damit kann eine Steuerung durch den Vergleich zweier Sensoren stattfinden.
- Typisches Anwendungsbeispiel ist z. B. die Steuerung von Umwälz- oder Zirkulationspumpen.
-
- Die Vorgabe der Solltemperatur kann auch von beliebigen Wandthermostaten (z. B. HM, MAX, FHT) genutzt werden.
-
- Das Schaltverhalten des THRESHOLD-Moduls kann zusätzlich durch einen weiteren Sensor oder eine Sensorgruppe,
- definiert über structure (z. B. Fensterkontakte), über eine AND- bzw. OR-Verknüpfung beeinflusst werden.
-
- Ebenfalls ist die Kombination mehrerer THRESHOLD-Module miteinander möglich.
-
-
- Beispiele für Heizungssteuerung:
-
- Einfaches Heizungsthermostat:
-
- Es soll bis 20 Grad geheizt werden. Beim Unterschreiten der Untergrenze von 19=20-1 Grad (Sollwert-Hysterese) wird die Heizung wieder eingeschaltet.
-
- define TH_room THRESHOLD temp_room heating
- set TH_room desired 20
-
- Zeitgesteuertes Heizen mit Hilfe des Heating_Control-Moduls:
-
- define TH_room THRESHOLD temp_room heating
- define HC_room Heating_Control TH_room 06:00|22 22:00|18 set @ desired %
-
- Steuerung einer Heizung durch ein Wandthermostat mit Übernahme der Soll- und Ist-Temperatur vom Wandthermostat:
-
- define TH_Heizung THRESHOLD WT_ch1:measured-temp:1:WT_ch2:desired-temp Heizung
-
- Mit set TH_Heizung desired 17 wird die Vorgabe vom Wandthermostat übersteuert bis set TH_Heizung external aufgerufen wird.
-
- Heizung in Kombination mit einem Fensterkontakt mit Zuständen: open, closed:
-
- define TH_room THRESHOLD temp_room OR win_sens heating
-
- Heizung in Kombination mit mehreren Fensterkontakten:
-
- define W_ALL structure W_type W1 W2 W3 ....
- attr W_ALL clientstate_behavior relative
- attr W_ALL clientstate_priority open closed
-
- define thermostat THRESHOLD S1 OR W_ALL heating
-
- Kombination mehrerer THRESHOLD-Module miteinander:
-
- Es soll bis 21 Grad geheizt werden, aber nur, wenn die Außentemperatur unter 15 Grad ist:
-
- define TH_outdoor THRESHOLD outdoor:temperature:0:15
- define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating
- set TH_room desired 21
-
-
- Beispiele für Belüftungssteuerung:
-
- Einfache Belüftung anhand der Luftfeuchtigkeit:
-
- Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.
-
- define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1
-
- Belüftung anhand des Taupunktes, abhängig von der Luftfeuchtigkeit innen:
-
- Es soll gelüftet werden, wenn die Luftfeuchtigkeit im Zimmer über 70 % ist und der Taupunkt innen höher ist als außen.
-
- define TH_hum THRESHOLD sens:humidity:10:70||||on:off|_sc
- define dewpoint dewpoint indoor
- define dewpoint dewpoint outdoor
- define TH_room THRESHOLD indoor:dewpoint:0:outdoor:dewpoint AND TH_hum:state:on ventilator|set @ on|set @ off|2
-
- Belüftung in Kombination mit einem Lichtschalter mit Nachlaufsteuerung:
-
- Der Lüfter soll angehen, wenn das Licht mindestens 2 Minuten lang brennt oder die Luftfeuchtigkeit 65 % überschreitet,
- der Lüfter soll ausgehen, wenn die Luftfeuchtigkeit unter 60 % fällt und das Licht mindestens 3 Minuten lang aus ist.
-
- define ventilator_state dummy
- define w_ventilator_state_off watchdog light_switch:off 00:03 light_switch:on set ventilator_state off;; trigger w_ventilator_state_off .
- define w_ventilator_state_on watchdog light_switch:on 00:02 light_switch:off set ventilator_state on;; trigger w_ventilator_state_on .
- define TH_ventilator THRESHOLD humsensor:humidity:5:65 OR ventilator_state:state:on ventilator|set @ on|set @ off|1
-
-
- Beispiele für die Steuerung der Warmwasserzirkulation:
-
- Zeitgesteuerte Warmwasserzirkulation:
-
- In der Hauptzeit soll die Wassertemperatur im Rücklauf mindestens 38 Grad betragen.
-
- define TH_circ TRHESHOLD return_w:temperature:0 circ_pump
- define HC_circ Heating_Control TH_circ 12345|05:30|38 67|07:00|38 23:00|15 set @ desired %
-
- Alternative Steuerung mit Sollwert-Vorgabe durch einen weiteren Sensor des Warmwasserspeichers:
-
- Die Rücklauftemperatur soll 5 Grad (offset) unter der Warmwasserspeichertemperatur liegen und bis zu 4 Grad (Hysterese) schwanken dürfen.
-
- define TH_circ THRESHOLD return_w:temperature:4:water_storage:temperature:-5 circ_pump
-
-
- Beispiele für Beschattungssteuerung:
-
- Beispiel für einfache Beschattung im Sommer:
-
- Zwischen 12:00 und 20:00 Uhr (potenzielle Sonnengefahr auf der Südseite) wird der Rolladen auf 30 % heruntergefahren,
- wenn die Raumtemperatur über 23 Grad ist und die Sonne scheint. Im Winter, wenn die Zimmertemperatur niedriger ist (< 23),
- will man von der Sonnenenergie profitieren und den Rollladen oben lassen.
-
- define TH_shutter_room THRESHOLD T_room AND sun:state:on shutter_room|set @ 30||2
- define HC_R_Keller Heating_Control TH_shutter_room 12:00|23 20:00|30 set @ desired %
-
- Beispiel für Beschattung im Sommer mit Verzögerung und automatischem Hochfahren des Rollladens:
-
- Zusätzlich zum obigen Beispiel wird der Rollladen erst heruntergefahren, wenn die Sonne mindestens 15 Minuten scheint
- und wieder hochgefahren, wenn die Sonne mindestens 30 Minuten nicht mehr scheint.
-
- define sun_state dummy
- define w_sun_state_off watchdog sun:off 00:30 sun:on set sun_state off;; trigger w_sun_state_off .
- define w_sun state_on watchdog sun:on 00:15 sun:off set sun_state on;; trigger w_sun_state_on .
- define TH_shutter_room THRESHOLD T_room AND sun_state:state:on shutter_room|set @ 30|set @ 100|2
- define HC_R_Keller Heating_Control TH_shutter_room 12:00|23 20:00|30 set @ desired %
-
- Beispiel für Beschattung mit Verzögerung mit Hilfe eines Helligkeitssensors:
-
- Der Rollladen soll herunterfahren, wenn der Helligkeitssensor mindesten 15 Minuten einen Schwellenwert von 10000 überschreitet
- und wieder hochfahren, wenn der Schwellenwert 10000 mindestens 30 Minuten lang unterschritten wird.
-
- define sun dummy
- define sun_state dummy
- define TH_lightness THRESHOLD lightness_sensor:0:10000 sun||||on:off|_sc
- define w_sun_state_off watchdog sun:off 00:30 sun:on set sun_state off;; trigger w_sun_state_off .
- define w_sun state_on watchdog sun:on 00:15 sun:off set sun_state on;; trigger w_sun_state_on .
- define TH_shutter_room THRESHOLD T_room AND sun_state:state:on shutter_room|set @ 30|set @ 100|2
-
-
- Beispiele für die Ausführung beliebiger FHEM/Perl-Befehlsketten:
-
- define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1
- define thermostat THRESHOLD sensor alarm|{Log 2,"Wert überschritten"}|set @ off|
- define thermostat THRESHOLD sensor ||{Log 2,"Wert unterschritten"}|
-
-
- Einige weitere Bespiele für Entfeuchtung, Klimatisierung, Bewässerung:
-
- define hygrostat THRESHOLD hym_sens:humidity dehydrator|set @ on|set @ off|1
- define hygrostat THRESHOLD hym_sens:humidity AND Sensor2:state:closed dehydrator|set @ on|set @ off|1
- define thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1
- define thermostat THRESHOLD temp_sens AND Sensor2:state:closed aircon|set @ on|set @ off|1
- define hygrostat THRESHOLD hym_sens:humidity:20 watering|set @ off|set @ on|2
-
-
- Beispiele für angepasste Statusanzeige des THRESHOLD-Moduls:
-
- define thermostat THRESHOLD sensor aircon|set @ on|set @ off|2|on:off
-
- Beispiel für reine Zustandanzeige (z. B. für Zustandsauswertung in anderen Modulen) ohne Ausführung von Code:
-
- define thermostat THRESHOLD sensor:temperature:0:30
-
- entspricht wegen Defaultwerte:
-
- define thermostat THRESHOLD sensor:temperature:0:30||||off:on|_sc
-
- Es soll der Modus (mode), Status (state_cmd), Sollvorgabewert (desired_value) und Wert des ersten Sensors (sensor_value) angezeigt werden:
-
- define TH_living_room THRESHOLD T_living_room heating|set @ off|set @ on|2|off:on|_m _sc _dv _s1v
-
- oder
-
- define TH_living_room THRESHOLD T_living_room heating
- attr TH_living_room state_cmd1_gt off
- attr TH_living_room state_cmd2_lt on
- attr TH_living_room state_format _m _sc _dv _s1v
-
-
reading (optional)
- Reading des Sensors, der einen Wert als Dezimalzahl beinhaltet
- Defaultwert: temperature
-
-
-
hysteresis (optional)
- Hysterese, daraus errechnet sich die Untergrenze = Sollwert - hysteresis
- Defaultwert: 1 bei Temperaturen, 10 bei Feuchtigkeit
-
-
-
target_value (optional)
- bei Zahl: Initial-Sollwert, wenn kein Wert vorgegeben wird, muss er mit "set desired value" gesetzt werden.
- sonst: <sensorname>:<reading>, hier kann ein weiterer Sensor angegeben werden, der den Sollwert dynamisch vorgibt.
- Defaultwert: kein
-
-
-
offset (optional)
- Offset zum Sollwert
- Damit errechnet sich: die Sollwertobergrenze = Sollwert + offset und die Sollwertuntergrenze = Sollwert - Hysterese + offset
- Defaultwert: 0
-
-
-
-
AND|OR (optional)
- Verknüpfung mit einem optionalen zweiten Sensor
-
-
-
sensor2 (optional, nur in Verbindung mit AND oder OR)
- ein definierter Sensor, dessen Status abgefragt wird
-
-
-
reading2 (optional)
- Reading, der den Status des Sensors beinhaltet
- Defaultwert: state
-
-
-
state (optional)
- Status des Sensors, der zu einer Aktion führt
- Defaultwert: open
-
-
-
actor (optional)
- ein in FHEM definierter Aktor
-
-
-
cmd1_gt (optional)
- FHEM/Perl Befehl, der beim Überschreiten des Sollwertes ausgeführt wird bzw.
- wenn status des sensor2 übereinstimmt. @ ist ein Platzhalter für den angegebenen Aktor.
- Defaultwert: set actor off, wenn Aktor angegeben ist
-
-
-
cmd2_lt (optional)
- FHEM/Perl Befehl, der beim Unterschreiten der Untergrenze (Sollwert-Hysterese) ausgeführt wird bzw.
- wenn status des sensor2 nicht übereinstimmt. @ ist ein Platzhalter für den angegebenen Aktor.
- Defaultwert: set actor on, wenn Aktor angegeben ist
-
-
-
cmd_default_index (optional)
- FHEM/Perl Befehl, der nach dem Setzen des Sollwertes ausgeführt wird, bis Sollwert oder die Untergrenze erreicht wird.
- 0 - kein Befehl
- 1 - cmd1_gt
- 2 - cmd2_lt
- Defaultwert: 2, wenn Aktor angegeben ist, sonst 0
-
-
-
state_cmd1_gt (optional, wird gleichzeitig als Attribut definiert)
- Status, der angezeigt wird, wenn FHEM/Perl-Befehl cmd1_gt ausgeführt wurde.
- Defaultwert: kein
-
-
-
state_cmd2_lt (optional, wird gleichzeitig als Attribut definiert)
- Status, der angezeigt wird, wenn FHEM/Perl-Befehl cmd2_lt ausgeführt wurde.
- Defaultwert: kein
-
-
-
state_format (optional, wird gleichzeitig als Attribut definiert und kann dort verändert werden)
- Format der Statusanzeige: beliebiger Text mit Platzhaltern
- Mögliche Platzhalter:
- _m: mode
- _dv: desired_value
- _s1v: sensor_value
- _s2s: sensor2_state
- _sc: state_cmd
- Defaultwert: _m _dv _sc, _sc, wenn state_cmd1_gt und state_cmd2_lt ohne Aktor gesetzt wird.
-
-
-
-
-
- Set
-
-
set <name> desired <value>
- Setzt den Sollwert. Wenn kein Sollwert gesetzt ist, ist das Modul nicht aktiv.
- Sollwert-Vorgabe durch einen Sensor wird hiermit übersteuert, solange bis "set external" gesetzt wird.
-
-
-
set <name> deactivated <value>
- Modul wird deaktiviert.
-
-
-
set <name> active
- Modul wird aktiviert, falls unter target_value ein Sensor für die Sollwert-Vorgabe definiert wurde, wird der aktuelle Sollwert solange eingefroren bis "set external" gesetzt wird.
-
-
-
set <name> externel
- Modul wird aktiviert, Sollwert-Vorgabe kommt vom Sensor, falls ein Sensor unter target_value definierte wurde.
-
-
-
set <name> hysteresis <value>
- Setzt Hysterese-Wert.
-
- THZ Modul: Kommuniziert mittels einem seriellen Interface RS232/USB (z.B. /dev/ttyxx), oder mittels ser2net (z.B. 10.0.x.x:5555) mit einer Tecalor / Stiebel
- Eltron Wärmepumpe.
- Getestet mit einer Tecalor THZ303/Sol (Serielle Geschwindigkeit 57600/115200@USB) und einer THZ403 (Serielle Geschwindigkeit 115200) mit identischer
- Firmware 4.39.
- Getestet mit einer Stiebel LWZ404 (Serielle Geschwindigkeit 115200@USB) mit Firmware 5.39.
- Getestet auf FritzBox, nas-qnap, Raspberry Pi and MacOS.
- Dieses Modul funktioniert nicht mit äterer Firmware; Gleichwohl, das "parsing" könnte leicht angepasst werden da die Register gut
- beschrieben wurden.
- https://answers.launchpad.net/heatpumpmonitor/+question/100347
- Implementiert: Lesen der Statusinformation sowie Lesen und Schreiben einzelner Einstellungen.
-
-
-
- Define
-
- define <name> THZ <device>
-
- device kann einige Parameter beinhalten (z.B. @baudrate, @direction,
- TCP/IP, none) wie das CUL, z.B. 57600 baud oder 115200.
- Beispiel:
- Direkte Verbindung
-
-
- Wenn die Attribute interval_allFB und interval_history nicht definiert sind (oder 0), ist das interne Polling deaktiviert.
- Natürlich kann das Polling auch mit dem "at" Befehl ausserhalb des Moduls definiert werden.
-
-
- Das Modul wandelt Text mittels verschiedener Provider/Ressourcen in Sprache um. Dabei kann das Device als
- Remote oder Lokales Device konfiguriert werden.
-
-
-
- Local Device
-
- Die Ausgabe erfolgt auf angeschlossenen Audiodevices, zb. Lautsprecher direkt am Gerät oder per
- Bluetooth-Lautsprecher per Mplayer. Dazu ist Mplayer zu installieren.
- apt-get install mplayer
- Das angegebene Alsadevice ist in der /etc/asound.conf zu konfigurieren.
-
- Special AlsaDevice: none
- Ist als Alsa-Device none angegeben, so wird mplayer ohne eine Audiodevice Angabe aufgerufen.
- Dementsprechend verwendet mplayer das Standard Audio Ausgabedevice.
-
- Das Modul ist Client-Server fäas bedeutet, das auf der Haupt-FHEM Installation eine Text2Speech-Instanz
- als Remote definiert wird. Auf dem Client wird Text2Speech als Local definiert. Die Sprachausgabe erfolgt auf
- der lokalen Instanz.
- Zu beachten ist, das die Text2Speech Instanz (Definition als local Device) auf dem Zieldevice identisch benannt ist.
-
-
Host: Angabe der IP-Adresse
-
PortNr: Angabe des TelnetPorts von FHEM; default: 7072
-
SSL: Angabe ob der der Zugriff per SSL erfolgen soll oder nicht; default: kein SSL
-
PortPassword: Angabe des in der Ziel-FHEM-Installtion angegebene Telnet Portpasswort
volume:
- Setzen der Ausgabe Lautstärke.
- Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
-
-
-
-
-Get
-
N/A
-
-
-Attribute
-
-
TTS_Delemiter
- Optional: Wird ein Delemiter angegeben, so wird der Sprachbaustein an dieser Stelle geteilt.
- Als Delemiter ist nur ein einzelnes Zeichen zulässig.
- Hintergrund ist die Tatsache, das die Google Sprachengine nur 100Zeichen zulässt.
- Im Standard wird nach jedem Satzende geteilt. Ist ein einzelner Satz länger als 100 Zeichen,
- so wird zusätzlich nach Kommata, Semikolon und dem Verbindungswort und geteilt.
- Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich und nur Nutzung der Google Sprachengine relevant!
-
-
-
TTS_Ressource
- Optional: Auswahl der Sprachengine
- Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
-
-
Google
- Nutzung der GoogleSprachengine. Ein Internetzugriff ist notwendig! Aufgrund der Qualität ist der
- Einsatz diese Engine zu empfehlen und der Standard.
-
-
ESpeak
- Nutzung der ESpeak Offline Sprachengine. Die Qualitä ist schlechter als die Google Engine.
- ESpeak ist vor der Nutzung zu installieren.
- apt-get install espeak
-
-
-
-
-
TTS_CacheFileDir
- Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt.
- Es findet zurZEit keine automatisierte Löschung statt.
- Default: cache/
- Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
-
-
-
TTS_UseMP3Wrap
- Optional: Für eine flüssige Sprachausgabe ist es zu empfehlen, die einzelnen vorher per Google
- geladenen Sprachbausteine zu einem einzelnen Sprachbaustein zusammenfassen zu lassen bevor dieses per
- Mplayer ausgegeben werden. Dazu muss Mp3Wrap installiert werden.
- apt-get install mp3wrap
- Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
-
-
-
TTS_MplayerCall
- Optional: Angabe der Systemaufrufes zu Mplayer. Das folgende Beispiel ist der Standardaufruf.
- Beispiel: sudo /usr/bin/mplayer
-
-
-
TTS_SentenceAppendix
- Optional: Angabe einer mp3-Datei die mit jeder Sprachausgabe am Ende ausgegeben wird.
- Voraussetzung ist die Nutzung von MP3Wrap. Die Sprachbausteine müssen bereits als mp3 im
- CacheFileDir vorliegen.
- Beispiel: silence.mp3
-
-
-
TTS_FileMapping
- Angabe von möglichen MP3-Dateien mit deren Templatedefinition. Getrennt duch Leerzeichen.
- Die Templatedefinitionen können in den per tts übergebenen Sprachbausteinen verwendet werden
- und müssen mit einem beginnenden und endenden Doppelpunkt angegeben werden.
- Die Dateien müssen im Verzeichnis TTS_FIleTemplateDir gespeichert sein.
- attr myTTS TTS_FileMapping ring:ringtone.mp3 beep:MyBeep.mp3
- set MyTTS tts Achtung: hier kommt mein Klingelton :ring: War der laut?
-
-
-
TTS_FileTemplateDir
- Verzeichnis, in dem die per TTS_FileMapping und TTS_SentenceAppendix definierten
- MP3-Dateien gespeichert sind.
- Optional, Default: cache/templates
-
disable
- If this attribute is activated, the soundoutput will be disabled.
- Possible values: 0 => not disabled , 1 => disabled
- Default Value is 0 (not disabled)
-
-
-
verbose
- 4: Alle Zwischenschritte der Verarbeitung werden ausgegeben
- 5: Zusätzlich werden auch die Meldungen von Mplayer und Mp3Wrap ausgegeben
-
-
-
-
-
-
Twilight
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: Twilight
-
-
-
UNIRoll
-Deutsche Version der Doku nicht vorhanden. Englische Version unter
-
- UNIRoll
-
-
-
USBWX
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: USBWX
-
-
-
USF1000
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: USF1000
-
-
-
Utils
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: Utils
-
-
-
VIERA
-
-
- Define
-
- define <name> VIERA <host> [<interval>]
-
- Dieses Modul steuert einen Panasonic Fernseher über das Netzwerk. Es ist möglich den Fernseher
- auszuschalten, die Lautstärke zu ändern oder zu muten bzw. unmuten. Dieses Modul kann zusätzlich
- die Fernbedienung simulieren. Somit können also die Schaltaktionen einer Fernbedienung simuliert werden.
- Getestet wurde das Modul mit einem Panasonic Plasma TV tx-p50vt30e
-
- Beim definieren des Gerätes in FHEM wird ein interner Timer gestartet, welcher zyklisch alle 30 Sekunden
- den Status der Lautstärke und des Mute-Zustand ausliest. Das Intervall des Timer kann über den Parameter <interval>
- geändert werden. Wird kein Interval angegeben, liest das Modul alle 30 Sekunden die Werte aus und triggert ein notify.
-
- Beispiel:
-
- define myTV1 VIERA 192.168.178.20
- define myTV1 VIERA 192.168.178.20 60 #Mit einem Interval von 60 Sekunden
-
-
-
-
-
- Set
-
- set <name> <command> [<value>]
-
- Zur Zeit sind die folgenden Befehle implementiert:
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: WOL
-
-
-
WS2000
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: WS2000
-
-
-
WS300
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: WS300
-
-
-
WS3600
-
- Definiert eine Wetterstation, die über ein externes Programm ausgelesen
- wird. Dieses Programm wird zyklisch durch FHEM aufgerufen. Es muss die
- Daten im gleichen Format wie fetch3600 (Details siehe unten) auf der
- Standardausgabe liefern.
-
- Define
-
optionaler Parameter für das Aufrufintervall [s]. Defaultwert
- ist 60s.
-
-
-
- Unterstützte Stationen sind:
-
-
WS3600 Serie (Europe Supplies, technotrade, usw.; s.a. Wetterstationen.info
- (deutsch) für Details) in Verbindung mit fetch3600 aus dem Paket open3600).
- Fetch3600 liefert die aktuellen Werte zeilenweise als
- Name-Wert-Paare. Diese werden durch FHEM zyklisch eingelesen, mit
- besser lesbaren Bezeichnungen versehen und als Readings zur
- Verfügung gestellt.
-
WS2300
- Serie in Verbindung mit dem Paket open2300
- (ähnlich zu open3600).
-
WS1080
- (und andere Stationen, die mit der Windows-Software "Easy Weather"
- ausgeliefert werden) in Verbindung mit fowsr
- (ab Version 2.0)
-
-
- Es wird vorausgesetzt, dass die Wetterstation am lokalen Computer
- angeschlossen ist und <wsreaderprog> deshalb lokal läuft.
- <wsreaderprog> muss grundsätzlich eine zu fetch3600 vergleichbare
- Ausgabe auf der Standardausgabe liefern.
- Als Beispiel für das erwartete Format hier die Ausgabe von fetch3600:
-
- Welche der vorgenannten Wertepaare durch <wsreaderprog>
- geliefert werden, ist egal. Jedes bekannte wird übersetzt (z.B. Ti
- nach Temp-inside) und als Reading angezeigt, alle
- unbekannten werden kommentarlos verworfen. Mittels geeignetem Programm
- oder Script sollte sich also jede beliebige Wetterstation anschließen
- lassen.
- Anmerkung: Um die Anzahl Readings zu reduzieren, werden jetzt Date- und
- Time-Wertepaare zusammengefasst. Es ist jetzt auch zulässig, dass
- <wsreaderprog> schon kombinierte Wertepaare liefert. Diese sind
- mit dem Prefix DT zu kennzeichnen, also z.B. Date
- + Time --> DTime, DRPmin +
- TRPmin --> DTRPmin usw.).
- Fetch3600 ist auch unter Windows verfügbar, ob das Zusammenspiel mit
- FHEM dort auch funktioniert, wurde noch nicht getestet.
-
- Beispiele:
-
-
- Eine solche virtuelle Wetterstation sammelt periodisch aktuelle und zukünftige Wetterdaten aus der Yahoo-Wetter-API.
-
- Der Parameter location entspricht der sechsstelligen WOEID (WHERE-ON-EARTH-ID). Die WOEID für den eigenen Standort kann auf http://weather.yahoo.com gefunden werden.
-
- Der optionale Parameter interval gibt die Dauer in Sekunden zwischen den einzelnen Aktualisierungen der Wetterdaten an. Der Standardwert ist 3600 (1 Stunde). Wird kein Wert angegeben, gilt der Standardwert.
-
- Der optionale Parameter für die möglichen Sprachen darf einen der folgende Werte annehmen: de, en oder nl. Er bezeichnet die natürliche Sprache, in der die Wetterinformationen dargestellt werden. Der Standardwert ist en. Wird für die Sprache kein Wert angegeben, gilt der Standardwert. Wird allerdings der Parameter für die Sprache gesetzt, muss ebenfalls ein Wert für das Abfrageintervall gesetzt werden.
-
- Das Modul unterstützt zusätzlich vier verschiedene Funktionen WeatherAsHtml, WeatherAsHtmlV, WeatherAsHtmlH und WeatherAsHtmlD. Die ersten beiden Funktionen sind identisch: sie erzeugen den HTML-Code für eine vertikale Darstellung des Wetterberichtes. Die dritte Funktion liefert den HTML-Code für eine horizontale Darstellung des Wetterberichtes. Die letztgenannte Funktion wählt automatisch eine Ausrichtung, die abhängig davon ist, ob ein Smallcreen Style ausgewählt ist (vertikale Darstellung) oder nicht (horizontale Darstellung).
-
- Erzwingt eine Abfrage der Wetterdaten. Die darauffolgende Abfrage wird gemäß dem eingestellten Intervall interval Sekunden später durchgeführt.
-
-
-
-
- Get
-
- get <name> <reading>
-
- Gültige ausgelesene Daten (readings) und ihre Bedeutung (das ? kann einen der Werte 1, 2, 3 , 4 oder 5 annehmen und steht für heute, morgen, übermorgen etc.):
-
-
city
Name der Stadt, der aufgrund der WOEID übermittelt wird
-
code
Code für die aktuellen Wetterverhältnisse
-
condition
aktuelle Wetterverhältnisse
-
current_date_time
Zeitstempel der letzten Aktualisierung der Wetterdaten vom Server
-
fc?_code
Code für die vorhergesagten Wetterverhältnisse
-
fc?_condition
vorhergesagte Wetterverhältnisse
-
fc?_day_of_week
Wochentag des Tages, der durch ? dargestellt wird
-
fc?_high_c
vorhergesagte maximale Tagestemperatur in Grad Celsius
-
fc?_icon
Icon für Vorhersage
-
fc?_low_c
vorhergesagte niedrigste Tagestemperatur in Grad Celsius
-
- Dieses Modul steuert AV-Receiver des Herstellers Yamaha über die Netzwerkschnittstelle.
- Es bietet die Möglichkeit den Receiver an-/auszuschalten, den Eingangskanal zu wählen,
- die Lautstärke zu ändern, den Receiver "Stumm" zu schalten, sowie den aktuellen Status abzufragen.
-
- Bei der Definition eines YAMAHA_AVR-Moduls wird eine interne Routine in Gang gesetzt, welche regelmäßig
- (einstellbar durch den optionalen Parameter <Status_Interval>; falls nicht gesetzt ist der Standardwert 30 Sekunden)
- den Status des Receivers abfragt und entsprechende Notify-/FileLog-Geräte triggert.
-
- Sofern 2 Interval-Argumente übergeben werden, wird der erste Parameter <Off_Interval> genutzt
- sofern der Receiver ausgeschaltet oder nicht erreichbar ist. Der zweiter Parameter <On_Interval>
- wird verwendet, sofern der Receiver eingeschaltet ist.
-
- Beispiel:
-
- define AV_Receiver YAMAHA_AVR 192.168.0.10
-
- # Mit modifiziertem Status Interval (60 Sekunden)
- define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60
-
- # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)
- define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60 10
-
-
- Zonenauswahl
-
- Wenn der zu steuernde Receiver mehrere Zonen besitzt (z.B. RX-V671, RX-V673,... sowie die AVANTAGE Modellreihe)
- kann die zu steuernde Zone explizit angegeben werden. Die Modellreihen RX-V3xx und RX-V4xx als Beispiel
- haben nur eine Zone (Main Zone). Je nach Receiver-Modell stehen folgende Zonen zur Verfügung, welche mit
- dem optionalen Parameter <Zone> angegeben werden können.
-
-
mainzone - Das ist die Hauptzone (Standard)
-
zone2 - Die zweite Zone (Zone 2)
-
zone3 - Die dritte Zone (Zone 3)
-
zone4 - Die vierte Zone (Zone 4)
-
-
- Je nach Receiver-Modell stehen in den verschiedenen Zonen nicht immer alle Eingänge zur Verfügung.
- Dieses Modul bietet nur die tatsächlich verfügbaren Eingänge an.
-
- Beispiel:
-
- define AV_Receiver YAMAHA_AVR 192.168.0.10 # Wenn keine Zone angegeben ist, wird
- attr AV_Receiver YAMAHA_AVR room Wohnzimmer # standardmäßig "mainzone" verwendet
-
- # Definition der zweiten Zone
- define AV_Receiver_Zone2 YAMAHA_AVR 192.168.0.10 zone2
- attr AV_Receiver_Zone2 room Schlafzimmer
-
- Für jede Zone muss eine eigene YAMAHA_AVR Definition erzeugt werden, welche dann unterschiedlichen Räumen zugeordnet werden kann.
- Jede Zone kann unabhängig von allen anderen Zonen (inkl. der Main Zone) gesteuert werden.
-
-
-
-
- Set-Kommandos
-
- set <Name> <Kommando> [<Parameter>]
-
- Aktuell werden folgende Kommandos unterstützt. Die verfügbaren Eingänge und Szenen können je nach Receiver-Modell variieren.
- Die folgenden Eingänge stehen beispielhaft an einem RX-V473 Receiver zur Verfügung.
- Aktuell stehen folgende Kommandos zur Verfügung.
-
-
-
on - Schaltet den Receiver ein
-
off - Schaltet den Receiver aus
-
input hdmi1,hdmiX,... - Wählt den Eingangskanal (es werden nur die tatsächlich verfügbaren Eingänge angeboten)
-
scene scene1,sceneX - Wählt eine vorgefertigte Szene aus
-
volume 0...100 - Setzt die Lautstärke in Prozent (0 bis 100%)
-
volumeStraight -87...15 - Setzt die Lautstärke in Dezibel (-80.5 bis 15.5 dB) so wie sie am Receiver auch verwendet wird.
-
volumeUp [0...100] - Erhöht die Lautstärke um 5% oder entsprechend dem Attribut volumeSteps (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang)
-
volumeDown [0...100] - Veringert die Lautstärke um 5% oder entsprechend dem Attribut volumeSteps (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang)
-
mute on,off,toggle - Schaltet den Receiver stumm
-
statusRequest - Fragt den aktuell Status des Receivers ab
-
remoteControl up,down,... - Sendet Fernbedienungsbefehle wie im nächsten Abschnitt beschrieben
-
-
-
-Fernbedienung (je nach Modell nicht in allen Zonen verfügbar)
-
- In vielen Receiver-Modellen existieren Eingänge, welche nach der Auswahl keinen Sound ausgeben. Diese Eingänge
- bedürfen manueller Interaktion mit der Fernbedienung um die Wiedergabe zu starten (z.B. Internet Radio, Netzwerk Streaming, usw.).
- Für diesen Fall gibt es folgende Befehle:
-
- Cursor Steuerung:
-
- remoteControl up
- remoteControl down
- remoteControl left
- remoteControl right
- remoteControl enter
- remoteControl return
-
- Die Kommandos der Fernbedienung müssen mit einem sleep pausiert werden, da der Receiver in der Zwischenzeit arbeitet und keine Befehle annimmt..
-
- Nun kann man diese Funktion in der FHEM Kommandozeile oder in notify-Definitionen wie folgt verwenden.:
-
- {startNetRadio()}
-
-
-
-
- Get-Kommandos
-
- get <Name> <Readingname>
-
- Aktuell stehen via GET lediglich die Werte der Readings zur Verfügung. Eine genaue Auflistung aller möglichen Readings folgen unter "Generierte Readings/Events".
-
- Optionales Attribut, welches angibt, wieviele Schritte zur weichen Lautstärkeanpassung
- durchgeführt werden sollen. Standardwert ist 5 Anpassungschritte
- Optionales Attribut, welches den Standardwert zur Lautstärkenerhöhung (volumeUp) und Lautstärkenveringerung (volumeDown) konfiguriert. Standardwert ist 5%
-
-
- Generierte Readings/Events:
-
-
input - Der ausgewählte Eingang entsprechend dem FHEM-Kommando
-
inputName - Die Eingangsbezeichnung, so wie sie am Receiver eingestellt wurde und auf dem Display erscheint
power - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)
-
presence - Die aktuelle Empfangsbereitschaft ("present" => empfangsbereit, "absent" => nicht empfangsbereit, z.B. Stromausfall)
-
volume - Der aktuelle Lautstärkepegel in Prozent (zwischen 0 und 100 %)
-
volumeStraight - Der aktuelle Lautstärkepegel in Dezibel (zwischen -80.0 und +15 dB)
-
state - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Gerätes (mögliche Werte: "on", "off" oder "absent")
-
Eingangsabhängige Readings/Events:
-
currentChannel - Nummer des Eingangskanals (nur bei SIRIUS)
-
currentStation - Name des Radiosenders (nur bei TUNER, NET RADIO und PANDORA)
-
currentAlbum - Album es aktuell gespielten Titel
-
currentArtist - Interpret des aktuell gespielten Titel
-
currentTitle - Name des aktuell gespielten Titel
-
playStatus - Wiedergabestatus des Eingangs
-
-
- Hinweise des Autors
-
- Dieses Modul ist nur nutzbar, wenn die Option "Network Standby" am Receiver aktiviert ist. Ansonsten ist die Steuerung nur im eingeschalteten Zustand möglich.
-
-
- Dieses Modul steuert Blu-Ray Player des Herstellers Yamaha über die Netzwerkschnittstelle.
- Es bietet die Möglichkeit den Player an-/auszuschalten, die Schublade zu öffnen und schließen,
- die Wiedergabe beeinflussen, sämtliche Fernbedieungs-Befehle zu senden, sowie den aktuellen Status abzufragen.
-
- Bei der Definition eines YAMAHA_BD-Moduls wird eine interne Routine in Gang gesetzt, welche regelmäßig
- (einstellbar durch den optionalen Parameter <Status_Interval>; falls nicht gesetzt ist der Standardwert 30 Sekunden)
- den Status des Players abfragt und entsprechende Notify-/FileLog-Definitionen triggert.
-
- Sofern 2 Interval-Argumente übergeben werden, wird der erste Parameter <Off_Interval> genutzt
- sofern der Player ausgeschaltet oder nicht erreichbar ist. Der zweiter Parameter <On_Interval>
- wird verwendet, sofern der Player eingeschaltet ist.
-
- Beispiel:
-
- define BD_Player YAMAHA_BD 192.168.0.10
-
- # Mit modifiziertem Status Interval (60 Sekunden)
- define BD_Player YAMAHA_BD 192.168.0.10 60
-
- # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)
- define BD_Player YAMAHA_BD 192.168.0.10 60 10
-
-
-
-
- Set-Kommandos
-
- set <Name> <Kommando> [<Parameter>]
-
- Aktuell werden folgende Kommandos unterstützt.
-
-
-
on - schaltet den Player ein
-
off - schaltet den Player aus
-
tray open,close - öffnet oder schließt die Schublade
-
statusRequest - fragt den aktuellen Status ab
-
remoteControl up,down,... - sendet Fernbedienungsbefehle wie im folgenden Kapitel beschrieben.
-
-Wiedergabespezifische Kommandos
-
-
play - startet die Wiedergabe des aktuellen Mediums
-
pause - pausiert die Wiedergabe
-
stop - stoppt die Wiedergabe
-
skip forward,reverse - überspringt das aktuelle Kapitel oder den aktuellen Titel
-
fast forward,reverse - schneller Vor- oder Rücklauf
-
slow forward,reverse - langsamer Vor- oder Rücklauf
- remoteControl red
- remoteControl green
- remoteControl yellow
- remoteControl blue
-
- Die Befehlsnamen entsprechen den Tasten auf der Fernbedienung.
-
-
-
- Get-Kommandos
-
- get <Name> <Readingname>
-
- Aktuell stehen via GET lediglich die Werte der Readings zur Verfügung. Eine genaue Auflistung aller möglichen Readings folgen unter "Generierte Readings/Events".
-
- Optionales Attribut. Maximale Dauer einer Anfrage in Sekunden zum Player.
-
- Mögliche Werte: 1-5 Sekunden. Standartwert ist 4 Sekunden
-
- Generierte Readings/Events:
-
-
input - Die aktuelle Wiedergabequelle ("DISC", "USB" oder "Network")
-
discType - Die Art der eingelegten Disc (z.B "No Disc" => keine Disc eingelegt, "CD", "DVD", "BD",...)
-
error - zeigt an, ob ein interner Fehler im Player vorliegt ("none" => kein Fehler, "fan error" => Lüfterdefekt, "usb overcurrent" => USB Spannungsschutz)
-
power - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)
-
presence - Die aktuelle Empfangsbereitschaft ("present" => empfangsbereit, "absent" => nicht empfangsbereit, z.B. Stromausfall)
-
trayStatus - Der Status der Schublade("open" => geöffnet, "close" => geschlossen)
-
state - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Gerätes (mögliche Werte: "on", "off" oder "absent")
-
Quellenabhängige Readings/Events:
-
currentChapter - Das aktuelle Kapitel eines DVD- oder Blu-Ray-Films
-
currentMedia - Der Name der aktuell wiedergebenden Datei (Nur bei der Wiedergabe über USB)
-
playTimeCurrent - Der aktuelle Timecode an dem sich die Wiedergabe momentan befindet.
-
playTimeTotal - Die komplette Spieldauer des aktuellen Films (Nur bei der Wiedergabe von DVD/BD's)
-
playStatus - Wiedergabestatus des aktuellen Mediums
-
-
- Hinweise des Autors
-
-
Einige ältere Player-Modelle (z.B. BD-S671) können im Auslieferungszustand nicht via Netzwerk gesteuert werden. Um eine Steuerung via FHEM zu ermöglichen ist ein Firmware-Update notwending!
-
Dieses Modul ist nur nutzbar, wenn die Option "Netzwerksteuerung" am Player aktiviert ist. Ansonsten ist die Steuerung nicht möglich.
-
-
-
-
-
ZWDongle
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ZWDongle
-
-
-
ZWave
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: ZWave
-
-
-
apptime
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: apptime
-
-
-
at
-
-
- Startet einen beliebigen FHEM Befehl zu einem späteren Zeitpunkt.
-
-
-
- Define
-
- Das optionale + zeigt, dass die Angabe relativ ist
- (also zur jetzigen Zeit dazugezählt wird).
-
- Das optionale * zeigt, dass die Ausführung
- wiederholt erfolgen soll.
-
- Das optionale {N} nach dem * bedeutet, dass der Befehl genau
- N-mal wiederholt werden soll.
-
- <timedet> ist entweder HH:MM, HH:MM:SS oder {perlfunc()}, wobei
- perlfunc HH:MM or HH:MM:SS zurückgeben muss. Hinweis: {perlfunc()}
- darf keine Leerzeichen enthalten.
-
-
-
-
- Beispiele:
-
- # Absolute Beispiele:
- define a1 at 17:00:00 set lamp on # fhem Befehl
- define a2 at 17:00:00 { Log 1, "Teatime" } # Perl Befehl
- define a3 at 17:00:00 "/bin/echo "Teatime" > /dev/console" # shell Befehl
- define a4 at *17:00:00 set lamp on # Jeden Tag
-
- # Realtive Beispiele:
- define a5 at +00:00:10 set lamp on # Einschalten in 10 Sekunden
- define a6 at +00:00:02 set lamp on-for-timer 1 # Einmal blinken in 2 Sekunden
- define a7 at +*{3}00:00:02 set lamp on-for-timer 1 # Blinke 3 mal
-
- # Blinke 3 mal wenn piri einen Befehl sendet
- define n1 notify piri:on.* define a8 at +*{3}00:00:02 set lamp on-for-timer 1
-
- # Lampe von Sonnenuntergang bis 23:00 Uhr einschalten
- define a9 at +*{sunset_rel()} set lamp on
- define a10 at *23:00:00 set lamp off
-
- # Elegantere Version, ebenfalls von Sonnenuntergang bis 23:00 Uhr
- define a11 at +*{sunset_rel()} set lamp on-till 23:00
-
- # Nur am Wochenende ausführen
- define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }
-
- # Schalte lamp1 und lamp2 ein von 7:00 bis 10 Minuten nach Sonnenaufgang
- define a13 at *07:00 set lamp1,lamp2 on-till {sunrise(+600)}
-
- # Schalte lamp jeden Tag 2 Minuten nach Sonnenaufgang aus
- define a14 at +{sunrise(+120)} set lamp on
-
- # Schalte lamp1 zum Sonnenuntergang ein, aber nicht vor 18:00 und nicht nach 21:00
- define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on
-
-
-
- Hinweise:
-
-
wenn kein * angegeben wird, wird der Befehl nur einmal
- ausgeführt und der entsprechende at Eintrag danach
- gelöscht. In diesem Fall wird der Befehl im Statefile gespeichert
- (da er nicht statisch ist) und steht nicht im Config-File (siehe auch save).
-
-
wenn die aktuelle Zeit größer ist als die angegebene Zeit,
- dann wird der Befehl am folgenden Tag ausgeführt.
-
-
Für noch komplexere Datums- und Zeitabläufe muss man den
- Aufruf entweder per cron starten oder Datum/Zeit mit perl weiter
- filtern. Siehe hierzu das letzte Beispiel und das Perl
- special.
-
-
-
-
-
-
-
- Set
N/A
-
-
- Get
N/A
-
-
- Attribute
-
-
-
disable
- Deaktiviert das entsprechende Ger&aauml;t.
- Hinweis: Wenn angewendet auf ein at, dann wird der
- Befehl nicht ausgeführt, jedoch die nächste
- Ausführungszeit berechnet.
-
-
-
disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM...
- Das Argument ist eine Leerzeichengetrennte Liste von Minuszeichen-
- getrennten HH:MM Paaren. Falls die aktuelle Uhrzeit zwischen diesen
- Werten fällt, dann wird die Ausführung, wie beim disable,
- ausgesetzt. Statt HH:MM kann man auch HH oder HH:MM:SS angeben.
- Um einen Intervall um Mitternacht zu spezifizieren, muss man zwei
- einzelne angeben, z.Bsp.:
-
- 23:00-24:00 00:00-01:00
-
-
-
-
-
skip_next
- Wird bei at Befehlen verwendet um die nächste Ausführung zu
- überspringen
-
-
-
alignTime
- Nur für relative Definitionen: Stellt den Zeitpunkt der
- Ausführung des Befehls so, dass er auch zur alignTime
- ausgeführt wird. Dieses Argument ist ein timespec. Siehe oben
- fü die Definition
-
- Beispiel:
-
- # Stelle sicher das es gongt wenn eine neue Stunde beginnt.
- define at2 at +*01:00 set Chime on-for-timer 1
- attr at2 alignTime 00:00
-
-
-
-
-
-
-
-
-
-
autocreate
-
-
- Erzeugt für noch nicht definierte fhem-Geräte automatisch die
- geignete Definition (define). Diese Definition wird aus einer Nachricht
- gewonnen, die von diesen neuen Geräten empfangen wurde. Hinweis:
- Geräte, die mit Polling arbeiten (wie z.B. der Zugriff auf EMEM/EMWZ
- über EM1010PC) werden NICHT automatisch erzeugt.
-
-
-
- Define
-
- define <name> autocreate
-
-
- Durch die Definition dieser Instanz wird das globale Attribut autoload_undefined_devices
- gesetzt, sodass die Module für unbekannte Geräte automatisch
- nachgeladen werden. Das autocreate-Modul interpretiert das
- UNDEFINED-event, welches von jedem Modul gestartet wird, erzeugt ein
- Gerät (device) und bei Bedarf ein FileLog sowie
- SVG-Einträge.
-
- Hinweis 1: Geräte werden mit einem eindeutigen Namen erzeugt,
- der den Typ und eine individuelle ID für diesen Typ enthält.
- Wird ein Gerät umbenannt (rename), wird
- gleichzeitig das automatisch erzeugte FileLog und die SVG Geräte
- unbenannt.
-
- Hinweis 2: Durch das Setzen des disable-Attributes kann die automatische Erzeugung
- ausgeschaltet werden. In diesem Fall ist ausschließlich die oben
- erläuterte Umbenennung aktiv. Der createlog-Befehl kann zum Hinzufügen von
- FileLog und SVG eines bereits definierten Gerätes benutzt werden.
-
-
- Hinweis 3:Es macht keinen Sinn, die Instanz dieses Moduls mehrmals
- zu erzeugen.
-
-
autosave
- Nach der Erzeugung eines neuen Gerätes wird automatisch die
- Konfigurationsdatei mit dem Befehl save
- gespeichert. Der Standardwert ist 1 (d.h. aktiviert), eine 0 schaltet
- die automatische Speicherung aus.
-
-
-
device_room
- "Schiebt" das neu erstellte Gerät in diesen Raum. Der Name kann
- die Wildcards %NAME und %TYPE enthalten, siehe oben stehendes
- Beispiel.
-
-
-
filelog
- Erstellt ein Filelog welches zu einem Gerät gehört. Der
- Dateiname darf die Wildcards %NAME und %TYPE enthalten, siehe oben
- stehendes Beispiel. Das Filelog wird in den gleichen Raum "geschoben"
- wie das zugehörige Gerät.
-
-
-
weblink
- Erzeugt ein SVG, welches mit dem Gerät/Filelog verknüpft
- ist.
-
-
-
weblink_room
- "Schiebt" das neu erstellte SVG in den bezeichneten Raum. Der Name kann
- die Wildcards %NAME und %TYPE enthalten, siehe oben stehendes
- Beispiel.
ignoreTypes
- Dies ist ein Regexp, um bestimmte Geräte zu ignorieren, z.b. der
- Funk-Heizungsthermostat (FHT) des Nachbarn. In dem Ausdruck können
- mehr als ein Gerät über die normale Regexp-Syntax angegeben
- werden.
-
- Beispiel:
-
- attr autocreate ignoreTypes CUL_HOERMANN.*|FHT_1234|CUL_WS_7
-
-
-
-
-
-
-
- createlog
-
- Dieser Befehl wird für ein manuelles Hinzufügen eines Logfile
- oder eines SVG zu einem vorhandenen Gerät verwendet.
-
- Dieser Befehl ist Bestandteilteil des autocreate-Modules.
-
-
-
-
- usb
-
- Verwendung:
-
- usb scan
- usb create
-
- Dieser Befehl durchsucht das /dev-Verzeichnis nach angeschlossenen
- USB-Geräten und versucht gleichzeitig sie zu identifizieren. Mit dem
- Argument scan wird eine Liste von ausführbaren fhem-Befehlen
- zurückgegeben. Das Argument create gibt keine Liste o.ä.
- zurück, die Geräte werden stattdessen erzeugt.
-
- Es ist zu beachten, dass ein CUL immer noch manuell in den
- HomeMatic-Modus umgeschaltet werden muss.
-
- Unter Linux wird gleichzeitig mit dem lsusb-befehl überprüft,
- ob nichtgeflashte CULs angeschlossen sind. Ist dies der Fall, ruft Linux
- CULflash mit den geeigneten Parametern auf (oder zeigt den
- CULflash-Befehl an, falls scan aufgeführt wurde).
- Pro usb Befehl wird nur ein Gerät geflasht.
-
- Dieser Befehl ist Bestandteilteil des autocreate-Modules.
-
-
-
-
-
-
average
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: average
-
-
-
backup
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: backup
-
-
-
cloneDummy
-
- Definiert einen Clon eines Devices oder von FHEM2FHEM im Logmodus uebergebenen Devices und uebernimmt dessen Readings.
- Sinnvoll um entfernte FHEM-Installationen lesend einzubinden, zum Testen oder Programmieren.
-
- Aktiviert den cloneDummy, der dann an das Device <Quelldevice> gebunden ist. Mit dem optionalen Parameter reading
- wird bestimmt, welches reading im STATE angezeigt wird, stateFormat ist auch weiterhin möglich.
-
- Beispiel: Der cloneDummy wird lesend an den Sensor OWX_26_09FF26010000 gebunden und zeigt im State temperature an.
-
-
-
- define Feuchte cloneDummy OWX_26_09FF26010000 temperature
-
-
-
-
-
- Set
N/A
-
-
- Get
N/A
-
-
- Attributes
-
-
clonIgnore
- Eine durch Kommata getrennte Liste der readings, die cloneDummy nicht in eigene readings umwandelt
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: cmdalias
-
-
-
configDB
-
- configDB ist die Funktionsbibliothek für die Konfiguration aus einer SQL Datenbank.
- Die ausführliche Dokumentation findet sich in der configdb Befehlsbeschreibung.
-
-
-
-
configdb
-
- Seit version 5079 unterstützt fhem die Verwendung einer SQL Datenbank zum Abspeichern der kompletten Konfiguration
- Dadurch kann man auf alle cfg Dateien, includes usw. verzichten und die daraus immer wieder resultierenden Probleme vermeiden.
- Desweiteren gibt es damit eine Versionierung von Konfigurationen und die Möglichkeit,
- jederzeit eine ältere Version wiederherstellen zu können.
- Der Zugriff auf die Datenbank erfolgt über die perl-eigene Datenbankschnittstelle DBI.
-
- Voraussetzungen / Installation
-
-
Bitte das perl Paket Text::Diff installieren, falls noch nicht auf dem System vorhanden.
-
Es muss eine SQL Datenbank verfügbar sein, untsrstützt werden SQLITE, MYSQL und POSTGRESQLL.
-
Das zum Datenbanktype gehörende DBD Modul muss in perl installiert sein,
- für sqlite3 auf einem Debian System z.B. das Paket libdbd-sqlite3-perl
-
Eine leere Datenbank muss angelegt werden, z.B. in sqlite3:
-
- mba:fhem udo$ sqlite3 configDB.db
-
- SQLite version 3.7.13 2012-07-17 17:46:21
- Enter ".help" for instructions
- Enter SQL statements terminated with a ";"
- sqlite> pragma auto_vacuum=2;
- sqlite> .quit
-
- mba:fhem udo$
-
-
Die benötigten Datenbanktabellen werden automatisch angelegt.
-
Eine Konfigurationsdatei für die Verbindung zur Datenbank muss angelegt werden.
-
- WICHTIG:
-
-
Diese Datei muss den Namen "configDB.conf" haben
-
Diese Datei muss im fhem Verzeichnis liegen, z.B. /opt/fhem
-
-
-
-## für MySQL
-################################################################
-#%dbconfig= (
-# connection => "mysql:database=configDB;host=db;port=3306",
-# user => "fhemuser",
-# password => "fhempassword",
-#);
-################################################################
-#
-## für PostgreSQL
-################################################################
-#%dbconfig= (
-# connection => "Pg:database=configDB;host=localhost",
-# user => "fhemuser",
-# password => "fhempassword"
-#);
-################################################################
-#
-## für SQLite (username and password bleiben bei SQLite leer)
-################################################################
-#%dbconfig= (
-# connection => "SQLite:dbname=/opt/fhem/configDB.db",
-# user => "",
-# password => ""
-#);
-################################################################
-
-
-
- Aufruf mit einer vollständig neuen fhem Installation
-
- Sehr einfach... fhem muss lediglich folgendermassen gestartet werden:
-
perl fhem.pl configDB
- configDB ist das Schlüsselwort, an dem fhem erkennt,
- dass eine Datenbank für die Konfiguration verwendet werden soll.
-
- Das war es schon. Alle Befehle (save, rereadcfg etc) arbeiten wie gewohnt.
-
-
-
- oder:
-
-
- übertragen einer bestehenden fhem Konfiguration in die Datenbank
-
- Auch sehr einfach...
-
-
fhem wird zum letzten Mal mit der fhem.cfg gestartet
-
perl fhem.pl fhem.cfg
-
-
Bestehende Konfiguration in die Datenbank übertragen
-
configdb migrate
-
- in die Befehlszeile der fhem-Oberfläche eingeben
- Nicht die Geduld verlieren! Die Migration eine Weile dauern, speziell bei Mini-Systemen wie
- RaspberryPi or Beaglebone.
- Am Ende der Migration wird eine aktuelle Datenbankstatistik angezeigt.
- Die ursprüngliche Konfigurationsdatei wird bei diesem Vorgang nicht angetastet.
-
fhem beenden.
-
fhem mit dem Schlüsselwort configDB starten
-
perl fhem.pl configDB
- configDB ist das Schlüsselwort, an dem fhem erkennt,
- dass eine Datenbank für die Konfiguration verwendet werden soll.
-
- Das war es schon. Alle Befehle (save, rereadcfg etc) arbeiten wie gewohnt.
-
-
-
- Zusätzliche Funktionen
-
- Es wird ein neuer Befehl configdb bereitgestellt,
- der mit verschiedenen Parametern aufgerufen werden kann.
-
-
-
configdb attr [attribute] [value]
- Hiermit lassen sich attribute setzen, die das Verhalten von Front- und Backend beeinflussen.
-
- configdb attr private 1 - setzt das Attribut 'private' auf den Wert 1.
-
- configdb attr private - löscht das Attribut 'private'
-
- configdb attr - zeigt alle gespeicherten Attribute
-
- Im Moment ist nur ein Attribut definiert. Wenn 'private' auf 1 gesetzt wird, werden bei 'configdb info'
- keine Benutzer- und Passwortdaten angezeigt.
-
-
-
-
configdb backup
- Ersetzt den Standard-Backup-Befehl von fhem, da dieser bei Verwendung von configDB nicht mehr
- zur Verfügung steht.
-
- Wichtig:
- Für die Sicherung der Datenbank ist der Anwender selbst verantwortlich!
- Der backup Befehl kann diese Aufgabe nicht übernehmen.
- Ausnahme: Nutzer einer im fhem Verzeichnis liegenden sqlite Datenbank profitieren von der Einfachheit
- dieser Datenbank, denn das fhem Verzeichnis wird ohnehin komplett gesichert.
-
-
-
configdb diff <device> <version>
- Vergleicht die Konfigurationsdaten des Gerätes <device> aus der aktuellen Version 0 mit den Daten aus Version <version>
- Beispielaufruf:
-
- configdb diff telnetPort 1
-
- liefert ein Ergebnis ähnlich dieser Ausgabe:
-
-compare device: telnetPort in current version 0 (left) to version: 1 (right)
-+--+--------------------------------------+--+--------------------------------------+
-| 1|define telnetPort telnet 7072 global | 1|define telnetPort telnet 7072 global |
-* 2|attr telnetPort room telnet * | |
-+--+--------------------------------------+--+--------------------------------------+
-
-
configdb export <zielDateiname> [version];
- Exportiert die angegebene Version aus der Konfigurationsdatenbank in die Datei <zielDateiname>
- Standardversion, falls nicht angegeben = 0
- Die Zieldatei kann später für die Wiederherstellung verwendet werden.
-
-
-
configdb info
- Liefert eine Datenbankstatistik
-
---------------------------------------------------------------------------------
- configDB Database Information
---------------------------------------------------------------------------------
- dbconn: SQLite:dbname=/opt/fhem/configDB.db
- dbuser:
- dbpass:
- dbtype: SQLITE
---------------------------------------------------------------------------------
- fhemconfig: 7707 entries
-
- Ver 0 saved: Sat Mar 1 11:37:00 2014 def: 293 attr: 1248
- Ver 1 saved: Fri Feb 28 23:55:13 2014 def: 293 attr: 1248
- Ver 2 saved: Fri Feb 28 23:49:01 2014 def: 293 attr: 1248
- Ver 3 saved: Fri Feb 28 22:24:40 2014 def: 293 attr: 1247
- Ver 4 saved: Fri Feb 28 22:14:03 2014 def: 293 attr: 1246
---------------------------------------------------------------------------------
- fhemstate: 1890 entries saved: Sat Mar 1 12:05:00 2014
---------------------------------------------------------------------------------
-
-Ver 0 bezeichnet immer die aktuell verwendete Konfiguration.
-
-
-
configdb list [device] [version]
- Sucht das Gerät [device] in der Konfiguration der Version [version]
- in der Datenbank.
- Standardwert für [device] = % um alle Geräte anzuzeigen
- Standardwert für [version] = 0 um Geräte in der aktuellen Version anzuzeigen.
- Beispiele für gültige Aufrufe:
-
- configdb list
- configdb list global
- configdb list '' 1
- configdb list global 1
-
-
-
configdb recover <version>
- Stellt eine ältere Version aus dem Datenbankarchiv wieder her.
- set configDB recover 3kopiert die Version #3 aus der Datenbank
- zur Version #0.
- Die ursprüngliche Version #0 wird dabei gelöscht.
- Wichtig!
- Die zurückgeholte Version wird NICHT automatisch aktiviert!
- Ein rereadcfg oder - besser - shutdown restart muss manuell erfolgen.
-
-
-
-
-
configdb reorg [keep]
- Löscht alle gespeicherten Konfigurationen mit Versionsnummern größer als [keep].
- Standardwert für den optionalen Parameter keep = 3.
- Mit dieser Funktion läßt sich eine nächtliche Reorganisation per at umsetzen.
-
-
-
configdb uuid
- Liefert eine uuid, die man für eigene Zwecke verwenden kann.
-
-
- Hinweise
-
-
-
Im Verzeichnis contrib/configDB befinden sich zwei Vorlagen für Datenbank und Konfiguration,
- die durch einfaches Kopieren in das fhem Verzeichnis sofort verwendet werden können (Nur für sqlite!).
-
-
Der Menüpunkt "Edit files"->"config file" wird bei Verwendung von configDB nicht mehr angezeigt.
-
-
Beim Speichern einer Konfiguration nicht ungeduldig werden (egal ob manuell oder durch Klicken auf "save config")
- Durch das Schreiben der Versionsinformationen dauert das ein paar Sekunden.
- Der Abschluss des Speichern wird durch eine entsprechende Meldung angezeigt.
-
-
Diese Erweiterung wird laufend weiterentwickelt. Speziell an der Verbesserung der Performance wird gearbeitet.
-
-
Viel Spass!
-
-
-
-
-
-
dewpoint
-
- Berechnungen des Taupunkts. Es gibt drei Varianten, das Modul dewpoint zu verwenden:
-
-
dewpoint: Taupunkt
- Erzeugt ein zusätzliches Ereignis "dewpoint" aus Temperatur- und Luftfeuchtewerten eines Fühlers.
-
fan: Lüfter
- Erzeugt ein Ereignis, um einen Lüfter einzuschalten, wenn die Außenluft
- weniger Wasser als die Raumluft enthält.
-
alarm: Alarm
- Erzeugt einen Schimmel-Alarm, wenn eine Referenz-Temperatur unter den Taupunkt fällt.
-
-
-
-
- Define
-
- define <name> dewpoint dewpoint <devicename-regex> [<temp_name>
- <hum_name> <new_name>]
-
- Berechnet den Taupunkt des Geräts <devicename-regex> basierend auf Temperatur
- und Luftfeuchte und erzeugt daraus ein neues Reading namens dewpoint.
- Wenn <temp_name>, <hum_name> und <new_name> angegeben sind,
- werden die Temperatur aus dem Reading <temp_name>, die Luftfeuchte aus dem
- Reading <hum_name> gelesen und als berechneter Taupunkt ins Reading <new_name> geschrieben.
- Wenn <temp_name> T lautet, wird die Temperatur aus state T: H: benutzt
- und <new_name> zu state hinzugefügt.
-
- Beispiele:
-
- # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
- # in Ereignissen, die vom Gerät temp1 erzeugt wurden und erzeugt ein Reading dewpoint.
- define dew_temp1 dewpoint dewpoint temp1
- define dew_temp1 dewpoint dewpoint temp1 temperature humidity dewpoint
-
- # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
- # in Ereignissen, die von allen Geräten erzeugt wurden die diese Werte ausgeben
- # und erzeugt ein Reading dewpoint.
- define dew_all dewpoint dewpoint .*
- define dew_all dewpoint dewpoint .* temperature humidity dewpoint
-
- # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
- # in Ereignissen, die vom Gerät Aussen_1 erzeugt wurden und ergänzt
- # mit diesem Wert den Status STATE.
- define dew_state dewpoint dewpoint Aussen_1 T H D
-
- # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
- # in Ereignissen, die von allen Geräten erzeugt wurden die diese Werte ausgeben
- # und ergänzt mit diesem Wert den Status STATE.
- # Beispiel STATE: "T: 10 H: 62.5" wird verändert nach
- # "T: 10 H: 62.5 D: 3.2"
- define dew_state dewpoint dewpoint .* T H D
-
Erzeugt ein Ereignis, um einen Lüfter einzuschalten, wenn die Außenluft
- weniger Wasser als die Raumluft enthält.
-
Erzeugt das Ereignis "fan: on" wenn (Taupunkt von <devicename-outside>) +
- <diff_temp> ist niedriger als der Taupunkt von <devicename> und die Temperatur
- von <devicename-outside> >= min-temp ist. Das Ereignis wird nur erzeugt wenn das
- Reading "fan" nicht schon "on" war. Das Ereignis wird für das Gerät <devicename> erzeugt.
- Der Parameter <diff-temp> ist optional.
-
Andernfalls wird das Ereignis "fan: off" erzeugt, wenn das Reading von "fan" nicht bereits "off" war.
-
-
- Beispiel:
-
- # Erzeugt das Ereignis "fan: on", wenn der Taupunkt des Geräts Aussen_1 zum ersten Mal
- # niedriger ist als der Taupunkt des Geräts basement_tempsensor und die
- # Außentemperatur >= 0 ist und wechselt nach "fan: off" wenn diese Bedingungen nicht
- # mehr zutreffen.
- # Schaltet den Schalter fan_switch abhängig vom Zustand ein oder aus.
- define dew_fan1 dewpoint fan basement_tempsensor Aussen_1 0
- define dew_fan1_on notify basement_tempsensor.*fan:.*on set fan_switch on
- define dew_fan1_off notify basement_tempsensor.*fan:.*off set fan_switch off
-
Erzeugt einen Schimmel-Alarm, wenn eine Referenz-Temperatur unter den Taupunkt fällt.
-
Erzeugt ein Reading/Ereignis "alarm: on" wenn die Temperatur von
- <devicename-reference> - <diff-temp> unter den Taupunkt von
- <devicename> fällt und das Reading "alarm" nicht bereits "on" ist.
- Das Ereignis wird für <devicename> erzeugt.
-
Erzeugt ein Reading/Ereignis "alarm: off" wenn die Temperatur von
- <devicename-reference> - <diff-temp> über den Taupunkt
- von <devicename> steigt und das Reading "alarm" nicht bereits "off" ist.
-
-
- Beispiel:
-
- # Es wird ein Anlegefühler (Wandsensor) und ein Thermo-/Hygrometer (Raumfühler)
- # verwendet, um einen Alarm zu erzeugen, wenn die Wandtemperatur
- # unter den Taupunkt der Luft fällt. In diesem Fall würde sich Wasser an der Wand
- # niederschlagen (kondensieren), weil die Wand zu kalt ist.
- # Der Schalter einer Sirene (alarm_siren) wird über ein notify geschaltet.
- define dew_alarm1 dewpoint alarm roomsensor wallsensor 0
- define roomsensor_alarm_on notify roomsensor.*alarm:.*on set alarm_siren on
- define roomsensor_alarm_off notify roomsensor.*alarm:.*off set alarm_siren off
-
- # Ohne Wandsensor lässt sich auch der Taupunkt eines Raums mit der Temperatur desselben
- # (oder eines anderen) Fühlers vergleichen.
- # Die Alarmtemperatur ist 5 Grad niedriger gesetzt als die des Vergleichsthermostats.
- define dev_alarm2 dewpoint alarm roomsensor roomsensor 5
-
- Maximale erlaubter Zeitunterschied in Sekunden zwischen den Temperatur- und Luftfeuchtewerten eines
- Geräts. dewpoint verwendet Readings von Temperatur oder Luftfeuchte wenn sie nicht im Ereignis
- mitgeliefert werden. Das ist sowohl für den Betrieb mit event-on-change-reading nötig
- als auch bei Sensoren die Temperatur und Luftfeuchte in getrennten Ereignissen kommunizieren
- (z.B. Technoline Sensoren TX3TH).
- Der Standardwert ist 1 Sekunde.
-
-
- Definiert eine Pseudovariable, der mit set jeder beliebige
- Wert zugewiesen werden kann. Sinnvoll zum Programmieren.
-
-
-
- Define
-
- define <name> dummy
-
-
- Beispiel:
-
- define myvar dummy
- set myvar 7
-
-
-
-
-
- Set
-
- set <name> <value>
- Weist einen Wert zu.
-
-
-
-
- Get
N/A
-
-
- Attributes
-
-
setList
- Liste mit Werten durch Leerzeichen getrennt. Diese Liste wird mit "set
- name ?" ausgegeben. Damit kann das FHEMWEB-Frontend Auswahl-Menüs
- oder Schalter erzeugen.
- Beispiel: attr dummyName setList on off
-
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: eventTypes
-
-
-
fheminfo
-
- fheminfo [send]
-
-
- fheminfo zeigt Informationen über das System und FHEM Definitionen an.
-
-
- Der optionale Parameter send überträgt die Informationen
- an einen zentralen Server um die Entwicklung von FHEM zu unterstützen.
- Die übermittelten Daten werden grafisch aufbereitet und können auf
- http://fhem.de/stats/statistics.cgi
- abgerufen werden. Anhand der IP-Adresse wird der ungefähre Standort mit
- einer Genauigkeit von ca. 40-80 km ermittelt. Die IP-Adresse wird nicht gespeichert.
-
-
- Eigenschaften:
-
-
Eingesetztes Betriebssystem
-
Hardware Architektur
-
Installierte Perl Version
-
Installierte FHEM release und "branch"
-
Definierte Module (nur offizielle FHEM Module werden ermittelt)
-
-
-
- Attribute
-
-
- Die folgenden Attribute werden nur in Verbindung mit dem Parameter
- send genutzt. Sie werden über attr global gesetzt.
-
-
-
-
uniqueID
- Eine zufällig generierte ID (16 Paare aus Hash Werten), z.B.
- 87c5cca38dc75a4f388ef87bdcbfbf6f welche den übertragenen Daten
- zur Vermeidung von doppelten Einträge zugewiesen wird.
-
- Die uniqueID wird automatisch in einer Datei namens FHemUtils/uniqueID
- im FHEM Modulverzeichnis gespeichert.
-
- WICHTIGER HINWEIS:
-
- Jede Installation von FHEM sollte seine eigene eindeutige ID haben.
-
- Bitte diese Datei nicht verändern, verschieben oder löschen! Diese Datei sollte
- immer gesichert (wird normalerweise automatisch durch den update Befehl
- erledigt) und bei einer Neuinstallation auf der gleichen Hardware im gleichen Verzeichnis
- (FhemtUtils im FHEM Modulverzeichnis) wieder hergestellt werden. Dies verhindert
- doppelte Einträge identischer Installationen auf der gleichen Hardware in der Statistik.
-
- Anderfalls, sollten bitte für jede Installation auf unterschiedlicher Hardware eigene
- IDs genutzt werden, z.B. eine zufällig erzeugte ID für FRITZ!Box, eine weitere für
- den ersten Raspberry Pi, eine weitere für einen zweiten Raspberry Pi, usw.
-
- Vielen Dank für die Unterstützung!
-
-
-
sendStatistics
- Dieses Attribut wird in Verbindung mit dem update Befehl verwendet.
-
- onUpdate: Überträgt die Daten bei jedem Update (empfohlene Einstellung).
-
- manually: Manuelle Überträgung der Daten über fheminfo send.
-
- never: Verhindert die Überträgung der Daten.
-
-
-
-
-
-
-
geodata
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: geodata
-
-
-
holiday
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: holiday
-
-
-
mailcheck
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: mailcheck
-
-
-
netatmo
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: netatmo
-
-
-
notice
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: notice
-
-
-
notify
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: notify
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: panStamp
-
-
-
pilight
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: pilight
-
-
-
rain
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: rain
-
-
-
readingsGroup
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: readingsGroup
-
-
-
readingsProxy
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: readingsProxy
-
-
-
remotecontrol
-
- Erzeugt eine graphische Fernbedienung. Buttons (=icons) können frei ausgewählt und angeordnet werden. Vordefinierte layouts sind verfügbar für z.B. Samsung-TV und iTunes.
- Jeder "Knopfdruck" kann an das entsprechende fhem-Gerät weitergegeben werden.
- Weitere Erklaerungen finden sich im Wiki-Eintrag<>.
-
-
- Define
-
- define <rc-name> remotecontrol
- Typische Schritte zur Einrichtung:
-
-
define rc1 remotecontrol
# erzeugt eine "leere" remotecontrol
-
get rc1 layout
# zeigt alle vorhandenen vordefinierten layouts an
-
set rc1 layout samsung
# laedt das layout für SamsungTV
-
set rc1 makenotify myTV
# erzeugt notify_rc1, das jeden Tastendruck an myTV weitergibt
-
Hinweis:die Tastenbelegung kann jederzeit geaendert werden, ohne dass der weblink erneut erzeugt werden muss.
-
attr rc1 row15 VOLUP,VOLDOWN
-
-
-
-
- Set
-
-
set <rc-name> layout [delete|<layoutname>]
- layout delete loescht alle rowXX-Attribute
- layout <layoutname> laedt das vordefinierte layout in die rowXX-Attribute
-
set <rc-name> makeweblink [<name>]
- erzeugt einen weblink zur Anzeige der remotecontrol in FHEMWEB oder FLOORPLAN. Default-Name ist weblink_<rc-name> .
-
set rc1 makenotify mySamsungTV
- erzeugt notify_rc1 das jeden Tastendruck an mySamsungTV zur Ausfuehrung weitergibt
rc_iconpath
- Pfad für icons, default ist "icons" . Der Attribut-Wert wird für alle icon-Dateien verwendet ausser .svg .
-
rc_iconprefix
- Prefix für icon-Dateien, default ist "" . Der Attribut-Wert wird für alle icon-Dateien verwendet ausser .svg .
-
Note: Icon-Namen (Tasten-Bild-Datei-Namen) werden zusammengesetzt als fhem/<rc_iconpath>/<rc_iconprefix><command|image>
- Fuer .svg -icons ist die Zugriffsfolge gemaess dem FHEMWEB-Attribut iconPath, default ist openautomation:fhemSVG:default .
-
-
rc_devStateIcon
- Zeigt das button-layout auf dem remotecontrol-device selbst in der FHEMWEB-Raumansicht an. Default ist 1, durch setzen auf 0 erscheint in der FHEMWEB-Raumansciht nicht das layout, sondern nur der Status "Initialized".
-
-
-
rowXX
- attr <rc-name> rowXX <command>[:<image>]
- Komma-separarierte Liste von Tasten/Icons je Tastaturzeile. Eine Tastaturzeile kann beliebig viele Tasten enthalten.
-
<command> ist der event, der bei Tastendruck ausgelöst wird. Gross/Kleinschreibung beachten.
-
<image> ist der Dateiname des als Taste angezeigten icons
-
Verwenden Sie je Taste
-
<command> wobei als Taste/icon <command> angezeigt wird
- Beispiel:
- attr rc1 rc_iconprefix black_btn_ # gilt für alle Tasten/icons
- attr rc1 row00 VOLUP
- -> icon ist black_btn_VOLUP, ein Tastendruck erzeugt den event VOLUP
-
- oder
-
<command>:<image> wobei als Taste/icon <rc_iconprefix><image> angezeigt wird.
- Beispiel:
- attr rc1 row00 LOUDER:VOLUP
- icon ist black_btn_VOLUP, ein Tastendruck erzeugt den event LOUDER
- Beispiele:
- attr rc1 row00 1,2,3,TV,HDMI
- attr rc2 row00 play:PLAY,pause:PAUSE,louder:VOLUP,quieter:VOLDOWN
-
-
Hinweis: verwenden Sie :blank für eine 'leere Taste', oder z.B. :blank,:blank,:blank für eine Abstands-Leerzeile.
-
-
-
-
-
sequence
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: sequence
-
-
-
speedtest
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: speedtest
-
-
- Mit dem Device "Structure" werden Strukturen/Zusammenstellungen von anderen
- Devices erstellt um sie zu Gruppen zusammenzufassen. (Beispiel: im Haus
- alles ausschalten)
-
- Die Liste der Devices die einer Struktur zugeordnet sind kann duch das
- Kommando addstruct / delstruct im laufenden Betrieb
- verändert werden. Es können sowohl einzelne Devices als auch
- Gruppen von Devices (TYPE=FS20) zugefügt werden. Jedes zugefügt
- Device erhält zwei neue Attribute <struct_type>=<name>
- sowie <struct_type>_map wenn es zu einer Struktur zugefügt
- wurde. Diese Attribute werden wieder automatisch entfernt, sobald das
- Device von der Struktur entfernt wird.
-
- Eine Struktur kann ebenfalls zu einer anderen Struktur zugefügt
- werden. Somit können z b. kaskadierende Strukturen erstellt werden.
- (Z.b. KG,EG,OG, Haus)
-
- Beispiel:
-
-
define Kueche structure room lampe1 lampe2
-
addstruct Kueche TYPE=FS20
-
delstruct Kueche lampe1
-
define house structure building kitchen living
-
set house off
-
-
-
-
-
-
- Set
-
- Jedes set Kommando wird an alle Devices dieser Struktur weitergegeben.
- Aussnahme: das Attribut structexclude ist in einem Device definiert und
- dessen Attributwert matched als Regexp zum Namen der aktuellen Struktur.
- Wenn das set Kommando diese Form hat set <structure> [FILTER=<filter>] <type-specific>
- wird :FILTER=<filter> bei der Weitergebe der set an jeden Devicenamen wie folgt angehängt:
- set :FILTER=<filter> <type-specific>
-
-
-
- Get
-
- Get wird im Structur-Device nicht unterstützt.
-
-
-
-
- Attribute
-
-
-
clientstate_behavior
- Der Status einer Struktur hängt von den Stati der zugefügten
- Devices ab. Dabei wird das propagieren der Stati der Devices in zwei
- Gruppen klassifiziert und mittels diesem Attribut definiert:
-
-
absolute
- Die Struktur wird erst dann den Status der zugefügten Devices
- annehmen, wenn alle Devices einen identischen Status vorweisen. Bei
- unterschiedlichen Devictypen kann dies per Attribut
- <struct_type>_map pro Device beinflusst werden. Andernfalls hat
- die Struktur den Status "undefined".
-
-
relative
- S.u. clientstate_priority.
-
-
relativeKnown
- wie relative, reagiert aber nicht auf unbekannte, in
- clientstate_priority nicht beschriebene Ereignisse. Wird für
- HomeMatic Geräte benötigt.
-
-
last
- Die Struktur übernimmt den Status des zuletzt geänderten
- Gerätes.
-
-
-
-
-
-
clientstate_priority
- Wird die Struktur auf ein relatives Verhalten eingestellt, so wird die
- Priorität der Devicestati über das Attribut
- clientstate_priority beinflusst. Die Prioritäten sind
- in absteigender Reihenfolge anzugeben. Dabei können Gruppen mit
- identischer Priorität angegeben werden, um zb. unterschiedliche
- Devicetypen zusammenfassen zu können. Jede Gruppe wird durch
- Leerzeichen oder /, jeder Eintrag pro Gruppe durch Pipe getrennt. Der
- Status der Struktur ist der erste Eintrag in der entsprechenden Gruppe.
- Beispiel:
-
attr haus clientstate_priority Any_On|An All_Off|Aus
-
- In diesem Beipiel nimmt die Struktur kuecheentweder den
- Status An oder Aus an. Die Struktur
- haus nimmt entweder den Status Any_on oder
- All_off an. Sobald ein Device der Struktur
- haus den Status An hat nimmt die Struktur den
- Status Any_On an. Um dagegen den Status All_off
- anzunehmen, müssen alle Devices dieser Struktur auf off
- stehen.
-
-
-
<struct_type>_map
- Mit diesem Attribut, das dem Struktur-Mitglied zugewiesen werden
- muss, koennen die Werte, die die einzelnen Struktur- Mitglieder melden,
- umdefiniert werden, damit man unterschiedliche Geraeteklassen
- zusammenfassen kann. Es existieren drei Varianten:
-
-
readingName
- nehme den Wert von readingName anstatt von state
-
-
oldVal:newVal
- falls der Wert der state Reading oldVal (als regex) ist, dann ersetze
- diesen mit newVal.
-
-
readingName:oldVal:newVal
- falls der Wert der readingName oldVal (als regex) ist, dann ersetze
- diesen mit newVal.
-
structexclude
- Bei gesetztem Attribut wird set, attr/deleteattr ignoriert. Dies
- trifft ebenfalls auf die Weitergabe des Devicestatus an die Struktur zu.
- Fuer set und fuer die Status-Weitergabe muss der Wert den Strukturnamen
- matchen, bei einem Attribut-Befehl die Kombination
- Strukturname:Attributname.
- Beispiel:
-
-
- Erste Form, Server-mode:
- Überwacht den TCP/IP-Port <portNummer> auf
- ankommende Verbindungen. Wenn der zweite Parameter gobal nicht
- angegeben wird, wird der Server nur auf Verbindungen von localhost achten.
-
-
- Für den Gebrauch von IPV6 muss die Portnummer als IPV6:<nummer>
- angegeben werden, in diesem Fall wird das Perl-Modul IO::Socket:INET6
- angesprochen. Unter Linux kann es sein, dass dieses Modul mittels cpan -i
- IO::Socket::INET6 oder apt-get libio-socket-inet6-perl nachinstalliert werden
- muss; OSX und Fritzbox-7390 enthalten bereits dieses Modul.
-
- Beispiele:
-
- Hinweis: Das alte (pre 5.3) "global attribute port" wird automatisch in
- eine telnet-Instanz mit dem Namen telnetPort umgewandelt. Im Rahmen dieser
- Umwandlung geht das globale Attribut allowfrom verloren.
-
-
- Zweite Form, Client-mode:
- Verbindet zu einem angegebenen Server-Port und führt die von dort aus
- empfangenen Anweisungen - genau wie im Server-mode - aus. Dies kann
- verwendet werden, um sich mit einer fhem-Instanz, die sich hinter einer
- Firewall befindet, zu verbinden, für den Fall, wenn das Installieren
- von Ausnahmen in der Firewall nicht erwünscht oder nicht möglich
- sind. Hinweis: Dieser Client-mode unterstützt zwar SSL, aber nicht
- IPV6.
-
- Beispiel:
-
- Starten von tcptee auf einem öffentlich erreichbaren Host ausserhalb
- der Firewall:
- perl contrib/tcptee.pl --bidi 3000
- Konfigurieren von fhem innerhalb der Firewall:
- define tClient telnet <tcptee_host>:3000
- Verbinden mit fhem (hinter der Firewall) von ausserhalb der Firewall:
- telnet <tcptee_host> 3000
-
-
-
-
-
-
-
- Set
N/A
-
-
- Get
N/A
-
-
- Attribute
-
-
-
password
- Bezeichnet ein Passwort, welches als allererster String eingegeben
- werden muss, nachdem die Verbindung aufgebaut wurde. Wenn das Argument
- in {} eingebettet ist, dann wird es als Perl-Ausdruck ausgewertet, und
- die Variable $password mit dem eingegebenen Passwort verglichen. Ist
- der zurückgegebene Wert wahr (true), wurde das Passwort
- akzeptiert. Falls dieser Parameter gesetzt wird, sendet fhem
- telnet IAC Requests, um ein Echo während der Passworteingabe zu
- unterdrücken. Ebenso werden alle zurückgegebenen Zeilen mit
- \r\n abgeschlossen.
-
- Beispiel:
-
- Hinweis: Falls dieses Attribut gesetzt wird, muss als erstes Argument
- ein Passwort angegeben werden, wenn fhem.pl im Client-mode betrieben
- wird:
-
globalpassword
- Entspricht dem Attribut password; ein Passwort wird aber
- ausschließlich für nicht-lokale Verbindungen verlangt.
-
-
-
-
SSL
- SSL-Verschlüsselung für eine Verbindung aktivieren. Hier gibt es eine Beschreibung, wie das erforderliche
- SSL-Zertifikat generiert werden kann. Um eine Verbindung mit solch
- einem Port herzustellen, sind folgende Befehle möglich:
-
allowfrom
- Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut
- gesetzt wurde, werden ausschließlich Verbindungen von diesen
- Adressen akzeptiert.
-
-
-
-
connectTimeout
- Gibt die maximale Wartezeit in Sekunden an, in der die Verbindung
- aufgebaut sein muss. Standardwert ist 2.
-
-
-
-
connectInterval
- Gibt die Dauer an, die entweder nach Schließen einer Verbindung
- oder für den Fall, dass die Verbindung nicht zustande kommt,
- gewartet werden muss, bis ein erneuter Verbindungsversuch gestartet
- werden soll. Standardwert ist 60.
-
-
-
-
encoding
- Bezeichnet die Zeichentabelle für die zum Client gesendeten Daten.
- Mögliche Werte sind utf8 und latin1. Standardwert ist utf8.
-
- Aktualisierung eines Fremdpaketes / Fremdpaket auf Aktualisierungen prüfen:
-
- update thirdparty <url> <Paketname> [force]
- update thirdparty <url> <Paketname> check
-
- Die installierte FHEM Distribution und deren Erweiterungen (z.B. das Web-Interface
- PGM2 (FHEMWEB)) werden mit diesem Befehl über ein Online Repository aktualisiert.
- Enthält das Repository neuere Dateien oder Dateiversionen als die lokale
- Installation, werden die aktualisierten Dateien aus dem Repository installiert.
-
-
- Die Update-Funktion unterstützt erweiterte Distributions Informationen sowie
- die Steuerung über spezielle Befehle zum aktualisieren, verschieben oder
- umbenennen von bestehenden Dateien. Neue Verzeichnisstrukturen können ebenfalls
- über die Aktualisierung erzeugt werden. Die Aktualisierung erfolgt exklusiv
- im Verzeichnispfad der über das globale Attribut "modpath" gesetzt wurde
- (Ausnahme: fhem.pl). Der Anwender kann die Aktualisierung wahlweise
- aus dem stabilen (stable) oder Entwicklungs-Zweig (development) vornehmen lassen.
- Ein Aktualisierung erfolgt zur Zeit ausschliesslich nur über den
- Entwicklungs-Zweig (development).
-
-
- Weiterhin unterstützt der update Befehl die manuelle Installation von Paketen
- die Bestandteil der FHEM Distribution sind. Aktuell werden noch keine erweiterten FHEM
- Pakete bereitgestellt.
-
-
- Der update Befehl unterstützt auch die Installation von Paketen die kein Bestandteil
- der FHEM Distribution sind. Diese Pakete können z.B. von Entwicklern angebotene
- Module oder Benutzerinterfaces beinhalten.
-
-
- Hinweis für Anbieter von zusätzlichen Paketen:
-
- Weiterführende Informationen zur Bereitstellung von Paketen sind der Datei
- 'docs/LIESMICH.update-thirdparty' zu entnehmen.
-
-
- Beispiele:
-
Auf neue Aktualisierungen prüfen:
- fhem> update check
-
-
-
FHEM aktualisieren:
- fhem> update
-
-
-
FHEM Aktualisierung erzwingen (alle Dateien werden aktualisiert!):
- fhem> update force
-
-
-
Eine einzelne Datei aktualisieren:
- fhem> update 98_foobar.pm
-
-
-
Nach einem Dateinamen suchen:
- fhem> update backup
- 'backup' not found. Did you mean:
- ==> 98_backup.pm
- nothing to do...
-
-
-
Aktualisierung oder Installation eines Fremdpaketes:
- define <name> watchdog <regexp1> <timespec>
- <regexp2> <command>
-
-
- Startet einen beliebigen fhem.pl Befehl wenn nach dem Empfang des
- Ereignisses <regexp1> nicht innerhalb von <timespec> ein
- <regexp2> Ereignis empfangen wird.
-
- Der Syntax für <regexp1> und <regexp2> ist der gleiche wie
- regexp für notify.
-
- <timespec> ist HH:MM[:SS]
-
- <command> ist ein gewöhnlicher fhem Befehl wie z.B. in at oderr notify
-
-
- Beispiele:
-
- # Frage Daten vom FHT80 _einmalig_ ab, wenn wir keine Nachricht für
- # 15 Minuten erhalten haben.
- define w watchdog FHT80 00:15:00 SAME set FHT80 date
-
- # Frage Daten vom FHT80 jedes Mal ab, wenn keine Nachricht für
- # 15 Minuten emfpangen wurde, d.h. reaktiviere den Watchdog nachdem er
- getriggert wurde.
-
- # Kann gefährlich sein, da er so in einer Schleife getriggert werden
- kann.
- define w watchdog FHT80 00:15:00 SAME set FHT80 date;; trigger w .
-
- # Alarmiere einmalig wenn vom FHT80 für 15 Minuten keine Nachricht
- # emfpangen wurde.
- define w watchdog HMS100-FIT 01:00:00 SAME "alarm-fit.sh"
-
- # Sende eine Mail wenn das Fenster offen gelassen wurde
- define w watchdog contact1:open 00:15 contact1:closed "mail_me close
- window1"
- attr w regexp1WontReactivate
-
-
- Hinweise:
-
-
Wenn <regexp1> . (Punkt) ist, dann aktiviere den Watchdog zur
- definierten Zeit. Sonst wird er durch den Empfang des ersten passenden
- Events aktiviert.
-
-
<regexp1> Resetet den Timer eines laufenden Watchdogs. Um das
- zu verhindern wird das regexp1WontReactivate Attribut gesetzt.
-
-
Wenn <regexp2> SAME ist , dann ist es das gleiche wie das erste
- regexp, und wird reaktiviert wenn es empfangen wird.
-
-
trigger <watchdogname> . aktiviert den Trigger wenn dessen
- Status defined ist und setzt ihn in den Status defined wenn sein status
- triggered ist.
-
- Der Watchdog musst immer mit diesem Befehl reaktiviert werden wenn er
- getriggert wurde.
-
-
Ein generischer Watchdog (ein Watchdog, verantwortlich für
- mehrere Devices) ist derzeit nicht möglich.
regexp1WontReactivate
- Wenn ein Watchdog aktiv ist, wird ein zweites Ereignis das auf regexp1
- passt normalerweise den Timer zurücksetzen. Dieses Attribut wird
- das verhindern.
-
-
-
-
-
-=end html
-=cut
-
-
weblink
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: weblink
-
-
-
withings
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: withings
-
-
-
xxLG7000
-
- Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
- hier: xxLG7000
-
-
-
Perl specials
- Wenn Sie einige Aufgaben automatisieren wollen, dann sollten Sie die Befehle at oder notify
-nutzen. Für komplexere Aufgaben sollten Sie lieber ein SHELLl-Skiipt oder einen
-PERL "oneliner" als das at/notify
- argument anwenden. Dieser Abschnitt gibt Ihnen einige Tipps zur Anwendung der
-PERL-oneliner.
-
-
Um PERL-"oneliner" zu testen, geben Sie diese am "telnet" Prompt (oder in
- der FHEMWEB Text-Eingabezeile) eingeschlossen von geschweiften Klammern {} in
- einer Zeile ein. Die letzte Beispielzeile schreibt nur etwas in die Logdatei,
- während das Ergebnis der anderen Zeilen direkt auf der Webseite sichtbar ist.
- PERL Ausdrücke werden durch ein Semikolon (;) getrennt. In FHEM "oneliners"
- müssen sie durch ein weiteres Semikolon (;;) "escaped" (maskiert) werden
- Beispiel:
- { my $a = 1+1;; Log 1, "Hello $a" }
-
-
-
-
Um FHEM-Kommandos in den PERL-Ausdrücken zu verwenden, benutzen Sie
-bitte die Funktion fhem(),
- mit einem Textargument. Dieser Text wird als FHEM-Kommando interpretiert.
-
- Bemerkung: Wenn diese Funktion einen wert zurück liefert, wird dieser
- in der allgemeinen Logdatei gespeichert.. Benutzen sie "1" als
- zweites Argument um dieses speichern zu verhindern. Sinnvoll ist dieses
- Argument bei der Abfrage von Werten mittels "get...".
-
-
-
-
-
Notify kann auch dazu verwendet werden, um Macros manuell
- auszuführen. Verwenden Sie den trigger-Befehl
- um das Makro zu starten:
-
Um die Verwendung von Datum und Zeitangaben zu vereinfachen, wurden die
- Variablen $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst
- für die Verwendung in PERL-"oneliners" eingeführt (s.
- unter perldoc -f localtime). Ausnahmen: $month hat einen Wertebereich von 1
- to 12 und $year ist korrigiert von 1900.
- Weiterhin enthät $hms die Zeit in dem HH:MM:SS Format.
-
-
- Die Variabe $we hat den Wert 1 wenn der abgefragte Tag auf ein Wochenende
- fällt (Z.B. $wday == 0 [Sonntag] oder $wday == 6 [Samstag]), und 0
- für die anderen Wochentage. Wenn man das global holida2we Attribut setzt, dann ist $we ebenfalls 1
- bei Urlaubstagen.
-
-
- Die follgendenHilsfunktionen sind in der Datei 99_Util.pm definiert (wird
- wie jede mit 99 beginnende Datei automatisch geladen):
-
-
min(a,b), max(a,b)
-
time_str2num("YYYY-MM-DD HH:MM:SS") gibt einen numerischen Wert
- zurück, der die Berechnung von Zeitdifferenzen vereinfacht
-
abstime2rel("HH:MM:SS") wandelt absolute in relative Zeitangaben um
-
-
-
-
-
- Um auf die Gerätestati/Attribute zuzugreifen benutzen Sie bitte die
- folgenden Funktionen:
-
-
-
Value(<devicename>)
- gibt den Status eines Gerätes zurück (entsprechend dem
- Ausdruck in Klammern, den Sie beim List-Befehl sehen).
-
-
OldValue(<devicename>)
-
OldTimestamp(<devicename>)
- gibt den vorherigen Wert/Zeitstempel des Gerätes zurück.
-
-
- ReadingsVal(<devicename>,<reading>,<defaultvalue>)
- Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt
- von "list device" angezeigt wird)
-
-
- AttrVal(<devicename>,<attribute>,<defaultvalue>)
- Gibt die gesetzteb Attribute des Gerätes zurück
-
- InternalVal(<devicename>,<reading>,<defaultvalue>)
- Gibt den Inhalt der "internal" zurück (den Inhalt der in
- dem "Internals"-Abschnitt von "list device" angezeigt wird)
-
-
-
-
-
- Wenn Sie das 99_SUNRISE_EL.pm Modul benutzen, haben Sie zugriff auf folgende
- Funktionen:
-
- Der Wert von "offset" wird in Sekunden angegeben und das Format für min/max ist "HH:MM" oderr "HH:MM:SS".
- isday gibt 1 zurück, wenn die Sonne sichtbar ist und ansonsten den Wert 0.
-
-
-
-
-
-
-
gnuplot file syntax
-
- Die .gplot Dateien werden ebenso von den FHEMWEB/SVG
- Modulen falls das plotmode-Attribut auf SVG gesetzt
- ist. In diesem Fall wird nur eine geringere Anzahl der .gnuplot Attribute
- benutzt, und einige Linien haben eine besondere Bedeutung: Die Unterschiede
- werden in diesem Kapitel erklärt. Lesen Sie bitte auch
- diesen fhemwiki Eintrag zur Erstellung von Logdateien.
- Im folgenden ist eine minimale .gplot Definition (gültig nur bei Plotmode SVG):
-
set terminal size <SIZE>
- #FileLog 4:::
- plot title 'Temperature' with lines
-
- Die .gnuplot Datei besteht aus 3 Teilen:
-
-
set Befehle
- Folgende "sets" werden erkannt:
-
-
terminal, nur die Größenparameter.
- Dieser ist in der Regel auf <SIZE> gesetzt, welcher ersetzt wird
- durch das plotsize Attribut von FHEMWEB oder einer
- Weblink-Instanz.
-
-
title
- Normalerweise gesetzt auf <TL> welcher durch das Weblink title-Attribut, oder
- durch <Lx>, welches wiederum vom Weblink label
- Attribut ersetzt wird.
-
-
ylabel,y2label
- Linke und rechte vertikale Achsenbeschriftungen. Are also subject to label
- replacement.
-
-
yrange,y2range
- Legen den Wertebereich der linken und rechten y-Achse fest.
- Beispiele:
-
- set yrange [-0.1:1.1]
- set y2range [0:]
-
-
-
ytics,y2tics
- Beschriftung für die Werte der rechten/linken y-Achse. Beispiele:
-
- set ytics ("on" 0, "off" 1)
- set y2tics
-
-
-
-
-
-
-
#FileLog Einträge
- Jede Line des Plots muss eine dazugehörige #FileLog
- Zeile haben. Zur Syntax lesen Sie bitte den Abschnitt "column_spec paragraph"
- von der Filelog get Beschreibung.
- Beachten sie bitte, das bei SVG-Plots die erste Spalte der Datei unbedingt
- im FHEM-Zeitstempelformat (YYYY-MM-DD_HH:MM:SS) formatiert sein muss
-
-
-
-
Plot Einträge
- bestehen immer aus einem Plotbefehl und aus durch Kommata getrenne
- Argumentblöcke. Jeder Argumentblock repräsentiert eine darzustellende Linie
- und hat seine eigenen Paramter.
- Folgende Parameter werden are anerkannt:
-
-
axes x1y1 / x1y2
- weist das Programm an die aktuelle Zeile einer der beiden Achsen (links
- oder rechts) zuzuweisen.
-
-
title
- Beschriftung der Linie. Wenn man auf diesen Titel klickt, dann ändert
- ein kleines Javascript-Programm den Titel auf die min/max und last-Werte
- des Plots,
- Weiterhin erlaubt das Programm diese Linie zu kopieren oder eine bereits
- kopierte Linie einzufügen (die existierende Skalierung des Plots wird
- dabei nicht verändert, nur die eingefügte Linie wird skaliert/angepasst.
- Andere Linien des Plots werden zeitweise nicht angezeigt.
-
with <linetype>
- spezifiziert die Art der Linie. Folgende Linienarten können verwendet
- werden: points,
- steps, fsteps, histeps and lines. Nicht bekannte Linienarten werden als
- Typ "lines" dargestellt.
-
-
ls <linestyle>
- Der Linienstil stellt die erste Linie als l0 dar, die zweite Linie
- als l1 und so weiter. Definiert ist dies in der svg_style.css Datei. Darin
- sind zwei Sets definiert: l0-l8 and l0fill-l6fill. Das zweite Set muss
- aber explizit angegeben werden. Wenn der Name des Linienstils das Wort "fill"
- enthält, dann haben Plots des Linientyps "lines" ein zusätzliches Start- und
- Endsegment für eine korrekte Darstellung.
- Bitte lesen sie die SVG Spezifikationen, um Details über diese css-Datei
- zu erfahren.
- Notiz: Wenn Sie dieses Attribut einsetzen möchten, müssen Sie es für
- alle Linien (Attributblocks) im Plotbefehl spezifizieren.
-
-
lw <linewidth>
- Setzt die Linienbreite der Linie. Dieses Attribut ist veraltet. Das
- entprechende Feature der css-Datei/(Attribut ls) muss verwendet werden.
-
-