Thnaks for the response,
the time cron is created with the http://www.cronmaker.com/
The main problem is hen a use the manual switch, nothing is send on the KNX bus of the weather outdoor temperature
Thnaks for the response,
the time cron is created with the http://www.cronmaker.com/
The main problem is hen a use the manual switch, nothing is send on the KNX bus of the weather outdoor temperature
Clarify a bit plz: From the first post, I understand that you do see the telegram being transmitted on the KNX Bus when you use the manually fired rule. From the second post, I understand that it is not actually send…
What is the situation?
Add a logInfo statement to each rule to see if it fires:
rule "Weerbericht Cron based every 5m"
when
Time cron '0 */5 * ? * *'
then
logInfo("Weerbericht_Cron", "Cron - Sending Temp to KNX")
KNXWeerbericht_BuitenTemperatuur.sendCommand(LocalWeather_Current_OutdoorTemperature.state.toString)
end
rule "Weerbericht Manual"
when
Item KNXWeerbericht_ManualSend received command ON
then
logInfo("Weerbericht_Manual", "Manual - Sending Temp to KNX")
KNXWeerbericht_BuitenTemperatuur.sendCommand(LocalWeather_Current_OutdoorTemperature.state.toString)
end
Question: why are you converting to String the LocalWeather_Current_OutdoorTemperature.state
?
Isn’t your KNX Item KNXWeerbericht_BuitenTemperatuur
a Number?
You should post all relevant configs when troubleshooting
There should be also log entries in openhab.log
The ‘Manual Send’ have group adres 0/0/100 and is send on the KNX bus (item type = switch)
the ‘Buiten temperatuur’ have group adres 1/0/1 and is not send to the KNX bus (item type = number)
i have tryed a lot of combinations, and hen i remove the ‘toString’ i get a error in VS code that my syntax is not correct
also my other knx devices are not working any more in the paperUI, when a use a switch that before is working, is now not working any more
when i remove the rule, then the are working again afte some time, i have check this more times
the configuration of the knx devices is don i the paperUI
i see in the openhab log ‘Cron - sending Temp to KNX’
but when a i look in paperUI on the KNX item there is no change on it
That is because you are using the action sendCommand
instead of the recommended .sendCommand
method
use:
Item.sendCommand(command)
instead of:
sendCommand(Item, command)
If You see my first post there i have the two versions
i have addapte the rules with the logInfo
rule "Weerbericht"
when
Time cron '0 0/5 * 1/1 * ? *'
then
logInfo("Weerbericht_Cron", "Cron - Sending Temp to KNX")
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
end
rule "manual_weerbericht"
when
Item KNXWeerbericht_ManualSend received command "ON"
then
logInfo("Weerbericht_Manual", "Manual - Sending Temp to KNX")
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
KNXWeerbericht_BuitenTemperatuur.sendCommand(LocalWeather_Current_OutdoorTemperature.state.toString)
end
when i then look at openhab log i get
```csv
your 2018-12-12 07:45:00.004 [INFO ] [rthome.model.script.Weerbericht_Cron] - Cron - Sending Temp to KNX
2018-12-12 07:50:00.002 [INFO ] [rthome.model.script.Weerbericht_Cron] - Cron - Sending Temp to KNX
2018-12-12 07:55:00.001 [INFO ] [rthome.model.script.Weerbericht_Cron] - Cron - Sending Temp to KNX
There is no communication on the KNX bus
also i have the feeling that the KNX bus is bloked by this rules
```csv
2018-12-12 08:01:48.169 [WARN ] [Xnet/IP Tunneling 192.168.3.157:3671] - response timeout waiting for confirmation
tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 1.0.0->1.1.3 L_Data.req, system priority hop count 6 repeat, tpdu 81
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:244) ~[?:?]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:258) ~[?:?]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:178) ~[?:?]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:243) ~[?:?]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:351) ~[?:?]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:222) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.sendDisconnect(TransportLayerImpl.java:612) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnectIndicate(TransportLayerImpl.java:600) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnect(TransportLayerImpl.java:342) ~[?:?]
at tuwien.auto.calimero.mgmt.Destination.destroy(Destination.java:371) ~[?:?]
at tuwien.auto.calimero.mgmt.Destination.close(Destination.java:383) ~[?:?]
at tuwien.auto.calimero.mgmt.ManagementProceduresImpl.isAddressOccupied(ManagementProceduresImpl.java:311) ~[?:?]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.isReachable(AbstractKNXClient.java:338) ~[?:?]
at org.openhab.binding.knx.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:144) ~[?:?]
at org.openhab.binding.knx.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:184) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
2018-12-12 08:01:48.247 [WARN ] [calimero.mgmt.TL 192.168.3.157:3671 ] - disconnected not gracefully (timeout)
tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 1.0.0->1.1.3 L_Data.req, system priority hop count 6 repeat, tpdu 81
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:244) ~[?:?]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:258) ~[?:?]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:178) ~[?:?]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:243) ~[?:?]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:351) ~[?:?]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:222) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.sendDisconnect(TransportLayerImpl.java:612) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnectIndicate(TransportLayerImpl.java:600) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnect(TransportLayerImpl.java:342) ~[?:?]
at tuwien.auto.calimero.mgmt.Destination.destroy(Destination.java:371) ~[?:?]
at tuwien.auto.calimero.mgmt.Destination.close(Destination.java:383) ~[?:?]
at tuwien.auto.calimero.mgmt.ManagementProceduresImpl.isAddressOccupied(ManagementProceduresImpl.java:311) ~[?:?]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.isReachable(AbstractKNXClient.java:338) ~[?:?]
at org.openhab.binding.knx.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:144) ~[?:?]
at org.openhab.binding.knx.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:184) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
see also Karaf error message
They’ll need to see your Item definition.
I have disable the rules and shutdown karaf and restart it, now my KNX connection is working again
below the item config in paperUI
and the code in org.eclipse.smarthome.core.items.item.json
"KNXWeerbericht_BuitenTemperatuur": {
"class": "org.eclipse.smarthome.core.items.ManagedItemProvider$PersistedItem",
"value": {
"groupNames": [],
"itemType": "Number",
"tags": [],
"label": "Buiten temperatuur"
}
karaf console message
SLF4J: Failed toString() invocation on an object of type [org.eclipse.smarthome.core.items.events.ItemStateChangedEvent]
Reported exception:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
at java.lang.StringBuilder.append(StringBuilder.java:136)
at java.lang.StringBuilder.append(StringBuilder.java:76)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:484)
at java.lang.StringBuilder.append(StringBuilder.java:166)
at java.lang.StringBuilder.append(StringBuilder.java:76)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2913)
at java.util.Formatter$FormatSpecifier.printString(Formatter.java:2886)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2763)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at org.eclipse.smarthome.core.items.events.ItemStateChangedEvent.toString(ItemStateChangedEvent.java:89)
at org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:299)
at org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:271)
at org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:233)
at org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:173)
at org.slf4j.helpers.MessageFormatter.format(MessageFormatter.java:124)
at org.ops4j.pax.logging.slf4j.Slf4jLogger.info(Slf4jLogger.java:494)
at org.eclipse.smarthome.io.monitor.internal.EventLogger.receive(EventLogger.java:53)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153)
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Modify your rule to logInfo the LocalWeather_Current_OutdoorTemperature Item. It’s possible you are trying to send the “command” NULL or UNDEF, which won’t work.
Does you KNXv2 binding work ok? (forget the rule for a moment and check if simple things work)
I think that you have more general problems that you need to address to improve the stability of your OH2 installation on Windows.
Try to make sure that the system is stable first before you start implementing rules.
stable = startup and basic operations without any errors and/or warnings in your logs.
i used weather underground information
when i use postUpdate, the paperUI ‘KNX weerbericht’ will display the same values
I have removed ‘Log ReaderBinding’ thing, removed the ‘Bleutooth Binding 2.4.0’ and ‘CometVisu Backend 2.4.0 UI’ form my configuration.
Now Karaf is quit
I will now try the rule again
I have just one remarque/question
My ‘KNX weerbericht’ is not a fysciale knx hardware device but a virtual openhab KNX device, so i dont have a fysical knx adres for it.
When i put heer a non existhing device adres, the the thing go to off line.
I now have adde the rules again
rule "Weerbericht"
when
Time cron '0 0/5 * * * ? *'
then
logInfo("Weerbericht_Cron", "Cron - Sending Temp to KNX")
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
sendCommand(KNXWeerbericht_HuidigeToestand,LocalWeather_Current_CurrentConditions.state.toString)
sendCommand(KNXWeerbericht_Vochtigheid,LocalWeather_Current_AtmosphericHumidity.state.toString)
end
rule "manual_weerbericht"
when
Item KNXWeerbericht_ManualSend received command "ON"
then
logInfo("Weerbericht_Manual", "Manual - Sending Temp to KNX")
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
sendCommand(KNXWeerbericht_HuidigeToestand,LocalWeather_Current_CurrentConditions.state.toString)
sendCommand(KNXWeerbericht_Vochtigheid,LocalWeather_Current_AtmosphericHumidity.state.toString)
sendCommand(KNXWeerbericht_ManualSend,OFF )
end
in paperUi the KNX Weerbericht items are updated
in the KNX monitoring i only see the ‘Manual send’
‘Huidige toestand’ = 1/0/0 Type = String
‘Buiten temperatuur’ = 1/0/1 Type = Number
‘Vochtigheid’ = 1/0/2 Type = Number
all my other knx things and items are still working, so the bindinsg a disabled are the blocking part for the knx binding !?
openhab log
2018-12-13 23:16:03.512 [INFO ] [home.model.script.Weerbericht_Manual] - Manual - Sending Temp to KNX
2018-12-13 23:16:03.543 [WARN ] [nx.internal.client.AbstractKNXClient] - Value 'Gedeeltelijk bewolkt' could not be sent to the KNX bus using datapoint 'command DP 1/0/0 'knx:ip:dd4cf70d', DPT id 16.001, low priority': 16.001 ISO-8859-1 string (Latin 1): maximum KNX string length is 14 characters: Gedeeltelijk bewolkt. Giving up now.
2018-12-13 23:16:03.544 [WARN ] [.internal.handler.DeviceThingHandler] - An error occurred on channel knx:device:6cec9f52:Huidige_toestand: 16.001 ISO-8859-1 string (Latin 1): maximum KNX string length is 14 characters: Gedeeltelijk bewolkt
tuwien.auto.calimero.KNXFormatException: 16.001 ISO-8859-1 string (Latin 1): maximum KNX string length is 14 characters: Gedeeltelijk bewolkt
at tuwien.auto.calimero.dptxlator.DPTXlator.newException(DPTXlator.java:505) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at tuwien.auto.calimero.dptxlator.DPTXlator.newException(DPTXlator.java:510) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at tuwien.auto.calimero.dptxlator.DPTXlatorString.toDPT(DPTXlatorString.java:192) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at tuwien.auto.calimero.dptxlator.DPTXlator.setValue(DPTXlator.java:186) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:358) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.sendToKNX(AbstractKNXClient.java:453) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.writeToKNX(AbstractKNXClient.java:413) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at org.openhab.binding.knx.internal.handler.DeviceThingHandler.lambda$7(DeviceThingHandler.java:229) ~[253:org.openhab.binding.knx:2.4.0.201812121631]
at org.openhab.binding.knx.internal.handler.DeviceThingHandler.withKNXType(DeviceThingHandler.java:124) [253:org.openhab.binding.knx:2.4.0.201812121631]
at org.openhab.binding.knx.internal.handler.DeviceThingHandler.withKNXType(DeviceThingHandler.java:118) [253:org.openhab.binding.knx:2.4.0.201812121631]
at org.openhab.binding.knx.internal.handler.DeviceThingHandler.handleCommand(DeviceThingHandler.java:224) [253:org.openhab.binding.knx:2.4.0.201812121631]
at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.201812121521]
at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [102:org.eclipse.smarthome.core:0.10.0.201812121521]
at com.sun.proxy.$Proxy154.handleCommand(Unknown Source) [253:org.openhab.binding.knx:2.4.0.201812121631]
at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [109:org.eclipse.smarthome.core.thing:0.10.0.201812121521]
at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [109:org.eclipse.smarthome.core.thing:0.10.0.201812121521]
at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.201812121521]
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [102:org.eclipse.smarthome.core:0.10.0.201812121521]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
he rule now
rule "Automatic_Weerbericht"
when
Time cron '0 0/5 * * * ? *'
then
logInfo("Weerbericht_Cron", "Cron - Sending Temp to KNX")
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
sendCommand(KNXWeerbericht_HuidigeToestand,LocalWeather_Current_CurrentConditions.state.toString)
sendCommand(KNXWeerbericht_Vochtigheid,LocalWeather_Current_AtmosphericHumidity.state.toString)
end
rule "Manual_Weerbericht"
when
Item KNXWeerbericht_ManualSend received command "ON"
then
logInfo("Weerbericht_Manual", "Manual - Sending Temp to KNX")
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
sendCommand(KNXWeerbericht_HuidigeToestand,LocalWeather_Current_CurrentConditions.state.toString)
sendCommand(KNXWeerbericht_Vochtigheid,LocalWeather_Current_AtmosphericHumidity.state.toString)
sendCommand(KNXWeerbericht_ManualSend,OFF )
end