Skip to content

Commit

Permalink
Adds support for printer configuration
Browse files Browse the repository at this point in the history
Adds support for printer configuration
  • Loading branch information
valadas committed Jan 31, 2024
1 parent 83b2bdf commit 79629fe
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 0 deletions.
23 changes: 23 additions & 0 deletions grocy/DOCS.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,8 @@ or disabled:
- `shoppinglist`
- `stock`
- `tasks`
- `label_printer`
- `thermal_printer`

Set it `true` to enable it, `false` otherwise.

Expand Down Expand Up @@ -202,6 +204,27 @@ Allows you to specify a default ingress user if desired (e.g. `admin`).

If no ingress user is set, the default login authentication is used.

### Option: `Label Printer`

Allows posting to a webhook to print labels

- `label_printer_webhook` The URI that Grocy will POST to when asked to print a label
- `label_printer_run_server` Whether the webhook will be called server- or client-side
- `label_printer_params` Additional parameters supplied to the webhook
- `` TRUE to use JSON or FALSE to use normal POST request variables

### Option: `Thermal Printer`

Thermal printers are receipt printers, not regular printers,
the printer must support the ESC/POS protocol, see https://github.com/mike42/escpos-php

- `tprinter_is_network_printer` Set to true if it's a network printer
- `tprinter_print_quantity_name` Set to false if you do not want to print the quantity names (related to the shopping list)
- `tprinter_print_notes` Set to false if you do not want to print notes (related to the shopping list)
- `tprinter_ip` IP of the network printer (does only matter if it's a network printer)
- `tprinter_port` Port of the network printer (does only matter if it's a network printer)
- `tprinter_connector` Printer device (does only matter if you use a locally attached printer) For USB on Linux this is often '/dev/usb/lp0', for serial printers it could be similar to '/dev/ttyS0' Make sure that the user that runs the webserver has permissions to write to the printer - on Linux add your webserver user to the LP group with usermod -a -G lp www-data

## Known issues and limitations

- Grocy support to provide custom lookup resources to lookup information
Expand Down
14 changes: 14 additions & 0 deletions grocy/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ options:
shoppinglist: true
stock: true
tasks: true
label_printer: false
thermal_printer: false
tweaks:
chores_assignment: true
multiple_shopping_lists: true
Expand Down Expand Up @@ -60,6 +62,8 @@ schema:
shoppinglist: bool
stock: bool
tasks: bool
label_printer: bool
thermal_printer: bool
tweaks:
calendar_first_day_of_week: int(0,6)?
chores_assignment: bool
Expand All @@ -71,6 +75,16 @@ schema:
stock_product_freezing: bool
stock_product_opened_tracking: bool
stock_count_opened_products_against_minimum_stock_amount: bool
label_printer_webhook: str
label_printer_run_server: bool
label_printer_params: str
label_printer_hook_json: bool
tprinter_is_network_printer: bool
tprinter_print_quantity_name: bool
tprinter_print_notes: bool
tprinter_ip: str
tprinter_port: int(1,65535)?
tprinter_connector: str
ssl: bool
certfile: str
keyfile: str
Expand Down
58 changes: 58 additions & 0 deletions grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
# ==============================================================================
declare caldayweek
declare mealday
declare label_printer_webhook
declare label_printer_params
declare tprinter_ip
declare tprinter_port
declare tprinter_connector
export GROCY_CULTURE
export GROCY_CURRENCY
export GROCY_ENTRY_PAGE
Expand Down Expand Up @@ -44,6 +49,14 @@ if bashio::config.false 'features.tasks'; then
export GROCY_FEATURE_FLAG_TASKS=0
fi

if bashio::config.true 'features.label_printer'; then
export GROCY_FEATURE_FLAG_LABEL_PRINTER=1
fi

if bashio::config.true 'features.thermal_printer'; then
export FEATURE_FLAG_THERMAL_PRINTER=1
fi

if bashio::config.has_value 'tweaks.calendar_first_day_of_week'; then
caldayweek=$(bashio::config 'tweaks.calendar_first_day_of_week')
export GROCY_CALENDAR_FIRST_DAY_OF_WEEK=${caldayweek}
Expand Down Expand Up @@ -86,6 +99,51 @@ if bashio::config.false 'tweaks.stock_count_opened_products_against_minimum_stoc
export GROCY_FEATURE_SETTING_STOCK_COUNT_OPENED_PRODUCTS_AGAINST_MINIMUM_STOCK_AMOUNT=0
fi

if bashio::config.has_value 'tweaks.label_printer_webhook'; then
label_printer_webhook=$(bashio::config 'tweaks.label_printer_webhook')
export GROCY_MEAL_PLAN_FIRST_DAY_OF_WEEK=${label_printer_webhook}
fi

if bashio::config.false 'tweaks.label_printer_run_server'; then
export GROCY_LABEL_PRINTER_RUN_SERVER=0
fi

if bashio::config.has_value 'tweaks.label_printer_params'; then
label_printer_params=$(bashio::config 'tweaks.label_printer_params')
export GROCY_LABEL_PRINTER_PARAMS=${label_printer_params}
fi

if bashio::config.true 'tweaks.label_printer_hook_json'; then
export GROCY_LABEL_PRINTER_HOOK_JSON=1
fi

if bashio::config.true 'tweaks.tprinter_is_network_printer'; then
export GROCY_TPRINTER_IS_NETWORK_PRINTER=1
fi

if bashio::config.false 'tweaks.tprinter_print_quantity_name'; then
export GROCY_TPRINTER_PRINT_QUANTITY_NAME=0
fi

if bashio::config.false 'tweaks.tprinter_print_notes'; then
export GROCY_TPRINTER_PRINT_NOTES=0
fi

if bashio::config.has_value 'tweaks.tprinter_ip'; then
tprinter_ip=$(bashio::config 'tweaks.tprinter_ip')
export GROCY_TPRINTER_IP=${tprinter_ip}
fi

if bashio::config.has_value 'tweaks.tprinter_port'; then
tprinter_ip=$(bashio::config 'tweaks.tprinter_port')
export GROCY_TPRINTER_PORT=${tprinter_port}
fi

if bashio::config.has_value 'tweaks.tprinter_connector'; then
tprinter_connector=$(bashio::config 'tweaks.tprinter_connector')
export GROCY_TPRINTER_CONNECTOR=${tprinter_connector}
fi

GROCY_CULTURE=$(bashio::config "culture")
GROCY_CURRENCY=$(bashio::config "currency")
GROCY_ENTRY_PAGE=$(bashio::config 'entry_page')
Expand Down

0 comments on commit 79629fe

Please sign in to comment.