Help Needed: Error in HTTP Thing Configuration Cannot find channel implementation for channel http:url:deye:last-success

Hi OpenHAB Community,

I’m running into an issue with my Deye Inverter configuration. In the logs, I get the following warnings:

less

2025-02-16 11:43:21.437 [WARN ] [nding.http.internal.HttpThingHandler] - Cannot find channel implementation for channel http:url:deye:last-success.
2025-02-16 11:43:21.444 [WARN ] [nding.http.internal.HttpThingHandler] - Cannot find channel implementation for channel http:url:deye:last-failure.

Here’s the configuration I’m using for the Deye Inverter:

Thing http:url:deye "Deye Inverter" [
    baseURL="http://192.168.178.33/status.html",
    header="",
    authMode="BASIC",
    username="secret",
    password="secret",
    ignoreSSLErrors=true,
    delay=0,
    stateMethod="GET",
    refresh=60,
    commandMethod="GET",
    strictErrorHandling=true,
    timeout=3000,
    bufferSize=2048,
    refresh=15] {
        Channels:
         Type number : energyTotal "Energy Total" [ mode="READONLY", stateTransformation="REGEX:.*var webdata_total_e = \"([0-9]+[\\.][0-9]+).*"]
         Type number : currentPower "current Power" [ mode="READONLY", stateTransformation="REGEX:.*var webdata_now_p = \"([0-9]+).*"]
}

The error suggests that http:url:deye:last-success and http:url:deye:last-failure are missing, but I haven’t added these channels explicitly.

  • Has anyone else encountered a similar issue with HTTP bindings in OpenHAB?
  • How should I define or remove these missing channels?

Any help or insight would be greatly appreciated!

Thanks!

How was this Thing created? My HTTP thing all have a last-success and last-failure Channel created automatically (I didn’t create them). These are a datetime Channel which record the last time the binding successfully retrieved the URL and the last time it failed. I don’t have them linked to anything but apparently they are required.

UID: http:url:adguard
label: AdGuard
thingTypeUID: http:url
configuration:
  headers:
    - ""
  ignoreSSLErrors: true
  stateMethod: GET
  refresh: 30
  commandMethod: POST
  timeout: 3000
  authMode: BASIC_PREEMPTIVE
  baseURL: https://adguardurl/control
  password: somepassword
  delay: 0
  contentType: application/json
  bufferSize: 2048
  username: someuser
location: Global
channels:
  - id: protection_status
    channelTypeUID: http:switch
    label: Protection Status
    description: ""
    configuration:
      mode: READWRITE
      onValue: "true"
      commandTransformation:
        - 'JINJA:{"protection_enabled": {{value}}}'
      offValue: "false"
      stateExtension: /status
      commandExtension: /dns_config
      stateTransformation:
        - JSONPATH:$.protection_enabled
  - id: last-success
    channelTypeUID: http:request-date-time
    label: Last Success
    configuration: {}
  - id: last-failure
    channelTypeUID: http:request-date-time
    label: Last Failure
    configuration: {}

I created it via file…

the Yaml shows: also these channels…

UID: http:url:deye
label: Deye Inverter
thingTypeUID: http:url
configuration:
  ignoreSSLErrors: true
  strictErrorHandling: true
  stateMethod: GET
  refresh: 15
  commandMethod: GET
  timeout: 3000
  authMode: BASIC
  baseURL: http://192.168.178.33/status.html
  password: password
  delay: 0
  header: ""
  username: user
  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: energyTotal
    channelTypeUID: http:number
    label: Energy Total
    configuration:
      mode: READONLY
      stateTransformation:
        - 'REGEX:.*var webdata_total_e = "([0-9]+[\.][0-9]+).* ∩JS: |
          (parseFloat(input) > 0) ? input : 0'
  - id: currentPower
    channelTypeUID: http:number
    label: current Power
    configuration:
      mode: READONLY
      stateTransformation:
        - REGEX:.*var webdata_now_p = "([0-9]+).*

:man_shrugging: I don’t do .things files. It’s complaining about those two Channels though. Maybe there’s a bug since these are autogenerated Channels.