Daikin Onecta (Cloud) Binding [4.0.0.0;5.0.0.0)

With the newer Daikin units it is no longer possible to control them directly. The units can only be connected to the Daikin cloud called Onecta.
The units can then ‘only’ be controlled with the Onecta app on a phone or tablet.
This binding makes it possible to still control the units with OpenHAB. It’s now done by connecting the binding to Daikin’s Onecta.
The unit information is then received from the Daikin cloud just like the app. Commands to the units also run via the Daikin Cloud.
Older units can also be controlled with this binding as long as they are registered in Onecta.

Supported Things

Basically all devices connected to Daikin Onecta cloud could be connected with the binding.


  • bridge: Ensures the connection to Onecta cloud and the recognition of connected units

Discovery

The bridge can be added using the UI or can be configured with a thing-file and items-file.
Once the bridge is set up and connected to the Daikin cloud it will receive all information about the connected units.
Based on this information it will recognize the different units.
All recognized units end up in the Inbox, are listed in the logging and in the UI they are shown in the thing properties.

Things that can be discovered are:

  • Daikin Onecta device (…)
    Is the thing to control the unit.
  • Daikin Onecta (Gateway)
    Is the thing for info about the network controler.
  • Daikin Onecta (IndoorUnit)
    Is the thing for info about the indoor unit.
  • Daikin Onecta (DomesticHotWaterTank)
    Is the thing to control the Hot water tank.

Bridge Thing Configuration

Name Type Description Default Required Advanced
UserId text UserId / Emailadress Onecta account N/A yes no
Password text Password to access Onecta account N/A yes no
refreshInterval integer Interval the device is polled in sec. 60 yes no
refreshToken text Is filled automaticly with Refresh token to speedup connection N/A No no
rawdataLogging boolean If true raw JSon Data is dropt in log file false yes no
stubdataFile text Path to JSon stubdata file only for debugging N/A no no

Discovered Things Configuration

Name Type Description Default Required Advanced
unitID text UID Unique Identifier.
If this thing is created in a thing-file this UID can be found in the logging
N/A yes no
refreshDelay integer Refresh Delay in sec.
Only available for thing ‘device’ and ‘DomesticHotWaterTank’
15 yes no

Explanation Refresh Delay:

If a command is sent from the binding to OnectaCloud, it needs time to be processed by Daikin.
This can cause items to flip-flop.
For example: You switch a Unit ‘On’ with the binding.
Daikin will process this command and control the unit, this processing can take 15 seconds.
During this time, the binding may have requested a data refresh from OnectaCloud.
If this ‘On’ command has not yet been processed by Daikin, this will result in the OH item returning to ‘Off’.
After a while, when Daikin has processed it and another data refresh is performed by the binding,
the OH item will return to ‘On’.
The Refresh Delay prevents an item from being refreshed (for x seconds) after a command has been issued from this item.
Other items will be updated during this time with a data refresh

Channels

Unit

Channel Type Read/Write Description
control Switch RW This is the control channel

Full Example

Thing Configuration

Bridge onecta:account:bridge "Onecta Bridge" [userId="aaaaa@bbbbbbb.xx",password="***************", refreshInterval=5, rawdataLogging=false] {
        Thing device livingRoom "Onecta living room Unit" [unitID="80100dc5-a289-47c1-bbdb-****************", refreshDelay=15]
        Thing gateway livingRoom "Onecta living room Gateway" [unitID="80100dc5-a289-47c1-bbdb-****************", refreshDelay=15]
        Thing domesticHotWaterTank livingRoom "Onecta living room Watertank" [unitID="80100dc5-a289-47c1-bbdb-****************", refreshDelay=15]
        Thing indoorUnit livingRoom "Onecta Woonkamer living room" [unitID="80100dc5-a289-47c1-bbdb-****************", refreshDelay=15]
        }

Item Configuration device

Switch               Power              "Power for the AC unit"      <switch>      ["Point"] {channel="onecta:device:bridge:livingroom:basic#power"}
Number:Temperature   SetPoint           "SetTemp [%.1f °C]"          <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#settemp"}
Number:Temperature   SetPointMin        "SetTempMin [%.1f °C]"       <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#settempmin", readOnly="true"}
Number:Temperature   SetPointMax        "SetTempMax [%.1f °C]"       <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#settempmax", readOnly="true"}
Number:Temperature   SetPointStep       "SetTempStep [%.1f °C]"      <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#settempstep", readOnly="true"}
Number:Temperature   IndoorTemp         "Indoor temp [%.1f °C]"      <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#indoortemp", readOnly="true"}
Number:Temperature   OutdoorTemp        "Outdoor temp [%.1f °C]"     <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#outdoortemp"  , readOnly="true"}
Number:Temperature   LeavingWaterTemp   "LeavingWaterTemp [%.1f °C]" <Temperature> ["Point"] {channel="onecta:device:bridge:livingroom:basic#leavingwatertemp"}
Number:Dimensionless Humidity           "The indoor humidity"        <Humidity>    ["Point"] {channel="onecta:device:bridge:livingroom:basic#humidity"}

