Coder Social home page Coder Social logo

freepad's Introduction

Freepad

Freepad is an open-source Zigbee remote intended to be used to have a customizable keypad to control your smart home devices.

How to compile

Follow this article https://zigdevwiki.github.io/Begin/IAR_install/

There are different hardware versions of the console.

More details on the links:

Features list:

  1. Single/double/triple/quadruple/many_x/hold&release
  2. Touchlink reset
  3. ONOFF bind
  4. Level control bind
  5. Bindings configuration
  6. Remote reset

How to join:

  1. Press and hold the first button for 3-10 seconds (depending on whether the device is connected to the network) until the LED on the device flashes.
  2. Wait, if the connection is successful, the device will blink 5 times.
  3. If the connection fails, the device will blink 3 times.

Find button mapping at project page

Support

The keypad is supported in:

  • zigbee2mqtt via int & ext converter
  • ioBroker
  • SLS Gateway

Settings

In zigbee2mqtt you could change the setting at Exposes tab.

Work modes

By default remote works as a custom switch, with multiple clicks, but this behaviour has its drawback. To detect multiple clicks, the remote sends commands with a 300ms delay. You can change this behaviour by the cost of double/triple/etc clicks.

To do that you need to change

ZCL_CLUSTER_ID_GEN_ON_OFF_SWITCH_CONFIG cluster ATTRID_ON_OFF_SWITCH_TYPE attribute

Values are:

ON_OFF_SWITCH_TYPE_MOMENTARY (0) -> no delay, but no multiple clicks, only single

mosquitto_pub -t "zigbee2mqtt/FN/BUTTON_NUM/set/switch_type" -m '0'

ON_OFF_SWITCH_TYPE_MULTIFUNCTION (2) -> 300ms delay, full set of clicks

mosquitto_pub -t "zigbee2mqtt/FN/BUTTON_NUM/set/switch_type" -m '2'

ONOFF cluster binding

By default command is TOGGLE, but you can change this behaviour.

Change ZCL_CLUSTER_ID_GEN_ON_OFF_SWITCH_CONFIG clusters attribute ATTRID_ON_OFF_SWITCH_ACTIONS

ON_OFF_SWITCH_ACTIONS_ON

mosquitto_pub -t "zigbee2mqtt/FN/BUTTON_NUM/set/switch_actions" -m '0'

ON_OFF_SWITCH_ACTIONS_OFF

mosquitto_pub -t "zigbee2mqtt/FN/BUTTON_NUM/set/switch_actions" -m '1'

ON_OFF_SWITCH_ACTIONS_TOGGLE (default value)

mosquitto_pub -t "zigbee2mqtt/FN/BUTTON_NUM/set/switch_actions" -m '2'

Video

@Vlad_Kolobov recorded a video showing the speed in two modes video_speed_compare

Acronyms in firmware file names

TL - touchlink

PM3 - Power Mode 3 (External Interrupts): 0.4 μA

freepad's People

Contributors

blakadder avatar eliseomartelli avatar koptserg avatar magura320 avatar nurikk avatar xyzroe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freepad's Issues

LeTV delay after pressing button.

Hi! I had flashed Letv remote to this firmware. It works, but there is long delay (4-5 sec) between pressing button and sending command. Also tried to flash "DIYRuZ_FreePad_LeTV_PM3.hex" and "DIYRuZ_FreePad_LeTV_TL_PM3.hex" files, nothing changes. Remote connected via Zigbee v4 stick and z2m Home Assistant addon.
Also tried to play with "switch_type" options in z2m, but nothing help.
What I'm doing wrong?

Binding unsuccesful zigbee2mqtt deconz 2

Hi there

Unfortunately I am not able binding the freepad with zigbee2mqtt and deconz 2. Nor am I able binding it with e.g. iobroker.zigbee and deconz 2.

When I try the binding attempt, waiting for the led flashing fast, releasing the button, I always get 3 times led flashing to show a binding error.

It would be a pity causexthe hardware is brilliant. Any idea?

Thanks in advance.

pcb file

I would like to have the pcb file for making my own version

How to flash E18-MS1-PCB?

Hi, I want to reproduce your Zigbee keypad. Ordered E18-MS1-PCB.
I was able in the past to flash a CC2652RB USB stick with a .hex file.
As far as I understood I should flash the E18-MS1-PCB with the DIYRuZ_FreePad.hex file.
How can I connect the E18-MS1-PCB to my PC?
Do I need a USB to Serial TTL convertor like the CH340? https://nl.aliexpress.com/item/32761423124.html?gatewayAdapt=glo2nld&spm=a2g0o.9042311.0.0.27424c4dkahs6F
If yes, could you please clarify where to connect the RX and TX line to the E18-MS1-PCB.
If I'm complety wrong, please give me a hint how to put the .hex file in the E18-MS1-PCB.
Thanks in advance!

