Skip to content

Latest commit

 

History

History
441 lines (333 loc) · 16.7 KB

CHANGELOG.md

File metadata and controls

441 lines (333 loc) · 16.7 KB

Changelog

[2.1.0] 2022-01-12

Notable changes

  • Compatible with homebridge 2.0.0-beta.0
  • Compatible with Node.js 22

Changed

  • Updated README.md and added logo
  • Updated comments in config.schema.json

Fixed

  • Runtime error if no accessory name is defined

[2.0.8] 2025-01-01

Fixed

  • Added missing execution time for setBit

[2.0.7] 2024-12-28

  • In debug mode, also log the time for the PLC access

[2.0.6] 2024-12-26

  • Added warning related to Node.js 22.12.0 that comes with homebridge apt pkg version 1.4.0 and is used in Homebridge Docker from 2024-12-12

[2.0.5] 2024-12-13

Fixed

  • PLC_StatelessProgrammableSwitch and PLC_Doorbell corrected config schema for get_ProgrammableSwitchEvent and fixed poll issue

[2.0.4] 2024-08-17

Fixed

  • PLC_ContactSensor corrected name of invert option invertContactSensorState

[2.0.3] 2024-03-17

Added

  • PLC_CarbonDioxideSensor
  • PLC_CarbonMonoxideSensor

[2.0.1] 2023-09-12

Notable changes

  • Configuration via GUI

Changed

In order to support configuration by GUI, some configuration options need to be renamed.

  • PLC_LightBulb:
    • Renamed option minValue -> minBrightnessValue and changed default value from 20 to 0
    • Renamed option maxValue -> maxBrightnessValue
    • Renamed option minStep -> minBrightnessStep
  • PLC_LightBulb, PLC_Outlet, and PLC_Switch
    • Renamed options for separate set and reset bits. (Single bit option set_On is still functional)
    • Renamed option set_Off -> set_On_Reset and set_On -> set_On_Set
  • PLC_Fan, PLC_HumidifierDehumidifier, PLC_Faucet, PLC_Valve
    • Renamed options for separate set and reset bits. (Single bit option set_Active is still functional)
    • Renamed option set_Deactivate -> set_Active_Reset and set_Active -> set_Active_Set
  • PLC_TemperatureSensor
    • Renamed option minValue -> minTemperatureValue and changed default value from -50 to -270
    • Renamed option maxValue -> maxTemperatureValue and changed default value from 110 to 100
    • Renamed option minStep -> minTemperatureStep and changed default value from 0.5 to 0.1
  • PLC_HumiditySensor
    • Renamed option minValue -> minHumidityValue
    • Renamed option maxValue -> maxHumidityValue
    • Renamed option minStep -> minHumidityStep
  • PLC_Thermostat
    • Renamed option minValue -> minTargetTemperatureValue and changed default value from 15 to 10
    • Renamed option maxValue -> maxTargetTemperatureValue and changed default value from 27 to 38
    • Renamed option minStep -> minTargetTemperatureStep and changed default value from 0.5 to 0.1
    • Renamed option minHumidityValue -> minTargetHumidityValue
    • Renamed option maxHumidityValue -> maxTargetHumidityValue
    • Renamed option minHumidityStep -> minTargetHumidityStep
    • Renamed option mapGetCurrent -> mapGetCurrentHeatingCoolingState
    • Renamed option mapGetTarget -> mapGetTargetHeatingCoolingState
    • Renamed option mapSetTarget -> mapSetTargetHeatingCoolingState
  • PLC_SecuritySystem
    • Renamed option mapGetCurrent -> mapGetSecuritySystemCurrentState
    • Renamed option mapGetTarget -> mapGetSecuritySystemTargetState
    • Renamed option mapSetTarget -> mapSetSecuritySystemTargetState
    • The obsolete options mapGet and mapSet are no longer supported. Use the above map functions.
  • PLC_HumidifierDehumidifier
    • Renamed option mapGetCurrent -> mapGetCurrentHumidifierDehumidifierState
    • Renamed option mapGetTarget -> mapGetTargetHumidifierDehumidifierState
    • Renamed option mapSetTarget -> mapSetTargetHumidifierDehumidifierState
  • PLC_Window, PLC_WindowCovering, PLC_Door
    • Removed option mapGet
    • Added option mapGetCurrentPosition
    • Added option mapGetTargetPosition
    • Added option mapSetTargetPosition
    • Renamed option invert -> invertPosition
  • PLC_LockMechanismBool
    • Renamed option invert -> invertLockState
    • Renamed option get_LockCurrentState -> get_LockCurrentStateBool
    • Renamed option get_LockTargetState -> get_LockTargetStateBool
    • Renamed option set_LockTargetState -> set_LockTargetStateBool
    • Renamed option set_Secured -> set_LockTargetStateBool_Secured
    • Renamed option set_Unsecured -> set_LockTargetStateBool_Unsecured
    • Renamed option forceCurrentState -> forceCurrentLockState
  • PLC_LockMechanism
    • Renamed option forceCurrentState -> forceCurrentLockState
  • PLC_GarageDoorOpener
    • Renamed option forceCurrentState -> forceCurrentGarageDoorState
  • PLC_LockMechanismBool
    • Renamed option invert -> invertLockState
  • PLC_OccupancySensor
    • Renamed option invert -> invertOccupancy
  • PLC_MotionSensor
    • Renamed option invert -> invertMotionDetected
  • PLC_LeakSensor
    • Renamed option invert -> invertLeakDetected
  • PLC_ContactSensor
    • Renamed option invert -> invertContactSensorState
  • PLC_Fan
    • Renamed option mapGetCurrent -> mapCurrentFanStateGet
    • Renamed option mapGetTarget -> mapTargetFanStateGet
    • Renamed option mapSetTarget -> mapTargetFanStateSet
    • Renamed option mapDirectionGet -> mapRotationDirectionGet
    • Renamed option mapDirectionSet -> mapRotationDirectionSet