String               OperationMode      "Operation mode"                           ["Point"] {channel="onecta:device:bridge:livingroom:basic#operationmode"}
String               FanSpeed           "Fan Speed"                  <fan>         ["Point"] {channel="onecta:device:bridge:livingroom:basic#fanspeed"}
String               FanDirHor          "Fan Swing Horizontal"       <f7:arrow_right_arrow_left_circle>["Point"] {channel="onecta:device:bridge:livingroom:basic#fandirhor"}
String               FanDirVer          "Fan Swing Vertical"         <f7:arrow_up_arrow_down_circle>   ["Point"] {channel="onecta:device:bridge:livingroom:basic#fandirver"}
String               FanDir             "Fan Direction"              <f7:view_3d>  ["Point"] {channel="onecta:device:bridge:livingroom:basic#fandir"}

Switch               Ecomode            "Ecomode"                  <switch>        ["Point"] {channel="onecta:device:bridge:livingroom:basic#economode"}
Switch               Streamer           "Streamer mode"            <switch>        ["Point"] {channel="onecta:device:bridge:livingroom:basic#streamer"}
Switch               Powerful           "Powerful mode"            <switch>        ["Point"] {channel="onecta:device:bridge:livingroom:basic#powerfulmode"}
Switch               Holiday            "Holiday mode"             <switch>        ["Point"] {channel="onecta:device:bridge:livingroom:basic#holidaymode", readOnly="true"}

Number:Temperature   TargetTemp         "TargetTemp [%.1f °C]"     <Temperature>   ["Point"] {channel="onecta:device:bridge:livingroom:basic#targettemp"}
Number:Temperature   TargetTempMin      "TargetTempMin [%.1f °C]"  <Temperature>   ["Point"] {channel="onecta:device:bridge:livingroom:basic#targettempmin", readOnly="true"}
Number:Temperature   TargetTempMax      "TargetTempMax [%.1f °C]"  <Temperature>   ["Point"] {channel="onecta:device:bridge:livingroom:basic#targettempmax", readOnly="true"}
Number:Temperature   TargetTempStep     "TargetTempStep [%.1f °C]" <Temperature>   ["Point"] {channel="onecta:device:bridge:livingroom:basic#targettempstep", readOnly="true"}

String      DemandControl               "Demand Controle"                          ["Point"] {channel="onecta:device:bridge:livingroom:demandcontrol#demandcontrol"}
Number      DemandControlFixedValue     "Demand Control (fixed)"                   ["Point"] {channel="onecta:device:bridge:livingroom:demandcontrol#demandcontrolfixedvalue"}
Number      DemandControlFixedMinValue  "Demand Control fixed Min value"           ["Point"] {channel="onecta:device:bridge:livingroom:demandcontrol#demandcontrolfixedminvalue"}
Number      DemandControlFixedMaxValue  "Demand Control fixed Max value"           ["Point"] {channel="onecta:device:bridge:livingroom:demandcontrol#demandcontrolfixedmaxvalue"}
Number      DemandControlFixedStepValue "Demand Control fixed step value"          ["Point"] {channel="onecta:device:bridge:livingroom:demandcontrol#demandcontrolfixedstepvalue"}

Number:Energy   EnergyCoolingCurrentYear "The energy usage for cooling current year total" <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingcurrentyear"}
Number:Energy   EnergyCoolingCurrentDay  "The energy usage for cooling current day total"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingcurrentday"}
Number:Energy   EnergyHeatingCurrentYear "The energy usage for heating current year total" <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingcurrentyear"}
Number:Energy   EnergyHeatingCurrentDay  "The energy usage for heating current day total"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingcurrentday"}

