I have a couple of old nexa devices. I know there are solutions to make a 433 gateway but it makes more sense to use what I have lying around. Will try to control an old nexa pet-910 remote with an ESP and ESPhome.
Will adding a transitor to bridge each button make sense, or is it an even easier way to do this?
I can’t read any info on the IC, but have tried a little reverse engineering to figure out how it works.
Going to try soldering wires directly to the ICso I can breadboard the thing
I completed this little project, and it works well. My Nexa PET-910 is now controlled via HA and ESPHome.
For the most part, this was a learning experiment. However I hope the teqnique can be useful. I’m phasing out my nexa controls, but this will extend the lifespan of my remaining hardware.
To I used a small screwdriver to gently scrape and expose the copper around some the holes in the 910 board, so I could solder wires on. Stripped a little bit of cat5 cables, and those wires worked great.
Breadboarded the thing first to check that it worked before soldering it to a protoboard. Please ignore the horrible solder job. Bad planning and my first ever soldered protoboard has to take the blame.
Attaching some pictures and schematics. No guaranties on the schematics being without errors. Used 220Ω resistors and BC337 NPN’s. Basicly it’s just powering the board with the ESP32 and connecting the on and off with one of the channels, or ch1 or ch2 to gnd for all on(No button on the remote, but the function is there) and all off.
My YAML for ESPHome:
output:
- platform: gpio
pin: 26
id: "on_pin"
- platform: gpio
pin: 27
id: "off_pin"
- platform: gpio
pin: 25
id: "ch1"
- platform: gpio
pin: 33
id: "ch2"
- platform: gpio
pin: 32
id: "ch3"
- platform: gpio
pin: 16
id: "All_on"
- platform: gpio
pin: 17
id: "All_off"
switch:
#ch1
- platform: output
name: "CH1_on"
id: "ch1on"
output: 'on_pin'
on_turn_on:
- output.turn_on: ch1
- output.turn_on: on_pin
- delay: 2000ms
- output.turn_off: ch1
- output.turn_off: on_pin
- switch.turn_off: ch1on
- platform: output
name: "CH1_off"
id: "ch1off"
output: 'off_pin'
on_turn_on:
- output.turn_on: ch1
- output.turn_on: off_pin
- delay: 2000ms
- output.turn_off: ch1
- output.turn_off: off_pin
- switch.turn_off: ch1off
#ch2
- platform: output
name: "CH2_on"
id: "ch2on"
output: 'on_pin'
on_turn_on:
- output.turn_on: ch2
- output.turn_on: on_pin
- delay: 2000ms
- output.turn_off: ch2
- output.turn_off: on_pin
- switch.turn_off: ch2on
- platform: output
name: "CH2_off"
id: "ch2off"
output: 'off_pin'
on_turn_on:
- output.turn_on: ch2
- output.turn_on: off_pin
- delay: 2000ms
- output.turn_off: ch2
- output.turn_off: off_pin
- switch.turn_off: ch2off
#ch3
- platform: output
name: "CH3_on"
id: "ch3on"
output: 'on_pin'
on_turn_on:
- output.turn_on: ch3
- output.turn_on: on_pin
- delay: 2000ms
- output.turn_off: ch3
- output.turn_off: on_pin
- switch.turn_off: ch3on
- platform: output
name: "CH3_off"
id: "ch3off"
output: 'off_pin'
on_turn_on:
- output.turn_on: ch3
- output.turn_on: off_pin
- delay: 2000ms
- output.turn_off: ch3
- output.turn_off: off_pin
- switch.turn_off: ch3off
#All
- platform: output
name: 'All_on'
id: "chaon"
output: 'All_on'
on_turn_on:
- output.turn_on: ch1
- output.turn_on: All_on
- delay: 2000ms
- output.turn_off: ch1
- output.turn_off: All_on
- switch.turn_off: chaon
- platform: output
name: "All_off"
id: "chaoff"
output: 'All_off'
on_turn_on:
- output.turn_on: ch2
- output.turn_on: All_off
- delay: 2000ms
- output.turn_off: ch2
- output.turn_off: All_off
- switch.turn_off: chaoff
If a new switch is activated before a command is finished, the second one will not be sent. It’s probably possible to fix this, but I haven’t put any effort in trying to figure it out.