GithubHelp home page GithubHelp logo

ptvoinfo / zigbee-configurable-firmware Goto Github PK

View Code? Open in Web Editor NEW
195.0 21.0 22.0 701.85 MB

PTVO firmware for CC2530, CC2531, and CC2652 Zigbee chips

Home Page: https://ptvo.info/zigbee-configurable-firmware-features/

License: MIT License

zigbee cc2530 cc2531 firmware features sensors cc2652 cc1352

zigbee-configurable-firmware's Introduction

About

The firmware for CC2530, CC2531, CC2652R, CC2652P, CC2652RB, CC2651R1, CC1352P chips allows creating a device with a easily configurable functionality including inputs, outputs, ADC, pulse counter/generator, I2C, external sensors.

The device with this firmware can work as a router or end-device.

The firmware also supports built-in and external (CC2590, CC2591, CC2592, RFX2401) RF amplifiers.

The firmware can work on battery powered-devices with power consumption up to 0.4uA.

Firmware features

A long list of firmware features.

How to use

  1. Unpack the ZIP archive.
  2. Launch the "FirmwareConfig.exe" utility.
  3. Configure the firmware for your chip, board, and needs. Optionally, you may click the "File - Read settings from a file" menu item and load settings from an existing preset in the "Presets" folder.
  4. Click the "Save" button and get the final HEX file. Note: some features may require the Premium version of this firmware.

⚠️ Caution: Please do not use HEX files in the "hex" folder directly, without a configuration.

Pairing

Flash firmware and permit joining to a network on your coordinator.

Re-pairing

Power on, wait 2 seconds, power off, repeat this cycle three times.

If you configured first input pin, click and hold it for 10 seconds.

More info

Home page

Download

Report issues

zigbee-configurable-firmware's People

Contributors

ptvoinfo 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zigbee-configurable-firmware's Issues

Node Red switch on off gives "Failed to parse JSON string"

Hi,
I toggle switch through the node-red web page, it works but the MQTT "in" node that I use to update the switch status gives me "Failed to parse JSON string" error. Not sure if its the node-red issue or the string that comes out of the switch. Just wondering where to look any pointer would be appreciated:
Thank you so much
Shah

Here is my nodered setup:
zigbee2mqtt/0x00124b001ef965ab/# --->payload.state_l1--->on/off switch--->Toggle switch.0x00124b001ef965ab_switch_l1
image

Only four analog inputs are reported

Hi, after lots of trying, I thing firmware always report only four analog values from inputs. Connected four DS18B20 and ADC, runnig for couple of hours, but temperature from fourth sensor never come. But when i disable ADC, then data from sensor are received. So sensor is ok.
All others work very well.

See config on picture.
ptvo-issue

There is log from zigbee2mqtt:

Zigbee2MQTT:debug 2021-08-25 18:27:37: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genOnOff', data '{"onOff":1}' from endpoint 1 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:37: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":15,"l2":15.625,"l3":11.5,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":15,"temperature_l2":15.6,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:37: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genOnOff', data '{"onOff":1}' from endpoint 2 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:37: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":15,"l2":15.625,"l3":11.5,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":15,"temperature_l2":15.6,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:37: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genOnOff', data '{"onOff":1}' from endpoint 3 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:37: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":15,"l2":15.625,"l3":11.5,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":15,"temperature_l2":15.6,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:37: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genOnOff', data '{"onOff":1}' from endpoint 4 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:37: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":15,"l2":15.625,"l3":11.5,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":15,"temperature_l2":15.6,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:37: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genOnOff', data '{"onOff":0}' from endpoint 8 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:37: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":15,"l2":15.625,"l3":11.5,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":15,"temperature_l2":15.6,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:38: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genAnalogInput', data '{"description":"C,28-6D-C2-45-42-20-01-B6","presentValue":14.875,"statusFlags":5}' from endpoint 1 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:38: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":14.875,"l2":15.625,"l3":11.5,"l7":0.172,"linkquality":57,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":14.9,"temperature_l2":15.6,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:39: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genAnalogInput', data '{"description":"C,28-03-CD-A9-42-20-01-52","presentValue":15.5,"statusFlags":5}' from endpoint 2 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:39: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":14.875,"l2":15.5,"l3":11.5,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":14.9,"temperature_l2":15.5,"temperature_l3":11.5,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:40: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genAnalogInput', data '{"description":"C,28-54-DF-3A-42-20-01-6F","presentValue":11.4375,"statusFlags":0}' from endpoint 3 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:40: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":14.875,"l2":15.5,"l3":11.438,"l7":0.172,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":14.9,"temperature_l2":15.5,"temperature_l3":11.4,"temperature_l4":null,"voltage_l7":0.2}'


