GithubHelp home page GithubHelp logo

nRF24L01 support about feature-requests HOT 18 OPEN

esphome avatar esphome commented on June 14, 2024 14
nRF24L01 support

from feature-requests.

Comments (18)

jhogendorn avatar jhogendorn commented on June 14, 2024 4

I need nRF24L01 support for integrating a device that uses a remote control on 2.4GHz. I have captured the signals and I can send it using HackRF, but for integrating with home assistant would be nice to have this support.

I am also keen to get this use case working

from feature-requests.

diogosalazar avatar diogosalazar commented on June 14, 2024 2

The mysensors/MySensors project handles communication between nrF24l01 modules and seems to be able to register devices dynamically.
ESP8266 is supported as a gateway.

Would it make sense to integrate with that project instead of implementing from scratch?

from feature-requests.

nekromant avatar nekromant commented on June 14, 2024 1

@glmnet I just learned about mysensors from this thread and rigged up a test mesh based on my older projects. (Yay, they're no longer sitting in the attic!). So far it looks like the best we have for nRF24L01. As for being outdated - I doubt that. nRF24L01 still provides better battery life for devices like leak sensors, compared to esp8266 and doesn't have a severely over-engineered std, like BLE. As for esphome, I think the only thing we can add - integrating a mysensors gateway in a few lines of yaml. For some cases this may be useful.

from feature-requests.

nekromant avatar nekromant commented on June 14, 2024 1

The only thing I can think of - combining esphome node and mysensors gateway.

See: https://github.com/mannkind/ESPHomeMySensorsGatewayShim

Thanks a ton! That's precisely what I've been looking for!

from feature-requests.

OttoWinter avatar OttoWinter commented on June 14, 2024

So in principle, this would be awesome. But for one part I'm so certain:

Ideally, esphomelib would not need to define a list of sensors ahead of time, but simply reformat and pass the messages through to MQTT.

I mean I do understand the usability aspect of that, but the backend sensor should not know about the front-end (here MQTT). esphomelib is purposefully not built in a way to make it depend on MQTT and in the future it might also support other frontends. For example, one such frontend is already the web server.

One way this could still not make usability too bad I hope is with how I recently did it with the remote_receiver. The remote receiver can listen on any pin for IR/433MHz/similar for any sequence of encoded data. For example, it can listen to the IR codes sent by a TV remote. Of course all these codes have to be learned first, that's why there are "dumpers" that just dump any received IR code in the logs together with their decoded values. The user can then just copy+paste this into their configuration and they're already done.

This way, the backend can expose individual binary sensors without ever knowing how the frontend handles them. In this case with these packets you have there, the same thing could be done with sensors, with the name identifying them or however the protocol works.

from feature-requests.

brandond avatar brandond commented on June 14, 2024

Is there any reason that sensors cannot be dynamically registered? I know that right now, pretty much everything is added during app setup. Would it break any current assumptions if sensors are added or removed dynamically? Thinking something like adding new sensors as they are discovered via broadcast messages, or removing/offlining them if they miss a few heartbeat intervals.

from feature-requests.

OttoWinter avatar OttoWinter commented on June 14, 2024

Theoretically it's possible to register them dynamically, you would only need to handle their setup lifecycle (with setup_()) manually.

Removing them dynamically too would probably be a bit more difficult, as there are many inter-object dependencies like callbacks that could break if a component on the heap is manually deleted.

But I would say a big drawback of such a solution would be that these dynamically created sensors would pretty much be inaccessible from automations and triggers.

from feature-requests.

nekromant avatar nekromant commented on June 14, 2024

Hm, this would be useful. I happen to have my own pure-C optimized library for nrf24l01 (basically @maniacbug 's arduino ported to pure C. I'll see if it compiles for esp8266 (it should). But it's pretty lowlevel. @OttoWinter are you interested?

from feature-requests.

nekromant avatar nekromant commented on June 14, 2024

As far as I got the nRF24L01 part, we have a huge bunch of hardware and stacks:

  • Dumb sensors/boards using simple protocols. As simple as send/receive a predefined payload. (Should be easiest).
  • rf24mesh devices. rf24mesh doesn't specify any protocol, it's just read/write, no device method discovery/enumeration.
  • mysensors that @diogosalazar mentioned. (That one is new to me, I'll have to check it out)
  • My own libaura RPC over nRF24L01 ( https://gitlab.com/ncrmnt/aura-transport-rf24 ).

Some nodes have encryption (e.g. car immobilizer tokens), and that's a whole other layer of weirdness. I really want to help out with this task and have quite a lot of experience with nRF24L01 (non-arduino, pure C), but I don't know the inner workings of esphome good enough.

from feature-requests.

glmnet avatar glmnet commented on June 14, 2024

I discovered ESPHome because I hated MySensors, their code quality seems ok, but these things communicating never was reliable for me, probably I was doing something wrong, I don't know.

As for today I believe this FR is outdated, I don't see need for dynamic sensor creation, though it is possible, in fact it is done already, you can just pick the message analyze it and push to any template sensor / binary sensor / cover... whatever, if that is what you need.

@brandond What ended happening here?

from feature-requests.

glmnet avatar glmnet commented on June 14, 2024

It’s a great platform. It did not work for me.

I just don’t know why would you use it within an esphome controller node. They provide a esp8266 gateway. That is you can connect hass to it then to my sensors network. It’s fully supported and documented.

from feature-requests.

nekromant avatar nekromant commented on June 14, 2024

@glmnet I guess you're right. The only thing I can think of - combining esphome node and mysensors gateway. As for non-mysensors protocols - perhaps nrf24l01 beacons and presense sensors come to my mind, but still with something like mysensors around, the whole idea of integrating nrf24l01 into esphome sounds like a waste of time (

from feature-requests.

Niorix avatar Niorix commented on June 14, 2024

Any news? I have an esphome-based LED dimmer and I would have controlled it with a touch R11 remote controler (https://aliexpress.ru/wholesale?catid=&Searchtext=R11%20Remote). It's apparently uses 2.4. NRF. Therefore, I cannot directly connect him with Esphome((

from feature-requests.

kluszczyn avatar kluszczyn commented on June 14, 2024

The only thing I can think of - combining esphome node and mysensors gateway.

See: https://github.com/mannkind/ESPHomeMySensorsGatewayShim

from feature-requests.

otmezger avatar otmezger commented on June 14, 2024

I would love to be able to write yaml and leverage a nrf24l01 wireless network. let esphome do all the job ;-)

from feature-requests.

jamesmyatt avatar jamesmyatt commented on June 14, 2024

I wonder if this could be modelled on bluetooth_proxy and BTHome .

from feature-requests.

3esmit avatar 3esmit commented on June 14, 2024

I need nRF24L01 support for integrating a device that uses a remote control on 2.4GHz. I have captured the signals and I can send it using HackRF, but for integrating with home assistant would be nice to have this support.

from feature-requests.

zackfuchtel avatar zackfuchtel commented on June 14, 2024

[x] AOL

from feature-requests.

Related Issues (20)

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.