Number:Energy   EnergyCoolingDay0 "Energy Cooling yesterday (00:00 - 02:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-0"}
Number:Energy   EnergyCoolingDay1 "Energy Cooling yesterday (02:00 - 04:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-1"}
Number:Energy   EnergyCoolingDay2 "Energy Cooling yesterday (04:00 - 06:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-2"}
Number:Energy   EnergyCoolingDay3 "Energy Cooling yesterday (06:00 - 08:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-3"}
Number:Energy   EnergyCoolingDay4 "Energy Cooling yesterday (08:00 - 10:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-4"}
Number:Energy   EnergyCoolingDay5 "Energy Cooling yesterday (10:00 - 12:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-5"}
Number:Energy   EnergyCoolingDay6 "Energy Cooling yesterday (12:00 - 14:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-6"}
Number:Energy   EnergyCoolingDay7 "Energy Cooling yesterday (14:00 - 16:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-7"}
Number:Energy   EnergyCoolingDay8 "Energy Cooling yesterday (16:00 - 18:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-8"}
Number:Energy   EnergyCoolingDay9 "Energy Cooling yesterday (18:00 - 20:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-9"}
Number:Energy   EnergyCoolingDay10 "Energy Cooling yesterday (20:00 - 22:00)" <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-10"}
Number:Energy   EnergyCoolingDay11 "Energy Cooling yesterday (22:00 - 24:00)" <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-11"}
Number:Energy   EnergyCoolingDay12 "Energy Cooling today (00:00 - 02:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-12"}
Number:Energy   EnergyCoolingDay13 "Energy Cooling today (02:00 - 04:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-13"}
Number:Energy   EnergyCoolingDay14 "Energy Cooling today (04:00 - 06:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-14"}
Number:Energy   EnergyCoolingDay15 "Energy Cooling today (06:00 - 08:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-15"}
Number:Energy   EnergyCoolingDay16 "Energy Cooling today (08:00 - 10:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-16"}
Number:Energy   EnergyCoolingDay17 "Energy Cooling today (10:00 - 12:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-17"}
Number:Energy   EnergyCoolingDay18 "Energy Cooling today (12:00 - 14:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-18"}
Number:Energy   EnergyCoolingDay19 "Energy Cooling today (14:00 - 16:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-19"}
Number:Energy   EnergyCoolingDay20 "Energy Cooling today (16:00 - 18:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-20"}
Number:Energy   EnergyCoolingDay21 "Energy Cooling today (18:00 - 20:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-21"}
Number:Energy   EnergyCoolingDay22 "Energy Cooling today (20:00 - 22:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-22"}
Number:Energy   EnergyCoolingDay23 "Energy Cooling today (22:00 - 24:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingday-23"}

Number:Energy   EnergyCoolingWeek0 "Energy Cooling last week Monday"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-0"}
Number:Energy   EnergyCoolingWeek1 "Energy Cooling last week Tuesday"         <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-1"}
Number:Energy   EnergyCoolingWeek2 "Energy Cooling last week Wednesday"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-2"}
Number:Energy   EnergyCoolingWeek3 "Energy Cooling last week Thursday"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-3"}
Number:Energy   EnergyCoolingWeek4 "Energy Cooling last week Friday"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-4"}
Number:Energy   EnergyCoolingWeek5 "Energy Cooling last week Saturday"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-5"}
Number:Energy   EnergyCoolingWeek6 "Energy Cooling last week Sunday"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-6"}
Number:Energy   EnergyCoolingWeek7 "Energy Cooling current week Monday"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-7"}
Number:Energy   EnergyCoolingWeek8 "Energy Cooling current week Tuesday"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-8"}
Number:Energy   EnergyCoolingWeek9 "Energy Cooling current week Wednesday"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-9"}
Number:Energy   EnergyCoolingWeek10 "Energy Cooling current week Thursday"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-10"}
Number:Energy   EnergyCoolingWeek11 "Energy Cooling current week Friday"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-11"}
Number:Energy   EnergyCoolingWeek12 "Energy Cooling current week Saturday"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-12"}
Number:Energy   EnergyCoolingWeek13 "Energy Cooling current week Sunday"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingweek-13"}

