Arksine / moonraker

Web API Server for Klipper
https://moonraker.readthedocs.io
GNU General Public License v3.0
1.06k stars 407 forks source link

"&" does not work in Tasmota passwords. #609

Closed raldone01 closed 1 year ago

raldone01 commented 1 year ago

What happened

See similar issue: #393

I used the following password: test& It failed with 401.

Client

Mainsail

Browser

Other or N/A

How to reproduce

Set the following password on the tasmota device: test&

I used the following configuration:

[power printer_plug]
type: tasmota
address: 172.24.5.5
password: test&
off_when_shutdown: True
on_when_job_queued: True
locked_while_printing: True
restart_klipper_when_powered: True
restart_delay: 1.

Additional information

Moonraker log:

--------------------Moonraker Log Start--------------------
data_path: /home/pi/printer_data
is_default_data_path: False
config_file: /home/pi/printer_data/config/moonraker.conf
startup_warnings: []
verbose: False
debug: False
asyncio_debug: False
is_backup_config: False
log_file: /home/pi/printer_data/logs/moonraker.log
software_version: v0.7.1-868-g0de712e8
python_version: 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110]
2023-02-11 02:04:38,702 [loghelper.py:__init__()] - data_path: /home/pi/printer_data
2023-02-11 02:04:38,703 [loghelper.py:__init__()] - is_default_data_path: False
2023-02-11 02:04:38,703 [loghelper.py:__init__()] - config_file: /home/pi/printer_data/config/moonraker.conf
2023-02-11 02:04:38,703 [loghelper.py:__init__()] - startup_warnings: []
2023-02-11 02:04:38,703 [loghelper.py:__init__()] - verbose: False
2023-02-11 02:04:38,703 [loghelper.py:__init__()] - debug: False
2023-02-11 02:04:38,703 [loghelper.py:__init__()] - asyncio_debug: False
2023-02-11 02:04:38,704 [loghelper.py:__init__()] - is_backup_config: False
2023-02-11 02:04:38,704 [loghelper.py:__init__()] - log_file: /home/pi/printer_data/logs/moonraker.log
2023-02-11 02:04:38,704 [loghelper.py:__init__()] - software_version: v0.7.1-868-g0de712e8
2023-02-11 02:04:38,704 [loghelper.py:__init__()] - python_version: 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110]
2023-02-11 02:04:38,721 [confighelper.py:read_file()] - Configuration File '/home/pi/printer_data/config/moonraker.conf' parsed, total size: 2370 B
2023-02-11 02:04:38,722 [moonraker.py:add_log_rollover_item()] - 
#################### Moonraker Configuration ####################

[server]
host = 0.0.0.0
port = 7125
max_upload_size = 1024
klippy_uds_address = ~/printer_data/comms/klippy.sock

[file_manager]
enable_object_processing = False

[authorization]
cors_domains = 
    https://my.mainsail.xyz
    http://my.mainsail.xyz
    http://*.local
    http://*.lan
trusted_clients = 
    10.0.0.0/8
    127.0.0.0/8
    169.254.0.0/16
    172.16.0.0/12
    192.168.0.0/16
    FE80::/10
    ::1/128

[octoprint_compat]

[history]

[announcements]
subscriptions = 
    mainsail

[update_manager]
refresh_interval = 168
enable_auto_refresh = True

[update_manager mainsail]
type = web
channel = stable
repo = mainsail-crew/mainsail
path = ~/mainsail

[update_manager mainsail-config]
type = git_repo
primary_branch = master
path = ~/mainsail-config
origin = https://github.com/mainsail-crew/mainsail-config.git
managed_services = klipper

[update_manager crowsnest]
type = git_repo
path = ~/crowsnest
origin = https://github.com/mainsail-crew/crowsnest.git
managed_services = crowsnest
install_script = tools/install.sh

[update_manager sonar]
type = git_repo
path = ~/sonar
origin = https://github.com/mainsail-crew/sonar.git
primary_branch = main
managed_services = sonar
install_script = tools/install.sh

[power printer_plug]
type = tasmota
address = 172.24.5.5
password = test&
off_when_shutdown = True
on_when_job_queued = True
locked_while_printing = True
restart_klipper_when_powered = True
restart_delay = 1.

