[SOLVED] OH2 - Daikin Binding Unknown wireless control state: dmnd_run = 0

Hi all, i’m a newbie trying to setup the daikin binding in a new openhab2 installation. I followed the wiki step by step but at the end everytime i start openhab i receive the following error:

2017-02-24 09:08:24.190 [ERROR] [org.apache.felix.configadmin ] - [org.osgi.service.cm.ManagedService, org.osgi.service.event.EventHandler, id=324, bundle=199/file:/usr/share/openhab2/addons/org.openhab.binding.daikin-1.10.0-SNAPSHOT.jar]: Unexpected problem updating configuration org.openhab.daikin java.lang.IllegalArgumentException: Unknown wireless control state: dmnd_run = 0 at net.jonathangiles.daikin.wireless.WirelessDaikin.readDaikinState(WirelessDaikin.java:122)[199:org.openhab.binding.daikin:1.10.0.201702240212] at net.jonathangiles.daikin.DaikinBase.<init>(DaikinBase.java:42)[199:org.openhab.binding.daikin:1.10.0.201702240212] at net.jonathangiles.daikin.wireless.WirelessDaikin.<init>(WirelessDaikin.java:18)[199:org.openhab.binding.daikin:1.10.0.201702240212] at net.jonathangiles.daikin.DaikinFactory.createWirelessDaikin(DaikinFactory.java:30)[199:org.openhab.binding.daikin:1.10.0.201702240212] at org.openhab.binding.daikin.internal.DaikinBinding.updated(DaikinBinding.java:284)[199:org.openhab.binding.daikin:1.10.0.201702240212] at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[3:org.apache.felix.configadmin:1.8.12] at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[3:org.apache.felix.configadmin:1.8.12] at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[3:org.apache.felix.configadmin:1.8.12] at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1461)[3:org.apache.felix.configadmin:1.8.12] at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1417)[3:org.apache.felix.configadmin:1.8.12] at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141)[3:org.apache.felix.configadmin:1.8.12] at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109)[3:org.apache.felix.configadmin:1.8.12] at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

