Display - ThermoOLED

.

Plugin details

Type: UV

Name: ThermoOLED

Status: DISPLAY

GitHub: P109_ThermoOLED.ino

Maintainer: TD-er

Used libraries: .

Description

This plugin is a thermostat control for an on/off heating system.

Display and Button layout explanation:

../_images/P109_DisplayAndButtonLayout.png

Configuration

../_images/P109_DeviceConfiguration.png

Task settings

  • Name: The name of the task. This should be unique for all devices that are configured. (Initially empty)

  • Enabled: For the device to work it has to be enabled. When checked, the device will be started as soon as the ESP starts. If desired, the device can also be enabled from f.e. a rule by using the TaskEnable,<tasknr> or TaskEnable,<taskname> command, or disabled using the corresponding TaskDisable,<tasknr>|<taskname> commands.

I2C Options

The available settings here depend on the build used. At least the Force Slow I2C speed option is available, but selections for the I2C Multiplexer can also be shown. For details see the Hardware page

I2C Address: The address the device is using. Some boards offer a solderable address selector that is to be used to select the address. The available addresses are 0x3C and 0x3D.

Device Settings

  • Controller: Select the used controller, only the SSD1306 and SH1106 are supported. This plugin requires a 128x64 or 132x64 pixel display.

../_images/P109_ControllerOptions.png
  • Rotation: Depending on the way the display is mounted, it may be needed to rotate the content of the screen 180 degrees. That can be selected here.

../_images/P109_RotationOptions.png
  • Contrast: The brightness of the screen can be controlled by adjusting the contrast. For normal use, and to avoid the displayed content to burn-in on the display, Medium or Low should best be selected.

../_images/P109_ContrastOptions.png
  • Temperature source 1: This is the temperature source for the thermostat. A [task#value] name should be typed in here for a temperature task that reflects the temperature to be maintained by the thermostat.

  • Button left/down: Select the GPIO pin that is used to connect the button to lower the setpoint temperature. When Manual mode is active, this button will decrease the Timeout value by 5 minutes. Maximum timeout value is 90 minutes.

  • Button right/up: Select the GPIO pin that is used to connect the button to raise the setpoint temperature. When Manual mode is active, this button will increase the Timeout value by 5 minutes. Maximum timeout value is 90 minutes.

  • Button mode: Select the GPIO pin that is used to connect the button to select the thermostat mode. When pressing the button the mode will rotate through the available modes. Available modes:

    • 0: Off

    • 1: Automatic, the default mode at startup.

    • 2: Manual. When switched to manual, a timeout of 5 minutes is set, after which the mode is switched back to automatic. The user selected timeout duration in minutes can be set using the thermo,mode,m,<timeout> command. Also, the timeout can be changed using the up and down buttons to increase or decrease the timeout in 5 minute steps.

  • Relay: Select the GPIO pin that will turn the relay on and off that controls the heat-source. Default: 1 = on, 0 = off, unless Invert relay is checked.

  • Invert relay-state (0=on, 1=off): Invert the working of the Relay pin, 0 = on, 1 = off.

  • Hysteresis: Select the temperature difference for switching the relay between on and off state, 0.2, 0.5 or 1 degree.

../_images/P109_HysteresisOptions.png
  • Alternate Sysname/SSID in title: When enabled, the title will be interchanged between the Sysname (Name of the unit, set on the Config tab), and the WiFi SSID the unit is connected to. When disabled, the Sysname (or Taskname, see next option) will be shown only.

  • Use Taskname instead of Sysname: When checked, the taskname will be used instead of the Sysname, to allow switching between tasks with different configuration, f.e. for having Day and Night configurations with different setpoints. The display then shows the active taskname.

  • Delay on setpoint change: Configure the delay in seconds before the relay state will be changed after the setpoint is changed. Range: 1..10 seconds. This is to avoid flipping the heating on/off rapidly when changing the setpoint value.

Data Acquisition

This group of settings, Single event with all values, Send to Controller and Interval settings are standard available configuration items. Send to Controller is only visible when one or more Controllers are configured.

Values

There are 4 values available for this plugin, that reflect the current status while the task is active.

Setpoint shows the currently used setpoint temperature.

Heating shows either 1 or 0 for heating On or Off.

Mode shows the mode, 0 = off, 1 = automatic, 2 = manual.

Timeout shows the remaining timeout while in Manual mode. When not in Manual mode, the value is undefined.

Commands

Command Syntax

Extra information

oledframedcmd,<sub>

Sub:

  • on will turn the display ON.

  • off will turn the display OFF.

  • low will dim the display to low.

  • med will dim the display to medium.

  • high will set the brightness to maximum.

OLED displays will age quite fast, so it is not adviced to run them continously at max brightness.

Some displays do not accept all brightness levels and some also make a quite high pitch coil whine noise when running on some brightness levels. So different levels of brightness can also be of help on those displays.

This command is shared with Display - OLED SSD1306/SH1106 Framed, so when having both plugins enabled, the command has to be prefixed with the taskname and a periode, like [thermo].oledframedcmd...

thermo,setpoint,<temperature>

Set the setpoint value, that the thermostat feature will try to maintain.

thermo,down

Change the setpoint value down by 0.5 degrees, simulating a keypress on the Down button. This enables an alternative way to control the setpoint.

If Manual mode is active, the timeout will be decreased by 5 minutes.

thermo,up

Change the setpoint value up by 0.5 degrees, simulating a keypress on the Up button. This enables an alternative way to control the setpoint.

If Manual mode is active, the timeout will be increased by 5 minutes.

thermo,modebtn

Change the mode to the next circular value in the 1, 2, 0 range, simulating a keypress on the Mode button. This enables an alternative way to control the thermostat mode.

When Manual mode is selected, the timeout is by default set to 5 minutes, and after the timeout it returns to automatic mode.

thermo,heating,<state>

State:

1 / on: Turn on the heating

Any other value: Turn off the heating.

Set on the heating manually, either to 1 / on (on) or off (any other value).

thermo,mode,<mode>[,<timeout>]

Mode:

0 / x = Off

1 / a = Automatic, the default thermostat mode.

2 / m = Manual, turns heating on, with a <timeout> value in minutes, after which the Automatic mode is enabled again.

Timeout: A timeout for Manual mode in minutes. When no timeout is provided it will return to Automatic mode nearly immediately (~1 second).

Set the thermostat mode.

Change log

Changed in version 2.0:

changed 2022-10: Behavior change, change relay state only after a configurable delay, only save settings when changed and after a delay of 30 seconds

added 2020-04-25