Zigbee2MQTT:debug 2021-08-25 18:27:40: Received Zigbee message from '0x00124b0014db2161', type 'attributeReport', cluster 'genAnalogInput', data '{"description":"V","presentValue":0.15299999713897705,"statusFlags":31}' from endpoint 7 with groupID 0


Zigbee2MQTT:info  2021-08-25 18:27:40: MQTT publish: topic 'zigbee2mqtt/0x00124b0014db2161', payload '{"device_l1":"28-6D-C2-45-42-20-01-B6","device_l2":"28-03-CD-A9-42-20-01-52","device_l3":"28-54-DF-3A-42-20-01-6F","l1":14.875,"l2":15.5,"l3":11.438,"l7":0.153,"linkquality":54,"state_l1":"ON","state_l2":"ON","state_l3":"ON","state_l4":"ON","state_l8":"OFF","temperature_l1":14.9,"temperature_l2":15.5,"temperature_l3":11.4,"temperature_l4":null,"voltage_l7":0.2}'

Thank you for reaction, regards Tomas.

Switch input problem with PSM firmware

GPIO input don't send messages on "release" in PSM firmware with switch mode enabled. Only "push" events received, attribute 0x0055 for cluster "multistate input" always have value 1, led blinks only once.

Input as switch output cluster

