From 35ed38e313ecb7984484ce67aa295b664f62e71c Mon Sep 17 00:00:00 2001
From: rleins <>
Date: Wed, 17 Dec 2014 14:12:37 +0000
Subject: [PATCH] SONOS: Added new module Sonos and Sonosplayer with all
dependencies
git-svn-id: https://svn.fhem.de/fhem/trunk@7244 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/CHANGED | 2989 ++++----
fhem/FHEM/00_SONOS.pm | 6668 +++++++++++++++++
fhem/FHEM/21_SONOSPLAYER.pm | 1286 ++++
fhem/FHEM/lib/Encode/transliterate_win1251.pm | 55 +
fhem/FHEM/lib/MP3/Info.pm | 2939 ++++++++
fhem/FHEM/lib/MP3/Tag.pm | 3558 +++++++++
fhem/FHEM/lib/MP3/Tag/CDDB_File.pm | 345 +
fhem/FHEM/lib/MP3/Tag/Cue.pm | 310 +
fhem/FHEM/lib/MP3/Tag/File.pm | 481 ++
fhem/FHEM/lib/MP3/Tag/ID3v1.pm | 544 ++
fhem/FHEM/lib/MP3/Tag/ID3v2.pm | 2989 ++++++++
fhem/FHEM/lib/MP3/Tag/ID3v2_Data.pod | 332 +
fhem/FHEM/lib/MP3/Tag/ImageExifTool.pm | 119 +
fhem/FHEM/lib/MP3/Tag/ImageSize.pm | 77 +
fhem/FHEM/lib/MP3/Tag/Inf.pm | 148 +
fhem/FHEM/lib/MP3/Tag/LastResort.pm | 52 +
fhem/FHEM/lib/MP3/Tag/ParseData.pm | 274 +
fhem/FHEM/lib/Normalize/Text/Music_Fields.pm | 1217 +++
.../Normalize/Text/Music_Fields/A_Dvor_k.comp | 1861 +++++
.../Text/Music_Fields/A_Schnittke.comp | 2496 ++++++
.../Text/Music_Fields/D_Shostakovich.comp | 2569 +++++++
.../Text/Music_Fields/G_Gershwin.comp | 906 +++
.../Normalize/Text/Music_Fields/J_Brahms.comp | 868 +++
.../Text/Music_Fields/L_van_Beethoven.comp | 4227 +++++++++++
.../Text/Music_Fields/Music_Fields-rus.lst | 218 +
fhem/FHEM/lib/UPnP/Common.pm | 828 ++
fhem/FHEM/lib/UPnP/ControlPoint.pm | 1595 ++++
fhem/FHEM/lib/UPnP/sonos_empty.jpg | Bin 0 -> 7926 bytes
fhem/FHEM/lib/UPnP/sonos_input_default.jpg | Bin 0 -> 32034 bytes
fhem/FHEM/lib/UPnP/sonos_input_tv.jpg | Bin 0 -> 19616 bytes
fhem/FHEM/lib/UPnP/sonos_playlist.jpg | Bin 0 -> 5469 bytes
fhem/HISTORY | 1205 +--
fhem/MAINTAINER.txt | 651 +-
33 files changed, 39389 insertions(+), 2418 deletions(-)
create mode 100755 fhem/FHEM/00_SONOS.pm
create mode 100755 fhem/FHEM/21_SONOSPLAYER.pm
create mode 100644 fhem/FHEM/lib/Encode/transliterate_win1251.pm
create mode 100644 fhem/FHEM/lib/MP3/Info.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/CDDB_File.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/Cue.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/File.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/ID3v1.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/ID3v2.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/ID3v2_Data.pod
create mode 100644 fhem/FHEM/lib/MP3/Tag/ImageExifTool.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/ImageSize.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/Inf.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/LastResort.pm
create mode 100644 fhem/FHEM/lib/MP3/Tag/ParseData.pm
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields.pm
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/A_Dvor_k.comp
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/A_Schnittke.comp
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/D_Shostakovich.comp
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/G_Gershwin.comp
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/J_Brahms.comp
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/L_van_Beethoven.comp
create mode 100644 fhem/FHEM/lib/Normalize/Text/Music_Fields/Music_Fields-rus.lst
create mode 100644 fhem/FHEM/lib/UPnP/Common.pm
create mode 100644 fhem/FHEM/lib/UPnP/ControlPoint.pm
create mode 100644 fhem/FHEM/lib/UPnP/sonos_empty.jpg
create mode 100644 fhem/FHEM/lib/UPnP/sonos_input_default.jpg
create mode 100644 fhem/FHEM/lib/UPnP/sonos_input_tv.jpg
create mode 100644 fhem/FHEM/lib/UPnP/sonos_playlist.jpg
diff --git a/fhem/CHANGED b/fhem/CHANGED
index ad8d8856b..e9115141b 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,1496 +1,1497 @@
-# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
-# Do not insert empty lines here, update check depends on it.
+# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
+# Do not insert empty lines here, update check depends on it.
+ - added: SONOS and SONOSPLAYER to support Sonos Multiroom Audiosystems (Reinerlein)
- change: 64_ESA2000.pm: add batterystate
- added: 42_SMARTMON: Frontend to smartctl (maintainer: hexenmeister)
- - feature: 70_PushNotifier added line break in Messages (xusader)
- - feature: readingsGroup: added valuePrefix and valueSuffix attributes
- added collapsed/collapsible to visibility attribute
- added visibility command
- - bugfix: FB_CALLMONITOR: fixing not working company numbers
- reverse search for search.ch
- - bugfix: 70_PushNotifier repair set function (xusader)
- - bugfix: PRESENCE: fixing not working timer, when using set [...] statusRequest
- - bugfix: FB_CALLMONITOR: fixing reverse search for klicktel.de
- - feature: new module 52_I2C_MCP342x.pm added (klausw)
- - feature: SYSMON: read cpu temp on FritzBox
- - feature: ios7smallscreenstyle.css: table width based on screen width, new
- header, links colored in detail view
- - feature: new module FRITZBOX: controls Fritz!Box router and Fritz!Fon
- - feature: new module 52_I2C_EEPROM.pm added (klausw)
- - feature: readingsGroup: added ! flag,
- added visibility and cellStyle attributes
- - feature: new module 52_I2C_MCP23008.pm added (klausw)
- - feature: new module 98_logProxy.pm added (justme1968)
- - change: 66_ECMD: ReadyFn added (fixes issue under Windows)
- - change: 02_RSS: use a GUID in RSS; urlq source for img command
- - feature: 70_PushNotifier improve usebility, configuration without cURL (xusader)
- - bugfix: SYSMON: prevent empty line im log by userReadings
- - feature: 10_IT empfang (by bjoernh)
- - bugfix: PRESENCE: fix race condition, when delete disabled attribute and
- PRESENCE does not start to scan.
- - feature: OPENWEATHER: captures weather forecast from API of www.wetter.com
- - fhem 5.6 released
-
-- 2014-11-09 (5.6)
- - bugfix: FB_CALLMONITOR: fixing race condition of missing events while
- performing multiple calls
- - feature: PROPLANTA: captures weather forecast from web page www.proplanta.de
- - feature: 15_CUL_EM added attribute maxPeak (arnoaugustin)
- - bugfix: 10_IT changed "setstate" to avoid eventMap errors (arnoaugustin)
- - feature: new module 37_harmony.pm added (justme1968)
- - change: WMBUS: use _ instead of : as readings separator, better support for EnergyCam
- - feature: new module 23_KOSTALPIKO added (john)
- - feature: new module 98_HourCounter added, 99_UtilsHourCounter.pm added to contrib (john)
- - added: MYSENSORS: connect to serial or Ethernet MySensors Gateway
- - added: MYSENSORS_DEVICE: represent a MySensors sensor- or actor node
- - feature: global ATTR/DELETEATTR/MODIFIED events
- - feature: 55_GDS.pm - attr disable added
- - bugfix: SYSMON: prevent endless loop at startup with 'disable' attribute
- - feature: SYSMON: added FritzBox informations: DSL rate, DSLAM sync time, count of CRC an FEC
- - bugfix: SYSMON: unwanted characters in dsl info lines
- - change: 57_Calendar: process continuation lines, get/set syntax checks
- - bugfix: SYSMON: fix availability of cpu/kernel_max
- - bugfix: SYSMON: numeric check
- - change: 59_Weather: change icons for conditions 31, 34, 36
- - added: MQTT: connect fhem with mqtt
- - added: MQTT_BRIDGE: bidirectional mapping of existing fhem-device to mqtt-topic
- - added: MQTT_DEVICE: fhem-device that can be controlled by and publishes to mqtt
- - added: I2C_LCD: module to drive PCF8574T based LCD connected via I2C
- - added: I2C_DS1307: module to read time and date from DS1307 connected by i2c
- - added: OWX_ASYNC: asynchronous, non-blocking version of OWX for DS2480, DS9097 and FRM
- - feature FRM: work as physical IODev for I2C_XXX modules
- added: FRM_ROTENC: read rotary-encoders with FRM
- added: FRM_RGB: control rgb-leds with FRM
- added: FRM_STEPPER: control stepper-motors with FRM
- added: FRM_AD: analog input for FRM
- added: FRM_PWM: analog (pwm) output for FRM
- added: FRM_SERVO: control servo-motors with FRM
- - added: FRM_IN: digital input for FRM
- - added: FRM_OUT: digital output for FRM
- - added: FRM: connect Arduino with firmata to fhem
- - change: 57_Calendar: line parsing rewritten, care for missing
- modification timestamps
- - change: SYSMON: support userReadings in SYSMON_ShowValues
- - change: 59_Weather: change icon for condition clear to sunny.png
- - bugfix: 57_Calendar: calendar event anymore in modeAlarmed if started
- - feature: 57_Calendar: deal with non-existent end times
- - bugfix: SOMFY: fix non-working on/off-for-timer methods
- made positioning attributes optional
- - feature: SOMFY: support for exact positioning (one-time setup of run times required)
- support for parse()-function, requires newest CULFW.
- - feature: userattr is now also device attribute
- - feature: ZWave: Fibaro_FGRM222 MANUFACTURER_PROPRIETARY class
- - feature: sequence: reportEvents attribtue added
- - feature: SYSMON: RAM and SWAP Readings on OSX
- - change: 34_NUT: removed calculation of values. Use userReadings instead.
- removed autogeneration of attr model and serNo.
- - feature: SYSMON: improvement: support network information (IP, IPv6) on german linux
- - feature: Synology DiskStation NAS basic spk file creation
- - change: 34_NUT: readingFnAttributes added; creation of units deleted;
- changed attr asReadings to use comma instead of space
- - bugfix: SYSMON: crash on FritzBox
- - bugfix: 34_NUT: fixed possible buffer overflow, rewrote reception of data
- - bugfix: SYSMON: idletime on multicore, warnings
- - change: 09_CUL_FHTTK.pm: modified set option for sync, open and closed
- - feature: SYSMON: HTML/Text output for SYSMON-CloneDummies
- - feature: SYSMON: Method for titled HTML/Text output
- - added: 34_NUT.pm (maintainer: creideiki)
- - feature: SYSMON: added new reading: perl_version
- - feature: add toggle to SetExtensions (introduced for ZWave)
- - bugfix: plotEmbed FHEMWEB attribute (fix for an iOS8 bug)
- - feature: SHC: support for analog inputs (EnvSensor) and new device
- RGB_Dimmer added (rr2000)
- - feature: PRESENCE: MAC address support for mode fritzbox (by Markus M.)
- - bugfix: PRESENCE: fixing presence detection in mode fritzbox with new
- Fritz!OS 6.20 (by Markus M.)
- - feature: FB_CALLMONITOR: reverse-search attribute is now providing all
- possible values, which are selectable (via fhemweb_multiple.js).
- see commandref for all possible values
- - feature: speed up through caching of postproc and regex in ECMDDevice
- - bugfix: fixed handling of autocreation for 10_OWServer.pm
- - feature: option to cope with partial messages in ECMD/ECMDDevice
- - bugfix: SOMFY: add module to CUL client list, to set IODev automatically
- - feature: sequence: triggerPartial Attribute added
- - feature: 36_JeeLink: changed flash command to use fhem firmware
- directory (by HCS)
- - feature: 70_ENIGMA2: new attribute lightMode for old/slow devices
- limited restricted functionality
- - added: 98_CustomReadings.pm (maintainer: HCS)
- - change: 98_Text2Speech.pm: fix a problem with microseconds in time()
- by using mp3-templates or playing mp3 directly
- - feature: state definition and split attribute added to 66_ECMD,
- 67_ECMDDevice
- - FHEMWEB: JavaScripts and CssFiles attributes added
- - change: avoid updating weather information on get (59_Weather.pm)
- - change: removed noshutdown=0 for HTTP connections made in 57_Calendar.pm
- and 59_Weather.pm to address issues when FHEM is behind
- a web proxy
- - feature: update rewritten, restore added
- - feature: enabled JavaScript in 02_RSS to support WebViewControl
- - added: new module 36_WMBUS.pm (kaihs) Wireless M-Bus
- - feature: SYSMON: aded new plots (power infos for cubietruck)
- - feature: SYSMON: aded new readings for each network interface: ip and ip6
- - feature: SYSMON: aded power supply informations to the text output method
- - feature: SYSMON: power supply informations (ac, usb, battery)
- - feature: added 70_PushNotifier.pm
- - feature: 70_VIERA: Add parameter "HDMI1" - "HDMI4" for command remoteControl
- to select HDMI input directly.
- Add command "input" to select a HDMI port, TV or SD-Card
- as source
- - bugfix: LevelSender: Version 1.0.5: Could not get compiled by the Arduino
- IDE
- - feature: PRESENCE: new event "error" and "timeout" for state reading to
- indicate a non successful check
- - bugfix: 70_Jabber: fixed UTF8 encoding/decoding of messages
- - feature: 10_OWServer autocreate coexists with OWXXX modules (Boris &
- ntruchsess)
- - feature: added 36_Level.pm
- - feature: netatmo: added plz support for public stations
- - change: 70_ENIGMA2: keep reading for recordings up-to-date during standby
- - bugfix: 98_Text2Speech: - playing mp3files directly, eg: :ring.mp3:
- - playing any mp3file only text
- - feature: FB_CALLMONITOR: new reading "direction" to differentiate
- between incoming and outgoing call.
- - feature: FB_CALLMONITOR: all informational readings about a call will be
- triggered for each call event
- (call, ring, connect and disconnect)
- - feature: mailcheck: allow user and pssword as perl expression
- - feature: netatmo: support for public stations
- - feature: PRESENCE: new set command "power" to execute a FHEM command
- which can power on or off the checked device (given via attribute)
- - feature: readingsGroup: added valueColumn attribute
- - feature: readingsGroup: added ...,@,... argument format
- - feature: 52_I2C_PCF8574.pm: added attribute OnStartup
- 52_I2C_PCA9532.pm: added attribute OnStartup,
- added attribute OutputPorts as substitute for InputPorts
- 51_RPI_GPIO.pm: changed access to gpio via userspace by default
- (for BBB and Cubie), access via gpio utility as fallback
- - feature: PIONEERAVR: new attribute: checkConnection
- - change: do no parse empty lines in 57_Calendar.pm
- - bugfix: 10_SOMFY.pm: save enc-key and rolling-code as reading instead of
- attribute to prevent loss of control after FHEM restart.
- - feature: new module 10_SOMFY.pm to support Somfy RTS blinds
- - bugfix: 70_PIONEERAVR.pm: fix for STATE if connection is lost
- - bugfix: 37_SHC.pm: Move xml file under subdir lib, otherwise it won't be
- deployed during update
- - bugfix: 70_PIONEERAVR.pm: player commands are now available for more inputs
- "play" was not in the drop down list of available set commands
- check every 120s if the data connection to the Pioneer AV
- receiver is still up
- check if we get a reply from the Pioneer AV receiver not later
- than 3s after a command was sent
- fix for alias names of inputs
- more input presets (spotify, mhl, hdmi7, hdmi8), inputs are now
- queried from 1 - 59
- 71_PIONEERAVRZONE.pm: bugfix:logging, set input
- - change: 00_RPII2C.pm: hardware access changed to ioctl and syswrite/read
- SMBus module not needed anymore but still usable, see attribute
- useHWLib possibility to swap I2C-0 to P5 for Rev. B raspberries
- via attribute swap_i2c0 (not tested yet)
- - feature: 70_ENIGMA2: add attribute
- remotecontrol=[standard,advanced,keyboard]
- - bugfix: 70_PIONEERAVR.pm and PIONEERAVRZONE.pm: added "use SetExtensions",
- commandref updates fixed RC_layout
- - feature: new modules 70_PIONEERAVR.pm and PIONEERAVRZONE.pm
- - feature: FLOORPLAN has new style 7 to display commands only.
- - added: 89_HEATRONIC.pm (heikoranft)
- - bugfix: duration parsing of calendar events in 57_Calendar.pm fixed
- - feature: LightScene: added followDevices attribute
- - feature: non-blocking retrieval of data in 59_Weather.pm (Boris & herrmannj)
- - feature: new modules 37_SHC.pm and 37_SHCdev.pm added (rr2000)
- - feature: 36_EMT7110: added this new module
- - feature: 36_JeeLink: added initCommands attribute and flash command (by HCS)
- - feature: SYSMON: DECT Temperatur
- - bugfix: SYSMON: prevent some warnings
- - change: SYSMONremoved support for old format of filesystem reading
- - change: moved 98_openweathermap.pm to contrib
- moved 98_geodata.pm to contrib
- moved 55_BBB_BMP180.pm to contrib
- - change: honor DURATION in 57_Calendar.pm
- - bugfix: YAMAHA_AVR: don't let FHEM hang anymore, when the receiver
- is not reachable
- - change: 55_GDS.pm: use Blocking.pm for retrieval of large files
- - change: YAMAHA_BD: make YAMAHA_BD more performant by using non-blocking
- HTTP request (from HttpUtils.pm)
- - added: YAMAHA_BD: new set command trickPlay and more remoteControl
- commands. new reading trickPlay
- - added: new module 98_statistics.pm: hourly, daily, monthly, yearly
- statistics for min/avg/max/delta/duration of selected readings
- - added: new module 52_I2C_MCP23017.pm (klausw)
- - feature: Dashboard Configuration-Dialog for Tabs
- - feature: new module 33_readingsHistory.pm added (justme1968)
- - feature: new command copy (justme1968)
- - feature: enabled GIF, PNG and JPG as background image formats, enabled
- relative font size changed and perl specials for font size
- in 02_RSS.pm
- - feature: YAMAHA_AVR: new set commands and readings for controlling
- the sound output behavior (Enhancer, DSP and straight
- output) and sleep timer. For details, see commandref.
- - bugfix: configdb filemove not working after previous changes
- - change: IMPORTANT CHANGES TO configDB!
- changed: all files will be imported as binary
- changed: all existing textfiles will be moved to binary
- removed: command binfileimport
- added: sorted write and read of configuration data
- - bugfix: SYSMON: css class name (sysmon)
- - feature: option to determine the number of icons from WeatherAsHtml
- - feature: DbLog: (thanks to betateilchen)
- * added new global modules function $hash->{DbLog_splitFn}
- to let split the generated events by the own module
- into readingsname, value and unit
- * added SVG_sampleDataFn
- * added FW_detailFn
- - added: new module contrib/97_SprinkleControl.pm (tobiasfaust)
- - added: new module contrib/98_Sprinkle.pm (tobiasfaust)
- both modules helps to control the sprinkles in your garden
- --> take a look to the Wiki-Article
- http://www.fhemwiki.de/wiki/Bew%C3%A4sserungssteuerung
- - feature: FB_CALLMONITOR: new reading "missed_call_line" indicating
- the line number which received the missed call
- - feature: YAMAHA_AVR current* readings will be erased in case they
- not applicable
- - feature: YAMAHA_AVR currentTitle available for TUNER
- - feature: new Method: SYSMON_getValues([desired keys])
- - feature: JSONMETER: hourly statistics
- - feature: configdb: new command search
- - feature: LUXTRONIK2: estimation of electrical power consumption,
- considers time depending tariffs (activeTariff)
- - added: configDB functions for handling binary files
- - feature: 02_RSS.pm: alpha channel for colors
- - feature: JSONMETER: time depending tariffs added (activeTariff)
- - updated: codemirror version 3.24
- - feature: new module 35_SWAP_0000002200000008 for panstamp
- indoor multi sensor board with tft
- - added: new module 36_EC3000.pm (justme1968)
- - feature: IT: added support for set-extensions (justme1968)
- - added: new modules 10_Itach_IR and 88_Itach_IRDevice to
- use Itach WF2IR or IP2IR to be used as universal
- infrared remotecontrol
- - added: new module 51_I2C_TSL2561.pm (kaihs)
- - added: new module 02_FRAMEBUFFER.pm (kaihs)
- - feature: SYSMON: many FritzBox specific readings:
- wlan_state, wlan_guest_state, internet_ip, internet_state,
- night_time_ctrl, num_new_messages, fw_version_info
- - feature: configDB: added command fileshow
- - feature: configDB: added commands filelist and filedelete
- - feature: configDB: added commands fileimport and fileexport
- - feature: 36_JeeLink: added LaCrosse, ETH200comfort, CUL_IR,
- HX2272 and FS20 modes from ulli
- added AliRF
- added Clients and MatchList attribute
- - feature: 02_RSS.pm: HTTPS enabled, png as image type added, autofreshing
- HTML page with image map added
- - feature: ECMD and ECMDDevice completely reworked, see
- http://forum.fhem.de/index.php/topic,21515.0.html
- - feature: new layout command rect and new attribute bgcolor for RSS
- - added: new module 55_weco.pm (betateilchen)
- - added: new module 70_Jabber.pm (BioS)
- - bugfix: Dashboard: use "loadScript" for load JavaScripts
- - feature: new module 00_NetzerI2C.pm, 51_Netzer.pm added (klausw)
- - feature: new command reload for 57_Calendar.pm forces cleanup
- - changed: small update to the documentation of recurring events in
- 57_Calendar.pm
- - bugfix: PRESENCE: fixing wrong presence state for mode lan-ping
- when device is unreachable
- - feature: 10_EnOcean: new EEP profiles: D2-01-00 - D2-01-11 (VLD)
- - changed: 00_TCM/10_EnOcean: learning mode (teach-in / teach-out) changed
- and extended
- - added: new module 10_UNIRoll.pm (c-herrmann)
- - feature: cloneDummy: new attribut cloneIgnore
- - feature: cloneDummy: new optional parameter [reading]
- - bugfix: Dashboard: dashboard_showfullsize not applied in room "all"
- - feature: new module 98_PID20.pm added (John / betateilchen)
- - feature: new module 00_RPII2C.pm, 52_I2C_PCA9532.pm, 52_I2C_PCF8574.pm,
- 52_I2C_SHT21.pm added (klausw)
- - change: module 71_LISTENLIVE.pm moved to contrib
- module 23_WEBTHERM.pm moved to contrib
- - change: module 98_PID.pm moved to contrib as preparation for
- next major replace. Replaced by 98_PID20.pm (John/betateilchen)
- - change: openweathermap: added set command "clear"
- - change: MAX: interpret SetTemperature command from WT to HT
- - feature: MAX: retry packets 3 times if missing an ack
- - feature: new module 98_cloneDummy.pm added (Joachim)
- - feature: STACKABLE_CC (busware.de device for the RPi) added
- - feature: configdb export/import added for data security (betateilchen)
- - feature: new module 38_netatmo.pm added (justme1968)
- - change: 09_CUL_FHTTK.pm: clean up code to avoid "Use of uninitialized
- value in concatenation.."
- - change: 09_CUL_FHTTK.pm: extend module list to FHT80TF and FHT80TF-2
- and update of documentation (matscher)
- - feature: disabledForIntervals attribute added for at/notify/watchdog
- - feature: jsonlist2 added, jsonlist is deprecated.
- - feature: DbLog: Added new function : ReadingsVal/ReadingsTimestamp
- - feature: Text2Speech: added new attribute TTS_VolumeAdjust
- - feature: new module 70_PHTV.pm (loredo)
- - feature: JSONMETER: added statistic functions
- - feature: LightScene: added scene editor from UliM
- - feature: SYSMON: New method: SYSMON_ShowValuesText
- - feature: configDB.pm use sql database instead of fhem.cfg (betateilchen)
- - feature: new module 98_geodata collect location based data (betateilchen)
- - feature: 98_pilight: Added support for Elso protocol
- - feature: readingsGroup: added sortDevices attribute
- - feature: ENIGMA2: new reading 'recordings', new command record
- - change: ENIGMA2: rewrite for NonBlocking
- - feature: SYSMOM: new Plot + Doc
- - feature: Dashboard: Custom CSS Attribute. Max. 7 Tabs.
- - bugfix: Dashboard: Change Groupcontent sorting. Fix Bug that affect
- new Groups.
- - feature: 10_EnOcean: UTE protocol implemented
- - feature: 00_TCM: new command teach
- - bugfix: SYSMOM: uninitialized value warning on FritzBox
- - added: 09_CUL_FHTTK.pm: german module documentation (matscher)
- - feature: readingsGroup: allow FHEMWEB slider and dropdown menus as commands
- - feature FB_CALLMONITOR: new attribute "disable" to
- disable FB_CALLMONITOR
- - feature: YAMAHA_BD: new attribute "disable" to disable cyclic status
- updates of player
- - change: 09_CUL_FHTTK.pm: added event-on...readings and event-min-interval
- updated to reading update mechanism (matscher)
- - feature: Dashboard: Groupstitel now can show icons,
- Backbutton in Fullsize-Mode
- - deleted: 51_BBB_WATCHDOG.pm - not really needed
- - bugfix: DbLog: adding ShutdownFunction
- - feature: YAMAHA_AVR: new attribute "disable" to disable cyclic status
- updates of receiver
- - feature: LightScene: added attribute switchingOrder
- - added: new module 00_THZ.pm (immiimmi)
- - added: new module 98_HTTPMOD.pm (stefanstrobel)
- - added: new module 51_BBB_WATCHDOG.pm (betateilchen)
- - bugfix: SYSMON: Fix: uninitialized variable
- - feature: new modul 73_MPD added (Wzut)
- - bugfix: SYSMON: Fix: root fs with /dev/mapper
- - feature: Dashboard: The display of the dashboard can be limited to a
- defined FHEMWEB. Change view of readingroups
- - feature: new module 70_JSONMETER to read obis compatible data in json
- format from so called smart meters for electricity, gas or heat
- - feature: new modules 10_RESIDENTS, 20_ROOMMATE and 20_GUEST added (loredo)
- - feature: LUXTRONIK2: attribute 'doStatistics' calculates boiler gradients
- - feature: GEOFANCY: support both apps, Geofency.app and Geofancy.app
- - feature: LightScene: added attribute lightSceneRestoreOnlyIfChanged
- - bugfix: SYSMON: Fix: CPUTemp & BogoMIPS for utilite-Box.
- - bugfix: PRESENCE: fix present-check-interval to be equal with normal
- check-interval if not set in define statement and not 30 sec.
- - feature: DASHBOARD: Tabs can show an icon.
- - bugfix: DASHBOARD: dashboard_showfullsize only in DashboardRoom.
- Fix showhelper Bug on lock/unlock. The error that after a trigger
- action the curren tab is changed to the "old"
- activetab tab has been fixed.
- - bugfix: SYSMON: Filesystems (absent medium)
- - feature: FLOORPLAN-menu-items can get icons attached by new
- attribute fp_roomIcons
- - feature: FLOORPLAN-specific icons can now be assigned by just
- creating a folder under fhem/images with the flooplan-name
- - feature: DASHBOARD: Tabs can set on top, bottom or hidden.
- - bugfix: SYSMON: another format for ifconfig output
- - feature: DASHBOARD: Use longpoll to update content.
- rowcentercolwidth can now be defined per column.
- Dashboard can hide FHEMWEB Roomliste and Header =>
- Fullsizemode.
- - bugfix: SYSMON: null reading for absent mount points
- - feature: DbLog: jokers "%" in device/reading definition are now possible
- - feature: SYSMON: new CPU Statistics and Plots
- - feature: changed 10_OWServer.pm and 11_OWDevice.pm to use
- NOTIFYDEV (justme1968)
- - feature: LightScene: added setcmd command
- - feature: DASHBOARD: Dashboard get Tabs. Redesign saving of Group
- positioning.
- - bugfix: SYSMON: Log Warnings, unnoetige Readings erkenen und entfernen
- - feature: LUXTRONIK2: Setting of controller parameter and internal clock
- - feature: new module 71_YAMAHA_BD.pm to control Yamaha Blu-Ray
- players over network.
- - bugfix: DbLog: fix for plotfork
- - bugfix: SYSMON: filesystems may be wrong on some systems
- - feature: new module 98_pilight.pm added (andreas-fey)
- - change: LUXTRONIK2 - made compatible with current developer guidelines
- (Blocking.pm, reading update mechanism)
- - feature: readingsGroup: added icons and links/commands
- - feature: new module 98_Text2Speech.pm added (Tobias Faust)
- Google Translator Engine or ESpeak can be used
- - feature: YAMAHA_AVR: define separate on and off status intervals for
- cyclic status updates
- - feature: Visualizations (Plots) for SYSMON added
- - feature: new module 42_SYSMON.pm added (hexenmeister)
- - feature: YAMAHA_AVR: new readings for radio stations, current title
- and more. see commandref for more details.
- - feature: new module 32_withings.pm added (justme1968)
- - bugfix: PRESENCE: fixing user detection on FritzBox!
- - feature: new module 38_CO20.pm added (justme1968)
- - feature: new module 98_GEOFANCY.pm added (loredo)
- - feature: new module 70_XBMC.pm added (dbokermann)
- - feature: new module 51_RPI_GPIO.pm added (klausw)
- - bugfix: Dashboard: fixed bug identification an existing Weblink.
- fixed bug dashboard_sorting check. Buttonbar can now placed on
- top or bottom of the Dashboard. Dashboard is always edited out
- the Room Dashboard.
- - bugfix: VIERA: fixed bug related to set command remoteControl
- - bugfix: ENIGMA2: improved compatibility for Fritzbox and old
- Webif versions
- - feature: readingsGroup: process events only if visible in browser,
- allow for line breaks in multi-reading lines
- - feature: FLOORPLAN: Style4 (S300TH specific) now keeps its formatting
- even with longpoll; Text "desiredTemperature" will now
- be eliminated - for MAX devices.
- - feature: HCS has now MAX Thermostat support
- - change: integrated OWServer/OWDevice nonblocking and random start
- time patches (justme1968 & Boris)
- - feature: Add new module Dashboard
- - change: ONKYO_AVR: transfer command database into separate packet
- ONKYOdb.pm
- - feature: ENIGMA2: bouquet support e.g. for named channels
- - feature: Add new module ONKYO_AVR
- - feature: SYSSTAT: allow (remote) monitoring via snmp, support
- for monitoring windows systems and synology system temperature
- - feature: New module LINDY_HDMI_SWITCH.pm added
- - change: ENIGMA2: improved logging, default attributes for webCmd and
- devStateIcon
- - feature: ENIGMA2: support for option channels
- - feature: mailcheck: decode non ascii subjet to utf-8, verify gpg signatures
- - feature: PRESENCE: "statusRequest" command for lan-bluetooth mode
- (collectord >= 1.4, presenced >= 1.1 required)
- - feature: PRESENCE: new collectord package
- - feature: devspec: removed range, added :FILTER and more general search
- - feature: HUEBridge,HUEDevice: support for groups added
- - feature: YAMAHA_AVR: new argument "toggle" for mute command
- - feature: FB_CALLMONITOR: replace & to & at reverse search
- - feature: new module 33_readingsProxy to make (a subset of) a reading
- from one device available as a new device. can be used to
- separate channels from 1-wire, EnOcean or SWAP multichannel
- devices (by justme1968)
- - change: improvements for OWDevice and OWServer (justme1968)
- - feature: new attribute resolution for 1-wire temperature readings
- (justme1968 & Boris)
- - feature: new layout commands moveto, moveby and relative positioning
- in 02_RSS.pm (Betateilchen & Boris)
- - feature: FHEMWEB column attribute
- - feature: new layout commands halign, valign, condition in 02_RSS.pm
- (Betateilchen & Boris)
- - bugfix: PRESENCE: Fix nonworking initialization in mode "lan-bluetooth"
- - bugfix: fhem.pl: write-select to avoid blocking in inform/Event Monitor
- - bugfix: fix issue with DST changes in 57_Calendar.pm
- - feature: new module 36_LaCrosse.pm for LaCrosse IT+ temperature and
- humidity sensors with a JeeLabs JeeLink as RF modem.
- The matching JeeNode sketch can be found in
- .../36_LaCrosse-LaCrosseITPlusReader.zip (by ohweh&justme1968)
- - feature: YAMAHA_AVR: new attribute request-timeout.
- - bugfix: YAMAHA_AVR: fix missing greater-than sign. Use different
- Control-Tag name for RX-Vx75 series
- - bugfix: PRESENCE: fixing not working re-initialization when
- disabled attribute is set to 0 in lan-bluetooth mode
- - feature: LightScene: added attribute lightSceneParamsToSave for
- device specific configuration of config"
- - feature: readings type added to weblink (justme1968)
- - feature: offset and monotonic added to userReadings modifier (justme1968)
- - feature: HUEDevice: support SVG icons for LWB001 living whites bulb
- - feature: HUEDevice: support more than one bridge
- - feature: updateInBackground global attribute
- - feature: SYSSTAT: allow stateFormat
- - feature: Module 70_VIERA supports now module 95_remotecontrol with own
- layout for VIERA TV
- - feature: InternalVal function added (like ReadingsVal)
- - feature: new module speedtest to monitor internet connection speed with
- speedtest-cli
- - feature: new module "remotecontrol" to display a graphical remotecontrol
- for any device
- - feature: HUEDevice: new attribute color-icons to colored svg icons
- - feature: FHEMWEB: longpoll is default now, longpollSVG (default off) added
- - feature: HUEDevice: allow usage of openautomation svg icons
- - feature: FHEMWEB: svg icons / iconPath / www/images/openautomation added
- - feature: FHEMWEB: SVGcache attribute & clearSvgCache set command added
- - feature: SYSSTAT: allow (remote) monitoring raspberry pi on cpu frequency
- - feature: MANTAINER.txt added
- - feature: PRESENCE: new mode "shellscript" to use own
- scripts or binaries for presence recognition
- - feature: YAMAHA_AVR: new set command to select scenes
- - feature: PRESENCE: new attribute ping_count
- - feature: userReadings may have a filter
- - feature: HUEBridge: allow starting of bridge firmware update
- - change: EnOcean: profile PM101 changed, old profiles FAH, FBH, FTF, SR04
- removed
- - feature: TCM: new attr blockSenderID:
- Block receiving telegrams with a TCM SenderID sent by repeaters
- - feature: TCM: For TCM120 Transceiver now the transmission of RPS and 4BS
- commands supported
- - feature: EnOcean: Now all RPS / 1BS profiles, more than 90 4BS profiles and
- some manufacturer specific profiles are supported
- - feature: EnOcean: profiles (subType) are updated from EEP 2.1 to EEP 2.5
- - feature: FHEMWEB attribute roomIcons added
- - feature: SYSSTAT: optionaly calculate geometric average of last 4
- temperature values
- - feature: weblink details screen can be used to edit .gplot files
- - feature: eventTypes module added, to help with FileLog details screen
- - feature: FB_CALLMONITOR: new reverse search provider dasschnelle.at for
- reverse search of austrian telephone numbers
- - bugfix: event-on-change-reading in combination with event-change-interval
- - change: HUEDevice: allow color preset buttons in webCmd
- - feature: SYSSTAT: allow (remote) monitoring raspberry pi on chip temperature
- - feature: HUEDevice: use webCmdFn for colorpicker
- added jscolor for colorpicker
- - feature: FHEMWEB: module specific summaryFn/detailFn + defineable webCmdFn
- - change: ESA2000: adapted device detection , rename readings
- - change: stucture triggers on each change, see event-on-change-reading
- - feature: PRESENCE: new mode "function" to use own perl functions for
- presence checks
- - bugfix: fixing not-working FHEM restart, when a PRESENCE check is running
- - bugfix: fixing memory overflow when "list" a PRESENCE definition
- - bugfix: fixing dead PRESENCE definitions in case of timeouts
- - bugfix: update: error while updating single files fixed. (M. Fischer)
-
-- 2013-04-08 (5.4)
- - feature: updatefhem will be silently converted to update
- - feature: FHEMWEB: save button replaced with the menu entry "Save config"
- - feature: notify supports $NAME/$EVENT/$EVTPART0/etc. @/% is deprecated.
- - feature: 93_DbLog extended to give more functions for the charting frontend.
- This includes new queries for raw table data and also statistics,
- which get sum/max/min/avg values from the database.
- Documentation has been updated.
- - feature: new module 31_LightScene to save and restore the state of a
- group of lights and other actors
- - feature: VIERA module added (by teevau)
- - change: FHEMWEB: the first webCmd argument is no longer used by the
- state-icon, this can be implemented by the new devStateIcon
- - change: 30_HUEDevice: allow autodetection of bridge with hue portal
- services
- - feature: THRESHOLD Module by Damian
- - change: 30_HUEDevice: use new devStateIcon feature to show device color
- in room overview
- - feature: added example Setup SQL and configuration for SQLite
- - change: modified MySQL Setup SQL to use 512 characters in EVENT column
- - feature: added new Javascript Frontend based on ExtJS (by Johannes)
- - feature: new modules 30_HUEBridge and 31_HUEDevice for phillips hue and
- smartlink devices (by justme1968)
- - change: SYSSTAT: allow remote monitoring by ssh
- - change: SYSSTAT: allow less frequent updates for diskusage
- - feature: new module 32_SYSSTAT to monitor system load and disk usage
- on linux FHEM hosts (by justme1968)
- - feature: new Module 73_PRESENCE to make automatic presence detection of
- mobile phones or other mobile devices (like tablets) via ping or
- bluetooth checks (by M. Bloch)
- - feature: new Module 98_Heating_Control to switch heatsinks automaticly
- with a weekly profile (by D. Ortmann / T. Faust)
- - feature: new Module 93_DbLog.pm for logging events into Databases.
- Generating Plots with weblinks are supportet.
- (by B. Neubert / T. Faust)
- - feature: new Module 59_HCS.pm for monitoring heating valves (FHT, HM-CC-VD)
- to contral a central heating unit. I thank Benjamin for his
- support! (M. Fischer)
- - feature: new Module 72_FB_CALLMONITOR for receiving telephone call events
- (Markus)
- - feature: new Module 71_YAMAHA_AVR.pm for controlling Yamaha AV receivers
- over network (by Markus)
- - feature: optional second parameter to fhem() to make it silent
- - feature: autoloading commands, XmlList/etc renamed from 99 to 98.
- - feature: FHEMWEB returns external files in chunks to save memory
- - feature: commandref.html splitted: documentation is now appended to the
- modules.
- - change: introduced readingsBulkUpdate, readingsSingleUpdate
- - change: added GPLv2 licensing information
- - feature: FLOORPLAN added fp_setbutton attribute
- - bugfix: FHEMWEB slider with min > 0
- - change: FHEMWEB CORS moved to options
- - change: FHEMWEB closing old TCP connections
- - change: FHEMWEB added "Associated with" to detail-screen (Uli)
- - change: FHEMWEB added ETag headers (Matthias)
- - change: FHEMWEB devStateIcon added
- - change: HOWTO auf deutsch (ilmtuelp0815)
- - change: 98_update.pm due a (probable) bug in perl, modules are no longer
- loading automatically. A restart is required now! (M. Fischer)
- - feature: 98_update.pm saves the statefile before an update (M. Fischer)
- - feature: FHEMWEB longpoll reconnect (Matthias)
- - bugfix: rename may overwrite other devices
- - feature: FLOORPLAN longpoll (Matthias)
- - feature: support for recurring events added in 57_Calendar.pm (Boris)
- - feature: added support for OWL CM119,CM160 and CM180, energy sensors in
- TRX_WEATHER using RFXtrx433 (Willi Herzig)
- - feature: added support for KD101 smoke sensor (also set alert and pair) in
- TRX_SECURITY using RFXtrx433 (Willi Herzig)
- - change: changed dewpoint to work with event-on-change-reading and
- technoline TX3TH (Willi Herzig)
- - feature: new command fheminfo. Shows system informations. (M. Fischer)
- - feature: added support for UV sensors in TRX_LIGHT using RFXtrx433 (Willi
- Herzig)
- - feature: added on-till and on-timer for set in TRX_LIGHT using RFXtrx433
- (Willi Herzig)
- - feature: generate devices with hexcodes as state for unknown types in
- TRX_ELSE using RFXtrx433 (Willi Herzig)
- - feature: new modules 10_OWServer.pm and 11_OWDevice.pm to interface with
- OWFS
- - feature: stateFormat (readingsFn modules) and showInternalValues attributes
- - feature: new readingsFn modules: FS20 CUL_WS HMS CUL_EM CUL_TX EnOcean ZWave
- - change: BS, USF1000, ECMDDevice, Weather, dummy migrated to readingsFN
- (Boris)
- - feature: telnet client mode
- - bugfix: FHEMWEB longpoll misses initial state change (HM: set_on vs. on)
- - change: 20_OWFS.pm, 21_OWTEMP modules flagged as "deprecated". These
- modules will be removed in a future release. Use OWServer /
- OWDevice instead. (M. Fischer)
- - feature: a lot of new features and known 1-wire slaves to OWServer /
- OWDevice added (M. Fischer)
- - feature: set-extensions (additional set commands) for FS20, EnOcean, ZWave
- - feature: added new command 'notice'. (M. Fischer)
- - change: update supports the display and confirmation of system messages
- via the new notice command (M. Fischer)
- - feature: added new set commands and basicauth to 49_IPCAM.pm (M. Fischer)
- - feature: userReadings
- - feature: average supports more than one value in combined readings (T:x H:y)
- - feature: FHEMWEB serves arbitrary files from the www directory
- - feature: FB_checkPw now works with a distinct fritzbox user
- - bugfix: floorplan-correction for readings with longpoll. Requires local
- change in css!
- - feature: floorplan added js-extension from Dirk
- - feature: hour resolution in SVG
- - feature: ZWave support for MULTI_CHANNEL class
- - feature: FHEMWEB: old-dir-support removed, image-indexing rebuilt,
- smallscreen/touchpad moved to stylesheetPrefix, menuEntries
- added, Extend devStateIcon, js setting of attr values in detail
- screen, live slider update in detail and room view
- - feature: added support for third-party packages to 98_update.pm (M. Fischer)
- - feature: FBAHA/FBDECT for FRITZ!DECT devices
- - feature: event-min-interval Attribute
-
-- 2012-10-28 (5.3)
- - feature: added functions trim, ltrim, rtrim, UntoggleDirect,
- UntoggleIndirect
- - feature: added functions FB_mail, FB_WLANswitch
- - rework: CUL_HM reworks with respect to protocol. additions for several
- devices and commands
- - feature: rfmode supports to listen to MAX if fw>1.46, 00_CUL.pm (Jens)
- - feature: Status and length on cmdStack in webinterface for 10_CUL_HM
- - feature: devicepair in 10_CUL_HM.pm supports unset
- - feature: devicepair for single Button in 10_CUL_HM.pm (by MartinP)
- - feature: new Modules 75_MSG.pm, 76_MSGFile.pm and 76_MSGMail.pm (by
- Ruediger)
- - feature: new Module 59_Twilight.pm to calculate current daylight
- - feature: internal NotifyOrderPrefix: 98_average.pm is more straightforward
- - feature: the usb command tries to flash unflashed CULs on linux
- - feature: FHEMWEB: jsonp support, .holiday and .cfg added to Edit Files
- - feature: SVG: filled area support, some ls/lw fixes
- - feature: WOL (wake on lan) module added (by Matthias)
- - feature: additional groups from /etc/groups are applied (Christopher)
- - feature: updatefhem backup is using tar+gzip now
- - feature: EIB: introduce Get, interpret received values upon defined model
- (by datapoint types) (Maz)
- - feature: NetIO230B module by Andy
- - feature: Retaining configfile comments (not within a define statement)
- - feature: EnOcean PM101 by Ignaz
- - feature: FHEMWEB redirectCmds attribute added
- - feature: CUL_TX minsecs attribute (by Arno)
- - feature: webCmd in smallScreen added
- - feature: TRX modules by Willi
- - feature: FHEMWEB icons (by Joerg)
- - feature: FHEMWEB console (same as inform timer)
- - feature: remove dependency on Google::Weather, major rewrite (Boris)
- - feature: started experimental interface implementation (fhem API v2)
- (Boris)
- - feature: sleep issued in at/notify/etc is not blocking fhem anymore
- - feature: dummy got a setList attribute
- - feature: new module 02_RSS.pm
- - feature: at attribute alignTime added
- - feature: FHEMWEB attribute values via dropdown, slider for dimmer
- - feature: new attribute group for FHEMWEB (Boris)
- - change: 11_FHT.pm, 50_WS300.pm, 59_Weather.pm migrated to readingsUpdate
- mechanism (Boris)
- - change: 59_Weather.pm migrated from Google to Yahoo Weather API (Boris)
- - change: updatefhem modifications to support a clean install of fhem and
- pgm2 installation, see commandref.html (M. Fischer)
- - change: FHEMWEB support for the new www/pgm2 directroy added (M. Fischer)
- - change: Makefile support for for the new www/pgm2 directroy and new
- targets backup and uninstall added. More verbose output. (M. Fischer)
- - change: backup separated from updatefhem to a new command (M. Fischer)
- - feature: new command backup added (M. Fischer) new global attribute
- added new global attribute added new global
- attribute added
- - feature: new module 57_Calendar.pm (Boris)
- - feature: new parameter for updatefhem added (M. Fischer) new
- global attribute added (M. Fischer)
- - feature: optional telnet password added / telnet port is optional
- - feature: holiday returns all matches, not only the first.
- - change: CULflash separated from updatefhem to a new module (M. Fischer)
- - feature: time and internet helper routines added to fhem.pl (Boris)
- - change: separating common functions used by the FHEM modules into
- *Utils.pm files from fhem.pl
- - feature: portpassword and basicAuth may use evaluated functions
- - feature: motd with SecurityCheck added
- - feature: telnet module added, attr global port moved. allowfrom changed.
- - feature: FhemUtils/release.pm for the new update process added. (M.
- Fischer)
- - bugfix: correct one-time relative at commands after reboot
- - feature: ZWave added
- - feature: module IPCAM added. (M. Fischer)
- - feature: module HTTPSRV added (Boris)
- - feature: module FLOORPLAN added (Uli Maass)
- - bugfix: FHEMWEB: weblink with group attribute is shown together with other
- elements
- - feature: FHEMWEB: timepicker added
- - feature: FHEMWEB: support for modul specific icons added (M. Fischer)
-
-
-- 2011-12-31 (5.2)
- - bugfix: applying smallscreen attributes to firefox/opera
- - feature: CUL_TX added (thanks to Peterp)
- - feature: TCM120/TCM310 + EnOcean parser added
- - feature: eventMap enhanced
- - bugfix: enabled logging for 59_Weather.pm (Boris)
- - feature: language selection for 59_Weather.pm (Erwin)
- - feature: .gplot files renamed from type to content
- - bugfix: FS20 on-for-timer error reporting only in the logfile
- - bugfix: FHEM2FHEM should work with CUL again, after syntax change
- - feature: CUL directio mode (No Device::SerialPort needed)
- - feature: FritzBox 7270 ZIP file
- - bugfix: prevent fhem from stalling if telnet times out in 66_ECMD.pm
- - feature: added postproc ability to classdef in 66_ECMD.pm (Boris, Heinz)
- - feature: FHEMWEB longpoll mode, small fixes, tuned smallscreen mode
- - feature: average module added
- - change: moved the berliOS CVS repository to a sourceforge SVN repository
- - feature: all FHEM modules have now a subversion id.
- - bugfix: new perl compiled for the FritzBox 7270
- - feature: regexp1WontReactivate Attribute added
- - bugfix: XmlList special handling
- - bugfix: CUL_WS rain sensor corr1 fix
- - feature: FHEMWEB stylesheet attribute repaced with stylesheetPrefix
- - feature: notify attribute forwardReturnValue
- - change: move JsonList from contrib to main-modules
- - change: JsonList output optimized and more structured
- - feature: FHEMWEB save button, smallscreen first screen fix
- - feature: FHEMWEB encoding is now UTF-8, alias attribute is respected
- - change: HTTPS certs directory moved from cwd into modpath
- - feature: shutdown parameter restart added
- - feature: usb scan/create command added (part of autocreate).
- - feature: SaveAs added to FHEMWEB Edit-Files
- - feature: EnOcean ElTako dimmer by Marc.
- - feature: fhem is started as user fhem on the FB7390
-
-
-- 2011-07-08 (5.1)
- - feature: smallscreen optimizations for iPhone
- - feature: FHT8V rewrite (and moved from contrib into the FHEM directory).
- - feature: PID rewrite (and moved from contrib into the FHEM directory).
- - feature: FHEM2FHEM module
- - bugfix: CUL get should not digest foreign events (fhtsoftbuffer)
- - bugfix: S300TH sanity check won't allow negative temperatures.
- - feature: decode CUL uptime
- - feature: USB doc changes, FHZ initFS20_02/stopHMS parameters by Andreas.
- - feature: CUL_HM for some HomeMatic devices.
- - bugfix: HTML-Syntax check of the pgm2 output and documents (*.html)
- - feature: added date alias for FHT80b (Boris)
- - feature: attr may be a regexp (for CUL_IR)
- - feature: Homepage moved from koeniglich.de/fhem to fhem.de
- - feature: eventMap attribute
- - feature: 64_ESA2000 added (by STefan/Gerd)
- - feature: new modules 66_ECMD.pm and 67_ECMDDevice.pm for ethersex-enabled
- devices and alike.
- - bugfix: serial port setting on Linux broken if running in the background
- - feature: IPV6 support, FHEMWEB basicAuth and HTTPS support
- - feature: createlog added to the autocreate module
- - feature: contrib/tcptee.pl added
- - feature: HMLAN support
- - feature: Fritzbox7390 image
- - feature: pgm2 tablet support, included into the default configuration
- - feature: TUL/EIB Support (by Maz)
- - feature: updatefhem/CULflash
- - feature: $value{} => Value(), $oldvalue => OldValue()/OldTimestamp()
-
-
-- 2010-08-15 (5.0)
- - **NOTE*: The default installation path is changed to satisfy lintian
- - feature: KM271
- - bugfix: 99_SUNRISE_EL endless loop bug
- - feature: CUL: optional baudrate spec in definition
- - feature: CUL: sendpool attribute
- - feature: CUL_HOERMANN module added
- - bugfix: DST change: absolute at and relative sunrise fix
- - feature: FHEMWEB javascript additions for SVG plots (click on lines/labels)
- - feature: FHEMWEB smallscreen attribute (for smartphones)
- - bugfix: the internal fhem() used in perl oneliners does not return a value
- - feature: Dimmer function of X10 module changed to match FS20
- - feature: allow only meaningful readings (fill level > -5%) in USF1000
- - feature: device attr links in commandref.html
- - bugfix: make BS known to CUL to avoid lost messages if both FHZ1300 and CUL
- are connected, adjust matching rule
- - feature: Copy&Paste in SVG
- - feature: Debian/Ubuntu Package. Install-path changes to satisfy lintian
- - feature: Allnet 3076/4027/4000T
- - feature: RFXCOMM Module for Oregon Weatherstations
- - feature: Davis VantagePro2
- - feature: ELV USB-WDE1
- - feature: addvaltriggers CUL attribute for adding RSSI as a trigger
- - feature: CUL_WS sanity check for large temp differences.
-
-- 2010-03-13 (4.9)
- - bugfix: changed the fhem prompt from FHZ> to fhem>
- - bugfix: CUL_RFR fixes (chaining RFR's should work)
- - bugfix: Path in the examples fixed (got corrupted)
- - bugfix: PachLog fixes from Axel
- - bugfix: HOWTO/Examples revisited for correctness
- - bugfix: INITIALIZED, DEFINED, RENAMED, DELETED triggers
- - feature: image weblinks from Stefan
- - feature: OWFS support for passive Devices e.g. DS9097 (see commandref.html)
- - bugfix: OWFS crash fhem with PGM2/3, xmllist (M.Fischer)
- - bugfix: OWTEMP Defining a device without OWFS now fails (M.Fischer)
- - bugfix: 21_OWTEMP.pm missing trigger fo notify/filelog (M.Fischer)
- - feature: 99_getstate.pm get state from S555TH now (M.Fischer)
- - feature: pgm3: automatic support for CUL_WS (S300TH) added (MartinH)
- - bugfix: 21_OWTEMP.pm missing space within state logging (M.Fischer)
- - bugfix: 21_OWTEMP.pm interval fixed (M.Fischer)
- - bugfix: 21_OWTEMP.pm rewrite with errorcontrol and demo mode (M.Fischer)
- - feature: ignore attribute
- - bugfix: [pgm3] table-format on Android-Browser optimized
- - feature: [pgm3] Skinable - change the colors.
- - feature: [pgm3] Rooms possible for Webcam and Google-Weather
- - bugfix: dummy/structure was listed twice in list and xmllist
- - feature: 11_FHT.pm added new readings for warnings on battery, lowtemp,
- window and windowsensor (M.Fischer)
- - feature: autocreate.pm (create undefined RF devices, logs and plots)
- - feature: on-for-timer added for X10 modules (Boris)
- - bugfix: pgm3: Better check of availability of google-weather (MartinH)
- - feature: pgm3: DBLog added for everything except UserDefs
- (Gerhard Pfeffer / MartinH)
- - feature: pgm2 style changes, SVG in background, optional compression
-
-- 2009-11-28 (4.8)
- - bugfix: loosing data when sending FS20 messages in a group
- - bugfix: better handling of disconnected CUN
- - feature: softfhtbuffer added to CUL
- - bugfix: pgm3: Pulldown-Menu FHTDEV with error-check (MartinH)
- - feature: duplicate buffer added for multi-cul/-fhz setups
- - feature: 20_OWFS.pm for 1-Wire via OWFS added (Martin Fischer)
- - feature: 21_OWTEMP.pm for 1-Wire Digital Thermometer added (Martin Fischer)
- - feature: CUL_FHTTK from Kai
- - feature: pgm3: Google-Weather, Battery-Check, Log-View added (MartinH)
- - feature: CUL_RFR (RF_ROUTING) added
- - feature: Command save retains now the order of the old config file
- - feature: List parameter added (list .* RFR_MSGCNT)
-
-- 2009-10-23 (4.7)
- - bugfix: Reattached corrupted CUL device caused uninitialized message
- - bugfix: CUL/HMS changes, HMS cleanup
- - bugfix: EM/EMWZ/EMGZ set changed to work in FHEMWEB
- - bugfix: Avoid unitialized in xmllist for corrupt readings, reporter Boris
- - bugfix: Add binmode to 01_fhemweb.pm for windows
- - bugfix: Uniform check for windows, enable CUL for windows.
- - bugfix: CUL/HMS parsing patches from Peter
- - bugfix: Fixes for Windows by Klaus
- - bugfix: Another "rereadcfg" bugfix
- - feature: Update to the current (1.27) CUL FHT interface
- - feature: suppress inplausible readings from USF1000
- - feature: get time, fwrev, set reopen for CM11 (Boris 2009-09-12)
- - bugfix: FHZ_ReadAnswer bugfix for Windows (Klaus, 20.8.2009)
- - feature: CUL: device access code reorganized, TCP/IP support added (CUN)
- - feature: Pachube module from Axel
- - feature: dumpdef module from Axel in contrib
- - feature: javascripting support in FHEMWEB (Klaus/Axel)
- - feature: Module 09_BS.pm for brightness sensor added (Boris 2009-09-20)
-
-- 2009-07-03 (4.6)
- - bugfix: fht actuator message clarification by Klaus
- - feature: getstate command from Martin (25.12)
- - bugfix: at drifts for relative timespecs
- - bugfix: Add IODev to CUL/EM/CUL_WS/HMS/KS300
- - bugfix: FileLog get (pgm2 plots) wont find the first row in the file
- - feature: 00_CUL: Answer CUR requests (status/time/fht)
- - bugfix: support for second correction factor for EMWZ in 15_CUL_EM added
- - feature: CUL further sets/gets added
- - feature: Removed msghist for multiple FHZ handling, IODev attribute added
- - bugfix: cut off string "(counter)" from fallback value in 13_KS300.pm
- - feature: daily/monthly cumulated values for EMWZ/EMGZ/EMWM with 15_CUL_EM
- - feature: 01_FHEMWEB.pm: multiple room assignments
- - feature: 01_FHEMWEB.pm: fixedrange with optional [day|week|month|year]
- - feature: 01_FHEMWEB.pm: attr title and label for flexible .gplot files
- - feature: fhem.pl: attr global logdir used by wildcard %ld
- - feature: do not block on disconnected devices (FHZ/CM11/CUL)
- - bugfix: deleting at definition in the at command
- - bugfix: deleting a notify/at/watchdog definition in a notify/at/watchdog
- - feature: devspec =. E.g. set room=kitchen off; list disabled=
- - feature: Common Module calling for CUL/FHZ/CM11
- - feature: Store CUL sensitivity info
- - feature: avoid the "unknown/help me" message for unloaded devices
- - feature: structure module for large installations
- - feature: Cost Control in 15_CUL_EM (CostPerUnit, BasisFeePerMonth)
- - feature: add counter differential per time in 81_M232Counter.pm
- - feature: added USB compendium to documentation
- - feature: pgm3: Documentation for pgm3 updated, HMS100CO added (and bugfix)
- - bugfix: Defining a repeated at job in a sunrise/sunset at job fails
- - bugfix: FHT "summer" fix (avoiding a lot of syncnow)
- - feature: FHEMWEB modules added
- - feature: holiday module + doc + example + holiday2we attribute
- - bugfix: sunrise stuff fixed, doc missing
- - feature: CUL FHT sending added
- - bugfix: workaround to make M232 counter wraparound
- - feature: sequence module added
- - feature: Google Weather API support for FHEM (Boris 2009-06-01)
- - feature: lazy attribute for FHT devices (Boris 2009-06-09)
- - feature: tmpcorr attribute for FHT devices
- - feature: CUL_EM generates an event for each of the READINGS
- - feature: USF1000S support for FHEM added (Boris 2009-06-20)
- - feature: CUL supports HMS (culfw >= 1.22 needed)
- - feature: CUL shutdown procedure added
- - feature: 14_CUL_WS: better error checking
- - bugfix: webpgm2 multi line editing is working again
-
-- 2008-12-23 (4.5)
- - bugfix: further 01_FHEMWEB cleanup
- - feature: CUL support for FS20(r/w), FHT(readonly), KS300 and EM
- - feature: command list outputs the device attributes too
- - bugfix: rename bugs fixed
- - bugfix: better integration of ReadyFn (Windows), slight overall speedup
- - bugfix: Ignore/correct casing when autoloading modules
- - bugfix: at is executed twice after a modify (rufus99, 2008-09-10)
- - feature: FHT internal modifications (better protocol understanding)
- - feature: add timestamp to inform
- - feature: The strange stty settings in 00_FHEM.pm are optional
- - bugfix: webpgm2 iPhone fix
- - feature: fullinit and reopen commands for FHZ added (Boris 2008-11-01)
- - bugfix: undefined NotifyFn in fhem.pl (Boris 2008-11-01)
- - feature: new modules 00_CM11.pm and 20_X10.pm for integration of X10
- devices in fhem (Boris 2008-11-02)
- - feature: X10 support for pgm3 (Boris 2008-11-02)
- - bugfix: FHT short message warning
- - bugfix: rereadconfig crashes with active webpgm2 connections (2008-11-13)
- - bugfix: watchdog crash (2008-11-15)
- - bugfix: Strange call for nonexistent MyCUL: ReadFn
- - feature: webpgm2: gplot output goes to /tmp/gnuplot.err
- - feature: devspec TYPE,DEF,STATE. e.g. list TYPE:FS20, set DEF:123 on
- - bugfix: at schedules 2 events after the DST change (fix not verified)
- - feature: commandref.html reorg. There are now device sections.
- - feature: CUL / CUL_EM / CUL_WS documentation
- - feature: do not block fhem when the CUR is disconnected
- - bugfix: correct correction factors for EMEM in 15_CUL_EM.pm
- - bugfix: more stable CUL initialization
- - feature: reworked 15_CUL_EM.pm to account for timer wraparounds, more
- readings added
- - feature: speed gain through disabled refreshvalues query to all FHTs at
- definition; if you want it back at a "set myFHT report1 255
- report2 255" command to the config file.
- - feature: fhem commands may be added in modules. XmlList is external now.
- - bugfix: rereadcfg from webpgm2 does not crash fhem.pl
- - feature: jsonlist command from Martin (contrib/JsonList)
- - feature: contrib/rotateShiftWork from Martin
- - feature: contrib/fhem2speech from Martin
- - bugfix: attributes of at devices disappear
- - feature: attribute rainadjustment for KS300 (Boris 2008-12-17)
- - bugfix: deleting at / watchdog while active creates an empty device
- - feature: ExactId trigger added for wildcard HMS devices
-
-- 2008-08-04 (4.4)
- - feature: RM100-2 battery empty warning (mare 23.07.08)
- - feature: optimising the pgm2/SVG memory usage
- - feature: autoloading FHEM modules
- - bugfix: STATE/$value is carrying again the correct value
- - feature: enhancing the Makefile and the documentation
- - feature: 90_at is using now InternalTimer, subsecond precision added
- - feature: HMS100-FIT added (01.01.08 by Peter and 22.01.08 by Juergen)
- - feature: 91_watchdog added to handle the HMS100-FIT
- - feature: cum_kWh/cum_m3 added to EMWZ/EMGZ (11.01.08 by Peter)
-
-- 2008-07-12 (4.3)
- - bugfix: KS300 state was wrong after the STATE bugfix
- - feature: HMS100CO (by Peter)
- - feature: EMGZ (by Peter)
- - feature: Generate warning if too many commands were sent in the last hour
- - doc: linux.html: Introduction (Peter S.)
- - feature: contrib/82_M232Voltage.pm (by Boris, 24.12)
- - feature: delattr renamed to deleteattr (Rudi, 29.12)
- - feature: defattr renamed to setdefaultattr (Rudi, 29.12)
- - feature: device spec (list/range/regexp) for most commands implemented
- - feature: %NAME, %EVENT, %TYPE parameters in notify definition
- - feature: added 93_DbLog.pm, database logging facility (Boris, 30.12.)
- - feature: webfrontend/pgm2 converted to a FHEM module
- - bugfix: 99_SUNRISE_EL.pm: may schedule double events
- - bugfix: 62_EMEM.pl, contrib/em1010.pl: correct readings for energy_kWh
- and energy_kWh_w (Boris, 06.01.08)
- - feature: global attr allowfrom, as wished by Holger (8.1.2008)
- - feature: FHT: multiple commands, softbuffer changes, cmd rename, doc
- - feature: EM1010PC: automatic reset
- - feature: contrib/00_LIRC.pm (25.3, by Bernhard)
- - bugfix : 00_FHZ: additional stty settings for strange Linux versions
- - bugfix : pgm2 wrong temp summary for FHT's (reported by O.D., 16.4.2008)
- - feature: FHEM modules may live on a filesystem with "ignorant" casing (FAT)
- - feature: FileLog "set reopen" for manual tweaking of logfiles.
- - feature: multiline commands are supported through the command line
- - feature: pgm2 installation changes, multiple instances, external css
- - feature: 87_ws2000.pm (thomas 10.05.08)
- - contrib: ws2000_reader.pl Standalone decoder and server (thomas 10.05.08)
- - doc: update fhem.html and commandline.html reflecting ws2000 and
- windows installation(thomas 10.05.08)
- - feature: add ReadyFn to fhem.pl in main loop to have an alternative for
- select, which is not working on windows (thomas 11.05)
- - feature: set timeout to 0.2s, if HandleTimeout returns undef=forever
- - bugfix : WS2000:fixed serial port access on windows by replacing FD with
- ReadyFn
- - bugfix : FileLog: dont use FH->sync on windows (not implemented there)
- - feature: EM, WS300, FHZ:Add Switch for Device::SerialPort and
- Win32::SerialPort to get it running in Windows (sorry, untested)
- - bugfix: FileLog undefined $data in FileLog_Get
- - feature: fhem.pl check modules for compiletime errors and do not initialize
- them
- - feature: M232 add windows support (thomas 12.05.08)
- - feature: add simple ELV IPWE1 support (thomas 12.05.08)
- - feature: FileLog get to read logfiles. Used heavily by webpgm2
- - feature: webpgm2: gnuplot-scroll mode to navigate/zoom in logfiles
- - bugfix: deleting FS20 device won't result in unknown device (Daniel, 11.7)
- - feature: webpgm2 generates SVG's from logs: no need for gnuplot
- - bugfix: examples corrected to work with current syntax
-
-- 2007-12-02 (4.2)
- - feature: added archivedir/archivecmd to the the main logfile
- - feature: 99_Sunrise_EL.pm (does not need any Date modules)
- - bugfix: seldom xmllist error resulting in corrupt xml (Martin/Peter, 4.9)
- - bugfix: FHT mode holiday_short added (9.9, Dirk)
- - bugfix: Modifying a device from its own trigger crashes (Klaus, 10.9)
- - feature: webpgm2 output reformatted
- - feature: webpgm2 displaying multiple plots
- - feature: FHT lime-protection code discovered by Dirk (7.10)
- - feature: softwarebuffer for FHT devices (Dirk 17.10)
- - feature: FHT low temperatur warning and offset (Dirk 17.10)
- - change: change FHT state into warnings (Dirk 17.10)
- NOTE: you'll get an undefined type state &
- undefined type unknown_85 after upgrade.
- - feature: Softwarebuffer code simplified (Rudi 22.11)
- - bugfix: bug #12327 doppeltes my
- - bugfix: set STATE from trigger
- - bugfix: readings state vs STATE problem (xmllist/trigger)
- - change: SUNRISE doc changed (99_SUNRISE.pm -> 99_SUNRISE_EL.pm)
- - feature: support for the M232 ELV device (Boris, 25.11)
- - feature: alternativ Quad-based numbers for the FS20 (Matthias, 24.11)
- - feature: dummy type added (contrib/99_dummy.pm)
-
-- 2007-08-05 (4.1)
- - doc: linux.html (private udev-rules, not 50-..., ATTRS)
- - bugfix: setting devices with "-" in their name did not work
- - doc: fhem.pl and commandref.html (notifyon -> notify, correction
- of examples)
- - feature: modify command added
- - feature: The "-" in the name is not allowed any more
- - bugfix: disabled notify causes "uninitialized value" (STefan, 1.5)
- - bugfix: deleted FS20 items are still logging (zombie) (Gerhard, 16.5)
- - bugfix: added FS20S8, removed stty_parmrk (Martin, 24.5)
- - feature: added archivedir/archivecmd to the FileLog
- - feature: added EM1010PC/EM1000WZ/EM1000EM support
- - bugfix: undefined messages for unknown HMS devs (Peter, 8.6)
- - bugfix: em1010 and %oldvalue bugs (Peter, 9.6)
- - bugfix: SCIVT solar controller (peterp, 1.7)
- - bugfix: WS300 loglevel change (from 2 to 5 or device specific loglevel)
- - feature: First steps for a Fritz!Box port. See the fritzbox.html
-
-- 2007-04-14 (4.0)
- - bugfix: deny at +{3}... (only +*{3} allowed), reported by Bernd, 25.01
- - bugfix: allow numbers greater then 9 in at +{}
- - feature: new 50_WS300.pm from Martin (bugfix + rain statistics, 26.01)
- - feature: renamed fhz1000 to fhem
- - feature: added HISTORY and README.DEV
- - doc: Added description of attribute "model".
- - bugfix: delete the pidfile when terminating. (reported by Martin and Peter)
- - feature: attribute showtime in web-pgm2 (show time instead of state)
- - feature: defattr (default attribute for following defines)
- - feature: added em1010.pl to the contrib directory
- - doc: added linux.html (multiple devices, udev-links)
- - REORGANIZATION:
- - at/notify "renamed" to "define at/notify"
- - logfile/modpath/pidfile/port/verbose "renamed" to "attr global xxx"
- - savefile renamed to "attr global statefile"
- - save command added, it writes the configfile and the statefile
- - delattr added
- - list/xmllist format changed
- - disable attribute for at/notify/filelog
- See HISTORY for details and reasoning
- - added rename command
- - webpgm2 adapted to the new syntax, added device specific attribute
- and "set" support, gnuplot files are configurable, links to the
- documentation added.
- - bugfix: more thorough serial line initialization
-
-- 2007-01-25 (3.3)
- - bugfix: 50_WS300.pm fix from Martin
- - bugfix: pidfile does not work as expected (reported by Martin)
- - bugfix: %U in the log-filename is wrong (bugreport by Juergen)
- - feature: %V added to the log-filename
- - feature: KS300 wind calibration possibility added
- - feature: (software) filtering repeater messages (suggested by Martin)
- - feature: the "client" fhz1000.pl can address another host
- - bugfix: empty FHT battery is not reported (by Holger)
- - feature: new FHT codes, e.g. month/day/hour/minute setting (by Holger)
-
-- 2007-01-14 (3.2)
- - bugfix: example $state changed to $value (remco)
- - bugfix: sun*_rel does not work correctly with offset (Sebastian)
- - feature: new HMS100TF codes (Sebastian)
- - feature: logging unknown HMS with both unique and class ID (Sebastian)
- - feature: WS300: "Wetter-Willi-Status", rain_raw/rain_cum added, historic
- data (changes by Martin & Markus)
- - bugfix: broken rereadcfg / CommandChain after init
- (reported by Sebastian and Peter)
- - bugfix: sunrise_coord returned "3", which is irritating
-
-- 2007-01-08 (3.1)
- - bugfix: delete checks the arg first "exactly", then as a regexp
- - bugfix: sun*_rel does not work correctly with offset (Martin)
- - feature: FAQ entry on how to install the sunrise stuff.
- - feature: the inner core is modified to be able to handle
- more than one "IO" device, i.e multiple FHZ at the same time,
- or FHZ + FS10 + WS300. Consequences:
- - "fhzdev " replaced with "define FHZ "
- - "sendraw " replaced with "set raw "
- - module function parameters changed (for module developers)
- - set FHZ activefor dev
- - select instead sleep after sending FHZ commands
- - the at timer is more exact (around 1msec instead of 1 sec)
- - ignoring FS20 device 0001/00/00
- - feature: contrib/serial.pm to debug serial devices.
- - feature: WS300 integrated: no external program needed (Martin)
- - feature: updated to pgm3-0.7.0, see the CHANGELOG at Martins site
-
-- 2006-12-28 (3.0)
- - bugfix: KS300: Make the temperature negative, not the humidity
- - bugfix: generate correct xmllist even with fhzdev none (Martin, 12.12)
- - feature: one set command can handle multiple devices (range and enumeration)
- - feature: new FS20 command on-till
- - feature: perl: the current state is stored in the %value hash
- - feature: perl: sunset renamed to sunset_rel, sunset_abs added (for on-till)
- - feature: perl: isday function added
- - feature: follow-on-for-timer attribute added to set the state to off
- - bugfix: the ws300pc negative-temp bugfix included (from Martin Klerx)
- - feature: version 0.6.2 of the webpgm3 included (from Martin Haas)
-
-- 2006-11-27 (2.9a)
- - bugfix: FileLog+Unknown device generates undefined messages
- - bugfix: trigger with unknown device generates undefined messages
-
-- 2006-11-19 (2.9)
- - bugfix: fhz1000.pl dies at startup if the savefile does not exist
- - bugfix: oldvalue hash is not initialized at startup (peter, Nov 09)
- - feature: Notify reorganization (requested by juergen and matthias) :
- - inform will be notified on both real events and set or trigger commands
- - filelogs will additionally be notified on set or trigger commands
- - the extra_notify flag is gone: it is default now, there is a
- do_not_notify flag for the opposite behaviour.
- - feature: at timespec as a function. Example: at +*{sunset()}
- commandref.html and examples revisited.
- - feature: 99_SUNRISE.pm added to use with the new at functionality
- (replaces the old 99_SUNSET.pm)
- - feature: webpgm2 "everything" room, at/notify section, arbitrary command
- - bugfix: resetting the KS300
- - feature: updated ws300pc (from martin klerx, Nov 08)
- - bugfix: parsing timed commands implemented => thermo-off,thermo-on and
- activate replaced with timed off-for-timer,on-for-timer and
- on-old-for-timer (reported by martin klerx, Nov 08)
- - feature: pidfile (requested by peter, Nov 10)
- - bugfix: function 81 is not allowed
-
-- 2006-11-08 (2.8)
- - feature: store oldvalue for triggers. perl only. requested by peter.
- - feature: inform cmd. Patch by Martin. There are many Martins around here :-)
- - bugfix: XML: fix & and < and co
- - bugfix: Accept KS300 negative temperature values
- - change: the FS20 msg "rain-msg" is called now "activate"
- - feature: start/stop rc script from Stefan (in the contrib directory)
- - feature: attribute extra_notify: setting the device will trigger a notify
- - feature: optional repeat count for the at command
- - feature: skip_next attribute for the at command
- - feature: WS300 support by Martin. Check the contrib/ws300 directory.
- - bugfix: 91_DbLog.pm: retry if the connection is broken by Peter
- - feature: Martin's pgm3-0.5.2 (see the CHANGELOG on his webpage)
- - feature: RRD logging example by Peter (in the contrib/rrd directory)
-
-- 2006-10-03 (2.7)
- - bugfix: Another try on the > 25.5 problem. (Peters suggestion)
- - feature: 99_ALARM.pm from Martin (in the contrib directory)
- - feature: HMS100TFK von Peter P.
- - feature: attribute loglevel
- - feature: attribute dummy
- - feature: attr command documented
- - feature: the current version (0.5a) of the pgm3 from Martin.
-
-- 2006-09-13 (2.6a)
- - bugfix: the FHT > 25.5 problem again. A never ending story.
-
-- 2006-09-08 (2.6)
- - bugfix: updated the examples (hint from Juergen)
- - bugfix: leading and trailing whitespaces in commands are ignored now
- - feature: making life easier for perl oneliners: see commandref.html
- (motivated by STefans suggestions)
- - feature: include command and multiline commands in the configfiles (\)
- - bugfix: web/pgm2 KS300 rain plot knows about the avg data
- - bugfix: the FHT > 25.5 problem. Needs to be tested.
- - feature: log unknown devices (peters idea, see notifyon description)
- - feature: HMS wildcard device id for all HMS devices. See the define/HMS
- section in the commandref.html for details.
- NOTE: the wildcard for RM100-2 changed from 1001 to 1003.
- (peters idea)
- - feature: rolwzo_no_off.sh contrib file (for those who were already closed
- out by automatically closing rollades, by Martin)
- - feature: the current version (0.4.5) of the pgm3 from Martin.
-
-- 2006-08-13 (2.5)
- Special thanks to STefan Mayer for a lot of suggestions and bug reports
- - If a command is enclosed in {}, then it will be evaluated as a perl
- expression, if it is enclosed in "" then it is a shell command, else it is
- a "normal" fhz1000 command.
- "at" and "notifyon" follow this convention too.
- Note: a shell command will always be issued in the background.
- - won't die anymore if the at spec contains an unknown command
- - rereadcfg added. Sending a HUP should work better now
- - escaping % and @ in the notify argument is now possible with %% or @@
- - new command trigger to test notify commands
- - where you could specify an fhz command, now you can specify a list of
- them, separated by ";". Escape is ;;
- - KS300 sometimes reports "negative" rain when it begins to rain. Filter
- such values. israining is set when the raincounter changed or the ks300
- israining bit is set.
- - sleep command, with millisecond accuracy
- - HMS 100MG support by Peter Stark.
- - Making FHT and FS20 messages more uniform
- - contrib/fs20_holidays.sh by STefan Mayer
- (simulate presence while on holiday)
- - webfrontends/pgm4 by STefan Mayer: fs20.php
- - KS300 avg. monthly values fixed (hopefully)
- - deleted undocumented "exec" function (you can write it now as {...})
-
-- 2006-07-23 (2.4)
- - contrib/four2hex (to convert between ELV and our codes) by Peter Stark
- - make dist added to set version (it won't work in a released version)
- - reload function to reload (private) perl modules
- - 20_FHT.pm fix: undef occures once without old data
- - "setstate comment" is replaced with the attr command (i.e. attribute).
- The corresponding xmllist COMMENT tag is replaced with the ATTR tag.
- Devices or logs can have attr definitions.
- - webfrontend/pgm2 (fhzweb.pl) updated to handle "room" attributes(showing
- only devices in this room).
- - version 0.4.2 of webfrontend/pgm3 integrated.
- - contrib/ks300avg.pl to compute daily and monthly avarage values.
- - the 40_KS300.pm module is computing daily and monthly avarages for the
- temp/hum and wind values and sum of the rain. The cum_day and cum_month
- state variables are used as helper values. To log the avarage use the
- .*avg.* regexp. The regexp for the intraday log will trigger it also.
- - Added the contrib file garden.pl as a more complex example: garden
- irrigation. The program computes the time for irrigation from the avarage
- temperature reported by the ks300-2.
- - Enable uppercase hex codes (Bug reported by STefan Mayer)
- - Renamed the unknown_XX FHT80b codes to code_XXXXXX, this will produce
- "Undefined type" messages when reading the old save file
- - RM100-2 added (thanks for the codes from andikt).
-
-- 2006-6-22 (2.3)
- - CRC checking (i.e. ignoring messages with bad CRC, message on verbose 4)
- - contrib/checkmesg.pl added to check message consistency (debugging)
- - FHT: unknown_aa, unknown_ba codes added. What they are for?
- - Empty modpath / no modpath error messages added (some user think modpath is
- superfluous)
- - Unparsed messages (verbose 5) now printed as hex
- - Try to reattach to the usb device if it disappears: no need to
- restart the server if the device is pulled out from the USB socket and
- plugged in again (old versions go into a busy loop here).
- - Supressing the seldom (ca 1 out of 700) short KS300 messages.
- (not sure how to interpret them)
- - Added KS300 "israining" status flag. Note: this not always triggers when it
- is raining, but there seems to be a correlation. To be evaluated in more
- detail.
- - notifyon can now execute "private" perl code as well (updated
- commandref.html, added the file example/99_PRIV.pm)
- - another "perl code" example is logging the data into the database
- (with DBI), see the file contrib/91_DbLog.pm. Tested with an Oracle DB.
- - logs added to the xmllist
- - FHT80b: Fix measured-temp over 25.5 (handling the tempadd messages better)
-
-- 2006-05-20 (2.2)
- - FHZ1300 support verified (+ doc changes)
- - KS300 support added (with Temperature, Humidity, Wind speed, Rain).
- Not verified/undecoded: subzero temp, weak battery, Is-raining flag,
- wind speed > 100km/h
- - webpgm2 log fix for "offed" FHT devices (with no actuator data)
- - webpgm3 upgrade (by Martin Haas, see webpgm/pgm3/docs/CHANGES for details)
- - HMS logging/state format changed to make it similar to KS300
- - added HMS100WD (thanks to Sascha Pollok)
- - ntfy/logging changed to be able to notify for multiple attributes
- arriving in one message
- - central FHTcode settable (see commandref.html)
- - optionally listen for non-local requests (port global)
- - unknown logging
- - FAQ
-
-- 2006-04-15 (2.1)
- - webfrontend/pgm2 changes:
- - make it work on Asus dsl-routers (no "use warnings")
- - css/readonly configurable
- - Formatting for HMS data
- - comments can be added to each device (setstate comment:xxx)
- - testbed to dry-test functionality (test directory)
- - added an empty hull for the KS300 weather module
- - added undocumented "exec" function to call arbitrary program parts
- for debugging. Example: exec FhzDecode("81xx04xx0101a0011234030011");
- - webfrontend/pgm3, contributed by Martin Haas
- - fixed pgm1: changing values should work now
-
-- 2006-04-02 (2.0)
- - XmlList and webfrontend/pgm1 programs from Raoul Matthiessen
- - list tries to display the state and not the last command
- - Both log facilities (FileLog and Log) take wildcards
- (week, year, month, etc) to make logfile rotating easier
- - webfrontend/pgm2
-
-- 2006-02-12 (1.9b)
- - Bugfix: Fixing the same bug again (thanks to Martin)
-
-- 2006-02-12 (1.9a)
- - Bugfix: wrong rights for HMS and wrong place for readonly
- (thanks to Juergen)
-
-- 2006-02-10 (1.9)
- (aka as the Juergen release)
- - The FHZ1300 is reported to work
- - Bugfix: spaces before comment in the config file should be ignored
- - added FS20STR codes to 10_FS20.pm
- - names restricted to A-Za-z0-9.:- (especially _ is not allowed)
- - delete calles now an UndefFn in the module
- - implementation of FS20 function group/local master/global master
- - the list command tells you the definition of the device too
-
-- 2006-01-05 (1.8)
- - Bugfix: detailed FS20 status was not set from external event
- - Bugfix: setstate for FS20 returned the last state set
- - Bugfix: undefined FS20 devices (can) crash the server
- - HMS module added by Martin Mueller
- (currently supporting the HMS100T & HMS100TF)
- - Log modules added, the first one being a simple FileLog
- (inspired by Martin Mueller)
- - A little gnuplot script to display temperature and actuator changes
-
-- 2006-01-04 (1.7)
- - the at command can be used to execute something repeatedly with *
- - ntfy can filter on device or on device+event with a regexp
- - checking the delete and notify regexps if they make sense
- - the FHT init string is now a set command (refreshvalues)
- - shutdown saves the detailed device information too
-
-- 2006-01-03 (1.6)
- - signal handling (to save the state on shutdown)
- - module FHZ addded (for the FHZ1000PC device itself)
- - added the get function (to make the initialization prettier)
- - the module ST was renamed to FS20
- - FS20 timer commands added
- - modules command removed (we are loading everything from the modpath
- directory)
- - FHT80b module added (yes, it is already useful, you can set
- and view a lot of values)
- - documentation adapted
- - Added a TODO file
-
-- 2005-12-26 (1.5)
- - "modularized" in preparation for the FHT80B -> each device has a type
- - added relative "at" commands (with +HH:MM:SS)
- - multiple commands on one line separated with ;
- - sleeping 0.22 seconds after an ST command
- - some commands/syntax changed:
- - switch => set
- - device => fhzdevice
- - define ... => define ...
- - the state of the devices and the at commands are saved
- - at start always sending a "set 0001 00 01" to enable the FHZ receiever.
- This is a workaround.
- - doc rewrite, examples directory
-
-- 2005-11-10 (1.4)
- - Reformatting the package and the documentation
- - New links
-
-- 2005-10-27 (1.3)
- - Bugfix: multiple at commands at the same time.
+ - feature: 70_PushNotifier added line break in Messages (xusader)
+ - feature: readingsGroup: added valuePrefix and valueSuffix attributes
+ added collapsed/collapsible to visibility attribute
+ added visibility command
+ - bugfix: FB_CALLMONITOR: fixing not working company numbers
+ reverse search for search.ch
+ - bugfix: 70_PushNotifier repair set function (xusader)
+ - bugfix: PRESENCE: fixing not working timer, when using set [...] statusRequest
+ - bugfix: FB_CALLMONITOR: fixing reverse search for klicktel.de
+ - feature: new module 52_I2C_MCP342x.pm added (klausw)
+ - feature: SYSMON: read cpu temp on FritzBox
+ - feature: ios7smallscreenstyle.css: table width based on screen width, new
+ header, links colored in detail view
+ - feature: new module FRITZBOX: controls Fritz!Box router and Fritz!Fon
+ - feature: new module 52_I2C_EEPROM.pm added (klausw)
+ - feature: readingsGroup: added ! flag,
+ added visibility and cellStyle attributes
+ - feature: new module 52_I2C_MCP23008.pm added (klausw)
+ - feature: new module 98_logProxy.pm added (justme1968)
+ - change: 66_ECMD: ReadyFn added (fixes issue under Windows)
+ - change: 02_RSS: use a GUID in RSS; urlq source for img command
+ - feature: 70_PushNotifier improve usebility, configuration without cURL (xusader)
+ - bugfix: SYSMON: prevent empty line im log by userReadings
+ - feature: 10_IT empfang (by bjoernh)
+ - bugfix: PRESENCE: fix race condition, when delete disabled attribute and
+ PRESENCE does not start to scan.
+ - feature: OPENWEATHER: captures weather forecast from API of www.wetter.com
+ - fhem 5.6 released
+
+- 2014-11-09 (5.6)
+ - bugfix: FB_CALLMONITOR: fixing race condition of missing events while
+ performing multiple calls
+ - feature: PROPLANTA: captures weather forecast from web page www.proplanta.de
+ - feature: 15_CUL_EM added attribute maxPeak (arnoaugustin)
+ - bugfix: 10_IT changed "setstate" to avoid eventMap errors (arnoaugustin)
+ - feature: new module 37_harmony.pm added (justme1968)
+ - change: WMBUS: use _ instead of : as readings separator, better support for EnergyCam
+ - feature: new module 23_KOSTALPIKO added (john)
+ - feature: new module 98_HourCounter added, 99_UtilsHourCounter.pm added to contrib (john)
+ - added: MYSENSORS: connect to serial or Ethernet MySensors Gateway
+ - added: MYSENSORS_DEVICE: represent a MySensors sensor- or actor node
+ - feature: global ATTR/DELETEATTR/MODIFIED events
+ - feature: 55_GDS.pm - attr disable added
+ - bugfix: SYSMON: prevent endless loop at startup with 'disable' attribute
+ - feature: SYSMON: added FritzBox informations: DSL rate, DSLAM sync time, count of CRC an FEC
+ - bugfix: SYSMON: unwanted characters in dsl info lines
+ - change: 57_Calendar: process continuation lines, get/set syntax checks
+ - bugfix: SYSMON: fix availability of cpu/kernel_max
+ - bugfix: SYSMON: numeric check
+ - change: 59_Weather: change icons for conditions 31, 34, 36
+ - added: MQTT: connect fhem with mqtt
+ - added: MQTT_BRIDGE: bidirectional mapping of existing fhem-device to mqtt-topic
+ - added: MQTT_DEVICE: fhem-device that can be controlled by and publishes to mqtt
+ - added: I2C_LCD: module to drive PCF8574T based LCD connected via I2C
+ - added: I2C_DS1307: module to read time and date from DS1307 connected by i2c
+ - added: OWX_ASYNC: asynchronous, non-blocking version of OWX for DS2480, DS9097 and FRM
+ - feature FRM: work as physical IODev for I2C_XXX modules
+ added: FRM_ROTENC: read rotary-encoders with FRM
+ added: FRM_RGB: control rgb-leds with FRM
+ added: FRM_STEPPER: control stepper-motors with FRM
+ added: FRM_AD: analog input for FRM
+ added: FRM_PWM: analog (pwm) output for FRM
+ added: FRM_SERVO: control servo-motors with FRM
+ - added: FRM_IN: digital input for FRM
+ - added: FRM_OUT: digital output for FRM
+ - added: FRM: connect Arduino with firmata to fhem
+ - change: 57_Calendar: line parsing rewritten, care for missing
+ modification timestamps
+ - change: SYSMON: support userReadings in SYSMON_ShowValues
+ - change: 59_Weather: change icon for condition clear to sunny.png
+ - bugfix: 57_Calendar: calendar event anymore in modeAlarmed if started
+ - feature: 57_Calendar: deal with non-existent end times
+ - bugfix: SOMFY: fix non-working on/off-for-timer methods
+ made positioning attributes optional
+ - feature: SOMFY: support for exact positioning (one-time setup of run times required)
+ support for parse()-function, requires newest CULFW.
+ - feature: userattr is now also device attribute
+ - feature: ZWave: Fibaro_FGRM222 MANUFACTURER_PROPRIETARY class
+ - feature: sequence: reportEvents attribtue added
+ - feature: SYSMON: RAM and SWAP Readings on OSX
+ - change: 34_NUT: removed calculation of values. Use userReadings instead.
+ removed autogeneration of attr model and serNo.
+ - feature: SYSMON: improvement: support network information (IP, IPv6) on german linux
+ - feature: Synology DiskStation NAS basic spk file creation
+ - change: 34_NUT: readingFnAttributes added; creation of units deleted;
+ changed attr asReadings to use comma instead of space
+ - bugfix: SYSMON: crash on FritzBox
+ - bugfix: 34_NUT: fixed possible buffer overflow, rewrote reception of data
+ - bugfix: SYSMON: idletime on multicore, warnings
+ - change: 09_CUL_FHTTK.pm: modified set option for sync, open and closed
+ - feature: SYSMON: HTML/Text output for SYSMON-CloneDummies
+ - feature: SYSMON: Method for titled HTML/Text output
+ - added: 34_NUT.pm (maintainer: creideiki)
+ - feature: SYSMON: added new reading: perl_version
+ - feature: add toggle to SetExtensions (introduced for ZWave)
+ - bugfix: plotEmbed FHEMWEB attribute (fix for an iOS8 bug)
+ - feature: SHC: support for analog inputs (EnvSensor) and new device
+ RGB_Dimmer added (rr2000)
+ - feature: PRESENCE: MAC address support for mode fritzbox (by Markus M.)
+ - bugfix: PRESENCE: fixing presence detection in mode fritzbox with new
+ Fritz!OS 6.20 (by Markus M.)
+ - feature: FB_CALLMONITOR: reverse-search attribute is now providing all
+ possible values, which are selectable (via fhemweb_multiple.js).
+ see commandref for all possible values
+ - feature: speed up through caching of postproc and regex in ECMDDevice
+ - bugfix: fixed handling of autocreation for 10_OWServer.pm
+ - feature: option to cope with partial messages in ECMD/ECMDDevice
+ - bugfix: SOMFY: add module to CUL client list, to set IODev automatically
+ - feature: sequence: triggerPartial Attribute added
+ - feature: 36_JeeLink: changed flash command to use fhem firmware
+ directory (by HCS)
+ - feature: 70_ENIGMA2: new attribute lightMode for old/slow devices
+ limited restricted functionality
+ - added: 98_CustomReadings.pm (maintainer: HCS)
+ - change: 98_Text2Speech.pm: fix a problem with microseconds in time()
+ by using mp3-templates or playing mp3 directly
+ - feature: state definition and split attribute added to 66_ECMD,
+ 67_ECMDDevice
+ - FHEMWEB: JavaScripts and CssFiles attributes added
+ - change: avoid updating weather information on get (59_Weather.pm)
+ - change: removed noshutdown=0 for HTTP connections made in 57_Calendar.pm
+ and 59_Weather.pm to address issues when FHEM is behind
+ a web proxy
+ - feature: update rewritten, restore added
+ - feature: enabled JavaScript in 02_RSS to support WebViewControl
+ - added: new module 36_WMBUS.pm (kaihs) Wireless M-Bus
+ - feature: SYSMON: aded new plots (power infos for cubietruck)
+ - feature: SYSMON: aded new readings for each network interface: ip and ip6
+ - feature: SYSMON: aded power supply informations to the text output method
+ - feature: SYSMON: power supply informations (ac, usb, battery)
+ - feature: added 70_PushNotifier.pm
+ - feature: 70_VIERA: Add parameter "HDMI1" - "HDMI4" for command remoteControl
+ to select HDMI input directly.
+ Add command "input" to select a HDMI port, TV or SD-Card
+ as source
+ - bugfix: LevelSender: Version 1.0.5: Could not get compiled by the Arduino
+ IDE
+ - feature: PRESENCE: new event "error" and "timeout" for state reading to
+ indicate a non successful check
+ - bugfix: 70_Jabber: fixed UTF8 encoding/decoding of messages
+ - feature: 10_OWServer autocreate coexists with OWXXX modules (Boris &
+ ntruchsess)
+ - feature: added 36_Level.pm
+ - feature: netatmo: added plz support for public stations
+ - change: 70_ENIGMA2: keep reading for recordings up-to-date during standby
+ - bugfix: 98_Text2Speech: - playing mp3files directly, eg: :ring.mp3:
+ - playing any mp3file only text
+ - feature: FB_CALLMONITOR: new reading "direction" to differentiate
+ between incoming and outgoing call.
+ - feature: FB_CALLMONITOR: all informational readings about a call will be
+ triggered for each call event
+ (call, ring, connect and disconnect)
+ - feature: mailcheck: allow user and pssword as perl expression
+ - feature: netatmo: support for public stations
+ - feature: PRESENCE: new set command "power" to execute a FHEM command
+ which can power on or off the checked device (given via attribute)
+ - feature: readingsGroup: added valueColumn attribute
+ - feature: readingsGroup: added ...,@,... argument format
+ - feature: 52_I2C_PCF8574.pm: added attribute OnStartup
+ 52_I2C_PCA9532.pm: added attribute OnStartup,
+ added attribute OutputPorts as substitute for InputPorts
+ 51_RPI_GPIO.pm: changed access to gpio via userspace by default
+ (for BBB and Cubie), access via gpio utility as fallback
+ - feature: PIONEERAVR: new attribute: checkConnection
+ - change: do no parse empty lines in 57_Calendar.pm
+ - bugfix: 10_SOMFY.pm: save enc-key and rolling-code as reading instead of
+ attribute to prevent loss of control after FHEM restart.
+ - feature: new module 10_SOMFY.pm to support Somfy RTS blinds
+ - bugfix: 70_PIONEERAVR.pm: fix for STATE if connection is lost
+ - bugfix: 37_SHC.pm: Move xml file under subdir lib, otherwise it won't be
+ deployed during update
+ - bugfix: 70_PIONEERAVR.pm: player commands are now available for more inputs
+ "play" was not in the drop down list of available set commands
+ check every 120s if the data connection to the Pioneer AV
+ receiver is still up
+ check if we get a reply from the Pioneer AV receiver not later
+ than 3s after a command was sent
+ fix for alias names of inputs
+ more input presets (spotify, mhl, hdmi7, hdmi8), inputs are now
+ queried from 1 - 59
+ 71_PIONEERAVRZONE.pm: bugfix:logging, set input
+ - change: 00_RPII2C.pm: hardware access changed to ioctl and syswrite/read
+ SMBus module not needed anymore but still usable, see attribute
+ useHWLib possibility to swap I2C-0 to P5 for Rev. B raspberries
+ via attribute swap_i2c0 (not tested yet)
+ - feature: 70_ENIGMA2: add attribute
+ remotecontrol=[standard,advanced,keyboard]
+ - bugfix: 70_PIONEERAVR.pm and PIONEERAVRZONE.pm: added "use SetExtensions",
+ commandref updates fixed RC_layout
+ - feature: new modules 70_PIONEERAVR.pm and PIONEERAVRZONE.pm
+ - feature: FLOORPLAN has new style 7 to display commands only.
+ - added: 89_HEATRONIC.pm (heikoranft)
+ - bugfix: duration parsing of calendar events in 57_Calendar.pm fixed
+ - feature: LightScene: added followDevices attribute
+ - feature: non-blocking retrieval of data in 59_Weather.pm (Boris & herrmannj)
+ - feature: new modules 37_SHC.pm and 37_SHCdev.pm added (rr2000)
+ - feature: 36_EMT7110: added this new module
+ - feature: 36_JeeLink: added initCommands attribute and flash command (by HCS)
+ - feature: SYSMON: DECT Temperatur
+ - bugfix: SYSMON: prevent some warnings
+ - change: SYSMONremoved support for old format of filesystem reading
+ - change: moved 98_openweathermap.pm to contrib
+ moved 98_geodata.pm to contrib
+ moved 55_BBB_BMP180.pm to contrib
+ - change: honor DURATION in 57_Calendar.pm
+ - bugfix: YAMAHA_AVR: don't let FHEM hang anymore, when the receiver
+ is not reachable
+ - change: 55_GDS.pm: use Blocking.pm for retrieval of large files
+ - change: YAMAHA_BD: make YAMAHA_BD more performant by using non-blocking
+ HTTP request (from HttpUtils.pm)
+ - added: YAMAHA_BD: new set command trickPlay and more remoteControl
+ commands. new reading trickPlay
+ - added: new module 98_statistics.pm: hourly, daily, monthly, yearly
+ statistics for min/avg/max/delta/duration of selected readings
+ - added: new module 52_I2C_MCP23017.pm (klausw)
+ - feature: Dashboard Configuration-Dialog for Tabs
+ - feature: new module 33_readingsHistory.pm added (justme1968)
+ - feature: new command copy (justme1968)
+ - feature: enabled GIF, PNG and JPG as background image formats, enabled
+ relative font size changed and perl specials for font size
+ in 02_RSS.pm
+ - feature: YAMAHA_AVR: new set commands and readings for controlling
+ the sound output behavior (Enhancer, DSP and straight
+ output) and sleep timer. For details, see commandref.
+ - bugfix: configdb filemove not working after previous changes
+ - change: IMPORTANT CHANGES TO configDB!
+ changed: all files will be imported as binary
+ changed: all existing textfiles will be moved to binary
+ removed: command binfileimport
+ added: sorted write and read of configuration data
+ - bugfix: SYSMON: css class name (sysmon)
+ - feature: option to determine the number of icons from WeatherAsHtml
+ - feature: DbLog: (thanks to betateilchen)
+ * added new global modules function $hash->{DbLog_splitFn}
+ to let split the generated events by the own module
+ into readingsname, value and unit
+ * added SVG_sampleDataFn
+ * added FW_detailFn
+ - added: new module contrib/97_SprinkleControl.pm (tobiasfaust)
+ - added: new module contrib/98_Sprinkle.pm (tobiasfaust)
+ both modules helps to control the sprinkles in your garden
+ --> take a look to the Wiki-Article
+ http://www.fhemwiki.de/wiki/Bew%C3%A4sserungssteuerung
+ - feature: FB_CALLMONITOR: new reading "missed_call_line" indicating
+ the line number which received the missed call
+ - feature: YAMAHA_AVR current* readings will be erased in case they
+ not applicable
+ - feature: YAMAHA_AVR currentTitle available for TUNER
+ - feature: new Method: SYSMON_getValues([desired keys])
+ - feature: JSONMETER: hourly statistics
+ - feature: configdb: new command search
+ - feature: LUXTRONIK2: estimation of electrical power consumption,
+ considers time depending tariffs (activeTariff)
+ - added: configDB functions for handling binary files
+ - feature: 02_RSS.pm: alpha channel for colors
+ - feature: JSONMETER: time depending tariffs added (activeTariff)
+ - updated: codemirror version 3.24
+ - feature: new module 35_SWAP_0000002200000008 for panstamp
+ indoor multi sensor board with tft
+ - added: new module 36_EC3000.pm (justme1968)
+ - feature: IT: added support for set-extensions (justme1968)
+ - added: new modules 10_Itach_IR and 88_Itach_IRDevice to
+ use Itach WF2IR or IP2IR to be used as universal
+ infrared remotecontrol
+ - added: new module 51_I2C_TSL2561.pm (kaihs)
+ - added: new module 02_FRAMEBUFFER.pm (kaihs)
+ - feature: SYSMON: many FritzBox specific readings:
+ wlan_state, wlan_guest_state, internet_ip, internet_state,
+ night_time_ctrl, num_new_messages, fw_version_info
+ - feature: configDB: added command fileshow
+ - feature: configDB: added commands filelist and filedelete
+ - feature: configDB: added commands fileimport and fileexport
+ - feature: 36_JeeLink: added LaCrosse, ETH200comfort, CUL_IR,
+ HX2272 and FS20 modes from ulli
+ added AliRF
+ added Clients and MatchList attribute
+ - feature: 02_RSS.pm: HTTPS enabled, png as image type added, autofreshing
+ HTML page with image map added
+ - feature: ECMD and ECMDDevice completely reworked, see
+ http://forum.fhem.de/index.php/topic,21515.0.html
+ - feature: new layout command rect and new attribute bgcolor for RSS
+ - added: new module 55_weco.pm (betateilchen)
+ - added: new module 70_Jabber.pm (BioS)
+ - bugfix: Dashboard: use "loadScript" for load JavaScripts
+ - feature: new module 00_NetzerI2C.pm, 51_Netzer.pm added (klausw)
+ - feature: new command reload for 57_Calendar.pm forces cleanup
+ - changed: small update to the documentation of recurring events in
+ 57_Calendar.pm
+ - bugfix: PRESENCE: fixing wrong presence state for mode lan-ping
+ when device is unreachable
+ - feature: 10_EnOcean: new EEP profiles: D2-01-00 - D2-01-11 (VLD)
+ - changed: 00_TCM/10_EnOcean: learning mode (teach-in / teach-out) changed
+ and extended
+ - added: new module 10_UNIRoll.pm (c-herrmann)
+ - feature: cloneDummy: new attribut cloneIgnore
+ - feature: cloneDummy: new optional parameter [reading]
+ - bugfix: Dashboard: dashboard_showfullsize not applied in room "all"
+ - feature: new module 98_PID20.pm added (John / betateilchen)
+ - feature: new module 00_RPII2C.pm, 52_I2C_PCA9532.pm, 52_I2C_PCF8574.pm,
+ 52_I2C_SHT21.pm added (klausw)
+ - change: module 71_LISTENLIVE.pm moved to contrib
+ module 23_WEBTHERM.pm moved to contrib
+ - change: module 98_PID.pm moved to contrib as preparation for
+ next major replace. Replaced by 98_PID20.pm (John/betateilchen)
+ - change: openweathermap: added set command "clear"
+ - change: MAX: interpret SetTemperature command from WT to HT
+ - feature: MAX: retry packets 3 times if missing an ack
+ - feature: new module 98_cloneDummy.pm added (Joachim)
+ - feature: STACKABLE_CC (busware.de device for the RPi) added
+ - feature: configdb export/import added for data security (betateilchen)
+ - feature: new module 38_netatmo.pm added (justme1968)
+ - change: 09_CUL_FHTTK.pm: clean up code to avoid "Use of uninitialized
+ value in concatenation.."
+ - change: 09_CUL_FHTTK.pm: extend module list to FHT80TF and FHT80TF-2
+ and update of documentation (matscher)
+ - feature: disabledForIntervals attribute added for at/notify/watchdog
+ - feature: jsonlist2 added, jsonlist is deprecated.
+ - feature: DbLog: Added new function : ReadingsVal/ReadingsTimestamp
+ - feature: Text2Speech: added new attribute TTS_VolumeAdjust
+ - feature: new module 70_PHTV.pm (loredo)
+ - feature: JSONMETER: added statistic functions
+ - feature: LightScene: added scene editor from UliM
+ - feature: SYSMON: New method: SYSMON_ShowValuesText
+ - feature: configDB.pm use sql database instead of fhem.cfg (betateilchen)
+ - feature: new module 98_geodata collect location based data (betateilchen)
+ - feature: 98_pilight: Added support for Elso protocol
+ - feature: readingsGroup: added sortDevices attribute
+ - feature: ENIGMA2: new reading 'recordings', new command record
+ - change: ENIGMA2: rewrite for NonBlocking
+ - feature: SYSMOM: new Plot + Doc
+ - feature: Dashboard: Custom CSS Attribute. Max. 7 Tabs.
+ - bugfix: Dashboard: Change Groupcontent sorting. Fix Bug that affect
+ new Groups.
+ - feature: 10_EnOcean: UTE protocol implemented
+ - feature: 00_TCM: new command teach
+ - bugfix: SYSMOM: uninitialized value warning on FritzBox
+ - added: 09_CUL_FHTTK.pm: german module documentation (matscher)
+ - feature: readingsGroup: allow FHEMWEB slider and dropdown menus as commands
+ - feature FB_CALLMONITOR: new attribute "disable" to
+ disable FB_CALLMONITOR
+ - feature: YAMAHA_BD: new attribute "disable" to disable cyclic status
+ updates of player
+ - change: 09_CUL_FHTTK.pm: added event-on...readings and event-min-interval
+ updated to reading update mechanism (matscher)
+ - feature: Dashboard: Groupstitel now can show icons,
+ Backbutton in Fullsize-Mode
+ - deleted: 51_BBB_WATCHDOG.pm - not really needed
+ - bugfix: DbLog: adding ShutdownFunction
+ - feature: YAMAHA_AVR: new attribute "disable" to disable cyclic status
+ updates of receiver
+ - feature: LightScene: added attribute switchingOrder
+ - added: new module 00_THZ.pm (immiimmi)
+ - added: new module 98_HTTPMOD.pm (stefanstrobel)
+ - added: new module 51_BBB_WATCHDOG.pm (betateilchen)
+ - bugfix: SYSMON: Fix: uninitialized variable
+ - feature: new modul 73_MPD added (Wzut)
+ - bugfix: SYSMON: Fix: root fs with /dev/mapper
+ - feature: Dashboard: The display of the dashboard can be limited to a
+ defined FHEMWEB. Change view of readingroups
+ - feature: new module 70_JSONMETER to read obis compatible data in json
+ format from so called smart meters for electricity, gas or heat
+ - feature: new modules 10_RESIDENTS, 20_ROOMMATE and 20_GUEST added (loredo)
+ - feature: LUXTRONIK2: attribute 'doStatistics' calculates boiler gradients
+ - feature: GEOFANCY: support both apps, Geofency.app and Geofancy.app
+ - feature: LightScene: added attribute lightSceneRestoreOnlyIfChanged
+ - bugfix: SYSMON: Fix: CPUTemp & BogoMIPS for utilite-Box.
+ - bugfix: PRESENCE: fix present-check-interval to be equal with normal
+ check-interval if not set in define statement and not 30 sec.
+ - feature: DASHBOARD: Tabs can show an icon.
+ - bugfix: DASHBOARD: dashboard_showfullsize only in DashboardRoom.
+ Fix showhelper Bug on lock/unlock. The error that after a trigger
+ action the curren tab is changed to the "old"
+ activetab tab has been fixed.
+ - bugfix: SYSMON: Filesystems (absent medium)
+ - feature: FLOORPLAN-menu-items can get icons attached by new
+ attribute fp_roomIcons
+ - feature: FLOORPLAN-specific icons can now be assigned by just
+ creating a folder under fhem/images with the flooplan-name
+ - feature: DASHBOARD: Tabs can set on top, bottom or hidden.
+ - bugfix: SYSMON: another format for ifconfig output
+ - feature: DASHBOARD: Use longpoll to update content.
+ rowcentercolwidth can now be defined per column.
+ Dashboard can hide FHEMWEB Roomliste and Header =>
+ Fullsizemode.
+ - bugfix: SYSMON: null reading for absent mount points
+ - feature: DbLog: jokers "%" in device/reading definition are now possible
+ - feature: SYSMON: new CPU Statistics and Plots
+ - feature: changed 10_OWServer.pm and 11_OWDevice.pm to use
+ NOTIFYDEV (justme1968)
+ - feature: LightScene: added setcmd command
+ - feature: DASHBOARD: Dashboard get Tabs. Redesign saving of Group
+ positioning.
+ - bugfix: SYSMON: Log Warnings, unnoetige Readings erkenen und entfernen
+ - feature: LUXTRONIK2: Setting of controller parameter and internal clock
+ - feature: new module 71_YAMAHA_BD.pm to control Yamaha Blu-Ray
+ players over network.
+ - bugfix: DbLog: fix for plotfork
+ - bugfix: SYSMON: filesystems may be wrong on some systems
+ - feature: new module 98_pilight.pm added (andreas-fey)
+ - change: LUXTRONIK2 - made compatible with current developer guidelines
+ (Blocking.pm, reading update mechanism)
+ - feature: readingsGroup: added icons and links/commands
+ - feature: new module 98_Text2Speech.pm added (Tobias Faust)
+ Google Translator Engine or ESpeak can be used
+ - feature: YAMAHA_AVR: define separate on and off status intervals for
+ cyclic status updates
+ - feature: Visualizations (Plots) for SYSMON added
+ - feature: new module 42_SYSMON.pm added (hexenmeister)
+ - feature: YAMAHA_AVR: new readings for radio stations, current title
+ and more. see commandref for more details.
+ - feature: new module 32_withings.pm added (justme1968)
+ - bugfix: PRESENCE: fixing user detection on FritzBox!
+ - feature: new module 38_CO20.pm added (justme1968)
+ - feature: new module 98_GEOFANCY.pm added (loredo)
+ - feature: new module 70_XBMC.pm added (dbokermann)
+ - feature: new module 51_RPI_GPIO.pm added (klausw)
+ - bugfix: Dashboard: fixed bug identification an existing Weblink.
+ fixed bug dashboard_sorting check. Buttonbar can now placed on
+ top or bottom of the Dashboard. Dashboard is always edited out
+ the Room Dashboard.
+ - bugfix: VIERA: fixed bug related to set command remoteControl
+ - bugfix: ENIGMA2: improved compatibility for Fritzbox and old
+ Webif versions
+ - feature: readingsGroup: process events only if visible in browser,
+ allow for line breaks in multi-reading lines
+ - feature: FLOORPLAN: Style4 (S300TH specific) now keeps its formatting
+ even with longpoll; Text "desiredTemperature" will now
+ be eliminated - for MAX devices.
+ - feature: HCS has now MAX Thermostat support
+ - change: integrated OWServer/OWDevice nonblocking and random start
+ time patches (justme1968 & Boris)
+ - feature: Add new module Dashboard
+ - change: ONKYO_AVR: transfer command database into separate packet
+ ONKYOdb.pm
+ - feature: ENIGMA2: bouquet support e.g. for named channels
+ - feature: Add new module ONKYO_AVR
+ - feature: SYSSTAT: allow (remote) monitoring via snmp, support
+ for monitoring windows systems and synology system temperature
+ - feature: New module LINDY_HDMI_SWITCH.pm added
+ - change: ENIGMA2: improved logging, default attributes for webCmd and
+ devStateIcon
+ - feature: ENIGMA2: support for option channels
+ - feature: mailcheck: decode non ascii subjet to utf-8, verify gpg signatures
+ - feature: PRESENCE: "statusRequest" command for lan-bluetooth mode
+ (collectord >= 1.4, presenced >= 1.1 required)
+ - feature: PRESENCE: new collectord package
+ - feature: devspec: removed range, added :FILTER and more general search
+ - feature: HUEBridge,HUEDevice: support for groups added
+ - feature: YAMAHA_AVR: new argument "toggle" for mute command
+ - feature: FB_CALLMONITOR: replace & to & at reverse search
+ - feature: new module 33_readingsProxy to make (a subset of) a reading
+ from one device available as a new device. can be used to
+ separate channels from 1-wire, EnOcean or SWAP multichannel
+ devices (by justme1968)
+ - change: improvements for OWDevice and OWServer (justme1968)
+ - feature: new attribute resolution for 1-wire temperature readings
+ (justme1968 & Boris)
+ - feature: new layout commands moveto, moveby and relative positioning
+ in 02_RSS.pm (Betateilchen & Boris)
+ - feature: FHEMWEB column attribute
+ - feature: new layout commands halign, valign, condition in 02_RSS.pm
+ (Betateilchen & Boris)
+ - bugfix: PRESENCE: Fix nonworking initialization in mode "lan-bluetooth"
+ - bugfix: fhem.pl: write-select to avoid blocking in inform/Event Monitor
+ - bugfix: fix issue with DST changes in 57_Calendar.pm
+ - feature: new module 36_LaCrosse.pm for LaCrosse IT+ temperature and
+ humidity sensors with a JeeLabs JeeLink as RF modem.
+ The matching JeeNode sketch can be found in
+ .../36_LaCrosse-LaCrosseITPlusReader.zip (by ohweh&justme1968)
+ - feature: YAMAHA_AVR: new attribute request-timeout.
+ - bugfix: YAMAHA_AVR: fix missing greater-than sign. Use different
+ Control-Tag name for RX-Vx75 series
+ - bugfix: PRESENCE: fixing not working re-initialization when
+ disabled attribute is set to 0 in lan-bluetooth mode
+ - feature: LightScene: added attribute lightSceneParamsToSave for
+ device specific configuration of config"
+ - feature: readings type added to weblink (justme1968)
+ - feature: offset and monotonic added to userReadings modifier (justme1968)
+ - feature: HUEDevice: support SVG icons for LWB001 living whites bulb
+ - feature: HUEDevice: support more than one bridge
+ - feature: updateInBackground global attribute
+ - feature: SYSSTAT: allow stateFormat
+ - feature: Module 70_VIERA supports now module 95_remotecontrol with own
+ layout for VIERA TV
+ - feature: InternalVal function added (like ReadingsVal)
+ - feature: new module speedtest to monitor internet connection speed with
+ speedtest-cli
+ - feature: new module "remotecontrol" to display a graphical remotecontrol
+ for any device
+ - feature: HUEDevice: new attribute color-icons to colored svg icons
+ - feature: FHEMWEB: longpoll is default now, longpollSVG (default off) added
+ - feature: HUEDevice: allow usage of openautomation svg icons
+ - feature: FHEMWEB: svg icons / iconPath / www/images/openautomation added
+ - feature: FHEMWEB: SVGcache attribute & clearSvgCache set command added
+ - feature: SYSSTAT: allow (remote) monitoring raspberry pi on cpu frequency
+ - feature: MANTAINER.txt added
+ - feature: PRESENCE: new mode "shellscript" to use own
+ scripts or binaries for presence recognition
+ - feature: YAMAHA_AVR: new set command to select scenes
+ - feature: PRESENCE: new attribute ping_count
+ - feature: userReadings may have a filter
+ - feature: HUEBridge: allow starting of bridge firmware update
+ - change: EnOcean: profile PM101 changed, old profiles FAH, FBH, FTF, SR04
+ removed
+ - feature: TCM: new attr blockSenderID:
+ Block receiving telegrams with a TCM SenderID sent by repeaters
+ - feature: TCM: For TCM120 Transceiver now the transmission of RPS and 4BS
+ commands supported
+ - feature: EnOcean: Now all RPS / 1BS profiles, more than 90 4BS profiles and
+ some manufacturer specific profiles are supported
+ - feature: EnOcean: profiles (subType) are updated from EEP 2.1 to EEP 2.5
+ - feature: FHEMWEB attribute roomIcons added
+ - feature: SYSSTAT: optionaly calculate geometric average of last 4
+ temperature values
+ - feature: weblink details screen can be used to edit .gplot files
+ - feature: eventTypes module added, to help with FileLog details screen
+ - feature: FB_CALLMONITOR: new reverse search provider dasschnelle.at for
+ reverse search of austrian telephone numbers
+ - bugfix: event-on-change-reading in combination with event-change-interval
+ - change: HUEDevice: allow color preset buttons in webCmd
+ - feature: SYSSTAT: allow (remote) monitoring raspberry pi on chip temperature
+ - feature: HUEDevice: use webCmdFn for colorpicker
+ added jscolor for colorpicker
+ - feature: FHEMWEB: module specific summaryFn/detailFn + defineable webCmdFn
+ - change: ESA2000: adapted device detection , rename readings
+ - change: stucture triggers on each change, see event-on-change-reading
+ - feature: PRESENCE: new mode "function" to use own perl functions for
+ presence checks
+ - bugfix: fixing not-working FHEM restart, when a PRESENCE check is running
+ - bugfix: fixing memory overflow when "list" a PRESENCE definition
+ - bugfix: fixing dead PRESENCE definitions in case of timeouts
+ - bugfix: update: error while updating single files fixed. (M. Fischer)
+
+- 2013-04-08 (5.4)
+ - feature: updatefhem will be silently converted to update
+ - feature: FHEMWEB: save button replaced with the menu entry "Save config"
+ - feature: notify supports $NAME/$EVENT/$EVTPART0/etc. @/% is deprecated.
+ - feature: 93_DbLog extended to give more functions for the charting frontend.
+ This includes new queries for raw table data and also statistics,
+ which get sum/max/min/avg values from the database.
+ Documentation has been updated.
+ - feature: new module 31_LightScene to save and restore the state of a
+ group of lights and other actors
+ - feature: VIERA module added (by teevau)
+ - change: FHEMWEB: the first webCmd argument is no longer used by the
+ state-icon, this can be implemented by the new devStateIcon
+ - change: 30_HUEDevice: allow autodetection of bridge with hue portal
+ services
+ - feature: THRESHOLD Module by Damian
+ - change: 30_HUEDevice: use new devStateIcon feature to show device color
+ in room overview
+ - feature: added example Setup SQL and configuration for SQLite
+ - change: modified MySQL Setup SQL to use 512 characters in EVENT column
+ - feature: added new Javascript Frontend based on ExtJS (by Johannes)
+ - feature: new modules 30_HUEBridge and 31_HUEDevice for phillips hue and
+ smartlink devices (by justme1968)
+ - change: SYSSTAT: allow remote monitoring by ssh
+ - change: SYSSTAT: allow less frequent updates for diskusage
+ - feature: new module 32_SYSSTAT to monitor system load and disk usage
+ on linux FHEM hosts (by justme1968)
+ - feature: new Module 73_PRESENCE to make automatic presence detection of
+ mobile phones or other mobile devices (like tablets) via ping or
+ bluetooth checks (by M. Bloch)
+ - feature: new Module 98_Heating_Control to switch heatsinks automaticly
+ with a weekly profile (by D. Ortmann / T. Faust)
+ - feature: new Module 93_DbLog.pm for logging events into Databases.
+ Generating Plots with weblinks are supportet.
+ (by B. Neubert / T. Faust)
+ - feature: new Module 59_HCS.pm for monitoring heating valves (FHT, HM-CC-VD)
+ to contral a central heating unit. I thank Benjamin for his
+ support! (M. Fischer)
+ - feature: new Module 72_FB_CALLMONITOR for receiving telephone call events
+ (Markus)
+ - feature: new Module 71_YAMAHA_AVR.pm for controlling Yamaha AV receivers
+ over network (by Markus)
+ - feature: optional second parameter to fhem() to make it silent
+ - feature: autoloading commands, XmlList/etc renamed from 99 to 98.
+ - feature: FHEMWEB returns external files in chunks to save memory
+ - feature: commandref.html splitted: documentation is now appended to the
+ modules.
+ - change: introduced readingsBulkUpdate, readingsSingleUpdate
+ - change: added GPLv2 licensing information
+ - feature: FLOORPLAN added fp_setbutton attribute
+ - bugfix: FHEMWEB slider with min > 0
+ - change: FHEMWEB CORS moved to options
+ - change: FHEMWEB closing old TCP connections
+ - change: FHEMWEB added "Associated with" to detail-screen (Uli)
+ - change: FHEMWEB added ETag headers (Matthias)
+ - change: FHEMWEB devStateIcon added
+ - change: HOWTO auf deutsch (ilmtuelp0815)
+ - change: 98_update.pm due a (probable) bug in perl, modules are no longer
+ loading automatically. A restart is required now! (M. Fischer)
+ - feature: 98_update.pm saves the statefile before an update (M. Fischer)
+ - feature: FHEMWEB longpoll reconnect (Matthias)
+ - bugfix: rename may overwrite other devices
+ - feature: FLOORPLAN longpoll (Matthias)
+ - feature: support for recurring events added in 57_Calendar.pm (Boris)
+ - feature: added support for OWL CM119,CM160 and CM180, energy sensors in
+ TRX_WEATHER using RFXtrx433 (Willi Herzig)
+ - feature: added support for KD101 smoke sensor (also set alert and pair) in
+ TRX_SECURITY using RFXtrx433 (Willi Herzig)
+ - change: changed dewpoint to work with event-on-change-reading and
+ technoline TX3TH (Willi Herzig)
+ - feature: new command fheminfo. Shows system informations. (M. Fischer)
+ - feature: added support for UV sensors in TRX_LIGHT using RFXtrx433 (Willi
+ Herzig)
+ - feature: added on-till and on-timer for set in TRX_LIGHT using RFXtrx433
+ (Willi Herzig)
+ - feature: generate devices with hexcodes as state for unknown types in
+ TRX_ELSE using RFXtrx433 (Willi Herzig)
+ - feature: new modules 10_OWServer.pm and 11_OWDevice.pm to interface with
+ OWFS
+ - feature: stateFormat (readingsFn modules) and showInternalValues attributes
+ - feature: new readingsFn modules: FS20 CUL_WS HMS CUL_EM CUL_TX EnOcean ZWave
+ - change: BS, USF1000, ECMDDevice, Weather, dummy migrated to readingsFN
+ (Boris)
+ - feature: telnet client mode
+ - bugfix: FHEMWEB longpoll misses initial state change (HM: set_on vs. on)
+ - change: 20_OWFS.pm, 21_OWTEMP modules flagged as "deprecated". These
+ modules will be removed in a future release. Use OWServer /
+ OWDevice instead. (M. Fischer)
+ - feature: a lot of new features and known 1-wire slaves to OWServer /
+ OWDevice added (M. Fischer)
+ - feature: set-extensions (additional set commands) for FS20, EnOcean, ZWave
+ - feature: added new command 'notice'. (M. Fischer)
+ - change: update supports the display and confirmation of system messages
+ via the new notice command (M. Fischer)
+ - feature: added new set commands and basicauth to 49_IPCAM.pm (M. Fischer)
+ - feature: userReadings
+ - feature: average supports more than one value in combined readings (T:x H:y)
+ - feature: FHEMWEB serves arbitrary files from the www directory
+ - feature: FB_checkPw now works with a distinct fritzbox user
+ - bugfix: floorplan-correction for readings with longpoll. Requires local
+ change in css!
+ - feature: floorplan added js-extension from Dirk
+ - feature: hour resolution in SVG
+ - feature: ZWave support for MULTI_CHANNEL class
+ - feature: FHEMWEB: old-dir-support removed, image-indexing rebuilt,
+ smallscreen/touchpad moved to stylesheetPrefix, menuEntries
+ added, Extend devStateIcon, js setting of attr values in detail
+ screen, live slider update in detail and room view
+ - feature: added support for third-party packages to 98_update.pm (M. Fischer)
+ - feature: FBAHA/FBDECT for FRITZ!DECT devices
+ - feature: event-min-interval Attribute
+
+- 2012-10-28 (5.3)
+ - feature: added functions trim, ltrim, rtrim, UntoggleDirect,
+ UntoggleIndirect
+ - feature: added functions FB_mail, FB_WLANswitch
+ - rework: CUL_HM reworks with respect to protocol. additions for several
+ devices and commands
+ - feature: rfmode supports to listen to MAX if fw>1.46, 00_CUL.pm (Jens)
+ - feature: Status and length on cmdStack in webinterface for 10_CUL_HM
+ - feature: devicepair in 10_CUL_HM.pm supports unset
+ - feature: devicepair for single Button in 10_CUL_HM.pm (by MartinP)
+ - feature: new Modules 75_MSG.pm, 76_MSGFile.pm and 76_MSGMail.pm (by
+ Ruediger)
+ - feature: new Module 59_Twilight.pm to calculate current daylight
+ - feature: internal NotifyOrderPrefix: 98_average.pm is more straightforward
+ - feature: the usb command tries to flash unflashed CULs on linux
+ - feature: FHEMWEB: jsonp support, .holiday and .cfg added to Edit Files
+ - feature: SVG: filled area support, some ls/lw fixes
+ - feature: WOL (wake on lan) module added (by Matthias)
+ - feature: additional groups from /etc/groups are applied (Christopher)
+ - feature: updatefhem backup is using tar+gzip now
+ - feature: EIB: introduce Get, interpret received values upon defined model
+ (by datapoint types) (Maz)
+ - feature: NetIO230B module by Andy
+ - feature: Retaining configfile comments (not within a define statement)
+ - feature: EnOcean PM101 by Ignaz
+ - feature: FHEMWEB redirectCmds attribute added
+ - feature: CUL_TX minsecs attribute (by Arno)
+ - feature: webCmd in smallScreen added
+ - feature: TRX modules by Willi
+ - feature: FHEMWEB icons (by Joerg)
+ - feature: FHEMWEB console (same as inform timer)
+ - feature: remove dependency on Google::Weather, major rewrite (Boris)
+ - feature: started experimental interface implementation (fhem API v2)
+ (Boris)
+ - feature: sleep issued in at/notify/etc is not blocking fhem anymore
+ - feature: dummy got a setList attribute
+ - feature: new module 02_RSS.pm
+ - feature: at attribute alignTime added
+ - feature: FHEMWEB attribute values via dropdown, slider for dimmer
+ - feature: new attribute group for FHEMWEB (Boris)
+ - change: 11_FHT.pm, 50_WS300.pm, 59_Weather.pm migrated to readingsUpdate
+ mechanism (Boris)
+ - change: 59_Weather.pm migrated from Google to Yahoo Weather API (Boris)
+ - change: updatefhem modifications to support a clean install of fhem and
+ pgm2 installation, see commandref.html (M. Fischer)
+ - change: FHEMWEB support for the new www/pgm2 directroy added (M. Fischer)
+ - change: Makefile support for for the new www/pgm2 directroy and new
+ targets backup and uninstall added. More verbose output. (M. Fischer)
+ - change: backup separated from updatefhem to a new command (M. Fischer)
+ - feature: new command backup added (M. Fischer) new global attribute
+ added new global attribute added new global
+ attribute added
+ - feature: new module 57_Calendar.pm (Boris)
+ - feature: new parameter for updatefhem added (M. Fischer) new
+ global attribute added (M. Fischer)
+ - feature: optional telnet password added / telnet port is optional
+ - feature: holiday returns all matches, not only the first.
+ - change: CULflash separated from updatefhem to a new module (M. Fischer)
+ - feature: time and internet helper routines added to fhem.pl (Boris)
+ - change: separating common functions used by the FHEM modules into
+ *Utils.pm files from fhem.pl
+ - feature: portpassword and basicAuth may use evaluated functions
+ - feature: motd with SecurityCheck added
+ - feature: telnet module added, attr global port moved. allowfrom changed.
+ - feature: FhemUtils/release.pm for the new update process added. (M.
+ Fischer)
+ - bugfix: correct one-time relative at commands after reboot
+ - feature: ZWave added
+ - feature: module IPCAM added. (M. Fischer)
+ - feature: module HTTPSRV added (Boris)
+ - feature: module FLOORPLAN added (Uli Maass)
+ - bugfix: FHEMWEB: weblink with group attribute is shown together with other
+ elements
+ - feature: FHEMWEB: timepicker added
+ - feature: FHEMWEB: support for modul specific icons added (M. Fischer)
+
+
+- 2011-12-31 (5.2)
+ - bugfix: applying smallscreen attributes to firefox/opera
+ - feature: CUL_TX added (thanks to Peterp)
+ - feature: TCM120/TCM310 + EnOcean parser added
+ - feature: eventMap enhanced
+ - bugfix: enabled logging for 59_Weather.pm (Boris)
+ - feature: language selection for 59_Weather.pm (Erwin)
+ - feature: .gplot files renamed from type to content
+ - bugfix: FS20 on-for-timer error reporting only in the logfile
+ - bugfix: FHEM2FHEM should work with CUL again, after syntax change
+ - feature: CUL directio mode (No Device::SerialPort needed)
+ - feature: FritzBox 7270 ZIP file
+ - bugfix: prevent fhem from stalling if telnet times out in 66_ECMD.pm
+ - feature: added postproc ability to classdef in 66_ECMD.pm (Boris, Heinz)
+ - feature: FHEMWEB longpoll mode, small fixes, tuned smallscreen mode
+ - feature: average module added
+ - change: moved the berliOS CVS repository to a sourceforge SVN repository
+ - feature: all FHEM modules have now a subversion id.
+ - bugfix: new perl compiled for the FritzBox 7270
+ - feature: regexp1WontReactivate Attribute added
+ - bugfix: XmlList special handling
+ - bugfix: CUL_WS rain sensor corr1 fix
+ - feature: FHEMWEB stylesheet attribute repaced with stylesheetPrefix
+ - feature: notify attribute forwardReturnValue
+ - change: move JsonList from contrib to main-modules
+ - change: JsonList output optimized and more structured
+ - feature: FHEMWEB save button, smallscreen first screen fix
+ - feature: FHEMWEB encoding is now UTF-8, alias attribute is respected
+ - change: HTTPS certs directory moved from cwd into modpath
+ - feature: shutdown parameter restart added
+ - feature: usb scan/create command added (part of autocreate).
+ - feature: SaveAs added to FHEMWEB Edit-Files
+ - feature: EnOcean ElTako dimmer by Marc.
+ - feature: fhem is started as user fhem on the FB7390
+
+
+- 2011-07-08 (5.1)
+ - feature: smallscreen optimizations for iPhone
+ - feature: FHT8V rewrite (and moved from contrib into the FHEM directory).
+ - feature: PID rewrite (and moved from contrib into the FHEM directory).
+ - feature: FHEM2FHEM module
+ - bugfix: CUL get should not digest foreign events (fhtsoftbuffer)
+ - bugfix: S300TH sanity check won't allow negative temperatures.
+ - feature: decode CUL uptime
+ - feature: USB doc changes, FHZ initFS20_02/stopHMS parameters by Andreas.
+ - feature: CUL_HM for some HomeMatic devices.
+ - bugfix: HTML-Syntax check of the pgm2 output and documents (*.html)
+ - feature: added date alias for FHT80b (Boris)
+ - feature: attr may be a regexp (for CUL_IR)
+ - feature: Homepage moved from koeniglich.de/fhem to fhem.de
+ - feature: eventMap attribute
+ - feature: 64_ESA2000 added (by STefan/Gerd)
+ - feature: new modules 66_ECMD.pm and 67_ECMDDevice.pm for ethersex-enabled
+ devices and alike.
+ - bugfix: serial port setting on Linux broken if running in the background
+ - feature: IPV6 support, FHEMWEB basicAuth and HTTPS support
+ - feature: createlog added to the autocreate module
+ - feature: contrib/tcptee.pl added
+ - feature: HMLAN support
+ - feature: Fritzbox7390 image
+ - feature: pgm2 tablet support, included into the default configuration
+ - feature: TUL/EIB Support (by Maz)
+ - feature: updatefhem/CULflash
+ - feature: $value{} => Value(), $oldvalue => OldValue()/OldTimestamp()
+
+
+- 2010-08-15 (5.0)
+ - **NOTE*: The default installation path is changed to satisfy lintian
+ - feature: KM271
+ - bugfix: 99_SUNRISE_EL endless loop bug
+ - feature: CUL: optional baudrate spec in definition
+ - feature: CUL: sendpool attribute
+ - feature: CUL_HOERMANN module added
+ - bugfix: DST change: absolute at and relative sunrise fix
+ - feature: FHEMWEB javascript additions for SVG plots (click on lines/labels)
+ - feature: FHEMWEB smallscreen attribute (for smartphones)
+ - bugfix: the internal fhem() used in perl oneliners does not return a value
+ - feature: Dimmer function of X10 module changed to match FS20
+ - feature: allow only meaningful readings (fill level > -5%) in USF1000
+ - feature: device attr links in commandref.html
+ - bugfix: make BS known to CUL to avoid lost messages if both FHZ1300 and CUL
+ are connected, adjust matching rule
+ - feature: Copy&Paste in SVG
+ - feature: Debian/Ubuntu Package. Install-path changes to satisfy lintian
+ - feature: Allnet 3076/4027/4000T
+ - feature: RFXCOMM Module for Oregon Weatherstations
+ - feature: Davis VantagePro2
+ - feature: ELV USB-WDE1
+ - feature: addvaltriggers CUL attribute for adding RSSI as a trigger
+ - feature: CUL_WS sanity check for large temp differences.
+
+- 2010-03-13 (4.9)
+ - bugfix: changed the fhem prompt from FHZ> to fhem>
+ - bugfix: CUL_RFR fixes (chaining RFR's should work)
+ - bugfix: Path in the examples fixed (got corrupted)
+ - bugfix: PachLog fixes from Axel
+ - bugfix: HOWTO/Examples revisited for correctness
+ - bugfix: INITIALIZED, DEFINED, RENAMED, DELETED triggers
+ - feature: image weblinks from Stefan
+ - feature: OWFS support for passive Devices e.g. DS9097 (see commandref.html)
+ - bugfix: OWFS crash fhem with PGM2/3, xmllist (M.Fischer)
+ - bugfix: OWTEMP Defining a device without OWFS now fails (M.Fischer)
+ - bugfix: 21_OWTEMP.pm missing trigger fo notify/filelog (M.Fischer)
+ - feature: 99_getstate.pm get state from S555TH now (M.Fischer)
+ - feature: pgm3: automatic support for CUL_WS (S300TH) added (MartinH)
+ - bugfix: 21_OWTEMP.pm missing space within state logging (M.Fischer)
+ - bugfix: 21_OWTEMP.pm interval fixed (M.Fischer)
+ - bugfix: 21_OWTEMP.pm rewrite with errorcontrol and demo mode (M.Fischer)
+ - feature: ignore attribute
+ - bugfix: [pgm3] table-format on Android-Browser optimized
+ - feature: [pgm3] Skinable - change the colors.
+ - feature: [pgm3] Rooms possible for Webcam and Google-Weather
+ - bugfix: dummy/structure was listed twice in list and xmllist
+ - feature: 11_FHT.pm added new readings for warnings on battery, lowtemp,
+ window and windowsensor (M.Fischer)
+ - feature: autocreate.pm (create undefined RF devices, logs and plots)
+ - feature: on-for-timer added for X10 modules (Boris)
+ - bugfix: pgm3: Better check of availability of google-weather (MartinH)
+ - feature: pgm3: DBLog added for everything except UserDefs
+ (Gerhard Pfeffer / MartinH)
+ - feature: pgm2 style changes, SVG in background, optional compression
+
+- 2009-11-28 (4.8)
+ - bugfix: loosing data when sending FS20 messages in a group
+ - bugfix: better handling of disconnected CUN
+ - feature: softfhtbuffer added to CUL
+ - bugfix: pgm3: Pulldown-Menu FHTDEV with error-check (MartinH)
+ - feature: duplicate buffer added for multi-cul/-fhz setups
+ - feature: 20_OWFS.pm for 1-Wire via OWFS added (Martin Fischer)
+ - feature: 21_OWTEMP.pm for 1-Wire Digital Thermometer added (Martin Fischer)
+ - feature: CUL_FHTTK from Kai
+ - feature: pgm3: Google-Weather, Battery-Check, Log-View added (MartinH)
+ - feature: CUL_RFR (RF_ROUTING) added
+ - feature: Command save retains now the order of the old config file
+ - feature: List parameter added (list .* RFR_MSGCNT)
+
+- 2009-10-23 (4.7)
+ - bugfix: Reattached corrupted CUL device caused uninitialized message
+ - bugfix: CUL/HMS changes, HMS cleanup
+ - bugfix: EM/EMWZ/EMGZ set changed to work in FHEMWEB
+ - bugfix: Avoid unitialized in xmllist for corrupt readings, reporter Boris
+ - bugfix: Add binmode to 01_fhemweb.pm for windows
+ - bugfix: Uniform check for windows, enable CUL for windows.
+ - bugfix: CUL/HMS parsing patches from Peter
+ - bugfix: Fixes for Windows by Klaus
+ - bugfix: Another "rereadcfg" bugfix
+ - feature: Update to the current (1.27) CUL FHT interface
+ - feature: suppress inplausible readings from USF1000
+ - feature: get time, fwrev, set reopen for CM11 (Boris 2009-09-12)
+ - bugfix: FHZ_ReadAnswer bugfix for Windows (Klaus, 20.8.2009)
+ - feature: CUL: device access code reorganized, TCP/IP support added (CUN)
+ - feature: Pachube module from Axel
+ - feature: dumpdef module from Axel in contrib
+ - feature: javascripting support in FHEMWEB (Klaus/Axel)
+ - feature: Module 09_BS.pm for brightness sensor added (Boris 2009-09-20)
+
+- 2009-07-03 (4.6)
+ - bugfix: fht actuator message clarification by Klaus
+ - feature: getstate command from Martin (25.12)
+ - bugfix: at drifts for relative timespecs
+ - bugfix: Add IODev to CUL/EM/CUL_WS/HMS/KS300
+ - bugfix: FileLog get (pgm2 plots) wont find the first row in the file
+ - feature: 00_CUL: Answer CUR requests (status/time/fht)
+ - bugfix: support for second correction factor for EMWZ in 15_CUL_EM added
+ - feature: CUL further sets/gets added
+ - feature: Removed msghist for multiple FHZ handling, IODev attribute added
+ - bugfix: cut off string "(counter)" from fallback value in 13_KS300.pm
+ - feature: daily/monthly cumulated values for EMWZ/EMGZ/EMWM with 15_CUL_EM
+ - feature: 01_FHEMWEB.pm: multiple room assignments
+ - feature: 01_FHEMWEB.pm: fixedrange with optional [day|week|month|year]
+ - feature: 01_FHEMWEB.pm: attr title and label for flexible .gplot files
+ - feature: fhem.pl: attr global logdir used by wildcard %ld
+ - feature: do not block on disconnected devices (FHZ/CM11/CUL)
+ - bugfix: deleting at definition in the at command
+ - bugfix: deleting a notify/at/watchdog definition in a notify/at/watchdog
+ - feature: devspec =. E.g. set room=kitchen off; list disabled=
+ - feature: Common Module calling for CUL/FHZ/CM11
+ - feature: Store CUL sensitivity info
+ - feature: avoid the "unknown/help me" message for unloaded devices
+ - feature: structure module for large installations
+ - feature: Cost Control in 15_CUL_EM (CostPerUnit, BasisFeePerMonth)
+ - feature: add counter differential per time in 81_M232Counter.pm
+ - feature: added USB compendium to documentation
+ - feature: pgm3: Documentation for pgm3 updated, HMS100CO added (and bugfix)
+ - bugfix: Defining a repeated at job in a sunrise/sunset at job fails
+ - bugfix: FHT "summer" fix (avoiding a lot of syncnow)
+ - feature: FHEMWEB modules added
+ - feature: holiday module + doc + example + holiday2we attribute
+ - bugfix: sunrise stuff fixed, doc missing
+ - feature: CUL FHT sending added
+ - bugfix: workaround to make M232 counter wraparound
+ - feature: sequence module added
+ - feature: Google Weather API support for FHEM (Boris 2009-06-01)
+ - feature: lazy attribute for FHT devices (Boris 2009-06-09)
+ - feature: tmpcorr attribute for FHT devices
+ - feature: CUL_EM generates an event for each of the READINGS
+ - feature: USF1000S support for FHEM added (Boris 2009-06-20)
+ - feature: CUL supports HMS (culfw >= 1.22 needed)
+ - feature: CUL shutdown procedure added
+ - feature: 14_CUL_WS: better error checking
+ - bugfix: webpgm2 multi line editing is working again
+
+- 2008-12-23 (4.5)
+ - bugfix: further 01_FHEMWEB cleanup
+ - feature: CUL support for FS20(r/w), FHT(readonly), KS300 and EM
+ - feature: command list outputs the device attributes too
+ - bugfix: rename bugs fixed
+ - bugfix: better integration of ReadyFn (Windows), slight overall speedup
+ - bugfix: Ignore/correct casing when autoloading modules
+ - bugfix: at is executed twice after a modify (rufus99, 2008-09-10)
+ - feature: FHT internal modifications (better protocol understanding)
+ - feature: add timestamp to inform
+ - feature: The strange stty settings in 00_FHEM.pm are optional
+ - bugfix: webpgm2 iPhone fix
+ - feature: fullinit and reopen commands for FHZ added (Boris 2008-11-01)
+ - bugfix: undefined NotifyFn in fhem.pl (Boris 2008-11-01)
+ - feature: new modules 00_CM11.pm and 20_X10.pm for integration of X10
+ devices in fhem (Boris 2008-11-02)
+ - feature: X10 support for pgm3 (Boris 2008-11-02)
+ - bugfix: FHT short message warning
+ - bugfix: rereadconfig crashes with active webpgm2 connections (2008-11-13)
+ - bugfix: watchdog crash (2008-11-15)
+ - bugfix: Strange call for nonexistent MyCUL: ReadFn
+ - feature: webpgm2: gplot output goes to /tmp/gnuplot.err
+ - feature: devspec TYPE,DEF,STATE. e.g. list TYPE:FS20, set DEF:123 on
+ - bugfix: at schedules 2 events after the DST change (fix not verified)
+ - feature: commandref.html reorg. There are now device sections.
+ - feature: CUL / CUL_EM / CUL_WS documentation
+ - feature: do not block fhem when the CUR is disconnected
+ - bugfix: correct correction factors for EMEM in 15_CUL_EM.pm
+ - bugfix: more stable CUL initialization
+ - feature: reworked 15_CUL_EM.pm to account for timer wraparounds, more
+ readings added
+ - feature: speed gain through disabled refreshvalues query to all FHTs at
+ definition; if you want it back at a "set myFHT report1 255
+ report2 255" command to the config file.
+ - feature: fhem commands may be added in modules. XmlList is external now.
+ - bugfix: rereadcfg from webpgm2 does not crash fhem.pl
+ - feature: jsonlist command from Martin (contrib/JsonList)
+ - feature: contrib/rotateShiftWork from Martin
+ - feature: contrib/fhem2speech from Martin
+ - bugfix: attributes of at devices disappear
+ - feature: attribute rainadjustment for KS300 (Boris 2008-12-17)
+ - bugfix: deleting at / watchdog while active creates an empty device
+ - feature: ExactId trigger added for wildcard HMS devices
+
+- 2008-08-04 (4.4)
+ - feature: RM100-2 battery empty warning (mare 23.07.08)
+ - feature: optimising the pgm2/SVG memory usage
+ - feature: autoloading FHEM modules
+ - bugfix: STATE/$value is carrying again the correct value
+ - feature: enhancing the Makefile and the documentation
+ - feature: 90_at is using now InternalTimer, subsecond precision added
+ - feature: HMS100-FIT added (01.01.08 by Peter and 22.01.08 by Juergen)
+ - feature: 91_watchdog added to handle the HMS100-FIT
+ - feature: cum_kWh/cum_m3 added to EMWZ/EMGZ (11.01.08 by Peter)
+
+- 2008-07-12 (4.3)
+ - bugfix: KS300 state was wrong after the STATE bugfix
+ - feature: HMS100CO (by Peter)
+ - feature: EMGZ (by Peter)
+ - feature: Generate warning if too many commands were sent in the last hour
+ - doc: linux.html: Introduction (Peter S.)
+ - feature: contrib/82_M232Voltage.pm (by Boris, 24.12)
+ - feature: delattr renamed to deleteattr (Rudi, 29.12)
+ - feature: defattr renamed to setdefaultattr (Rudi, 29.12)
+ - feature: device spec (list/range/regexp) for most commands implemented
+ - feature: %NAME, %EVENT, %TYPE parameters in notify definition
+ - feature: added 93_DbLog.pm, database logging facility (Boris, 30.12.)
+ - feature: webfrontend/pgm2 converted to a FHEM module
+ - bugfix: 99_SUNRISE_EL.pm: may schedule double events
+ - bugfix: 62_EMEM.pl, contrib/em1010.pl: correct readings for energy_kWh
+ and energy_kWh_w (Boris, 06.01.08)
+ - feature: global attr allowfrom, as wished by Holger (8.1.2008)
+ - feature: FHT: multiple commands, softbuffer changes, cmd rename, doc
+ - feature: EM1010PC: automatic reset
+ - feature: contrib/00_LIRC.pm (25.3, by Bernhard)
+ - bugfix : 00_FHZ: additional stty settings for strange Linux versions
+ - bugfix : pgm2 wrong temp summary for FHT's (reported by O.D., 16.4.2008)
+ - feature: FHEM modules may live on a filesystem with "ignorant" casing (FAT)
+ - feature: FileLog "set reopen" for manual tweaking of logfiles.
+ - feature: multiline commands are supported through the command line
+ - feature: pgm2 installation changes, multiple instances, external css
+ - feature: 87_ws2000.pm (thomas 10.05.08)
+ - contrib: ws2000_reader.pl Standalone decoder and server (thomas 10.05.08)
+ - doc: update fhem.html and commandline.html reflecting ws2000 and
+ windows installation(thomas 10.05.08)
+ - feature: add ReadyFn to fhem.pl in main loop to have an alternative for
+ select, which is not working on windows (thomas 11.05)
+ - feature: set timeout to 0.2s, if HandleTimeout returns undef=forever
+ - bugfix : WS2000:fixed serial port access on windows by replacing FD with
+ ReadyFn
+ - bugfix : FileLog: dont use FH->sync on windows (not implemented there)
+ - feature: EM, WS300, FHZ:Add Switch for Device::SerialPort and
+ Win32::SerialPort to get it running in Windows (sorry, untested)
+ - bugfix: FileLog undefined $data in FileLog_Get
+ - feature: fhem.pl check modules for compiletime errors and do not initialize
+ them
+ - feature: M232 add windows support (thomas 12.05.08)
+ - feature: add simple ELV IPWE1 support (thomas 12.05.08)
+ - feature: FileLog get to read logfiles. Used heavily by webpgm2
+ - feature: webpgm2: gnuplot-scroll mode to navigate/zoom in logfiles
+ - bugfix: deleting FS20 device won't result in unknown device (Daniel, 11.7)
+ - feature: webpgm2 generates SVG's from logs: no need for gnuplot
+ - bugfix: examples corrected to work with current syntax
+
+- 2007-12-02 (4.2)
+ - feature: added archivedir/archivecmd to the the main logfile
+ - feature: 99_Sunrise_EL.pm (does not need any Date modules)
+ - bugfix: seldom xmllist error resulting in corrupt xml (Martin/Peter, 4.9)
+ - bugfix: FHT mode holiday_short added (9.9, Dirk)
+ - bugfix: Modifying a device from its own trigger crashes (Klaus, 10.9)
+ - feature: webpgm2 output reformatted
+ - feature: webpgm2 displaying multiple plots
+ - feature: FHT lime-protection code discovered by Dirk (7.10)
+ - feature: softwarebuffer for FHT devices (Dirk 17.10)
+ - feature: FHT low temperatur warning and offset (Dirk 17.10)
+ - change: change FHT state into warnings (Dirk 17.10)
+ NOTE: you'll get an undefined type state &
+ undefined type unknown_85 after upgrade.
+ - feature: Softwarebuffer code simplified (Rudi 22.11)
+ - bugfix: bug #12327 doppeltes my
+ - bugfix: set STATE from trigger
+ - bugfix: readings state vs STATE problem (xmllist/trigger)
+ - change: SUNRISE doc changed (99_SUNRISE.pm -> 99_SUNRISE_EL.pm)
+ - feature: support for the M232 ELV device (Boris, 25.11)
+ - feature: alternativ Quad-based numbers for the FS20 (Matthias, 24.11)
+ - feature: dummy type added (contrib/99_dummy.pm)
+
+- 2007-08-05 (4.1)
+ - doc: linux.html (private udev-rules, not 50-..., ATTRS)
+ - bugfix: setting devices with "-" in their name did not work
+ - doc: fhem.pl and commandref.html (notifyon -> notify, correction
+ of examples)
+ - feature: modify command added
+ - feature: The "-" in the name is not allowed any more
+ - bugfix: disabled notify causes "uninitialized value" (STefan, 1.5)
+ - bugfix: deleted FS20 items are still logging (zombie) (Gerhard, 16.5)
+ - bugfix: added FS20S8, removed stty_parmrk (Martin, 24.5)
+ - feature: added archivedir/archivecmd to the FileLog
+ - feature: added EM1010PC/EM1000WZ/EM1000EM support
+ - bugfix: undefined messages for unknown HMS devs (Peter, 8.6)
+ - bugfix: em1010 and %oldvalue bugs (Peter, 9.6)
+ - bugfix: SCIVT solar controller (peterp, 1.7)
+ - bugfix: WS300 loglevel change (from 2 to 5 or device specific loglevel)
+ - feature: First steps for a Fritz!Box port. See the fritzbox.html
+
+- 2007-04-14 (4.0)
+ - bugfix: deny at +{3}... (only +*{3} allowed), reported by Bernd, 25.01
+ - bugfix: allow numbers greater then 9 in at +{}
+ - feature: new 50_WS300.pm from Martin (bugfix + rain statistics, 26.01)
+ - feature: renamed fhz1000 to fhem
+ - feature: added HISTORY and README.DEV
+ - doc: Added description of attribute "model".
+ - bugfix: delete the pidfile when terminating. (reported by Martin and Peter)
+ - feature: attribute showtime in web-pgm2 (show time instead of state)
+ - feature: defattr (default attribute for following defines)
+ - feature: added em1010.pl to the contrib directory
+ - doc: added linux.html (multiple devices, udev-links)
+ - REORGANIZATION:
+ - at/notify "renamed" to "define at/notify"
+ - logfile/modpath/pidfile/port/verbose "renamed" to "attr global xxx"
+ - savefile renamed to "attr global statefile"
+ - save command added, it writes the configfile and the statefile
+ - delattr added
+ - list/xmllist format changed
+ - disable attribute for at/notify/filelog
+ See HISTORY for details and reasoning
+ - added rename command
+ - webpgm2 adapted to the new syntax, added device specific attribute
+ and "set" support, gnuplot files are configurable, links to the
+ documentation added.
+ - bugfix: more thorough serial line initialization
+
+- 2007-01-25 (3.3)
+ - bugfix: 50_WS300.pm fix from Martin
+ - bugfix: pidfile does not work as expected (reported by Martin)
+ - bugfix: %U in the log-filename is wrong (bugreport by Juergen)
+ - feature: %V added to the log-filename
+ - feature: KS300 wind calibration possibility added
+ - feature: (software) filtering repeater messages (suggested by Martin)
+ - feature: the "client" fhz1000.pl can address another host
+ - bugfix: empty FHT battery is not reported (by Holger)
+ - feature: new FHT codes, e.g. month/day/hour/minute setting (by Holger)
+
+- 2007-01-14 (3.2)
+ - bugfix: example $state changed to $value (remco)
+ - bugfix: sun*_rel does not work correctly with offset (Sebastian)
+ - feature: new HMS100TF codes (Sebastian)
+ - feature: logging unknown HMS with both unique and class ID (Sebastian)
+ - feature: WS300: "Wetter-Willi-Status", rain_raw/rain_cum added, historic
+ data (changes by Martin & Markus)
+ - bugfix: broken rereadcfg / CommandChain after init
+ (reported by Sebastian and Peter)
+ - bugfix: sunrise_coord returned "3", which is irritating
+
+- 2007-01-08 (3.1)
+ - bugfix: delete checks the arg first "exactly", then as a regexp
+ - bugfix: sun*_rel does not work correctly with offset (Martin)
+ - feature: FAQ entry on how to install the sunrise stuff.
+ - feature: the inner core is modified to be able to handle
+ more than one "IO" device, i.e multiple FHZ at the same time,
+ or FHZ + FS10 + WS300. Consequences:
+ - "fhzdev " replaced with "define FHZ "
+ - "sendraw " replaced with "set raw "
+ - module function parameters changed (for module developers)
+ - set FHZ activefor dev
+ - select instead sleep after sending FHZ commands
+ - the at timer is more exact (around 1msec instead of 1 sec)
+ - ignoring FS20 device 0001/00/00
+ - feature: contrib/serial.pm to debug serial devices.
+ - feature: WS300 integrated: no external program needed (Martin)
+ - feature: updated to pgm3-0.7.0, see the CHANGELOG at Martins site
+
+- 2006-12-28 (3.0)
+ - bugfix: KS300: Make the temperature negative, not the humidity
+ - bugfix: generate correct xmllist even with fhzdev none (Martin, 12.12)
+ - feature: one set command can handle multiple devices (range and enumeration)
+ - feature: new FS20 command on-till
+ - feature: perl: the current state is stored in the %value hash
+ - feature: perl: sunset renamed to sunset_rel, sunset_abs added (for on-till)
+ - feature: perl: isday function added
+ - feature: follow-on-for-timer attribute added to set the state to off
+ - bugfix: the ws300pc negative-temp bugfix included (from Martin Klerx)
+ - feature: version 0.6.2 of the webpgm3 included (from Martin Haas)
+
+- 2006-11-27 (2.9a)
+ - bugfix: FileLog+Unknown device generates undefined messages
+ - bugfix: trigger with unknown device generates undefined messages
+
+- 2006-11-19 (2.9)
+ - bugfix: fhz1000.pl dies at startup if the savefile does not exist
+ - bugfix: oldvalue hash is not initialized at startup (peter, Nov 09)
+ - feature: Notify reorganization (requested by juergen and matthias) :
+ - inform will be notified on both real events and set or trigger commands
+ - filelogs will additionally be notified on set or trigger commands
+ - the extra_notify flag is gone: it is default now, there is a
+ do_not_notify flag for the opposite behaviour.
+ - feature: at timespec as a function. Example: at +*{sunset()}
+ commandref.html and examples revisited.
+ - feature: 99_SUNRISE.pm added to use with the new at functionality
+ (replaces the old 99_SUNSET.pm)
+ - feature: webpgm2 "everything" room, at/notify section, arbitrary command
+ - bugfix: resetting the KS300
+ - feature: updated ws300pc (from martin klerx, Nov 08)
+ - bugfix: parsing timed commands implemented => thermo-off,thermo-on and
+ activate replaced with timed off-for-timer,on-for-timer and
+ on-old-for-timer (reported by martin klerx, Nov 08)
+ - feature: pidfile (requested by peter, Nov 10)
+ - bugfix: function 81 is not allowed
+
+- 2006-11-08 (2.8)
+ - feature: store oldvalue for triggers. perl only. requested by peter.
+ - feature: inform cmd. Patch by Martin. There are many Martins around here :-)
+ - bugfix: XML: fix & and < and co
+ - bugfix: Accept KS300 negative temperature values
+ - change: the FS20 msg "rain-msg" is called now "activate"
+ - feature: start/stop rc script from Stefan (in the contrib directory)
+ - feature: attribute extra_notify: setting the device will trigger a notify
+ - feature: optional repeat count for the at command
+ - feature: skip_next attribute for the at command
+ - feature: WS300 support by Martin. Check the contrib/ws300 directory.
+ - bugfix: 91_DbLog.pm: retry if the connection is broken by Peter
+ - feature: Martin's pgm3-0.5.2 (see the CHANGELOG on his webpage)
+ - feature: RRD logging example by Peter (in the contrib/rrd directory)
+
+- 2006-10-03 (2.7)
+ - bugfix: Another try on the > 25.5 problem. (Peters suggestion)
+ - feature: 99_ALARM.pm from Martin (in the contrib directory)
+ - feature: HMS100TFK von Peter P.
+ - feature: attribute loglevel
+ - feature: attribute dummy
+ - feature: attr command documented
+ - feature: the current version (0.5a) of the pgm3 from Martin.
+
+- 2006-09-13 (2.6a)
+ - bugfix: the FHT > 25.5 problem again. A never ending story.
+
+- 2006-09-08 (2.6)
+ - bugfix: updated the examples (hint from Juergen)
+ - bugfix: leading and trailing whitespaces in commands are ignored now
+ - feature: making life easier for perl oneliners: see commandref.html
+ (motivated by STefans suggestions)
+ - feature: include command and multiline commands in the configfiles (\)
+ - bugfix: web/pgm2 KS300 rain plot knows about the avg data
+ - bugfix: the FHT > 25.5 problem. Needs to be tested.
+ - feature: log unknown devices (peters idea, see notifyon description)
+ - feature: HMS wildcard device id for all HMS devices. See the define/HMS
+ section in the commandref.html for details.
+ NOTE: the wildcard for RM100-2 changed from 1001 to 1003.
+ (peters idea)
+ - feature: rolwzo_no_off.sh contrib file (for those who were already closed
+ out by automatically closing rollades, by Martin)
+ - feature: the current version (0.4.5) of the pgm3 from Martin.
+
+- 2006-08-13 (2.5)
+ Special thanks to STefan Mayer for a lot of suggestions and bug reports
+ - If a command is enclosed in {}, then it will be evaluated as a perl
+ expression, if it is enclosed in "" then it is a shell command, else it is
+ a "normal" fhz1000 command.
+ "at" and "notifyon" follow this convention too.
+ Note: a shell command will always be issued in the background.
+ - won't die anymore if the at spec contains an unknown command
+ - rereadcfg added. Sending a HUP should work better now
+ - escaping % and @ in the notify argument is now possible with %% or @@
+ - new command trigger to test notify commands
+ - where you could specify an fhz command, now you can specify a list of
+ them, separated by ";". Escape is ;;
+ - KS300 sometimes reports "negative" rain when it begins to rain. Filter
+ such values. israining is set when the raincounter changed or the ks300
+ israining bit is set.
+ - sleep command, with millisecond accuracy
+ - HMS 100MG support by Peter Stark.
+ - Making FHT and FS20 messages more uniform
+ - contrib/fs20_holidays.sh by STefan Mayer
+ (simulate presence while on holiday)
+ - webfrontends/pgm4 by STefan Mayer: fs20.php
+ - KS300 avg. monthly values fixed (hopefully)
+ - deleted undocumented "exec" function (you can write it now as {...})
+
+- 2006-07-23 (2.4)
+ - contrib/four2hex (to convert between ELV and our codes) by Peter Stark
+ - make dist added to set version (it won't work in a released version)
+ - reload function to reload (private) perl modules
+ - 20_FHT.pm fix: undef occures once without old data
+ - "setstate comment" is replaced with the attr command (i.e. attribute).
+ The corresponding xmllist COMMENT tag is replaced with the ATTR tag.
+ Devices or logs can have attr definitions.
+ - webfrontend/pgm2 (fhzweb.pl) updated to handle "room" attributes(showing
+ only devices in this room).
+ - version 0.4.2 of webfrontend/pgm3 integrated.
+ - contrib/ks300avg.pl to compute daily and monthly avarage values.
+ - the 40_KS300.pm module is computing daily and monthly avarages for the
+ temp/hum and wind values and sum of the rain. The cum_day and cum_month
+ state variables are used as helper values. To log the avarage use the
+ .*avg.* regexp. The regexp for the intraday log will trigger it also.
+ - Added the contrib file garden.pl as a more complex example: garden
+ irrigation. The program computes the time for irrigation from the avarage
+ temperature reported by the ks300-2.
+ - Enable uppercase hex codes (Bug reported by STefan Mayer)
+ - Renamed the unknown_XX FHT80b codes to code_XXXXXX, this will produce
+ "Undefined type" messages when reading the old save file
+ - RM100-2 added (thanks for the codes from andikt).
+
+- 2006-6-22 (2.3)
+ - CRC checking (i.e. ignoring messages with bad CRC, message on verbose 4)
+ - contrib/checkmesg.pl added to check message consistency (debugging)
+ - FHT: unknown_aa, unknown_ba codes added. What they are for?
+ - Empty modpath / no modpath error messages added (some user think modpath is
+ superfluous)
+ - Unparsed messages (verbose 5) now printed as hex
+ - Try to reattach to the usb device if it disappears: no need to
+ restart the server if the device is pulled out from the USB socket and
+ plugged in again (old versions go into a busy loop here).
+ - Supressing the seldom (ca 1 out of 700) short KS300 messages.
+ (not sure how to interpret them)
+ - Added KS300 "israining" status flag. Note: this not always triggers when it
+ is raining, but there seems to be a correlation. To be evaluated in more
+ detail.
+ - notifyon can now execute "private" perl code as well (updated
+ commandref.html, added the file example/99_PRIV.pm)
+ - another "perl code" example is logging the data into the database
+ (with DBI), see the file contrib/91_DbLog.pm. Tested with an Oracle DB.
+ - logs added to the xmllist
+ - FHT80b: Fix measured-temp over 25.5 (handling the tempadd messages better)
+
+- 2006-05-20 (2.2)
+ - FHZ1300 support verified (+ doc changes)
+ - KS300 support added (with Temperature, Humidity, Wind speed, Rain).
+ Not verified/undecoded: subzero temp, weak battery, Is-raining flag,
+ wind speed > 100km/h
+ - webpgm2 log fix for "offed" FHT devices (with no actuator data)
+ - webpgm3 upgrade (by Martin Haas, see webpgm/pgm3/docs/CHANGES for details)
+ - HMS logging/state format changed to make it similar to KS300
+ - added HMS100WD (thanks to Sascha Pollok)
+ - ntfy/logging changed to be able to notify for multiple attributes
+ arriving in one message
+ - central FHTcode settable (see commandref.html)
+ - optionally listen for non-local requests (port global)
+ - unknown logging
+ - FAQ
+
+- 2006-04-15 (2.1)
+ - webfrontend/pgm2 changes:
+ - make it work on Asus dsl-routers (no "use warnings")
+ - css/readonly configurable
+ - Formatting for HMS data
+ - comments can be added to each device (setstate comment:xxx)
+ - testbed to dry-test functionality (test directory)
+ - added an empty hull for the KS300 weather module
+ - added undocumented "exec" function to call arbitrary program parts
+ for debugging. Example: exec FhzDecode("81xx04xx0101a0011234030011");
+ - webfrontend/pgm3, contributed by Martin Haas
+ - fixed pgm1: changing values should work now
+
+- 2006-04-02 (2.0)
+ - XmlList and webfrontend/pgm1 programs from Raoul Matthiessen
+ - list tries to display the state and not the last command
+ - Both log facilities (FileLog and Log) take wildcards
+ (week, year, month, etc) to make logfile rotating easier
+ - webfrontend/pgm2
+
+- 2006-02-12 (1.9b)
+ - Bugfix: Fixing the same bug again (thanks to Martin)
+
+- 2006-02-12 (1.9a)
+ - Bugfix: wrong rights for HMS and wrong place for readonly
+ (thanks to Juergen)
+
+- 2006-02-10 (1.9)
+ (aka as the Juergen release)
+ - The FHZ1300 is reported to work
+ - Bugfix: spaces before comment in the config file should be ignored
+ - added FS20STR codes to 10_FS20.pm
+ - names restricted to A-Za-z0-9.:- (especially _ is not allowed)
+ - delete calles now an UndefFn in the module
+ - implementation of FS20 function group/local master/global master
+ - the list command tells you the definition of the device too
+
+- 2006-01-05 (1.8)
+ - Bugfix: detailed FS20 status was not set from external event
+ - Bugfix: setstate for FS20 returned the last state set
+ - Bugfix: undefined FS20 devices (can) crash the server
+ - HMS module added by Martin Mueller
+ (currently supporting the HMS100T & HMS100TF)
+ - Log modules added, the first one being a simple FileLog
+ (inspired by Martin Mueller)
+ - A little gnuplot script to display temperature and actuator changes
+
+- 2006-01-04 (1.7)
+ - the at command can be used to execute something repeatedly with *
+ - ntfy can filter on device or on device+event with a regexp
+ - checking the delete and notify regexps if they make sense
+ - the FHT init string is now a set command (refreshvalues)
+ - shutdown saves the detailed device information too
+
+- 2006-01-03 (1.6)
+ - signal handling (to save the state on shutdown)
+ - module FHZ addded (for the FHZ1000PC device itself)
+ - added the get function (to make the initialization prettier)
+ - the module ST was renamed to FS20
+ - FS20 timer commands added
+ - modules command removed (we are loading everything from the modpath
+ directory)
+ - FHT80b module added (yes, it is already useful, you can set
+ and view a lot of values)
+ - documentation adapted
+ - Added a TODO file
+
+- 2005-12-26 (1.5)
+ - "modularized" in preparation for the FHT80B -> each device has a type
+ - added relative "at" commands (with +HH:MM:SS)
+ - multiple commands on one line separated with ;
+ - sleeping 0.22 seconds after an ST command
+ - some commands/syntax changed:
+ - switch => set
+ - device => fhzdevice
+ - define ... => define ...
+ - the state of the devices and the at commands are saved
+ - at start always sending a "set 0001 00 01" to enable the FHZ receiever.
+ This is a workaround.
+ - doc rewrite, examples directory
+
+- 2005-11-10 (1.4)
+ - Reformatting the package and the documentation
+ - New links
+
+- 2005-10-27 (1.3)
+ - Bugfix: multiple at commands at the same time.
diff --git a/fhem/FHEM/00_SONOS.pm b/fhem/FHEM/00_SONOS.pm
new file mode 100755
index 000000000..43dfccb00
--- /dev/null
+++ b/fhem/FHEM/00_SONOS.pm
@@ -0,0 +1,6668 @@
+########################################################################################
+#
+# SONOS.pm (c) by Reiner Leins, 2014
+# rleins at lmsoft dot de
+#
+# $Id$
+#
+# FHEM module to commmunicate with a Sonos-System via UPnP
+#
+# !WARNING!
+# This Module needs UPnP-Library
+# Installation:
+# * LWP::Simple
+# * HTML::Entities
+# * Net::Ping
+# * File::Path
+# * Time::HiRes
+# * threads
+# * Thread::Queue
+#
+# Internal Version 2.6 - December, 2014
+#
+# define SONOS [[[interval] waittime] delaytime]
+#
+# where may be replaced by any name string
+# is the connection identifier to the internal server. Normally "localhost" with a locally free port e.g. "localhost:4711".
+# interval is the interval in s, for checking the existence of a ZonePlayer after definition
+# waittime is the time to wait for the subprocess. defaults to 8.
+# delaytime is the Time for delaying the network- and subprocess-part of this module. If the port is longer than neccessary blocked on the subprocess-side, it may be useful.
+#
+########################################################################################
+# Changelog
+#
+# 2.6: Die Zeichenkodierung bei Datenübernahme vom Zoneplayer kann nun über das Attribut characterDecoding eingestellt werden
+# Bei Gruppen-/LineIn-/SPDIF-Wiedergabe wird wieder die liefernde Zone angezeigt (als Albumname)
+# SetCurrentPlaylist hatte einen Tippfehler, und konnte dementsprechend nicht ausgeführt werden
+# Unter Ubuntu gibt es die SHA1-Library nicht mehr, sodass man dort eine andere einbinden muss (SHA)
+# Wenn bei den Methoden zum heraussuchen der FHEM-Devices etwas nicht gefunden wurde, dann wird jetzt eine Fehlermeldung mit dem gesuchten Merkmal ausgegeben
+# Es können jetzt IP-Adressen von der UPnP-Verarbeitung ausgeschlossen werden
+# Es wird nun ein fester Mimetype 'jpg' für Google Music und Simfy festgelegt
+# Beim Alarm-Reading-Setzen wurde etwas doppelt gesetzt, was u.U. zu Fehlern führen konnte
+# Die Read-Function wurde robuster gegen Übertragungsprobleme gemacht
+# Das Wiederherstellen des Playerzustands nach einem PlayURITemp sieht nun auch den PlayBar-Eingang vor
+# Es wird nun anstatt der WebCmd-Auflistung ein RemoteControl beim Erstellen der Komponenten erzeugt
+# Wenn sich doch noch ein UPnP-Device als Player ausgibt, dann wird dies nun etwas sicherer erkannt
+# Der Eingang einer Playbar kann nun auf anderen Playern wiedergegeben werden (mittels des Fhem-Namens)
+# Lesen wurde auf DevIo_SimpleRead umgestellt (stand auf DevIo_DoSimpleRead). Dadurch wird das Fehlerhandling vereinfacht.
+# Man kann die Zeit für das Warten auf den Subprozess nun beim Define mit angeben. Standardmäßig wird 8 verwendet.
+# Es wird nun in regelmäßigen Abständen (Intervall wie bei der Prüfung der Sonosplayer) geprüft, ob die Verbindung zum Subprozess noch funktioniert
+# Die Readings, die beim Start nicht geladen werden dürfen, werden beim Start von Fhem nun initialisiert. Damit wird die Fehlermeldung in MOTD verhindert
+# Der Zeitstempel in der Konsolenausgabe berücksichtigt nun auch die Global-Angabe, ob Millisekunden mit ausgegeben werden sollen
+# Der Start wurde komplett überarbeitet. Nun sind die einzelnen Wartebereiche in Timer ausgelagert, sodass Fhem nicht mit warten blockiert wird.
+# Die Wiederherstellung des alten Playerzustands nach einem PlayURITemp (und damit auch bei Speak) wird nun auch bei Dateien gemacht, die mit 0s Dauer ermittelt werden (da sie sehr kurz sind).
+# Der Aufruf der Google Text2Speech-Engine wird nun bei mehr als 95 Zeichen in mehrere Aufrufe aufgeteilt. Damit sind nun auch lange Texte über Google möglich, allerdings geht die Textmelodie u.U. verloren.
+# Man kann jetzt für die Speak-Erzeugung ein JPG- oder PNG-Bild angeben. Dies kann für jedes Speak-Programm getrennt erfolgen.
+# Beim Speak-Aufruf werden Umlaute nun auch korrekt an den Text2Speech-Generator (z.B. Google) übergeben, und korrekt in den MP3-Tag geschrieben
+# Spotify-Cover werden nun in größerer Auflösung (meist 640x640 Pixel) direkt von Spotify heruntergeladen, und enthalten dann nicht mehr das Spotify-Logo
+# Es gibt zwei neue Readings 'currentAlbumArtURL' und 'nextAlbumArtURL', die die Originalpfade zum eigenen Download darstellen
+# Es gibt nun zwei Prozeduren, die als Grundlage oder Beispiel für die Verwendung von ReadingsGroups dienen können: 'SONOS_getTitleRG' und 'SONOS_getCoverRG'
+# Beim automatischen Erzeugen der Sonos-Devices werden nun ReadingsGroups mit mehr Informationen erzeugt. Dies kann (und soll) auch als Vorlage für eigene Ideen Verwendet werden
+# Es gibt eine weitere ReadingsGroup-Vorlage (steht auch im Wiki), mit der Listen (Playlisten, Favoriten und Radios) dargestellt werden können
+# Es gibt zwei neue Attribute "proxyCacheTime" und "proxyCacheDir", die einen Cache im Proxy aktivieren
+# Es gibt drei neue Getter am Sonosplayer-Device: "FavouritesWithCover", "PlaylistsWithCover" und "RadiosWithCovers". Diese geben eine Datenstruktur zurück, die den Titel und das Cover des Elements enthält.
+# Die Prozeduren für die Anzeige des aktuellen und nächsten Titels verwenden nun ausschließlich DIV-Container (anstatt Tabellen). Dadurch klappt die Anzeige auch in einem Dashboard.
+# Die Standard-ReadingsGroup-Anzeige durch die Prozeduren sind nun Parametrisiert. Man kann die minimale Breite der Anzeige sowie den Abstand zwischen aktuellem und nächstem Titel in Pixel festlegen
+# Manche Sender (z.B. Capital Radio Türkiye) haben verbotene Newlines in den Titelinformationen mitgesendet. Diese werden nun entfernt.
+# Man kann das Cover nun anklicken (oder antippen), und erhält dann die Coverdarstellung in einer Vollbilddarstellung mit Abspielstatus und Titelinformationen
+# Es gibt zwei neue Befehle 'StartPlaylist' und 'StartRadio', die die gleichen Parameter wie ihre Pendants mit 'Load' am Anfang haben, nur dass hier das Abspielen gleich gestartet wird.
+# Es gibt jetzt ein Reading 'currentTrackPosition', welches bei jedem Transportstate-Wechsel (neuer Titel, Play/Pause/Stop usw.) gesetzt wird. Damit kann man die verbleibende Restzeit eines laufenden Titels ermitteln, bzw. den Pausezeitpunkt anzeigen.
+# Beim Wiedergeben von TV oder sonstigen externen Quellen, wird jetzt nicht mehr das 'leere' Cover angezeigt, sondern ein TV-Cover bzw. ein Default-Input-Cover
+# Aufnahme in das offizielle Release von Fhem
+#
+# 2.5: Verwendung und Speicherung der Benutzer-IDs für Spotify und Napster wurden stabiler gegenüber Sonderzeichen gemacht
+# Spotify-URLs werden im Reading 'currentTrackURI' und 'nextTrackURI' lesbarer abgelegt
+# Ein Fehler beim Öffnen von M3U-Playlistdateien wurde behoben (dafür Danke an John)
+# Überholt: Für die Informationsanfragen an Fhem durch den SubProzess wird nun standardmäßig der Telnet-Port von Fhem verwendet. Wenn das fehlschlägt, wird auf den alten Mechanismus zurückgeschaltet
+# Neu: Es werden keine Informationsanfragen mehr zwischen Fhem und dem SubProzess ausgetauscht. Notwendige Informationen müssen vorher übertragen werden. Das bedeutet, dass bei einer Attributänderung ein Neustart von Fhem erfolgen muss.
+# Es wurde ein Standard-Layout für das RemoteControl-Hilfsmodul angelegt
+# Der Verbose-Level des Sonos-Devices wird nun auch an den SubProzess weitergereicht (auch zur Laufzeit), und beim initialen Start des SubProzess-Threads mitgegeben.
+# AlbumArt von Napster erhält nun den festen Mimetype 'jpg', da dieser nicht übertragen wird
+# Es werden nun die durch Fhem definierten Standard-Attribute mit angeboten
+# Es gab ein Problem mit der Befehlsverarbeitung, wenn das Verbose-Attribut an einem Sonos-Device gesetzt war.
+# Es wird nun auf Änderungsevents für den Zonennamen und das Zonenicon reagiert, und die entsprechenden Readings aktualisiert
+# Es gibt jetzt zwei neue Setter: 'Name' und 'Icon', mit dem der Name und das Icon der Zone eingestellt werden kann
+# Es gibt jetzt einen Getter 'PossibleRoomIcons', welcher die möglichen Angaben für den neuen Setter 'Icon' liefert
+# Das Reading 'ZoneGroupID' wird nun auf eine andere Weise ermittelt und gesetzt
+# Es gib jetzt ein neues Reading 'AlarmRunning', welches auf '1' steht, wenn gerade eine Alarmabspielung aktiv ist
+# Die Namens- und Aufgabenerkennung beim Ermitteln der Player wurde angepasst
+# Der Aufruf von AddMember und RemoveMember wurde bzgl. des SonosDevice-Namen abgesichert, sodass hier kein Absturz mehr bei einer falschen Deviceangabe erfolgt
+# Es gibt jetzt ein neues Reading 'AlarmRunningID', welches bei einer Alarmausführung die ID des aktiven Alarms enthält
+# Das Senden von Aktualisierungen an Fhem wurde etwas sicherer gemacht, wenn Fhem auf der anderen Seite gerade nicht zuhören kann
+# Die Readings 'AlarmList', 'AlarmListIDs' und 'AlarmListVersion' werden nicht mehr aus dem Statefile geladen, da dort Sonderzeichen wie '#' zum Abschneiden der restlichen Zeile führen
+# Anpassung der UPnP-Klasse, damit das Device-Beschreibungsdokument nur noch einmal geladen wird (anstatt wie bisher zweimal)
+# Anpassung im Bereich der Cover Aktualisierung über FhemWeb. Das geht jetzt mit viel weniger Aufwand durch.
+# Es gibt jetzt einen Setter 'SnapshotGroupVolume', der das aktuelle Lautstärkenverhältnis der einzelnen Player einer Gruppe für die folgenden Aufrufe des Setter 'GroupVolume' festhält. Die Anweisungen 'PlayURI' und 'PlayURITemp' (sowie darauf aufbauende Aufrufe wie 'Speak') führen diese Anweisung selbsttätig beim Starten durch.
+# Wenn beim Auffrischen der Subscriptions ein Fehler auftritt, der darauf schließen läßt, dass der Player weg ist, dann wird die entsprechende Referenz aufgeräumt
+# Man kann als relative Angabe bei setVolume nun einen Prozentwert angeben, z.B. '+20%'. Damit wird die Lautstärke um den jeweiligen prozentualen Anteil erhöht oder abgesenkt.
+# Es gibt jetzt ein Reading 'LineInConnected', welches eine '1' enthält, wenn der Line-In-Eingang angeschlossen wurde, sonst '0'.
+#
+# 2.4: Initiale Lautstärkenermittlung wurde nun abgesichert, falls die Anfrage beim Player fehlschlägt
+# Verbesserte Gruppenerkennung für die Anzeige der Informationen wie Titel usw.
+# Fallback (Log) für den Aufruf von Log3 geschaffen, damit auch alte FHEM-Versionen funktionieren
+# Es wurde eine Korrektur im verwendetetn UPnP-Modul gemacht, die eine bessere Verarbeitung der eingehenden Datagramme gewährleistet (dafür Danke an Sacha)
+# Es werden nun zusätzliche Readings (beginnend mit 'next') mit den Informationen über den nächsten Titel befüllt. Diese können natürlich auch für InfoSummarize verwendet werden
+# Es kann nun ein Eintrag aus der Sonos-Favoritenliste gestartet werden (Playlist oder Direkteintrag)
+# Das Benennen der Sonos-Fhem-Devices wird nun auf Namensdoppelungen hin überprüft, und der Name eindeutig gemacht. Dabei wird im Normalfall das neue Reading 'fieldType' an den Namen angehangen. Nur der Master einer solchen Paarung bekommt dann den Original-Raumnamen als Fhem-Devicenamen
+# Es gibt ein neues Reading 'fieldType', mit dem man erkennen kann, an welcher Position in einer Paarung dieser Zoneplayer steht
+# Diverse Probleme mit Gruppen und Paarungen beim neu Erkennen der Sonos-Landschaft wurden beseitigt
+# Es gibt jetzt einen Getter 'EthernetPortStatus', der den Status des gewünschten Ethernet-Ports liefert
+# Es gibt jetzt einen Setter 'Reboot', der einen Neustart des Zoneplayers durchführt
+# Es gibt jetzt einen Setter 'Wifi', mit dem der Zustand des Wifi-Ports eines Zoneplayers gesetzt werden kann
+# Wenn ein Player als "Disappeared" erkannt wird, wird dem Sonos-System dies mitgeteilt, sodass er aus allen Listen und Controllern verschwindet
+# Kleinere Korrektur, die eine bessere Verarbeitung der Kommunikation zwischen Fhem und dem Subprozess bewirkt
+#
+# 2.3: Die Antwort von 'SetCurrentPlaylist' wurde korrigiert. Dort kam vorher 'SetToCurrentPlaylist' zurück.
+# VolumeStep kann nun auch als Attribut definiert werden. Das fehlte in der zulässigen Liste noch.
+# Speak kann nun auch für lokale Binary-Aufrufe konfiguriert werden.
+# Speak kann nun einen Hash-Wert auf Basis des gegebenen Textes in den Dateinamen einarbeiten, und diese dann bei Gleichheit wiederverwenden (Caching)
+# Sonos kann nun ein "set StopAll" oder "set PauseAll" ausführen, um alle Player/Gruppen auf einen Schlag zu stoppen/pausieren
+# Beim Discover-Event wird nun genauer geprüft, ob sich überhaupt ein ZonePlayer gemeldet hat
+# Die UserIDs für Napster und Spotify werden wieder korrekt ermittelt. Damit kann auch wieder ein Playlistenimport erfolgen.
+# Loudness Einstell- und Abfragbar
+# Bass Einstell- und Abfragbar
+# Treble Einstell- und Abfragbar
+# Volume kann nun auch als RampToVolume ausgeführt werden
+#
+# 2.2: Befehlswarteschlange wieder ausgebaut. Dadurch gibt es nur noch das Reading LastActionResult, und alles wird viel zügiger ausgeführt, da Fhem nicht auf die Ausführung warten muss.
+# TempPlaying berücksichtigt nun auch die Wiedergabe von Line-In-Eingängen (also auch Speak)
+# Veraltete, mittlerweile unbenutzte, Readings werden nun gelöscht
+# SetLEDState wurde hinzugefügt
+# Die IsAlive-Überprüfung kann mit 'none' abgeschaltet werden
+# CurrentTempPlaying wird nicht mehr benötigt
+#
+# 2.1: Neuen Befehl 'CurrentPlaylist' eingeführt
+#
+# 2.0: Neue Konzeptbasis eingebaut
+# Man kann Gruppen auf- und wieder abbauen
+# Es gibt neue Lautstärke- und Mute-Einstellungen für Gruppen ingesamt
+# Man kann Button-Events definieren
+#
+# 1.13: Neuer Abspielzustand 'TRANSITIONING' wird berücksichtigt
+# Der Aufruf von 'GetDeviceDefHash' wird nun mit dem Parameter 'undef' anstatt ohne einen Parameter durchgeführt
+#
+# 1.12: TrackURI hinzugefügt
+# LoadPlayList und SavePlayList können nun auch Dateinamen annehmen, um eine M3U-Datei zu erzeugen/als Abspielliste zu laden
+# Alarme können ausgelesen, gesetzt und gelöscht werden
+# SleepTimer kann gesetzt und ausgelesen werden
+# Reading DailyIndexRefreshTime hinzugefügt
+# Bei AddURIToQueue und PlayURI können jetzt auch (wie bei LoadPlayList) Spotify und Napster-Ressourcen angegeben werden
+# Beim Erzeugen des Cover-Weblinks wird nun nur noch die Breite festgelegt, damit Nicht-Quadratische Cover auch korrekt dargestellt werden
+# SONOS_Stringify gibt Strings nun in einfachen Anführungszeichen aus (und maskiert etwaig enthaltene im String selbst)
+#
+# 1.11: Ein Transport-Event-Subscribing wird nur dann gemacht, wenn es auch einen Transport-Service gibt. Die Bridge z.B. hat sowas nicht.
+# Bei PlayURITemp wird nun der Mute-Zustand auf UnMute gesetzt, und anschließend wiederhergestellt
+# Shuffle, Repeat und CrossfadeMode können nun gesetzt und abgefragt werden. Desweiteren wird der Status beim Transport-Event aktualisiert.
+# Umlaute bei "generateInfoSmmarize3" durch "sichere" Schreibweise ersetzt (Lautstärke -> Lautstaerke)
+#
+# 1.10: IsAlive beendet nicht mehr den Thread, wenn der Player nicht mehr erreichbar ist, sondern löscht nur noch die Proxy-Referenzen
+# FHEMWEB-Icons werden nur noch im Hauptthread aktualisiert
+# Getter 'getBalance' und Setter 'setBalance' eingeführt.
+# HeadphoneConnected inkl. minVolumeHeadphone und maxVolumeHeadphone eingeführt
+# InfoSummarize um die Möglichkeit der Volume/Balance/HeadphoneConnected-Felder erweitert. Außerdem werden diese Info-Felder nun auch bei einem Volume-Event neu berechnet (und triggern bei Bedarf auch!)
+# InfoSummarize-Features erweitert: 'instead' und 'emptyval' hinzugefügt
+# IsAlive prüft nicht mehr bei jedem Durchgang bis zum Thread runter, ob die Subscriptions erneuert werden müssen
+#
+# 1.9: RTL.it Informationen werden nun schöner dargestellt (Da steht eine XML-Struktur im Titel)
+# Wenn kein Cover vom Sonos geliefert werden kann, wird das FHEM-Logo als Standard verwendet (da dieses sowieso auf dem Rechner vorliegt)
+# UPnP-Fehlermeldungen eingebaut, um bei einer Nichtausführung nähere Informationen erhalten zu können
+#
+# 1.8: Device-Removed wird nun sicher ausgeführt. Manchmal bekommt man wohl deviceRemoved-Events ohne ein vorheriges deviceAdded-Event. Dann gibt es die gesuchte Referenz nicht.
+# Renew-Subscriptions wurden zu spät ausgeführt. Da war alles schon abgelaufen, und konnte nicht mehr verlängert werden.
+# ZonePlayer-Icon wird nun immer beim Discover-Event heruntergeladen. Damit wird es auch wieder aktualisiert, wenn FHEM das Icon beim Update verwirft.
+# MinVolume und MaxVolume eingeführt. Damit kann nun der Lautstärkeregelbereich der ZonePlayer festgelegt werden
+# Umlaute beim Übertragen in das Reading State werden wieder korrekt übertragen. Das Problem waren die etwaigen doppelten Anführungsstriche. Diese werden nun maskiert.
+# Sonos Docks werden nun auch erkannt. Dieses hat eine andere Device-Struktur, weswegen der Erkennungsprozess angepasst werden musste.
+#
+# 1.7: Umlaute werden bei Playernamen beim Anlegen des Devices korrekt umgewandelt, und nicht in Unterstriche
+# Renew-Subscription eingebaut, damit ein Player nicht die Verbindung zum Modul verliert
+# CurrentTempPlaying wird nun auch sauber beim Abbrechen des Restore-Vorgangs zurückgesetzt
+# Die Discovermechanik umgebaut, damit dieser Thread nach einem Discover nicht neu erzeugt werden muss.
+#
+# 1.6: Speak hinzugefügt (siehe Doku im Wiki)
+# Korrektur von PlayURITemp für Dateien, für die Sonos keine Abspiellänge zur Verfügung stellt
+# Korrektur des Thread-Problems welches unter *Nix-Varianten auftrat (Windows war nicht betroffen)
+#
+# 1.5: PlayURI, PlayURITemp und AddURIToQueue hinzugefügt (siehe Doku im Wiki)
+#
+# 1.4: Exception-Handling bei der Befehlsausführung soll FHEM besser vor verschwundenen Playern schützen
+# Variable $SONOS_ThisThreadEnded sichert die korrekte Beendigung des vorhandenen Threads, trotz Discover-Events in der Pipeline
+# Einrückungen im Code korrigiert
+#
+# 1.3: StopHandling prüft nun auch, ob die Referenz noch existiert
+#
+# 1.2: Proxy-Objekte werden beim Disappearen des Player entfernt, und sorgen bei einem nachfolgenden Aufruf für eine saubere Fehlermeldung
+# Probleme mit Anführungszeichen " in Liedtiteln und Artist-Angaben. Diese Zeichen werden nun ersetzt
+# Weblink wurde mit fehlendem "/" am Anfang angelegt. Dadurch hat dieser nicht im Floorplan funktionert
+# pingType wird nun auf Korrektheit geprüft.
+# Play:3 haben keinen Audio-Eingang, deshalb funktioniert das Holen eines Proxy dafür auch nicht. Jetzt ist das Holen abgesichert.
+#
+# 1.1: Ping-Methode einstellbar über Attribut 'pingType'
+#
+# 1.0: Initial Release
+#
+########################################################################################
+#
+# This programm is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# The GNU General Public License can be found at
+# http://www.gnu.org/copyleft/gpl.html.
+# A copy is found in the textfile GPL.txt and important notices to the license
+# from the author is found in LICENSE.txt distributed with these scripts.
+#
+# This script is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+########################################################################################
+# Use-Declarations
+########################################################################################
+package main;
+
+use strict;
+use warnings;
+
+use Cwd qw(realpath);
+use LWP::Simple;
+use LWP::UserAgent;
+use URI::Escape;
+use HTML::Entities;
+use Net::Ping;
+use Socket;
+use IO::Select;
+use IO::Socket::INET;
+use File::Path;
+use File::stat;
+use Time::HiRes qw(usleep gettimeofday);
+use Scalar::Util qw(reftype looks_like_number);
+use PerlIO::encoding;
+use Encode;
+use Digest::MD5 qw(md5_hex);
+use File::Temp;
+
+use Data::Dumper;
+$Data::Dumper::Terse = 1;
+
+use threads;
+use Thread::Queue;
+use threads::shared;
+
+use feature 'state';
+
+
+########################################################
+# IP-Adressen, die vom UPnP-Modul ignoriert werden sollen
+########################################################
+my %IgnoreIPs = ();
+
+
+########################################################
+# Standards aus FHEM einbinden
+########################################################
+use vars qw{%attr %defs %intAt %data};
+
+
+########################################################
+# Prozeduren für den Betrieb des Standalone-Parts
+########################################################
+sub Log($$);
+sub Log3($$$);
+
+sub SONOS_Log($$$);
+sub SONOS_StartClientProcessIfNeccessary($);
+sub SONOS_Client_Notifier($);
+sub SONOS_Client_ConsumeMessage($$);
+
+sub SONOS_RCLayout();
+
+
+########################################################
+# Verrenkungen um in allen Situationen das benötigte
+# Modul sauber geladen zu bekommen..
+########################################################
+my $gPath = '';
+BEGIN {
+ $gPath = substr($0, 0, rindex($0, '/'));
+}
+if (lc(substr($0, -7)) eq 'fhem.pl') {
+ $gPath = $attr{global}{modpath}.'/FHEM';
+}
+use lib ($gPath.'/lib', $gPath.'/FHEM/lib', './FHEM/lib', './lib', './FHEM', './');
+print 'Current: "'.$0.'", gPath: "'.$gPath."\"\n";
+use UPnP::ControlPoint;
+require 'DevIo.pm' if (lc(substr($0, -7)) eq 'fhem.pl');
+
+
+########################################################################################
+# Variable Definitions
+########################################################################################
+my %gets = (
+ 'Groups' => ''
+);
+
+my %sets = (
+ 'Groups' => 'groupdefinitions',
+ 'StopAll' => '',
+ 'PauseAll' => ''
+);
+
+my @SONOS_PossibleDefinitions = qw(NAME INTERVAL);
+my @SONOS_PossibleAttributes = qw(targetSpeakFileHashCache targetSpeakFileTimestamp targetSpeakDir targetSpeakURL Speak0 Speak1 Speak2 Speak3 Speak4 SpeakCover Speak1Cover Speak2Cover Speak3Cover Speak4Cover minVolume maxVolume minVolumeHeadphone maxVolumeHeadphone getAlarms disable generateVolumeEvent buttonEvents characterDecoding generateProxyAlbumArtURLs proxyCacheTime);
+my @SONOS_PossibleReadings = qw(AlarmList AlarmListIDs UserID_Spotify UserID_Napster location SleepTimerVersion Mute HeadphoneConnected Balance Volume Loudness Bass Treble AlarmListVersion ZonePlayerUUIDsInGroup ZoneGroupID fieldType ZoneGroupName roomName roomIcon LineInConnected);
+
+# Obsolete Einstellungen...
+my $SONOS_UseTelnetForQuestions = 1;
+my $SONOS_UseTelnetForQuestions_Host = 'localhost'; # Wird automatisch durch den anfragenden Host ersetzt
+my $SONOS_UseTelnetForQuestions_Port = 7072;
+
+# Communication between the two "levels" of threads
+my $SONOS_ComObjectTransportQueue = Thread::Queue->new();
+
+my %SONOS_PlayerRestoreRunningUDN :shared = ();
+my $SONOS_PlayerRestoreQueue = Thread::Queue->new();
+
+# For triggering the Main-Thread over Telnet-Session
+my $SONOS_Thread :shared = -1;
+my $SONOS_Thread_IsAlive :shared = -1;
+my $SONOS_Thread_PlayerRestore :shared = -1;
+
+my %SONOS_Thread_IsAlive_Counter;
+my $SONOS_Thread_IsAlive_Counter_MaxMerci = 2;
+
+# Some Constants
+my @SONOS_PINGTYPELIST = qw(none tcp udp icmp syn);
+my $SONOS_DEFAULTPINGTYPE = 'syn';
+my $SONOS_SUBSCRIPTIONSRENEWAL = 1800;
+my $SONOS_DIDLHeader = '';
+my $SONOS_DIDLFooter = '';
+my $SONOS_GOOGLETRANSLATOR_CHUNKSIZE = 95;
+
+# Basis UPnP-Object und Search-Referenzen
+my $SONOS_Controlpoint;
+my $SONOS_Search;
+
+# ControlProxies für spätere Aufrufe für jeden ZonePlayer extra sichern
+my %SONOS_AVTransportControlProxy;
+my %SONOS_RenderingControlProxy;
+my %SONOS_GroupRenderingControlProxy;
+my %SONOS_ContentDirectoryControlProxy;
+my %SONOS_AlarmClockControlProxy;
+my %SONOS_AudioInProxy;
+my %SONOS_DevicePropertiesProxy;
+my %SONOS_GroupManagementProxy;
+my %SONOS_MusicServicesProxy;
+my %SONOS_ZoneGroupTopologyProxy;
+
+# Subscriptions müssen für die spätere Erneuerung aufbewahrt werden
+my %SONOS_TransportSubscriptions;
+my %SONOS_RenderingSubscriptions;
+my %SONOS_AlarmSubscriptions;
+my %SONOS_ZoneGroupTopologySubscriptions;
+my %SONOS_DevicePropertiesSubscriptions;
+my %SONOS_AudioInSubscriptions;
+
+# Locations -> UDN der einzelnen Player merken, damit die Event-Verarbeitung schneller geht
+my %SONOS_Locations;
+
+# Wenn der Prozess/das Modul nicht von fhem aus gestartet wurde, dann versuchen, den ersten Parameter zu ermitteln
+# Für diese Funktionalität werden einige Variablen benötigt
+my $SONOS_ListenPort = $ARGV[0] if (lc(substr($0, -7)) ne 'fhem.pl');
+my $SONOS_Client_LogLevel = -1;
+if ($ARGV[1]) {
+ $SONOS_Client_LogLevel = $ARGV[1];
+}
+my $SONOS_mseclog = 0;
+if ($ARGV[2]) {
+ $SONOS_mseclog = $ARGV[2];
+}
+my $SONOS_StartedOwnUPnPServer = 0;
+my $SONOS_Client_Selector;
+my %SONOS_Client_Data :shared = ();
+my $SONOS_Client_NormalQueueWorking :shared = 1;
+my $SONOS_Client_SendQueue = Thread::Queue->new();
+my $SONOS_Client_SendQueue_Suspend :shared = 0;
+
+my %SONOS_ButtonPressQueue;
+
+########################################################################################
+#
+# SONOS_Initialize
+#
+# Parameter hash = hash of device addressed
+#
+########################################################################################
+sub SONOS_Initialize ($) {
+ my ($hash) = @_;
+ # Provider
+ $hash->{Clients} = ':SONOSPLAYER:';
+
+ # Normal Defines
+ $hash->{DefFn} = 'SONOS_Define';
+ $hash->{UndefFn} = 'SONOS_Undef';
+ $hash->{ShutdownFn} = 'SONOS_Shutdown';
+ $hash->{ReadFn} = "SONOS_Read";
+ $hash->{ReadyFn} = "SONOS_Ready";
+ $hash->{GetFn} = 'SONOS_Get';
+ $hash->{SetFn} = 'SONOS_Set';
+ $hash->{AttrFn} = 'SONOS_Attribute';
+ $hash->{NotifyFn} = 'SONOS_Notify';
+
+ # CGI
+ my $name = "sonos";
+ my $fhem_url = "/" . $name ;
+ $data{FWEXT}{$fhem_url}{FUNC} = "SONOS_FhemWebCallback";
+ $data{FWEXT}{$fhem_url}{LINK} = $name;
+ $data{FWEXT}{$fhem_url}{NAME} = undef;
+
+ eval {
+ no strict;
+ no warnings;
+ $hash->{AttrList}= 'pingType:'.join(',', @SONOS_PINGTYPELIST).' targetSpeakDir targetSpeakURL targetSpeakFileTimestamp:0,1 targetSpeakFileHashCache:0,1 Speak1 Speak2 Speak3 Speak4 SpeakCover Speak1Cover Speak2Cover Speak3Cover Speak4Cover generateProxyAlbumArtURLs:0,1 proxyCacheTime proxyCacheDir characterDecoding '.$readingFnAttributes;
+ use strict;
+ use warnings;
+ };
+
+ $data{RC_layout}{Sonos} = "SONOS_RCLayout";
+
+ return undef;
+}
+
+########################################################################################
+#
+# SONOS_RCLayout - Returns the Standard-Layout-Definition for a RemoteControl-Device
+#
+########################################################################################
+sub SONOS_RCLayout() {
+ my @rows = ();
+
+ push @rows, "Play:PLAY,Pause:PAUSE,Previous:REWIND,Next:FF,VolumeD:VOLDOWN,VolumeU:VOLUP,MuteT:MUTE";
+ push @rows, "attr rc_iconpath icons/remotecontrol";
+ push @rows, "attr rc_iconprefix black_btn_";
+
+ return @rows;
+}
+
+########################################################################################
+#
+# SONOS_getCoverTitleRG - Returns the Cover- and Title-Readings for use in a ReadingsGroup
+#
+########################################################################################
+sub SONOS_getCoverTitleRG($;$$) {
+ my ($device, $width, $space) = @_;
+ $width = 500 if (!defined($width));
+
+ my $transportState = ReadingsVal($device, 'transportState', '');
+
+ my $currentRuntime = 0;
+ my $currentStarttime = 0;
+ my $currentPosition = 0;
+ my $normalAudio = ReadingsVal($device, 'currentNormalAudio', 0);
+ if ($normalAudio) {
+ $currentRuntime = SONOS_GetTimeSeconds(ReadingsVal($device, 'currentTrackDuration', '0:00:01'));
+ $currentRuntime = 1 if (!$currentRuntime);
+
+ $currentPosition = SONOS_GetTimeSeconds(ReadingsVal($device, 'currentTrackPosition', '0:00:00'));
+
+ $currentStarttime = SONOS_GetTimeFromString(ReadingsTimestamp($device, 'currentTrackPosition', SONOS_TimeNow())) - $currentPosition;
+ }
+
+ my $playing = 0;
+ if ($transportState eq 'PLAYING') {
+ $playing = 1;
+ $transportState = FW_makeImage('audio_play', 'Playing', 'SONOS_Transportstate');
+ }
+ $transportState = FW_makeImage('audio_pause', 'Paused', 'SONOS_Transportstate') if ($transportState eq 'PAUSED_PLAYBACK');
+ $transportState = FW_makeImage('audio_stop', 'Stopped', 'SONOS_Transportstate') if ($transportState eq 'STOPPED');
+
+ my $fullscreenDiv = '
The system conists of two different components:
+1. A UPnP-Client which runs as a standalone process in the background and takes the communications to the sonos-components.
+2. The FHEM-module itself which connects to the UPnP-client to make fhem able to work with sonos.
+The client will be startet by the module itself if not done in another way.
+You can start this client on your own (to let it run instantly and independent from FHEM):
+perl 00_SONOS.pm 4711: Starts a UPnP-Client in an independant way who listens to connections on port 4711. This process can run a long time, FHEM can connect and disconnect to it.
Define a Sonos interface to communicate with a Sonos-System.
+
+[upnplistener] The name and port of the external upnp-listener. If not given, defaults to localhost:4711. The port has to be a free portnumber on your system. If you don't start a server on your own, the script does itself. If you start it yourself write down the correct informations to connect.
+
+[interval] The interval is for alive-checking of Zoneplayer-device, because no message come if the host disappear :-) If omitted a value of 10 seconds is the default.
+
+[waittime] With this value you can configure the waiting time for the starting of the Subprocess.
+
+[delaytime] With this value you can configure a delay time before starting the network-part.
+get <name> Groups
+ Retreives the current group-configuration of the Sonos-System. The format is a comma-separated List of Lists with devicenames e.g. [Sonos_Kueche], [Sonos_Wohnzimmer, Sonos_Schlafzimmer]. In this example there are two groups: the first consists of one player and the second consists of two players.
+The order in the sublists are important, because the first entry defines the so-called group-coordinator (in this case Sonos_Wohnzimmer), from which the current playlist and the current title playing transferred to the other member(s).
attr <name> pingType <string>
+ One of (none,tcp,udp,icmp,syn). Defines which pingType for alive-Checking has to be used. If set to 'none' no checks will be done.
+
+
Proxy Configuration
+
attr <name> generateProxyAlbumArtURLs <int>
+ One of (0, 1). If defined, all Cover-Links (the readings "currentAlbumArtURL" and "nextAlbumArtURL") are generated as links to the internal Sonos-Module-Proxy. It can be useful if you access Fhem over an external proxy and therefore have no access to the local network (the URLs are direct URLs to the Sonosplayer instead).
attr <name> proxyCacheTime <int>
+ A time in seconds. With a definition other than "0" the caching mechanism of the internal Sonos-Module-Proxy will be activated. If the filetime of the chached cover is older than this time, it will be reloaded from the Sonosplayer.
attr <name> targetSpeakFileTimestamp <int>
+ One of (0, 1). Defines, if the Speakfile should have a timestamp in his name. That makes it possible to store all historical Speakfiles.
+
attr <name> targetSpeakFileHashCache <int>
+ One of (0, 1). Defines, if the Speakfile should have a hash-value in his name. If this value is set to one an already generated file with the same hash is re-used and not newly generated.
+
attr <name> Speak1 <Fileextension>:<Commandline>
+ Defines a systemcall commandline for generating a speaking file out of the given text. If such an attribute is defined, an associated setter at the Sonosplayer-Device is available. The following placeholders are available: '''%language%''': Will be replaced by the given language-parameter '''%filename%''': Will be replaced by the complete target-filename (incl. fileextension). '''%text%''': Will be replaced with the given text
Das System besteht aus zwei Komponenten:
+1. Einem UPnP-Client, der als eigener Prozess im Hintergrund ständig läuft, und die Kommunikation mit den Sonos-Geräten übernimmt.
+2. Dem eigentlichen FHEM-Modul, welches mit dem UPnP-Client zusammenarbeitet, um die Funktionalität in FHEM zu ermöglichen.
+Der Client wird im Notfall automatisch von Modul selbst gestartet.
+Man kann den Server unabhängig von FHEM selbst starten (um ihn dauerhaft und unabhängig von FHEM laufen zu lassen):
+perl 00_SONOS.pm 4711: Startet einen unabhängigen Server, der auf Port 4711 auf eingehende FHEM-Verbindungen lauscht. Dieser Prozess kann dauerhaft laufen, FHEM kann sich verbinden und auch wieder trennen.
Definiert das Sonos interface für die Kommunikation mit dem Sonos-System.
+
+[upnplistener] Name und Port eines externen UPnP-Client. Wenn nicht angegebenen wird localhost:4711 festgelegt. Der Port muss eine freie Portnummer ihres Systems sein. Wenn sie keinen externen Client gestartet haben, startet das Skript einen eigenen. Wenn sie einen eigenen Dienst gestartet haben, dann geben sie hier die entsprechenden Informationen an.
+
+[interval] Das Interval wird für die Überprüfung eines Zoneplayers benötigt. In diesem Interval wird nachgeschaut, ob der Player noch erreichbar ist, da sich ein Player nicht mehr abmeldet, wenn er abgeschaltet wird :-) Wenn nicht angegeben, wird ein Wert von 10 Sekunden angenommen.
+
+[waittime] Hiermit wird die Wartezeit eingestellt, die nach dem Starten des SubProzesses darauf gewartet wird.
+
+[delaytime] Hiermit kann eine Verzögerung eingestellt werden, die vor dem Starten des Netzwerks gewartet wird.
+set <name> Groups <GroupDefinition>
+ Setzt die aktuelle Gruppierungskonfiguration der Sonos-Systemlandschaft. Das Format ist jenes, welches auch von dem Get-Befehl 'Groups' geliefert wird.
+
+
+
+
+
Get
+
+
Gruppenbefehle
+
+get <name> Groups
+ Liefert die aktuelle Gruppierungskonfiguration der Sonos Systemlandschaft zurück. Das Format ist eine Kommagetrennte Liste von Listen mit Devicenamen, also z.B. [Sonos_Kueche], [Sonos_Wohnzimmer, Sonos_Schlafzimmer]. In diesem Beispiel sind also zwei Gruppen definiert, von denen die erste aus einem Player und die zweite aus Zwei Playern besteht.
+Dabei ist die Reihenfolge innerhalb der Unterlisten wichtig, da der erste Eintrag der sogenannte Gruppenkoordinator ist (in diesem Fall also Sonos_Wohnzimmer), von dem die aktuelle Abspielliste un der aktuelle Titel auf die anderen Gruppenmitglieder übernommen wird.
attr <name> pingType <string>
+ One of (none,tcp,udp,icmp,syn). Gibt an, welche Methode für die Ping-Überprüfung verwendet werden soll. Wenn 'none' angegeben wird, dann wird keine Überprüfung gestartet.
+
+
Proxy-Einstellungen
+
attr <name> generateProxyAlbumArtURLs <int>
+ Aus (0, 1). Wenn aktiviert, werden alle Cober-Links als Proxy-Aufrufe an Fhem generiert. Dieser Proxy-Server wird vom Sonos-Modul bereitgestellt. In der Grundeinstellung erfolgt kein Caching der Cover, sondern nur eine Durchreichung der Cover von den Sonosplayern (Damit ist der Zugriff durch einen externen Proxyserver auf Fhem möglich).
+
attr <name> proxyCacheDir <Path>
+ Hiermit wird das Verzeichnis festgelegt, in dem die Cober zwischengespeichert werden. Wenn nicht festegelegt, so wird "/tmp" verwendet.
+
attr <name> proxyCacheTime <int>
+ Mit einer Angabe ungleich 0 wird der Caching-Mechanismus des Sonos-Modul-Proxy-Servers aktiviert. Dabei werden Cover, die im Cache älter sind als diese Zeitangabe in Sekunden, neu vom Sonosplayer geladen, alle anderen direkt ausgeliefert, ohne den Player zu fragen.
attr <name> targetSpeakFileHashCache <int>
+ One of (0, 1). Gibt an, ob die erzeugte Sprachausgabedatei einen Hashwert erhalten soll (1) oder nicht (0). Wenn dieser Wert gesetzt wird, dann wird eine bereits bestehende Datei wiederverwendet, und nicht neu erzeugt.
+
attr <name> Speak1 <Fileextension>:<Commandline>
+ Hiermit kann ein Systemaufruf definiert werden, der zu Erzeugung einer Sprachausgabe verwendet werden kann. Sobald dieses Attribut definiert wurde, ist ein entsprechender Setter am Sonosplayer verfügbar. Es dürfen folgende Platzhalter verwendet werden: '''%language%''': Wird durch die eingegebene Sprache ersetzt '''%filename%''': Wird durch den kompletten Dateinamen (inkl. Dateiendung) ersetzt. '''%text%''': Wird durch den zu übersetzenden Text ersetzt.
+set <name> PlayURITemp <songURI> [Volume]
+ Plays the given MP3-File with the optional given volume as a temporary file. After playing it, the whole state is reconstructed and continues playing at the former saved position and volume and so on. If the file given is a stream (exactly: a file where the running time could not be determined), the call would be identical to ,PlayURI, e.g. nothing is restored after playing.
+set <name> Speak <Volume> <Language> <Text>
+ Uses the Google Text-To-Speech-Engine for generating MP3-Files of the given text and plays it on the SonosPlayer. Possible languages can be obtained from Google. e.g. "de", "en", "fr", "es"...
+
+set <name> StartFavourite <Favouritename> [NoStart]
+ Starts the named sonos-favorite. The parameter should be URL-encoded for proper naming of lists with special characters. If the Word 'NoStart' is given as second parameter, than the Loading will be done, but the playing-state is leaving untouched e.g. not started.
+set <name> Track <TrackNumber|Random>
+ Sets the track with the given tracknumber as the current title. If the tracknumber is the word Random a random track will be selected.
+
+
Playing Settings
+
+set <name> Balance <BalanceValue>
+ Sets the balance to the given value. The value can range from -100 (full left) to 100 (full right). Retrieves the new balancevalue as the result.
+
+set <name> Bass <BassValue>
+ Sets the bass to the given value. The value can range from -10 to 10. Retrieves the new bassvalue as the result.
+set <name> SleepTimer <Time>
+ Sets the Sleeptimer to the given Time. It must be in the full format of "HH:MM:SS". Deactivate with "00:00:00" or "off".
+
+set <name> Treble <TrebleValue>
+ Sets the treble to the given value. The value can range from -10 to 10. Retrieves the new treblevalue as the result.
+
+set <name> Volume <VolumeLevel> [RampType]
+ Sets the volume to the given value. The value could be a relative value with + or - sign. In this case the volume will be increased or decreased according to this value. Retrieves the new volume as the result. Optional can be a RampType defined with a value between 1 and 3 which describes different templates defined by the Sonos-System.
+set <name> VolumeSave <VolumeLevel>
+ Sets the volume to the given value. The value could be a relative value with + or - sign. In this case the volume will be increased or decreased according to this value. Retrieves the new volume as the result. Additionally it saves the old volume to a reading for restoreing.
+set <name> CurrentPlaylist
+ Sets the current playing to the current queue, but doesn't start playing (e.g. after hearing of a radiostream, where the current playlist still exists but is currently "not in use")
+set <name> LoadPlaylist <Playlistname> [EmptyQueueBeforeImport]
+ Loads the named playlist to the current playing queue. The parameter should be URL-encoded for proper naming of lists with special characters. The Playlistname can be a filename and then must be startet with 'file:' (e.g. 'file:c:/Test.m3u') If EmptyQueueBeforeImport is given and set to 1, the queue will be emptied before the import process. If not given, the parameter will be interpreted as 1.
+
+set <name> LoadRadio <Radiostationname>
+ Loads the named radiostation (favorite). The current queue will not be touched but deactivated. The parameter should be URL-encoded for proper naming of lists with special characters.
+
+set <name> SavePlaylist <Playlistname>
+ Saves the current queue as a playlist with the given name. An existing playlist with the same name will be overwritten. The parameter should be URL-encoded for proper naming of lists with special characters. The Playlistname can be a filename and then must be startet with 'file:' (e.g. 'file:c:/Test.m3u')
+
+
Groupcontrol
+
+set <name> AddMember <devicename>
+ Adds the given devicename to the current device as a groupmember. The current playing of the current device goes on and will be transfered to the given device (the new member).
+set <name> GroupVolume <VolumeLevel>
+ Sets the group-volume in the way the original controller does. This means, that the relative volumelevel between the different players will be saved during change.
+
+set <name> RemoveMember <devicename>
+ Removes the given device, so that they both are not longer a group. The current playing of the current device goes on normally. The cutted device stops his playing and has no current playlist anymore (since Sonos Version 4.2 the old playlist will be restored).
+
+set <name> SnapshotGroupVolume
+ Save the current volume-relation of all players of the same group. It's neccessary for the use of "GroupVolume" and is stored until the next call of "SnapshotGroupVolume".
+
+
+
+
+
Get
+
+
Common
+
+get <name> Alarm <ID>
+ It's an exception to the normal getter semantics. Returns directly a Perl-Hash with the Alarm-Informations to the given id. It's just a shorthand for eval(ReadingsVal(, 'Alarmlist', ()))->{};.
+get <name> Favourites
+ Retrieves a list with the names of all sonos favourites. This getter retrieves the same list on all Zoneplayer. The format is a comma-separated list with quoted names of favourites. e.g. "Liste 1","Entry 2","Test"
+
+get <name> FavouritesWithCovers
+ Retrieves a list with the stringrepresentation of a perl-hash which can easily be converted with "eval". It consists of the names and coverlinks of all of the favourites stored in Sonos e.g. {'FV:2/22' => {'Cover' => 'urlzumcover', 'Title' => '1. Favorit'}}
+
+get <name> Playlists
+ Retrieves a list with the names of all saved queues (aka playlists). This getter retrieves the same list on all Zoneplayer. The format is a comma-separated list with quoted names of playlists. e.g. "Liste 1","Liste 2","Test"
+
+get <name> PlaylistsWithCovers
+ Retrieves a list with the stringrepresentation of a perl-hash which can easily be converted with "eval". It consists of the names and coverlinks of all of the playlists stored in Sonos e.g. {'SQ:14' => {'Cover' => 'urlzumcover', 'Title' => '1. Playlist'}}
+
+get <name> Radios
+ Retrieves a list woth the names of all saved radiostations (favorites). This getter retrieves the same list on all Zoneplayer. The format is a comma-separated list with quoted names of radiostations. e.g. "Sender 1","Sender 2","Test"
+
+get <name> RadiosWithCovers
+ Retrieves a list with the stringrepresentation of a perl-hash which can easily be converted with "eval". It consists of the names and coverlinks of all of the radiofavourites stored in Sonos e.g. {'R:0/0/2' => {'Cover' => 'urlzumcover', 'Title' => '1. Radiosender'}}
attr <name> generateSomethingChangedEvent <int>
+ One of (0,1). 1 if a 'SomethingChanged'-Event should be generated. This event is thrown every time an event is generated. This is useful if you wants to be notified on every change with a single event.
attr <name> stateVariable <string>
+ One of (TransportState,NumberOfTracks,Track,TrackURI,TrackDuration,Title,Artist,Album,OriginalTrackNumber,AlbumArtist,Sender,SenderCurrent,SenderInfo,StreamAudio,NormalAudio,AlbumArtURI,nextTrackDuration,nextTrackURI,nextAlbumArtURI,nextTitle,nextArtist,nextAlbum,nextAlbumArtist,nextOriginalTrackNumber,Volume,Mute,Shuffle,Repeat,CrossfadeMode,Balance,HeadphoneConnected,SleepTimer,Presence,RoomName,SaveRoomName,PlayerType,Location,SoftwareRevision,SerialNum,InfoSummarize1,InfoSummarize2,InfoSummarize3,InfoSummarize4). Defines, which variable has to be copied to the content of the state-variable.
attr <name> buttonEvents <Time:Pattern>[ <Time:Pattern> ...]
+ Defines that after pressing a specified sequence of buttons at the player an event has to be thrown. The definition itself is a tupel: the first part (before the colon) is the time in seconds, the second part (after the colon) is the button sequence of this event.
+The following button-shortcuts are possible:
M: The Mute-Button
H: The Headphone-Connector
U: Up-Button (Volume Up)
D: Down-Button (Volume Down)
+The event thrown is named ButtonEvent, the value is the defined button-sequence.
+E.G.: 2:MM
+Here an event is defined, where in time of 2 seconds the Mute-Button has to be pressed 2 times. The created event is named ButtonEvent and has the value MM.
+
+
+
+
+
Examples / Tips
+
+
Format of InfoSummarize:
+infoSummarizeX := <NormalAudio>:summarizeElem:</NormalAudio> <StreamAudio>:summarizeElem:</StreamAudio>|:summarizeElem:
+:summarizeElem: := <:variable:[ prefix=":text:"][ suffix=":text:"][ instead=":text:"][ ifempty=":text:"]/[ emptyVal=":text:"]>
+:variable: := TransportState|NumberOfTracks|Track|TrackURI|TrackDuration|Title|Artist|Album|OriginalTrackNumber|AlbumArtist|Sender|SenderCurrent|SenderInfo|StreamAudio|NormalAudio|AlbumArtURI|nextTrackDuration|nextTrackURI|nextAlbumArtURI|nextTitle|nextArtist|nextAlbum|nextAlbumArtist|nextOriginalTrackNumber|Volume|Mute|Shuffle|Repeat|CrossfadeMode|Balance|HeadphoneConnected|SleepTimer|Presence|RoomName|SaveRoomName|PlayerType|Location|SoftwareRevision|SerialNum|InfoSummarize1|InfoSummarize2|InfoSummarize3|InfoSummarize4
+:text: := [Any text without double-quotes]
+
+
+=end html
+
+=begin html_DE
+
+
+
SONOSPLAYER
+
FHEM Modul für die Steuerung eines Sonos Zoneplayer
+set <name> PlayURITemp <songURI> [Volume]
+ Spielt die angegebene MP3-Datei mit der optionalen Lautstärke als temporäre Wiedergabe ab. Nach dem Abspielen wird der vorhergehende Zustand wiederhergestellt, und läuft an der unterbrochenen Stelle weiter. Wenn die Länge der Datei nicht ermittelt werden kann (z.B. bei Streams), läuft die Wiedergabe genauso wie bei PlayURI ab, es wird also nichts am Ende (wenn es eines geben sollte) wiederhergestellt.
+set <name> Speak <Volume> <Language> <Text>
+ Verwendet die Google Text-To-Speech-Engine um den angegebenen Text in eine MP3-Datei umzuwandeln und anschließend mittels PlayURITemp als Durchsage abzuspielen. Mögliche Sprachen können auf der Google-Seite nachgesehen werden. Möglich sind z.B. "de", "en", "fr", "es"...
+
+set <name> StartFavourite <FavouriteName> [NoStart]
+ Startet den angegebenen Favoriten. Der Name bezeichnet einen Eintrag in der Sonos-Favoritenliste. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermöglichen. Wenn das Wort 'NoStart' als zweiter Parameter angegeben wurde, dann wird der Favorit geladen und fertig vorbereitet, aber nicht explizit gestartet.
+set <name> StartRadio <Radiostationname>
+ Lädt den benannten Radiosender, genauer gesagt, den benannten Radiofavoriten und startet sofort die Wiedergabe. Dabei wird die bestehende Abspielliste beibehalten, aber deaktiviert. Der Parameter kann/muss URL-Encoded sein, um auch Leer- und Sonderzeichen angeben zu können.
+set <name> Track <TrackNumber|Random>
+ Aktiviert den angebenen Titel der aktuellen Abspielliste. Wenn als Tracknummer der Wert Random angegeben wird, dann wird eine zufällige Trackposition ausgewählt.
+
+
Einstellungen zum Abspielen
+
+set <name> Balance <BalanceValue>
+ Setzt die Balance auf den angegebenen Wert. Der Wert kann zwischen -100 (voll links) bis 100 (voll rechts) sein. Gibt die wirklich eingestellte Balance als Ergebnis zurück.
+
+set <name> Bass <BassValue>
+ Setzt den Basslevel auf den angegebenen Wert. Der Wert kann zwischen -10 bis 10 sein. Gibt den wirklich eingestellten Basslevel als Ergebnis zurück.
+set <name> Loudness <State>
+ Setzt den angegebenen Loudness-Zustand. Liefert den aktuell gültigen Loudness-Zustand.
+
+set <name> Mute <State>
+ Setzt den angegebenen Mute-Zustand. Liefert den aktuell gültigen Mute-Zustand.
+
+set <name> MuteT
+ Schaltet den Zustand des Mute-Zustands um. Liefert den aktuell gültigen Mute-Zustand.
+
+set <name> Repeat <State>
+ Legt den Zustand des Repeat-Zustands fest. Liefert den aktuell gültigen Repeat-Zustand.
+
+set <name> Shuffle <State>
+ Legt den Zustand des Shuffle-Zustands fest. Liefert den aktuell gültigen Shuffle-Zustand.
+
+set <name> SleepTimer <Time>
+ Legt den aktuellen SleepTimer fest. Der Wert muss ein kompletter Zeitstempel sein (HH:MM:SS). Zum Deaktivieren darf der Zeitstempel nur Nullen enthalten oder das Wort 'off'.
+
+set <name> Treble <TrebleValue>
+ Setzt den Treblelevel auf den angegebenen Wert. Der Wert kann zwischen -10 bis 10 sein. Gibt den wirklich eingestellten Treblelevel als Ergebnis zurück.
+
+set <name> Volume <VolumeLevel> [RampType]
+ Setzt die aktuelle Lautstärke auf den angegebenen Wert. Der Wert kann ein relativer Wert mittels + oder - Zeichen sein. Liefert den aktuell gültigen Lautstärkewert zurück. Optional kann ein RampType übergeben werden, der einen Wert zwischen 1 und 3 annehmen kann, und verschiedene von Sonos festgelegte Muster beschreibt.
+
+set <name> VolumeD
+ Verringert die aktuelle Lautstärke um volumeStep-Einheiten.
+set <name> VolumeSave <VolumeLevel>
+ Setzt die aktuelle Lautstärke auf den angegebenen Wert. Der Wert kann ein relativer Wert mittels + oder - Zeichen sein. Liefert den aktuell gültigen Lautstärkewert zurück. Zusätzlich wird der alte Lautstärkewert gespeichert und kann mittels VolumeRestore wiederhergestellt werden.
+set <name> CurrentPlaylist
+ Setzt den Abspielmodus auf die aktuelle Abspielliste, startet aber keine Wiedergabe (z.B. nach dem Hören eines Radiostreams, wo die aktuelle Abspielliste noch existiert, aber gerade "nicht verwendet" wird)
+set <name> LoadPlaylist <Playlistname> [EmptyQueueBeforeImport]
+ Lädt die angegebene Playlist in die aktuelle Abspielliste. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermöglichen. Der Playlistname kann auch ein Dateiname sein. Dann muss dieser mit 'file:' beginnen (z.B. 'file:c:/Test.m3u). Wenn der Parameter EmptyQueueBeforeImport mit ''1'' angegeben wirde, wird die aktuelle Abspielliste vor dem Import geleert. Standardmäßig wird hier ''1'' angenommen.
+
+set <name> LoadRadio <Radiostationname>
+ Startet den angegebenen Radiostream. Der Name bezeichnet einen Sender in der Radiofavoritenliste. Die aktuelle Abspielliste wird nicht verändert. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermöglichen.
+
+set <name> SavePlaylist <Playlistname>
+ Speichert die aktuelle Abspielliste unter dem angegebenen Namen. Eine bestehende Playlist mit diesem Namen wird überschrieben. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermöglichen. Der Playlistname kann auch ein Dateiname sein. Dann muss dieser mit 'file:' beginnen (z.B. 'file:c:/Test.m3u).
+
+
Gruppenbefehle
+
+set <name> AddMember <devicename>
+ Fügt dem Device das übergebene Device als Gruppenmitglied hinzu. Die Wiedergabe des aktuellen Devices bleibt erhalten, und wird auf das angegebene Device mit übertragen.
+
+set <name> GroupMute <State>
+ Setzt den Mute-Zustand für die komplette Gruppe in einem Schritt. Der Wert kann on oder off sein.
+
+set <name> GroupVolume <VolumeLevel>
+ Setzt die Gruppenlautstärke in der Art des Original-Controllers. Das bedeutet, dass das Lautstärkeverhältnis der Player zueinander beim Anpassen erhalten bleibt.
+
+set <name> RemoveMember <devicename>
+ Entfernt dem Device das übergebene Device, sodass die beiden keine Gruppe mehr bilden. Die Wiedergabe des aktuellen Devices läuft normal weiter. Das abgetrennte Device stoppt seine Wiedergabe, und hat keine aktuelle Abspielliste mehr (seit Sonos Version 4.2 hat der Player wieder die Playliste von vorher aktiv).
+
+set <name> SnapshotGroupVolume
+ Legt das Lautstärkeverhältnis der aktuellen Player der Gruppe für folgende '''GroupVolume'''-Aufrufe fest. Dieses festgelegte Verhältnis wird bis zum nächsten Aufruf von '''SnapshotGroupVolume''' beibehalten.
+
+
+
+
+
Get
+
+
Grundsätzliches
+
+get <name> Alarm <ID>
+ Ausnahmefall. Diese Get-Anweisung liefert direkt ein Hash zurück, in welchem die Informationen des Alarms mit der gegebenen ID enthalten sind. Es ist die Kurzform für eval(ReadingsVal(, 'Alarmlist', ()))->{};, damit sich nicht jeder ausdenken muss, wie er jetzt am einfachsten an die Alarm-Informationen rankommen kann.
+get <name> Favourites
+ Liefert eine Liste mit den Namen aller gespeicherten Sonos-Favoriten. Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten Anführungsstrichen stehen. z.B. "Liste 1","Eintrag 2","Test"
+
+get <name> FavouritesWithCovers
+ Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller gespeicherten Sonos-Favoriten. Z.B.: {'FV:2/22' => {'Cover' => 'urlzumcover', 'Title' => '1. Favorit'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.
+
+get <name> Playlists
+ Liefert eine Liste mit den Namen aller gespeicherten Playlists. Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten Anführungsstrichen stehen. z.B. "Liste 1","Liste 2","Test"
+
+get <name> PlaylistsWithCovers
+ Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller gespeicherten Sonos-Playlisten. Z.B.: {'SQ:14' => {'Cover' => 'urlzumcover', 'Title' => '1. Playlist'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.
+
+get <name> Radios
+ Liefert eine Liste mit den Namen aller gespeicherten Radiostationen (Favoriten). Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten Anführungsstrichen stehen. z.B. "Sender 1","Sender 2","Test"
+
+get <name> RadiosWithCovers
+ Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller gespeicherten Sonos-Radiofavoriten. Z.B.: {'R:0/0/2' => {'Cover' => 'urlzumcover', 'Title' => '1. Radiosender'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.
attr <name> generateSomethingChangedEvent <int>
+ One of (0,1). 1 wenn ein 'SomethingChanged'-Event erzeugt werden soll. Dieses Event wird immer dann erzeugt, wenn sich irgendein Wert ändert. Dies ist nützlich, wenn man immer informiert werden möchte, egal, was sich geändert hat.
+
attr <name> generateVolumeEvent <int>
+ One of (0,1). Aktiviert die Generierung eines Events bei Lautstärkeänderungen, wenn minVolume oder maxVolume definiert sind.
attr <name> getAlarms <int>
+ One of (0..1). Richtet eine Callback-Methode für Alarme ein. Damit wird auch die DailyIndexRefreshTime automatisch aktualisiert.
attr <name> stateVariable <string>
+ One of (TransportState,NumberOfTracks,Track,TrackURI,TrackDuration,Title,Artist,Album,OriginalTrackNumber,AlbumArtist,Sender,SenderCurrent,SenderInfo,StreamAudio,NormalAudio,AlbumArtURI,nextTrackDuration,nextTrackURI,nextAlbumArtURI,nextTitle,nextArtist,nextAlbum,nextAlbumArtist,nextOriginalTrackNumber,Volume,Mute,Shuffle,Repeat,CrossfadeMode,Balance,HeadphoneConnected,SleepTimer,Presence,RoomName,SaveRoomName,PlayerType,Location,SoftwareRevision,SerialNum,InfoSummarize1,InfoSummarize2,InfoSummarize3,InfoSummarize4). Gibt an, welche Variable in das Reading state kopiert werden soll.
attr <name> buttonEvents <Time:Pattern>[ <Time:Pattern> ...]
+ Definiert, dass bei einer bestimten Tastenfolge am Player ein Event erzeugt werden soll. Die Definition der Events erfolgt als Tupel: Der erste Teil vor dem Doppelpunkt ist die Zeit in Sekunden, die berücksichtigt werden soll, der zweite Teil hinter dem Doppelpunkt definiert die Abfolge der Buttons, die für dieses Event notwendig sind.
+Folgende Button-Kürzel sind zulässig:
M: Der Mute-Button
H: Die Headphone-Buchse
U: Up-Button (Lautstärke Hoch)
D: Down-Button (Lautstärke Runter)
+Das Event, das geworfen wird, heißt ButtonEvent, der Wert ist die definierte Tastenfolge
+Z.B.: 2:MM
+Hier wird definiert, dass ein Event erzeugt werden soll, wenn innerhalb von 2 Sekunden zweimal die Mute-Taste gedrückt wurde. Das damit erzeugte Event hat dann den Namen ButtonEvent, und den Wert MM.
+
+
+
+
+
Beispiele / Hinweise
+
+
Format von InfoSummarize:
+infoSummarizeX := <NormalAudio>:summarizeElem:</NormalAudio> <StreamAudio>:summarizeElem:</StreamAudio>|:summarizeElem:
+:summarizeElem: := <:variable:[ prefix=":text:"][ suffix=":text:"][ instead=":text:"][ ifempty=":text:"]/[ emptyVal=":text:"]>
+:variable: := TransportState|NumberOfTracks|Track|TrackURI|TrackDuration|Title|Artist|Album|OriginalTrackNumber|AlbumArtist|Sender|SenderCurrent|SenderInfo|StreamAudio|NormalAudio|AlbumArtURI|nextTrackDuration|nextTrackURI|nextAlbumArtURI|nextTitle|nextArtist|nextAlbum|nextAlbumArtist|nextOriginalTrackNumber|Volume|Mute|Shuffle|Repeat|CrossfadeMode|Balance|HeadphoneConnected|SleepTimer|Presence|RoomName|SaveRoomName|PlayerType|Location|SoftwareRevision|SerialNum|InfoSummarize1|InfoSummarize2|InfoSummarize3|InfoSummarize4
+:text: := [Jeder beliebige Text ohne doppelte Anführungszeichen]