then i created a rule to send the valeus to the knx system
rule "Weerbericht"
when
Time cron '0 0/5 * 1/1 * ? *'
then
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
end
rule "manual_weerbericht"
when
Item KNXWeerbericht_ManualSend received command "ON"
then
sendCommand(KNXWeerbericht_BuitenTemperatuur,LocalWeather_Current_OutdoorTemperature.state.toString)
KNXWeerbericht_BuitenTemperatuur.sendCommand(LocalWeather_Current_OutdoorTemperature.state.toString)
end
when i look to the knx bus i only see the groups adress of the manual send on the bus
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
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
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) [?:?]
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.
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.
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’