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
- Say it once per outage on the branch that carries ordinary outages by @zios0007 in #913
- Which of three calls the flood light makes by @zios0007 in #915
- What the coordinator reports off the last poll, and from which key by @zios0007 in #916
- Which channel an arriving event is for, and closing a session that will not by @zios0007 in #917
- Why a capability was not found, which plate counts, and which channel by @zios0007 in #918
- The area a channel was given, from an id to the name device_info needs by @zios0007 in #920
- The overlay visibility toggles, the alarm output mode, and two fallbacks by @zios0007 in #921
- Giving back a shared RPC2 session, and the two table shapes a write handles by @zios0007 in #922
- What the client does with a table the device did not send, or sent wrong by @zios0007 in #923
- The Vehicle copy of a branch, and an action nobody recognises by @zios0007 in #919
- The doorbell stops narrating itself in everyone's log by @zios0007 in #926
- Keep services.yaml and the registrations from drifting apart by @zios0007 in #927
- Bump the workflow actions to the versions that run on Node 24 by @zios0007 in #928
- Document the merge and its backup, diagnostics, and the refused code list by @zios0007 in #925
- The URLs the read endpoints build, and the two that reshape the answer by @zios0007 in #924
- Say why a video profile write cannot work, instead of Unknown error by @zios0007 in #929
- Declare the quality scale the integration actually meets by @zios0007 in #930
- The thin wrappers round the illuminator, and three quiet failure paths by @zios0007 in #931
- Add contributing, security and dependabot by @zios0007 in #932
- Name the device on the card that asks for attention by @zios0007 in #933
- Count refusal sources, not refused requests by @zios0007 in #934
- ci: bump the actions group with 2 updates by @dependabot[bot] in #935
- Recover the shared RPC2 session when the device ends it by @zios0007 in #936
- Say so when an infrared write is refused, or taken and ignored by @zios0007 in #937
- Make the infrared mode and level visible, and Auto reachable by @zios0007 in #938
- Let dependabot make the label instead of naming one that does not exist by @zios0007 in #939
- One camera is a camera, not a hub with one channel by @zios0007 in #940
- Stop asking for an infrared write the device has already refused by @zios0007 in #941
- Stop offering a siren the device says it has no method for by @zios0007 in #945
- A 200 carrying Error is not a successful write, and infrared had the wrong bank by @zios0007 in #946
- Add a vto_call service to ring a room from a VTO by @kmich in #948
New Contributors
- @dependabot[bot] made their first contribution in #935
Full Changelog: 0.10.23...1.0.0-rc.5