Hi, would it be possible to use the ZCL_CLUSTER_ID_GEN_ON_OFF cluster when the input is in switch mode, instead of ZCL_CLUSTER_ID_GEN_MULTISTATE_INPUT_BASIC? After all it's a boolean value.
I noticed the cluster is changed to ZCL_CLUSTER_ID_GEN_ON_OFF when linked to an output (but I wouldn't link it), that's why it seems reasonable to implement.

Thank you

Feature request - IR input

Can we have easy way to add InfraRed input for signals from remotes?

Input (receiving IR codes)
Output (sending IR codes)

Thank you.

Trying to decode ADC Value

Hi, 1st I very much appreciate your sharing you hard work.

I have a configuration programmed into my CC2530 board. I can read and parse the message into a MAP. However I cannot figure out how to decode the returned value: The applied input voltage is 0 (i.e. the ADC input is shorted to gnd)

The returned value is: value:000000006F0018001C00420156

Perhaps I'm missing something but all my research has not been successful.
Can you point me in the right direction?

Thanks
John

the Configuration is:
Board type: CC2530
Device type: End device without routing
Status LED: P01

Output pins:
P13: Output 1, GPIO, External pull-up, Remember state
P12: Output 2, GPIO, External pull-up, Remember state

Input pins:
P20: Input 2, GPIO, External pull-up, Link to out 2
P06: Input 3, ADC (max 3.3V)'

Bug in PWM output?

Hey,

i'm using a ZigUp with PWM output on P13 with odd results.
Up to a value of 138 is more or less fine. Measuring about 60% duty cycle with my multimeter. It should be 54 but not big deal.
However setting it to 139 the results in roughly 75% duty cycle.
170 goes to 97%
Is my multimeter wrong or a bug in the firmware? I have no further way to test this with my equipment.

sensor report frequency

Configured firmware for 4pcs DS18B20 and its reporting twice a second or more. Need to configure that resolution. Thank you.

BME280 capable?

Don't know if this is a documentation error I'm missing something. The feature list shows the capability to use the Bosch BMP280 and BME280.
In the program I only see BMP280 and NO BME280.
Thanks
John

BTW I've not actually used the software yet (hence the BME280 Question) however it promises to be an awesome program.

Sensing HIGH/LOW input changed in version 2021-08-05?

I think something about GPIO management (sensing HIGH and LOW input) changed in latest versions of the firmware.

PROBLEM: I have a custom PCB. With the same PCB, firmware 2021-04-05 works smoothly, but with firmware 2021-08-05 it stops sensing the button pressess. I repeated with another CC2530 and the problem is reproducible everytime. If i go back to the 2021-04-05 it works.

HARDWARE: I'm using a ChdTech zigbee CC2530 module with an OpAmp linked directly to a GPIO. The OpAmp outputs 1,95V steady (for logic 1) and 0V steady (for logic 0). The Input is configured with External pull-up, linked to the relative output.

Can you check if something has changed with sensing GPIO high and low?

internal cpu temperature incorrectly reported by customizeable firmware

Greetings,

I've started paying with the customizeable firmware program (too bad there is no Linux version, spinning up a windows VM is awkard). However, I discovered an issue when exposing the internal temperature to z2m. I'm using the generated js file to inform z2m of the facts of life.

So it seems the firmware generates a analog output in l1 named temperate (not cpu_temperature!) and on l2 the analog output named voltage. The voltage is all fine. The temperature is not however. It gets exported to mqtt just fine as l1: 30 and temperature_l1, but in the z2m dashboard, where it is exposed via e.cpu_temperature() (which looks for a cpu_temperature field). So that stays N/A forever.

Also, the generated .js does not expose the e.linkquality(). This is needed for custom devices as all the devices in devices.js get the linkquality() automaticly appended in it's module.export function, but not the custom ones.

It also seems the 300s default reporting interval does not work. It keeps report the temperature and voltage every 60 seconds, till I added a report interval for 300s manually in z2m dashboard. So you might want to look at that code some more.

So, in short

change e.cpu_temerature() => e.temperature()
add e.linkquality()

A better solution would be to tweak the firmware that the internal temperature really is exported as cpu_temperature and not temperature. Also it looks like the .withAccess() is not needed on voltage(), it already has that state.

Generated cc2530_cc2591_2.5_p20.txt

Board type: CC2530 + CC2591
Device type: Router
 Transmit enable (TXEN): P12Receive enable (RXEN): P14
Model ID: ptvo.switch_2021
Status LED: P20, Periodic (every 30 seconds)
Set default reporting interval (s): 300

Input pins:
P01: Input 1, Internal temperature
P02: Input 2, Source voltage

The generated ptvo.switch_2021.js

const zigbeeHerdsmanConverters = require('zigbee-herdsman-converters');

const exposes = zigbeeHerdsmanConverters.exposes;
const ea = exposes.access;
const e = exposes.presets;
const fz = zigbeeHerdsmanConverters.fromZigbeeConverters;
const tz = zigbeeHerdsmanConverters.toZigbeeConverters;

const ptvo_switch = zigbeeHerdsmanConverters.findByDevice({modelID: 'ptvo.switch'});
fz.legacy = ptvo_switch.meta.tuyaThermostatPreset;

const device = {
    zigbeeModel: ['ptvo.switch_2021'],
    model: 'ptvo.switch_2021',
    vendor: 'Custom devices (DiY)',
    description: '[Configurable firmware](https://ptvo.info/zigbee-configurable-firmware-features/)',
    fromZigbee: [fz.ignore_basic_report, fz.ptvo_switch_analog_input,],
    toZigbee: [tz.ptvo_switch_analog_input,],
    exposes: [e.cpu_temperature().withEndpoint('l1'),
      e.voltage().withAccess(ea.STATE).withEndpoint('l2'),
],
    meta: {
        multiEndpoint: true,
        
    },
    endpoint: (device) => {
        return {
            l1: 1, l2: 2,
        };
    },
    
};

module.exports = device;

My changed version

const zigbeeHerdsmanConverters = require('zigbee-herdsman-converters');

const exposes = zigbeeHerdsmanConverters.exposes;
const ea = exposes.access;
const e = exposes.presets;
const fz = zigbeeHerdsmanConverters.fromZigbeeConverters;
const tz = zigbeeHerdsmanConverters.toZigbeeConverters;

const ptvo_switch = zigbeeHerdsmanConverters.findByDevice({modelID: 'ptvo.switch'});
fz.legacy = ptvo_switch.meta.tuyaThermostatPreset;

const device = {
    zigbeeModel: ['ptvo.switch_2021'],
    model: 'ptvo.switch_2021',
    vendor: 'Custom devices (DiY)',
    description: '[Configurable firmware](https://ptvo.info/zigbee-configurable-firmware-features/)',
    fromZigbee: [fz.ignore_basic_report, fz.ptvo_switch_analog_input,],
    toZigbee: [tz.ptvo_switch_analog_input,],
    exposes: [
      e.temperature().withEndpoint('l1'),
      e.voltage().withEndpoint('l2'),
      e.linkquality(),
    ],
    meta: {
        multiEndpoint: true,
        
    },
    endpoint: (device) => {
        return {
            l1: 1, l2: 2,
        };
    },
    
};

Bug in config tool

This made me insane a few times figuring out why the switch is not working.
Output is read wrong when reading the firmware file.
It's a bug right?

ptvo bug

In the .txt file is it saved correctly:

image

UART mode behaviour and multiple status messages

Hi,
I have built the firmware using the following configuration:

uart.ini.txt
I am attempting to interface with this sensor US-100 Ultrasonic Distance Sensor using it serial interface. https://www.adafruit.com/product/4019
I have two main issues.
1st) When using uart commands such as
zigbee2mqtt/deep/set
{"action":[1,80]}