#################################################################
All Configuration Files:
/home/pi/printer_data/config/moonraker.conf
#################################################################
2023-02-11 02:04:38,773 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/logs/rollover
2023-02-11 02:04:38,774 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.logs.rollover
2023-02-11 02:04:38,774 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/info
2023-02-11 02:04:38,775 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.info
2023-02-11 02:04:38,776 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/config
2023-02-11 02:04:38,776 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.config
2023-02-11 02:04:38,776 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/restart
2023-02-11 02:04:38,777 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.restart
2023-02-11 02:04:38,866 [moonraker.py:load_component()] - Component (dbus_manager) loaded
2023-02-11 02:04:38,879 [moonraker.py:add_log_rollover_item()] - Unsafe Shutdown Count: 0
2023-02-11 02:04:38,889 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/database/list
2023-02-11 02:04:38,890 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.database.list
2023-02-11 02:04:38,890 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /server/database/item
2023-02-11 02:04:38,891 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.database.get_item, server.database.post_item, server.database.delete_item
2023-02-11 02:04:38,891 [moonraker.py:load_component()] - Component (database) loaded
2023-02-11 02:04:38,959 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/list
2023-02-11 02:04:38,960 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.list
2023-02-11 02:04:38,960 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/metadata
2023-02-11 02:04:38,961 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.metadata
2023-02-11 02:04:38,961 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/thumbnails
2023-02-11 02:04:38,962 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.thumbnails
2023-02-11 02:04:38,962 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/roots
2023-02-11 02:04:38,963 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.roots
2023-02-11 02:04:38,964 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /server/files/directory
2023-02-11 02:04:38,965 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.get_directory, server.files.post_directory, server.files.delete_directory
2023-02-11 02:04:38,965 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/move
2023-02-11 02:04:38,966 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.move
2023-02-11 02:04:38,966 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/copy
2023-02-11 02:04:38,967 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.copy
2023-02-11 02:04:38,967 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/zip
2023-02-11 02:04:38,968 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.zip
2023-02-11 02:04:38,968 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.delete_file
2023-02-11 02:04:38,982 [moonraker.py:load_component()] - Component (file_manager) loaded
2023-02-11 02:04:38,986 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/pause
2023-02-11 02:04:38,988 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.pause
2023-02-11 02:04:38,988 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/resume
2023-02-11 02:04:38,989 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.resume
2023-02-11 02:04:38,989 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/cancel
2023-02-11 02:04:38,991 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.cancel
2023-02-11 02:04:38,991 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/start
2023-02-11 02:04:38,992 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.start
2023-02-11 02:04:38,992 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/restart
2023-02-11 02:04:38,993 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.restart
2023-02-11 02:04:38,993 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/firmware_restart
2023-02-11 02:04:38,994 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.firmware_restart
2023-02-11 02:04:38,994 [moonraker.py:load_component()] - Component (klippy_apis) loaded
2023-02-11 02:04:39,374 [moonraker.py:load_component()] - Component (secrets) loaded
2023-02-11 02:04:39,389 [moonraker.py:load_component()] - Component (template) loaded
2023-02-11 02:04:39,442 [moonraker.py:add_log_rollover_item()] - 
System Info:

***python***
  version: sys.version_info(major=3, minor=9, micro=2, releaselevel='final', serial=0)
  version_string: 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110]

***cpu_info***
  cpu_count: 4
  bits: 64bit
  processor: aarch64
  cpu_desc: 
  serial_number: f58ae615
  hardware_desc: BCM2835
  model: Raspberry Pi 3 Model B Rev 1.2
  total_memory: 880364
  memory_units: kB

***sd_info***
  manufacturer_id: 03
  manufacturer: Sandisk
  oem_id: 5344
  product_name: ACLCE
  product_revision: 8.0
  serial_number: 99984127
  manufacturer_date: 3/2017
  capacity: 59.5 GiB
  total_bytes: 63864569856

***distribution***
  name: Debian GNU/Linux 11 (bullseye)
  id: debian
  version: 11
  version_parts: {'major': '11', 'minor': '', 'build_number': ''}
  like: 
  codename: bullseye
  release_info: {'name': 'MainsailOS', 'version_id': '1.0.1', 'codename': 'bullseye', 'id': 'mainsailos'}

***virtualization***
  virt_type: none
  virt_identifier: none

***network***

***canbus***

***Allowed Services***
  klipper_mcu
  webcamd
  MoonCord
  KlipperScreen
  moonraker-telegram-bot
  moonraker-obico
  sonar
  crowsnest
  octoeverywhere