In a first moment i thought it was a configuration mismatch, so i posted my config files in the beginners area of the forum ([SOLVED] Daikin binding in OH2 reporting error), but then googling a little bit i found this commit in the Jdaikin library (https://bitbucket.org/microcheese/jdaikin/pull-requests/2/added-the-new-keys-reported-by-daikin/diff) talking about this parameter (dmnd_run ??).
So i tried to load http://192.168.0.100/aircon/get_control_info that returned me: ret=OK,pow=0,mode=4,adv=13,stemp=24.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=24.0,dt5=24.0,dt7=25.0,dh1=AUTO,dh2=50,dh3=0,dh4=0,dh5=0,dh7=AUTO,dhh=50,b_mode=4,b_stemp=24.0,b_shum=0,alert=255,f_rate=A,f_dir=0,b_f_rate=A,b_f_dir=0,dfr1=5,dfr2=5,dfr3=5,dfr4=A,dfr5=A,dfr6=5,dfr7=5,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0,dmnd_run=0,en_demand=0

As you can see the value (dmnd_run=0) is there, so now i’m lost :slight_smile: Does it mean my AC are not compatible with the binding? (at the moment i’m using this one https://openhab.ci.cloudbees.com/job/openHAB1-Addons/lastBuild/org.openhab.binding$org.openhab.binding.daikin/), or maybe there is a way a can manually compile it using the Reiter Ernst Jdaikin library that seems (as far as i can understand) to better handle the output of my heatpump ??

I also lurked the forum but no one seems to had this problem before :unamused:

Thanks in advance for your kind help, and sorry if i crossposted.

I finally solved after some googling :wink: I’ll report all the steps i followed here just in case someone else will need it.
First step was to re-pack the jdaikin library. So clone the repo:

then patch WirelessDaikin.java as showed here


and here

Now you can compile the lib with ./gradlew

Now it’s time to compile the binding with maven.
So clone the repo

Now copy the library jdaikin.jar you just compiled (you can find it in ./jdaikin/build/libs) in ./openhab1-addons/bundles/binding/org.openhab.binding.daikin/lib replacing the “original” version contained in the openhab repo.
It’s time to compile the binding with mvn clean install.

At the end you’l find the new binding in the target folder.

Ps. The binding seems to crash when putting the AC system in “FAN MODE ONLY” as reported here:

That’s it :wink:

Can you post the compiled patched addon please?

Hi ChrisA, sorry for late reply but i was out for some days.
Here we are http://casa.profeta.in/f/9079a2f32a/?raw=1

Let me know if it’s working also for you :wink:

the link does not work form me :frowning:

@ChrisA, I had the same problem - link not working. But I was able to follow the instructions given in Skumpics post and compiled a new JAR file. Here you can get it from my Dropbox:
https://www.dropbox.com/s/69ubimntqekyhcs/org.openhab.binding.daikin-1.10.0-SNAPSHOT.jar?dl=0

Just copy this jar-file into the Addon-folder and remove all other “daikin”-bindings.
Just tested it on my Daikin AC - and it works like a charm :slight_smile:

Cheers,
Boby

2 Likes

Thanks a lot I was looking for that file!

I placed it in the addons folder but it does not show up. Are there any extra steps required?
I am asking because I am also using a jar for the mi home binding and that one just showed
up after dropping it in there.

What do you mean by “does not show up”? Where and how are you looking for it?

Liebe Grüße,
Robert

My expectation was that I place the JAR file inside the /usr/share/openhab2/addons folder and then it will just magically appear in the WEBUI. Thats what the mi home JAR did.
edit:
Maybe to clarify what i mean with showup. I just expected it to be visible under installed BINDINGS.

Nope, it doesn’t show up. I don’t know if 1.x addons do show up there at all.
Just provide a daikin.cfg in the services folder of your config, define your items and use the items in your sitemap. Editor only, no support of things, discovery or anything like that.

In the app (here iPad, German) it looks this way:

Thanks a lot for the details. I will give it another go. No luck yet. I think i will have to start with a fresh instance
as I also tried to load older version of the binding.

Hmmm…as I said, no problem here. Are you sure, the binding is being loaded? Do you find some hints regarding Daikin in the logfile at all?

Here’s my full configuration again:

daikin.cfg (needs to be placed in the services folder):

daikin:SZ.refresh=60000
daikin:SZ.host=WIRELESS@http://192.168.1.xx
daikin:SZ.username=xxxxxxxx
daikin:SZ.password=xxxxxxxx

The “SZ” is the abbreviation of the room, where the AC is mounted. Username and Password must be fit to the user and passwort, you use in the Daikin Controller App. The “out of home”-Service has to be activated!
Also, you need to use a FIXED ip address (give it to the device on your router, based on the MAC address you’ll find in the Daikin Controller app)

You need to add the Daikin bining in the file addons.cfg (same directory as daikin.cfg):

# A comma-separated list of bindings to install (e.g. "sonos,knx,zwave")
binding = <your other bindings>,daikin

items:

// Daikin AC Schlafzimmer
Number  DaikinSZTempIn       "Innentemperatur [%.1f °C]"       <temperature_inside>  {daikin="SZ:tempin"}
Number  DaikinSZTempOut      "Außentemperatur [%.1f °C]"       <temperature_outside> {daikin="SZ:tempout"}
String  NoDaikSZinTempOut    "Außentemperatur nicht verfügbar" <temperature_outside> 
Switch  DaikinSZPower        "Power"                                                 {daikin="SZ:power"}
Number  DaikinSZMode         "Modus"                           <ac_mode>             {daikin="SZ:mode"}
Number  DaikinSZTemp         "Zieltemperatur [%.0f °C]"        <temperature>         {daikin="SZ:temp"}
Number  DaikinSZFan          "Lüfter"                          <fan>                 {daikin="SZ:fan"}

sitemap:

                 Text item=Dummy label="Klimaanlage" icon="climate" {
	                  Frame label="Einstellungen"{
	                        Switch item=DaikinSZPower
	                        Setpoint item=DaikinSZTemp minValue=16 maxValue=30 step=1 
	                        Switch item=DaikinSZMode mappings=[2="Cool", 1="Dry", 0="Auto"] //not used: 3="Heat", 4="Fan"  
	                        Switch item=DaikinSZFan mappings=[ 6="Schlaf", 0="Auto", 1="Lo", 3="Mid", 5="Hi"] // not used: 2, 4
	                  }
	                  Frame label="Temperaturwerte" {
		                    Text item=DaikinSZTempOut   visibility=[DaikinSZTempOut!=0] 
		                    Text item=NoDaikinSZTempOut visibility=[DaikinSZTempOut==0] labelcolor=[DaikinSZTempOut==0="grey"]
	                        Text item=DaikinSZTempIn 
					        Switch item=ChartScale label="Zeitraum" mappings=[1="T", 2="W", 3="M", 4="J"] icon="chart"
						    Chart item=DaikinSZTempIn period=D refresh=1000   service="rrd4j" visibility=[ChartScale==1, ChartScale=="NULL"]
						    Chart item=DaikinSZTempIn period=W refresh=5000   service="rrd4j" visibility=[ChartScale==2]
						    Chart item=DaikinSZTempIn period=M refresh=10000  service="rrd4j" visibility=[ChartScale==3]
						    Chart item=DaikinSZTempIn period=Y refresh=100000 service="rrd4j" visibility=[ChartScale==4]
                      }
	                        
                 } // Klimaanlage Schlafzimmer Ende

Good luck!

Cheers,
Boby

1 Like

P.S.: Since my model doesn’t show the outside temperature when the AC is off, you’ll find the “visibilty” clause at the “DaikinSZTempOut” and the “NoDaikinSZTempOut” item. Either the one OR the other is being showed, but not both at the same time.

Thanks a lot for taking the time to share your config files and explanation!

The “out of home” setting requirement was new to me. I will give it another go :slight_smile:

Thanks!
Your 1.10.0 worked like a charm.
The newest 1.12.0 from the build server did not …

I spoke a little too soon.
I’m able to read the current values, but cannot control anything.
Out-Of-Home on WAN works OK. Using same credentials in binding config.
I can see the state changing when listing items in karaf, but on next poll the old value comes back.
Have tried to enable DEBUG log, but the binding don’t seems to do any logging.

Any ideas?
Adapter is BRP069A42

I had the same issue as OMR where the binding would display the values just fine but I could not post any updates. I am using three Daikin adaptors with firmware 1.2.48.

For different reasons I upgraded to the Openhab Snapshot 2.3 and here the binding (build .12 and .10 )completely fails with the below error. Not sure how to move forward with this. Beware not to upgrade if you want to continue using it for the moment

2018-02-09 15:24:26.754 [ERROR] [org.openhab.binding.daikin ] - FrameworkEvent ERROR - org.openhab.binding.daikin
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.daikin [208]
Unresolved requirement: Import-Package: org.openhab.core.binding

at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]

I now have a working solution for on/off and setTemp, inDoor & outDoor reading using the http binding.
ToDo: mode & fan control.
Will post back when done.

Teaser…

Great news and can not wait for a working solution.
I have the same get info as you therefore I tried based upon the teaser to implement it through the http binding. Unfortunatelly it does not seem to parse the values correctly. For example with the below sitemap the two temperature items are just showing the whole string " ret=OK,htemp=21.0,hhum=-,otemp=-,err=0,cm…" in the two fields.

//Warning I am no programmer so dummy questions might occur :wink:

 sitemap daikin label="Daikin Home Control" 
        {
	    Frame label="Bureau" icon="climate" 
		{
		  Frame  label="Instellingen"
                   {
	                        Switch item=ACpowerState mappings=[1="On", 0="Off"]
	                        Setpoint item=ACsetTemp minValue=16 maxValue=30 step=1 
	                        Switch item=ACmode mappings=[2="Cool", 1="Dry", 0="Auto", 3="Heat", 4="Fan"] 
	                        Switch item=ACfanRate mappings=[ 6="Sleep", 0="Auto", 1="Lo", 3="Mid", 5="Hi"] // not used: 2, 4
	           }
	          Frame label="Temperature"
                   {
	                        Text item=ACinDoorTemp  
	                        Text item=ACoutDoorTemp

                    }
		}	 
      }

You must install the REGEX add - on.
Will be back over the weekend… Travelling