I receive two action responses, one with the reply I expect and another afterwards with and empty action field. Is this expected behaviour?

MQTT publish: topic 'zigbee2mqtt/deep', payload '{"action":"+A","l2":2.97,"l3":29,"l4":855,"linkquality":52,"state_l2":"OFF","temperature_l3":29,"voltage_l2":3}'
MQTT publish: topic 'zigbee2mqtt/deep', payload '{"action":"","l2":2.97,"l3":29,"l4":855,"linkquality":52,"state_l2":"OFF","temperature_l3":29,"voltage_l2":3}'
MQTT publish: topic 'zigbee2mqtt/deep/action', payload '+A'

2nd) I am getting 3 x status messages at the defined interval. When I would normally expect only one.
MQTT publish: topic 'zigbee2mqtt/deep', payload '{"l2":2.97,"l3":29,"l4":1395,"linkquality":81,"state_l2":"OFF","temperature_l3":29,"voltage_l2":3}'
Info MQTT publish: topic 'zigbee2mqtt/deep', payload '{"l2":2.97,"l3":29,"l4":1395,"linkquality":81,"state_l2":"OFF","temperature_l3":29,"voltage_l2":3}'
Info MQTT publish: topic 'zigbee2mqtt/deep', payload '{"l2":2.97,"l3":29,"l4":1455,"linkquality":81,"state_l2":"OFF","temperature_l3":29,"voltage_l2":3}'

Regards,

S

Running on ZigUP hardware

Hey,

I'm trying to get this to work on my ZigUP device(s) (https://github.com/formtapez/ZigUP). The only part that matters to me is the switching of the relay.
Looking at the code of ZigUP this part seems to do the switching:
image

Can this be recreated with this firmware? I tried but failed.

CC2530 + CC2591 will not route after powerloss.

