Skip to main content

API reference

Every surface an integration or automation can build on, generated from the shipping code. Labels and descriptions are the same strings Home Assistant shows in its own dialogs, so this page and the UI never disagree.

New to this? Start with the integration guide, which walks through calling a service and reacting to its event.

Surface coverage​

Every kind of integration surface Home Assistant offers, and the status of each one here. The rows that say not applicable or deferred are the useful ones: a list of what exists cannot tell you what is missing.

SurfaceStatusNotes
Actions (services)PublishedEach operation that changes or exports library data is a home_keeper_library.* service.
Bus eventsPublishedEach state change fires a home_keeper_library_<noun>_<verb> event with a payload from a pure builder.
Device triggersNot applicableThe library has 1 service device and no device per book for a trigger.
Device conditionsNot applicableThe sensors and the to-do lists give the state that a condition reads.
Device actionsNot applicableThe services cover each operation and take a book id directly.
Entity platformsPublishedA sensor platform with library and per-person counts, and a per-person todo list of the books to read.
Entity attributesPublishedThe per-person sensors give the yearly goal, the pages and the titles.
Config entry optionsPublishedThe currency of the prices and values of the copies. The Open Library account is in the entry data, not in the options.
Config flowPublishedA single-instance setup flow with a currency field. The options flow has a menu: the currency, and the Archive.org S3 keys of an Open Library account.
Websocket commandsInternalThe tab and the card read the state and call the twin of each service.
HTTP routesInternalA static path for the bundles, and the cover upload and cover views.
DiagnosticsPublishedThe config entry gives a diagnostics download, with names and notes redacted.
Reauth / reconfigure flowsNot applicableThe storage is local. The admin sets the Open Library keys again in the options flow, and a send with refused keys says so.
Repairs / issue registryPublishedAn issue shows when Home Keeper is missing, not set up or too old for the tab.
DiscoveryNot applicableNo device or service on the network is a library.
Home Keeper panel tabInternalThe admin UI is a tab in the Home Keeper panel, registered through the Python API of Home Keeper.

Actions​

Every operation that changes or exports data is a Home Assistant action, so automations, scripts, voice assistants and other integrations all reach it the same way. Guard each call with hass.services.has_service("home_keeper_library", "<action>") so your integration still works when this one is not installed.

home_keeper_library.add_room​

Add room

Add a room to the library.

Admin only · Can return a response

FieldLabelSelectorDescription
name (required)NametextThe display name.
area_idAreaareaThe Home Assistant area of the room.
orderOrdernumber (min 0, max 100000)The sort position. Lower comes first.

home_keeper_library.update_room​

Update room

Change a room.

Admin only · Can return a response

FieldLabelSelectorDescription
room_id (required)RoomtextThe ID of the room.
nameNametextThe display name.
area_idAreaareaThe Home Assistant area of the room.
orderOrdernumber (min 0, max 100000)The sort position. Lower comes first.

home_keeper_library.delete_room​

Delete room

Delete a room. A room with bookcases needs force.

Admin only · Can return a response

FieldLabelSelectorDescription
room_id (required)RoomtextThe ID of the room.
forceForcebooleanAlso delete the contents. The copies move to no shelf.

home_keeper_library.add_bookcase​

Add bookcase

Add a bookcase to a room.

Admin only · Can return a response

FieldLabelSelectorDescription
room_id (required)RoomtextThe ID of the room.
name (required)NametextThe display name.
noteNotetext (multiline)A short note.
orderOrdernumber (min 0, max 100000)The sort position. Lower comes first.

home_keeper_library.update_bookcase​

Update bookcase

Change a bookcase or move it to another room.

Admin only · Can return a response

FieldLabelSelectorDescription
bookcase_id (required)BookcasetextThe ID of the bookcase.
room_idRoomtextThe ID of the room.
nameNametextThe display name.
noteNotetext (multiline)A short note.
orderOrdernumber (min 0, max 100000)The sort position. Lower comes first.

home_keeper_library.delete_bookcase​

Delete bookcase

Delete a bookcase. A bookcase with shelves needs force.

Admin only · Can return a response

