1
1
"""Support for Rfplayer devices."""
2
+
2
3
from asyncio import timeout
3
4
from collections import defaultdict
4
5
import copy
@@ -77,11 +78,21 @@ def identify_event_type(event):
77
78
78
79
async def async_setup_entry (hass : HomeAssistant , entry : ConfigEntry ) -> bool :
79
80
"""Set up GCE RFPlayer from a config entry."""
80
- hass .data .setdefault (DOMAIN , {})
81
-
82
81
config = entry .data
83
82
options = entry .options
84
83
84
+ hass .data .setdefault (
85
+ DOMAIN ,
86
+ {
87
+ CONF_DEVICE : config [CONF_DEVICE ],
88
+ DATA_ENTITY_LOOKUP : {
89
+ EVENT_KEY_COMMAND : defaultdict (list ),
90
+ EVENT_KEY_SENSOR : defaultdict (list ),
91
+ },
92
+ DATA_DEVICE_REGISTER : {},
93
+ },
94
+ )
95
+
85
96
async def async_send_command (call ):
86
97
"""Send Rfplayer command."""
87
98
_LOGGER .debug ("Rfplayer send command for %s" , str (call .data ))
@@ -181,7 +192,7 @@ async def connect():
181
192
)
182
193
183
194
try :
184
- with timeout (CONNECTION_TIMEOUT ):
195
+ async with timeout (CONNECTION_TIMEOUT ):
185
196
transport , protocol = await connection
186
197
187
198
except (TimeoutError , SerialException , OSError ) as exc :
@@ -199,15 +210,7 @@ async def connect():
199
210
# mark entities as available
200
211
async_dispatcher_send (hass , SIGNAL_AVAILABILITY , True )
201
212
202
- hass .data [DOMAIN ] = {
203
- RFPLAYER_PROTOCOL : protocol ,
204
- CONF_DEVICE : config [CONF_DEVICE ],
205
- DATA_ENTITY_LOOKUP : {
206
- EVENT_KEY_COMMAND : defaultdict (list ),
207
- EVENT_KEY_SENSOR : defaultdict (list ),
208
- },
209
- DATA_DEVICE_REGISTER : {},
210
- }
213
+ hass .data [DOMAIN ][RFPLAYER_PROTOCOL ] = (protocol ,)
211
214
212
215
if options .get (CONF_AUTOMATIC_ADD , config [CONF_AUTOMATIC_ADD ]) is True :
213
216
for device_type in "sensor" , "command" :
@@ -254,7 +257,7 @@ def __init__(
254
257
self ._event = None
255
258
self ._attr_assumed_state = True
256
259
self ._attr_unique_id = "_" .join (
257
- [self ._protocol , self ._device_address or self ._device_id ]
260
+ [self ._protocol , self ._device_address or str ( self ._device_id ) ]
258
261
)
259
262
if name :
260
263
self ._attr_name = name
0 commit comments