I have flashed my CC2530 + CC2591 with the firmware.

I also have entered my network key inside in the "Firmware Configuration" tool.

When I plug it in and pair my devices everything works, until I remove power from it.
Afterwards I need to repair everything to make it work again....

Is this a bug or as designed?

Feature Request: OTA update ?

Hi !

First of all, thank you for the good job.

I'm probably dreaming awake, but i was wondering if OTA update would be doable for your customizable firmware ?

Temperature+humidity sensor

I've tried to make a DIY zigbee temperature+humidity sensor, using ptvo firmware, but i am unable to get any response from that.
Tried with HTU21, BMP280 and for last resort a DHT22 with proper pullup resistor.

The configuration for DHT22 was the following:

Board type: CC2530
Device type: Router
Manufacturer name: Climax
Model ID: RS_00.00.02.06TC
Update firmware's timestamp : 2021-04-06
Enable watchdog timer: Yes
Status LED: P12 (Inversed), Periodic (every 5 seconds)
Set default reporting interval (s): 60

Output pins:
P04: Output 1, DHT 22, Pull-up

Pairing was succesful, zigbee2mqtt identified the new device:

Zigbee2MQTT:info 2021-04-06 17:33:25: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":[{"dateCode":"20201127","friendly_name":"Coordinator","ieeeAddr":"0x00124b0014d92f63","lastSeen":1617730405615,"networkAddress":0,"softwareBuildID":"zStack12","type":"Coordinator"},{"description":"Temperature & humidity sensor","friendly_name":"0x00124b0021080dcc","ieeeAddr":"0x00124b0021080dcc","lastSeen":1617730394139,"manufacturerID":4447,"manufacturerName":"Climax","model":"RS-23ZBS","modelID":"RS_00.00.02.06TC","networkAddress":22629,"powerSource":"Mains (single phase)","type":"Router","vendor":"Climax"}],"type":"devices"}'

But reporting temperature is not working, error message is the following:

Zigbee2MQTT:error 2021-04-06 17:35:40: Failed to configure '0x00124b0021080dcc', attempt 1 (Error: Bind 0x00124b0021080dcc/1 msTemperatureMeasurement from '0x00124b0014d92f63/1' failed (AREQ - ZDO - bindRsp after 10000ms)
    at Timeout._onTimeout (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/utils/waitress.js:46:35)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7))

Anyone has a clue how to debug the problem, or how to make a working device, using existing zigbee2mqtt templates? I choosed the RS_00.00.02.06TC ID as it reports exactly two values temperature and humidity, nothing else, to avoid confusion.

Sonoff BasicZBR3 - power on after power interupted

I have an issue with mine Sonoff basicZBR3
My goal is that i want my sonoff to power on when there is a power failure

i can do that with this configuration:

Output1 - P07 GPIO Pull-up Inversed
Input1 - P13 GPIO Pull-up "Link to out 1"

this will make the relay to be on after power failure BUT in Home assistant the state will be wrong:
Example: Light is on (Home Assistant will see this is OFF)
Light is off (Home Assistant will see this is ON)

I dont have anything else on my sonoff then just a light
What am i missing? Please advise and help ...

2 message from firmware in z2m

If I push button on input1 (single) I get 2 message with interval 15-90 ms. I need only one messge.. Where is my mistake?

Q: 5 and 8 button remotes

i want to crete my own pcb with cc2530 modules and coin cell battery

can your firmware be used for that? and will it work with deconz/phoscon?

Button remote in Power Safe Mode

Hello PTVO,
Thanks for the awesome firmware.
I recently designed a PCB with a E18 CC2530 by EByte and powered by a CR2032 battery. This works perfectly without PSM enabled. Before I purchase the premium versions to enable PSM and safe on battery life drastically, I would like to ask a couple of questions.

  • How would I go about configuring the firmware for PSM and with single, double, tripple and hold button functions?
  • Do I need to configure an external wakeup?