FieldLabelSelectorDescription
bookcase_id (required)BookcasetextThe ID of the bookcase.
forceForcebooleanAlso delete the contents. The copies move to no shelf.

home_keeper_library.add_shelf​

Add shelf

Add a shelf to a bookcase.

Admin only · Can return a response

FieldLabelSelectorDescription
bookcase_id (required)BookcasetextThe ID of the bookcase.
name (required)NametextThe display name.
orderOrdernumber (min 0, max 100000)The sort position. Lower comes first.

home_keeper_library.update_shelf​

Update shelf

Change a shelf or move it to another bookcase.

Admin only · Can return a response

FieldLabelSelectorDescription
shelf_id (required)ShelftextThe ID of the shelf. Empty for no shelf.
bookcase_idBookcasetextThe ID of the bookcase.
nameNametextThe display name.
orderOrdernumber (min 0, max 100000)The sort position. Lower comes first.

home_keeper_library.delete_shelf​

Delete shelf

Delete a shelf. A shelf with copies needs force.

Admin only · Can return a response

FieldLabelSelectorDescription
shelf_id (required)ShelftextThe ID of the shelf. Empty for no shelf.
forceForcebooleanAlso delete the contents. The copies move to no shelf.

home_keeper_library.lookup_isbn​

Look up ISBN

Read the details of an ISBN from Open Library. The library stays the same.

Admin only · Returns a response

FieldLabelSelectorDescription
isbn (required)ISBNtextAn ISBN-10 or an ISBN-13.

home_keeper_library.add_book​

Add book

Add a book. If a book has the same ISBN, the service returns that book.

Admin only · Can return a response

FieldLabelSelectorDescription
titleTitletextThe title of the book.
subtitleSubtitletextThe subtitle of the book.
authorsAuthorstext (multiple)The authors, in order.
isbnISBNtextAn ISBN-10 or an ISBN-13.
isbn13ISBN-13textThe 13-digit ISBN.
isbn10ISBN-10textThe 10-digit ISBN.
publisherPublishertextThe publisher of the book.
publishedPublishedtextThe publication date, usually a year.
pagesPagesnumber (min 0, max 100000)The number of pages.
languageLanguagetextThe language code, such as en.
subjectsSubjectstext (multiple)The subjects of the book.
seriesSeriestextThe series name, or a name and a number.
descriptionDescriptiontext (multiline)The description of the book.
tagsTagstext (multiple)The tags of the book.
shared_notesShared notestext (multiline)Notes that each user can read, in Markdown.
needs_detailsNeeds detailsbooleanMark the book as incomplete.
lookupLook upbooleanRead the details from Open Library.

home_keeper_library.update_book​

Update book

Change the details of a book.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
titleTitletextThe title of the book.
subtitleSubtitletextThe subtitle of the book.
authorsAuthorstext (multiple)The authors, in order.
isbnISBNtextAn ISBN-10 or an ISBN-13.
isbn13ISBN-13textThe 13-digit ISBN.
isbn10ISBN-10textThe 10-digit ISBN.
publisherPublishertextThe publisher of the book.
publishedPublishedtextThe publication date, usually a year.
pagesPagesnumber (min 0, max 100000)The number of pages.
languageLanguagetextThe language code, such as en.
subjectsSubjectstext (multiple)The subjects of the book.
seriesSeriestextThe series name, or a name and a number.
descriptionDescriptiontext (multiline)The description of the book.
tagsTagstext (multiple)The tags of the book.
shared_notesShared notestext (multiline)Notes that each user can read, in Markdown.
needs_detailsNeeds detailsbooleanMark the book as incomplete.

home_keeper_library.delete_book​

Delete book

Delete a book with its copies, reading status, loans and cover.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.

home_keeper_library.refresh_book​

Update from Open Library

Fill the empty fields of a book from Open Library.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.

home_keeper_library.send_to_catalog​

Send to Open Library

Add a book that Open Library does not have, with the connected Open Library account, then link the book.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
fieldsFieldsselect (publisher, published, isbn)Add publisher, published or isbn to send those details too. The title and the first author always go.
include_coverSend coverbooleanAlso send the custom cover of the book.

