domoticz / domoticz

Open source Home Automation System
http://www.domoticz.com
GNU General Public License v3.0
3.49k stars 1.12k forks source link

Webroot issue when '/' #5638

Closed sinopsysHK closed 1 year ago

sinopsysHK commented 1 year ago

domoticz version: 2023.1 Build Hash: f9b9ac774 Platform: docker on Ubuntu 20.04.5

If domoticz is launched with init parameter "-webroot /" it will lead to some issues with domoticz url used internally (http://127.0.0.1//) by dzEvent which will not be able to connect to API.

Exemple (current linuxserver.io container default):

/usr/bin/domoticz -approot /usr/share/domoticz/ -dbase /config/domoticz.db -noupdate -sslwww 1443 -sslcert /config/keys/server_cert.pem -userdata /config/ -webroot /

With such setup updating device status via dzEvents scripts raise following error:

2023-03-12 21:37:00.132 Status: dzVents: Info: Waqi: ------ Start internal script: AirQuality:, trigger: "every 1 minutes"
2023-03-12 21:37:00.133 Status: dzVents: Debug: Waqi: OpenURL: url = http://api.waqi.info/feed/geo:22.2215;114.2131/?token=75e187fc5effe6eba1c29071a50c1eda57681323
2023-03-12 21:37:00.133 Status: dzVents: Debug: Waqi: OpenURL: method = GET
2023-03-12 21:37:00.133 Status: dzVents: Debug: Waqi: OpenURL: post data = nil
2023-03-12 21:37:00.133 Status: dzVents: Debug: Waqi: OpenURL: headers = nil
2023-03-12 21:37:00.133 Status: dzVents: Debug: Waqi: OpenURL: callback = waqi_nearby
2023-03-12 21:37:00.133 Status: dzVents: Info: Waqi: ------ Finished AirQuality
2023-03-12 21:37:00.133 Status: EventSystem: Script event triggered: /usr/share/domoticz/dzVents/runtime/dzVents.lua
2023-03-12 21:37:01.317 Status: dzVents: Info: Handling httpResponse-events for: "waqi_nearby"
2023-03-12 21:37:01.317 Status: dzVents: Info: Waqi: ------ Start internal script: AirQuality: HTTPResponse: "waqi_nearby"
2023-03-12 21:37:01.319 Status: dzVents: Info: Waqi: AQI[NO2] received: 11
2023-03-12 21:37:01.319 Status: dzVents: Info: Waqi: AQI[PM25] received: 68
2023-03-12 21:37:01.319 Status: dzVents: Info: Waqi: AQI[PM10] received: 35
2023-03-12 21:37:01.319 Status: dzVents: Info: Waqi: AQI[CO] received: 3.4
2023-03-12 21:37:01.319 Status: dzVents: Info: Waqi: AQI[SO2] received: 3
2023-03-12 21:37:01.319 Status: dzVents: Info: Waqi: AQI[AQI] received: 68
2023-03-12 21:37:01.326 Status: dzVents: Debug: Waqi: Processing device-adapter for AQI Alert: Alert sensor adapter
2023-03-12 21:37:01.327 Status: dzVents: Debug: Waqi: Processing device-adapter for AQI: Air quality device
2023-03-12 21:37:01.327 Status: dzVents: Debug: Waqi: OpenURL: url = http://127.0.0.1:8080///json.htm?type=command&param=udevice&idx=63&nvalue=68&svalue=&parsetrigger=false
2023-03-12 21:37:01.327 Status: dzVents: Debug: Waqi: OpenURL: method = GET
2023-03-12 21:37:01.327 Status: dzVents: Debug: Waqi: OpenURL: post data = nil
2023-03-12 21:37:01.327 Status: dzVents: Debug: Waqi: OpenURL: headers = nil
2023-03-12 21:37:01.327 Status: dzVents: Debug: Waqi: OpenURL: callback = nil
2023-03-12 21:37:01.327 Status: dzVents: Info: Waqi: AQI[O3] received: 40.8
2023-03-12 21:37:01.327 Status: dzVents: Info: Waqi: ------ Finished AirQuality
2023-03-12 21:37:01.327 Status: EventSystem: Script event triggered: /usr/share/domoticz/dzVents/runtime/dzVents.lua
2023-03-12 21:37:01.335 Error: Error opening url: http://127.0.0.1:8080///json.htm?type=command&param=udevice&idx=63&nvalue=68&svalue=&parsetrigger=false

this is due to bellow code: https://github.com/domoticz/domoticz/blob/225506eef4c24fdb2c7b285d7aa38e4b2b947c1e/dzVents/runtime/EventHelpers.lua#L71-L74

'/' is neither nil neither empty string but should be considered as such.

gizmocuz commented 1 year ago

Solved in the next beta version. But if you look at the Domoticz help example you see it does not need a forward slash Thanks for noticing!