2023-02-11 02:04:39,448 [moonraker.py:load_component()] - Component (shell_command) loaded
2023-02-11 02:04:39,448 [machine.py:__init__()] - Using System Provider: systemd_dbus
2023-02-11 02:04:39,450 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/reboot
2023-02-11 02:04:39,455 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.reboot
2023-02-11 02:04:39,455 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/shutdown
2023-02-11 02:04:39,456 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.shutdown
2023-02-11 02:04:39,457 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/services/restart
2023-02-11 02:04:39,458 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.services.restart
2023-02-11 02:04:39,458 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/services/stop
2023-02-11 02:04:39,459 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.services.stop
2023-02-11 02:04:39,459 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/services/start
2023-02-11 02:04:39,460 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.services.start
2023-02-11 02:04:39,460 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/system_info
2023-02-11 02:04:39,462 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.system_info
2023-02-11 02:04:39,462 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/sudo/info
2023-02-11 02:04:39,463 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.sudo.info
2023-02-11 02:04:39,463 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/sudo/password
2023-02-11 02:04:39,464 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.sudo.password
2023-02-11 02:04:39,466 [moonraker.py:load_component()] - Component (machine) loaded
2023-02-11 02:04:39,470 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/temperature_store
2023-02-11 02:04:39,472 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.temperature_store
2023-02-11 02:04:39,472 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/gcode_store
2023-02-11 02:04:39,473 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.gcode_store
2023-02-11 02:04:39,473 [moonraker.py:load_component()] - Component (data_store) loaded
2023-02-11 02:04:39,477 [proc_stats.py:__init__()] - Detected 'vcgencmd', throttle checking enabled
2023-02-11 02:04:39,479 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/proc_stats
2023-02-11 02:04:39,480 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.proc_stats
2023-02-11 02:04:39,480 [moonraker.py:load_component()] - Component (proc_stats) loaded
2023-02-11 02:04:39,484 [moonraker.py:load_component()] - Component (job_state) loaded
2023-02-11 02:04:39,488 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST DELETE) /server/job_queue/job
2023-02-11 02:04:39,489 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.post_job, server.job_queue.delete_job
2023-02-11 02:04:39,489 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/job_queue/pause
2023-02-11 02:04:39,490 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.pause
2023-02-11 02:04:39,490 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/job_queue/start
2023-02-11 02:04:39,492 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.start
2023-02-11 02:04:39,492 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/job_queue/status
2023-02-11 02:04:39,493 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.status
2023-02-11 02:04:39,493 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/job_queue/jump
2023-02-11 02:04:39,494 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.jump
2023-02-11 02:04:39,494 [moonraker.py:load_component()] - Component (job_queue) loaded
2023-02-11 02:04:39,511 [moonraker.py:load_component()] - Component (http_client) loaded
2023-02-11 02:04:39,516 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/announcements/list
2023-02-11 02:04:39,517 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.list
2023-02-11 02:04:39,518 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/announcements/dismiss
2023-02-11 02:04:39,519 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.dismiss
2023-02-11 02:04:39,519 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/announcements/update
2023-02-11 02:04:39,520 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.update
2023-02-11 02:04:39,521 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST DELETE) /server/announcements/feed
2023-02-11 02:04:39,521 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.post_feed, server.announcements.delete_feed
2023-02-11 02:04:39,522 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/announcements/feeds
2023-02-11 02:04:39,523 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.feeds
2023-02-11 02:04:39,523 [moonraker.py:load_component()] - Component (announcements) loaded
2023-02-11 02:04:39,535 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/webcams/list
2023-02-11 02:04:39,536 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.webcams.list
2023-02-11 02:04:39,536 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /server/webcams/item
2023-02-11 02:04:39,537 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.webcams.get_item, server.webcams.post_item, server.webcams.delete_item
2023-02-11 02:04:39,537 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/webcams/test
2023-02-11 02:04:39,539 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.webcams.test
2023-02-11 02:04:39,539 [moonraker.py:load_component()] - Component (webcam) loaded
2023-02-11 02:04:39,543 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: connection.send_event
2023-02-11 02:04:39,543 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/extensions/list
2023-02-11 02:04:39,544 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.extensions.list
2023-02-11 02:04:39,545 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/extensions/request
2023-02-11 02:04:39,545 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.extensions.request
2023-02-11 02:04:39,546 [moonraker.py:load_component()] - Component (extensions) loaded
2023-02-11 02:04:39,580 [authorization.py:__init__()] - Authorization Configuration Loaded
Trusted Clients:
10.0.0.0/8
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.168.0.0/16
fe80::/10
::1/128
CORS Domains:
https://my\.mainsail\.xyz
http://my\.mainsail\.xyz
http://.*\.local
http://.*\.lan
2023-02-11 02:04:39,581 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/login
2023-02-11 02:04:39,582 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.login
2023-02-11 02:04:39,582 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/logout
2023-02-11 02:04:39,583 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.logout
2023-02-11 02:04:39,583 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/refresh_jwt
2023-02-11 02:04:39,584 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.refresh_jwt
2023-02-11 02:04:39,584 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /access/user
2023-02-11 02:04:39,585 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.get_user, access.post_user, access.delete_user
2023-02-11 02:04:39,585 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /access/users/list
2023-02-11 02:04:39,585 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.users.list
2023-02-11 02:04:39,586 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/user/password
2023-02-11 02:04:39,587 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.user.password
2023-02-11 02:04:39,587 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST) /access/api_key
2023-02-11 02:04:39,588 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.get_api_key, access.post_api_key
2023-02-11 02:04:39,588 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /access/oneshot_token
2023-02-11 02:04:39,590 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.oneshot_token
2023-02-11 02:04:39,590 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /access/info
2023-02-11 02:04:39,591 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.info
2023-02-11 02:04:39,591 [moonraker.py:load_component()] - Component (authorization) loaded
2023-02-11 02:04:39,598 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/version
2023-02-11 02:04:39,599 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/server
2023-02-11 02:04:39,600 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /api/login
2023-02-11 02:04:39,600 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/currentuser
2023-02-11 02:04:39,602 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/settings
2023-02-11 02:04:39,603 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/job
2023-02-11 02:04:39,603 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/printer
2023-02-11 02:04:39,604 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /api/printer/command
2023-02-11 02:04:39,605 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/printerprofiles
2023-02-11 02:04:39,607 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /api/files/moonraker/(?P<relative_path>.+)
2023-02-11 02:04:39,608 [moonraker.py:load_component()] - Component (octoprint_compat) loaded
2023-02-11 02:04:39,613 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET DELETE) /server/history/job
2023-02-11 02:04:39,614 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.get_job, server.history.delete_job
2023-02-11 02:04:39,614 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/history/list
2023-02-11 02:04:39,615 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.list
2023-02-11 02:04:39,615 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/history/totals
2023-02-11 02:04:39,616 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.totals
2023-02-11 02:04:39,616 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/history/reset_totals
2023-02-11 02:04:39,617 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.reset_totals
2023-02-11 02:04:39,618 [moonraker.py:load_component()] - Component (history) loaded
2023-02-11 02:04:39,706 [base_deploy.py:log_info()] - Application moonraker: Detected virtualenv: /home/pi/moonraker-env
2023-02-11 02:04:39,711 [base_deploy.py:log_info()] - Application klipper: Detected virtualenv: /home/pi/klippy-env
2023-02-11 02:04:39,725 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/moonraker
2023-02-11 02:04:39,726 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.moonraker
2023-02-11 02:04:39,727 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/klipper
2023-02-11 02:04:39,728 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.klipper
2023-02-11 02:04:39,728 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/system
2023-02-11 02:04:39,729 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.system
2023-02-11 02:04:39,729 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/client
2023-02-11 02:04:39,730 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.client
2023-02-11 02:04:39,730 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/full
2023-02-11 02:04:39,731 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.full
2023-02-11 02:04:39,731 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/update/status
2023-02-11 02:04:39,732 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.status
2023-02-11 02:04:39,733 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/refresh
2023-02-11 02:04:39,733 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.refresh
2023-02-11 02:04:39,733 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/recover
2023-02-11 02:04:39,734 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.recover
2023-02-11 02:04:39,734 [moonraker.py:load_component()] - Component (update_manager) loaded
2023-02-11 02:04:39,741 [power.py:__init__()] - Power component loading devices: ['power printer_plug']
2023-02-11 02:04:39,761 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/device_power/devices
2023-02-11 02:04:39,762 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.device_power.devices
2023-02-11 02:04:39,762 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/device_power/status
2023-02-11 02:04:39,763 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.device_power.status
2023-02-11 02:04:39,764 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/device_power/on
2023-02-11 02:04:39,765 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.device_power.on
2023-02-11 02:04:39,765 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/device_power/off
2023-02-11 02:04:39,766 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.device_power.off
2023-02-11 02:04:39,767 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST) /machine/device_power/device
2023-02-11 02:04:39,768 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.device_power.get_device, machine.device_power.post_device
2023-02-11 02:04:39,768 [moonraker.py:load_component()] - Component (power) loaded
2023-02-11 02:04:39,776 [moonraker.py:_initialize_component()] - Performing Component Post Init: [dbus_manager]
2023-02-11 02:04:39,811 [moonraker.py:_initialize_component()] - Performing Component Post Init: [file_manager]
2023-02-11 02:04:39,818 [moonraker.py:_initialize_component()] - Performing Component Post Init: [machine]
2023-02-11 02:04:39,819 [machine.py:validation_init()] - Installation version in database up to date
2023-02-11 02:04:40,224 [machine.py:check_virt_status()] - No Virtualization Detected
2023-02-11 02:04:40,246 [machine.py:_find_public_ip()] - Detected Local IP: 172.24.69.13
2023-02-11 02:04:40,252 [webcam.py:_set_default_host_ip()] - Default public webcam address set: http://172.24.69.13
2023-02-11 02:04:40,461 [moonraker.py:add_log_rollover_item()] - 
Systemd unit moonraker.service:
unit_name: moonraker.service
is_default: True
manager: systemd
Properties:
**Requires=['network-online.target', 'sysinit.target', 'system.slice', '-.mount']
**After=['systemd-journald.socket', 'basic.target', 'system.slice', 'network-online.target', 'klipper.service', '-.mount', 'sysinit.target']
**SupplementaryGroups=['moonraker-admin']
**EnvironmentFiles=/home/pi/printer_data/systemd/moonraker.env
**ExecStart=/home/pi/moonraker-env/bin/python $MOONRAKER_ARGS
**WorkingDirectory=/home/pi/moonraker
**FragmentPath=/etc/systemd/system/moonraker.service
**Description=API Server for Klipper SV1
**User=pi
2023-02-11 02:04:40,461 [moonraker.py:_initialize_component()] - Performing Component Post Init: [proc_stats]
2023-02-11 02:04:40,461 [moonraker.py:_initialize_component()] - Performing Component Post Init: [announcements]
2023-02-11 02:04:40,468 [moonraker.py:_initialize_component()] - Performing Component Post Init: [webcam]
2023-02-11 02:04:40,468 [webcam.py:_set_default_host_ip()] - Default public webcam address set: http://172.24.69.13
2023-02-11 02:04:40,470 [moonraker.py:_initialize_component()] - Performing Component Post Init: [authorization]
2023-02-11 02:04:40,471 [moonraker.py:_initialize_component()] - Performing Component Post Init: [update_manager]
2023-02-11 02:04:40,475 [moonraker.py:_initialize_component()] - Performing Component Post Init: [power]
2023-02-11 02:04:40,594 [update_manager.py:initialize()] - PackageDeploy: Using PackageKit Provider
2023-02-11 02:04:40,596 [update_manager.py:initialize()] - 
Initializing Client Updater: 'mainsail',
Channel: stable
path: /home/pi/mainsail
2023-02-11 02:04:40,611 [confighelper.py:create_backup()] - Backing up last working configuration to '/home/pi/printer_data/config/.moonraker.conf.bkp'
2023-02-11 02:04:40,618 [extensions.py:start_unix_server()] - Creating Unix Domain Socket at '/home/pi/printer_data/comms/moonraker.sock'
2023-02-11 02:04:40,624 [moonraker.py:start_server()] - Starting Moonraker on (0.0.0.0, 7125), Hostname: raspberrypi-mainsail
2023-02-11 02:04:40,626 [app.py:listen()] - SSL Certificate/Key not configured, aborting HTTPS Server startup
2023-02-11 02:04:40,795 [authorization.py:_check_trusted_connection()] - Trusted Connection Detected, IP: 172.24.66.95
2023-02-11 02:04:40,798 [app.py:log_request()] - 101 GET /websocket (172.24.66.95) [_TRUSTED_USER_] 5.96ms
2023-02-11 02:04:40,799 [websockets.py:open()] - Websocket Opened: ID: 548264254624, Proxied: True, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36, Host Name: 172.24.69.13
2023-02-11 02:04:40,805 [websockets.py:_handle_identify()] - Websocket 548264254624 Client Identified - Name: mainsail, Version: 2.4.1, Type: web
2023-02-11 02:04:40,882 [klippy_connection.py:_do_connect()] - Klippy Connection Established
2023-02-11 02:04:41,013 [moonraker.py:add_log_rollover_item()] - 
Systemd unit klipper.service:
unit_name: klipper.service
is_default: True
manager: systemd
Properties:
**Requires=['system.slice', 'sysinit.target', '-.mount']
**After=['sysinit.target', 'network-online.target', 'system.slice', 'systemd-journald.socket', 'basic.target', '-.mount']
**SupplementaryGroups=[]
**EnvironmentFiles=/home/pi/printer_data/systemd/klipper.env
**ExecStart=/home/pi/klippy-env/bin/python $KLIPPER_ARGS
**WorkingDirectory=/home/pi/klipper
**FragmentPath=/etc/systemd/system/klipper.service
**Description=Klipper 3D Printer Firmware SV1
**User=pi
2023-02-11 02:04:41,268 [moonraker.py:add_log_rollover_item()] - Klipper Version: v0.11.0-101-g17f7c039
2023-02-11 02:04:41,285 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/info
2023-02-11 02:04:41,286 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.info
2023-02-11 02:04:41,286 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/emergency_stop
2023-02-11 02:04:41,287 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.emergency_stop
2023-02-11 02:04:41,287 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/help
2023-02-11 02:04:41,288 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.help
2023-02-11 02:04:41,288 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/script
2023-02-11 02:04:41,289 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.script
2023-02-11 02:04:41,289 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/restart
2023-02-11 02:04:41,290 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.restart
2023-02-11 02:04:41,291 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/firmware_restart
2023-02-11 02:04:41,292 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.firmware_restart
2023-02-11 02:04:41,293 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/objects/list
2023-02-11 02:04:41,293 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.objects.list
2023-02-11 02:04:41,294 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/objects/query
2023-02-11 02:04:41,294 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.objects.query
2023-02-11 02:04:41,295 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/objects/subscribe
2023-02-11 02:04:41,296 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.objects.subscribe
2023-02-11 02:04:41,296 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/pause_resume/cancel
2023-02-11 02:04:41,297 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.pause_resume.cancel
2023-02-11 02:04:41,297 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/pause_resume/pause
2023-02-11 02:04:41,299 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.pause_resume.pause
2023-02-11 02:04:41,299 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/pause_resume/resume
2023-02-11 02:04:41,300 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.pause_resume.resume
2023-02-11 02:04:41,300 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/motion_report/dump_stepper
2023-02-11 02:04:41,301 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.motion_report.dump_stepper
2023-02-11 02:04:41,301 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/query_endstops/status
2023-02-11 02:04:41,303 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.query_endstops.status
2023-02-11 02:04:42,810 [power.py:init_state()] - Device Init Error: printer_plug
tornado.httpclient.HTTPClientError: HTTP 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pi/moonraker/moonraker/components/power.py", line 441, in init_state
    state = await self._send_status_request()
  File "/home/pi/moonraker/moonraker/components/power.py", line 965, in _send_status_request
    res = await self._send_tasmota_command("info")
  File "/home/pi/moonraker/moonraker/components/power.py", line 962, in _send_tasmota_command
    return await self._send_http_command(url, command)
  File "/home/pi/moonraker/moonraker/components/power.py", line 476, in _send_http_command
    response.raise_for_status(
  File "/home/pi/moonraker/moonraker/components/http_client.py", line 339, in raise_for_status
    raise ServerError(msg, code) from self._error
utils.ServerError: Error sending 'tasmota' command: info
2023-02-11 02:04:50,471 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed
2023-02-11 02:04:50,475 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed
2023-02-11 02:04:50,482 [klippy_connection.py:_check_ready()] - 
mcu 'mcu': Unable to connect
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer
Arksine commented 1 year ago

I'll need you to attach the full moonraker.log. FWIW, the config snippet you posted does not contain an @.

raldone01 commented 1 year ago

I had time to do further testing. Corrected the issue. I think the & is causing the issue. Passwords without & work just fine with moonraker.

Arksine commented 1 year ago

This should be resolved with commit 55ebe120c53c293384e69c31d5626baa9c87d2f9.

Indeed the issue was the &.