Link to Open Library

Link a book to an Open Library edition and fill its empty fields.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
record (required)EditiontextAn edition key, such as OL123M, or the URL of the edition page.

home_keeper_library.skip_catalog​

Skip Open Library

Remove a book from the list of books that are not on Open Library, or put it back.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
skipSkipbooleanTurn off to put the book back in the list.

home_keeper_library.disconnect_catalog​

Disconnect Open Library

Remove the keys of the Open Library account.

Admin only · Can return a response

Takes no fields.

home_keeper_library.scan_isbn​

Scan ISBN

Add a scanned book to a shelf.

Admin only · Can return a response

FieldLabelSelectorDescription
isbn (required)ISBNtextAn ISBN-10 or an ISBN-13.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.
formatFormatselect (hardcover, paperback, ebook, audiobook, other)The format of the copy.
on_duplicateIf a copy existsselect (ask, add_copy, move, skip)The action if the library has a copy of the book.

home_keeper_library.add_copy​

Add copy

Add a copy of a book.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.
formatFormatselect (hardcover, paperback, ebook, audiobook, other)The format of the copy.
conditionConditionselect (new, fine, good, fair, poor)The condition of the copy.
acquiredAcquireddateThe date when the copy was acquired.
acquired_fromAcquired fromtextThe shop or the person.
pricePricenumber (min 0, max 1000000000)The price that was paid.
valueValuenumber (min 0, max 1000000000)The value of the copy now.
signedSignedbooleanThe copy is signed.
first_editionFirst editionbooleanThe copy is a first edition.
noteNotetext (multiline)A short note.

home_keeper_library.update_copy​

Update copy

Change a copy.

Admin only · Can return a response

FieldLabelSelectorDescription
copy_id (required)CopytextThe ID of the copy.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.
formatFormatselect (hardcover, paperback, ebook, audiobook, other)The format of the copy.
conditionConditionselect (new, fine, good, fair, poor)The condition of the copy.
acquiredAcquireddateThe date when the copy was acquired.
acquired_fromAcquired fromtextThe shop or the person.
pricePricenumber (min 0, max 1000000000)The price that was paid.
valueValuenumber (min 0, max 1000000000)The value of the copy now.
signedSignedbooleanThe copy is signed.
first_editionFirst editionbooleanThe copy is a first edition.
noteNotetext (multiline)A short note.

home_keeper_library.move_copy​

Move copy

Move a copy to a shelf.

Admin only · Can return a response

FieldLabelSelectorDescription
copy_id (required)CopytextThe ID of the copy.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.

home_keeper_library.delete_copy​

Delete copy

Delete a copy.

Admin only · Can return a response

FieldLabelSelectorDescription
copy_id (required)CopytextThe ID of the copy.

home_keeper_library.set_cover​

Set cover

Set the cover of a book.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
kind (required)Cover typeselect (openlibrary, custom, none)The source of the cover.
file_idFile IDtextThe ID from the cover upload.

home_keeper_library.set_reading​

Set reading status

Set the reading status of a book for a person. A non-admin user can set only their own status.

Open, for the caller's own person · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
person_idPersontextThe ID of the Home Assistant person.
statusStatusselect (want, reading, read, dnf, none)The reading status.
ratingRatingnumber (min 1, max 5)A rating from 1 to 5.
pagePagenumber (min 0, max 100000)The current page.
startedStarteddateThe start date.
finishedFinisheddateThe date when the book was finished.
read_countRead countnumber (min 0, max 100000)The number of times that the book was read.
private_notesPrivate notestext (multiline)Notes that only the person can read.

home_keeper_library.lend_book​

Lend book

Lend a copy to another person.

Admin only · Can return a response

FieldLabelSelectorDescription
copy_id (required)CopytextThe ID of the copy.
party (required)Other persontextThe name of the other person of the loan.
startedStarteddateThe start date.
dueDuedateThe due date.
noteNotetext (multiline)A short note.
add_taskAdd taskbooleanAdd a Home Keeper task on the due date.

home_keeper_library.borrow_book​

Add borrowed book