Wrong endpoint in zclFreepadApp_SendKeysToBinds

Hi, first of all really nice piece of software!

In the file zcl_freepadapp.c the function zclFreepadApp_SendKeysToBinds has the case

        zclGeneral_SendLevelControlStepWithOnOff(endPoint, &inderect_DstAddr, LEVEL_STEP_DOWN, FREEPADAPP_LEVEL_STEP_SIZE,
                                                 FREEPADAPP_LEVEL_TRANSITION_TIME, TRUE, bdb_getZCLFrameCounter());

        zclLighting_ColorControl_Send_StepColorCmd(endPoint - 1, &inderect_DstAddr, -1000, 0, 0, true, bdb_getZCLFrameCounter());

As far as i understand both endpoints should be endPoint.

Idea: Status LEDs?

Hi,
first of all, thanks to publish your project! Will build one soon.
But a idea came to my mind. This project is also a good starting point to build a wall switch which would be powered by a supply. So the idea is to also integrate status LEDs for each button. There are also some 3D printed hardware for this. So would it be a heavy lift to expose some (neopixel) channels? Just asking ;)

Greets

z2m and LeTV

DIYRuZ_FreePad_LeTV.hex Release 2.0.7
zigbee2mqtt-1.17.0

The problem:

Zigbee2MQTT:error 2021-02-01 11:04:26: Failed to interview '0x00124b000adb260f', device has not successfully been paired

Howto compile it? Plz help me :-)

Hi,
i have some ideas and want to play around with this, but i do not understand whit IDE or SDK or VSCode Extensions i have to install.
Can you give me a hint, may be some short lines in which steps i have to do it?

thanks for helping
dominique

EDIT:
until now i download the ZSTACK from TI
extract it and set the ENV ZSTACK_PATH
i copied the Mac config in c_cpp_properties.json to a Linux version and corrected the path

but how i compile it to an hex file ..

Not all buttons working in ZHA

I am using an 8-button free pad, first 4 buttons are working those will fire an event without any problem the buttons 5 to 8 not firing any event data

Home assistant device diagnostics

