home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.67k stars 30.81k forks source link

ZWave Rollershutter just not implemented yet? #2053

Closed l00mi closed 8 years ago

l00mi commented 8 years ago

I can't find any trace of the ZWave implementation of a Rollershutter component. Nobody got around implementing it or is there a not obvious problem?

turbokongen commented 8 years ago

Nobody has done the implementation yet. PR are welcome ;) What is needed, is the command_class know to be used on all rollershutters, preferrably a unique one. Then the correct commands to send for up down and stop. Also positioning should be retrieved if available.

l00mi commented 8 years ago

Okay, thanks for the fast answer. It will be my first ZWave device, so may be a bit steep for a first implementation ... Cheers

turbokongen commented 8 years ago

If you can paste, or send me your zwcfg_xxxxx.xml rollershutter entries, I can have a look and see if I can implement this?

nunofgs commented 8 years ago

@turbokongen: I was also looking for this feature. I have a Fibaro Roller Shutter 2 device and it shows up as a light and a switch, for some reason:

screen shot 2016-06-11 at 22 56 05

Here is my zwcfg.xml if it helps:

<?xml version="1.0" encoding="utf-8" ?>
<Driver xmlns="http://code.google.com/p/open-zwave/" version="3" home_id="0xcce616b7" node_id="1" api_capabilities="0" controller_capabilities="40" poll_interval="60000" poll_interval_between="true">
    <Node id="1" name="" location="" basic="2" generic="2" specific="1" type="Static PC Controller" listening="true" frequentListening="false" beaming="true" routing="false" max_baud_rate="40000" version="4" query_stage="Complete">
        <Manufacturer id="115" name="Z-Wave.Me">
            <Product type="400" id="1" name="ZME_UZB1 USB Stick" />
        </Manufacturer>
        <CommandClasses>
            <CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" after_mark="true">
                <Instance index="1" />
                <Value type="byte" genre="basic" instance="1" index="0" label="Basic" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
            </CommandClass>
        </CommandClasses>
    </Node>
</Driver>
turbokongen commented 8 years ago

@nunofgs that part of zwcfg_xxxx.xml is your controller, and is of no use. By the look of it,node 2 is the part that is interesting.

nunofgs commented 8 years ago

@turbokongen: unfortunately, that is the entirety of the file. Am I missing something here?

turbokongen commented 8 years ago

@nunofgs Is that the file stored in HomeAssistants config directory? It should contain atleast 2 nodes, node 1 is the controller, and node 2 would be the rollershutter.

nunofgs commented 8 years ago

It is indeed:

$ ls
configuration.yaml  groups.yaml         known_devices.yaml  pyozw.sqlite
deps                home-assistant.db   notify.yaml         zwcfg_0xcce616b7.xml
devices             home-assistant.log  OZW_Log.txt         zwscene.xml

The file only contains node1, yet I am able to control the shutter through the home assistant UI (even though it is detected as a light and a switch)

turbokongen commented 8 years ago

That is really wierd! You have also tried to restart HA with either homeassistant/stop service or homeassistant/restart from within HA or using daemon start/stop. Not just killing the thread?

nunofgs commented 8 years ago

@turbokongen aha, I had just solved my issue and was about to post. I'm running Home Assistant through Docker on a raspberry pi. I believe the device became stuck somehow (a zwave.me usb stick in this case). After I pulled it out and back in again, restarted the docker container and now I have:

<?xml version="1.0" encoding="utf-8" ?>
<Driver xmlns="http://code.google.com/p/open-zwave/" version="3" home_id="0xcce616b7" node_id="1" api_capabilities="0" controller_capabilities="40" poll_interval="60000" poll_interval_between="true">
    <Node id="1" name="" location="" basic="2" generic="2" specific="1" type="Static PC Controller" listening="true" frequentListening="false" beaming="true" routing="false" max_baud_rate="40000" version="4" query_stage="Complete">
        <Manufacturer id="115" name="Z-Wave.Me">
            <Product type="400" id="1" name="ZME_UZB1 USB Stick" />
        </Manufacturer>
        <CommandClasses>
            <CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" after_mark="true">
                <Instance index="1" />
                <Value type="byte" genre="basic" instance="1" index="0" label="Basic" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
            </CommandClass>
        </CommandClasses>
    </Node>
    <Node id="5" name="" location="" basic="4" generic="17" specific="6" type="Motor Control Class B" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
        <Manufacturer id="10f" name="FIBARO System">
            <Product type="302" id="1000" name="FGRM222 Roller Shutter Controller 2" />
        </Manufacturer>
        <CommandClasses>
            <CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" mapping="38">
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
            </CommandClass>
            <CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="3" innif="true">
                <Instance index="1" />
                <Value type="byte" genre="user" instance="1" index="0" label="Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                <Value type="button" genre="user" instance="1" index="1" label="Open" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                <Value type="button" genre="user" instance="1" index="2" label="Close" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                <Value type="bool" genre="system" instance="1" index="3" label="Ignore Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
                <Value type="byte" genre="system" instance="1" index="4" label="Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
            </CommandClass>
            <CommandClass id="43" name="COMMAND_CLASS_SCENE_ACTIVATION" version="1" request_flags="4" after_mark="true" innif="true">
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="2" innif="true">
                <Instance index="1" />
                <Value type="decimal" genre="user" instance="1" index="4" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
            </CommandClass>
            <CommandClass id="50" name="COMMAND_CLASS_METER" version="2" request_flags="2" innif="true">
                <Instance index="1" />
                <Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.01" />
                <Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
                <Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                <Value type="button" genre="system" instance="1" index="33" label="Reset" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
            </CommandClass>
            <CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Value type="list" genre="config" instance="1" index="1" label="Local Protection" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Once the Local Protection is activated, the module stops responding to S1 and S2 push buttons. SCENE ID and association commands will not be sent as well. The only exception is the B-button. Menu and Z-Wave network inclusion, after the B-button or S1 push button triple click, are still active.</Help>
                    <Item label="No protection. Roller Shutter responds to push buttons" value="0" />
                    <Item label="Not supported" value="1" />
                    <Item label="Local protection active. Roller Shutter does not respond to push buttons" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="2" label="RF Protection (radio protection)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Once the RF Protection is activated, the module stops responding to command frames setting the blind position. It&apos;s still possible however to configure the device (advanced configuration parameters, protection modes) and checking it&apos;s current state through polling (position, power, energy).</Help>
                    <Item label="No protection. Roller Shutter responds to command frames" value="0" />
                    <Item label="RF Protection active. Roller Shutter does not respond to the Z-Wave control frames" value="1" />
                    <Item label="Not supported" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="3" label="Reports type" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Parameters value shoud be set to 1 if the module operates in Venetian Blind mode. Defauld setting: 0</Help>
                    <Item label="Blind position reports sent to the main controller using Z-Wave Command Class" value="0" />
                    <Item label="Blind position reports sent to the main controller using Fibar Command Class" value="1" />
                </Value>
                <Value type="list" genre="config" instance="1" index="10" label="Roller Shutter operating modes" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Default settng: 1</Help>
                    <Item label="0 - Roller Blind Mode, without positioning" value="0" />
                    <Item label="1 - Roller Blind Mode, with positioning" value="1" />
                    <Item label="2 - Venetian Blind Mode, with positioning" value="2" />
                    <Item label="3 - Gate Mode, without positioning" value="3" />
                    <Item label="4 - Gate Mode, with positioning" value="4" />
                </Value>
                <Value type="short" genre="config" instance="1" index="12" label="In Venetian Blind mode the parameter determines time of full turn of the lamellas" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="150">
                    <Help>In Venetian Blind mode (parameter 10 set to 2) the parameter determines time of full turn of the lamellas. In Gate Mode (parameter 10 set to 3 or 4) the parameter defines the COUNTDOWN time, i.e. the time period after which an open gate starts closing. In any other operating mode the parameter value is irrelevant. Value of 0 means the gate will not close automatically Available settings: 0-65535 (0 - 655,35s) Default setting: 150 (1,5 s)</Help>
                </Value>
                <Value type="list" genre="config" instance="1" index="13" label="Set lamellas back to previous position" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
                    <Help>In Venetian Blind Mode (parameter 10 set to 2) the parameter influences lamellas positioning in various situations. In any other operating mode the parameter value is irrelevant. Default settng: 1</Help>
                    <Item label="0 - Lamellas return to previously set position only in case of the main controller operation" value="0" />
                    <Item label="1 - Lamellas return to previously set position in case of the main controller operation, momentary switch operation, or when the limit switch is reached" value="1" />
                    <Item label="2 - Lamellas return to previously set position in case of the main controller operation, momentary switch operation, when the limit switch is reached or after receiving a STOP control frame (Switch Multilevel Stop)." value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="14" label="Switch type" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>The parameter settings are relevant for Roller Blind Mode and Venetian Blind Mode (parameter 10 set to 0, 1, 2).</Help>
                    <Item label="Momentary switches" value="0" />
                    <Item label="Toggle switches" value="1" />
                    <Item label="Single, momentary switch." value="2" />
                </Value>
                <Value type="byte" genre="config" instance="1" index="17" label="In Roller Blind Mode or Venetian Blind mode the parameter determines when the Roller Shutter relays are turned off after reaching a limit switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="10">
                    <Help>In Roller Blind Mode or Venetian Blind mode (parameter 10 set to 0, 1, 2) the parameter determines when the Roller Shutter relays are turned off after reaching a limit switch. In Gate Mode (parameter 10 set to 3 or 4) the parameter determines a time period after which a gate will start closing after a S2 contact has been disconnected. In this mode, time to turn off the Roller Shutter relays after reaching a limit switch is set to 3 seconds and cannot be modified. Value of 0 means the gate will note close automatically. Available settings: 0 - 255 (0,1-25,5s). Default setting: 10 (1s).</Help>
                </Value>
                <Value type="byte" genre="config" instance="1" index="18" label="Motor operation detection" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="10">
                    <Help>Power threshold to be interpreted as reaching a limit switch. Available settings: 0 - 255 (1-255 W) The value of 0 means reaching a limit switch will not be detected Default setting: 10 (10W).</Help>
                </Value>
                <Value type="short" genre="config" instance="1" index="22" label="Motor operation time" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="240">
                    <Help>Time period for the motor to continue operation. Available settings: 0 - 65535 (0 - 65535s) The value of 0 means the function is disabled. Default setting: 240 (240s. - 4 minutes)</Help>
                </Value>
                <Value type="list" genre="config" instance="1" index="29" label="Forced Roller Shutter calibration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>By modifying the parameters setting from 0 to 1 a Roller Shutter enters the calibration mode. The parameter relevant only if a Roller Shutter is set to work in positioning mode (parameter 10 set to 1, 2 or 4).</Help>
                    <Item label="Default" value="0" />
                    <Item label="Start calibration process" value="1" />
                </Value>
                <Value type="list" genre="config" instance="1" index="30" label="Response to general alarm" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
                    <Help>Default setting: 2-Close blind</Help>
                    <Item label="No reaction" value="0" />
                    <Item label="Open blind" value="1" />
                    <Item label="Close blind" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="31" label="Response to flooding alarm" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Default setting: 0-No reaction</Help>
                    <Item label="No reaction" value="0" />
                    <Item label="Open blind" value="1" />
                    <Item label="Close blind" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="32" label="Response to smoke, CO or CO2 alarm" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
                    <Help>Default setting: 1-Open blind</Help>
                    <Item label="No reaction" value="0" />
                    <Item label="Open blind" value="1" />
                    <Item label="Close blind" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="33" label="Response to temperature alarm" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
                    <Help>Default setting: 1-Open blind</Help>
                    <Item label="No reaction" value="0" />
                    <Item label="Open blind" value="1" />
                    <Item label="Close blind" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="35" label="Managing lamellas in response to alarm" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
                    <Help>In Venetian Blind Mode (parameter 10 set to 2), the parameter determines how the lamellas will react upon alarm detection. In any other modes, the parameter value is not relevant. Default setting: 1 Set lamellas to their extreme position</Help>
                    <Item label="Do not change lamellas position - lamellas return to the last set position" value="0" />
                    <Item label="Set lamellas to their extreme position" value="1" />
                </Value>
                <Value type="byte" genre="config" instance="1" index="40" label="Power reports" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="10">
                    <Help>Power level change that will result in new power value report being sent. The parameter defines a change that needs to occur in order to trigger the report. The value is a percentage of the previous report. Power report threshold available settings: 1-100 (1-100%). Value of 0 means the reports are turned off. Default setting: 10 (10%).</Help>
                </Value>
                <Value type="short" genre="config" instance="1" index="42" label="Periodic power or energy reports" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="65534" value="3600">
                    <Help>The parameter defines a time period between consecutive reports. Available settings: 1-65534 (1-65534 seconds) Value of 0 means the reports are turned off. Default setting: 3600 (3600 seconds / 60 minutes).</Help>
                </Value>
                <Value type="byte" genre="config" instance="1" index="43" label="Energy reports" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="254" value="10">
                    <Help>Energy level change which will result in new energy value report being sent. The parameter defines a change that needs to occur in order to trigger the report. Energy threshold available settings: 1-254 (0,01 - 2,54kWh). Value of 0 means the reports are turned off. Default setting 10 (0,1kWh).</Help>
                </Value>
                <Value type="list" genre="config" instance="1" index="44" label="Self-measurement." units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
                    <Help>A Roller Shutter may include power and energy used by itself in reports sent to the main controller Default setting: 0-Self-measurement inactive</Help>
                    <Item label="Self-measurement inactive" value="0" />
                    <Item label="Self-measurement active" value="1" />
                </Value>
                <Value type="list" genre="config" instance="1" index="50" label="Scenes / Associations activation" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Parameter determines whether scenes or associations are activated by the switch keys. Default setting: 0-Associations activation</Help>
                    <Item label="Associations activation" value="0" />
                    <Item label="Scenes activation" value="1" />
                </Value>
            </CommandClass>
            <CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Item label="Normal" value="0" />
                    <Item label="-1dB" value="1" />
                    <Item label="-2dB" value="2" />
                    <Item label="-3dB" value="3" />
                    <Item label="-4dB" value="4" />
                    <Item label="-5dB" value="5" />
                    <Item label="-6dB" value="6" />
                    <Item label="-7dB" value="7" />
                    <Item label="-8dB" value="8" />
                    <Item label="-9dB" value="9" />
                </Value>
                <Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                <Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                <Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                <Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Item label="Normal" value="0" />
                    <Item label="-1dB" value="1" />
                    <Item label="-2dB" value="2" />
                    <Item label="-3dB" value="3" />
                    <Item label="-4dB" value="4" />
                    <Item label="-5dB" value="5" />
                    <Item label="-6dB" value="6" />
                    <Item label="-7dB" value="7" />
                    <Item label="-8dB" value="8" />
                    <Item label="-9dB" value="9" />
                </Value>
                <Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                <Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                <Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                <Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Item label="Failed" value="0" />
                    <Item label="Success" value="1" />
                    <Item label="In Progress" value="2" />
                </Value>
                <Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
            </CommandClass>
            <CommandClass id="117" name="COMMAND_CLASS_PROTECTION" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Value type="list" genre="system" instance="1" index="0" label="Protection" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Item label="Unprotected" value="0" />
                    <Item label="Protection by Sequence" value="1" />
                    <Item label="No Operation Possible" value="2" />
                </Value>
            </CommandClass>
            <CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Associations num_groups="3">
                    <Group index="1" max_associations="16" label="Group 1" auto="false" multiInstance="true" />
                    <Group index="2" max_associations="16" label="Group 2" auto="false" multiInstance="true" />
                    <Group index="3" max_associations="1" label="Device Status" auto="true">
                        <Node id="1" />
                    </Group>
                </Associations>
            </CommandClass>
            <CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
                <Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3.52" />
                <Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="25.25" />
            </CommandClass>
            <CommandClass id="142" name="COMMAND_CLASS_MULTI_INSTANCE_ASSOCIATION" version="1" request_flags="4" innif="true">
                <Instance index="1" />
                <Associations num_groups="2">
                    <Group index="1" max_associations="16" label="Group 1" auto="false" multiInstance="true" />
                    <Group index="2" max_associations="16" label="Group 2" auto="false" multiInstance="true" />
                    <Group index="3" max_associations="1" label="Device Status" auto="true">
                        <Node id="1" />
                    </Group>
                </Associations>
            </CommandClass>
        </CommandClasses>
    </Node>
</Driver>
turbokongen commented 8 years ago

That is the usefull info I needed. So with the switch appearing in the ui now, you can start and stop the rollershutter, but not select up or down? Could you make a test for me: Turn on the switch in ui. Then turn it off as soon as the rollershutter starts moving. Then turn it on again. Does it move the same way, or does it go the other way.

turbokongen commented 8 years ago

Also can you check your zwcfg_xxx.xml for this line at open and closed position: It is the value field I am interessted in.

<CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="3" innif="true">
                <Instance index="1" />
                <Value type="byte" genre="user" instance="1" index="0" label="Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
nunofgs commented 8 years ago

Regarding the "Level" value you asked about, the zwcfg_<homeid>.xml file doesn't seem to update every time I toggle a setting (is there a way to force the file to be written?).

I grabbed the values from the HA log instead:

16-06-12 17:04:23 homeassistant.core: Bus:Handling <Event state_changed[L]: entity_id=light.fibaro_system_fgrm222_roller_shutter_controller_2_level_5, new_state=<state light.fibaro_system_fgrm222_roller_shutter_controller_2_level_5=off; node_id=5, friendly_name=FIBARO System FGRM222 Roller Shutter Controller 2 Level @ 2016-06-12T18:04:23.861927+01:00>, old_state=<state light.fibaro_system_fgrm222_roller_shutter_controller_2_level_5=on; friendly_name=FIBARO System FGRM222 Roller Shutter Controller 2 Level, node_id=5, brightness=255.0 @ 2016-06-12T17:59:58.287679+01:00>>
16-06-12 17:04:27 homeassistant.core: Bus:Handling <Event state_changed[L]: entity_id=light.fibaro_system_fgrm222_roller_shutter_controller_2_level_5, new_state=<state light.fibaro_system_fgrm222_roller_shutter_controller_2_level_5=on; friendly_name=FIBARO System FGRM222 Roller Shutter Controller 2 Level, node_id=5, brightness=654.2424242424242 @ 2016-06-12T18:04:27.885666+01:00>, old_state=<state light.fibaro_system_fgrm222_roller_shutter_controller_2_level_5=off; node_id=5, friendly_name=FIBARO System FGRM222 Roller Shutter Controller 2 Level @ 2016-06-12T18:04:23.861927+01:00>>