Record a book that a person borrowed.

Admin only · Can return a response

FieldLabelSelectorDescription
book_idBooktextThe ID of the book.
isbnISBNtextAn ISBN-10 or an ISBN-13.
titleTitletextThe title of the book.
authorsAuthorstext (multiple)The authors, in order.
party (required)Other persontextThe name of the other person of the loan.
startedStarteddateThe start date.
dueDuedateThe due date.
noteNotetext (multiline)A short note.
add_taskAdd taskbooleanAdd a Home Keeper task on the due date.
person_id (required)PersontextThe ID of the Home Assistant person.
formatFormatselect (hardcover, paperback, ebook, audiobook, other)The format of the copy.

home_keeper_library.return_loan​

Return loan

Record the return of a loan.

Admin only · Can return a response

FieldLabelSelectorDescription
loan_id (required)LoantextThe ID of the loan.
returnedReturneddateThe return date. The default is today.

home_keeper_library.update_loan​

Update loan

Change a loan.

Admin only · Can return a response

FieldLabelSelectorDescription
loan_id (required)LoantextThe ID of the loan.
partyOther persontextThe name of the other person of the loan.
startedStarteddateThe start date.
dueDuedateThe due date.
noteNotetext (multiline)A short note.
formatFormatselect (hardcover, paperback, ebook, audiobook, other)The format of the copy.

home_keeper_library.delete_loan​

Delete loan

Delete a loan and its Home Keeper task.

Admin only · Can return a response

FieldLabelSelectorDescription
loan_id (required)LoantextThe ID of the loan.

home_keeper_library.add_to_wishlist​

Add to wishlist

Put a book on the wishlist of a person.

Admin only · Can return a response

FieldLabelSelectorDescription
book_idBooktextThe ID of the book.
isbnISBNtextAn ISBN-10 or an ISBN-13.
titleTitletextThe title of the book.
authorsAuthorstext (multiple)The authors, in order.
person_id (required)PersontextThe ID of the Home Assistant person.
buyBuybooleanPut the book on the wishlist to-do list of the person.

home_keeper_library.update_wishlist​

Update wishlist

Change a wishlist entry.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
buyBuybooleanPut the book on the wishlist to-do list of the person.
person_idPersontextThe ID of the Home Assistant person.

home_keeper_library.remove_from_wishlist​

Remove from wishlist

Take a book off the wishlist.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.

home_keeper_library.got_wishlist_book​

Got wishlist book

Add a copy of a wishlist book and take it off the wishlist.

Admin only · Can return a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.
formatFormatselect (hardcover, paperback, ebook, audiobook, other)The format of the copy.

home_keeper_library.set_person_settings​

Set person settings

Set the library settings of a person. A non-admin user can set only their own sharing and goal.

Open, for the caller's own person · Can return a response

FieldLabelSelectorDescription
person_id (required)PersontextThe ID of the Home Assistant person.
share_readingShare reading statusbooleanOther users can see the status. When off, the sensors and the to-do list of the person are unavailable.
yearly_goalYearly goalnumber (min 0, max 100000)The number of books to read this year.
wishlist_todoWishlist listentityThe to-do list for the books to buy.

home_keeper_library.set_settings​

Set library settings

Set the currency of the prices and values of the copies.

Admin only · Can return a response

FieldLabelSelectorDescription
currency (required)CurrencytextA code of 3 letters, such as EUR or USD.

home_keeper_library.import_csv​

Import CSV

Import books from Goodreads, StoryGraph or a library export.

Admin only · Can return a response

FieldLabelSelectorDescription
content (required)CSV contenttext (multiline)The CSV text. At most 5 MB.
source (required)Sourceselect (goodreads, storygraph, library)The app that made the CSV file.
person_id (required)PersontextThe ID of the Home Assistant person.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.
import_notesImport notesbooleanImport the reviews and notes as private notes.
replace_readingReplace reading statusbooleanReplace a reading status that exists.
dry_runDry runbooleanOnly report the changes of the import.

home_keeper_library.export_csv​

Export CSV

Export the library as CSV text.

Admin only · Returns a response

