FutureTense / lock-manager

Home Assistant Lock Manager
54 stars 19 forks source link

ISSUE: Code slots not updating pin #55

Closed firstof9 closed 4 years ago

firstof9 commented 4 years ago

Describe the bug Code slot are not updating the PIN for some Schalge locks

nweave03 commented 4 years ago

it'll take a bit for me to exclude it, factory reset it and get it back in. I'll go try doing that.

nweave03 commented 4 years ago

although there is one point i was thinking. We may not be able to verify exactly which code is in a slot, we can verify that a code is in a slot. Which is definitely more than nothing.

firstof9 commented 4 years ago

i didn't toggle that, but it does make me wonder if this is a configuration option or just normal expectation.

This is an attempt to have the user_codes refresh and report in. That's a new service call, clearly it didn't work.

although there is one point i was thinking. We may not be able to verify exactly which code is in a slot, we can verify that a code is in a slot. Which is definitely more than nothing.

unknown = slot in use, kinda better than nothing lol

nweave03 commented 4 years ago

i didn't toggle that, but it does make me wonder if this is a configuration option or just normal expectation.

This is an attempt to have the user_codes refresh and report in. That's a new service call, clearly it didn't work.

I'm just wondering if the encryption flag being set means the lock hides the codes. Early zwave devices didn't have uniform expectations (still don't but it's getting better)

although there is one point i was thinking. We may not be able to verify exactly which code is in a slot, we can verify that a code is in a slot. Which is definitely more than nothing.

unknown = slot in use, kinda better than nothing lol

Exactly. Mix that with some sort of manual re-sync button and at least for me, i'm in business. I tested one of the codes listed as unknown, it worked fine. The code correctly determines when a code is unset, so in this case ******** just means You need to manually verify that this is correct

nweave03 commented 4 years ago

