RainerStaude / hass-becker-component-plus-pybecker

A native home assistant component to control becker RF shutters with a Becker Centronic USB Stick.
MIT License
44 stars 3 forks source link

Looks very good #5

Closed NorbertBauer closed 2 years ago

NorbertBauer commented 2 years ago

Hi Rainer

This looks very good and also worked very quick, but i have 2 questions:

First: I had already paired my devices by using the cnetronic-py from ole and it worked from terminal directly. Then I copied the db to the location, where your component will reuse it. But now only 2 Covers work and the strangest thing is, that sending a command to one Cover a second cover also gets the same command.

Second: Do you also have implemented the "Reset Counter" function from ole? https://github.com/ole1986/centronic-py/blob/master/TECHNICAL.md


assuming the channel unit "2" has been used reset the increment to zero minus 5 ./centronic-stick.py --mod 1737c:65530:1

repeat HALT command 3 times to force reset the blinds incremental for i in {1..3}; do ./centronic-stick.py --send HALT --channel 2:1; done

reset the increment to zero ./centronic-stick.py --mod 1737c:0:1


Hopefully you can follow my questions. If you are german, than maybe I can explain it better in german

greets Norbert

RainerStaude commented 2 years ago

Hi Norbert,

Please enable debug mode - see README for instructions. Restart and have a look at the home-assistant.log. If there are any strange things in there let me know.

Please check your configuration.yaml. If you configured by mistake channel: "15" instead of channel : "1:5" this might lead to the described behavior.

There is no need to copy the db. I have implemented the "Reset Counter" function whenever there is a "unit:channel" configured in configuration.yaml but not present in the db file. Therefore it should be no issue if you loose your db file. The db file will be put into the config folder (and no longer stored in the pybecker folder).

Let me know if you have further issues.

NorbertBauer commented 2 years ago

Hi Rainer

Thanks for your quick reply. debug mode was already on, and it did not show any strange things.

but your hint, that you automatically do the counter-reset did the trick. I deleted my db and after a reboot, a new one was created and then all units and channels worked.

Thanks for your great work

NorbertBauer commented 2 years ago

Sorry, nearly all looks good. One Unit/Channel does control 2 covers at the same time.

But the Log looks normal: 2022-03-04 14:41:25 DEBUG (Thread-4) [custom_components.becker.pybecker.becker_helper] Sent packet: unit_id: 1737C, channel: 2, command: UP, argument: 0, packet: b'\x020000000002010B00200000001737C0210102002083\x03' 2022-03-04 14:41:40 DEBUG (MainThread) [custom_components.becker.cover] Fenster Stiege is travelling from position 0 to 100 in 0.0 seconds 2022-03-04 14:41:40 DEBUG (MainThread) [custom_components.becker.cover] Fenster Stiege update ha-state now 2022-03-04 14:41:40 DEBUG (Thread-4) [custom_components.becker.pybecker.becker_helper] Sent packet: unit_id: 1737C, channel: 1, command: UP, argument: 0, packet: b'\x020000000002010B00210000001737C0210101002083\x03' 2022-03-04 14:42:04 DEBUG (MainThread) [custom_components.becker.cover] Fenster Stiege is travelling from position 100 to 0 in 0.0 seconds 2022-03-04 14:42:04 DEBUG (MainThread) [custom_components.becker.cover] Fenster Stiege update ha-state now 2022-03-04 14:42:04 DEBUG (Thread-4) [custom_components.becker.pybecker.becker_helper] Sent packet: unit_id: 1737C, channel: 1, command: DOWN, argument: 0, packet: b'\x020000000002010B00220000001737C0210101004062\x03'

It did work in the past already, but maybe I will try to repair all units/channels

RainerStaude commented 2 years ago

Maybe you could send the Becker part of your configuration.yaml as well.

NorbertBauer commented 2 years ago

cover:

NorbertBauer commented 2 years ago

channel "1" and channel "2:1" are triggered at the same time, when i send the command to "2:1"

RainerStaude commented 2 years ago

Looks good so far. I do not see any wrong things here. Could you send the DEBUG log for channel 1 to verify, that it uses the right unit_id and channel. Could it be, that kueche has both: 1:1 and 2:1 trained? If so, you just need to reset all remotes for kueche beside your master remote (Alle Sender löschen (außer Mastersender)) and train channel 1 again.

NorbertBauer commented 2 years ago

No, it was never trained on channel 2, but maybe i will try again with the pybecker from Ole, if there is maybe something wrong paired.