FieldLabelSelectorDescription
person_idPersontextThe ID of the Home Assistant person.
formatFile formatselect (goodreads, library)goodreads or library.

home_keeper_library.export_data​

Export data

Export the library section of the Home Keeper export.

Admin only · Returns a response

FieldLabelSelectorDescription
files_dirFiles directorytextThe directory of a bundle for the cover files. It must be below .storage/home_keeper_import_export.

home_keeper_library.import_data​

Import data

Import the library section of a Home Keeper export. Records that match are updated, and no record is deleted.

Admin only · Returns a response

FieldLabelSelectorDescription
document (required)Library sectionobjectThe data of the library section of the export.
dry_runDry runbooleanOnly report the changes of the import.
files_dirFiles directorytextThe directory of a bundle for the cover files. It must be below .storage/home_keeper_import_export.

home_keeper_library.list_books​

List books

Return the books that match the filters.

Returns a response

FieldLabelSelectorDescription
querySearchtextText in the title, the authors, the ISBN or the tags.
room_idRoomtextThe ID of the room.
shelf_idShelftextThe ID of the shelf. Empty for no shelf.
ownedOwnedbooleanOnly books with a copy, or only books with no copy.
statusStatusselect (want, reading, read, dnf)The reading status.
person_idPersontextThe ID of the Home Assistant person.
limitLimitnumber (min 0, max 100000)The maximum number of books.

home_keeper_library.get_book​

Get book

Return a book with its copies and loans.

Returns a response

FieldLabelSelectorDescription
book_id (required)BooktextThe ID of the book.

home_keeper_library.list_locations​

List locations

Return the rooms, bookcases and shelves.

Returns a response

Takes no fields.

home_keeper_library.list_loans​

List loans

Return the loans.

Returns a response

FieldLabelSelectorDescription
statusLoan statusselect (open, returned, all)open, returned or all.
directionDirectionselect (out, in)out for a lent book, in for a borrowed book.

home_keeper_library.list_people​

List people

Return the people and their library settings.

Returns a response

Takes no fields.

Events​

The integration fires a bus event for every observable state change. Names follow home_keeper_library_<noun>_<verb>. For when each one fires in context, and worked automations, see the events guide.

EventFires whenPayloadAdds
home_keeper_library_room_addedA room was added.room
home_keeper_library_room_updatedA room changed.roomchanged_fields
home_keeper_library_room_removedA room was deleted.room
home_keeper_library_bookcase_addedA bookcase was added.bookcase
home_keeper_library_bookcase_updatedA bookcase changed.bookcasechanged_fields
home_keeper_library_bookcase_removedA bookcase was deleted.bookcase
home_keeper_library_shelf_addedA shelf was added.shelf
home_keeper_library_shelf_updatedA shelf changed.shelfchanged_fields
home_keeper_library_shelf_removedA shelf was deleted.shelf
home_keeper_library_book_addedA book was added.book
home_keeper_library_book_updatedThe fields, the cover or the wishlist entry of a book changed.bookchanged_fields
home_keeper_library_book_removedA book was deleted, with its copies, reading rows and loans.book
home_keeper_library_copy_addedA copy of a book was added.bookcopy_id, shelf_id
home_keeper_library_copy_movedA copy moved to another shelf, or off its shelf.bookcopy_id, shelf_id, previous_shelf_id
home_keeper_library_copy_updatedThe fields of a copy changed, other than its shelf.bookcopy_id, shelf_id, changed_fields
home_keeper_library_copy_removedA copy was deleted.bookcopy_id, shelf_id
home_keeper_library_reading_changedThe reading row of a person changed. status is None for a removed row.bookstatus, previous_status
home_keeper_library_reading_updatedThe rating, page, dates, count or notes of a reading row changed, and the status stayed. Names the fields, never the notes.bookstatus, changed_fields
home_keeper_library_book_finishedThe reading status of a person became read.bookfinished, rating, read_count
home_keeper_library_loan_startedA book was lent or borrowed.bookloan_id, direction, copy_id, party, started, due, returned
home_keeper_library_loan_returnedA loan was returned.bookloan_id, direction, copy_id, party, started, due, returned
home_keeper_library_loan_updatedThe party, the dates, the format or the note of a loan changed.bookloan_id, direction, copy_id, party, started, due, returned, changed_fields
home_keeper_library_loan_removedA loan was deleted.bookloan_id, direction, copy_id, party, started, due, returned
home_keeper_library_loan_overdueAn open loan passed its due date. Fires once for each due date.bookloan_id, direction, copy_id, party, started, due, returned
home_keeper_library_wishlist_addedA book was added to a wishlist.bookbuy, bought
home_keeper_library_wishlist_removedA book left the wishlist.bookbuy, bought
home_keeper_library_import_completedA CSV import was written.import
home_keeper_library_data_importedThe library section of a Home Keeper import was written.data_import
home_keeper_library_person_settings_updatedThe library settings of a person changed. Names the settings only.person_settings
home_keeper_library_settings_updatedThe options of the library changed, such as the currency.settings