okay, so after a factory reset, things are a little different. I am not seeing all of the code slots being reported anymore (I also fell back to 0.38 since the branch we were working on isn't in an expected working state)

2020-10-30 23:11:43 DEBUG (SyncWorker_7) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0 2020-10-30 23:11:43 DEBUG (SyncWorker_7) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False 2020-10-30 23:11:43 WARNING (SyncWorker_7) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5' 2020-10-30 23:11:43 WARNING (SyncWorker_32) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4' 2020-10-30 23:11:43 WARNING (SyncWorker_36) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3' 2020-10-30 23:11:43 WARNING (SyncWorker_37) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2' 2020-10-30 23:11:43 WARNING (SyncWorker_12) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

nweave03 commented 4 years ago

and now the locks are unavailable instead of unknown

image

firstof9 commented 4 years ago

Ya Unavailable means the sensor has no value.

nweave03 commented 4 years ago

is there a way to get the system to just attempt to send the set code command?

nweave03 commented 4 years ago

this might be beyond the scope here, but I think I remember dealing with something like this before. I think code_slot_255 is set to the number of active usercodes (looking as the old logs, one can see it set to 30, with 30 slots being then reported). Unfortunately I have not yet succeeded in getting the system to attempt to set code_slot_255 to any actual value

nweave03 commented 4 years ago

I can always have wink re-initialize the lock with wink and it will set this correctly. But i do remember encountering something like this at my work. it looks like from the HA docs that it will not ever attempt to set code slot 255, as it only see's 1-254 as valid values [https://www.home-assistant.io/integrations/zwave/]. I'm not exactly sure what to do here. is it possible to get the lock-manager to just assume ******** is the correct lock code and add a button to resend the set lock code command?

firstof9 commented 4 years ago

You cannot set the 255 value it's readonly it just reports the max code_slots your lock supports, we're not using that, nor does HA.

With the slots being reported as Unavailable I believe @FutureTense has the automations ignoring that and not attempting to re-send the codes/clear the slots.

nweave03 commented 4 years ago

That makes sense, but that still implies there is some method to set the number of lock codes for these locks. I'm not sure what that is.

firstof9 commented 4 years ago

That'd be via firmware

nweave03 commented 4 years ago

What do you mean via firmware? If I connect it to wink hub, it will initialize and set the lock codes just fine

firstof9 commented 4 years ago

Setting locks codes isn't a problem, it's the reading that's being problematic, specifically for the BE469 lock.

nweave03 commented 4 years ago

okay so interestingly, i reconnected the lock I factory reset back to wink. Set two new lock codes, verified they were present and working, but the logs still don't show that there are any lock codes set, despite me being able to prove 4 are present (the 2 from factory reset + the 2 new ones added during its brief time on wink).

2020-10-31 05:09:03 DEBUG (SyncWorker_30) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-10-31 05:09:03 DEBUG (SyncWorker_30) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-10-31 05:09:03 WARNING (SyncWorker_30) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-10-31 05:09:03 WARNING (SyncWorker_1) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-10-31 05:09:03 WARNING (SyncWorker_31) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-10-31 05:09:03 WARNING (SyncWorker_12) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-10-31 05:09:03 WARNING (SyncWorker_22) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

I would also say, if you can just tell me where the lock code validation takes place I will simply change the code for my own personal instance to make ******** always count as correct. All i need then is another way to re-send the set command in case I go and physically check the code and it isn't working right

firstof9 commented 4 years ago

Toggle the allow_automations off for now, I'll converse with FutureTense to develop a work around for this. Likely have something tomorrow to get this sorted.

firstof9 commented 4 years ago

Apparently it affects ozw users as well, and apparently there's a lot of you BE469 users out there 😛

nweave03 commented 4 years ago

Will do, also @firstof9 just wanted to thank you for sticking with me on this. I realize that working through issues on one specific lock probably isn't that interesting or fun, but it does make a big deal to me, for whatever that's worth

firstof9 commented 4 years ago

I reduced the refresh time on the sensor to 1 second if anyone would like to give this a try and are bored.

https://github.com/firstof9/lock-manager/tree/zwave-code-refresh @nweave03 or @mew1033

nweave03 commented 4 years ago

I've updated to the new code base, but I'm not sure if my current lock state is capable of helping anymore

2020-10-31 20:08:33 DEBUG (MainThread) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-10-31 20:08:33 DEBUG (MainThread) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-10-31 20:08:33 WARNING (MainThread) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-10-31 20:08:33 WARNING (MainThread) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-10-31 20:08:33 WARNING (MainThread) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-10-31 20:08:33 WARNING (MainThread) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-10-31 20:08:33 WARNING (MainThread) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

The factory reset looks to have reset the number of lock codes. The wink network did allow me to set lock codes, but appears to have left the number of reported codes unchanged. I am not sure how it originally set that number to 30. That is a bit of an assumption here, I never updated the firmware, and there are lots of people saying on these old locks that it is not possible to do that [https://forum.universal-devices.com/topic/23841-schlage-connect-be469-firmware-upgrade/]. Which kinda implies that wink did something at some point to do that. Either that or the factory reset doesn't actually do a complete factory reset or what I had when I originally purchased it had some setup to it. All I am certain about is that I never updated it personally, nor told wink to update it, and it likely doesn't support that either. I think there may be some unlisted vendor command to do this, which is going to be difficult to discover without a contact at schlage. Based on what you've said, I think that without that number being reported as above 0, it won't be able to process even the ******** i used to be getting. I think I unintentionally borked it while trying to debug it. Live and learn.

Also tried manually adding a lock code (touchscreen programming), but that didn't change the number reported.

firstof9 commented 4 years ago

I wouldn't worry about it.

Still working on a tweak for this issue.

firstof9 commented 4 years ago

Ok I have a potential workaround that should not hammer the locks. https://github.com/firstof9/lock-manager/tree/be469-workaround

Don't forget if you're trying this to lock-manager.generate_package the scripts and reload automations, binary_sensors, scripts from Server Controls in HA.

firstof9 commented 4 years ago

I just updated the branch with an even better work around that only tweaks the sensor and reverts my changes to the script/automation.

https://github.com/firstof9/lock-manager/tree/be469-workaround

nweave03 commented 4 years ago

I ran into an issue with lock-manager.generate_package

2020-11-01 03:23:57 DEBUG (MainThread) [custom_components.lock-manager] DEBUG: <ServiceCall lock-manager.generate_package (c:f7c6b6291c2311ebbf7fd72060d8c76f)>
2020-11-01 03:23:57 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.139802572795136] 'lockname'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 138, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1335, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1370, in _execute_service
    await handler.func(service_call)
  File "/config/custom_components/lock-manager/__init__.py", line 205, in _generate_package
    name = service.data[ATTR_NAME]
KeyError: 'lockname'

So I did a complete wipe, which is the following:

  1. Deleted the lock-manager integration for this lock from the configuration->integrations section
  2. Removed all of the lovelace code in the dashboard configurator
  3. Edited the config/.storage/core.entity_registry to remove all of the input selections
  4. Deleted the config/packages/lock-manager directory and all subdirectories

Then I restarted the docker container and did the following

  1. Re-created the lock-manager integration for this lock under configuration->integrations
  2. copied the config/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lovelace into the editor for the dashboard
  3. restarted the docker container

There didn't appear to be any issues with this method for regenerating the entities. I am thinking this is the same as lock-manager.generate_package

The restart should also reload all automations, binary_sensors, and scripts

The following are the logs from after that:

2020-11-01 03:30:04 DEBUG (SyncWorker_41) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-11-01 03:30:04 DEBUG (SyncWorker_41) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-01 03:30:04 WARNING (SyncWorker_41) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-11-01 03:30:04 WARNING (SyncWorker_9) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-11-01 03:30:04 WARNING (SyncWorker_10) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-11-01 03:30:04 WARNING (SyncWorker_37) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-11-01 03:30:04 WARNING (SyncWorker_5) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

It looks much the same. I checked the lock code page, and saw it had cleared all codes. So I enabled the 5th code as a test code image

I do notice some door lock command gets going out 2020-11-01 03:31:39.184 Info, Node121, Sending (Send) message (Callback ID=0x94, Expected Reply=0x04) - DoorLockCmd_Get (Node=121): 0x01, 0x09, 0x00, 0x13, 0x79, 0x02, 0x62, 0x02, 0x25, 0x94, 0x4f

So something is a little different with this one. I do not see anything referencing user codes though. I think it was UserCodeCmd_Set and UserCodeCmd_Get

I turned back on automations. Here are the first set of logs after that

2020-11-01 03:43:04 DEBUG (SyncWorker_14) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-11-01 03:43:04 DEBUG (SyncWorker_14) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-01 03:43:04 WARNING (SyncWorker_14) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-11-01 03:43:04 WARNING (SyncWorker_43) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-11-01 03:43:04 WARNING (SyncWorker_49) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-11-01 03:43:04 WARNING (SyncWorker_32) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-11-01 03:43:04 WARNING (SyncWorker_42) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

Doesn't look any different to me.

Hope this all helps, I see a couple changes, so something new is happening. I still don't see any of the old lock code reports.

nweave03 commented 4 years ago

I noticed i messed something up, I didn't deploy the changes to lock_manager.yaml

there appears to be a template error:

2020-11-01 04:00:51 ERROR (MainThread) [homeassistant.config] Invalid config for [binary_sensor.template]: invalid template (TemplateSyntaxError: Encountered unknown tag 'elif'.) for dictionary value @ data['sensors']['pin_synched_detached_garage_door_lock_1']['value_template']. Got '{% set lock = \'sensor.detached_garage_door_lock_code_slot_1\' %} {% set local = \'input_text.detached_garage_door_lock_pin_1\' %} {% set status = \'binary_sensor.active_detached_garage_door_lock_1\' %} {% set lockpin = states(lock).strip()  %} {% set localpin = states(local).strip()  %} {% set pinstatus = states(status)  %} {% if lockpin == "0000" %} {%   set lockpin = "" %} {% endif %} {% elif pinstatus == \'on\' %} {% set correct = localpin == lockpin %} {% else %} {% set correct = lockpi.... (See /config/packages/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lock_manager_1.yaml, line 423). Please check the docs at https://www.home-assistant.io/integrations/template
2020-11-01 04:00:51 ERROR (MainThread) [homeassistant.config] Invalid config for [binary_sensor.template]: invalid template (TemplateSyntaxError: Encountered unknown tag 'elif'.) for dictionary value @ data['sensors']['pin_synched_detached_garage_door_lock_2']['value_template']. Got '{% set lock = \'sensor.detached_garage_door_lock_code_slot_2\' %} {% set local = \'input_text.detached_garage_door_lock_pin_2\' %} {% set status = \'binary_sensor.active_detached_garage_door_lock_2\' %} {% set lockpin = states(lock).strip()  %} {% set localpin = states(local).strip()  %} {% set pinstatus = states(status)  %} {% if lockpin == "0000" %} {%   set lockpin = "" %} {% endif %} {% elif pinstatus == \'on\' %} {% set correct = localpin == lockpin %} {% else %} {% set correct = lockpi.... (See /config/packages/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lock_manager_2.yaml, line 423). Please check the docs at https://www.home-assistant.io/integrations/template
2020-11-01 04:00:51 ERROR (MainThread) [homeassistant.config] Invalid config for [binary_sensor.template]: invalid template (TemplateSyntaxError: Encountered unknown tag 'elif'.) for dictionary value @ data['sensors']['pin_synched_detached_garage_door_lock_3']['value_template']. Got '{% set lock = \'sensor.detached_garage_door_lock_code_slot_3\' %} {% set local = \'input_text.detached_garage_door_lock_pin_3\' %} {% set status = \'binary_sensor.active_detached_garage_door_lock_3\' %} {% set lockpin = states(lock).strip()  %} {% set localpin = states(local).strip()  %} {% set pinstatus = states(status)  %} {% if lockpin == "0000" %} {%   set lockpin = "" %} {% endif %} {% elif pinstatus == \'on\' %} {% set correct = localpin == lockpin %} {% else %} {% set correct = lockpi.... (See /config/packages/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lock_manager_3.yaml, line 423). Please check the docs at https://www.home-assistant.io/integrations/template
2020-11-01 04:00:51 ERROR (MainThread) [homeassistant.config] Invalid config for [binary_sensor.template]: invalid template (TemplateSyntaxError: Encountered unknown tag 'elif'.) for dictionary value @ data['sensors']['pin_synched_detached_garage_door_lock_4']['value_template']. Got '{% set lock = \'sensor.detached_garage_door_lock_code_slot_4\' %} {% set local = \'input_text.detached_garage_door_lock_pin_4\' %} {% set status = \'binary_sensor.active_detached_garage_door_lock_4\' %} {% set lockpin = states(lock).strip()  %} {% set localpin = states(local).strip()  %} {% set pinstatus = states(status)  %} {% if lockpin == "0000" %} {%   set lockpin = "" %} {% endif %} {% elif pinstatus == \'on\' %} {% set correct = localpin == lockpin %} {% else %} {% set correct = lockpi.... (See /config/packages/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lock_manager_4.yaml, line 423). Please check the docs at https://www.home-assistant.io/integrations/template
2020-11-01 04:00:51 ERROR (MainThread) [homeassistant.config] Invalid config for [binary_sensor.template]: invalid template (TemplateSyntaxError: Encountered unknown tag 'elif'.) for dictionary value @ data['sensors']['pin_synched_detached_garage_door_lock_5']['value_template']. Got '{% set lock = \'sensor.detached_garage_door_lock_code_slot_5\' %} {% set local = \'input_text.detached_garage_door_lock_pin_5\' %} {% set status = \'binary_sensor.active_detached_garage_door_lock_5\' %} {% set lockpin = states(lock).strip()  %} {% set localpin = states(local).strip()  %} {% set pinstatus = states(status)  %} {% if lockpin == "0000" %} {%   set lockpin = "" %} {% endif %} {% elif pinstatus == \'on\' %} {% set correct = localpin == lockpin %} {% else %} {% set correct = lockpi.... (See /config/packages/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lock_manager_5.yaml, line 423). Please check the docs at https://www.home-assistant.io/integrations/template
firstof9 commented 4 years ago

Sorry about that, I just updated the lock_lock_manager.yaml file to fix that, if you copy that over and issue the generate_package and reload templates from Server Controls you won't need to fully restart.

firstof9 commented 4 years ago

I have at least 1 confirmed report that https://github.com/firstof9/lock-manager/tree/be469-workaround is working with the fixes in place.

colemamd commented 4 years ago

@firstof9 Just updated to the be469-workaround branch you linked to, and after a full restart it is now working. I did try generate_package and reload_templates prior to restarting, but it didn't work. I restarted HA and now it appears to be working! Great work! Thanks!

nweave03 commented 3 years ago

Hi @firstof9 ,

Sorry it's been a bit, I had to go out of town until today, so this was my first chance to test. I updated to version 0.40 then did my standard reload

  1. Deleted the lock-manager integration for this lock from the configuration->integrations section
  2. Removed all of the lovelace code in the dashboard configurator
  3. Edited the config/.storage/core.entity_registry to remove all of the input selections
  4. Deleted the config/packages/lock-manager directory and all subdirectories

Then I restarted the docker container and did the following

  1. Re-created the lock-manager integration for this lock under configuration->integrations
  2. copied the config/lock-manager/detached_garage_door_lock/detached_garage_door_lock_lovelace into the editor for the dashboard
  3. restarted the docker container

It does not appear to be working for me here

2020-11-06 03:39:59 DEBUG (SyncWorker_30) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-11-06 03:39:59 DEBUG (SyncWorker_30) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 03:39:59 WARNING (SyncWorker_30) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-11-06 03:39:59 WARNING (SyncWorker_24) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-11-06 03:39:59 WARNING (SyncWorker_29) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-11-06 03:39:59 WARNING (SyncWorker_37) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-11-06 03:39:59 WARNING (SyncWorker_16) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

image

Is the fix not in version 0.40? I no longer see the template error here, but I am still seeing 0 lock codes.

firstof9 commented 3 years ago

The fix is in there, Unavailable means the sesnor's not getting data from either zwave or ozw, I assume you are not getting any errors in your HA log correct?

nweave03 commented 3 years ago

none that appear relevant

2020-11-06 03:36:25 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for lock-manager which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-06 03:36:27 INFO (MainThread) [custom_components.lock-manager] Version 0.0.40 is starting, if you have any issues please report them here: https://github.com/FutureTense/lock-manager
2020-11-06 03:36:28 ERROR (SyncWorker_0) [homeassistant.components.nest] Connection error while access Nest web service: Authorization failed
2020-11-06 03:36:29 WARNING (MainThread) [homeassistant.components.heos] 192.168.2.243 is not logged in to a HEOS account and will be unable to retrieve HEOS favorites: Use the 'heos.sign_in' service to sign-in to a HEOS account
2020-11-06 03:36:29 WARNING (MainThread) [homeassistant.components.hue.light] Color gamut of Hue color downlight 13: GamutType(red=XYPoint(x=0.0, y=0.0), green=XYPoint(x=0.0, y=0.0), blue=XYPoint(x=0.0, y=0.0)), not valid, setting gamut to None.
2020-11-06 03:36:29 WARNING (MainThread) [homeassistant.components.hue.light] Color gamut of Hue color downlight 14: GamutType(red=XYPoint(x=0.0, y=0.0), green=XYPoint(x=0.0, y=0.0), blue=XYPoint(x=0.0, y=0.0)), not valid, setting gamut to None.
2020-11-06 03:36:59 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-11-06 03:36:59 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 03:36:59 WARNING (SyncWorker_31) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-11-06 03:36:59 WARNING (SyncWorker_45) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-11-06 03:36:59 WARNING (SyncWorker_11) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-11-06 03:36:59 WARNING (SyncWorker_12) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-11-06 03:36:59 WARNING (SyncWorker_12) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'
2020-11-06 03:37:01 WARNING (MainThread) [homeassistant.components.zwave] Z-Wave node 2 not ready after 30 seconds, continuing anyway
2020-11-06 03:37:01 WARNING (MainThread) [homeassistant.components.zwave] Z-Wave entity Unknown Node 2 Sensor (node_id: 2) not ready after 30 seconds, continuing anyway

node_id 2 is a dead sensor i'm waiting to do the delete failed node on at some point.

I also know the lock at least partially works. I can open and close the lock from the various buttons. It also appears that it see's all the appropriate items see screenshot

image

firstof9 commented 3 years ago

Try adding a PIN to slot 2, see if it syncs up. The old zwave integration is... flakey with the lock support.

nweave03 commented 3 years ago

gotcha,

turned it on and got the following logs. image

2020-11-06 04:23:29 DEBUG (SyncWorker_40) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-11-06 04:23:29 DEBUG (SyncWorker_40) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 04:23:29 WARNING (SyncWorker_40) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-11-06 04:23:29 WARNING (SyncWorker_25) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-11-06 04:23:29 WARNING (SyncWorker_22) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-11-06 04:23:29 WARNING (SyncWorker_29) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-11-06 04:23:29 WARNING (SyncWorker_27) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

Maybe this is just naive of me, but is there a guard that prevents querying above the code_slot_255 (which I think you've said is the number of code slots)? Because it used to issue individual queries for code slots.

Also, I am still having to manually turn on allow_automations and allow_automation_execution if that may be relevant

firstof9 commented 3 years ago

There's no guard in place, the sensor iterates all values in CommandClass 99 (CommandClass USER_CODE). If that's all the info you're seeing from DEBUG it's not picking up any of the user code slots for some reason.

Try issuing a a Refresh Node

nweave03 commented 3 years ago

That definitely helped!

2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 04:53:29 DEBUG (SyncWorker_5) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 04:53:59 DEBUG (SyncWorker_22) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:

I've let it run for a few minutes now and it clears and sets the codes, but it doesn't seem to set all 4 codes, and keeps toggling code 2 with clear and then set.

nweave03 commented 3 years ago

oh, here's a new one

2020-11-06 04:55:29 WARNING (MainThread) [homeassistant.components.automation.sensor_cleanup_detached_garage_door_5] sensor_cleanup_detached_garage_door_5: Already running
2020-11-06 04:55:29 WARNING (MainThread) [homeassistant.components.automation.sensor_cleanup_detached_garage_door_2] sensor_cleanup_detached_garage_door_2: Already running
nweave03 commented 3 years ago

looks to be stuck in some weird loop of setting and clearing codes. I turned off allow_automation because it was flooding the z-wave network pretty bad, and it continues to do this.

2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value: **********
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 04:59:29 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value: **********
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 04:59:59 DEBUG (SyncWorker_24) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 05:00:29 DEBUG (SyncWorker_45) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 05:00:59 DEBUG (SyncWorker_15) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
nweave03 commented 3 years ago

i'm gonna head to sleep for the night, not sure if this is relevant, but I restarted the docker container to hopefully break whatever the loop was, and it stopped receiving that data altogether.

2020-11-06 05:10:58 DEBUG (SyncWorker_28) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 0
2020-11-06 05:10:58 DEBUG (SyncWorker_28) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 05:10:58 WARNING (SyncWorker_28) [custom_components.lock-manager.sensor] Code slot code_slot_5 had no value: 'code_slot_5'
2020-11-06 05:10:58 WARNING (SyncWorker_10) [custom_components.lock-manager.sensor] Code slot code_slot_4 had no value: 'code_slot_4'
2020-11-06 05:10:58 WARNING (SyncWorker_21) [custom_components.lock-manager.sensor] Code slot code_slot_3 had no value: 'code_slot_3'
2020-11-06 05:10:58 WARNING (SyncWorker_32) [custom_components.lock-manager.sensor] Code slot code_slot_2 had no value: 'code_slot_2'
2020-11-06 05:10:58 WARNING (SyncWorker_17) [custom_components.lock-manager.sensor] Code slot code_slot_1 had no value: 'code_slot_1'

That's... odd? Is there a bug here?

firstof9 commented 3 years ago

That's... odd? Is there a bug here?

No bug, you're node needs refreshed again, seems like your cache is getting corrupted or something.

nweave03 commented 3 years ago

okay, i restarted the container this morning. Then noticing the same thing as we discussed last night refreshed the node. But this time I did not turn on allow_automations or allow_automation_execution and it did slowly add the codes and keep them there without removing them. Is that expected? What are the effects of keeping those off?

Examining the logs though, I see a code being reported for code_slot_3, which I have not enabled (see screenshot). Is this something I should be worried about?

Also, do you know where I should go to discuss whatever is happening to the cache after restarts? Is there a way to manually store the cache or is this a deeper z-wave implementation issue? I presume that isn't you or here.

Lastly, just wanted to say thank you for all the help @firstof9 !

2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value: **********
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:11:24 DEBUG (SyncWorker_38) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:

image

firstof9 commented 3 years ago

Code slot 3 there showing 'Unknown' shouldn't be a thing anymore, it should have a value display or be blank (no code). Can you double check to make sure sensor.py updated?

firstof9 commented 3 years ago

But this time I did not turn on allow_automations or allow_automation_execution and it did slowly add the codes and keep them there without removing them. Is that expected?

Yes this is how it works. As everything refreshes the codes populate. The codes getting populated is not a script or automation.

What are the effects of keeping those off?

If you have them off, your codes won't update when you disable or change them.

nweave03 commented 3 years ago

Code slot 3 there showing 'Unknown' shouldn't be a thing anymore, it should have a value display or be blank (no code). Can you double check to make sure sensor.py updated?

okay, i went ahead and deleted the sensory.py and then reinstalled in HACS (the reinstall deletes everything, so now i'm not sure if deleting sensor.py does anything, but nontheless). Then restarted. It appears content with how things are. Here is the sensor.py

cat sensor.py
""" Sensor for lock-manager """

from .const import CONF_ENTITY_ID, CONF_SLOTS, CONF_LOCK_NAME, ZWAVE_NETWORK
from datetime import timedelta
from homeassistant.components.ozw import DOMAIN as OZW_DOMAIN
from openzwavemqtt.const import CommandClass
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import logging

MANAGER = "manager"
ATTR_VALUES = "values"
ATTR_NODE_ID = "node_id"
COMMAND_CLASS_USER_CODE = 99

_LOGGER = logging.getLogger(__name__)

async def async_setup_entry(hass, entry, async_add_entities):

    config = entry.data

    unique_id = entry.entry_id

    data = CodeSlotsData(hass, config)
    sensors = []
    x = entry.data[CONF_SLOTS]

    while x > 0:
        sensor_name = f"code_slot_{x}"
        sensors.append(
            CodesSensor(data, sensor_name, x, entry.data[CONF_LOCK_NAME], unique_id)
        )
        x -= 1

    async_add_entities(sensors, True)

class CodeSlotsData:
    """The class for handling the data retrieval."""

    def __init__(self, hass, config):
        """Initialize the data object."""
        self._hass = hass
        self._entity_id = config.get(CONF_ENTITY_ID)
        self._lockname = config.get(CONF_LOCK_NAME)
        self._data = None

        self.update = Throttle(timedelta(seconds=5))(self.update)

    def update(self):
        """Get the latest data"""
        # loop to get user code data from entity_id node
        instance_id = 1  # default
        data = {}
        data[CONF_ENTITY_ID] = self._entity_id
        # data["node_id"] = _get_node_id(self._hass, self._entity_id)
        data[ATTR_NODE_ID] = self._get_node_id()

        # pull the codes for ozw
        if OZW_DOMAIN in self._hass.data:
            if data[ATTR_NODE_ID] is not None:
                manager = self._hass.data[OZW_DOMAIN][MANAGER]
                lock_values = (
                    manager.get_instance(instance_id)
                    .get_node(data[ATTR_NODE_ID])
                    .values()
                )
                for value in lock_values:
                    if value.command_class == CommandClass.USER_CODE:
                        _LOGGER.debug(
                            "DEBUG: code_slot_%s value: %s",
                            int(value.index),
                            str(value.value),
                        )
                        # do not update if the code contains *s
                        code = value.value
                        sensor_name = f"code_slot_{value.index}"
                        if "*" in str(value.value):
                            _LOGGER.debug("DEBUG: Ignoring code slot with * in value.")
                            code = self._invalid_code(value.index)
                        data[sensor_name] = code

                self._data = data

        # pull codes for zwave
        elif ZWAVE_NETWORK in self._hass.data:
            if data[ATTR_NODE_ID] is not None:
                network = self._hass.data[ZWAVE_NETWORK]
                lock_values = (
                    network.nodes[data[ATTR_NODE_ID]]
                    .get_values(class_id=COMMAND_CLASS_USER_CODE)
                    .values()
                )
                for value in lock_values:
                    _LOGGER.debug(
                        "DEBUG: code_slot_%s value: %s",
                        str(value.index),
                        str(value.data),
                    )
                    # do not update if the code contains *s
                    code = value.data
                    if "*" in str(value.data):
                        _LOGGER.debug("DEBUG: Ignoring code slot with * in value.")
                        code = self._invalid_code(value.index)
                    sensor_name = f"code_slot_{value.index}"
                    data[sensor_name] = code

                self._data = data

    def _get_node_id(self):
        """ Obtain the node_id from the entity via attributes. """

        data = None
        test = self._hass.states.get(self._entity_id)
        if test is not None:
            try:
                data = test.attributes["node_id"]
            except Exception as err:
                _LOGGER.error(
                    "Error acquiring node id from entity %s: %s",
                    self._entity_id,
                    str(err),
                )

        return data

    def _invalid_code(self, code_slot):
        """ Return the PIN slot value as we are unable to read the slot value
        from the lock. """

        _LOGGER.debug("Work around code in use.")
        # This is a fail safe and should not be needing to return ""
        data = ""

        # Build data from entities
        enabled_bool = f"input_boolean.enabled_{self._lockname}_{code_slot}"
        enabled = self._hass.states.get(enabled_bool)
        pin_data = f"input_text.{self._lockname}_pin_{code_slot}"
        pin = self._hass.states.get(pin_data)

        # If slot is enabled return the PIN
        if enabled:
            _LOGGER.debug("Utilizing BE469 work around code.")
            data = pin.state
        else:
            _LOGGER.debug("Utilizing FE599 work around code.")
            data = ""

        return data

class CodesSensor(Entity):
    """ Represntation of a sensor """

    def __init__(self, data, sensor_name, code_slot, lock_name, unique_id):
        """ Initialize the sensor """
        self.data = data
        self._code_slot = code_slot
        self._state = None
        self._unique_id = unique_id
        self._name = sensor_name
        self._lock_name = lock_name
        self.update()

    @property
    def unique_id(self):
        """Return a unique, Home Assistant friendly identifier for this entity."""
        return f"{self._lock_name}_{self._name}_{self._unique_id}"

    @property
    def name(self):
        """Return the name of the sensor."""
        return f"{self._lock_name}_{self._name}"

    @property
    def state(self):
        """Return the state of the sensor."""
        return self._state

    @property
    def icon(self):
        """Return the icon."""
        return "mdi:lock-smart"

    @property
    def device_state_attributes(self):
        """Return device specific state attributes."""
        attr = {}

        return attr

    @property
    def available(self):
        """Return if entity is available."""
        if self._state is not None:
            return True
        return False

    def update(self):
        """Fetch new state data for the sensor.
        This is the only method that should fetch new data for Home Assistant.
        """

        self.data.update()
        # Using a dict to send the data back

        if self.data._data is not None:
            try:
                self._state = self.data._data[self._name]
            except Exception as err:
                _LOGGER.warning(
                    "Code slot %s had no value: %s", str(self._name), str(err)
                )
nweave03 commented 3 years ago

But this time I did not turn on allow_automations or allow_automation_execution and it did slowly add the codes and keep them there without removing them. Is that expected?

Yes this is how it works. As everything refreshes the codes populate. The codes getting populated is not a script or automation.

What are the effects of keeping those off?

If you have them off, your codes won't update when you disable or change them.

It sounds like i will need to keep these on then. At least if I plan to ever change codes and have that be reflected. Any idea why it isn't naturally flipping them on, or why when I turn them on it starts that delete recreate loop? See below for after turning on allow_automation_execution, which flipped allow_automations, it appears to be in conflict about whether code_slot_3 should have a code or not

2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value: **********
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:46:46 DEBUG (SyncWorker_20) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value: **********
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:47:16 DEBUG (SyncWorker_43) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:47:46 DEBUG (SyncWorker_12) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:48:16 DEBUG (SyncWorker_19) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:48:46 DEBUG (SyncWorker_31) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_255 value: 30
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_254 value: False
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_0 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_1 value: **********
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_2 value: **********
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_3 value: **********
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_4 value: **********
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_5 value: **********
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: Ignoring code slot with * in value.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Work around code in use.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] Utilizing BE469 work around code.
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_6 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_7 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_8 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_9 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_10 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_11 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_12 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_13 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_14 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_15 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_16 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_17 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_18 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_19 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_20 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_21 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_22 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_23 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_24 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_25 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_26 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_27 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_28 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_29 value:
2020-11-06 18:49:16 DEBUG (SyncWorker_1) [custom_components.lock-manager.sensor] DEBUG: code_slot_30 value:
nweave03 commented 3 years ago

I do have an odd thought here. Despite the fact I keep deleting input entities from the .storage/core_entity_registry when doing my deep deletes, sometimes (maybe 50% of the time?) when I recreate everything from the lock-manager integrations->add a new integration it will still have the lock codes that were previously set already prefilled. I wonder if a previous iteration set code_slot_3 somewhere that isn't being reflected this time, but can still be found in some other database, creating a conflict.

firstof9 commented 3 years ago

values are restored from your database

firstof9 commented 3 years ago

Any idea why it isn't naturally flipping them on

Codes being 'enabled' is up to the end user, that only ever turns off when you change the code in the input field.

why when I turn them on it starts that delete recreate loop?

Codes that say 'Sync' On shouldn't attempt to delete/create the codes. If there's a code slot reporting anything other than the value in the input field for the PIN, excluding Unavailable, the code should get changed to what's in the slot or cleared.

The logic is like this (roughly):

If CodeSlotSensor != PINEntered -> change the code If CodeSlotSensor = Unavailable -> ignore If CodeSlotSensor = Anything, but 'Enable' is off -> clear the code

nweave03 commented 3 years ago

Any idea why it isn't naturally flipping them on

Codes being 'enabled' is up to the end user, that only ever turns off when you change the code in the input field.

why when I turn them on it starts that delete recreate loop?

Codes that say 'Sync' On shouldn't attempt to delete/create the codes. If there's a code slot reporting anything other than the value in the input field for the PIN, excluding Unavailable, the code should get changed to what's in the slot or cleared.

The logic is like this (roughly):

If CodeSlotSensor != PINEntered -> change the code If CodeSlotSensor = Unavailable -> ignore If CodeSlotSensor = Anything but 'Enable' is off -> clear the code

oh, I meant why isn't allow_automation_execution toggling on its own, not the lock codes.

nweave03 commented 3 years ago

values are restored from your database

ah, so maybe that is happening? because on all the screenshots, there is no code set for code_slot_3 but maybe in the background its finding an old version?

Should I be able to just toggle it on with no code set to clear any previous saved version?