FYI my firmware has the ability to output 6 buttons.
Thanks in advance!

  • Beau

ADC Measurement (1.15V) with PSM

I have tried the end device version with 1.15V measuring and it works flawless.
Today I bought a license for PSM but now I get every report the same Voltage. It seems to work once but for the next measurement (after 600s) it seems like wakeup time is not enough to measure a new voltage.
I use a CC2530.
Do you need more input?

Trigger functionality is broken on 15/02 release

Hello,
It looks like trigger functionality for GPIO output is broken on 15/02 release of the firmware.
I used this feature with a release I dowloaded previously on oct 31th with success (can not say exactly which version).
Config was :

Board type: CC2530
Device type: Router
Power saving mode (PSM): No
Default reporting interval (s): 300
Output pins:
P13: Output 1, GPIO, External pull-up

MQTT message was send with payload {“trigger”: 200}
Now trigger still works but instead of 200ms it releases the trigger at 20 000ms (x100)
Changelog says something has been changed about trigger on the Christmas edition, perhaps it is related to this ?
Thanks,
Nick.

Read settings from firmware is not working

Dear ptvoinfo,

Thank you very much for your amazing project. I appreciate your kind effort. however, the read setting from firmware button is not working for me. could you help me for that?

Feature request: slower PWM

Hi, thank you for this great firmware.
I'd like to bllink a load (i.e. a LED) at 0.5Hz, 1Hz or 2Hz. Could you please add this feature to the PWM options?

Thank you... and I owe you a cofee!

How the device with firmware communicates (i.e. commands etc)

I'm looking for information on how the information (inputs, outputs, ADC reads, sensors) would communicate with a device like a HA device. Would the cc2530 simply send out information at the set reporting intervals? And the end point would have to figure out the data based on the cluster it receives?

Has someone succeeded in talking to Smartthings or Hubitat and are willing to share the method / code they used?

Thanks
John

Read from firmware button resets certain items

I do this:

I create a firmware with Device type router and Default reporting interval 60.
Save the firmware.
Load the same file with "Read settings from firmware".
Then Default reporting interval is set off and reset to 0 and device type "End device without routing"

I don't think this is the expected behaviour?

bug with the state of ports in sleep mode

In accordance with the documentation, in sleep mode the ports must be set to LOW. This does not happen in version 1.5.1.2. The supply voltage remains on the ports. Both on SDA and SCL ports and others.

DS18B20 does not work in 1.4.9.0

Selected input pin are lowered down, no data exchange.
Corresponding zigbee cluster (000C_AnalogInputBasic) has no value.

Tested on 1.4.9.0, 1.4.8.0

Example configuration

Could you please share us some example configurations like zigbee wall switch or cordinator or rooter etc.?
It would be very useful to understand the model of configuration.

Thank you in advance

CC2531

Hi there. I would really like to flash this to a CC2531 I have lying around as well. Most stable way for me is to be able to enter the network key into the flash file.

It works so good for my CC2530+CC2591. But I want to extend my network with CC2531's.

In sleep mode, the connection is not restored after the coordinator is disconnected

If the power saving mode is activated, and the coordinator disappears from the network for several hours, and then reappears, the PTVO firmware does not restore the connection. I waited more than 2 days, the connection was not restored, the power consumption was 0.5 ua, the module was obviously in deep sleep mode without RTC. It would be correct for the module to try to restore the connection at least occasionally, for example, once an hour, or more often.

Unexpected Inputs behaviour in switch, not linked mode

  1. Input states randomly change its's state accroding to output state within 1-2 hours.
  2. Toggle mode also not working in switch, not linked.

recreate:
Flash E18 chip with firmware, connect to zigbee.
Wait 5-15 min, change some output states to true from zigbee.
Wait 1-2 hours. Inputs with the same numbers change their state to 1 from 0.

Firmware ini attached.
DM1_test.zip

Last version tested 1.4.9.0

Devices offline after two days offline

