WebRelay X-405


date desc
29 May 2020 initial
10 Jun 2020 added support for up to 3 sensors
14 Apr 2023 support for up to 16 sensors

1.0 Introduction

This note covers the ControlByWeb X-405 Temperature and Humidity Module.

The device can support multiple probes using the 1-Wire protocol.

Signals supports from 1 to 16 temperature probes per device. Support for humidity sensor probes may be added if we have customer interest.

The initial application for this device was a cloud-based deployment. Consequently, some configuration details covered below will be for that case.

A key detail of cloud deployment is that Signals must be provided with the MAC address both in the connection string and in the data packet. We cannot use the IP address to identify devices because multiple devices on the client's network will share the same public IP address when data is sent to the cloud-based Signals server.

NOTE: The word "WebRelay" is used as a brand designator in this document - even for devices that have no relay outputs.


2.0 1-Wire Protocol Sensors

The following is taken from the X-405 manual.

One Wire Sensors

One-wire protocol sensors have a unique factory-generated Id. This allows them to be connected to a single data wire in a daisy-chain arrangement. In my work on the X-405, the conclusions I reached were:

The 1-Wire Bus protocol can support up to 16 sensors. ICON Signals can support all 16 sensors with some configuration limitations which will be discussed in this document.

din_x405_terminal_block


For longer cable runs, I would suggest using something like 18-gauge, 5-conductor thermostat wire.


3.0 Device Configuration

Screenshots and comments are below. For this implementation we are setting temperature limits for the device for the purpose of pushing remote service data packets to Signals off schedule when a temperature reading goes out of range.

However, temperature limits configured in Signals itself are used to determine if the sensor is in alarm mode and initiate notification actions.

3.1 General Settings

Most temperature sensors supported by Signals provide Celsius values, so we set the units to that scale. It is a bit of a nuisance when configuring the limits later in this document. Reporting in Signals will typically be done using the Fahrenheit scale.

General Info

Network

Advanced Network


We don't change anything in Email and Passwords pages.

Changes to Date/Time are optional. We typically use time.google.com as the NTP server and have it sync daily.

No changes to Backup/Restore.


3.2 Remote Devices

No changes to this section.


3.3 I/O Setup

ICON Signals adds a device to the Sensor Grid the first time it receives data for the device. The data message format and content, along with the transmission protocol, determine the device type and number of data channels (a.k.a. I/O channels).

Unlike other devices, the X-405 supports a variable number of sensors (data channels) via the 1-Wire Bus.

(3.3.1) 1-WIRE SENSORS

This is where we add the temperature probe(s). 1-Wire sensors have a factory-generated ID, so if a probe is replaced, you will need to edit the sensor configuration in this page.

I/O Setup

The configured Name value isn't sent to Signals. Sensors show up in the data as 'oneWireSensor1', 'oneWireSensor2', etc. I recommend using the default values, but if you want to rename them you can.


(3.3.2) Registers

We configure Register 1 as an Initial Value register to indicate the desired number of configured sensors. Supported values are listed in the following table.

sensorType number of sensors
841 1
842 2
843 3
845 5
846 8
847 12
848 16

I/O Setup Edit

In this example we have renamed Register 1 as sensorTypes for visual clarity.

After setting or changing the Register 1 value, it is necessary to cycle power on the X-405 in order for the change to be recognized and sent to Signals in subsequent messages.


(3.3.3) Vin and Timers

No changes to the Vin or Timers pages.


3.4 Control / Logic

Tasks/Functions is the only page we configure in the Control/Logic section. With regard to setting temperature limits in Celsius: subtract 32 from the desired Fahrenheit temperature, then multiply by 5, then divide by 9.

Celsius_Temp = (Fahrenheit_Temp - 32) * 5 / 9

Tasks / Functions


Setting a conditional task is optional, but if you do it we recommend a deadband value higher than zero. This can prevent extraneous status reporting when a sensor value is fluctuating near the threshold value.

Conditional Task


We don't change any other pages in this section.

3.5 Logging

No changes to this section.

3.6 Monitor & Control

