What's Changed
- Keep runtime state on the config entry, not in hass.data by @zios0007 in #829
- Every platform builds entities for every channel the entry owns (#827) by @zios0007 in #831
- Say how many commands each platform will send at once by @zios0007 in #834
- One entry per recorder: the migration, the flow, and per-channel settings (#827) by @zios0007 in #835
- An entity says its own name, and Home Assistant says the device's by @zios0007 in #836
- A refusal must not cost an event code for the life of the entry by @zios0007 in #837
- Split init.py into host.py, coordinator.py and the entry lifecycle by @zios0007 in #838
- Entity names come from the translation file by @zios0007 in #839
- Entity icons come from icons.json by @zios0007 in #841
- An entity that goes away stops being listened to by @zios0007 in #842
- The six entities the platform named now name themselves by @zios0007 in #843
- The event sensors name themselves, all forty five of them by @zios0007 in #844
- The last three icons in code move to icons.json by @zios0007 in #845
- The errors a user sees become translatable by @zios0007 in #846
- Every channel of an entry is a live device, not just the first by @zios0007 in #850
- The get_overlay_text service raised NameError by @zios0007 in #847
- A channel does not inherit the primary channel's area by @zios0007 in #851
- Name the entry level event list as one by @zios0007 in #852
- The last icons in code move to icons.json by @zios0007 in #853
- A doorbell event with a non-ASCII character in it was dropped by @zios0007 in #855
- An RPC2 refusal of the coaxial status must not fail setup (#848) by @zios0007 in #854
- The doorbell's login handshake has tests by @zios0007 in #856
- The repair flow that deletes config entries has tests by @zios0007 in #857
- The authorized vehicle sensor's running behaviour has tests by @zios0007 in #858
- The last channel decided whether the platform got two services by @zios0007 in #859
- A switch that operates a device output says it is a switch by @zios0007 in #860
- Document the options, entities and services that already exist by @zios0007 in #861
- A device with no CGI event path subscribes over RPC2 instead by @zios0007 in #867
- The infrared write goes to the profile the camera is using by @zios0007 in #868
- Opening a door over RPC2: which door, and letting go of the session by @zios0007 in #869
- The authorized vehicle sensor is created on every channel by @zios0007 in #871
- Three modules a handful of statements short of 95% by @zios0007 in #873
- The keepalive that holds one RPC2 login open by @zios0007 in #870
- The three switches nothing built by @zios0007 in #874
- What an RPC2 failure costs is three different things by @zios0007 in #862
- How the uptime read survives the reboot it is there to detect by @zios0007 in #863
- Only the main stream is enabled when a camera is added by @zios0007 in #864
- An expired login does not end the RPC2 event poll by @zios0007 in #865
- A PTZ preset logs out after itself, whatever happened by @zios0007 in #866
- The licence plate sensor never stopped listening by @zios0007 in #876
- The plate extraction that runs when the payload is truncated by @zios0007 in #877
- The digest variations different firmware offers by @zios0007 in #875
- What the three selects report, and what they write by @zios0007 in #880
- The merge guards that nothing was reaching by @zios0007 in #882
- A doorbell state we can already name is not an unknown state by @zios0007 in #883
- What the shared event stream remembers between attaches has tests by @zios0007 in #888
- Releasing the light override when something else changed the camera has tests by @zios0007 in #889
- What each camera service sends, and which channel it sends it to by @zios0007 in #890
- Logging out, the PTZ object, and the door, on the RPC2 client by @zios0007 in #878
- The URLs the write methods build by @zios0007 in #881
- Being found by DHCP, and being moved to an area by @zios0007 in #884
- The dump says what was subscribed, and counts events that update nothing by @zios0007 in #886
- An event index the device did not send as a number has tests by @zios0007 in #885
- Fix correctness defects found in a full-project review by @roalvesrj in #879
- List tested EmpireTech cameras by @kreucher in #892
- Reauth on a merged recorder, and two defects in the channel merge by @roalvesrj in #891
- Add PTZ3E10X-T180 security light support by @kreucher in #893
- The repair that tidies up after a deletion must not delete a merged recorder by @zios0007 in #894
- The host probe and two guards around it have tests by @zios0007 in #887
- The merge must carry each channel's settings, not the ones it was added with by @zios0007 in #895
- Say what the device answered when a request fails by @zios0007 in #896
- The merge leaves a disabled entry alone by @zios0007 in #897
- File every channel's entities under its own subentry by @zios0007 in #899
- An event whose Object is null is not a crash by @zios0007 in #900
- What the doorbell's event connection remembers between attempts by @zios0007 in #901
- What a failed poll costs, and the one failure treated differently by @zios0007 in #902
- Which light a device gets, and what each one reports by @zios0007 in #903
- What the illuminator does at startup, and what it refuses to do by @zios0007 in #904
- The URLs the remaining write methods build by @zios0007 in #905
- What the client asks a device about itself, and what it does with no answer by @zios0007 in #906
- Repairing a snapshot whose header lies about its own length by @zios0007 in #907
- One RPC2 login per host, shared, and what happens when it fails by @zios0007 in #908
- Pulling one event out of the multipart stream as soon as it is complete by @zios0007 in #909
- What the light entities read off the last poll by @zios0007 in #910
- What setup asks a device, and what it concludes when it refuses by @zios0007 in #911
- Ask a different way when a device refuses the event code list by @zios0007 in #912
Full Changelog: 0.10.23...1.0.0-rc.1