2022-03-04 14:40:47 DEBUG (MainThread) [custom_components.becker.cover] Rollo Kueche is travelling from position 100 to 0 in 0.0 seconds 2022-03-04 14:40:47 DEBUG (MainThread) [custom_components.becker.cover] Rollo Kueche update ha-state now 2022-03-04 14:40:47 DEBUG (Thread-4) [custom_components.becker.pybecker.becker_helper] Sent packet: unit_id: 1737B, channel: 1, command: DOWN, argument: 0, packet: b'\x020000000002010B00220000001737B0210101004072\x03' 2022-03-04 14:41:01 DEBUG (MainThread) [custom_components.becker.cover] Rollo Kueche stopped at position 50 2022-03-04 14:41:01 DEBUG (MainThread) [custom_components.becker.cover] Rollo Kueche update ha-state now 2022-03-04 14:41:01 DEBUG (Thread-4) [custom_components.becker.pybecker.becker_helper] Sent packet: unit_id: 1737B, channel: 1, command: HALT, argument: 0, packet: b'\x020000000002010B00230000001737B02101010010A1\x03' 2022-03-04 14:41:03 DEBUG (MainThread) [custom_components.becker.cover] Rollo Kueche is travelling from position 50 to 100 in 0.0 seconds 2022-03-04 14:41:03 DEBUG (MainThread) [custom_components.becker.cover] Rollo Kueche update ha-state now 2022-03-04 14:41:03 DEBUG (Thread-4) [custom_components.becker.pybecker.becker_helper] Sent packet: unit_id: 1737B, channel: 1, command: UP, argument: 0, packet: b'\x020000000002010B00240000001737B0210101002090\x03'

RainerStaude commented 2 years ago

Anyway you could use centronic-stick.py to verify the behavior. You just need to send about 5 HALT commands within a few seconds to sync the counter in the db file each time you switch in between.

NorbertBauer commented 2 years ago

how can I do it with the centronic-stick.py?

RainerStaude commented 2 years ago

kueche looks good as well. I don't see any mistake in the data send.

I would recommend to follow "Alle Sender löschen (außer Mastersender)" and perform the training for kueche channel 1 again. You should be able to perform this without access to your cover motor by using the Mastersender.

RainerStaude commented 2 years ago

Do you require centronic-stick.py for Windows? I also used my Windows notebook with the centronic stick and centronic-stick.py for training 😉

NorbertBauer commented 2 years ago

ok, didn't know that there is one for windows. I always trained the stick directly on the RPi with Home Assistant

RainerStaude commented 2 years ago

There's no one for windows available. But there is only a small change necessary to make it work for windows as well. I will provide the change later

RainerStaude commented 2 years ago

I was wrong with centronic-stick.py. I used pybecker for training. The latest version 1.1.0 runs on windows. However you might need to send a TRAIN command just to add the unit to the database. Then send about 5 HALT commands to sync the counter.

RainerStaude commented 2 years ago

Is it now working?

NorbertBauer commented 2 years ago

I have not tried out for now.

NorbertBauer commented 2 years ago

Hi

I have cleared all senders from 1:1 and paired the centronic stick and I think it works now. Hopefully I have tested all combinations and orders of sending commands to the different covers. But I think so.

That does the "remote_id" offer in funcionality? Should HA then recognise, when a cover gets closed/opened by the original sender instead by HA?

RainerStaude commented 2 years ago

Hi Norbert, Good to know that's working now. Yes, with remote_id HA will receive commands and gets closed/open from your original sender as well. Don't forget to set the travelling_time. With this you will be able to track and set the position of the cover. For example set cover position to 50% when sun is shining and room temperature is too hot.

NorbertBauer commented 2 years ago

Thanks for that info. But I think the status on HA does not change, when I open/close the covers with the original remote

Holen Sie sich Outlook für iOShttps://aka.ms/o0ukef


Von: Rainer @.> Gesendet: Tuesday, March 8, 2022 4:08:23 PM An: RainerStaude/hass-becker-component-plus-pybecker @.> Cc: NorbertBauer @.>; State change @.> Betreff: Re: [RainerStaude/hass-becker-component-plus-pybecker] Looks very good (Issue #5)

Hi Norbert, Good to know that's working now. Yes, with remote_id HA will receive commands and gets closed/open from your original sender. Don't forget to set the travelling_time. With this you will be able to track and set the position of the cover. For example set cover position to 50% when sun is shining and room temperature is too hot.

— Reply to this email directly, view it on GitHubhttps://github.com/RainerStaude/hass-becker-component-plus-pybecker/issues/5#issuecomment-1061877888, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKOR7FLWDM5BEAUDQKIME43U65UOPANCNFSM5PXKC4LA. You are receiving this because you modified the open/close state.Message ID: @.***>

RainerStaude commented 2 years ago

Do you see the received packet whenever you press a key at your original remote in the log?

NorbertBauer commented 2 years ago

I have seen it in the past where I got the id’s from, but now there no log entries anymore

RainerStaude commented 2 years ago

Good to know that it worked at some time.

I guess 3. Reboot HA might help. For debugging purposes maybe the result from 1 and 2 is helpful als well.

  1. Verify that sending commands works from HA to cover.
  2. Ensure that you try with a remote close to the Centronic USB Stick (to ensure there is no issue caused by interference).
  3. Reboot HA (e.g. if you unplugged the USB Stick the receiving instance might got disconnected). This is always a good idea.
  4. If you use more than one wireless USB Stick add 1m USB cable to each of them. Place each wireless USB Stick away from each other and away from the Raspi to avoid interference.