Hope that's helpful!

PS: I'm a pretty decent developer as well (though not proficient in python), so anything I can do to help test this feature, let me know!

turbokongen commented 8 years ago

I will put up a rough draft without position reporting for you to test at my repository: https://github.com/turbokongen/home-assistant.git

nunofgs commented 8 years ago

@turbokongen: Here is a video I took that attempts to demonstrate the current behavior.

Here are a few important things to note:

physical switches

http://i.imgur.com/NXAJyuv.gifv

In short, the video shows that:

turbokongen commented 8 years ago

There, I was too quick to try and solve this. Now everything should be in place. Please report back when tested. :+1:

turbokongen commented 8 years ago

Ah, forgot to say it is zwave_rollershutter branch

nunofgs commented 8 years ago

@turbokongen sorry it took me a while to respond, I had a full work day until now. Apologies but I'm having problems testing your branch.

I'm on a container-based installation and basically checked out your branch by doing: pip3 install git+https://github.com/turbokongen/home-assistant.git@zwave_rollershutter

I can launch hass successfully but any request to https://localhost:8123 comes back with a json response:

{
  message: "404: Not Found",
  result: "error"
}

I tried to debug a bit and printed the exception:

WARNING:homeassistant.components.http:Error '404: Not Found'
Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/homeassistant/components/http.py", line 306, in dispatch_request
    endpoint, values = adapter.match()
  File "/config/deps/werkzeug/routing.py", line 1563, in match
    raise NotFound()