We don't normally make changes to this section, but setting up a Control Page can be useful during testing.


4.0 Multiple Sensor Configuration

ICON Signals was designed to support devices with one or two data channels. We have added support for devices with many more inputs, but there are some inevitable limitations.

Either Channel 1 or channel 2 config properties are used, as determined by an Advanced Parameters setting.

Signals maintains a 64-bit alarm state value for each device. The bits and bit fields are designed to support a large number of binary (i.e. contact closure) channels for the device. The design also supports high and low alarm bits for channels 1-14, but channels 15 and 16 share the same bit.

This isn't an issue for X-405 uses where we are only concerned with temperatures that are too high. But for applications such as vaccine refrigerators or freezers which must maintain temperatures in a specific range, a maximum of 14 temperature probes can be supported for a single X-405 device.


4.1 WebRelay Screenshots

The following figures show WebRelay screenshots for a configuration with 5 sensor probes.

(4.1.1) 1-Wire Sensors

Currently configured with 4 probes.

4 probes

Now add a fifth sensor probe.

add probe

5 probes

(4.1.2) Registers

As discussed in 3.3.2, Register 1 must be configured with an initial value of 846.

register 1 846

NOTE: After changing this value it will be necessary to cycle power to the X-405 by disconnecting and reconnecting the network cable.


4.2 Signals Screenshots

The following figures show ICON Signals screenshots for the same 5-probe configuration.

(4.2.1) Workflow > Sensor Modules

sensor modules

(4.2.2) Workflow > Sensor Grid

As mentioned in 3.3, if Signals created a Sensor Grid entry for the X-405 with the "wrong" number of data channels, it is necessary to delete the device as shown below.

sensor grid delete

The device entry, along with the correct number of data channels, should be created again when the next data message is received from the X-405.

sensor grid 5 probes

Channels 1-5 show data for the 5 temperature probes. Channels 6-8 show invalid values and can be ignored.

(4.2.3) Sensor Grid: Device Dialog

Clicking on any rows for the X-405 device opens the device dialog.

The Config tab is where we set the alarm mode and temperature range values for channels 1 and 2.

device dialog config

Other data channels use either the channel 1 or channel 2 settings - as determined by the Advanced Parameters field in the Param tab.


device dialog param


(4.2.4) Workflow > Rule List

In ICON Signals, a device enters alarm state when any of its inputs enters alarm state and the device leaves alarm state when all of its inputs are no longer in alarm state.

Since the X-405 device has multiple probes, we are interested in matching against "Channel Signals". In other words we are interested in the alarm state of individual probes rather than the overall alarm state of the X-405 device itself.

A couple of channel signal rules are shown in the screenshot below.

rule list

Rule 1 will be executed when any of the sensor probes enter alarm state.

rule1 main

rule1 rainbow

x405 rbw

We can assign names to the sensor probes in the Sensor Aliases page. A link to it is on the left side of the Rules List page.

sensor aliases


Appendix A: Remote Services Comments

(Some of these side-comments are obsolete, but retained here for posterity.)

For most WebRelay devices we use Remote Services to communicate with the Signals server. So far we have seen many variations in implementation which had to be addressed. I will try to list them below.


No Remote Services support (X-WR-1R12)

We had to scrape a web page to get the MAC.


Connection string sent periodically, but data packet only on state change (X-301 and others)

When the Signals server starts, we need to either query the device to obtain its full state or have that state sent to us periodically. In a cloud environment, we cannot query the device.


Remote Services data packet not sent on state change (X-400)

This was a bug we discovered in the X-400 firmware. It would send the data packet only on the very first state change after device startup. This was presumably fixed but has not been re-tested. We did an elaborate work-around documented in the X-400 technote.


Remote Services data packet provides no serial number (i.e. MAC) (XW-111)

This is a characteristic of the stand-along mode of the wireless digital input sensor. It means the device cannot be used in the cloud deployment in standalone. However, the XCD format packet used in slave mode does contain the MAC and can be used in a cloud deployment. This is the preferred mode for a battery-powered device anyway.


2018-2023 ICON Voice Networks