Added

  • PLC_Thermostat
    • Option minTemperatureValue
    • Option maxTemperatureValue
    • Option minTemperatureStep
    • Option minHumidityValue
    • Option maxHumidityValue
    • Option minHumidityStep
  • PLC_AirPurifier
  • PLC_FilterMaintenance

Fixed

  • Data corruption during multiple SET operations e.g. close all blinds
    • Synchronous execution of SET operations

[1.0.40] 2023-09-12

Fixed

  • Data corruption during multiple SET operations e.g. close all blinds
    • Synchronous execution of SET operations

[1.0.39] 2022-09-28

Fixed

  • Possible buffer overwrite by using a separate buffer for each set operation

[1.0.38] 2022-04-28

Updated

  • Updated documentation

[1.0.37] 2022-04-23

Fixed

  • Fixed http control

[1.0.36] 2022-04-23

Added

  • Option forward to forward push and control http requests to another instance of homebridge-plc, useful to overcome the 150 devices limit of homebridge or if you like to mirror to another instance.
  • Option mirror to mirror all readings from PLC and push requests by an http push operation to another homebridge instance where homebridge-plc is installed. (experimental)
  • Optimized log output for http control and push requests

[1.0.35] 2022-01-25

Changed

  • Added range limit 0.0001~100000 for PLC_LightSensor to avoid warning when value 0 is used.

[1.0.34] 2022-01-04

Added

  • Added PLC_LightSensor

Changed

  • Added DB number to manufacture field when other value is given
  • Updated documentation

[1.0.33] 2021-11-23

Added

  • Added PLC_LeakSensor
  • Added PLC_Fan (beta)

Changed

  • PLC_HumidifierDehumidifier added separate bit on/off support by adding set_Deactivate
  • PLC_HumidifierDehumidifier added byte support for rotation speed by adding set_RotationSpeedByte and get_RotationSpeedByte

[1.0.32] 2021-11-11

With the latest update of the Homebridge UI Docker container, the plugin does not start!

Error: The module ... node_snap7.node was compiled against a different Node.js version ... Please try re-compiling or re-installing ...

During installation of this module, snap7 is downloaded and compiled against the installed version of Node.js. Therefore, the issue is fixed for sure by uninstalling and installing the homebridge_plc plugin.

Changed

  • Updated dependent version of node-snap7 in hope that it triggers a reinstall of node-snap7.

[1.0.31] 2021-07-21

Fixed

  • Option minValue and maxValue to also work with value 0

[1.0.30] 2021-04-21

Added

  • Option communicationOP to use OP-Communication instead of PG-Communication for communication with the PLC

[1.0.29] 2021-04-21

Fixed

  • PLC_HumidifierDehumidifier correct option mapSetTarget, mapGetTarget and mapGetCurrent
  • PLC_Thermostat correct option mapSetTarget, mapGetTarget and mapGetCurrent

