From daab52dd8552b672c41deb6e7780a97c9a670046 Mon Sep 17 00:00:00 2001 From: borisneubert Date: Sat, 10 Mar 2018 13:09:24 +0000 Subject: [PATCH] 66_ECMD: new attribute stop git-svn-id: https://svn.fhem.de/fhem/trunk@16372 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 426 +++++++++++++++++++++---------------------- fhem/FHEM/66_ECMD.pm | 185 +++++++++++-------- 2 files changed, 317 insertions(+), 294 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index 5fd8dab6e..41d3ef02e 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,9 +1,10 @@ # 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. + - feature: 66_ECMD: new attribute stop - change: 93_DbLog: V3.8.9, commandref revised - feature: fhem.pl: OldReading* added (Forum #85406) - feature: 93_DbRep: V7.14.3, minTimestamp - get lowest timestamp in database - - bugfix: 72_FB_CALLLIST: fix broken german umlaut in timestamps on + - bugfix: 72_FB_CALLLIST: fix broken german umlaut in timestamps on perl version >= 5.22 - bugfix: 72_FB_CALLMONITOR: fixing reverse search via dasoertliche.de - feature: 39_Talk2Fhem: V0.5 Object radiusing @@ -70,18 +71,18 @@ - bugfix: 93_DbLog:V3.8.4, cover userCommands, avoid crash (forum:#83973) - feature: 51_MOBILEALERTS: Added directionInt for MA10660 - changed: 50_MOBILEALERTSGW/51_MOBILEALERTS: Migrate to readingsDelete - - new: 98_freezemon: initial check-in + - new: 98_freezemon: initial check-in - feature: 74_Unifi: added voucher-functions - change: 30_MilightBridge: Use new RemoveInternalTimer function - new: 52_I2C_EMC1001.pm: initial check in - feature: 30_HUEBridge, 31_HUEDevice: added createGroupReadings attribute - feature: f18: implement dragging / dashboard - change: 93_DbLog: V3.8.3, configCheck improved, execute cache only every - syncInterval/2 if cacheLimit reached, error-handling + syncInterval/2 if cacheLimit reached, error-handling improved - bugfix: 93_DbRep: V7.7.1, minor fix if disabled - feature: 93_DbRep: V7.7.0, attribute "averageCalcForm" - select variant of - averageValue reporting, calc of daily medium temperature + averageValue reporting, calc of daily medium temperature according german weather service - bugfix: 88_HMCCU: Fixed missing events after get vars command Fixed state after RPC server start @@ -111,18 +112,18 @@ - change: 74_Unifi: SSIDs-Readings and drop-downs use goodReadingName() - feature: new module 37_NotifyAndroidTV.pm to send notifications to Notifications for Android TV/Fire TV apps (justme1968) - - bugfix: 98_TRAFFIC: v1.3.4, fixed DbLog_SplitFn, misc improvements + - bugfix: 98_TRAFFIC: v1.3.4, fixed DbLog_SplitFn, misc improvements - change: 72_FB_CALLMONITOR: reverse search provider klicktel.de is - DEPRECATED and will be removed in a future + DEPRECATED and will be removed in a future release. please use dasoertliche.de instead. attribute apiKeyKlicktelDe removed - bugfix: 93_DbLog: V3.7.1, fix typo in commandref - change: 93_DbRep: V7.5.5, minor corrections in delSeqDoublets - - change: 72_FB_CALLMONITOR: new attribute apiKeyKlicktelDe and + - change: 72_FB_CALLMONITOR: new attribute apiKeyKlicktelDe and apiKeySearchCh to configure own private API keys for reverse search via klicktel.de or search.ch - - feature: 93_DbRep: V7.5.4, dumpFilesKeep can be set to "0", new attribute - "ftpDumpFilesKeep" for version management on FTP, + - feature: 93_DbRep: V7.5.4, dumpFilesKeep can be set to "0", new attribute + "ftpDumpFilesKeep" for version management on FTP, delSeqDoublets optimized for consumption of resources - feature: 98_DOIFtools: blockinginfo added to running timer info - change: 73_PRESENCE: following attributes were renamed: @@ -139,11 +140,11 @@ - change: 93_DbLog: V3.7.0, log verbose 5 enhanced, configuration read check added to configCheck - feature: 74_Unifi: new Readings for WLAN-states, fixed Warning - - feature: 93_DbRep: V7.5.1, new set-options display/writeToDB for + - feature: 93_DbRep: V7.5.1, new set-options display/writeToDB for (max|min|sum|average|diff)Value, create background_processing_time before execute commands in attribute "executeAfterProc" (db-dumps) - - feature: 10_FRM: new attribute "disable", new states "disabled", + - feature: 10_FRM: new attribute "disable", new states "disabled", "defined" and "connected", new attribute "errorExclude", new reading "stringMessage", new internal "pullup_pins" - bugfix: 74_XiaomiBTLESens: fix Illegal hexadecimal digit ' ' ignored @@ -168,7 +169,7 @@ - bugfix: 93_DbRep: old dumpfiles not deleted by dumpMySQL clientSide - bugfix: 70_BRAVIA: typo fixed, 'set application' works now - feature: 93_DbRep: V7.4.0, new commands dumpSQLite/restoreSQLite, - execute commands before/after set optimizeTables, + execute commands before/after set optimizeTables, vacuum, restoreMySQL, restoreSQLite available, CAUTION !! attributes executeBeforeDump/executeAfterDump are renamed to executeBeforeProc/executeAfterProc @@ -176,7 +177,7 @@ enable/disable WLAN, new client-Reading essid - feature: structure: implement dynamic members via devspec (Forum #82604) - feature: new module 74_UnifiVideo for UnifiVideo integration (justme1968) - - change: 93_DbLog: V3.6.2, new attribute "exportCacheAppend", minor fix in + - change: 93_DbLog: V3.6.2, new attribute "exportCacheAppend", minor fix in Log verbose 5 - bugfix: 82_LGTV_WebOS: fix wrong paired reading and more - change: 98_dewpoint: Use NOTIFYDEV @@ -203,14 +204,14 @@ - update: 10_FRM: OWX IODev assignment - update: 10_FRM: Firmata 2.7+ support - bugfix: 98_weekprofile: fix "error restore topic" - - change: 14_CUL_TCM97001: Fix Logoutput, Fix device output with + - change: 14_CUL_TCM97001: Fix Logoutput, Fix device output with multiple sensors - change: 74_AMADDevice: change DEF and add Attribut IODev, add Reading incommingSmsText - change: 74_XiaomiFlowerSens: fix Problems with sshHost Methode - change: 73_GardenaSmartBridge/74_GardenaSmartDevice: add NotifyFn Support change AttrFn Routine - - feature: 93_DbRep: V7.2.0, new attributes "seqDoubletsVariance", + - feature: 93_DbRep: V7.2.0, new attributes "seqDoubletsVariance", "timeYearPeriod", minor fixes - feature: 98_TRAFFIC: v1.3.3, added alternatives, various improvements - feature: 70_BRAVIA: new command "application" to start an application on TV @@ -219,7 +220,7 @@ processing. ! Be sure to add readings to event-on- .... attributes ! if you want events to be generated ! - - feature: 93_DbLog: V3.6.0, check global blockingCallMax in configCheck, + - feature: 93_DbLog: V3.6.0, check global blockingCallMax in configCheck, configCheck available also for SQLITE now - feature: 10_SOMFY: internal rework / prep for Alex / position command - feature: 70_BRAVIA: new command "text" to add text to an input field @@ -278,7 +279,7 @@ - feature: 46_SmartPi: add decimal Attr, fix Notify bug - bugfix: 74_XiaomiFlowerSens: fix many Notify bugs - change: backup is always started in the background (Forum #80237) - - bugfix: 72_FB_CALLMONITOR: fix not working reverse-search-phonebook + - bugfix: 72_FB_CALLMONITOR: fix not working reverse-search-phonebook file import - change: 93_DbLog: V2.22.15, some Log verbose level adapted/added - bugfix: 44_S7_ARead: event-on-change-reading @@ -291,12 +292,12 @@ - change: 93_Log2Syslog: V3.2.0, add NOTIFYDEV (if possible) - change: 70_BRAVIA: set remoteControl supports command codes - change: 98_dewpoint: Consolidated and corrected formulas for dewpoint - (Forum #78359) + (Forum #78359) - fix: 00_SIGNALduino: Fix Bresser Sensor and perl sensor max length was to short (Forum #79929) - bugfix: 74_GardenaSmartBridge: change state to connected - bugfix: 74_XiaomiFlowerSens: fix change InternalTimer now - - bugfix: 49_SSCam: V3.2.4, don't retrieve presets during restart if cam is + - bugfix: 49_SSCam: V3.2.4, don't retrieve presets during restart if cam is disabled - feature: 98_Hyperion: - new "set binary restart/stop" - non-blocking for "get configFiles", @@ -309,14 +310,14 @@ 14_SD_WS: new tfa sensor supported 14_SD_WS07: extraction of rssi value support 14_SD_WS09: wind/rain total support - - change: 93_DbLog: V2.22.14, create state-events if state has been changed + - change: 93_DbLog: V2.22.14, create state-events if state has been changed (Forum:#78867) - feature: 10_EQ3BT: support remote Bluetooth interface via SSH (thx@Cooltux!) - feature: 93_DbRep: V6.0.0, FTP transfer dumpfile after dump (MySQL), delete old dumpfiles within Blockingcall, minor fixes - feature: 57_Calendar: new field categories (nils_, Forum #79237) - change: 72_FB_CALLMONITOR: delete stored FRITZ!Box password in - FHEM/uniqueID file upon deletion of a FB_CALLMONITOR definition + FHEM/uniqueID file upon deletion of a FB_CALLMONITOR definition - feature: TR064Utils.pm added - changed: 88_HMCCU: Improved attributes ccureadingfilter, stripnumber - feature: 89_FULLY: New commands for motion detection and brightness @@ -327,8 +328,8 @@ - new: 89_FULLY: Control Fully Browser - bugfix: 72_FB_CALLMONITOR: replace all unicode placeholders correctly in reverse search results - - feature: 72_FB_CALLMONITOR: block calls, that matches configured - blocking rules (deflections) from the FritzBox + - feature: 72_FB_CALLMONITOR: block calls, that matches configured + blocking rules (deflections) from the FritzBox (new attribute check-deflections), see commandref for details - changed: 98_Dooya: updated module - new: 98_Siro: New module for Siro blinds @@ -350,11 +351,11 @@ readingsGroup for DOIF, an userReadings for DOIF, a DOIFtoolsLog or an icon for DOIF by user request - feature: 74_XiaomiFlowerMonitor: add attribut for Blocking.pm logoutput - - bugfix: 14_CUL_TCM97001: Bug: "other state" bei W174, + - bugfix: 14_CUL_TCM97001: Bug: "other state" bei W174, Plausibility check for W174, Append documentation - - bugfix: 71_YAMAHA_AVR: fix max volume when using float values in + - bugfix: 71_YAMAHA_AVR: fix max volume when using float values in set command "volume" - - bugfix: 93_DbRep: V5.8.6, don't limit length of attr reading/device if + - bugfix: 93_DbRep: V5.8.6, don't limit length of attr reading/device if attr contains a list - feature: 70_KODI: added reading jsonResponse which contains the last received message from Kodi @@ -405,7 +406,7 @@ - change: 76_SMAInverter: V2.9.2, adapted to use extended abortArg - feature: 77_UWZ: add new sortby creation and add Italia Maps - feature: 49_SSCam: V3.2.3, new optimizeParams command to set cam properties - - bugfix: 72_FB_CALLMONITOR: fix wrong reverse-search of emergency call + - bugfix: 72_FB_CALLMONITOR: fix wrong reverse-search of emergency call (110/112/...), fix missing deletion of phonebook on reread. - change: 93_DbRep: V5.6.4, use new Blocking.pm abortArg - bugfix: 22_HOMEMODE: v1.1.10 - fix notifydev for HomeEventsHolidayDevices @@ -419,10 +420,10 @@ - bugfix: 73_GardenaSmartBridge: fix part of code - feature: 49_SSCam: V3.1.0, move extevent from CAM- to SVS-model, Reading PollState enhanced, minor fixes - - change: 93_DBLog: V2.22.8, avoid multiple entries of + - change: 93_DBLog: V2.22.8, avoid multiple entries of Device:Reading-combinations in Dopdown-list when creating SVG - - bugfix: 10_MQTT_BRIDGE: fix comandref $device + - bugfix: 10_MQTT_BRIDGE: fix comandref $device - feature: 74_AMADDevice: add media support for YouTubeKids - bugfix: 74_AMADautomagicFlowset_4.0.9.xml: fix restore volume bug - feature: 73_GardenaSmartBridge: add syntax check for disabledForIntervals @@ -438,7 +439,7 @@ - feature: 50_TelegramBot: hide cmd in favorites/changed favorites confirm - feature: 49_SSCam: V2.9.0, function get homeModeState, minor fixes, commandref revised - - bugfix: 00_MQTT: fix event-on-change Reading + - bugfix: 00_MQTT: fix event-on-change Reading - changed: 30_HUEBridge: added set inactive/active commands create event for lastError reading - change: 93_DbLog: V2.22.6 commandref revised @@ -451,7 +452,7 @@ - feature: 82_LGTV_WebOS: version 1.0.0 add WakeOnLAN function - bugfix: 00_MQTT: fix Undef - feature: 83_IOhomecontrol: new attribute setCmds - - bugfix: 00_MQTT: added delete + - bugfix: 00_MQTT: added delete - new: 83_IOhomecontrol: control IOhomecontrol devices via REST API - feature: 31_PLAYBULB: add support for Candle S Firmware 1.4 - feature: 73_GardenaSmartBridge: add attribut disabledForInterval @@ -489,7 +490,7 @@ - bugfix: 93_DbRep: V5.6.2, commandref revised - feature: 00_MQTT: OnMessageFn, last-will, onConnect/onDisconnect - feature: 10_MQTT_DEVICE: improved publishSet, retain, subscribeReadings - - feature: 10_MQTT_BRIDGE: improved retain, subscribeSet + - feature: 10_MQTT_BRIDGE: improved retain, subscribeSet - new: 31_Aurora.pm: first release - bugfix: 21_HEOS: fix missing curl - bugfix: 31_PLAYBULB: code cleaning @@ -501,7 +502,7 @@ - bugfix: 49_SSCam: V2.7.0, set maximum password lenth to 20 - bugfix: 73_AMADCommBridge: fix AnalyzeCommandChain sub call, fix AMADautomagicFlowset - - bugfix: 72_FB_CALLLIST: fix shifted table header + - bugfix: 72_FB_CALLLIST: fix shifted table header - new: 59_WUup: first release (Forum #65587) - feature: 49_SSCam: V2.6.3, snapGallery can be triggered by e.g. notify - bugfix: 93_DbLog: V2.22.3, Forum:#74690, unitialized message in row ... @@ -533,7 +534,7 @@ - feature: 57_Calendar: reduce memory footprint (forum #74481) - bugfix: 74_AMADDevice: fix openurl bug - bugfix: 49_SSCam: "uninitialized value in pattern ..." on fhem start - - feature: 49_SSCam: V2.4.0, new commands "snapinfo" and + - feature: 49_SSCam: V2.4.0, new commands "snapinfo" and "runView lastsnap_fw", minor fixes - feature: 93_DbLog: V2.22.0, new attribute "addStateEvent" - bugfix: 74_AMADDevice: Version 4.0.1 Charset utf8 @@ -544,15 +545,15 @@ - new: 70_NEUTRINO: new modul for neutrino sat receiver - bugfix: 74_AMAD: Change Commandref - change: 93_DbLog: V2.21.2, some improvements like get reading 'state' of - state-events, timeout increased, change configCheck for - DbRep Report_Idx + state-events, timeout increased, change configCheck for + DbRep Report_Idx - new: 46_SmartPi: Support read data from Smart Pi expansion module - change: 93_DbRep: V5.6.1, commandref revised, minor fixes - - feature: 93_DbRep: V2.6.0, new get-command "procinfo" (MySQL), default + - feature: 93_DbRep: V2.6.0, new get-command "procinfo" (MySQL), default timeout changed to 86400 - bugfix: 93_DbRep: minor bugfixes (thanks to Omega) - feature: 49_TBot_List: configure also add with attr confirmUnsolicited - - feature: 49_TBot_List: configure confirm delete as attribute confirmDelete + - feature: 49_TBot_List: configure confirm delete as attribute confirmDelete - changed: 98_fheminfo.pm: remove release, featurelevel, uptime infos - added: 98_uptime.pm: new command module to show FHEM uptime - change: 93_DbLog: V2.19.0, replace internal DBMODEL by MODEL completely @@ -567,7 +568,7 @@ - bugfix: 93_DbLog: V2.18.3, cannot load V2.18.2, new internal 'model' - bugfix: list: do not change the upper casing of hashes (Forum #73828) - bugfix: 71_YAMAHA_NP: Prevent directPlay from starting netradio stream - several times in slow internet connections + several times in slow internet connections - feature: 93_DbLog: V2.18.2, new command configCheck for MySQL, PostgreSQL - new: 98_archetype: introducing new module to inheritance attributes and defines devices @@ -584,7 +585,7 @@ - feature: YAMAHA_AVR: new set commands / readings to control HDMI outputs (only for models with two HDMI outputs) - featere: exclude_from_update can check the source too (Forum #73275) - - change: 93_DbRep: V5.2.0, preparation for UTF-8 support by DbLog + - change: 93_DbRep: V5.2.0, preparation for UTF-8 support by DbLog - bugfix: 36_Vallox: Changed read. Added attributes. Changed DeviceID. - bugfix: MQTT: undef patch - bugfix: ESPEasy: added missing event command (Forum #73291) @@ -595,7 +596,7 @@ - feature: 98_structure.pm: add evaluateSetResult attribute (Forum #73113) - feature: ESPEasy: improved defineFn if bridge port is missing, docu update - feature: 37_Spotify: resume on target - - feature: 93_DbRep: V5.1.0, create dumps of MySQL on client- or serverside, + - feature: 93_DbRep: V5.1.0, create dumps of MySQL on client- or serverside, column UNIT is added to the result of fetchrows-command - feature: ESPEasy: command reference revised - bugfix: 49_SSCam: crash after FHEM-restart if answer from DS is empty @@ -603,13 +604,13 @@ - feature: ESPEasy: added: dmx, motorshield, neopixel, candle, serialsend... - feature: 57_Calendar: asynchronous parsing, disable update - change: 34_ESPEasy: add IPv6 ULA to local IPs, add regexps to ACLs - - bugfix: 93_DbLog: V2.16.11, lock SQLite from logging if deleteOldDaysNbl + - bugfix: 93_DbLog: V2.16.11, lock SQLite from logging if deleteOldDaysNbl or reduceLogNbL is running in async mode - feature: ESPEasy: improved dual ip stack support - change: FHEMWEB/telnet needs password if directly(!) connected to the internet, see https://forum.fhem.de/index.php?topic=72717 - change: 34_ESPEasy: adjustments due to changes in TcpServerUtils.pm - - feature: 44_S7_ARead: supports for Logo7 and Logo8 short notations + - feature: 44_S7_ARead: supports for Logo7 and Logo8 short notations - feature: 44_S7_AWrite: supports for Logo7 and Logo8 short notations - feature: 37_Spotify: specify default device by its name - feature: 98_alarmclock: New feature stop Alarm @@ -627,8 +628,8 @@ added _utilization and _poePower readings - feature: 93_DbRep: v4.16.1, json as option of sqlResultFormat - feature: 31_PLAYBULB: add support for ssh remote control - - change: 42_Nextion: fault tolerance in reader / fixes - - feature: 50_TelegramBot: favorites rework - inline / allow : in inline + - change: 42_Nextion: fault tolerance in reader / fixes + - feature: 50_TelegramBot: favorites rework - inline / allow : in inline - change: 49_TBot_List: changed query data to prefix TBL_ / quiet peerid - feature: 98_alarmclock: New features AlarmTime9_Vacation, skip next Alarm - new 21_HEOS*: new modules to provide HEOS Multiroomsystem @@ -637,17 +638,17 @@ - feature: 98_alarmclock: New feature PresenceDevice - change: 49_SSCam: version 2.2.1, last record playback possible as iFrame, deviceoverview available, - CAUTION - syntax of runView options has been changed !! + CAUTION - syntax of runView options has been changed !! - change: 22_HOMEMODE: v1.1.0 please change %ALARM% to %ALARMHR% - change: 93_DbRep: version 4.15.0, limitation of fetchrows result to 1000 - adjustable by attr limit, performance increased in many + adjustable by attr limit, performance increased in many cases, some bugfixes of PostgreSQL sumValue/averageValue - change: 93_DbLog: new version 2.16.10, syntax of addlog command changed, reading userCommandResult contains "no result" if the db interface delivers undef - feature: 93_DbRep: new version 4.14.0, new command sqlCmd to execute arbitrary sql commands (thanks viegener for input), - DbRep provides an userExit interface to execute + DbRep provides an userExit interface to execute customer code independent from events - bugfix: 74_NUKIDevice: fix success Reading num - bugfix: 42_SYSMON: wlan speed, memory usage detection @@ -665,7 +666,7 @@ - feature: 31_PLAYBULB: support for new Garden Model, move battery Reading to powerLevel and add powerCharge Reading for Garden - feature: 00_DFPlayerMini: improved requestAck handling - - change: 49_SSCam: new version 2.1.3, change of internal processes, new + - change: 49_SSCam: new version 2.1.3, change of internal processes, new get scanVirgin command - bugfix: 73_ElectricityCalculator: SiPrefix multiplier instead divider - bugfix: 73_GasCalculator: SiPrefix multiplier instead divider @@ -675,7 +676,7 @@ - change: 71_YAMAHA_AVR: changing values of reading values conform to FHEM AV guidelines ("stopped", "playing" or "paused") - bugfix 73_km200.pm: Errorlist unsorted timestamp part 3 - - bugfix: 76_SMAInverter: version 2.9.1, issues for some inverter types + - bugfix: 76_SMAInverter: version 2.9.1, issues for some inverter types e.g. SunnyBoy systems - bugfix: 36_Vallox: Correction of binary reading interpretations. Optimized. Added Set for binary values. @@ -705,7 +706,7 @@ - feature: 82_LGTV_WebOS: Version 0.6.0, pingPresence, Bugfixes - bugfix: 02_FTUISRV: fix replacesetMagic to use hash - fhem.pl warning - bugfix: 10_pilight_ctrl: fix GS-iwds07 - - feature: 98_TRAFFIC: v1.3.1, attribute change, map setting save buttons + - feature: 98_TRAFFIC: v1.3.1, attribute change, map setting save buttons - feature: 98_TRAFFIC: v1.3, map customizable, enhancements, fix JSON error - change: 76_SMAInverter: changed SMA_logon, enhanced inverter Types - feature: 98_DLNARenderer: support $readingFnAttributes @@ -728,7 +729,7 @@ - bugfix: 98_weekprofile: handle csrfToken - bugfix: 02_HTTPSRV: strip parameters from filename - bugfix: 88_HMCCURPC: fixed binary RPC init procedure - - feature: 93_DBLog: new version 2.16.3, new command addlog, + - feature: 93_DBLog: new version 2.16.3, new command addlog, new attr valueFn, split events of ZWAVE - bugfix: 38_netatmo: fixed camera settings dependencies - update: 88_HMCCU: Version 4.0 with CUxD support @@ -746,20 +747,20 @@ - update: 88_HMCCU: Optimized reading update performance - feature: 00_SONOS: New lists for groupinformations - bugfix: 88_HMCCU: Fixed toggle function for HMCCUCHN devices - - change: 93_DbLog: new version 2.14.4, new set-commands exportCache, - importCachefile, some fixes (e.g. many SVGs from SQLite + - change: 93_DbLog: new version 2.14.4, new set-commands exportCache, + importCachefile, some fixes (e.g. many SVGs from SQLite in one room) - - bugfix: 93_DbRep: bugfix timestamp in minValue, maxValue if DB-VALUE + - bugfix: 93_DbRep: bugfix timestamp in minValue, maxValue if DB-VALUE contains more than one numeric value (e.g. in sysmon) - bugfix: 38_netatmo: sanity check for dynamic interval - bugfix: 88_HMCCU: fixed bug in update of virtual devices - feature: 70_BRAVIA: command remoteControl supports 'Netflix' - feature: 50_TelegramBot: favorite handling / hidden favorites / - utf8Special for unicode issues / + utf8Special for unicode issues / - new: 00_DFPlayerMini: module to control an embedded MP3 player - feature: 75_MSG: add support for PostMe module - feature: 74_XiaomiFlowerSens: 1.0.1 new Attributs minLux and maxLux - - feature: 98_monitoring: blacklist attribute is now a space seperated list + - feature: 98_monitoring: blacklist attribute is now a space seperated list of devspecs instead a comma seperated list of devices - bugfix: 32_withings: web token fix - bugfix: 93_DbRep: switch wintertime to summertime, minor fixes @@ -805,7 +806,7 @@ - bugfix: 00_SONOS: Errorhandling for RadioName etc. - feature: 98_template: new FHEM command template - feature: 70_MEDIAPORTAL: Plugins can be retreived and changed to - - update: 00_SONOS: New version, see Wiki- or File-Changelog + - update: 00_SONOS: New version, see Wiki- or File-Changelog - update: 88_HMCCU: Code optimized. Fixed Windows process ID bug. - bugfix: 71_YAMAHA_NP: Fixed tuner readings in standby. - bugfix: 42_Nextion: mult. fixes - page10 / disconnect / init @@ -840,10 +841,10 @@ non-blocking variants of count, reducelog and deleteOldDays - update: 88_HMCCU: Code optimized - - new: 49_TBot_List.pm: initial check in + - new: 49_TBot_List.pm: initial check in - feature: 42_Nextion: attributes disable/timeout, fix for page 10 - update: 02_FTUISRV: doc change on ftui-if - - feature: 50_TelegramBot: Secured: api key handled in setkey/getkey + - feature: 50_TelegramBot: Secured: api key handled in setkey/getkey msgChatId with peer / communication with TBot_List - update: 98_DOIFtools: add a possibility to set the attribute icon for DOIF by multiselect to helper_doif, DOIF's new icon D[:]IF @@ -877,8 +878,8 @@ - bugfix: 74_XiaomiFlowerSens: 0.6.4 rewrite Errorhandling - bugfix: 70_BRAVIA: utf-8 character handling use WOL only if device is absent (exception 2013 model) - respect channel uri for tv input selection - - changed: 93_DbRep: V4.10.3, rename reading "diff-overrun_limit-" + respect channel uri for tv input selection + - changed: 93_DbRep: V4.10.3, rename reading "diff-overrun_limit-" to "diff_overrun_limit_" - changed: 57_Calendar: avoid some warnings - bufix: 00_MQTT: fixed delete MQTT_DEVICE @@ -893,7 +894,7 @@ - update: 88_HMCCU.pm: version 3.9.001 with minor changes - update: 98_DOIFtools: add attribute to move event monitor directly above readings section in detail view of DOIF - - update: 93_DbLog: update to version 2.11.1, solves some issues since + - update: 93_DbLog: update to version 2.11.1, solves some issues since version 2.10.4, command set ... reopen extended - update: 98_DOIFtools.pm: add some hints, improved logfile handling - bugfix: 74_XiaomiFlowerSens: 0.6.3 fix blockingDone Routine @@ -943,14 +944,14 @@ pM_consumption to circumvent overlapping of commonly used reading 'power' where it is normally used as boolean. - - update: 93_DbLog: its now version 2.10.4, some improvements and new + - update: 93_DbLog: its now version 2.10.4, some improvements and new attributes - update: 74_XiaomiFlowerSens: 0.6.0 rewrite subroutinen for better handling - bugfix: 88_HMCCU.pm: fixed default attributes - update: 98_DOIFtools.pm: filter mentioned in event report Event monitor toggles instead on/off some shortcuts for get and set commands, hideable by attribute - - new: 98_mark: new command mark added + - new: 98_mark: new command mark added to mark devices TEMPORARY or VOLATILE - bufix: 00_MQTT: fixed delete MQTT device added setKeyValue/getKeyValue for username and password @@ -971,17 +972,17 @@ - update: DOIFtools:documentation - new: 98_DOIFtools: tools for DOIF - bugfix: 93_DbLog: its now version 2.9.2 (thanks to DS_Starter) - new bugfix for SQLite issue SVGs, DbLog_Log changed to + new bugfix for SQLite issue SVGs, DbLog_Log changed to $dev_hash->{CHANGETIME}, DbLog_Push changed (db handle new separated) - changed DbLog_ParseEvent to CallInstanceFn, + changed DbLog_ParseEvent to CallInstanceFn, renamed flushCache to purgeCache, - renamed syncCache to commitCache, + renamed syncCache to commitCache, attr cacheEvents changed to 0,1,2 changed DbLog_ParseEvent to CallFn - change: 73_PRESENCE: new collectord package to support RSSI selection - feature: 73_NUKIBridge,74_NUKIDevice: add NUKIDevice Readings rssi paired - - feature: 73_PRESENCE: + - feature: 73_PRESENCE: - new mode "event" to determine presence state based on events of other FHEM definitions. - new attributes "absenceTimeout" and "presenceTimeout" for @@ -997,13 +998,13 @@ - bugfix: 74_XiaomiFlowerSens: fix disableForInterval Bug - bugfix: 88_HMCCU.pm: fixed attribute substexcl - update: 88_HMCCU.pm: new version 3.7 - - bugfix: contrib/Widgets/DateTimePicker/fhemweb_datetime.js: + - bugfix: contrib/Widgets/DateTimePicker/fhemweb_datetime.js: - added set parameter to ID to differentiate datetime widgets - new : 74_XiaomiFlowerSens, to retrieves data from a Xiaomi Flower Monito - update: 73_NUKIBridge, 74_NUKIDevice set Commands are filtered by Attributs,better check alive function Callback/Webhook support for software bridge - - bugfix: 93_DbLog.pm: is now version 2.8.8, no dropdown list in SVG in + - bugfix: 93_DbLog.pm: is now version 2.8.8, no dropdown list in SVG in asynchronous mode, minor fixes - feature: 20_ROOMMATE,20_GUEST: introduce new attribute r*_presenceDevices to allow easy status synchronisation with @@ -1023,7 +1024,7 @@ - change: 70_Pushover: old msg set syntax was declared as being deprecated. - feature: 93_DbLog: can now working in async mode (thanks to DS_Starter) - new: 19_VBUSIF: new Device to connect an RESOL VBUS Device - - new: 21_VBUSDEV: new locical Device to connect to different + - new: 21_VBUSDEV: new locical Device to connect to different Resol and compatible VBUS Devices via VBUSIF.pm - bugfix: 73_GasCalculator: Reset for calendar year fixed - bugfix: 73_ElectricityCalculator: Reset for calendar year fixed @@ -1040,15 +1041,15 @@ - feature: 10_SOMFY: new RTS commands 0x9 und 0xA (set wind_sun_9/wind_only_a - bugfix: 93_DbRep: importFromFile format problem if UNIT-field wasn't set - feature: 98_fhemdebug, to aid "Error: >< no TYPE" debugging. - - feature: 70_Jabber Added possibility to change componentname via + - feature: 70_Jabber Added possibility to change componentname via attr JabberDomain - - feature: 93_DbRep: function readingRename added, delEntries is able to + - feature: 93_DbRep: function readingRename added, delEntries is able to use SQL-Wildcards in attr reading/device - bugfix: 98_Verkehrsinfo.pm: Fix state update, Hessenschau message - - feature: 50_TelegramBot: msgForceReply, disable, + - feature: 50_TelegramBot: msgForceReply, disable, keyboards in messages, inline keyboards and dialogs - bugfix: 74_NUKIDevice: Fix Problem with battery Reading - - update: 97_TrashCal.pm: fetches shared dates at an public webpage + - update: 97_TrashCal.pm: fetches shared dates at an public webpage of waste disposal - bugfix: 73_GasCalculator: Corrected month of annual reading - bugfix: 73_ElectricityCalculator: Corrected month of annual reading @@ -1070,16 +1071,16 @@ - bugfix: 93_DbRep: bugfix group by-clause due to incompatible changes made in MyQL 5.7.5 (Forum #msg541103) - feature: 66_ECMD, 67_ECMDDevice: - - if split is used, the strings at which the messages are split + - if split is used, the strings at which the messages are split are still part of the messages - no default attributes for requestSeparator and responseSeparato - - input of raw data as perl-encoded string (for setting + - input of raw data as perl-encoded string (for setting attributes) - be more verbose and explicit at loglevel 5 - documentation corrected and amended - - feature: 57_Calendar: BYDAY: recognizes and honors one or several weekdays + - feature: 57_Calendar: BYDAY: recognizes and honors one or several weekdays with and without prefix (e.g. -1SU, 2MO) with MONTHLY - - bugfix: contrib/Widgets/DateTimePicker/fhemweb_datetime.js: parameter + - bugfix: contrib/Widgets/DateTimePicker/fhemweb_datetime.js: parameter settings fixed -> e.g. defaultTime:21:00 - bugfix: 88_HMCCU: Fixed memory leak in RPC server - feature: 01_FHEMWEB: Dump "Probably associated with" in Raw definition @@ -1116,8 +1117,8 @@ - feature: 37_dash_dhcp: added devAlias attribute - update: 74_AMAD: statusRequest every Time - change: 93_DbRep: code reviewed, no functional changes - - change: 93_DbRep: DbRep version as INTERNAL, check if DBI module is - installed + - change: 93_DbRep: DbRep version as INTERNAL, check if DBI module is + installed - bugfix: 76_MSGMail: Clean up net::smtp version number before comparison - bugix: 14_Hideki: fixed wrong return in ParseFn (msg533900) 14_SD_WS: fixed wrong return in ParseFn (msg533900) @@ -1133,11 +1134,11 @@ new reading effectArgs - bugfix: 98_Hyperion: clear is working now effects with dash in name are accepted now - - change: 93_DbRep: sub diffValue changed due to Forum #msg520154, - attr diffAccept added, add diffValue state Warnings due - to several situations and generate readings + - change: 93_DbRep: sub diffValue changed due to Forum #msg520154, + attr diffAccept added, add diffValue state Warnings due + to several situations and generate readings not_enough_data_in_period / diff-overrun_limit - - change: YAMAHA_AVR: create events even when current.* readings will be + - change: YAMAHA_AVR: create events even when current.* readings will be set to an empty string. (Forum: #60902) - bugfix: 10_ZWave: possible changes for multichannel devices (Forum #50176) - new: 39_siri.pm: configuration of fhem/siri integration @@ -1165,7 +1166,7 @@ - bugfix: 93_DbRep: calc issue due to daylight saving time end (winter time) - new: 30_pilight_raw.pm: New Attribut sendCount - bugfix: 10_SOMFY: wrong attribute reference ...-up-time-to-close removed - - new: 42_Nextion.pm: New module to connect Nextion displays + - new: 42_Nextion.pm: New module to connect Nextion displays - changed: YahooWeatherAPI: react on wrong units - changed: Pushsafer: optimized picture file error handling - new: 59_Wunderground: new weather module to fetch @@ -1173,7 +1174,7 @@ - bugfix: 50_HP1000: correct default unit for windSpeed/windGust from m/s to km/h and transfer unit conversions to new UConv.pm - feature: Pushsafer: new option "picture", "picture2" and "picture3" for - "message" set command to send pictures from local + "message" set command to send pictures from local filesystem or a IPCAM device. See commandref for detail - change: FB_CALLMONITOR: open TCP connection non-blocking, shutdown connection when disabled @@ -1181,12 +1182,12 @@ - feature: 10_SOMFY: positionInverse für homebridge + fixes - feature: 50_TelegramBot: multibot support / markup on send text / msgEdit - feature: 93_DbRep: get svrinfo contains SQLite database file size (MB) - - feature: 93_DbRep: get data of dbstatus, dbvars, tableinfo, svrinfo + - feature: 93_DbRep: get data of dbstatus, dbvars, tableinfo, svrinfo (database dependend) - - added: 70_Pushsafer: new module to send push notifications via + - added: 70_Pushsafer: new module to send push notifications via www.pushsafer.com - feature: 93_DbRep: allow SQL-Wildcards (% _) in attr reading & attr device - - bugfix: 49_SSCam: Experimental keys on scalar is now forbidden + - bugfix: 49_SSCam: Experimental keys on scalar is now forbidden (Perl >= 5.23) Forum: #msg501709 - added: 37_dash_dhcp.pm: new module for amazon dash buttons - feature: 98_Hyperion: removed attribute hyperionAttrRestore @@ -1194,7 +1195,7 @@ - added: 73_NUKIBridge,74_NUKIDevice: New Modules to control Nuki Smartlock - feature: 98_Hyperion: new attribute hyperionAttrRestore readings will always be refreshed now - - feature: 93_DbRep: deviceRename added, new Internal DATABASE, + - feature: 93_DbRep: deviceRename added, new Internal DATABASE, Internal/Attribute ROLE added for Autorename-function - bugfix: 93_DbRep: delEntries not running on SQLite - added: 74_THINKINGCLEANER: new module to support remote control of @@ -1205,11 +1206,11 @@ - feature: 98_Hyperion: set configFile only available if at least two files are found while get configFiles minor code improvements - - feature: 50_TelegramBot: urlescaped filenames / location send-receive - timeout for send + - feature: 50_TelegramBot: urlescaped filenames / location send-receive + timeout for send - feature: 73_ElectricityCalculator: header and readingFnAttributes added - feature: 73_GasCalculator: header and readingFnAttributes added - - feature: 73_km200: header and readingFnAttributes added + - feature: 73_km200: header and readingFnAttributes added - feature: 93_DbRep: function minValue added - bugfix: 38_netatmo: fix for invalid forecast data crashing FHEM - feature: 98_Hyperion: version check for hyperion server @@ -1221,16 +1222,16 @@ - feature: readingsGroup: allow grouping of similar readings from one device - feature 14_SD_WS09: WH1080 CRC-Berechung angepaßt--> automatische Modelauswahl - - feature: 00_SIGNALduino: nonblocking communication, improved init + - feature: 00_SIGNALduino: nonblocking communication, improved init and keepalive, fixed manchester related stuff, Supports - Somfy RTS Protocol. Decoding manchester encoded messages + Somfy RTS Protocol. Decoding manchester encoded messages longer than buffer is now possible. - new function sendMSG. + new function sendMSG. Firwmware updated to 3.3.0, please flash - supports send command from IT Module. + supports send command from IT Module. Serval new protocols implemented. - - bufgix: 14_SD_WS09.pm - WH1080 CRC corrected --> model is selectet per default + - bufgix: 14_SD_WS09.pm + WH1080 CRC corrected --> model is selectet per default - feature: 98_Dooya: Deatures shutters and blinds with dooya protocol - feature: 14_SD_WS_Maverick: Supports Maverick bbq thermometer - feature: 14_SD_WS: Multi purpose Module to support various weather sensors. @@ -1242,21 +1243,21 @@ - feature: 93_DbRep: Internal "LASTCMD" added, new reading background_processing_time, diffValue calculation moved to backgrd to reduce load - - feature: 93_DbRep: new function importFromFile to import data from file + - feature: 93_DbRep: new function importFromFile to import data from file (CSV format) - bugfix: 73_ElectricityCalculator: Crash due wrong hash pointer assignment - feature: new optional arguments for device creation in copy command - - bugfix: 49_SSCam: bugfix of get presets, get patrols of zoom-cams + - bugfix: 49_SSCam: bugfix of get presets, get patrols of zoom-cams without pan/tilt - updated: 74_AMAD: New Version 2.6.3 new Reading userFlowState, new set Command userFlowState, checkAndroidVersion on doNotDisturb Reading - change: suppressReading attribute added for all devices (Forum #57841) - bugfix: 88_HMCCU: Fixed CUxD device datapoint handling - - change: 10_IT: create events during readings update. + - change: 10_IT: create events during readings update. change logging - Add Sensor EV1527 - Support for SIGNALduino + Add Sensor EV1527 + Support for SIGNALduino (Forum #52827) - change: 88_HMCCU: fixed bug in attribute stripnumber. Added autocreate - change: 49_SSCam: internal timer of start-routines optimized @@ -1266,19 +1267,19 @@ - change: 10_ZWAVE: TRANSMIT_NO_ACK is reading only (Forum #57781) - feature: 93_DbRep: new attr readingPreventFromDel to prevent readings from deletion when a new operation starts - - change: 49_SSCam: attr simu_SVSversion changed, added 407 errorcode msg, + - change: 49_SSCam: attr simu_SVSversion changed, added 407 errorcode msg, external recording changed for SVS 7.2 - bugfix: 73_ElectricityCalculator: get/set list per device and not global - bugfix: 98_DLNARenderer: fix pauseToggle/next/prev (thx@MattG) - bugfix: 73_GasCalculator: get/set list deleted for CounterDevice - bugfix: 73_ElectricityCalculator: get/set list deleted for CounterDevice - - bugfix: 73_km200: Bugfix for double entries in RespondingServices. + - bugfix: 73_km200: Bugfix for double entries in RespondingServices. - feature: 73_km200: New service type found: "serviceinfo". - added: HMCCUConf: Interface between FHEM and Homematic CCU2 - added: 88_HMCCU: Interface between FHEM and Homematic CCU2 - added: 88_HMCCUCHN: Interface between FHEM and Homematic CCU2 - added: 88_HMCCUDEV: Interface between FHEM and Homematic CCU2 - - change: 93_DbRep: changed format of diffValue-reading if no value was + - change: 93_DbRep: changed format of diffValue-reading if no value was selected - new: 24_TPLinkHS110: Support for TPLink HS100/110 wifi power outlet - bugfix: 73_GasCalculator: get/set list corrected for CounterDevice @@ -1301,7 +1302,7 @@ - updated: 74_AMAD: New Version 2.6.2 CommandRef Update, new set command for media control - change: 98_Hyperion: non-blocking server connection - - feature: 49_SSCam: function get stmUrlPath added, fit to new commandref + - feature: 49_SSCam: function get stmUrlPath added, fit to new commandref style, attribute showStmInfoFull added - change: 57_CALVIEW: fixed internal timer error - change: 38_netatmo: error state, enabled debug logging for verbose 5 @@ -1310,8 +1311,8 @@ - feature: 90_at: computeAfterInit attribute (Forum #56706) - change: 93_DbRep: fit to new commandref style - bugfix: 20_ROOMMATE,20_GUEST: Fixed wakeuptimer <> at-device sync - - feature 93_DbRep: current_year_begin, previous_year_begin, - current_year_end, previous_year_end added as possible + - feature 93_DbRep: current_year_begin, previous_year_begin, + current_year_end, previous_year_end added as possible values for timestmp attribute, new attribute timeOlderThan, commandref continued - feature: attr global commandref modular, Forum #39854 @@ -1333,7 +1334,7 @@ - changed: 98_Hyperion: introducing new attribute hyperionNoSudo - changed: 38_netatmo: removed event-on-change default, min HOME interval - changed: 93_DbRep: usage of "insert" changed, pls. refer to commandref - - changed: 93_DbRep: function "insert" added, check of numeric value type + - changed: 93_DbRep: function "insert" added, check of numeric value type in functions maxvalue, diffvalue - added: 98_Hyperion: initial release of completely new module - feature: 10_OWServer/11_OWDevice: new device DS2433 4kbit 1-Wire RAM @@ -1366,8 +1367,8 @@ - added: 77_SMASTP: Support for SMA Sunny Tripower Inverter - added: 77_SMAEM: Support for SMA Energy Meter - added: 00_HMUARTLGW: new module for eQ-3 HomeMatic UART/LanGateway - - change: 93_DbRep: function "diffValue" added, readingnames changed to - ensure valid reading order, write "-" for reading-value if no + - change: 93_DbRep: function "diffValue" added, readingnames changed to + ensure valid reading order, write "-" for reading-value if no dataset is found in selection timerange - updated: 74_AMAD: New Minor Release 2.4 new AMADCommBridge API - changed: 10_ZWave: alarm Events text changed, comma replaced, Forum #53389 @@ -1408,8 +1409,8 @@ - changed: 30_HUEBridge: added disabledForIntervals, added lastError, use state/stateFormat instead of STATE - feature: PRESENCE: added lepresenced to commandref (by PatrickR) - - feature: PRESENCE: new attribute bluetooth_hci_device to select a - specific bluetooth sender for presence checking + - feature: PRESENCE: new attribute bluetooth_hci_device to select a + specific bluetooth sender for presence checking (only for mode "local-bluetooth") - feature: 74_AMAD: new Feature added support for do not Disturb Mode - bugfix : 74_HOMBOT: check path for sshpass @@ -1419,7 +1420,7 @@ - deleted: 52_I2C_GY30_BH1750FVI: Arno Augustin hatte fast zeitgleich eine technisch bessere Variante entwickelt. Diese ist nicht mehr notwendig - - updated: 52_I2C_HDC1008: Umbau auf asynchrones I2C lesen, + - updated: 52_I2C_HDC1008: Umbau auf asynchrones I2C lesen, alle sleeps entfernt - feature: 74_AMAD: new Feature change current volume + or - value set TABLET volume -5 @@ -1445,14 +1446,14 @@ - change: 70_ONKYO_AVR: rewrite based on IODev - feature: configDB: new command 'configdb dump' added. currently only supported for sqlite! - - bugfix: FB_CALLLIST: fix not working calllist when renaming the + - bugfix: FB_CALLLIST: fix not working calllist when renaming the configured FB_CALLMONITOR definition. - feature: 10_SOMFY : Added readingFnAttributes - bugfix: FB_CALLLIST: no reading update when list becomes empty - feature: added new module 37_plex.pm - feature: FBAHAHTTP module as replacement for the deprecated FBAHA - feature: 50_TelegramBot reply set command / allowedCommands as restriction - - change: 49_SSCam: get "snapfileinfo" will get back an Infomessage if + - change: 49_SSCam: get "snapfileinfo" will get back an Infomessage if Reading "LastSnapId" isn't available - feature: dummy attribute useSetExtensions - change: speedtest: create readings without units @@ -1461,7 +1462,7 @@ - bugfix : 74:AMAD: modify informationsflow - feature: 00_ZWDongle: add backupCreate / backupRestore - bugfix: 49_SSCam: module will not load due to Unknown warnings category - 'experimental' when using an older perl version + 'experimental' when using an older perl version - feature: 71_PHILIPS_AUDIO : Added input support for AW9000 - bugfix: 50_TelegramBot: contact handling failed (/ in contact names ??) - feature: new module 02_FTUISRV.pm for server side templates for tablet UI @@ -1475,7 +1476,7 @@ - bugfix: 14_CUL_TCM97001: Fix battery bits. Fix Auriol receive - feature: 50_TelegramBot supergroup support description for favorites - text customization for response messages + text customization for response messages - feature: 49_SSCam: motion detection parameters can be entered if motion detection by camera or by SVS is used - feature: 74_AMAD: Flowinstaller and FlowsetUpdater - Support for older @@ -1483,19 +1484,19 @@ - change: 59_Weather: included caching in YahooWeatherAPI - change: 49_SSCam: behavior of "set ... on" changed, Attr "recextend" added please have a look at commandref and Wiki - - bugfix: 49_SSCam: setstate-warning if FHEM is restarted and SVS not + - bugfix: 49_SSCam: setstate-warning if FHEM is restarted and SVS not reachable (Forum: #308) - bugfix: userReadings trigger is always $ terminated (Forum #52165) - bugfix: 74_AMAD: fix checkActivTask - bugfix: 74_AMAD: fix Commandref, APSSID for non WLAN Devices - change: YAMAHA_AVR: removed set command tunerPreset, - added new set command preset to select a configured preset for + added new set command preset to select a configured preset for the currently selected input. Please change your configuration to new command if you use tunerPreset in notify/at definitions - - feature: PRESENCE: new attribute absenceThreshold to define a number of - checks that have to result in "absent" before the state of + - feature: PRESENCE: new attribute absenceThreshold to define a number of + checks that have to result in "absent" before the state of PRESENCE is changed to absent. See commandref for details. - - bugfix: PRESENCE: new collectord script and .deb package fixing not + - bugfix: PRESENCE: new collectord script and .deb package fixing not working statusRequest when a room in collectord is disconnected - updated: 74_AMAD: New Minor Release 2.0 Please read the Wiki or Commandref !!! ATTENTION !!! Modify Definition is necessary @@ -1510,15 +1511,15 @@ - change: 49_SSCAM: change to new RemoveInternalTimer for functions - feature: new module 52_I2C_K30.pm added - bugfix: 98_weekprofile: send reference profile to device - - feature: 10_pilight_ctrl | 30_pilight_switch: support protocol daycom + - feature: 10_pilight_ctrl | 30_pilight_switch: support protocol daycom - feature: 59_Weather: rewritten to use JSON API - bugfix: 49_SSCAM: "link_open" doesn't work after last update - added: 70_BRAVIA: new module for Sony Televisions - - feature: 98_statistics: attr specialDeltaPeriod (new) enhanced for more + - feature: 98_statistics: attr specialDeltaPeriod (new) enhanced for more than one value and different periods - bugfix: 00_SIGNALduino: Replaced firmware with an old one. - feature: 49_SSCAM: add "lastrec","lastrec_open" to playback last recording - - change: 49_SSCAM: "ptzlistpresets" - "id" changed to "position" according + - change: 49_SSCAM: "ptzlistpresets" - "id" changed to "position" according to Synology-ticket, run "geteventlist" automatically after recording-stop, delay of InternalTimer(s) changed @@ -1528,14 +1529,14 @@ - fixed: 10_pilight_ctrl send long raw codes - fixed: 98_weekprofile fix mutated vowels - feature: 50_TelegramBot new option to retry for send & - confirmation dialog for favorites + confirmation dialog for favorites - fixed: configDB.pm - fix filelist problem on perl >= 5.20 - fixed: configDB.pm - add modpath evaluation - feature 71_PHILIPS_AUDIO Added model attribute - feature 71_YAMAHA_NP Added model attribute - feature 71_YAMAHA_NP: Smooth volume change added. General code cleanup - change: 49_SSCAM: routine "initonboot" changed - - bugfix: 49_SSCAM: default recordtime 15 s is used if attribute "rectime" + - bugfix: 49_SSCAM: default recordtime 15 s is used if attribute "rectime" is set to "0" - bugfix: YAMAHA_AVR: fix not working navigateListMenu under certain circumstances @@ -1551,13 +1552,13 @@ - feature: FB_CALLLIST: new attribute "expire-calls-after" to automatically delete call entries after a certain time frame. See commandref for details and syntax. - - feature: FB_CALLLIST: new reading "numberOfCalls" which shows the number + - feature: FB_CALLLIST: new reading "numberOfCalls" which shows the number of shown call entries. - bugfix: 00_SIGNALduino: updated firmware to 3.2.0-hf1 solves MU and MC issue - - bugfix: PRESENCE/presenced: fixed crash of presenced when receiving an + - bugfix: PRESENCE/presenced: fixed crash of presenced when receiving an invalid command, new deb packages released (see commandref) - - bugfix: 44_TEK603: Fixed TankLevel=NO_DATA + - bugfix: 44_TEK603: Fixed TankLevel=NO_DATA - feature: LGTV_IP12: new reading "power" - change: LGTV_IP12: changed values of mute reading from true/false to on/of - bugfix: 30_MilightBridge: suppress protocol change message on startup @@ -1568,35 +1569,35 @@ - feature: new module LGTV_IP12 for controlling LG SmartTV's manufactured between 2012-2014 via network connection - feature: 30_MilightBridge: Support tcp bridge. - - bugfix: 30_MilightBridge/98_ping: Use Blocking.pm for ping checks so + - bugfix: 30_MilightBridge/98_ping: Use Blocking.pm for ping checks so it does not block main thread. - feature 49_SSCAM: functions for cam-livestream added - bugfix: 73_km200.pm: Bugfix InternalTimer; Improvement Log Level - bugfix: pre-coomit-hook test - - bugfix: 98_weekprofile: detect channel of HM-CC-TC as correct thermostat + - bugfix: 98_weekprofile: detect channel of HM-CC-TC as correct thermostat - bugfix: 00_SIGNALduino: Version 3.2.0 Module & Firmware serval fixes and enhacements, improved stability, supports many new protocols, ITv3 sockets and switches, new sendMsg Function. You need to flash your SIGNALduino with the new firmware. - bugfix: 14_Hideki: support rain sensors - - bugfix: 14_SD_WS07: Fixed some wordings + - bugfix: 14_SD_WS07: Fixed some wordings - feature: 14_SD_WS09 Module for WH1080 (WS-0101, TFA30.3189) & CTW600 868MHz OOK/AS - - feature: TimeSeries: median, holdtime for event-aggregator + - feature: TimeSeries: median, holdtime for event-aggregator - feature: 57_CALVIEW: added internal notify-fn for calendar-devices, - added attr disable for internal notify-fn, removed ts state and + added attr disable for internal notify-fn, removed ts state and started_* reading, removed old mode-attributes /def modes, changed commandref - bugfix: 49_SSCam: fixed a problem that the state is "disable" instead of "disabled" if a camera is disabled and FHEM will be restarted - feature: 98_weekprofile: attribute widgetEditDaysInRow to control visible days in one row - - feature: 49_SSCAM: function "get ... eventlist" added, Reading CamEventNum + - feature: 49_SSCAM: function "get ... eventlist" added, Reading CamEventNum added which containes total number of camera events, change usage of reading "LastUpdateTime" - added: 79_BDKM: new module for Buderus KM Gateways - feature: 57_Calendar: get ... uid ... - - feature 49_SSCAM: function "runPatrol" added that starts predefined + - feature 49_SSCAM: function "runPatrol" added that starts predefined patrols of PTZ-cameras, Reading "CamDetMotSc" added - feature: LightScene: added nextScene and previousScene commands - feature 49_SSCAM: Reading "CamExposureControl" added @@ -1624,7 +1625,7 @@ - feature: 49_SSCAM: feature for retrieval snapfilename added - bugfix: 57_Calendar: weekly recurring events on several weekdays, missing description - - feature: 57_Calendar: RDATE enabled + - feature: 57_Calendar: RDATE enabled - bugfix: 49:SSCAM: "goAbsPTZ" may be unavailable on Windows-systems - feature 49_SSCAM: added function "move" for continuous PTZ action - feature: 02_RSS: continue image update sequence after error (HTML) @@ -1656,11 +1657,11 @@ - feature: New module 74_HOMBOT to control LG Hombot vacuum cleaner - bugfix: 49_SSCAM: credentials won't be deleted if "rereadcfg" is used - bugfix: 76_MSGMail: Make use of attribute mailtype again (enabling html) - - feature: 49_SSCAM: added function "svsinfo" to get informations about + - feature: 49_SSCAM: added function "svsinfo" to get informations about installed SVS-package - - bugfix: 49_SSCAM: saved Credentials were deleted if a device will be + - bugfix: 49_SSCAM: saved Credentials were deleted if a device will be deleted - - change: 49_SSCAM: if Availability = "disconnected" then "state"-value + - change: 49_SSCAM: if Availability = "disconnected" then "state"-value will be "disconnected" too - feature: 70_Pushalot: added support for TimeToLive parameter. - bugfix: 60_allergy: fixed invalid readings names @@ -1668,7 +1669,7 @@ - feature: 91_notify: add readLog attribute - feature: 98_ping: Add attribute for minimum fails before reporting (minFailCount) - - bugfix: PRESENCE: fix log warning "use of uninitialized value ..." when + - bugfix: PRESENCE: fix log warning "use of uninitialized value ..." when using power set command without any argument. - added: 60_allergy: Allergy forecast data for Germany - feature: FB_CALLLIST: new attribute number-cmd to execute a FHEM command @@ -1679,11 +1680,11 @@ - feature: 31_MilightDevice: Color changes during dim on lower brightness - bugfix: 30_MilightBridge/31_MilightDevice: Variable fallbacks, colorcast - bugfix: 44_TEK603: fixed wrong values. - - bugfix: 49_SSCam: fixed the problem a recording may still stay active if + - bugfix: 49_SSCam: fixed the problem a recording may still stay active if fhem will be restarted after a recording was triggered and the recordtime wasn't be over, Enhancement of readings. - - change: 76_MSGMail: move email delivery from MSGMail_set to MSGMail_send + - change: 76_MSGMail: move email delivery from MSGMail_set to MSGMail_send to be usable from perl; use Blocking_Call to deliver email - change: 55_GDS.pm uses setKeyValue/getKeyValue for user credentials - feature: new module 52_I2C_BME280.pm added (klausw) @@ -1692,7 +1693,7 @@ added "set credentials" command to save username/password, added Attribute "session" to make login-session selectable, NOTE: You have to adapt your define-strings after update !! - look at commandref or forum-post for details: + look at commandref or forum-post for details: forum.fhem.de/index.php/topic,45671.msg397449.html#msg397449 - bugfix: 73_GasCalculator: Bugfix in Commandref and 2 attributes renamed. - feature: 98_weekprofile: including topics\categories @@ -1706,12 +1707,12 @@ - feature: update is executed per default in the background - bugfix: FB_CALLLIST: fix "Use of uninitialized value" warnings on startup - change: 49_SSCam: Change of define-string related to rectime. - Note: see all changes of rectime usage in commandref + Note: see all changes of rectime usage in commandref or in Forum: .../index.php/topic,45671.msg391664.html#msg391664 - added: 98_count: count devices specified by devspec or all - bugfix: 57_CALVIEW: bugfix for started terms - - feature: 10_KOPP_FC: Receive Mode for dimmer implemented, + - feature: 10_KOPP_FC: Receive Mode for dimmer implemented, change: 10_KOPP_FC: removed "toggle" command, use "on" or "off" instead - change: 49_SSCam: Vars "USERNAME" and "RECTIME" removed from Internals, Var (Internals) "SERVERNAME" changed to "SERVERADDR", @@ -1728,7 +1729,7 @@ - feature: 51_I2C_TSL2561: support non-blocking I2C-IO, especially when using Firmata over LAN - feature: FB_CALLLIST: new attribute answMachine-is-missed-call to treat - incoming calls, which were taken by an answering + incoming calls, which were taken by an answering machine, as "missed call". Only relevant for list-type "missed-call". - change: FB_CALLMONITOR: reading "missed_call_line" will not be triggered @@ -1763,7 +1764,7 @@ - bugfix: 95_Dashboard: fixed issue when using cmdIcon attribute for devices. - feature: 71_PHILIPS_AUDIO: select presets and favorites by name. - - feature: 50_TelegramBot: alias for commands, new readings, + - feature: 50_TelegramBot: alias for commands, new readings, support for sending media files; plus fixes - feature: 20_ROOMMATE, 20_GUEST: new attribute r*_geofenceUUIDs for direct GEOFANCY @@ -1773,7 +1774,7 @@ readings created (improves security/stability) - feature: configDB: rescue mode added, read forum #46538 - changed: 49_SSCam: documentation changed - HINT: use IP-Adresses instead of hostnames in SSCAM-Define! + HINT: use IP-Adresses instead of hostnames in SSCAM-Define! - bugfix: FB_CALLLIST: fix not working longpoll update in FHEMWEB - change: FB_CALLLIST: saved list will be deleted from filesystem when delete is executed @@ -1796,7 +1797,7 @@ - bugfix: 51_I2C_TSL2561: correct lux calculation floatArithmetics case - feature: YAMAHA_AVR: add pointer to main zone in Internals for zone defs - change: YAMAHA_AVR: DSP based models use command queue of main zone - to execute commands for zone definitions + to execute commands for zone definitions (many thanks to dev0 for patience and support) - bugfix: YAMAHA_AVR: fix navigateListMenu for RX-Vx71 series models, fix bass/treble missbehaviour for DSP based models @@ -1807,7 +1808,7 @@ - feature: 57_CALVIEW.pm: added new function for running terms - change: 57_CALVIEW.pm: improved commandref - feature: 98_update.pm: support multiple repositories (Forum #45121) - - change: 71_YAMAHA_NP: More secure FM frequency input + - change: 71_YAMAHA_NP: More secure FM frequency input - feature: FHEMWEB/Event Monitor: optional FHEM Log monitor. - feature: 50_Telegrambot: multiple contacts for send etc/removed depreacted messageTo,sendImageTo,sendPhotoTo/allowunknowncontacts @@ -1821,9 +1822,9 @@ - feature: YAMAHA_NP: Direct FM frequency setting. - feature: 30_pilight_xyz: possibility to change IO-Device (IODEV) - bugfix: YAMAHA_AVR: fixing not correctly volume smoothing - - change: 49_SSCam: turned completly to HttpUtils_NonblockingGet for - calling websites nonblocking, - LWP is not needed anymore, + - change: 49_SSCam: turned completly to HttpUtils_NonblockingGet for + calling websites nonblocking, + LWP is not needed anymore, use of InternalTimer instead of fhem(sleep), improve usage of verbose-modes - change: 10_RESIDENTS.pm: Readings residentsTotalOwners* were renamed to @@ -1837,26 +1838,26 @@ - new set command/reading partyMode - disabledForInterval attribute added see details in commandref - - change: YAMAHA AVR: optimized HTTP request command queue to allow + - change: YAMAHA AVR: optimized HTTP request command queue to allow correct processing of concatenated set commands (no sleep commands neccesary anymore) - bugfix: 95_Dashboard: fixed local link in command ref - bugfix: 10_IT: Ignore sending if dummy (Forum ID 44990) feature: 10_IT: Add functionality for setting ITClock (Forum ID 44451) - - bugfix: 14_CUL_TCM97001: Fix creation of plots + - bugfix: 14_CUL_TCM97001: Fix creation of plots - updated: 74_AMAD: New Mijor Release 1.0.0 Add Reading Android Version Add VoiceInput fo VoiceCommands Bug Fixes Call ReadingsVal from Automagic HTTP Request with Respons - - feature: 89_rssFeed: New module to get data from rss news feeds + - feature: 89_rssFeed: New module to get data from rss news feeds - feature: FB_CALLMONITOR: added attribute disabledForIntervals to specify specific time ranges, where FB_CALLMONITOR will be disabled (see commandref for the exact syntax) - changed: YAMAHA_AVR: added HTTP request queue, send only one request at the same time. This increases command reliability and response behaviour of the AV receiver. - - bugfix: 49_SSCam: avoid problems when running this module on + - bugfix: 49_SSCam: avoid problems when running this module on windows systems - feature: 14_CUL_TCM97001: Add redirect for Eurochron to SD_WS07 modul Add support for KW9010 sensor @@ -1884,10 +1885,10 @@ via set command on - bugfix: 95_Dashboard: fixed javascript bug causing tabs not to load - feature: 36_DavisVantage.zip (author: "habeIchVergessen") - Receive Davis Vantage Weather Stations with JeeLink + Receive Davis Vantage Weather Stations with JeeLink and the KeyValueProtocol module - feature: new module 36_KeyValueProtocol - - bugfix: 95_Dashboard: the fhem root url is not hardcoded any more + - bugfix: 95_Dashboard: the fhem root url is not hardcoded any more but read from the $FW_ME variable. Fixed a problem that causes drag&drop being still activated when the dashboard was locked. (resize/move) @@ -1921,7 +1922,7 @@ respectively. - feature: Introduce FHEM message routing by new command 'msg' - bugfix: 98_Text2Speech: Google fixed, svox-pico added - - bugfix: 00_SIGNALduino: Updated Firmware (3.8.1-HF1) + - bugfix: 00_SIGNALduino: Updated Firmware (3.8.1-HF1) fixed send raw - updated: 74_AMAD: New Mijor Release 0.8.1 - bugfix: 74_AMAD: fix call statusRequest then screen off is set @@ -1956,15 +1957,15 @@ matchBrackets:true, autofocus:true, theme:"blackboard", lineNumbers:true, autoRefresh:true this can be overwritten with fhemweb attribute 'codemirrorParam' - - updated: codemirror version to 5.8 + - updated: codemirror version to 5.8 the default codemirror javascript files are now minified - feature: 70_XBMC: -added disable attribute -added reading tvshowid - - feature: new module 00_SIGNALduino.pm and 90_SIGNALduino_un: added + - feature: new module 00_SIGNALduino.pm and 90_SIGNALduino_un: added SIGNALduino module and firmware - - feature: new module 14_Hideki.pm: added module for sensors with hideki + - feature: new module 14_Hideki.pm: added module for sensors with hideki protocol - - feature: new module 14_SD_WS07.pm: added module for sensor devices with + - feature: new module 14_SD_WS07.pm: added module for sensor devices with protocol id7 - feature: 32_yowsup.pm: allow comma separated receiver list on master send - bugfix: YAMAHA_AVR: fixing not working remoteControl commands for @@ -1984,7 +1985,7 @@ - feature: 73_km200: Improving error message in state - feature: SYSMON: FormatString for SYSMON_ShowValues. - feature: 36_JeeLink: added timeout attribute (by HCS) - - change: 14_CUL_TCM: implement new sensor types. Fix some wrong + - change: 14_CUL_TCM: implement new sensor types. Fix some wrong interpretations. Add additional readings. - feature: on/off-till-overnight (SetExtensions.pm) - bugfix: 73_km200: Bugfix for freeze in "Sounding" @@ -2034,7 +2035,7 @@ - bugfix: 38_CO20.pm: removed unneccesary error messages due to USB timeout - feature: 70_PushNotifier: use regexe for deviceID - bugfix: 30_pilight_temp: pressure, windavg, winddir, windgust from weather - stations without temperature + stations without temperature - feature: 74_Unifi: - new readings for controller, accesspoints and clients - new Setter: archiveAlerts, disconnectClient, restartAP setLocateAP, unsetLocateAP @@ -2042,14 +2043,14 @@ - new Attributes: eventPeriod, httpLoglevel - feature: 30_pilight_temp: - Added support for pressure, windavg, winddir, windgust from weather stations - - feature: 98_Text2Speech.pm: + - feature: 98_Text2Speech.pm: - Quality and Speed as new Parameter - Bugfixing with Google Download - added VoiceRSS as new Ressouce - TTS_FileTemplateDir: Beginning with absolute directory now possible - TTS_Timeout (optional) added - - feature: 74_Unifi: - ReadingNames now by default (in this order): + - feature: 74_Unifi: - ReadingNames now by default (in this order): Attr 'devAlias' > controllerAlias > hostname > user_id - Attr 'devAlias' now can rename: controllerAlias, hostname, user_id @@ -2081,7 +2082,7 @@ - Added Attribute for separate muteRegexPattern - Added Attribute httpNoShutdown - Added possibility to disable ampInput check - - feature: YAMAHA_AVR: new reading "newFirmware" for indicating firmware + - feature: YAMAHA_AVR: new reading "newFirmware" for indicating firmware update. new argument "direct" for volume commands to avoid volume smoothing (if activated) - added: 70_VolumeLink.pm: New module to link the volume-level and @@ -2134,18 +2135,18 @@ - bugfix: SOMFY: Only send stop if position changed improved timing for position update fix typos (go-my instead of go_my) - - feature: ios6touchpadstyle: style adjustments for the Dashboard + - feature: ios6touchpadstyle: style adjustments for the Dashboard module version 3.0 - bugfix: 10_IT: Correct command parsing (forum id 38467) - bugfix: Dashboard: corrected version number - feature: SYSSTAT: added mibs attribute for snmp monitoring - bugfix: Dashboard: fixed CSS height issue for rows (top, center, bottom) - - feature: FB_CALLLIST: new attribute "external-mapping", new column for + - feature: FB_CALLLIST: new attribute "external-mapping", new column for external_connection reading (see commandref for details, by Michael) - feature: Dashboard: release version 3.0 - bugfix: SYSMON: 'disable' not working at FHEM-start - - bugfix: Text2Speech: ogg/wav as direkt mp3files are now possible + - bugfix: Text2Speech: ogg/wav as direkt mp3files are now possible - bugfix: SOMFY: Added attr "additionalPosReading" to store current position Bugfixing, made position calculation more stable - bugfix: 10_IT: Fix readings State for IT V3 switch (Forum #38406) @@ -2153,17 +2154,17 @@ capability) - change: FRITZBOX: for most features no telnet access needed anymore Execution of own TR-064 commands now possible - - bugfix: FB_CALLMONITOR: fixing not working company numbers + - bugfix: FB_CALLMONITOR: fixing not working company numbers - bugfix: 34_NUT: Handling bei Verlust der Verbindung verbessert - bugfix: 31_MilightDevice: Small changes from MarkusM (Remove dependency on Math::Round) - - bugfix: 30_MilightBridge: Minor change to ping code to try and resolve + - bugfix: 30_MilightBridge: Minor change to ping code to try and resolve crash when hostname not in dns - bugfix: pilight_ctrl: reset - clear send queue - feature: pilight_ctrl: add attribute SendTimeout for aborting sending commands - feature: FB_CALLMONITOR: add TR-064 support for remote phonebook reading - via official AVM API (by JoWiemann) + via official AVM API (by JoWiemann) - feature: 10_pilight_ctrl.pm: added disconnect - feature: 32_yowsup.pm: added home attribute - feature: readingsGroup: allow commands for attributes @@ -2187,7 +2188,7 @@ - bugfix: 73_km200: Bugfix for sorting and comparison method - bugfix: SYSMON: CPU frequency - feature: OWServer/OWDevice: new device EDS00XX (forum #37453) - - feature: 59_Weather: french translations and pressure shown in + - feature: 59_Weather: french translations and pressure shown in state (phervier) - feature: 36_LaCrosse: Implemented WS 1600 - feature: 10_IT: Add HE800 support see @@ -2214,7 +2215,7 @@ 93_DbLog_dbReadings_using_DbLogType.diff - bugfix: 14_CUL_TCM97001: Fix some uninitialized vars, update docu - feature: 30_pilight_temp: attribut corrHumidity to correct humidity - - feature: 76_MSGMail: Add attribute mailtype as suggested by Roger + - feature: 76_MSGMail: Add attribute mailtype as suggested by Roger (forum #37206) - feature: 30_pilight_temp: reading battery state, attribut corrTemp to correct temperature @@ -2224,7 +2225,7 @@ - feature: 10_pilight_ctrl possibility to ignore all incomming messages, added protocol quigg_gt* - change: MSG: Replace file and mail related code with delegates - - change: MSGFile: Assimilate file related code from 75_MSG + - change: MSGFile: Assimilate file related code from 75_MSG to make it standalone, without requiring MSG device - change: MSGMail: Assimilate mail related code from 75_MSG to make it standalone, without requiring MSG device @@ -2232,7 +2233,7 @@ (required for libnet-3.06) - change: MilightDevice/MilightBridge: Fixes, features, changes (by MarkusM) - bugfix: SYSMON: network speed - - improved: I2C_TSL2561: asynchronous measurements, new readings (by jensb), + - improved: I2C_TSL2561: asynchronous measurements, new readings (by jensb), new set update command, removed get command - feature: SYSMON: method to create html bar chart (thanks to snx) - added: SYSMON: new statistic readings for RAM and SWAP @@ -2242,14 +2243,14 @@ - fixed: SYSMON: cpu_freq_stat - fixed: SYSMON: some warnings - added: SYSMON: new readings _speed, cpuX_freq_stat, - cpuX_idle_stat, cpu_temp_stat + cpuX_idle_stat, cpu_temp_stat - improved: SYSMON: documentation - change: WMBus: support for Easymeter - added: New modules 10_pilight_ctrl, 30_pilight_dimmer, 30_pilight_switch and 30_pilight_temp to support pilight (sending and receiving) - bugfix: 98_EDIPLUG: change kW/h to kWh and fix missing Id - feature: FB_CALLMONITOR: new reverse search method "textfile" for custom - definitions + definitions - bugfix: FB_CALLMONITOR: correct reverse search of Call-By-Call outgoing calls - feature: FB_CALLMONITOR: reverse search order can now be configured @@ -2309,7 +2310,7 @@ - feature: 02_HTTPSRV: query string sets readings (Stefan Strobel) - bugfix: 57_CALVIEW: - bugfix in set function - change: 57_CALVIEW: - fixed function 'set intervall' - - see comandref for detail (now use the define + - see comandref for detail (now use the define for change intervall) - change: 73_km200 - More Services added - bugfix: 73_km200 - Re-Read bug in set function corrected @@ -2341,17 +2342,17 @@ into rgb values. See forum thread #30128 - feature: FB_CALLMONITOR: read all available phonebooks directly wia web interface (also online phonebooks from Google, etc.). - new attributes fritzbox-remote-phonebook-via and + new attributes fritzbox-remote-phonebook-via and fritzbox-remote-phonebook-exclude. new get command showPhonebookIds. Details can be read in commandref (by JoWiemann) - feature: 02_RSS.pm: new attribut autoreread; new NotifyFn and UndefFN; new layout commands textboxf, embed, push, pop; FWext is automatically deleted after deletion of last - RSS device; RSS Overview and elements opened in new tab; + RSS device; RSS Overview and elements opened in new tab; refresh 0 to disable autorefresh; new function plotFromUrl - bugfix: SOMFY: use correct attributename when calculating updatetime - - feature: 95_FLOORPLAN.pm: arrange by drag&drop, + - feature: 95_FLOORPLAN.pm: arrange by drag&drop, copy, rename, delete processes userattr fp_ - added: 30_LIGHTIFY.pm: New module for OSRAM LIGHTIFY gateways - changed: 98_pilight.pm: New protocols @@ -2373,7 +2374,7 @@ - bugfix: SYSMON: some warnings - changed: SYSMON: documentation - feature: SYSMON: query parameters from remote system (telnet) - - feature: 71_YAMAHA_NP.pm Improved timer setting + - feature: 71_YAMAHA_NP.pm Improved timer setting - feature: 55_GDS uses own FWEXT instead HTTPSRV - feature: 98_logProxy.pm added postFn and scale2reading options - feature: 70_Pushbullet.pm: new module 70_Pushbullet.pm @@ -2390,8 +2391,8 @@ - changed: 71_YAMAHA_NP.pm: Provide entire http link to Player AlbumArt. - changed: 71_YAMAHA_NP.pm: Minor code improvements. - changed: 71_YAMAHA_NP.pm: Perl code clean-up after 'perlcritic' check. - - feature: 71_YAMAHA_NP.pm: New readings: tunerModeDAB, tunerBitrateDAB, - tunerAudioModeDAB, tunerFrequencyDAB. + - feature: 71_YAMAHA_NP.pm: New readings: tunerModeDAB, tunerBitrateDAB, + tunerAudioModeDAB, tunerFrequencyDAB. New internals: NP_ICON_x, UDN, Friendly_Name - changed: 73_km200.pm: More services found. - bugfix: FB_CALLMONITOR: read phonebooks after all attributes are set @@ -2399,25 +2400,25 @@ - feature: 70_XBMC.pm: clear readings when stopping media - feature: 70_XBMC.pm: new reading is3DFile for 3D files - bugfix: 70_XBMC.pm: improved JSON separator - - added: 73_km200: More services added. + - added: 73_km200: More services added. - changed: 73_km200: Fhem get-command is able to return raw. - bugfix: 73_km200: Handling of unknown attributes corrected. - - feature: 31_MilightDevice.pm: Add hue/ct colorpickers. + - feature: 31_MilightDevice.pm: Add hue/ct colorpickers. Add "presets" set command. - - feature: 70_XBMC.pm: new commands poweron,poweroff. + - feature: 70_XBMC.pm: new commands poweron,poweroff. configurable by attribute powerCmd - - added: 71_YAMAHA_NP.pm: New module for controlling Yamaha + - added: 71_YAMAHA_NP.pm: New module for controlling Yamaha network players such as CRX-N560(D) - bugfix: FB_CALLMONITOR: fix not working telnet login, when user based authentication is configured in FritzBox - feature: 02_RSS.pm: improved frontpage for RSS - bugfix: FB_CALLMONITOR regognize "user:" as login prompt for remote telnet connection (phonebook) - - changed: 73_km200.pm: DoNotPoll includes top-down hierarchy - - bugfix : 73_km200.pm: Correction of commandref - entry - - changed: 98_Text2Speech (thanks to TeeVau): + - changed: 73_km200.pm: DoNotPoll includes top-down hierarchy + - bugfix : 73_km200.pm: Correction of commandref - entry + - changed: 98_Text2Speech (thanks to TeeVau): added calculate the MP3 Duration into Reading - adjust Volume now in indirect mode possible + adjust Volume now in indirect mode possible - changed: 57_CALVIEW.pm: code cleanup - changed: 73_km200.pm: Reading will be deleted after set by DoNotPoll - bugfix: 73_km200.pm: German commandref still contained English text @@ -2432,7 +2433,7 @@ - fix: 66_ECMD: use STATE not state for connection checking (forum #31307) - feature: 57_Calendar: enable gzipped ical files (forum #31845) - bugfix: 70_Jabber.pm: XMPP DNS SVR record query added - - bugfix: 70_PIONEERAVR: fixed "missed to call readingsBeginUpdate first" + - bugfix: 70_PIONEERAVR: fixed "missed to call readingsBeginUpdate first" - feature: fhemweb.js rewrite based on jQuery, single-widget-implementation - feature: SVG: multiple sources allowed, Plot-Editor - feature: textfield-long and knob widgets @@ -2460,7 +2461,7 @@ - added: some new icons (hourglass, frost, sani_heating_level_XX) - fix: sani_heating_boost (possibility to colorize) - feature: FB_CALLMONITOR: add remote phonebook lookup via telnet connection - to FritzBox (JoWiemann). + to FritzBox (JoWiemann). - bugfix: 70_PIONEERAVR & 71_PIONEERAVRZONE: fixed not working set-extensions (on-for-timer,...) - feature: fheminfo: report third-party modules @@ -2472,7 +2473,7 @@ added httpUtils for nonblocking mode - feature: HUEDevice: added group handling added renaming of devices and groups in the bridge - - added: 30_MilightBridge / 31_MilightDevice: Support Milight + - added: 30_MilightBridge / 31_MilightDevice: Support Milight (Applamp/LimitlessLED/EasyBulb) LED lights/strips/controllers. - feature: HUEDevice: allow ct presets in webCmd new subTypes extcolordimer and ctdimer @@ -2485,8 +2486,8 @@ - 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: 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 @@ -2513,7 +2514,7 @@ - fhem 5.6 released - 2014-11-09 (5.6) - - bugfix: FB_CALLMONITOR: fixing race condition of missing events while + - bugfix: FB_CALLMONITOR: fixing race condition of missing events while performing multiple calls - feature: PROPLANTA: captures weather forecast from web pagewww.proplanta.de - feature: 15_CUL_EM added attribute maxPeak (arnoaugustin) @@ -2528,7 +2529,7 @@ - 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 + - 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 @@ -2555,7 +2556,7 @@ - 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 + - 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 @@ -3759,7 +3760,7 @@ - 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 + - 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" @@ -3974,4 +3975,3 @@ - 2005-10-27 (1.3) - Bugfix: multiple at commands at the same time. - diff --git a/fhem/FHEM/66_ECMD.pm b/fhem/FHEM/66_ECMD.pm index 9a975b59d..d29d3dc64 100644 --- a/fhem/FHEM/66_ECMD.pm +++ b/fhem/FHEM/66_ECMD.pm @@ -31,7 +31,7 @@ package main; General rule: ECMD handles raw data, i.e. data that might contain control and non-printable characters. -User input for raw data, e.g. setting attributes, and display of raw data is perl-encoded. +User input for raw data, e.g. setting attributes, and display of raw data is perl-encoded. Perl-encoded raw data in logs is not enclosed in double quotes. A carriage return/line feed (characters 13 and 10) is encoded as @@ -86,7 +86,7 @@ ECMD_Initialize($) $hash->{GetFn} = "ECMD_Get"; $hash->{SetFn} = "ECMD_Set"; $hash->{AttrFn} = "ECMD_Attr"; - $hash->{AttrList}= "classdefs split logTraffic:0,1,2,3,4,5 timeout partial requestSeparator responseSeparator autoReopen"; + $hash->{AttrList}= "classdefs split logTraffic:0,1,2,3,4,5 timeout partial requestSeparator responseSeparator autoReopen stop:0,1"; } ##################################### @@ -104,11 +104,11 @@ ECMD_Define($$) Log 2, $msg; return $msg; } - + $hash->{fhem}{".requestSeparator"}= undef; $hash->{fhem}{".responseSeparator"}= undef; $hash->{fhem}{".split"}= undef; - + DevIo_CloseDev($hash); $hash->{Protocol}= $protocol; @@ -151,7 +151,7 @@ ECMD_DoInit($) my $msg = undef; ECMD_Clear($hash); - + $hash->{STATE} = "Initialized" if(!$hash->{STATE}); return undef; @@ -166,14 +166,14 @@ oq($) } sub -dq($) +dq($) { my ($s)= @_; return defined($s) ? ( $s eq "" ? "empty string" : escapeLogLine($s) . " (" . oq($s) . ")" ) : ""; } sub -cq($) +cq($) { my ($s)= @_; @@ -185,7 +185,7 @@ cq($) $s =~ s/\\r/\r/g; $s =~ s/\\t/\t/g; $s =~ s/\\\\/\\/g; - + return $s; } @@ -195,14 +195,14 @@ ECMD_Log($$$) { my ($hash, $loglevel, $logmsg)= @_; my $name= $hash->{NAME}; - $loglevel= AttrVal($name, "logTraffic", undef) unless(defined($loglevel)); - return unless(defined($loglevel)); + $loglevel= AttrVal($name, "logTraffic", undef) unless(defined($loglevel)); + return unless(defined($loglevel)); Log3 $hash, $loglevel, "$name: $logmsg"; } ##################################### sub -ECMD_Ready($) +ECMD_Ready($) { my ($hash) = @_; @@ -218,21 +218,31 @@ ECMD_Ready($) return ($InBytes && $InBytes>0); } +##################################### +sub +ECMD_isStopped($) +{ + my $dev = shift; # name or hash + $dev = $dev->{NAME} if(defined($dev) && ref($dev) eq "HASH"); + my $isDisabled = AttrVal($dev, "stop", 0); +} ##################################### sub -ECMD_SimpleRead($) +ECMD_SimpleRead($) { my $hash = shift; + return undef if ECMD_isStopped($hash); my $answer= DevIo_SimpleRead($hash); ECMD_Log $hash, undef, "read " . dq($answer); return $answer; } sub -ECMD_SimpleWrite($$) +ECMD_SimpleWrite($$) { my ($hash, $msg) = @_; + return undef if ECMD_isStopped($hash); ECMD_Log $hash, undef, "write " . dq($msg); DevIo_SimpleWrite($hash, $msg, 0); } @@ -241,42 +251,44 @@ sub ECMD_SimpleExpect($$$) { my ($hash, $msg, $expect) = @_; - + my $name= $hash->{NAME}; + return undef if ECMD_isStopped($name); + my $timeout= AttrVal($name, "timeout", 3.0); my $partialTimeout= AttrVal($name, "partial", 0.0); - + ECMD_Log $hash, undef, "write " . dq($msg) . ", expect $expect"; my $answer= DevIo_Expect($hash, $msg, $timeout ); - - #Debug "$name: Expect got \"" . escapeLogLine($answer) . "\"."; - + + #Debug "$name: Expect got \"" . escapeLogLine($answer) . "\"."; + # complete partial answers if($partialTimeout> 0) { my $t0= gettimeofday(); while(!defined($answer) || ($answer !~ /^$expect$/)) { #Debug "$name: waiting for a match..."; my $a= DevIo_SimpleReadWithTimeout($hash, $partialTimeout); # we deliberately use partialTimeout here! - #Debug "$name: SimpleReadWithTimeout got \"" . escapeLogLine($a) . "\"."; + #Debug "$name: SimpleReadWithTimeout got \"" . escapeLogLine($a) . "\"."; if(defined($a)) { $answer= ( defined($answer) ? $answer . $a : $a ); } - #Debug "$name: SimpleExpect has now answer \"" . escapeLogLine($answer) . "\"."; + #Debug "$name: SimpleExpect has now answer \"" . escapeLogLine($answer) . "\"."; last if(gettimeofday()-$t0> $partialTimeout); } } - + if(defined($answer)) { ECMD_Log $hash, undef, "read " . dq($answer); if($answer !~ m/^$expect$/) { - ECMD_Log $hash, 1, "unexpected answer " . dq($answer) . " received (wrote " . + ECMD_Log $hash, 1, "unexpected answer " . dq($answer) . " received (wrote " . dq($msg) . ", expected $expect)"; } } else { - ECMD_Log $hash, 1, "no answer received (wrote " . + ECMD_Log $hash, 1, "no answer received (wrote " . dq($msg) . ", expected $expect)"; } - + return $answer; } @@ -293,6 +305,7 @@ sub ECMD_Clear($) { my $hash = shift; + return undef if ECMD_isStopped($hash); # Clear the pipe DevIo_TimeoutRead($hash, 0.1); @@ -318,9 +331,14 @@ ECMD_Get($@) return "get raw needs an argument" if(@a< 3); my $ecmd= join " ", @args; $ecmd= AnalyzePerlCommand(undef, $ecmd); - $answer= ECMD_SimpleExpect($hash, $ecmd, ".*"); + # poor man's error catching... + if($ecmd =~ "^Bareword \"") { + $answer= $ecmd; + } else { + $answer= ECMD_SimpleExpect($hash, $ecmd, ".*"); + } } else { - return "get $cmd: unknown command "; + return "Unknown argument $cmd, choose one of raw"; } $hash->{READINGS}{$cmd}{VAL} = $answer; @@ -396,7 +414,7 @@ ECMD_EvalClassDef($$$) # Log3 $hash, 5, "$name: no newline"; # $hash->{fhem}{classDefs}{$classname}{nonl}= 1; #} - + # # params # @@ -425,7 +443,7 @@ ECMD_EvalClassDef($$$) $arg = $1; Log3 $hash, 5, "$name: reading $readingname will match $arg"; $hash->{fhem}{classDefs}{$classname}{readings}{$readingname}{match}= $arg; - # + # # postproc # } elsif($spec eq "postproc") { @@ -441,7 +459,7 @@ ECMD_EvalClassDef($$$) # anything else # } else { - Log3 $hash, 1, + Log3 $hash, 1, "$name: illegal spec $spec for reading $readingname for class $classname in file $filename."; } # @@ -499,7 +517,7 @@ ECMD_EvalClassDef($$$) $hash->{fhem}{classDefs}{$classname}{gets}{$cmdname}{expect}= $arg; } } else { - Log3 $hash, 1, + Log3 $hash, 1, "$name: illegal spec $spec for $cmd $cmdname for class $classname in file $filename."; } } else { @@ -548,7 +566,7 @@ ECMD_Attr($@) my $c= cq($a[3]); $hash->{fhem}{".split"}= $c; Log3 $hash, 5, "$name: split set to " . dq($c); - } + } } elsif($a[0] eq "del") { if($a[2] eq "requestSeparator") { $hash->{fhem}{".requestSeparator"}= undef; @@ -559,7 +577,7 @@ ECMD_Attr($@) } elsif($a[2] eq "split") { $hash->{fhem}{".split"}= undef; Log3 $hash, 5, "$name: split deleted"; - } + } } return undef; @@ -571,6 +589,7 @@ sub ECMD_Reopen($) { my ($hash) = @_; + return undef if ECMD_isStopped($hash); DevIo_CloseDev($hash); DevIo_OpenDev($hash, 1, undef); @@ -603,16 +622,16 @@ ECMD_Set($@) ##################################### # called from the global loop, when the select for hash->{FD} reports data -sub ECMD_Read($) +sub ECMD_Read($) { my ($hash) = @_; - + return undef unless($hash->{STATE} eq "opened"); # avoid reading from closed device - + my $buf = ECMD_SimpleRead($hash); return unless(defined($buf)); return if($buf eq ""); - + ECMD_Log $hash, 5, "Spontaneously received " . dq($buf); Dispatch($hash, $buf, undef); # dispatch result to ECMDDevices } @@ -623,7 +642,7 @@ ECMD_Write($$$) { my ($hash,$msg,$expect) = @_; my $name= $hash->{NAME}; - + my $lastWrite= defined($hash->{fhem}{".lastWrite"}) ? $hash->{fhem}{".lastWrite"} : 0; my $now= gettimeofday(); @@ -633,9 +652,9 @@ ECMD_Write($$$) ECMD_Reopen($hash) if($now>$lastWrite+$timeout); sleep($delay); } - + $hash->{fhem}{".lastWrite"}= $now; - + my $answer; my $ret= ""; my $requestSeparator= $hash->{fhem}{".requestSeparator"}; @@ -646,7 +665,7 @@ ECMD_Write($$$) } else { push @ecmds, $msg; } - ECMD_Log $hash, 5, "command split into " . ($#ecmds+1) . " parts, requestSeparator is " . + ECMD_Log $hash, 5, "command split into " . ($#ecmds+1) . " parts, requestSeparator is " . dq($requestSeparator) if($#ecmds>0); foreach my $ecmd (@ecmds) { ECMD_Log $hash, 5, "sending command " . dq($ecmd); @@ -708,8 +727,8 @@ ECMD_Write($$$) Character coding

