Adds support for printer configuration

Adds support for printer configuration
This commit is contained in:
Daniel 2024-01-31 00:36:02 -05:00 committed by Franck Nijhof
parent 6ff0289196
commit b1a5a7750d
3 changed files with 95 additions and 0 deletions

View file

@ -171,6 +171,8 @@ or disabled:
- `shoppinglist` - `shoppinglist`
- `stock` - `stock`
- `tasks` - `tasks`
- `label_printer`
- `thermal_printer`
Set it `true` to enable it, `false` otherwise. Set it `true` to enable it, `false` otherwise.
@ -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. 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 ## Known issues and limitations
- Grocy support to provide custom lookup resources to lookup information - Grocy support to provide custom lookup resources to lookup information

View file

@ -33,6 +33,8 @@ options:
shoppinglist: true shoppinglist: true
stock: true stock: true
tasks: true tasks: true
label_printer: false
thermal_printer: false
tweaks: tweaks:
chores_assignment: true chores_assignment: true
multiple_shopping_lists: true multiple_shopping_lists: true
@ -60,6 +62,8 @@ schema:
shoppinglist: bool shoppinglist: bool
stock: bool stock: bool
tasks: bool tasks: bool
label_printer: bool
thermal_printer: bool
tweaks: tweaks:
calendar_first_day_of_week: int(0,6)? calendar_first_day_of_week: int(0,6)?
chores_assignment: bool chores_assignment: bool
@ -71,6 +75,16 @@ schema:
stock_product_freezing: bool stock_product_freezing: bool
stock_product_opened_tracking: bool stock_product_opened_tracking: bool
stock_count_opened_products_against_minimum_stock_amount: 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 ssl: bool
certfile: str certfile: str
keyfile: str keyfile: str

View file

@ -6,6 +6,11 @@
# ============================================================================== # ==============================================================================
declare caldayweek declare caldayweek
declare mealday declare mealday
declare label_printer_webhook
declare label_printer_params
declare tprinter_ip
declare tprinter_port
declare tprinter_connector
export GROCY_CULTURE export GROCY_CULTURE
export GROCY_CURRENCY export GROCY_CURRENCY
export GROCY_ENTRY_PAGE export GROCY_ENTRY_PAGE
@ -44,6 +49,14 @@ if bashio::config.false 'features.tasks'; then
export GROCY_FEATURE_FLAG_TASKS=0 export GROCY_FEATURE_FLAG_TASKS=0
fi 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 if bashio::config.has_value 'tweaks.calendar_first_day_of_week'; then
caldayweek=$(bashio::config 'tweaks.calendar_first_day_of_week') caldayweek=$(bashio::config 'tweaks.calendar_first_day_of_week')
export GROCY_CALENDAR_FIRST_DAY_OF_WEEK=${caldayweek} export GROCY_CALENDAR_FIRST_DAY_OF_WEEK=${caldayweek}
@ -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 export GROCY_FEATURE_SETTING_STOCK_COUNT_OPENED_PRODUCTS_AGAINST_MINIMUM_STOCK_AMOUNT=0
fi 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_CULTURE=$(bashio::config "culture")
GROCY_CURRENCY=$(bashio::config "currency") GROCY_CURRENCY=$(bashio::config "currency")
GROCY_ENTRY_PAGE=$(bashio::config 'entry_page') GROCY_ENTRY_PAGE=$(bashio::config 'entry_page')