The integration also listens for events it does not own:

EventReaction
home_keeper_task_completedA completed loan task returns its loan.
home_keeper_task_deletedA deleted loan task clears the task id of its loan.
home_keeper_register_companionsThe library registers as a companion again.

Payloads​

Events sharing a payload shape are interchangeable in one automation template. Per-event additions from the table above merge onto these.

Room payload​

Carried by home_keeper_library_room_added, home_keeper_library_room_updated, home_keeper_library_room_removed.

FieldTypeNotes
room_idstr
namestr
originstr | NoneThe origin marker of the caller.

Bookcase payload​

Carried by home_keeper_library_bookcase_added, home_keeper_library_bookcase_updated, home_keeper_library_bookcase_removed.

FieldTypeNotes
bookcase_idstr
room_idstr
namestr
originstr | NoneThe origin marker of the caller.

Shelf payload​

Carried by home_keeper_library_shelf_added, home_keeper_library_shelf_updated, home_keeper_library_shelf_removed.

FieldTypeNotes
shelf_idstr
bookcase_idstr
namestr
originstr | NoneThe origin marker of the caller.

Book payload​

Carried by home_keeper_library_book_added, home_keeper_library_book_updated, home_keeper_library_book_removed, home_keeper_library_copy_added, home_keeper_library_copy_moved, home_keeper_library_copy_updated, home_keeper_library_copy_removed, home_keeper_library_reading_changed, home_keeper_library_reading_updated, home_keeper_library_book_finished, home_keeper_library_loan_started, home_keeper_library_loan_returned, home_keeper_library_loan_updated, home_keeper_library_loan_removed, home_keeper_library_loan_overdue, home_keeper_library_wishlist_added, home_keeper_library_wishlist_removed.

FieldTypeNotes
book_idstrStable id. A rename keeps it.
titlestrThe title at the time of the event.
person_idstr | NoneThe Home Assistant person, if any.
originstr | NoneThe origin marker of the caller.

Import payload​

Carried by home_keeper_library_import_completed.

FieldTypeNotes
person_idstr | None
sourcestrgoodreads, storygraph or library.
rowsint
books_addedint
books_matchedint
copies_addedint
reading_setint
wishlist_addedint
errorsint
originstr | NoneThe origin marker of the caller.

Data_import payload​

Carried by home_keeper_library_data_imported.

FieldTypeNotes
countsdict[str, dict[str, int]]created, updated and skipped for each section.
originstr | NoneThe origin marker of the caller.

Person_settings payload​

Carried by home_keeper_library_person_settings_updated.

FieldTypeNotes
person_idstrThe Home Assistant person.
changed_fieldslist[str]The names of the changed settings.
originstr | NoneThe origin marker of the caller.

Settings payload​

Carried by home_keeper_library_settings_updated.

FieldTypeNotes
changed_fieldslist[str]The changed options.
currencystrThe currency code now.
originstr | NoneThe origin marker of the caller.

Entities​

The integration's state is readable as ordinary entities, so most automations never need to call an action to find something out.

sensor​

Entities: Books (books), Loans out (loans_out), Loans overdue (loans_overdue), {person} books read this year (books_read_this_year), {person} reading now (reading_now).