Number:Energy   EnergyCoolingMonth0 "Energy Cooling last year January"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-0"}
Number:Energy   EnergyCoolingMonth1 "Energy Cooling last year February"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-1"}
Number:Energy   EnergyCoolingMonth2 "Energy Cooling last year March"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-2"}
Number:Energy   EnergyCoolingMonth3 "Energy Cooling last year April"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-3"}
Number:Energy   EnergyCoolingMonth4 "Energy Cooling last year May"            <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-4"}
Number:Energy   EnergyCoolingMonth5 "Energy Cooling last year June"           <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-5"}
Number:Energy   EnergyCoolingMonth6 "Energy Cooling last year July"           <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-6"}
Number:Energy   EnergyCoolingMonth7 "Energy Cooling last year August"         <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-7"}
Number:Energy   EnergyCoolingMonth8 "Energy Cooling last year September"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-8"}
Number:Energy   EnergyCoolingMonth9 "Energy Cooling last year October"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-9"}
Number:Energy   EnergyCoolingMonth10 "Energy Cooling last year November"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-10"}
Number:Energy   EnergyCoolingMonth11 "Energy Cooling last year December"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-11"}
Number:Energy   EnergyCoolingMonth12 "Energy Cooling current year January"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-12"}
Number:Energy   EnergyCoolingMonth13 "Energy Cooling current year February"   <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-13"}
Number:Energy   EnergyCoolingMonth14 "Energy Cooling current year March"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-14"}
Number:Energy   EnergyCoolingMonth15 "Energy Cooling current year April"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-15"}
Number:Energy   EnergyCoolingMonth16 "Energy Cooling current year May"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-16"}
Number:Energy   EnergyCoolingMonth17 "Energy Cooling current year June"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-17"}
Number:Energy   EnergyCoolingMonth18 "Energy Cooling current year July"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-18"}
Number:Energy   EnergyCoolingMonth19 "Energy Cooling current year August"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-19"}
Number:Energy   EnergyCoolingMonth20 "Energy Cooling current year September"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-20"}
Number:Energy   EnergyCoolingMonth21 "Energy Cooling current year October"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-21"}
Number:Energy   EnergyCoolingMonth22 "Energy Cooling current year November"   <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-22"}
Number:Energy   EnergyCoolingMonth23 "Energy Cooling current year December"   <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataCooling#energycoolingmonth-23"}

Number:Energy   EnergyHeatingDay0 "Energy Heating yesterday (00:00 - 02:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-0"}
Number:Energy   EnergyHeatingDay1 "Energy Heating yesterday (02:00 - 04:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-1"}
Number:Energy   EnergyHeatingDay2 "Energy Heating yesterday (04:00 - 06:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-2"}
Number:Energy   EnergyHeatingDay3 "Energy Heating yesterday (06:00 - 08:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-3"}
Number:Energy   EnergyHeatingDay4 "Energy Heating yesterday (08:00 - 10:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-4"}
Number:Energy   EnergyHeatingDay5 "Energy Heating yesterday (10:00 - 12:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-5"}
Number:Energy   EnergyHeatingDay6 "Energy Heating yesterday (12:00 - 14:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-6"}
Number:Energy   EnergyHeatingDay7 "Energy Heating yesterday (14:00 - 16:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-7"}
Number:Energy   EnergyHeatingDay8 "Energy Heating yesterday (16:00 - 18:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-8"}
Number:Energy   EnergyHeatingDay9 "Energy Heating yesterday (18:00 - 20:00)"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-9"}
Number:Energy   EnergyHeatingDay10 "Energy Heating yesterday (20:00 - 22:00)" <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-10"}
Number:Energy   EnergyHeatingDay11 "Energy Heating yesterday (22:00 - 24:00)" <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-11"}
Number:Energy   EnergyHeatingDay12 "Energy Heating today (00:00 - 02:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-12"}
Number:Energy   EnergyHeatingDay13 "Energy Heating today (02:00 - 04:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-13"}
Number:Energy   EnergyHeatingDay14 "Energy Heating today (04:00 - 06:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-14"}
Number:Energy   EnergyHeatingDay15 "Energy Heating today (06:00 - 08:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-15"}
Number:Energy   EnergyHeatingDay16 "Energy Heating today (08:00 - 10:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-16"}
Number:Energy   EnergyHeatingDay17 "Energy Heating today (10:00 - 12:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-17"}
Number:Energy   EnergyHeatingDay18 "Energy Heating today (12:00 - 14:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-18"}
Number:Energy   EnergyHeatingDay19 "Energy Heating today (14:00 - 16:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-19"}
Number:Energy   EnergyHeatingDay20 "Energy Heating today (16:00 - 18:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-20"}
Number:Energy   EnergyHeatingDay21 "Energy Heating today (18:00 - 20:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-21"}
Number:Energy   EnergyHeatingDay22 "Energy Heating today (20:00 - 22:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-22"}
Number:Energy   EnergyHeatingDay23 "Energy Heating today (22:00 - 24:00)"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingday-23"}