Kinda looks like no routes were installed/registered?

I know this has nothing to do with your particular feature, which I'm anxious to test, but I'm kinda stuck here. Any ideas?

balloob commented 8 years ago

Make sure "frontend:" is in your config

On Mon, Jun 13, 2016, 17:10 Nuno Sousa notifications@github.com wrote:

@turbokongen https://github.com/turbokongen sorry it took me a while to respond, I had a full work day until now. Apologies but I'm having problems testing your branch.

I'm on a container-based installation and basically checked out your branch by doing: pip3 install git+ https://github.com/turbokongen/home-assistant.git@zwave_rollershutter

I can launch hass successfully but any request to https://localhost:8123 comes back with a json response:

{ message: "404: Not Found", result: "error" }

I tried to debug a bit and printed the exception:

WARNING:homeassistant.components.http:Error '404: Not Found' Traceback (most recent call last): File "/usr/lib/python3.5/site-packages/homeassistant/components/http.py", line 306, in dispatch_request endpoint, values = adapter.match() File "/config/deps/werkzeug/routing.py", line 1563, in match raise NotFound()

Kinda looks like no routes were installed/registered?

I know this has nothing to do with your particular feature, which I'm anxious to test, but I'm kinda stuck here. Any ideas?

— You are receiving this because you are subscribed to this thread.

Reply to this email directly, view it on GitHub https://github.com/home-assistant/home-assistant/issues/2053#issuecomment-225745438, or mute the thread https://github.com/notifications/unsubscribe/ABYJ2vhSXesZYKQXKeLdoLg1CNMt3puOks5qLfF1gaJpZM4IdWuQ .

nunofgs commented 8 years ago

@balloob: awwww, just came back to say I forgot frontend:, thanks. Since I'm coming from an older version, I didn't have it defined.

Anyways, here's my feedback:

rollershutter

I'm about to head off to bed so I won't have a chance to dive in the code to debug until tomorrow, but it shows progress! Thank you @turbokongen

turbokongen commented 8 years ago

New code suggestion up. Now I try to limit the amount of rollershutter devices discovered to 1. Also try a different apporach to get movement on the rollershutter.