I have two devices that worked fine after flashing. The day before yesterday I had a short circuit in the line and the fuse went out.
The devices were offline for two days, and today when the line was repaired, they are no longer on the network. I had to flash them again and repair them. Is it ok that after the long break the devices should be paired again?

Vitual binary switches/sensors?

Could it be a possible feature in the future, that UART commands could define Zigbee switches/buttons?

This way outside of Z2M, the device is presenting zigbee switches for commands defined in the firmware.

I'm trying to recreate this but in zigbee with cc2530.
The device has an Rs232 port and I communicate fine with it, but it'd be nice if the device could present each command as a switch.

Read Attribut 0x0055 of cluster 0x0012 bug

Test: configure at least 1 Input as switch as per this exemple (4 configured here)
image

Plug a switch between GND and Pin 23 (P00). You will receive the attribut 0x0055 on EP1 each time you change the switch.

Now read the attribut 0x0055 on EP01 cluster 0012 and the answer is wrongly formatted. Value of the attribut missing:

Capture d’écran 2021-02-01 à 18 48 00

Capture d’écran 2021-02-01 à 18 48 20

Status : 00 -> Ok
Attribut Type 20: which in 8Uint while the norm talks about 16bit type
Value: missing

I get the issue with the sniffer and also with my GW (Zigate).

Could you have a look ?

More inputs available

Hi
Is it possible in a future version to have 9 inputs ? One for the join / reset network dedicated to that and 8 for projects. Like 8 inputs available and one Status Led

CC2531 as router will not pair with ConBee II coordinator in ZHA

I have failed to get my CC2531 USB stick to pair as a router. I tried all the firmwares listed on this page: https://ptvo.info/cc2531-based-router-firmware-136/

I flash it using:

objcopy --gap-fill 0xFF --pad-to 0x040000 -I ihex router-cc2531-diag-usb.hex -O binary CC2531-router.bin
CCLoader_x86_64.exe 5 CC2531-router.bin 0

through my ESP8266 (as I don't have a programmer).

I also tried your configurator tool, where I left basically everything default. Still nothing.

The closest I've gotten is:

Serial port:

15:16:27.261 -> PANID:4DA3,Ch:15,Join:0
15:16:27.261 -> 
15:16:27.261 -> PANID:4DA3,Ch:15,Join:0
15:16:27.261 -> PANID:7B38,Ch:25,Join:0
15:16:27.261 -> 

ZHA:

[0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [60, <Bool.false: 0>]
[0xe8bf:1:0x0300] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=62 command_id=Command.Report_Attributes>
[0xe8bf:1:0x0300] ZCL request 0x000a: [[Attribute(attrid=3, value=<TypeValue type=uint16_t, value=30138>)]]
[0xe8bf:1:0x0300] Attribute report received: current_x=30138
[0xe8bf:1:0x0300] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=63 command_id=Command.Report_Attributes>
[0xe8bf:1:0x0300] ZCL request 0x000a: [[Attribute(attrid=4, value=<TypeValue type=uint16_t, value=26909>)]]
[0xe8bf:1:0x0300] Attribute report received: current_y=26909
[0xe8bf:1:0x0300] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=64 command_id=Command.Report_Attributes>
[0xe8bf:1:0x0300] ZCL request 0x000a: [[Attribute(attrid=7, value=<TypeValue type=uint16_t, value=250>)]]
[0xe8bf:1:0x0300] Attribute report received: color_temperature=250
[0xe8bf:1:0x0008] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=65 command_id=Command.Report_Attributes>
[0xe8bf:1:0x0008] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=uint8_t, value=128>)]]
[0xe8bf:1:0x0008] Attribute report received: current_level=128
[59583:1:0x0008]: received attribute: 0 update with value: 128

nothing ever seems to happen. Am I supposed to see the CC2531 router in ZHA, or does it just "magically" pair without any visuals?

I tried joining the Telegram, but apparently it's in Russian, and it seems like I got banned for saying hello.

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.