Changed

  • PLC_SecuritySystem introduced mapSetTarget, mapGetTarget and mapGetCurrent. This replaces mapSet and mapGet. (For backwards compatibility, old options are still supported)

[1.0.28] 2021-02-26

Changed

  • Updated documentation

Fixed

  • Polling for PLC_HumidifierDehumidifier

[1.0.27] 2021-02-22

Added

  • Added PLC_HumidifierDehumidifier
  • PLC_Thermostat: added option mapGetCurrent

[1.0.26] 2021-02-14

Changed

  • PLC_TemperatureSensor: default maxValue increased from 50 to 110
  • PLC_Thermostat removed warning when using get_StatusTampered or get_StatusLowBattery was no success, removed useless code.

[1.0.25] 2021-01-19

Added

  • PLC_Thermostat: added push support for get_CurrentHeatingCoolingState
  • PLC_Thermostat: added support for get_TargetHeatingCoolingState and set_TargetHeatingCoolingState including mapGetTarget and mapSetTarget

Fixed

  • PLC_Thermostat fixed documentation of get_CurrentHeatingCoolingState
  • PLC_Thermostat removed warning when using get_StatusTampered or get_StatusLowBattery see homebridge/homebridge#2768

[1.0.24] - 2021-01-05

Added

  • Added option invert for PLC_LockMechanismBool
  • Added option mapGet and mapSet for PLC_LockMechanism
  • Added option get_CurrentRelativeHumidity, set_TargetRelativeHumidity and get_TargetRelativeHumidity for PLC_Thermostat
  • Added option get_StatusTampered and get_StatusLowBattery for PLC_Thermostat
  • Added option get_StatusTampered and get_StatusLowBattery for PLC_TemperatureSensor
  • Added option get_StatusTampered and get_StatusLowBattery for PLC_HumiditySensor
  • Added option get_StatusTampered and get_StatusLowBattery for PLC_OccupancySensor
  • Added option get_StatusTampered and get_StatusLowBattery for PLC_MotionSensor
  • Added option get_StatusTampered and get_StatusLowBattery for PLC_ContactSensor

[1.0.23] - 2021-01-02

Added

  • Added option invert for PLC_OccupancySensor, PLC_MotionSensor and PLC_ContactSensor

[1.0.22] - 2021-01-01

Changed

  • Changed default value for parameter port from 8080 to 8888. This was done to avoid conflicts with Homebridge UI which has 8080 as default port. The port is used when using enablePush or enableControl is set. (check your config)

Added

  • Added option defaultPollInterval on platform level
  • Added option distributePolling on platform level

[1.0.21] - 2020-12-29

Added

  • Control support for PLC_Thermostat

Fixed

  • Control handling for PLC_Windows, PLC_WindowCovering and PLC_Door
  • Control handling for PLC_Faucet and PLC_Valve

Changed

  • Reordered code to have the same order for init, poll, and control part
  • Added section comments to the code
  • Added recommendations from validator

[1.0.20] - 2020-12-23

Added

  • Added PLC_SmokeSensor

[1.0.19] - 2020-11-19

Added

  • New accessory PLC_Doorbell

Fixed

  • PLC_Thermostat name of parameter corrected to get_CurrentHeatingCoolingState, previous incorrect name get_CurrentHeaterCoolerState check your config
  • PLC_Thermostat did not poll CurrentHeatingCoolingState when polling was enabled
  • PLC_StatelessProgrammableSwitch simulating switch event by control interface (http request) did not work

[1.0.18] - 2020-11-16

Changed

  • Added option forceDoorState for PLC_GarageDoorOpener
  • Home app does not seem to use the lock for PLC_GarageDoorOpener. Removed get_LockCurrentState, get_LockTargetState and set_LockTargetState

[1.0.17] - 2020-11-14

Changed

  • More detailed error log for http requests

Fixed

  • Fixed PLC_LightBulb brightness to be Byte value as documented. In fact, it was a Real. Please change in PLC if you already use it.

[1.0.16] - 2020-11-09

Changed

  • Only disconnect from PLC on TCP errors, mask 0x000fffff of snap7 error codes. Client errors of PLC no longer trigger reconnect
  • Snap7 error codes are printed in hex values
  • Documentation extended

Fixed

  • Fixed poll issue for PLC_TemperatureSensor, PLC_HumiditySensor and PLC_Thermostat
  • Fixed double definition for PLC_GarageDoorOpener
  • Fixed PLC_LightBulb brightness to be Byte value as documented. In fact, it was a Real. Please change in PLC if you already use it.