State attributes:

FieldTypeNotes
goalint | NoneBooks read this year: the yearly goal.
pagesintBooks read this year: the pages read.
yearintBooks read this year: the year.
bookslist[str]Reading now: at most 10 titles.
person_idstrThe person of a per-person sensor.

todo​

Entities: {person} to read (to_read).

State attributes:

FieldTypeNotes
person_idstrThe person of the list.

Config entry options​

The options of the config entry. The ones marked Configure dialog are on the options form of the integration. The set_settings action writes the currency too.

OptionLabelWhereNotes
currencyCurrencyConfigure dialogA code of 3 letters, such as EUR or USD.

Errors​

A rejected action raises a localized Home Assistant error. The key is stable; the message shown is in the user's language.

KeyEnglish message
admin_requiredOnly an admin user can do this.
already_on_wishlistThe book is already on a wishlist.
book_not_foundNo book has the ID {id}.
bookcase_not_emptyThe bookcase has {count} shelves. Use force to delete them too.
bookcase_not_foundNo bookcase has the ID {id}.
copy_not_foundNo copy has the ID {id}.
copy_on_loanThe copy is lent out. Return the loan first.
csv_too_largeThe CSV text is too large. The maximum is {mb} MB.
csv_unreadableThe CSV text has no {column} column.
due_before_startThe due date is before the start date.
duplicate_isbnAnother book has the ISBN {isbn}.
expected_multipart_uploadThe upload must be a multipart form.
field_required{field} is required.
field_too_long{field} is too long. The maximum is {max}.
file_too_largeThe file is too large. The maximum is {mb} MB.
files_dir_invalidThe files directory must be below .storage/home_keeper_import_export.
image_unreadableThe image cannot be read.
import_area_not_foundNo area matches {name}.
import_cover_unreadableThe cover file {file} is not a valid image.
import_format_too_newThe document has format {format}. This version reads format {max} or lower.
import_not_a_list{field} must be a list.
import_not_an_object{field} must be an object.
import_person_not_foundNo person matches {name}.
import_reference_missing{field} {id} is not in the document or in the library.
import_todo_not_foundNo to-do list matches {name}.
invalid_choice{field} must be one of: {options}.
invalid_currency{currency} is not a currency code of 3 letters.
invalid_date{field} must be a date in the form YYYY-MM-DD.
invalid_fieldThe value of {field} is not valid.
invalid_isbn{isbn} is not a valid ISBN.
invalid_openlibrary_edition{edition} is not an Open Library edition key or URL.
isbn_or_title_requiredGive a book ID, an ISBN or a title.
loan_not_foundNo loan has the ID {id}.
lookup_unavailableOpen Library is not available. Try again later.
no_file_in_uploadThe upload has no file.
no_openlibrary_coverOpen Library has no cover for this book.
no_personYour user has no Home Assistant person. Link a person to the user.
not_loadedHome Keeper Library is not loaded.
not_on_wishlistThe book is not on a wishlist.
openlibrary_already_linkedThis book is already linked to Open Library.
openlibrary_ambiguousOpen Library found more than 1 work that can be this book. Add the book on the Open Library website.
openlibrary_login_failedOpen Library did not accept the account keys. Connect the account again.
openlibrary_needs_authorAdd an author to the book before you send it.
openlibrary_not_connectedConnect an Open Library account in the library settings first.
openlibrary_not_foundOpen Library has no edition {edition}.
out_of_range{field} must be from {low} to {high}.
person_not_foundNo person has the ID {id}.
room_not_emptyThe room has {count} bookcases. Use force to delete them too.
room_not_foundNo room has the ID {id}.
shelf_not_emptyThe shelf has {count} copies. Use force to move them to no shelf.
shelf_not_foundNo shelf has the ID {id}.
todo_entity_not_found{entity_id} is not a to-do list.
todo_not_allowedOnly {person} or an admin user can change this to-do list.
unsupported_imageThe file must be a JPEG, PNG or WebP image.
upload_not_foundNo uploaded cover has the ID {file_id}.
upload_requires_userAn upload needs a signed-in user.