[SOLVED] Kostal inverter binding - Status UNKNOWN

Hi there!
I am absolutely new to OpenHAB but totally fascinated about the possibilities I see… :smiley:

Today I installed the latest OpenHAB 3.0.1 version on my raspberry 4 and directly installed the “thing” for my solar energy plant using KOSTAL binding.

After having created an equipment of that thing and entering ip address and password I do not get any values, just status “UNKNOWN” for any items.

is there anything I can check what’s wrong?

the log at openhabian:9001 doesn’t show any interesting issues.
I have searched the forum for similar issues but didn’t find matching threads.


I will like to help you, but I am a little bit busy during the Eastern, but next week I will have time again.
Just a question so far, what type of inverter do you have?
Btw, I am responsible for the code regarded to PIKO10-20, but I will do my very best to have a look even if this is not your type, just let me know.
Best regards Basse

Thanks for the quick answer, Basse!

Hi, what is the status of the Thing KOSTAL PLENTICORE plus 8.5, it must be like ONLINE otherwise is it no connection available to the inverter.

BR Basse

Hey Basse,
That’s exactly my problem… :sunglasses: Status is UNKNOWN

You’ll need to spell it out a bit more.

Show us the settings.
Tell us what the Thing status is.

Where are you looking to see Items UNKNOWN?

Hi, as I said I’m not responsible for this part of the binding, it is Rene Stakemeier who has wrote this part.
But I will do my best and if he can help you I am shure that he will solve this issue easily.
I see that for first and second generation is the configuration of IP Adress / Hostname as http://X.X.X.X but for third as X.X.X.X, Please try with http://X.X.X.X.

BR Basse

Hey, thanks for coming up to helping me!

do you mean this setting?

UID: kostalinverter:PLENTICOREPLUS85WITHBATTERY:04c914b1e5
label: KOSTAL PLENTICORE Plus 8.5 (with Battery)
  refreshInternalInSeconds: 30
  userPassword: :-)

if not, please tell me, where I have to look and click.


Hi, yes that is right, but I don’t think you need the / in the end of IP address.
BR Basse

I deleted it, but no effect. still Status “unknown”

Editing the Thing should have caused some kind of reinitialize by the binding. What did it have to say about it in your openhab.log?

Hi, just found this text in README, could it maybe be for some help:
Kostal bindings to third generation devices require Java’s strong cryptography to be enabled in order to establish connections. In case you are allowed to use strong cryptography in your country, you can achieve this by modifying the $JAVA_HOME/jre/lib/security/java.security file (find the line crypto.policy=limited and set it to unlimited ). If you’re using the official openHAB docker image you may also enable Java’s strong cryptography by specifying an environment variable CRYPTO_POLICY=“unlimited” .

BR Basse

I changed the interval:

2021-04-07 21:43:23.795 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.IllegalArgumentException: Expected closing bracket for IPv6 address at index 13: http://[]
	at java.net.URI.create(URI.java:883) ~[?:?]
	at org.eclipse.jetty.client.HttpClient.newRequest(HttpClient.java:442) ~[bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.client.HttpClient.newRequest(HttpClient.java:431) ~[bundleFile:9.4.20.v20190813]
	at org.openhab.binding.internal.kostal.inverter.thirdgeneration.ThirdGenerationHttpHelper.executeHttpPost(ThirdGenerationHttpHelper.java:84) ~[?:?]
	at org.openhab.binding.internal.kostal.inverter.thirdgeneration.ThirdGenerationHttpHelper.executeHttpPost(ThirdGenerationHttpHelper.java:66) ~[?:?]
	at org.openhab.binding.internal.kostal.inverter.thirdgeneration.ThirdGenerationHandler.authenticate(ThirdGenerationHandler.java:301) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.net.URISyntaxException: Expected closing bracket for IPv6 address at index 13: http://[]
	at java.net.URI$Parser.fail(URI.java:2913) ~[?:?]
	at java.net.URI$Parser.failExpecting(URI.java:2919) ~[?:?]
	at java.net.URI$Parser.parseServer(URI.java:3292) ~[?:?]
	at java.net.URI$Parser.parseAuthority(URI.java:3216) ~[?:?]
	at java.net.URI$Parser.parseHierarchical(URI.java:3158) ~[?:?]
	at java.net.URI$Parser.parse(URI.java:3114) ~[?:?]
	at java.net.URI.<init>(URI.java:600) ~[?:?]
	at java.net.URI.create(URI.java:881) ~[?:?]

@Basse_03 i will try if I can change it tomorrow. Thanks for the hint.

Oki, and I think that you should use the IP Adress as in README, without http://

@Basse_03 thanks!!! that’s it! now KOSTAL is ONLINE! :+1:

OP uses openHABian which should provide that per default:

[16:07:24] root@devpc:/home/markus# egrep 'policy.*limit'  /opt/jdk/zulu11.48.21-ca-jre11.0.11-linux_i686/conf/security/java.security
# traditional restrictive policy, the "limited" Java cryptographic

May I raise a question to you as the binding creator and Kostal experts:
I’m looking for a means to control battery charging, i.e. force excess power to go to battery or grid and/or force a specific charge or discharge amount of power.
I have not spotted this capability in the binding docs. Do you know of any such means ?

1 Like

Hi, Thank’s for your question. I am not at home during the weekend. I will have a look at Monday.

BR Basse

I have done the part of Kostal Binding regarded to Second Generation, PIKO 10-20.
For these type of inverters is it possible to set the parameters as:
The following Channels are writeable

Channel Type ID Item Type Description Read Write
device-local-battery-usage-consumption-set String Battery usage consumption level for power-consumption from battery, value = 100 (W) W
device-local-battery-usage-strategy-set String Battery usage strategy, Value = 1 = Automatic, Value = 2 = Automatic economical W
device-local-smart-battery-control-set Switch Smart battery control, Value = OFF / ON W
device-local-battery-charge-time-from-set String Battery charge time from, Value = 00:00 W
device-local-battery-charge-time-to-set String Battery charge time to, Value = 23:59 W
device-local-max-depth-of-discharge-set String Max depth of discharge (SoC), Value = 10 W
device-local-shadow-management-set String Shadow management, Value = 0 = No shadow management enabled, Value = 1 = Shadow management enabled for DC-Input String 1, Value = 2 = Shadow management enabled for DC-Input String 2, Value = 3 = Shadow management enabled for DC-Input String 1 and 2 W
device-local-external-module-control-set String External module control, Value = 0 = Not Activated, Value = 1 = Activated W

I have checked the public manual regarded Plenticore and it seems like almost the same parameters are able to set in this kind of inverters.
But this option is not implemented in the Third Generation part of Kostal Binding.

Hope this is what you are looking for, otherwise just let me know.

BR Basse

Thanks for getting back with me on this!

That’s a pity as I’m trying to do it with/to a Plenticore. Not many Picos on sale any more.
Do you know who did the Plenticore part of the binding?

And do you know how to enforce battery charging or discharging or where that’s further described?
It’s not really obvious from the channel descriptions, isn’t it.