HTTP binding, API access does not work ONLINE it is still UNKNOWN

Hello,
I want to access an API using the HTTP binding, but I can’t get the thing ONLINE. The log is unremarkable.
OpenHAB: 4.2.1 in Docker-Container

2024-09-21 10:41:27.673 [INFO ] [nding.http.internal.HttpThingHandler] - Using the secure client for thing 'http:url:9c0101b480'.
2024-09-21 10:41:27.674 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'http:url:9c0101b480' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2024-09-21 10:41:27.674 [DEBUG] [nding.http.internal.HttpThingHandler] - No authentication configured for thing 'http:url:9c0101b480'
2024-09-21 10:41:27.675 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'http:url:9c0101b480' changed from INITIALIZING to UNKNOWN

This may be because the key is already available from the provider URL-Encrypted and I don’t have to pass it encrypted as described in the binding documentation.
I’ve attached my configuration below, but I can’t figure out what’s wrong.

Any ideas?

Calling it directly in the browser with the original key works. This API is only describing my Weatherstation, but the problem for the data API is the same.

Original API key: xxxxxxx%2Bxxxxxxxxx%2Bxxxx%2Fxxxxxxxxxxxx%2Fxxxxxxxxxxxxx%2Bxxxx%3D%3D
decrypted key: xxxxxxx+xxxxxxxxx+xxxx/xxxxxxxxxx/xxxxxxxxxxxx+xxxx==

The configuration for the thing is

UID: http:url:9c0101b480
label: HTTP AWEKAS Station
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: https://api.awekas.at/station.php?key=xxxxxxxx+xxxxxxxxx+xxxx/xxxxxxxxxx/xxxxxxxxxxxxx+xxxx==
  delay: 0
  stateMethod: GET
  refresh: 30
  commandMethod: GET
  contentType: application/json
  timeout: 3000
  bufferSize: 2048
channels:
  - id: last-failure
    channelTypeUID: http:request-date-time
    label: Last Failure
    configuration: {}
  - id: last-success
    channelTypeUID: http:request-date-time
    label: Last Success
    configuration: {}

I am seeing unknown now also on something that has been working for years, I can hit it with curl just fine.

UID: http:url:usgs
label: USGS
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: https://waterservices.usgs.gov/nwis/iv/?sites=01616500&parameterCd=00065
delay: 0
stateMethod: GET
refresh: 3600
commandMethod: GET
timeout: 3000
bufferSize: 2048
channels:

  • id: last-failure
    channelTypeUID: http:request-date-time
    label: Last Failure
    configuration: {}
  • id: last-success
    channelTypeUID: http:request-date-time
    label: Last Success
    configuration: {}
  • id: level
    channelTypeUID: http:string
    label: Level
    configuration:
    mode: READWRITE
    stateTransformation: XSLT:usgs_level.xsl

I was able to solve the problem so that the Thing went ONLINE.
After I created my own channel in addition to the automatically created channels “last-failure” and “last-success”, the problem was solved.
Unfortunately, I couldn’t find any reference to this in the documentation.

Hmm, still UNKNOWN for me.

Items

Number    Creek_Level                       "Creek Level [%.2f Feet]"                                 <creek>         (Outside)                        
       {channel="http:url:usgs:level"}
DateTime	Creek_Level_Failure															{channel="http:url:usgs:last-failure"}
DateTime	Creek_Level_Success															{channel="http:url:usgs:last-success"}

Things

Thing http:url:usgs "USGS" [
  baseURL="https://waterservices.usgs.gov/nwis/iv/?sites=01616500&parameterCd=00065", refresh=3600] {
    Channels:
      Type string : level "Level" [ stateTransformation="XSLT:usgs_level.xsl" ]
}

Logs don’t say much:
2024-10-18 10:35:47.549 [INFO ] [nding.http.internal.HttpThingHandler] - Using the secure client for thing 'http:url:usgs'.

I’ve tested your Thing via MainUI with the configuration see below and it went ONLINE

UID: http:url:usgs
label: USGS
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: https://waterservices.usgs.gov/nwis/iv/?sites=01616500&parameterCd=00065
  delay: 0
  stateMethod: GET
  refresh: 30
  commandMethod: GET
  timeout: 3000
  bufferSize: 2048