{
  "home_assistant": {
    "installation_type": "Home Assistant Container",
    "version": "2022.10.5",
    "dev": false,
    "hassio": false,
    "virtualenv": false,
    "python_version": "3.10.5",
    "docker": true,
    "arch": "x86_64",
    "timezone": "UTC",
    "os_name": "Linux",
    "os_version": "5.18.0-kali7-amd64",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.34.2",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.83",
      "zigpy-deconz==0.19.0",
      "zigpy==0.51.3",
      "zigpy-xbee==0.16.2",
      "zigpy-zigate==0.10.2",
      "zigpy-znp==0.9.1"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      }
    ],
    "dependencies": [
      "file_upload"
    ],
    "after_dependencies": [
      "onboarding",
      "usb",
      "zeroconf"
    ],
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 49976,
    "manufacturer": "modkam.ru",
    "model": "DIYRuZ_FreePad",
    "name": "modkam.ru DIYRuZ_FreePad",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 0,
    "power_source": "Battery or Unknown",
    "lqi": 65,
    "rssi": null,
    "last_seen": "2022-10-27T10:11:30",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [
            "0x0000"
          ],
          "out_clusters": [
            "0x0006",
            "0x0008",
            "0x0012",
            "0x0300"
          ]
        },
        "2": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "3": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "4": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "5": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0008",
            "0x0012",
            "0x0300"
          ]
        },
        "6": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "7": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "8": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "9": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0008",
            "0x0012",
            "0x0300"
          ]
        },
        "10": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "11": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "12": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "13": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0008",
            "0x0012",
            "0x0300"
          ]
        },
        "14": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "15": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "16": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "17": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0008",
            "0x0012",
            "0x0300"
          ]
        },
        "18": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "19": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        },
        "20": {
          "profile_id": 260,
          "device_type": "0x0006",
          "in_clusters": [],
          "out_clusters": [
            "0x0006",
            "0x0012"
          ]
        }
      }
    },
    "active_coordinator": false,
    "entities": [],
    "neighbors": [],
    "endpoint_names": [
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      },
      {
        "name": "REMOTE_CONTROL"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "049629de53bc6753e6e007adbc3e7238",
    "area_id": null,
    "cluster_details": {
      "20": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "19": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "18": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "17": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0300": {
            "endpoint_attribute": "light_color",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "16": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "15": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "14": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "13": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0300": {
            "endpoint_attribute": "light_color",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "12": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "11": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "10": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "9": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0300": {
            "endpoint_attribute": "light_color",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "8": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "7": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "6": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "5": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {
              "0x0000": {
                "attribute_name": "on_off"
              },
              "0x4001": {
                "attribute_name": "on_time"
              },
              "0xfffe": {
                "attribute_name": "attr_reporting_status"
              }
            }
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0300": {
            "endpoint_attribute": "light_color",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "4": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "3": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {
              "0x0000": {
                "attribute_name": "on_off"
              }
            }
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "2": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {},
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {
              "0x0000": {
                "attribute_name": "on_off"
              }
            }
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "1": {
        "device_type": {
          "name": "REMOTE_CONTROL",
          "id": 6
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "modkam.ru"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "DIYRuZ_FreePad"
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0012": {
            "endpoint_attribute": "multistate_input",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0300": {
            "endpoint_attribute": "light_color",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Flashing without CC Debugger?

I'm trying to work our what I need to get in order to be able to build and flash my own. With the provided binary, this should be easy with a CC Debugger; however I don't have one.

Can anyone advise how I can flash without the CC Debugger? or confirm if
https://www.zigbee2mqtt.io/guide/adapters/flashing/alternative_flashing_methods.html, as alternative method to flash a CC2531 (E18-MS1-PCB is based on CC2530) with just a Raspberry Pi and some dupont cables would work, using P2.1 as DD and P2.2 ad DC?

Battery drain - LeTV

Hi,

I've flashed LeTV with "DIYRuZ_FreePad_LeTV_PM3.hex", device is used with direct binding to bulb, 5-10 switchs per day, no more 2 weeks with new battery :/

I've 10 LeTV, all are same issue

Any idea ?

Error afer endpoint setting change

When I change one of the endpoint settings, either switch_type or switch_action I get an error:
Publish 'get' 'switch_type' to 'alarm' failed: 'Error: Read 0x00124b00254b2b06/2 genOnOffSwitchCfg(["switchType","switchActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Timeout - 61893 - 2 - 55 - 7 - 1 after 10000ms)'
When I refresh the specific settings, the change is not made and remains the existing setting

ZHA support

Are there any plans to make a firmware that is compatible with ZHA?

20 single click version

As I am not that familiar with coding, would it be possible to upload the only single click version of the 20 button keypad ?

It's not a bug, it's a feature

I've made a small PCB that fits under a legacy wall switch into the wall box. If it's interesting I'll share the gerber files for the PCB

IMG_20210325_213014

Stability in Zigbee2MQTT

Does anyone meet the stability problem in Zigbee2MQTT? I flash the firmware to CC2530(E18-MS1-PA1), and it seems that very unstable.

(1) I use coordinator cc2652p, and very close to the 20 keys freepad v1, pcb antenna and ipex antenna all tried.
(2) it's hardly to be configured and interviewed, and only success for a few times in dozens of tries.
(3) after interviewed, press the button and no signal received by zigbee2mqtt
(4) in device exposes page, click multifunction for each key, somtimes success sometimes fail
(5) in devices binding/reporting setting page, sometimes set it successfully, and the button starts to work, report single/double/triple, and etc.
(6) but suddenly no signal received anymore, sometime power off will make it work again, but more times need to reset and pair the device again

Does anyone meet the same situation? Is it possible that CC2530 is not powerful enough to run z-stack 3.0?

Make freepad as router?

Good day. I am planning to make inwall stationary freepad from modkam plans by Jager with persistent or time-changing backlights. Is any possibility to program it as zigbee router? Also, if it possible, how it will work in z2m and sls?
Thanks.

Английский у меня корявый, так что попробую продублировать по русски:
Доброго времени суток.
Есть планы сделать 20-кнопочный пульт в корпусе для подрозетника. С аппаратной частью проблем не вижу, а вот с программной, хотелось бы уточнить. Есть ли какая-либо возможность использовать этот девайс как роутер зигби, так как питание у него будет стационарное, а также возможность сделать настраиваемую подсветку на какой-либо GPIO. Насколько я понимаю, этот проект максимально заточен под энергоэффективность, но также хотелось бы узнать возможность использовать cc2538-cc2592 для лучшего сигнала.

И, насколько всё это, после переделок, сможет интегрироваться в z2m и sls. Залетит под уже готовые девайсы или придётся проталкивать их добавление?

Заранее спасибо за ответы.

Only some buttons work (LED always flashes)

I've built and flashed a keypad with 20 buttons (DIYRuZ_FreePad.hex). This has paired fine with zigbee2mqtt, and pressing every button I always get a LED flash however only some of the buttons actually have an action received in zigbee2mqtt - specifically buttons 1, and 10-16.

As the LED flashes, I don't see how it could be bad soldering.

Anyone seen this before / have any ideas why only some work?

More than 20 buttons?

Hi,
Is it possible for this firmware and chip to support more than 20 buttons? I have a project that would benefit from this. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.