I am stuck a the point where you bind the URL to the Button and the field in the settings for the hello world plug in. *Note I have removed all instances if “http” as it said I could only post 5 links as a new user.
It loads ok and displays the s://de.wikipedia.org/wiki/Hallo-Welt-Programm in the start up in terminal but when I click the Hello world button it does nothing. Nor does the URL load into the box in the settings. I have spent ages on this and I can't seem to figure out why. I don't have any space or tab errors when it loads so I don't think it's a formatting issue.
def on_after_startup(self):
self._logger.info("Hello World! (more: %s)" % self._settings.get(["url"]))
is working. So the URL is being read from the config.yaml.
My hello world_settings.jinja2 has the right code
<form class="form-horizontal">
<div class="control-group">
<label class="control-label">{{ _('URL') }}</label>
<div class="controls">
<input type="text" class="input-block-level" data-bind="value: settings.plugins.helloworld.url">
</div>
</div>
</form>
my helloworld_navbar.jinja2 has the following code.
a href="javascript:void()" data-bind="attr: {href: settings.settings.plugins.helloworld.url}">Hello World!</a>
I am running it on macOS sequioa and in the development environment as set out in the tutorial. Any help would be appreciated. I have tried it on Firefox and Safari and the result is the same.
Here's the log:
2025-07-15 17:17:36,119 - octoprint.startup - INFO - ******************************************************************************
2025-07-15 17:17:36,119 - octoprint.startup - INFO - Starting OctoPrint 1.11.2
2025-07-15 17:17:36,119 - octoprint.startup - INFO - ******************************************************************************
2025-07-15 17:17:36,163 - octoprint.util.connectivity.connectivity_checker - INFO - Connectivity changed from offline to online
2025-07-15 17:17:36,190 - octoprint.util.connectivity.connectivity_checker - INFO - Connectivity state is currently: online
2025-07-15 17:17:36,190 - octoprint.util.connectivity.connectivity_checker - INFO - Connecting to 1.1.1.1:53 is working
2025-07-15 17:17:36,190 - octoprint.util.connectivity.connectivity_checker - INFO - Resolving octoprint.org is working
2025-07-15 17:17:36,192 - octoprint.plugin.core - INFO - Loading plugins from /Users/ryan/devel/OctoPrint/src/octoprint/plugins, /Users/ryan/Library/Application Support/OctoPrint/plugins and installed plugin packages...
2025-07-15 17:17:36,557 - octoprint.plugin.core - INFO - Plugin Pi Support Plugin (2023.10.10) did not pass check, not loading.
2025-07-15 17:17:36,566 - octoprint.plugin.core - INFO - Found 23 plugin(s) providing 23 mixin implementations, 42 hook handlers
2025-07-15 17:17:36,574 - octoprint.server.heartbeat - INFO - Starting server heartbeat, 900.0s interval
2025-07-15 17:17:36,607 - octoprint.server - INFO - Intermediary server started
2025-07-15 17:17:36,608 - octoprint.filemanager.storage - INFO - Initializing the file metadata for /Users/ryan/Library/Application Support/OctoPrint/uploads...
2025-07-15 17:17:36,608 - octoprint.filemanager.storage - INFO - ... file metadata for /Users/ryan/Library/Application Support/OctoPrint/uploads initialized successfully.
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin achievements: PLUGIN_ACHIEVEMENTS_VIEW (needs: "Need(method='role', value='plugin_achievements_view')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin achievements: PLUGIN_ACHIEVEMENTS_RESET (needs: "Need(method='role', value='plugin_achievements_reset')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin action_command_notification: PLUGIN_ACTION_COMMAND_NOTIFICATION_SHOW (needs: "Need(method='role', value='plugin_action_command_notification_show')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin action_command_notification: PLUGIN_ACTION_COMMAND_NOTIFICATION_CLEAR (needs: "Need(method='role', value='plugin_action_command_notification_clear')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin action_command_prompt: PLUGIN_ACTION_COMMAND_PROMPT_INTERACT (needs: "Need(method='role', value='plugin_action_command_prompt_interact')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_READ (needs: "Need(method='role', value='plugin_announcements_read')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_MANAGE (needs: "Need(method='role', value='plugin_announcements_manage'), Need(method='role', value='plugin_announcements_read')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin appkeys: PLUGIN_APPKEYS_ADMIN (needs: "Need(method='role', value='plugin_appkeys_admin')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin appkeys: PLUGIN_APPKEYS_GRANT (needs: "Need(method='role', value='plugin_appkeys_user')")
2025-07-15 17:17:36,609 - octoprint.server - INFO - Added new permission from plugin backup: PLUGIN_BACKUP_CREATE (needs: "Need(method='role', value='plugin_backup_create')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin file_check: PLUGIN_FILE_CHECK_RUN (needs: "Need(method='role', value='plugin_file_check_run')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin firmware_check: PLUGIN_FIRMWARE_CHECK_DISPLAY (needs: "Need(method='role', value='plugin_firmware_check_display')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin health_check: PLUGIN_HEALTH_CHECK_CHECK (needs: "Need(method='role', value='plugin_health_check_check')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin logging: PLUGIN_LOGGING_MANAGE (needs: "Need(method='role', value='plugin_logging_manage')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_LIST (needs: "Need(method='role', value='plugin_pluginmanager_list')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_MANAGE (needs: "Need(method='role', value='plugin_pluginmanager_manage')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_INSTALL (needs: "Need(method='role', value='plugin_pluginmanager_install'), Need(method='role', value='plugin_pluginmanager_manage')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CHECK (needs: "Need(method='role', value='plugin_softwareupdate_check')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_UPDATE (needs: "Need(method='role', value='plugin_softwareupdate_update')")
2025-07-15 17:17:36,610 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CONFIGURE (needs: "Need(method='role', value='plugin_softwareupdate_configure')")
2025-07-15 17:17:36,613 - octoprint.plugins.achievements - INFO - Loading data from /Users/ryan/Library/Application Support/OctoPrint/data/achievements/data.json
2025-07-15 17:17:36,613 - octoprint.plugins.achievements - INFO - Loading data for None from /Users/ryan/Library/Application Support/OctoPrint/data/achievements/2025.json
2025-07-15 17:17:36,619 - octoprint.plugins.softwareupdate - INFO - Loaded version cache from disk
2025-07-15 17:17:36,786 - octoprint.util.pip - INFO - Using "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -m pip" as command to invoke pip
2025-07-15 17:17:36,930 - octoprint.util.pip - INFO - Version of pip is 25.1.1
2025-07-15 17:17:36,959 - octoprint.util.pip - INFO - pip installs to /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages (writable -> yes), --user flag needed -> no, virtual env -> no
2025-07-15 17:17:36,959 - octoprint.util.pip - INFO - ==> pip ok -> yes
2025-07-15 17:17:36,988 - octoprint.plugins.file_check - INFO - Native grep available: True
2025-07-15 17:17:36,989 - octoprint.plugin.core - INFO - Initialized 23 plugin implementation(s)
2025-07-15 17:17:36,992 - octoprint - INFO - Installing webcam compat overlay for configured default webcam <octoprint.webcams.ProvidedWebcam object at 0x109344ad0>
2025-07-15 17:17:36,993 - octoprint.plugin.core - INFO - 23 plugin(s) registered with the system (22 bundled & 1 third party):
| Bundled Plugins (22)
| Achievements Plugin (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/achievements
| Action Command Notification Support (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/action_command_notification
| Action Command Prompt Support (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/action_command_prompt
| Announcement Plugin (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/announcements
| Anonymous Usage Tracking (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/tracking
| Application Keys Plugin (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/appkeys
| Backup & Restore (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/backup
| Classic Webcam (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/classicwebcam
| Core Wizard (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/corewizard
| Custom Control Manager (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/customcontrolmanager
| Discovery (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/discovery
| Error Tracking (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/errortracking
| Event Manager (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/eventmanager
| File Check (2024.11.12) (bundled) = /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/octoprint_file_check
| Firmware Check (2025.5.14) (bundled) = /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/octoprint_firmware_check
| GCode Viewer (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/gcodeviewer
| Healthcheck Plugin (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/health_check
| Logging (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/logging
| Plugin Manager (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/pluginmanager
| Software Update (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/softwareupdate
| Upload Manager (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/uploadmanager
| Virtual Printer (bundled) = /Users/ryan/devel/OctoPrint/src/octoprint/plugins/virtual_printer
| Third Party Plugins (1)
| Hello World (0.1.0) = /Users/ryan/devel/OctoPrint-Helloworld/octoprint_helloworld
Prefix legend: ! = disabled, # = blacklisted, * = incompatible
2025-07-15 17:17:37,014 - octoprint.environment - INFO - Detected environment is Python 3.13.5 under Macos (macOS-15.5-arm64-arm-64bit-Mach-O). Details:
| hardware:
| cores: 10
| freq: 3228
| ram: 17179869184
| os:
| bits: 64
| id: macos
| platform: macOS-15.5-arm64-arm-64bit-Mach-O
| python:
| pip: 25.1.1
| version: 3.13.5
2025-07-15 17:17:37,014 - octoprint.plugins.helloworld - WARNING - The templates of this plugin are currently not being autoescaped. This has potential security implications. For that reason OctoPrint 1.13.0 will globally enforce autoescaping. Plugin authors seeing this should read s://faq.octoprint.org/plugin-autoescape.
2025-07-15 17:17:37,017 - octoprint.server - INFO - Reset webasset folder /Users/ryan/Library/Application Support/OctoPrint/generated/webassets...
2025-07-15 17:17:37,017 - octoprint.server - INFO - Reset webasset folder /Users/ryan/Library/Application Support/OctoPrint/generated/.webassets-cache...
2025-07-15 17:17:37,017 - octoprint.server - INFO - Reset webasset folder /Users/ryan/Library/Application Support/OctoPrint/generated/.webassets-manifest.json...
2025-07-15 17:17:37,021 - octoprint.timelapse - INFO - Enabled rendering queue processing
2025-07-15 17:17:37,068 - octoprint.plugins.file_check - WARNING - The simple API of this plugin is relying on the default implementation of is_api_protected (newly added in OctoPrint 1.11.2), which in a future version will be switched from False to True for security reasons. Plugin authors should ensure they explicitly declare the API protection status in their SimpleApiPlugin mixin implementation.
2025-07-15 17:17:37,068 - octoprint.plugins.firmware_check - WARNING - The simple API of this plugin is relying on the default implementation of is_api_protected (newly added in OctoPrint 1.11.2), which in a future version will be switched from False to True for security reasons. Plugin authors should ensure they explicitly declare the API protection status in their SimpleApiPlugin mixin implementation.
2025-07-15 17:17:37,073 - octoprint.server - INFO - Shutting down intermediary server...
2025-07-15 17:17:37,108 - octoprint.server - INFO - Intermediary server shut down
2025-07-15 17:17:37,109 - octoprint.events - INFO - Processing startup event, this is our first event
2025-07-15 17:17:37,109 - octoprint.events - INFO - Adding 1 events to queue that were held back before startup event
2025-07-15 17:17:37,109 - octoprint.filemanager - INFO - Adding backlog items from all storage types to analysis queue...
2025-07-15 17:17:37,114 - octoprint.server - INFO - Starting autorefresh of serial port list
2025-07-15 17:17:37,115 - octoprint.plugins.softwareupdate - INFO - Fetching check overlays from s://plugins.octoprint.org/update_check_overlay.json
2025-07-15 17:17:37,116 - octoprint.server.util.watchdog - INFO - Running initial scan on watched folder...
2025-07-15 17:17:37,116 - octoprint.server.util.watchdog - INFO - ... initial scan done.
2025-07-15 17:17:37,120 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid
2025-07-15 17:17:37,143 - octoprint.filemanager - INFO - Added 0 items from storage type "local" to analysis queue
2025-07-15 17:17:37,156 - octoprint.server - INFO - Serial port list was updated, refreshing the port list in the frontend
2025-07-15 17:17:37,158 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid
2025-07-15 17:17:37,728 - octoprint.plugins.healthcheck.python_eol - INFO - Fetched Python EOL data from s://get.octoprint.org/python-eol
2025-07-15 17:17:37,970 - octoprint.plugins.discovery - INFO - Registered 'OctoPrint instance on Ryans-MacBook-Pro.local._._tcp.local.' for _._tcp.local.
2025-07-15 17:17:38,782 - octoprint.plugins.discovery - INFO - Registered 'OctoPrint instance on Ryans-MacBook-Pro.local._octoprint._tcp.local.' for _octoprint._tcp.local.
2025-07-15 17:17:38,787 - octoprint.plugins.discovery - INFO - Registered OctoPrint instance on Ryans-MacBook-Pro.local for SSDP
2025-07-15 17:17:38,791 - octoprint.server - INFO - Listening on ://0.0.0.0:5001 and ://[::]:5001
2025-07-15 17:17:38,811 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid
2025-07-15 17:17:38,853 - octoprint.server.util.sockjs - INFO - New connection from client: 127.0.0.1
2025-07-15 17:17:38,854 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid
2025-07-15 17:17:38,857 - octoprint.plugins.pluginmanager - INFO - Saved a current plugin export to /Users/ryan/Library/Application Support/OctoPrint/backup_plugin_export.json
2025-07-15 17:17:38,857 - octoprint.server.util.sockjs - INFO - New connection from client: 127.0.0.1
2025-07-15 17:17:38,936 - octoprint.server.util.flask - INFO - Passively logging in user admin from 127.0.0.1
2025-07-15 17:17:38,936 - octoprint.access.users - INFO - Logged in user: admin
2025-07-15 17:17:38,959 - octoprint.util.pip - INFO - Using "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -m pip" as command to invoke pip
2025-07-15 17:17:38,959 - octoprint.util.pip - INFO - pip installs to /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages (writable -> yes), --user flag needed -> no, virtual env -> no
2025-07-15 17:17:38,959 - octoprint.util.pip - INFO - ==> pip ok -> yes
2025-07-15 17:17:38,967 - octoprint.plugins.softwareupdate - INFO - Minimum free storage across all update relevant locations is 300.2GB. That is considered sufficient for updating.
2025-07-15 17:17:38,987 - octoprint.server.util.sockjs - INFO - User admin logged in on the socket from client 127.0.0.1
2025-07-15 17:17:38,995 - octoprint.plugins.helloworld - INFO - Hello World! (more: s://de.wikipedia.org/wiki/Hallo-Welt-Programm)
2025-07-15 17:17:39,014 - octoprint.plugins.firmware_check - WARNING - The simple API of this plugin is relying on the default implementation of is_api_protected (newly added in OctoPrint 1.11.2), which in a future version will be switched from False to True for security reasons. Plugin authors should ensure they explicitly declare the API protection status in their SimpleApiPlugin mixin implementation.
2025-07-15 17:17:39,019 - octoprint.server.preemptive_cache - INFO - Preemptively caching / (ui _default) for {'base_url': '://127.0.0.1:5001/', 'path': '/', 'query_string': 'l10n=en'}
2025-07-15 17:17:39,116 - octoprint.plugins.file_check - WARNING - The simple API of this plugin is relying on the default implementation of is_api_protected (newly added in OctoPrint 1.11.2), which in a future version will be switched from False to True for security reasons. Plugin authors should ensure they explicitly declare the API protection status in their SimpleApiPlugin mixin implementation.
2025-07-15 17:17:40,026 - octoprint.server.preemptive_cache - INFO - ... done in 1.01s
2025-07-15 17:17:43,183 - octoprint.server.util.flask - INFO - Passively logging in user admin from 127.0.0.1
2025-07-15 17:17:43,183 - octoprint.access.users - INFO - Logged in user: admin
2025-07-15 17:17:43,220 - octoprint.server.util.sockjs - INFO - Client connection closed: 127.0.0.1
2025-07-15 17:17:43,345 - octoprint.server.util.sockjs - INFO - New connection from client: 127.0.0.1
2025-07-15 17:17:43,357 - octoprint.server.util.flask - INFO - Passively logging in user admin from 127.0.0.1
2025-07-15 17:17:43,357 - octoprint.access.users - INFO - Logged in user: admin
2025-07-15 17:17:43,518 - octoprint.server.util.sockjs - INFO - User admin logged in on the socket from client 127.0.0.1
2025-07-15 17:17:43,552 - octoprint.plugins.firmware_check - WARNING - The simple API of this plugin is relying on the default implementation of is_api_protected (newly added in OctoPrint 1.11.2), which in a future version will be switched from False to True for security reasons. Plugin authors should ensure they explicitly declare the API protection status in their SimpleApiPlugin mixin implementation.
2025-07-15 17:17:43,553 - octoprint.plugins.file_check - WARNING - The simple API of this plugin is relying on the default implementation of is_api_protected (newly added in OctoPrint 1.11.2), which in a future version will be switched from False to True for security reasons. Plugin authors should ensure they explicitly declare the API protection status in their SimpleApiPlugin mixin implementation.
Thanks for any help!