Skip to main content
iVentureTeam

pos_cashdro_admin_buttons

Two buttons on the CashDro settings: download the bus worker logs, and open the machine's own diagnostics page.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 27, 2026Updated August 31, 20264 min read
Technical namepos_cashdro_admin_buttons
Viewsform (view widget, <widget> element)
Modulepos_cashdro, CashDro cash machine integration
Used in coreThe CashDro configuration form in pos_cashdro
VersionsOdoo 20.0, Odoo 19.0
No-code setupNo. It is set in view XML and depends on module-specific data
Alternativespos_glory_cash_admin_buttons, lna_checklist, pos_payment_provider_cards

What the CashDro admin buttons does

A CashDro is a cash recycler that sits beside the till, counts notes and coins and reconciles the drawer. When it stops talking to Odoo, the two questions are always the same: what did the connection actually do, and is the machine itself healthy.

This widget answers both from the configuration form. One button downloads the logs the browser has been collecting for the CashDro channel, written to a timestamped text file you can attach to a support ticket.

The other opens the machine's own diagnostics page, served by the CashDro itself at the address configured on the form.

What this means for your team

Cash automation pays for itself in reconciliation time, but only if the failure mode is diagnosable by the shop rather than by a visit. Putting logs and diagnostics one click from the configuration is what makes that possible.

The thing worth planning is the network. Because a cash machine is on the local network and Odoo is usually not, the protocol mismatch between a secure page and a plain HTTP device is a real obstacle, which is exactly what the local network access mode exists to solve.

Supported options in Odoo 19

The widget takes the standard view widget props and nothing else, so there are no options to set in the view. What it reads from the record is listed below. Read from the CashDro admin buttons source, Odoo 19.0.

OptionTypeWhat it does
cashdro_ipfield read from the recordThe machine's address. Without it the diagnostics button warns instead of opening a tab.(since Odoo 19.0)
cashdro_use_lnafield read from the recordLocal network access mode. When set, the diagnostics link is forced to plain HTTP.(since Odoo 19.0)

The protocol is chosen, not assumed. When local network access mode is enabled the diagnostics link is forced to plain HTTP; otherwise it follows whatever protocol the Odoo page itself is served over.

Working examples

Placing it

<widget name="pos_cashdro_admin_buttons"/>

No attributes. It reads the address and the access mode from the record.

The downloaded log name

cashdro_logs_2026-08-27-14-05-33.txt

Timestamped, so several downloads do not overwrite each other.

What happens with no address

# a warning notification, and no tab is opened

Configure the address first.

Where the logs come from, and why the protocol is chosen

The log download is the more interesting half. The widget instantiates the bus worker logger for the CashDro channel, asks it for its collected lines, joins them into a plain text blob and hands that to the standard download helper with a timestamped name.

Those logs come from the shared worker rather than from this component, which is why they cover the whole session rather than only what happened since the form was opened.

The diagnostics button is guarded. With no address configured it shows a warning notification and returns, which is a small thing that saves the classic support round trip of a blank tab and a confused user.

When an address is present, the protocol is decided from the local network access flag on the record: that mode forces plain HTTP, and otherwise the page's own protocol is reused. The path opened is the machine's diagnosis route.

Version compatibility

VersionStatusNotes
Odoo 20.0Partial / changedNot released. Adds local network access initialization on mount.
Odoo 19.0VerifiedFirst version. Verified against the shipped source.
Odoo 18.0Not availableWidget does not exist.
Odoo 17.0Not availableWidget does not exist.
Odoo 16.0Not availableWidget does not exist.

Upgrade note. The widget is new in Odoo 19 along with the CashDro integration itself, so there is nothing to migrate from earlier versions.

What is changing in Odoo 20

Odoo 20 is expected at Odoo Experience in Brussels, 24 to 26 September 2026. The development branch is unstable and this may still change; we re-verify this page after the release.

Local network access initialization is added. The development branch runs a setup routine on mount when the local network access flag is set, and the component is converted to the newer props and effect conventions. The two buttons and their behavior are unchanged.

Common problems and fixes

SymptomCause and fix
Diagnostics shows a warning instead of openingNo address is configured on the record. Set the machine's address, then try again.
The diagnostics tab is blockedA secure Odoo page opening a plain HTTP device. Enable local network access mode, which forces plain HTTP deliberately.
The log file is emptyThe bus worker collected nothing for that channel in this session. Reproduce the fault first, then download.
Downloads overwrite each otherThey should not; the name carries a timestamp. Check the browser is not renaming files.
The buttons are missingThe CashDro module is not installed in that database. Install it, or remove the widget element from the view.
Options do nothingThe widget takes only the standard view widget props. Nothing to configure; it reads the record.

CashDro admin buttons vs the alternatives

WidgetBest forKey difference
pos_cashdro_admin_buttonsDiagnosing a CashDro connection from the configuration formLog download plus a guarded diagnostics link whose protocol follows the access mode
pos_glory_cash_admin_buttonsThe Glory cash machineAdds a live connection status and a reset action
lna_checklistChecking local network access prerequisitesA checklist rather than device tools
pos_payment_provider_cardsChoosing a payment terminal providerSetup rather than diagnostics

The Glory cash machine integration has its own equivalent widget with a connection status and a reset action, which is the closest comparison. For a device with no vendor diagnostics page, the log download alone is what you get.

Frequently asked questions

Where do the downloaded logs come from?+
The bus worker logger for the CashDro channel, so they cover the whole browser session rather than only what happened after the form was opened.
Why does the diagnostics button warn me?+
Because no address is configured on the record. The widget refuses to open a broken link and tells you instead.
Why is the diagnostics link plain HTTP sometimes?+
Local network access mode forces it, because a cash machine on the local network usually cannot serve a secure page. Without that mode the widget reuses the protocol Odoo itself is on.
Does it have options?+
None. It takes the standard view widget props and reads the address and access mode from the record.
Does it change in Odoo 20?+
On the development branch it adds local network access initialization on mount and is converted to the newer component conventions. The buttons themselves are unchanged.

Point of Sale hardware that stays connected

Cash recyclers, terminals and scales each fail in their own way, and the network is usually the reason. We implement and support Odoo Point of Sale hardware setups on versions 16 through 19.

Book a free consultation

How this page was produced

The two button handlers, the timestamped file name, the missing address guard and the protocol choice driven by the local network access flag were read from the CashDro admin buttons source on the Odoo 19.0 branch. The Odoo 20 section comes from a line by line comparison against the same file on the public development branch. Spotted an error? Tell us and we will correct the page.