[1.0.15] - 2020-11-07

Changed

  • Documentation updated and added PLC examples

[1.0.14] - 2020-11-06

Fixed

  • Config issue with Push from PLC
  • Documentation

[1.0.13] - 2020-10-30

Added

  • Possibility to control PLC devices via http request (experimental)

Fixed

  • Push notifications from PLC were not correctly handled when the bit address is not *.0

[1.0.12] - 2020-10-27

Added

  • Accessory PLC_LockMechanismBool
  • Accessory PLC_LockMechanism got new option forceCurrentState

[1.0.11] - 2020-10-27

Fixed

  • Accessory PLC_WindowCovering, PLC_Window and PLC_Door caused a reboot during poll mode

[1.0.10] - 2020-10-26

Added

  • Push support from the PLC to the homebridge-plc plugin by an http request
  • Poll support for all supported accessories. (Please inform me if one is not working as expected)

Changed

  • Accessory PLC_WindowCovering, PLC_Window and PLC_Door need to define new option forceCurrentPosition to maintain current behavior!

Fixed

  • Accessory PLC_GarageDoorOpener added missing get_LockCurrentState

[1.0.9] - 2020-10-21

Added

  • Accessory: PLC_OccupancySensor: Add polling to detect changes. New configuration enablePolling and pollInterval
  • Accessory: PLC_MotionSensor: Add polling to detect changes. New configuration enablePolling and pollInterval
  • Accessory: PLC_ContactSensor added.
  • Accessory: PLC_TemperatureSensor: Add option minValue, maxValue minStep
  • Accessory: PLC_HumiditySensor: Add option minValue, maxValue minStep
  • Accessory: PLC_LightBulb: Add option minValue, maxValue minStep
  • Accessory: PLC_Thermostat: Add option minValue, maxValue minStep and changed default setting

Changed

  • Accessory PLC_SecuritySystem: A set of target state will do a single get of target and current state

[1.0.8] - 2020-10-14

Fixed

  • PLC_MotionSensor was not functional

[1.0.7] - 2020-10-12

Changed

  • PLC_WindowCovering, PLC_Window and PLC_Door got, in addition to the adaptivePolling which polls the current state during movement, a possibility to enable with enablePolling polling at a lower frequency the current state. Thus, the option pollInterval changed its meaning. It now defines the frequency for the enablePolling while adaptivePollingInterval defines the frequency for the adaptivePolling.

[1.0.6] - 2020-10-12

Added

  • Accessory PLC_StatelessProgrammableSwitch is now functional
  • Accessory PLC_Door added
  • Accessory PLC_GarageDoorOpener added (experimental state)
  • Accessory PLC_LockMechanism added (experimental state)
  • New configuration option mapGet for PLC_WindowCovering, PLC_Window and PLC_Door to map custom values

Fixed

  • PLC_WindowCovering, PLC_Window and PLC_Door: When target settings are not defined (not electric movable), writes are ignored. Instead, the current value is pushed as the target value as get after a set operation

[1.0.5] - 2020-10-11

Added

  • Platform PLC: Polling mode that enables background task poll accessories. New configuration enablePolling
  • Accessory: PLC_WindowCovering: Adaptive polling when moving blinds. New configuration adaptivePolling and pollInterval
  • Accessory: PLC_SecuritySystem: Polling to detect changes. New configuration enablePolling and pollInterval

[1.0.4] - 2020-10-09

Fixed

  • Rename failed for LightBulb

[1.0.3] - 2020-10-09

Changed

  • ACTION Necessary!!!
  • Change name of plugin from S7 to PLC. Please rename your configuration.
  • Remove prefix S7_ from all accessories. Remove it e.g. by STRG-H replace S7_ by PLC_
  • Fix spelling in parameter from set_Deactive to set_Deactivate

Fixed

  • Accessory Window and WindowCovering will shown as moving permanent (target position is now pushed immediately as current position)

Added

  • Accessory StatelessProgrammableSwitch
  • Accessory SecuritySystem

[1.0.2] - 2020-10-04

Added

  • Single bit on/off for S7_LightBulb S7_Outlet and S7_Faucet

[1.0.1] - 2020-10-04

Fixed

  • Finalize name change

[1.0.0] - 2020-10-04

Fixed

  • Change name of plugin from homebridge-S7_PLC to homebridge-plc homebridge denied to install

[0.0.1] - 2020-10-04

Added

  • Initial Version

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.