cdjackson / HABmin

A web admin console for openHAB home automation
http://www.cd-jackson.com/index.php/openhab/habmin
217 stars 51 forks source link

Request to add Merten 50x5xx ZWave roller shutter switch #281

Closed samden closed 8 years ago

samden commented 8 years ago

Could you please add the roller switch above to the database? Thank you very much!

In the current state, I can control the roller actuation from openhab but a manual actuation at the switch itself is not transmitted back into openhab. Hopefully it will be possible after it is entered in the database.

Here are the pepper entry and the content of node9.xml file created by openhab:

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>WINDOW_COVERING</genericDeviceClass>
    <specificDeviceClass>NOT_USED</specificDeviceClass>
  </deviceClass>
  <homeId>0xc97847e7</homeId>
  <nodeId>9</nodeId>
  <version>2</version>
  <manufacturer>0x7a</manufacturer>
  <deviceId>0x1</deviceId>
  <deviceType>0x4004</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <supportedCommandClasses>
    <entry>
      <commandClass>SENSOR_MULTILEVEL</commandClass>
      <multiLevelSensorCommandClass>
        <version>1</version>
        <instances>1</instances>
        <sensors>
          <entry>
            <multilevelSensorType>LUMINANCE</multilevelSensorType>
            <multilevelSensor>
              <sensorType>LUMINANCE</sensorType>
              <initialised>true</initialised>
            </multilevelSensor>
          </entry>
        </sensors>
        <isGetSupported>true</isGetSupported>
      </multiLevelSensorCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE</commandClass>
      <multiInstanceCommandClass>
        <version>2</version>
        <instances>1</instances>
        <endpoints>
          <entry>
            <int>1</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>WINDOW_COVERING</genericDeviceClass>
                <specificDeviceClass>NOT_USED</specificDeviceClass>
              </deviceClass>
              <endpointId>1</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>SENSOR_MULTILEVEL</commandClass>
                  <multiLevelSensorCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <sensors>
                      <entry>
                        <multilevelSensorType>LUMINANCE</multilevelSensorType>
                        <multilevelSensor>
                          <sensorType>LUMINANCE</sensorType>
                          <initialised>true</initialised>
                        </multilevelSensor>
                      </entry>
                    </sensors>
                    <isGetSupported>true</isGetSupported>
                  </multiLevelSensorCommandClass>
                </entry>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>0</version>
                    <instances>0</instances>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
                <entry>
                  <commandClass>SWITCH_MULTILEVEL</commandClass>
                  <multiLevelSwitchCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <isGetSupported>true</isGetSupported>
                  </multiLevelSwitchCommandClass>
                </entry>
                <entry>
                  <commandClass>VERSION</commandClass>
                  <versionCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <libraryType>LIB_UNKNOWN</libraryType>
                  </versionCommandClass>
                </entry>
                <entry>
                  <commandClass>MANUFACTURER_SPECIFIC</commandClass>
                  <manufacturerSpecificCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                  </manufacturerSpecificCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
          <entry>
            <int>2</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>WINDOW_COVERING</genericDeviceClass>
                <specificDeviceClass>NOT_USED</specificDeviceClass>
              </deviceClass>
              <endpointId>2</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>0</version>
                    <instances>0</instances>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
                <entry>
                  <commandClass>SWITCH_MULTILEVEL</commandClass>
                  <multiLevelSwitchCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <isGetSupported>true</isGetSupported>
                  </multiLevelSwitchCommandClass>
                </entry>
                <entry>
                  <commandClass>VERSION</commandClass>
                  <versionCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <libraryType>LIB_UNKNOWN</libraryType>
                  </versionCommandClass>
                </entry>
                <entry>
                  <commandClass>MANUFACTURER_SPECIFIC</commandClass>
                  <manufacturerSpecificCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                  </manufacturerSpecificCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
        </endpoints>
        <endpointsAreTheSameDeviceClass>false</endpointsAreTheSameDeviceClass>
      </multiInstanceCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <configAssociations>
          <entry>
            <int>1</int>
            <associationGroup>
              <Index>1</Index>
              <Nodes/>
            </associationGroup>
          </entry>
          <entry>
            <int>2</int>
            <associationGroup>
              <Index>2</Index>
              <Nodes/>
            </associationGroup>
          </entry>
        </configAssociations>
        <maxGroups>2</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <configParameters/>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_MULTILEVEL</commandClass>
      <multiLevelSwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <isGetSupported>true</isGetSupported>
      </multiLevelSwitchCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <libraryType>LIB_CONTROLLER_BRIDGE</libraryType>
        <protocolVersion>2.27</protocolVersion>
        <applicationVersion>2.3</applicationVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
      </manufacturerSpecificCommandClass>
    </entry>
  </supportedCommandClasses>
  <nodeNeighbors>
    <int>1</int>
  </nodeNeighbors>
  <lastSent>2015-11-06 22:11:25.300 UTC</lastSent>
  <lastReceived>2015-11-06 22:11:25.414 UTC</lastReceived>
  <applicationUpdateReceived>true</applicationUpdateReceived>
