-
-
Notifications
You must be signed in to change notification settings - Fork 28.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Frequent trouble with EnOcean switches #71935
Comments
enocean documentation |
Hey there @bdurrer, mind taking a look at this issue as it has been labeled with an integration ( |
Sorry to drag you in here @rhadamantys as I'm sure that's not protocol, but I noticed you worked on the EnOcean integration yesterday while the listed code owner seems to be inactive. Could you please take a look into this? |
Hello OlwinFroon, according to the EnOcean EEP spec https://www.enocean-alliance.org/wp-content/uploads/2017/05/EnOcean_Equipment_Profiles_EEP_v2.6.7_public.pdf, page 15 & 16, the value 31 means, that there is a valid "second" action. Do you have an idea, what that second action could be? Unfortunately, I don't have that switch, so I can't test that. Alternatively, you could only check bit DB0.4 |
Thanks for joining! That would be DB0.0, right? Those switches are not paired with anything. The idea is to just intercept the raw telegrams and let HA do all the work. Whatever, checking DB0.4 seems right and would surely do the trick. I'm not equipped to do it myself, so I'd ask you to add this gimmick to the code which would fix the "pressed" return value. Pretty please with cream and a cherry on top :) |
Oh wait, disregard, I've been reading up on that file you linked me. Thanks for that! The telegram consists of
So packet.data[1] (also called "action" in binary_sensor.py) is what EnOcean lingo refers to as "datafield", packet.data[6] is "statusfield". Datafield contains information about the keys tapped. The script picks valid values of 0x70, 0x50, 0x30, 0x10, 0x37, 0x15 and translates them into "which" and "onoff" return values while it ignores the also valid value of 0x00 (= no key tapped = released). Statusfield contains information about how to interpret datafield (bit 2H5=T21, bit 2H4=NU) and ... repeater count! (bits 2H3..2H0=RC, see page 11). The quick and easy way to make this work would be to circumvent the rather restrictive (and, in this case, useless) interpretation into "pushed", "which" and "onoff" by simply adding datafield and statusfield to the event response and let the user parse the result. |
I was thinking about that, too. there are several enumerations in DB0 (R1, EB, R2, SA). I think it makes most sense to extract the enum values and send them in the event data. Can you post some EnOcean telegrams when you push, release and hold the different buttons? |
Sure. F6 RPS Telegrams coming up. I've relocated HA's EnOcean stick and disabled the repeater. As I hoped, everything works now. No more 0x21 and 0x31 statusfields. Her goes: 1 rocker wall switch ['0xf6', '0x50', '0xXX', '0xXX', '0xXX', '0xXX', '0x30'] tapped "down" (light on) 2-rocker wall switch: There is no hold telegram for those. |
I also have a NodOn Soft Button which triggers button_event messages. EEP D2-03-0A, sends VLD telegrams with 2 bytes payload. ['0xd2', '0x58', '0x1', '0xXX', '0XX', '0xXX', '0xXX', '0x0'] single tap Byte 1 (0x58) is the current battery level in percent. |
Thanks for the data. It looks to me like we should convert the d2 Sensor to make it compatible to f6. |
Heh, possibly. I wouldn't want to open THAT can of worms right now, though. I would be more than happy with F6' "datafield" and "statusfield" added to the event and the repeater count filtered out. That would be a 5 minute fix and allow to integrate all kinds of F6 switches on the event handling end of HA, without changing much of the integration. |
I have a problem. Even if I did the change, I have no possibility to test it. So how should we proceed? |
I'd be interested enough to set up a test environment involving an own server and enocean stick, but I need to get my hands on the required hardware, first.
I guess it'd be a plain vanilla setup except I'd check the beta channel box?
But the main problem: I slipped a disk and won't be able to do anything useful for the next 2 or 3 weeks ...
Am 27. Mai 2022 20:08:28 MESZ schrieb rhadamantys ***@***.***>:
I have a problem. Even if I did the change, I have no possibility to test it. So how should we proceed?
--
Reply to this email directly or view it on GitHub:
#71935 (comment)
You are receiving this because you authored the thread.
Message ID: ***@***.***>
--
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
|
I hope you feel better soon! Anyway, whenever you are ready, I could commit a fix on my fork that you could test... |
@rhadamantys sorry to hijack the thread but I am starting to build my home automation with home assistant and enocean. Do you plan to integrate rollershutter actuators like the FSB14 or may be able to help with this? |
Back on deck. Ish, at least. I've prepped a Raspberry for the test environment and expect my EnOcean test stick to be delivered within 48 hrs. I'm not entirely sure how to set this up, though, since this test system won't use the official HA release but rather your github version. |
@rhadamantys ready-ish when you are :) |
@OlwinFroon: I haven't forgotten you. I am still busy with another issue, that I am fixing. I would like to finish that PR first. |
Of course, no hurry.
Thank you!
Am 1. August 2022 04:22:41 MESZ schrieb rhadamantys ***@***.***>:
***@***.***: I haven't forgotten you. I am still busy with another issue, that I am fixing. I would like to finish that PR first.
--
Reply to this email directly or view it on GitHub:
#71935 (comment)
You are receiving this because you were mentioned.
Message ID: ***@***.***>
--
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
|
There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. |
The problem
I have a problem with my EnOcean switches (Eltako 1/2 rocker wall switch F1T65/F2T65, EEP F6-01-01/F6-02-01) not always working as intended, so I used the events and log viewers to pinpoint the issue.
Usually, those switches send a status byte "0x30" (button pressed) or "0x20" (button released) which the integration translates into "pushed: 1" or respectively "pushed: 0". If it works like that, everything is fine.
For some reason, my buttons frequently send a "0x31" or "0x21" instead, which results in "pushed: null".
I have no idea where that extra bit comes from, and it happens with all my switches regardless.
What version of Home Assistant Core has the issue?
2022.5.4
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
EnOcean
Link to integration documentation on our website
https://www.home-assistant.io/integrations/enocean/
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
Like I said, I have no idea where that extra bit comes from or what it means.
Point is, it doesn't work and sometimes I have to tap a switch a dozen times until it finally decides to cooperate.
Worst case my wife will have me replace all those switches with regular old school mechanical crap again D:
Who wants that, eh?
So ... I'd appreciate any hints on how to get rid of that extra bit.
Also, I've perused the binary_sensor.py source code file of the EnOcean integration.
It'd help if somebody could "fix" it by either filtering that bit out or alternatively add 0x21 and 0x31 to the list of valid actions.
Also, it would be hugely useful to add the status byte to the button_pressed event.
Maybe even the complete received packet?
The text was updated successfully, but these errors were encountered: