[SOLVED] Problem with Aeotec aerQ zwave device

Hi folks,

I have a Aeotec aerQ, I receive all the info (temp, humidity, dew point ..) but not the battery level. I don’t know how to try. Here my .item:


// Zwave Binding - Aeotec aerQ

Number Aeotec_WineCooler_Temperature                                        "Temperature [%.1f °C]"                     (gFF_Kitchen, gTemperature, gAVGTemperature, gFF_AVGTemperature, gChart, gHistory)
Number Aeotec_WineCooler_Humidity                                           "Humidity [%d %%]"                          (gFF_Kitchen, gIAirQuality, gAVGHumidity, gFF_AVGHumidity, gChart, gHistory)
Number Aeotec_WineCooler_DeWPoint                                           "dew point [%.1f]"                          (gFF_Kitchen, gIAirQuality, gChart)
Number Aeotec_WineCooler_BatteryLevel                                       "Battery Level [%d]"                        (gFF_Kitchen, gBatteries)

Any clue how can troubleshoot the issue?

openhab 5.0.0 M3 here.

thanks
Andrea

No experience with text based items, but don’t they need a channel of the thing?

I have two aerQs. The battery levels are unreliable. Some days they show a value, some days they show 0%.

If you use Zwave-js-ui there is a MQTT topic lastActive, that shows the last time a message was received from the aerQ. I use a rule: if the last update was more than one day ago then an error status item is set.

No, you can link the item with the thing via UI. This is the way I go for zwave devices (only for it, to be frank) :slight_smile:

thank you, can you explain a bit more your solution? is now reliable? what I’m thinking is that I don’t receive any data, just “NULL” …

Ok. I was concerned because the format of the battery channel is slightly different than the other channels, but if you linked via the UI, it should work.

Also note that the battery is only read when the device wakes up. What frequency do you have the wake-up? If the device is new, you may not be fully configured. You could try to manually wake the device while the binding is debug to see what is happening.

the wake-up interval is as per default:


wakeup_interval: 604800

do you think I need to decrease this number? The device is new, installed yesterday. I’ve already received some changes in temperature and humidity, so I was presuming that also the battery level should be populated already.

That is once a week. Long term that is fine, but you could do a manual wake with debug to check it out

In the meantime I’ve just changed the parameter 4 to “1800”, so I expect a periodic report every half an hour.

here my zwave file