Number:Energy   EnergyHeatingWeek0 "Energy Heating last week Monday"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-0"}
Number:Energy   EnergyHeatingWeek1 "Energy Heating last week Tuesday"         <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-1"}
Number:Energy   EnergyHeatingWeek2 "Energy Heating last week Wednesday"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-2"}
Number:Energy   EnergyHeatingWeek3 "Energy Heating last week Thursday"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-3"}
Number:Energy   EnergyHeatingWeek4 "Energy Heating last week Friday"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-4"}
Number:Energy   EnergyHeatingWeek5 "Energy Heating last week Saturday"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-5"}
Number:Energy   EnergyHeatingWeek6 "Energy Heating last week Sunday"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-6"}
Number:Energy   EnergyHeatingWeek7 "Energy Heating current week Monday"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-7"}
Number:Energy   EnergyHeatingWeek8 "Energy Heating current week Tuesday"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-8"}
Number:Energy   EnergyHeatingWeek9 "Energy Heating current week Wednesday"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-9"}
Number:Energy   EnergyHeatingWeek10 "Energy Heating current week Thursday"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-10"}
Number:Energy   EnergyHeatingWeek11 "Energy Heating current week Friday"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-11"}
Number:Energy   EnergyHeatingWeek12 "Energy Heating current week Saturday"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-12"}
Number:Energy   EnergyHeatingWeek13 "Energy Heating current week Sunday"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingweek-13"}

Number:Energy   EnergyHeatingMonth0 "Energy Heating last year January"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-0"}
Number:Energy   EnergyHeatingMonth1 "Energy Heating last year February"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-1"}
Number:Energy   EnergyHeatingMonth2 "Energy Heating last year March"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-2"}
Number:Energy   EnergyHeatingMonth3 "Energy Heating last year April"          <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-3"}
Number:Energy   EnergyHeatingMonth4 "Energy Heating last year May"            <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-4"}
Number:Energy   EnergyHeatingMonth5 "Energy Heating last year June"           <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-5"}
Number:Energy   EnergyHeatingMonth6 "Energy Heating last year July"           <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-6"}
Number:Energy   EnergyHeatingMonth7 "Energy Heating last year August"         <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-7"}
Number:Energy   EnergyHeatingMonth8 "Energy Heating last year September"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-8"}
Number:Energy   EnergyHeatingMonth9 "Energy Heating last year October"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-9"}
Number:Energy   EnergyHeatingMonth10 "Energy Heating last year November"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-10"}
Number:Energy   EnergyHeatingMonth11 "Energy Heating last year December"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-11"}
Number:Energy   EnergyHeatingMonth12 "Energy Heating current year January"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-12"}
Number:Energy   EnergyHeatingMonth13 "Energy Heating current year February"   <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-13"}
Number:Energy   EnergyHeatingMonth14 "Energy Heating current year March"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-14"}
Number:Energy   EnergyHeatingMonth15 "Energy Heating current year April"      <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-15"}
Number:Energy   EnergyHeatingMonth16 "Energy Heating current year May"        <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-16"}
Number:Energy   EnergyHeatingMonth17 "Energy Heating current year June"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-17"}
Number:Energy   EnergyHeatingMonth18 "Energy Heating current year July"       <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-18"}
Number:Energy   EnergyHeatingMonth19 "Energy Heating current year August"     <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-19"}
Number:Energy   EnergyHeatingMonth20 "Energy Heating current year September"  <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-20"}
Number:Energy   EnergyHeatingMonth21 "Energy Heating current year October"    <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-21"}
Number:Energy   EnergyHeatingMonth22 "Energy Heating current year November"   <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-22"}
Number:Energy   EnergyHeatingMonth23 "Energy Heating current year December"   <Energy> ["Point"] {channel="onecta:device:bridge:livingroom:consumptionDataHeating#energyheatingmonth-23"}

Item Configuration gateway

Switch        DaylightSavingTime      "Daylight saving time enabled" <switch>            ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#daylightsavingtimeenabled", readOnly="true"}
Switch        FirmwareUpdateSupported "Is firmware update supported" <switch>            ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#isfirmwareupdatesupported", readOnly="true"}
String        FirmwaweVersion         "firmware version"                                 ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#firmwareversion", readOnly="true"}
Switch        IsInErrorState          "Is in error state"            <switch>            ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#isinerrorstate", readOnly="true"}
Switch        LedEnabled              "Led enabled      "            <switch>            ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#ledenabled", readOnly="true"}
String        RegionCode              "Region code"                                      ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#regioncode", readOnly="true"}
String        Serialnumber            "Serialnumber"                                     ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#serialnumber"  , readOnly="true"}
String        SSID                    "SSID  "                       <network>           ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#ssid", readOnly="true"}
String        TimeZone                "Time zone"                                        ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#timezone", readOnly="true"}
String        WiFiConnectionSSID      "WiFi Connection SSID"         <network>           ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#wificonnectionssid", readOnly="true"}
Number        WifiConnectionStrength  "Wifi connection strength"     <QualityOfService>  ["Point"] {channel="onecta:gateway:bridge:livingroom:basic#wificonnectionpower", readOnly="true"}

