milo
(M)
February 16, 2025, 10:50am
1
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!
rlkoshak
(Rich Koshak)
February 17, 2025, 4:03pm
2
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: {}
milo
(M)
February 17, 2025, 4:52pm
3
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]+).*
rlkoshak
(Rich Koshak)
February 17, 2025, 6:14pm
4
I don’t do .things files. It’s complaining about those two Channels though. Maybe there’s a bug since these are autogenerated Channels.