<node>
  <homeId>0xd70842d6</homeId>
  <nodeId>66</nodeId>
  <version>4</version>
  <manufacturer>0x371</manufacturer>
  <deviceId>0x9</deviceId>
  <deviceType>0x2</deviceType>
  <listening>false</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>500</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
    <commandClass>COMMAND_CLASS_TRANSPORT_SERVICE</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>COMMAND_CLASS_INDICATOR</commandClass>
    <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
    <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY_2</commandClass>
    <commandClass>COMMAND_CLASS_ALARM</commandClass>
    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
    <commandClass>COMMAND_CLASS_SUPERVISION</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map">
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <maxNodes>0</maxNodes>
        <associations>
          <associationMember>
            <node>1</node>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <maxNodes>0</maxNodes>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>3</int>
      <associationGroup>
        <index>3</index>
        <maxNodes>0</maxNodes>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>4</int>
      <associationGroup>
        <index>4</index>
        <maxNodes>0</maxNodes>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>5</int>
      <associationGroup>
        <index>5</index>
        <maxNodes>0</maxNodes>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>6</int>
      <associationGroup>
        <index>6</index>
        <maxNodes>0</maxNodes>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SENSOR_NOTIFICATION</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_NOTIFICATION_SENSOR</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
            <COMMAND__CLASS__SENSOR__BINARY>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <isGetSupported>true</isGetSupported>
              <types>
                <binarySensorType>GENERAL</binarySensorType>
              </types>
            </COMMAND__CLASS__SENSOR__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
            <COMMAND__CLASS__SENSOR__MULTILEVEL>
              <version>11</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>11</versionSupported>
              <sensors>
                <entry>
                  <multilevelSensorType>TEMPERATURE</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>TEMPERATURE</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
                <entry>
                  <multilevelSensorType>RELATIVE_HUMIDITY</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>RELATIVE_HUMIDITY</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
                <entry>
                  <multilevelSensorType>DEW_POINT</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>DEW_POINT</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
              </sensors>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SENSOR__MULTILEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
            <COMMAND__CLASS__ASSOCIATION__GRP__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <autoSubscribeGroups/>
            </COMMAND__CLASS__ASSOCIATION__GRP__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
            <COMMAND__CLASS__DEVICE__RESET__LOCALLY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__DEVICE__RESET__LOCALLY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
            <COMMAND__CLASS__ZWAVEPLUS__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <zwPlusVersion>2</zwPlusVersion>
              <zwPlusRole>ROLE_TYPE_SLAVE_SLEEPING_REPORTING</zwPlusRole>
              <zwPlusNodeType>NODE_TYPE_ZWAVEPLUS_NODE</zwPlusNodeType>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ZWAVEPLUS__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>4</versionSupported>
              <configParameters>
                <entry>
                  <int>1</int>
                  <configurationParameter>
                    <index>1</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>2</int>
                  <configurationParameter>
                    <index>2</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>3</int>
                  <configurationParameter>
                    <index>3</index>
                    <size>1</size>
                    <value>15</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>4</int>
                  <configurationParameter>
                    <index>4</index>
                    <size>2</size>
                    <value>-22336</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>5</int>
                  <configurationParameter>
                    <index>5</index>
                    <size>2</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>6</int>
                  <configurationParameter>
                    <index>6</index>
                    <size>2</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>7</int>
                  <configurationParameter>
                    <index>7</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>8</int>
                  <configurationParameter>
                    <index>8</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>9</int>
                  <configurationParameter>
                    <index>9</index>
                    <size>1</size>
                    <value>-1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>10</int>
                  <configurationParameter>
                    <index>10</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>11</int>
                  <configurationParameter>
                    <index>11</index>
                    <size>1</size>
                    <value>-1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>12</int>
                  <configurationParameter>
                    <index>12</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>13</int>
                  <configurationParameter>
                    <index>13</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>14</int>
                  <configurationParameter>
                    <index>14</index>
                    <size>2</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>15</int>
                  <configurationParameter>
                    <index>15</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>16</int>
                  <configurationParameter>
                    <index>16</index>
                    <size>1</size>
                    <value>15</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>64</int>
                  <configurationParameter>
                    <index>64</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>65</int>
                  <configurationParameter>
                    <index>65</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>255</int>
                  <configurationParameter>
                    <index>255</index>
                    <size>4</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ALARM</commandClass>
            <COMMAND__CLASS__ALARM>
              <version>8</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>8</versionSupported>
              <alarms>
                <entry>
                  <alarmType>HEAT</alarmType>
                  <alarmState>
                    <alarmType>HEAT</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <entry>
                  <alarmType>POWER_MANAGEMENT</alarmType>
                  <alarmState>
                    <alarmType>POWER_MANAGEMENT</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <entry>
                  <alarmType>WEATHER</alarmType>
                  <alarmState>
                    <alarmType>WEATHER</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
              </alarms>
              <v1Supported>true</v1Supported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ALARM>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>881</deviceManufacturer>
              <deviceType>2</deviceType>
              <deviceId>9</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
            <COMMAND__CLASS__POWERLEVEL>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <powerLevel>0</powerLevel>
              <powerTimeout>0</powerTimeout>
            </COMMAND__CLASS__POWERLEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
            <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>5</versionSupported>
            </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <batteryLevel>100</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
            <COMMAND__CLASS__WAKE__UP>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <targetNodeId>1</targetNodeId>
              <interval>604800</interval>
              <minInterval>3600</minInterval>
              <maxInterval>15724800</maxInterval>
              <defaultInterval>604800</defaultInterval>
              <intervalStep>240</intervalStep>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__WAKE__UP>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <maxGroups>6</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <libraryType>LIB_SLAVE_ENHANCED</libraryType>
              <protocolVersion>7.15</protocolVersion>
              <applicationVersion>2.3</applicationVersion>
              <hardwareVersion>1</hardwareVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_INDICATOR</commandClass>
            <COMMAND__CLASS__INDICATOR>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <isGetSupported>true</isGetSupported>
              <supportedIndicatorsInitialised>true</supportedIndicatorsInitialised>
              <supportedIndicators>
                <ZWaveIndicator>
                  <type>NODE_IDENTIFY</type>
                </ZWaveIndicator>
              </supportedIndicators>
            </COMMAND__CLASS__INDICATOR>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
            <COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <maxGroups>6</maxGroups>
            </COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SECURITY</commandClass>
            <COMMAND__CLASS__SECURITY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__SECURITY>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors/>
  <lastReceived>2025-06-27 21:09:27.226 UTC</lastReceived>

Ironically that won’t be sent to the device until it wakes up. I’m still concerned it isn’t fully configured. Edit: never mind, if you have the xml it should be configured.

it seems there is a firmware update that should solve the issue with the battery:

But I don’t know how to do this with openhab :slight_smile:

@chris any suggestion here? sorry to bother. Aeotec aerQ ZWA039, not receiving any value for the battery level :frowning:

thanks
Andrea

It can’t be done with OH zw binding, use the silabs simplicity option in the directions. It could be done with the zw-js, but that’s another story.

checking how to trigger the wake-up. Nothing in the manual. Pressing the button perhaps?

is the zwave_version the firmware version of this device?

because I see:


zwave_version       2.3

so perhaps the device is already up to date :frowning:

It does look like 2.3 already. They usually ship new devices with the latest FW.

Usually it is button press(es). What did you do to include the device. It is usually the same to wake.

1 Like

I’ve pressed one time and now I see the battery “100%”

Now we see how reliable is it. But thanks for the hint :folded_hands:

Version 2.3 should indeed be better than version 2.0.1 as in my devices.

Here is the wake-up section in your xml:

          <entry>
            <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
            <COMMAND__CLASS__WAKE__UP>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <targetNodeId>1</targetNodeId>
              <interval>604800</interval>
              <minInterval>3600</minInterval>
              <maxInterval>15724800</maxInterval>
              <defaultInterval>604800</defaultInterval>
              <intervalStep>240</intervalStep>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__WAKE__UP>
          </entry>

You should change the interval to something like 43200, which corresponds to half a day. Then wake up the device manually (short press once). Not sure if it will work this way.

1 Like

strange thing … it seems I can’t modify the interval via UI. When I set 43200 then save, I see again the 604800 default value :frowning:

When you change a parameter on a battery device, you need to wake it afterward. If that doesn’t work a debug log might show what is going wrong.

1 Like

Of course you can change the interval, I had no issues with my AerQ.

But I also saw this behaviour some time ago with other devices.
It helped to use the “Code” tab to change the value instead.
Dont’ forget to wake it up after changing the value, especially if you had a long intervall.