Item Configuration hotwatertank

Switch        Power                     "Power for the AC unit"    <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#power"}
Switch        IsInErrorState            "Is in error state"        <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#isinerrorstate", readOnly="true"}
Switch        IsInWarningState          "Is in warning state"      <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#isinwarningstate", readOnly="true"}
Switch        IsInInstallerState        "Is in installer state"    <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#isininstallerstate", readOnly="true"}
Switch        IsInEmergencyState        "Is in imergency state"    <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#isinemergencystate", readOnly="true"}
Switch        IsHolidayModeActive       "Is holiday mode active"   <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#isholidaymodeactive", readOnly="true"}
Switch        PowerFulmode              "Powerful mode"            <switch>         ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#powerfulmode", readOnly="true"}
String        HeatupMode                "Heatup mode"                               ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#heatupmode", readOnly="true"}

String               ErrorCode          "Error code"                                ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#errorcode", readOnly="true"}
String               OperationMode      "Operation mode"                            ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#operationmode"}
String               SetPointMode       "Setpoint mode"                             ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#setpointmode"}

Number:Temperature   SetPoint           "SetTemp [%.1f °C]"          <Temperature>  ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#settemp"}
Number:Temperature   SetPointMin        "SetTempMin [%.1f °C]"       <Temperature>  ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#settempmin", readOnly="true"}
Number:Temperature   SetPointMax        "SetTempMax [%.1f °C]"       <Temperature>  ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#settempmax", readOnly="true"}
Number:Temperature   SetPointStep       "SetTempStep [%.1f °C]"      <Temperature>  ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#settempstep", readOnly="true"}

Number:Temperature   TankTemperature   "Tank temperature [%.1f °C]" <Temperature> ["Point"] {channel="onecta:domesticHotWaterTank:bridge:livingroom:basic#tanktemperature" , readOnly="true"}

Item Configuration Indoorunit

String              ModelInformation      "Model information"                                  ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#modelinfo", readOnly="true"}
String              SoftwareVersion       "Software version"                                   ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#softwareversion", readOnly="true"}
String              EepromVersion         "Eeprom version"                                     ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#eepromversion", readOnly="true"}

Switch              DrykeepSetting        "Dry keep setting"                    <switch>       ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#isdrykeepsetting", readOnly="true"}
Number:Temperature  DeltaDvalue           "DeltaD temperature [%.1f °C]"        <Temperature>  ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#deltadvalue"}
Number:Frequency    FanMotorratationSpeed "Fanmotor rotation speed [%.1f RPM]"  <Temperature>  ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#fanmotorratationspeed", readOnly="true"}

Number:Temperature  HeatExchangerTemp     "Heatexchanger temperature [%.1f °C]" <Temperature>  ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#heatexchangertemp", readOnly="true"}
Number:Temperature  SuctionTemp           "Suction temperature [%.1f °C]"       <Temperature>  ["Point"] {channel="onecta:indoorUnit:bridge:livingroom:basic#suctiontemp", readOnly="true"}

Screenshots


Resources

-PreRelease Tag 7, Fix null pointerexception
(org.openhab.binding.onecta-4.1.0-SNAPSHOT.jar)

-PreRelease Tag 8, Add new thing. Its detecting the network of the unit. Gives network GateWay (readonly) info
(org.openhab.binding.onecta-4.1.0-SNAPSHOT.jar)

-PreRelease Tag 9, Add new thing IndoorUnit readony info (if available for unit), Fix bug refresh token after sending a command
(org.openhab.binding.onecta-4.1.0-SNAPSHOT.jar)

-PreRelease Tag 10, Add some documentation, Fix bug nullpointer from Gateway
(org.openhab.binding.onecta-4.1.0-SNAPSHOT.jar)

-PreRelease Tag 11,
Bug Nullpointer when Thing is disabled
Add Setpoint setleavingwateroffset and setleavingwatertemp (still in test)
(org.openhab.binding.onecta-4.1.0-SNAPSHOT.jar)

-PreRelease Tag 12,
Add Setpoint setleavingwateroffset and setleavingwatertemp
Some Fixes.
Small refactoring
(org.openhab.binding.onecta-4.1.0-SNAPSHOT.jar)