channels:
  - id: last-failure
    channelTypeUID: http:request-date-time
    label: Last Failure
    configuration: {}
  - id: last-success
    channelTypeUID: http:request-date-time
    label: Last Success
    configuration: {}
  - id: level
    channelTypeUID: http:string
    label: Level
    description: ""
    configuration: {}

and the Item

String    sCreek_Level      "Creek-Level [%s]"          {channel="http:url:usgs:level"}

get a valid xml response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns1:timeSeriesResponse xsi:schemaLocation="http://www.cuahsi.org/waterML/1.1/ http://waterservices.usgs.gov/WaterML-1.1.xsd" xmlns:ns1="http://www.cuahsi.org/waterML/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns1:queryInfo xmlns:ns2="http://www.cuahsi.org/waterML/1.1/"><ns2:queryURL>http://waterservices.usgs.gov/nwis/iv/sites=01616500&amp;parameterCd=00065</ns2:queryURL><ns2:criteria><ns2:locationParam>[ALL:01616500]</ns2:locationParam><ns2:variableParam>[00065]</ns2:variableParam></ns2:criteria><ns2:note title="filter:sites">[ALL:01616500]</ns2:note><ns2:note title="filter:timeRange">[mode=LATEST, modifiedSince=null]</ns2:note><ns2:note title="filter:methodId">methodIds=[ALL]</ns2:note><ns2:note title="requestDT">2024-10-18T16:48:26.852Z</ns2:note><ns2:note title="requestId">cbe68330-8d70-11ef-842d-2cea7f5e5ede</ns2:note><ns2:note title="disclaimer">Provisional data are subject to revision. Go to http://waterdata.usgs.gov/nwis/help/?provisional for more information.</ns2:note><ns2:note title="server">sdas01</ns2:note></ns1:queryInfo><ns1:timeSeries name="USGS:01616500:00065:00000" xmlns:ns1="http://www.cuahsi.org/waterML/1.1/"><ns1:sourceInfo xsi:type="ns1:SiteInfoType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns1:siteName>OPEQUON CREEK NEAR MARTINSBURG, WV</ns1:siteName><ns1:siteCode network="NWIS" agencyCode="USGS">01616500</ns1:siteCode><ns1:timeZoneInfo siteUsesDaylightSavingsTime="true"><ns1:defaultTimeZone zoneOffset="-05:00" zoneAbbreviation="EST"/><ns1:daylightSavingsTimeZone zoneOffset="-04:00" zoneAbbreviation="EDT"/></ns1:timeZoneInfo><ns1:geoLocation><ns1:geogLocation xsi:type="ns1:LatLonPointType" srs="EPSG:4326"><ns1:latitude>39.42371047</ns1:latitude><ns1:longitude>-77.9386084</ns1:longitude></ns1:geogLocation></ns1:geoLocation><ns1:siteProperty name="siteTypeCd">ST</ns1:siteProperty><ns1:siteProperty name="hucCd">02070004</ns1:siteProperty><ns1:siteProperty name="stateCd">54</ns1:siteProperty><ns1:siteProperty name="countyCd">54003</ns1:siteProperty></ns1:sourceInfo><ns1:variable ns1:oid="45807202"><ns1:variableCode network="NWIS" vocabulary="NWIS:UnitValues" default="true" variableID="45807202">00065</ns1:variableCode><ns1:variableName>Gage height, ft</ns1:variableName><ns1:variableDescription>Gage height, feet</ns1:variableDescription><ns1:valueType>Derived Value</ns1:valueType><ns1:unit><ns1:unitCode>ft</ns1:unitCode></ns1:unit><ns1:options><ns1:option name="Statistic" optionCode="00000"/></ns1:options><ns1:noDataValue>-999999.0</ns1:noDataValue></ns1:variable><ns1:values><ns1:value qualifiers="P" dateTime="2024-10-18T11:45:00.000-04:00">1.97</ns1:value><ns1:qualifier qualifierID="0" ns1:network="NWIS" ns1:vocabulary="uv_rmk_cd"><ns1:qualifierCode>P</ns1:qualifierCode><ns1:qualifierDescription>Provisional data subject to revision.</ns1:qualifierDescription></ns1:qualifier><ns1:method methodID="160322"><ns1:methodDescription></ns1:methodDescription></ns1:method></ns1:values></ns1:timeSeries></ns1:timeSeriesResponse>

I’m not sure what changed on the remote end, but I had to set the timeout to a larger value than 3000.

Ok, I don’t have the standard time Out changed because I want only test the connection.