- - ECMD is suited to process any character including non-printable and control characters. + + ECMD is suited to process any character including non-printable and control characters. User input for raw data, e.g. for setting attributes, and the display of raw data, e.g. in the log, is perl-encoded according to the following table (ooo stands for a three-digit octal number):
@@ -776,11 +795,11 @@ ECMD_Write($$$) get <name> raw <command>

Sends the command <command> to the physical ECMD device - <name> and reads the response. In the likely case that + <name> and reads the response. In the likely case that the command needs to be terminated by a newline character, you have to resort to a <perl special>.

- Example: + Example:
    get AVRNETIO raw { "ip\n" }
@@ -796,22 +815,22 @@ ECMD_Write($$$)
  • split <separator>
    Some devices send several readings in one transmission. The split attribute defines the separator to split such transmissions into separate messages. The regular expression for - matching a reading is then applied to each message in turn. After splitting, the separator - is still part of the single messages. Separator can be a single- or multi-character string, + matching a reading is then applied to each message in turn. After splitting, the separator + is still part of the single messages. Separator can be a single- or multi-character string, e.g. \n or \r\n. - Example: attr myECMD split \n splits foo 12\nbar off\n into + Example: attr myECMD split \n splits foo 12\nbar off\n into foo 12\n and bar off\n.
  • logTraffic <loglevel>
    Enables logging of sent and received datagrams with the given loglevel. Control characters in the logged datagrams are escaped, i.e. a double backslash is shown for a single backslash, \n is shown for a line feed character, etc.
  • -
  • timeout <seconds>
    Time in seconds to wait for a response from the physical ECMD device before FHEM assumes that something has gone wrong. The default is 3 seconds if this attribute is not set.
  • -
  • partial <seconds>
    Some physical ECMD devices split responses into several transmissions. If the partial attribute is set, this behavior is accounted for as follows: (a) If a response is expected for a get or set command, FHEM collects transmissions from the physical ECMD device until either the response matches the expected response (reading ... match ... in the class definition) or the time in seconds given with the partial attribute has expired. (b) If a spontaneous transmission does not match the regular expression for any reading, the transmission is recorded and prepended to the next transmission. If the line is quiet for longer than the time in seconds given with the partial attribute, the recorded transmission is discarded. Use regular expressions that produce exact matches of the complete response (after combining partials and splitting).
  • +
  • timeout <seconds>
    Time in seconds to wait for a response from the physical ECMD device before FHEM assumes that something has gone wrong. The default is 3 seconds if this attribute is not set.
  • +
  • partial <seconds>
    Some physical ECMD devices split responses into several transmissions. If the partial attribute is set, this behavior is accounted for as follows: (a) If a response is expected for a get or set command, FHEM collects transmissions from the physical ECMD device until either the response matches the expected response (reading ... match ... in the class definition) or the time in seconds given with the partial attribute has expired. (b) If a spontaneous transmission does not match the regular expression for any reading, the transmission is recorded and prepended to the next transmission. If the line is quiet for longer than the time in seconds given with the partial attribute, the recorded transmission is discarded. Use regular expressions that produce exact matches of the complete response (after combining partials and splitting).
  • requestSeparator <separator>
    - A single command from FHEM to the device might need to be broken down into several requests. + A single command from FHEM to the device might need to be broken down into several requests. A command string is split at all occurrences of the request separator. The request separator itself is removed from the command string and thus is not part of the request. The default is to have no request separator. Use a request separator that does not occur in the actual request.
  • responseSeparator <separator>
    - In order to identify the single responses from the device for each part of the command broken down by request separators, a response separator can be appended to the response to each single request. + In order to identify the single responses from the device for each part of the command broken down by request separators, a response separator can be appended to the response to each single request. The response separator is only appended to commands split by means of a request separator. The default is to have no response separator, i.e. responses are simply concatenated. Use a response separator that does not occur in the actual response.
  • @@ -819,69 +838,73 @@ ECMD_Write($$$) If this attribute is set, the device is automatically reopened if no bytes were written for <timeout> seconds or more. After reopening FHEM waits <delay> seconds before writing to the device. Use the delay with care because it stalls FHEM completely. +
  • stop
    + Disables read/write access to the device if set to 1. No data is written to the physical ECMD device. A read request always returns an undefined result. + This attribute can be used to temporarily disable a device that is not available. +
  • verbose


  • - + Separators

    When to use the split and partial attributes?

    - + Set the partial attribute in combination with reading ... match ... in the class definition, if you receive datagrams with responses which are broken into several transmissions, like resp followed by onse\r\n.

    - - Set the split attribute if you + + Set the split attribute if you receive several responses in one transmission, like reply1\r\nreply2\r\n.

    - + When to use the requestSeparator and responseSeparator attributes?

    - + Set the requestSeparator attribute, if you want to send several requests in one command, with one transmission per request. The strings sent to the device for set and get commands as defined in the class definition are broken down into several request/response interactions with the physical device. The request separator is not sent to the physical device.

    - + Set the responseSeparator attribute to separate the responses received for a command broken down into several requests by means of a request separator. This is useful for easier postprocessing.

    - + Example: you want to send the requests request1 and request2 in one command. The physical device would respond with response1 and response2 respectively for each - of the requests. You set the request separator to \000 and the response separator to \001 and you define - the command as request1\000request2\000. The command is broken down into request1 + of the requests. You set the request separator to \000 and the response separator to \001 and you define + the command as request1\000request2\000. The command is broken down into request1 and request2. request1 is sent to the physical device and response1 - is received, followed by sending request2 and receiving response2. The final + is received, followed by sending request2 and receiving response2. The final result is response1\001response2\001.

    - - You can think of this feature as of a macro. Splitting and partial matching is still done per single + + You can think of this feature as of a macro. Splitting and partial matching is still done per single request/response within the macro.

    - + Datagram monitoring and matching

    - + Data to and from the physical device is processed as is. In particular, if you need to send a line feed you have to explicitely send a \n control character. On the other hand, control characters like line feeds are not stripped from the data received. This needs to be considered when defining a class definition.

    - + For debugging purposes, especially when designing a class definition, it is advisable to turn traffic logging on. Use attr myECMD logTraffic 3 to log all data to and from the physical device at level 3.

    - - Datagrams and attribute values are logged with non-printable and control characters encoded as here followed by the octal representation in parantheses. + + Datagrams and attribute values are logged with non-printable and control characters encoded as here followed by the octal representation in parantheses. Example: #!foo\r\n (\043\041\146\157\157\015\012).

    - + Data received from the physical device is processed as it comes in chunks. If for some reason a datagram from the device is split in transit, pattern matching and processing will most likely fail. You can use the partial attribute to make FHEM collect and recombine the chunks.

    - + Connection error handling

    - + This modules handles unexpected disconnects of devices as follows (on Windows only for TCP connections):

    - + Disconnects are detected if and only if data from the device in reply to data sent to the device cannot be received with at most two attempts. FHEM waits at most 3 seconds (or the time specified in the timeout attribute, see Attributes). After the first failed attempt, the connection to the device is closed and reopened again. The state of the device is failed. Then the data is sent again to the device. If still no reply is received, the state of the device is disconnected, otherwise opened. You will have to fix the problem and then use set myECMD reopen to reconnect to the device.

    - + Please design your class definitions in such a way that the double sending of data does not bite you in any case.

    Class definition

    - + The class definition for a logical ECMD device class is contained in a text file. The text file is made up of single lines. Empty lines and text beginning with # (hash) are ignored. Therefore make sure not to use hashes in commands.
    @@ -899,15 +922,15 @@ ECMD_Write($$$) by the value, if any. This command sets the state reading to the value of the named reading if and only if the reading is updated.

    - +

  • set <commandname> cmd { <perl special> }
    get <commandname> cmd { <perl special> }

    Declares a new set or get command <commandname>. If the user invokes the set or get command <commandname>, the string that results from the execution of the <perl special> is sent to the physical device.

    A request separator (see Attributes) - can be used to split the command into chunks. This is required for sending multiple Ethersex commands for one command in the class definition. + can be used to split the command into chunks. This is required for sending multiple Ethersex commands for one command in the class definition. The result string for the command is the - concatenation of all responses received from the physical device, optionally with response separators + concatenation of all responses received from the physical device, optionally with response separators (see Attributes) in between.

  • @@ -947,7 +970,7 @@ ECMD_Write($$$) <regex> must match the entire reply, as in m/^<regex>$/.

    - +
  • reading <reading> postproc { <perl special> }

    @@ -955,9 +978,9 @@ ECMD_Write($$$)

  • - - + + The perl specials in the definitions above can