samden commented 8 years ago

Hi Chris, Thank you for adding the requested Merten IDs to the database. Using the last built of the zwave binding, both the switch plug and the shutter switch are now recognized in habmin. However, the configuration and association nodes are absent so that it is not possible to configure any association, especially to the zwave stick. Do I need to modify anything in my config? Cheers, Sam

samden commented 8 years ago

It seems that the xml config files for these devices are missing in the database (I only see a reference in the products.xml, not in the merten directory). Should I try to write these files manually and then send them to you, or can you convert them automatically from Pepper with some tool?

cdjackson commented 8 years ago

Yes - I haven’t done the XML file. If you can do it, it would be great - even if it’s not 100% it will be a big help. If you look on Github there might be another marten device with the same or similar configuration that you can use to start?

On 14 Nov 2015, at 23:53, samden notifications@github.com wrote:

It seems that the xml config files for these devices are missing in the database (I only see a reference in the products.xml, not in the merten directory). Should I try to write these files manually and then send them to you, or can you convert them automatically from Pepper with some tool?

— Reply to this email directly or view it on GitHub https://github.com/cdjackson/HABmin/issues/281#issuecomment-156760177.

samden commented 8 years ago

Here is the xml file (renamed as txt file), I hope it is correct: 50x5xx.xml.txt

I've also done the xml files for the other Merten device 50519 for which I opened the issue 280: 508519.xml.txt For that device, Pepper does not mention any configuration parameter nor any association group. However, this device seems to implement the association command, therefore I've arbitrarily added an association group in the xml file.

as well as for another battery-powered remote switch 506119 of Merten (presumably, it will lead to similar issues to be checked with the version that you sent me - work in progress...) 506119.xml.txt

I also found in my cupboard an old door sensor SM103 of Everspring, it would be nice if you could also add it to the database in the same time: SM103.xml.txt

A last thing: in some xml files of the database, I noticed the instruction <SetToController>true</SetToController>. What does it mean?

Thank you again for adding all that stuff to the database!

cdjackson commented 8 years ago

Thanks - I’ll take a look at this in the next day or so (I’m just travelling at the moment).

The SetToController means that openHAB will automatically set the association for this group to the controller - i.e. it will enable reports automatically.

samden commented 8 years ago

Then, I would think that SetToController should be added to those device since the aim is to get the information reported back into openhab.

samden commented 8 years ago

As for the Merten 506119 (for which I tried to write the xml for insertion into the database, see my post above), please find below the node.xml created by openhab: node7_506119.xml.txt You might need this information to add the device to the database...

samden commented 8 years ago

@cdjackson Have you had time to take a look at this? I cannot find the XML files above in the database of the last build on cloudbees. It would be great if you could incorporate them so that the devices can be programmed and associated from within Habmin. Many thanks in advance!