-PreRelease Tag onecta.4.2.0-1,
Prepare Pullrequest.
Some refactoring
Creating Unittest
(org.openhab.binding.onecta-4.2.0-SNAPSHOT.jar)

Moved Git repository to:

GitHub issue: Issues · openhab/openhab-addons · GitHub

Github pull requests: Pull requests · openhab/openhab-addons · GitHub

10 Likes

Great. Thank you!
Will sync it and build it as soon as I have some more time. Your work is much appreciated! :slight_smile:

I wonder if you got into an official agreement with Daikin to provide you the API documentation (I had this idea at some point but I didn’t want to sign their NDAs and stuff), or you used the reverse-engineered protocol from the Home Assistant guys and the proxy implementation mentioned a few times?

Cheers,
K.

One thing I noticed when I did a rough look - you may want to fix the typo in the exceptions package. Currently it’s “excetion”. :slight_smile:

1 Like

I used the reverse-engineered methode for personal use at first. But I like to create something for the community, instead of only using it.

After successfully generating the token (With proxy implementation) and receiving a json message with data of the complete installation (with Postman). I started translating this data to Java. It has also been possible to control units with Postman.

I also managed to control units with Postman by sending messages to Onecta.

From the Home Assistant plugin I got the endpoints, but reading and understanding a Python project … pffff :worried:

1 Like

Following and will try as soon I find some time.

Does it need OH4 with the new Java 17 or could it work on OH3.4 with Java 11 too?

Iam developing for OH4 with java 17. On OH3 it will miss some libs.

Done, there is more cleaning and refactoring necessary

1 Like

Great work. Like to be a tester for this new binding.
No issue to get it working in OH4.0.0M3. Could read-out Daikin Prefera unit data.
However after 1 hour, it stops working. Probably due to token expiration, and refresh not working.
See error log.

2023-07-02 09:41:30.314 [INFO ] [org.openhab.core.Activator ] - Starting openHAB 4.0.0.M3 (build Milestone Build)
2023-07-02 09:41:31.456 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Time zone set to ‘Europe/Brussels’.
2023-07-02 09:41:31.485 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Locale set to ‘nl_BE’.
2023-07-02 09:42:12.710 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2023-07-02 09:42:53.794 [INFO ] [ab.ui.habpanel.internal.HABPanelTile] - Started HABPanel at /habpanel
2023-07-02 09:54:41.561 [INFO ] [ecta.internal.api.OnectaSignInClient] - Start logon
2023-07-02 09:54:42.155 [INFO ] [ecta.internal.api.OnectaSignInClient] - Create client Secret
2023-07-02 09:54:42.529 [INFO ] [ecta.internal.api.OnectaSignInClient] - Get csrf-cookies
2023-07-02 09:54:42.532 [INFO ] [ecta.internal.api.OnectaSignInClient] - Call forward-url
2023-07-02 09:54:42.789 [INFO ] [ecta.internal.api.OnectaSignInClient] - Prepare request to get Api-Version
2023-07-02 09:54:43.219 [INFO ] [ecta.internal.api.OnectaSignInClient] - Prepare request to get single-sign-on cookie
2023-07-02 09:54:43.517 [INFO ] [ecta.internal.api.OnectaSignInClient] - User logon to Daikin
2023-07-02 09:54:43.824 [INFO ] [ecta.internal.api.OnectaSignInClient] - Extract login-token
2023-07-02 09:54:43.842 [INFO ] [ecta.internal.api.OnectaSignInClient] - Expand single-sign-on cookies with login-token
2023-07-02 09:54:44.074 [INFO ] [ecta.internal.api.OnectaSignInClient] - Get DaikinUnified
2023-07-02 09:54:44.342 [INFO ] [ecta.internal.api.OnectaSignInClient] - Get Tokens to perform datatransfer
2023-07-02 09:54:44.508 [INFO ] [ecta.internal.api.OnectaSignInClient] - Refresh token.
2023-07-02 09:54:45.160 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing ‘onecta:device:c06ca88b33:06a20a89-a899-zzzz-yyyy-xxxxxxxxxxxx’ to inbox.
2023-07-02 10:00:14.177 [INFO ] [internal.handler.OnectaBridgeHandler] - asasasasasasas
2023-07-02 10:55:02.665 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.openhab.binding.onecta.internal.api.OnectaConnectionClient.doBearerRequestGet(OnectaConnectionClient.java:68) ~[?:?]
at org.openhab.binding.onecta.internal.api.OnectaConnectionClient.refreshUnitsData(OnectaConnectionClient.java:111) ~[?:?]
at org.openhab.binding.onecta.internal.handler.OnectaBridgeHandler.pollDevices(OnectaBridgeHandler.java:174) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[?:?]
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[?:?]
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:732) ~[?:?]
at org.openhab.binding.onecta.internal.api.OnectaConnectionClient.doBearerRequestGet(OnectaConnectionClient.java:61) ~[?:?]
… 8 more
Caused by: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.eclipse.jetty.client.AuthenticationProtocolHandler$AuthenticationListener.onComplete(AuthenticationProtocolHandler.java:164) ~[?:?]
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:218) ~[?:?]
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:210) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:481) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:461) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:424) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:374) ~[?:?]
at org.eclipse.jetty.http.HttpParser.handleContentMessage(HttpParser.java:597) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1722) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1551) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:208) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:148) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:80) ~[?:?]
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:131) ~[?:?]
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:172) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[bundleFile:9.4.50.v20221201]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[bundleFile:9.4.50.v20221201]

