OPNsense integration with Home Assistant
### What happened? No firewall rules were auto-imported. Maybe I just haven't set them up right. I have lots of auto generated rules, plus a couple of firewall rules manually created on specific interfaces, and 1 automation filter (which shows with the firewall rules). They work, but don't show up in HA. OpnSense Firmware: 25.1.5_5 hass-opnsense: v0.3.16 I do use the AdGuard plugin but not using tracking. initialisation logs below. I see a few of these before - I think while unreachable when restarting after a firmware upgrade, but there is 1 during the initialisation ``` 2025-04-17 12:59:59.673 ERROR (MainThread) [custom_components.opnsense.pyopnsense] Error running exec_php script for inner. Fault: <Fault -32601: 'server error. requested method opnsense.exec_php does not exist.'>. Ensure the 'os-homeassistant-maxit' plugin has been installed on OPNsense ``` but the initialisation ran fine and all queries got '200' . I don't see any queries to the firewall API, how are the rules being fetched? ### hass-opnsense Version v0.3.16 ### OPNsense Firmware 25.1.5_5 ### Home Assistant Version 2025.4.2 ### Relevant logs ```shell 2025-04-17 13:00:05.962 INFO (MainThread) [custom_components.opnsense] Starting hass-opnsense v0.3.16 2025-04-17 13:00:05.962 INFO (MainThread) [custom_components.opnsense.coordinator] Initializing OPNsense Data Update Coordinator 2025-04-17 13:00:05.962 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/interfaces/overview/export 2025-04-17 13:00:06.450 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:06.451 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_device_unique_id] device_unique_id: **** 2025-04-17 13:00:06.451 DEBUG (MainThread) [custom_components.opnsense] [init async_setup_entry]: config device id: **** router device id: **** 2025-04-17 13:00:06.451 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/core/firmware/status 2025-04-17 13:00:06.536 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:06.536 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_host_firmware_version] firmware: 25.1.5_5 2025-04-17 13:00:06.536 INFO (MainThread) [custom_components.opnsense] OPNsense Firmware 25.1.5_5 2025-04-17 13:00:06.536 INFO (MainThread) [custom_components.opnsense.coordinator] Updating Data 2025-04-17 13:00:06.536 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/interfaces/overview/export 2025-04-17 13:00:07.020 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:07.021 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_device_unique_id] device_unique_id: a8_b8_e0_06_42_89 2025-04-17 13:00:07.021 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_device_unique_id: 0.485 seconds 2025-04-17 13:00:07.021 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/core/firmware/status 2025-04-17 13:00:07.103 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:07.104 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_host_firmware_version] firmware: 25.1.5_5 2025-04-17 13:00:07.104 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_host_firmware_version: 0.082 seconds 2025-04-17 13:00:07.104 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/diagnostics/system/systemInformation 2025-04-17 13:00:07.194 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:07.195 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_system_info: 0.091 seconds 2025-04-17 13:00:07.195 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/core/firmware/status 2025-04-17 13:00:07.283 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:07.284 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_firmware_update_info: 0.089 seconds 2025-04-17 13:00:07.284 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/system/system_mbuf 2025-04-17 13:00:07.284 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:07.392 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:07.393 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/firewall/pf_states 2025-04-17 13:00:07.393 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:07.417 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:07.417 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/system/systemResources 2025-04-17 13:00:07.417 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:07.482 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:07.482 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/system/system_swap 2025-04-17 13:00:07.482 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:07.560 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:07.560 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/system/systemTime 2025-04-17 13:00:07.560 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:07.625 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:07.625 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/cpu_usage/getCPUType 2025-04-17 13:00:07.625 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:07.688 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:07.688 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] url: https://192.168.0.1/api/diagnostics/cpu_usage/stream 2025-04-17 13:00:07.743 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] Response 200: OK 2025-04-17 13:00:07.743 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] Unparsed: event: message 2025-04-17 13:00:07.743 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] Ignored message 1: data: {"total":4,"user":2,"nice":0,"sys":2,"intr":0,"idle":97} 2025-04-17 13:00:08.746 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] Unparsed: 2025-04-17 13:00:08.746 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] Unparsed: event: message 2025-04-17 13:00:08.746 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_from_stream] response_json (dict): {'total': 0, 'user': 0, 'nice': 0, 'sys': 0, 'intr': 0, 'idle': 100} 2025-04-17 13:00:08.746 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] url: https://192.168.0.1/api/diagnostics/system/systemDisk 2025-04-17 13:00:08.746 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] payload: None 2025-04-17 13:00:08.796 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [post] Response 200: OK 2025-04-17 13:00:08.797 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/diagnostics/system/systemTemperature 2025-04-17 13:00:08.862 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:08.862 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_telemetry: 1.579 seconds 2025-04-17 13:00:08.862 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/interfaces/overview/export 2025-04-17 13:00:09.346 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:09.350 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_interfaces: 0.487 seconds 2025-04-17 13:00:09.350 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/openvpn/service/searchSessions 2025-04-17 13:00:09.424 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:09.424 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/openvpn/service/searchRoutes 2025-04-17 13:00:09.490 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:09.490 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/openvpn/export/providers 2025-04-17 13:00:09.520 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:09.520 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/openvpn/instances/search 2025-04-17 13:00:09.554 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:09.554 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_openvpn] openvpn: {'servers': {}, 'clients': {}} 2025-04-17 13:00:09.554 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_openvpn: 0.205 seconds 2025-04-17 13:00:09.554 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/routes/gateway/status 2025-04-17 13:00:09.610 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:09.610 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_gateways: 0.056 seconds 2025-04-17 13:00:11.699 ERROR (MainThread) [custom_components.opnsense.pyopnsense] Error running exec_php script for inner. Fault: <Fault -32601: 'server error. requested method opnsense.exec_php does not exist.'>. Ensure the 'os-homeassistant-maxit' plugin has been installed on OPNsense 2025-04-17 13:00:11.700 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_config: 2.089 seconds 2025-04-17 13:00:11.700 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/core/service/search 2025-04-17 13:00:11.850 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:11.850 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_services: 0.151 seconds 2025-04-17 13:00:11.850 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/interfaces/vip_settings/get 2025-04-17 13:00:11.873 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:11.873 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/diagnostics/interface/get_vip_status 2025-04-17 13:00:12.123 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:12.123 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_carp_interfaces] carp: [] 2025-04-17 13:00:12.123 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_carp_interfaces: 0.273 seconds 2025-04-17 13:00:12.123 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/diagnostics/interface/get_vip_status 2025-04-17 13:00:12.364 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:12.364 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_carp_status: 0.241 seconds 2025-04-17 13:00:12.364 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/core/system/status 2025-04-17 13:00:12.412 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:12.412 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_notices: 0.048 seconds 2025-04-17 13:00:12.412 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/unbound/settings/get 2025-04-17 13:00:12.443 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:12.444 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_unbound_blocklist: 0.031 seconds 2025-04-17 13:00:12.444 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/kea/leases4/search 2025-04-17 13:00:12.767 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:12.768 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/kea/dhcpv4/searchReservation 2025-04-17 13:00:12.795 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:12.796 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/dhcpv4/leases/searchLease 2025-04-17 13:00:13.158 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.159 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/dhcpv6/leases/searchLease 2025-04-17 13:00:13.688 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.688 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/kea/dhcpv4/get 2025-04-17 13:00:13.713 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.714 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_dhcp_leases: 1.270 seconds 2025-04-17 13:00:13.714 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/wireguard/service/show 2025-04-17 13:00:13.793 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.794 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/wireguard/client/get 2025-04-17 13:00:13.830 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.830 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/wireguard/server/get 2025-04-17 13:00:13.864 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.865 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_wireguard: 0.151 seconds 2025-04-17 13:00:13.865 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] url: https://192.168.0.1/api/trust/cert/search 2025-04-17 13:00:13.922 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get] Response 200: OK 2025-04-17 13:00:13.923 DEBUG (MainThread) [custom_components.opnsense.pyopnsense] [get_certificates] certs: {'Web GUI TLS certificate': {'uuid': 'c341f225-ed81-44fa-b8ab-b35af5ef5f6e', 'issuer': '', 'purpose': 'id-kp-serverAuth', 'in_use': True, 'valid_from': datetime.datetime(2025, 3, 9, 19, 3, 44, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), 'valid_to': datetime.datetime(2026, 4, 10, 19, 3, 44, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))}} 2025-04-17 13:00:13.923 DEBUG (MainThread) [custom_components.opnsense.coordinator] [Coordinator Timing] get_certificates: 0.058 seconds 2025-04-17 13:00:13.923 DEBUG (MainThread) [custom_components.opnsense.coordinator] [async_update_data] wireguard: {} 2025-04-17 13:00:13.923 DEBUG (MainThread) [custom_components.opnsense.coordinator] Update Complete. REST API Queries: 34. XMLRPC Queries: 1 2025-04-17 13:00:13.923 DEBUG (MainThread) [custom_components.opnsense.coordinator] Finished fetching OpnSense state data in 7.387 seconds (success: True) 2025-04-17 13:00:13.926 DEBUG (MainThread) [custom_components.opnsense.sensor] [sensor async_setup_entry] entities: 119 2025-04-17 13:00:13.933 DEBUG (MainThread) [custom_components.opnsense.sensor] [OPNsenseDHCPLeasesSensor handle_coordinator_update] LAN: lease_count: 43 2025-04-17 13:00:13.933 DEBUG (MainThread) [custom_components.opnsense.sensor] [OPNsenseDHCPLeasesSensor handle_coordinator_update] IsolatedodgyrootkitVanguardPC: lease_count: 1 2025-04-17 13:00:13.933 DEBUG (MainThread) [custom_components.opnsense.switch] [switch async_setup_entry] entities: 10 ``` ### Additional Details _No response_
This issue appears to be discussing a feature request or bug report related to the repository. Based on the content, it seems to be resolved. The issue was opened by rtozer and has received 2 comments.