cdjackson commented 8 years ago

Sorry - I haven’t and I apologise especially since you appear to have done most of the hard work and created the XMLs. I’ll take a look at this either later today or tomorrow - if I don’t, please feel free to email me again :)

cdjackson commented 8 years ago

Hi, I’ve added the files, but I also need the type/ID that HABmin reports for these devices before they are of any use - can you provide this please?

Thanks Chris

samden commented 8 years ago

Hi, Here are, as requested, the type/ID needed for the Merten devices:

Merten 50x5xx (Windows Blind Control Insert Button) Device ID = 1 Device Type = 4004

Merten 508519 (Switch Plug In 3500 W) NB: HABmin erroneously indicates this device as 50x5xx; the correct reference is 508519 Device ID = 1 Device Type = 8001

Merten 506119 (Battery Powered Single Wall Controller Switch) Device ID = 2 Device Type = 1

As for the Everspring SM103 Door/Window Sensor, this device seems to be equivalent to (at least, it is recognized as such) an Everspring HSM02 with Device ID = 1, Device Type = 2 (see screenshot below).

In the event it is of help for you, I have attached below screenshots of the Information node given by HABmin for each of the sensors.

Thank you again for your hard developping/maintaining work - which is greatly appreciated by many including me! Sam

Merten 508519 (Switch Plug In 3500 W) image

Merten 50x5xx (Windows Blind Control Insert Button) image

Merten 506119 (Battery Powered Single Wall Controller Switch) image

Everspring SM103 Door/Window Sensor image

samden commented 8 years ago

@cdjackson Hi, As you kindly wrote above, I allow myself to remind you the present issue. Let me know if you need any further data. Thank again for your time! Sam

cdjackson commented 8 years ago

Hi, I think this is all merged now - please let me know if it’s ok…

One issue that probably needs to be resolved is the ID of the wall switch. Since there is already another device with the same ID, I’m not sure what to do. Device types and IDs need to be unique - either one of these is incorrect, or Merten didn’t follow the rules (which I believe would mean it’s not a fully zwave certified device).

Let me know how it is looking after the next build…

Chris

samden commented 8 years ago

I have checked the two battery powered wall switches in question:

However, if I am not wrong, I could only find in your last commit changes regarding the devices 506004 and 5082xx. Could you please also add the data for the other Merten devices mentioned above, namely Merten 50x5xx (Windows Blind Control Insert Button), Merten 508519 (Switch Plug In 3500 W) and Merten 506119 (Battery Powered Single Wall Controller Switch). Thanks!

cdjackson commented 8 years ago

Sorry - you’re right… I’ll add this in now…

Thanks.

cdjackson commented 8 years ago

Ok - that’s done… Let me know after the next nightly build (tomorrow - hopefully!) if it’s all ok.

The new database system I’m working on now automatically takes the XML files that OH produces for updating the type/id, so it ought to avoid (or reduce) this confusion...

samden commented 8 years ago

I have tried the last nightly build. All devices are now correctly recognised by HABmin and I could associate them. Here are some comments:

Mains powered devices The association with the Aeon stick (node 1) worked well for these devices. However, further issues appeared:

Battery powered remote switches For these devices, the association with the Aeon switch also worked well, even if the modified member of the association remained yellow, even after trying to heal the node by manually waking the devices. But I was able to let openHAB detect a manual ON/OFF actuation of the switches, which is already very nice.

However, when programmed and used within the Merten proprietary system, the switch 506119 is able to send more than a simple ON/OFF actuation, namely a long-press actuation (this is used, e.g., to control the roller shutters). I will investigate this further as soon as I have a bit more time. For that, I need to find the right parameters and classes for the openHAB switch (see http://www.pepper1.net/zwavedb/device/68)

Thank you again! I will let you know the results of my further investigations...

cdjackson commented 8 years ago

Thanks - and also for the info...