Hi Frans,

Thanks for testing.
Please try the new version. This morning i upload a new Jar and this issue should be solved.

Jar file

2 Likes

Hi Alex
Working fine now for about 20 hours.
Just get every hour following log message:

2023-07-03 12:07:49.540 [INFO ] [ecta.internal.api.OnectaSignInClient] - doBearerRequestGet : Exception status org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-A
uthenticate header
2023-07-03 12:07:49.543 [INFO ] [ecta.internal.api.OnectaSignInClient] - Refresh token.
2023-07-03 13:07:57.182 [INFO ] [ecta.internal.api.OnectaSignInClient] - doBearerRequestGet : Exception status org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-A
uthenticate header
2023-07-03 13:07:57.187 [INFO ] [ecta.internal.api.OnectaSignInClient] - Refresh token.

Somthing to worry about?
During upgrade to OH4.0.0.M4:
[main] WARN org.openhab.core.tools.internal.Upgrader - Daikin_Onecta_Unit_DaikinAP23947_Indoor_Humidity: Could not determine if channel ‘onecta:device:xxxxxxxxx:yyyyyyyyyy:humidity’ sets a state description. Check if you need to set unit metadata.
[main] WARN org.openhab.core.tools.internal.Upgrader - Daikin_Onecta_Unit_DaikinAP23947_Set_Point: Could not determine if channel ‘onecta:device:xxxxxxxxx:yyyyyyyyyy:settemp’ sets a state description. Check if you need to set unit metadata.
[main] WARN org.openhab.core.tools.internal.Upgrader - Daikin_Onecta_Unit_DaikinAP23947_Indoor_Temperature: Could not determine if channel ‘onecta:device:xxxxxxxxx:yyyyyyyyyy:indoortemp’ sets a state description. Check if you need to set unit metadata.
[main] WARN org.openhab.core.tools.internal.Upgrader - Daikin_Onecta_Unit_DaikinAP23947_Outdoor_Temperature: Could not determine if channel ‘onecta:device:xxxxxxxxx:yyyyyyyyyy:outdoortemp’ sets a state description. Check if you need to set unit metadata.

Hello,
a question. What is the name of the binding?
I have the official Daikin binding on my system and would like to test your binding on another Daikin chest unit.
I copied the jar file into the addon directory and when setting up the things I only see the official binding called Daikin Binding. Could it be that your binding has the same name and therefore doesn’t appear in the list?
If so, could you rename your binding?

Addendum:
I see the binding in the Karaf console. It’s not active. Does it only work from OH 4?

308 │ Installed │ 80 │ 4.0.0.202307020929 │ onecta

Hi Andre,

Yes, till now its only writen for 4.0.0

Hi Frans,
The problem is that the token is used until a exception is thrown. In this exception i get a new token with the refreshToken. The Message is a log message I put there.
I’ll will delete this message.

gr Alexander

I don’t know what this is?

Hi Alex,
I guess you need to specify a proper type for the humidity.
See this: Units Of Measurement | openHAB
For example in the XML of a binding I hope soon to be merged, where I explain the channels for example for electric current I use this:
<channel id="inverterCurrent" typeId="system.electric-current"/>
I guess there is a specific typeId for humidity which results in % humidity as a unit of measurement. Probably this should fix these issues…

Cheers,
K.

Yes, thanks,
I know the issue

I would suggest to rather make the severity of the message higher, e.g. DEBUG/TRACE. You will still be able to ask “customers” :slight_smile: for higher fidelity logs for more info troubleshooting. :slight_smile:

Yes, you are right. Building an addon in a community is very new to me. It is a quest for all possibilities. :rofl: