Hi,
The ongoing saga of upgrading from 2.5 to 3 continues.
I’ve managed to get Pushover working by creating multiple Things for each notification sound.
However, how do I send attachments?
OH2.5:
sendPushoverMessage(pushoverBuilder(“Door Bell Rung”).withTitle(“Door Bell Rung”).withPriority(0).withSound(“incoming”).withAttachment(attachmentUrl))
OH3:
val pushoverActions = getActions(“pushover”, “pushover:pushover-account:Incoming”)
pushoverActions.sendMessage(“Door Bell Rung”, “Door Bell Rung”)
The OH3 above works, but no idea how/if I can send attachments.
Not working for me
I get this error in the openhab.log:
2021-01-14 10:47:00.733 [WARN ] [ore.internal.scheduler.SchedulerImpl] - Scheduled job failed and stopped
org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=4, size=4
at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:346) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1205) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1082) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:862) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:232) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:216) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:459) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:240) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:216) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:202) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:47) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:30) ~[?:?]
at com.sun.proxy.$Proxy369.apply(Unknown Source) ~[?:?]
at org.openhab.core.model.script.actions.ScriptExecution.lambda$0(ScriptExecution.java:82) ~[?:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$12(SchedulerImpl.java:166) ~[bundleFile:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$1(SchedulerImpl.java:76) [bundleFile:?]
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) [?:?]
using this:
val String attachmentUrl = “F:/Apps/openHABContent/cctv00001.jpg”
val pushoverActions = getActions(“pushover”, “pushover:pushover-account:Incoming”)
pushoverActions.sendAttachmentMessage(“Door Bell Rung”, “Door Bell Rung”, attachmentUrl)
Not sure if this is an OH3 issue or something I’ve missed.
pushoverActions.sendAttachmentMessage("Door Bell Rung", "Door Bell Rung", attachmentUrl, "image/jpeg")
I tested it with “image/jpeg” and just “” for the content parameter and it worked. Not accounting for the content parameter resulted in the same error you received.
@bjsjr - thanks, this also helped me as I was having the same problem after upgrading to 3.0. Was starring blindly at the docs:
sendAttachmentMessage(String message, @Nullable String title, String attachment, @Nullable String contentType) - This method is used to send a message with an attachment. It takes a (local) path to the attachment (parameter attachmentmandatory ) and an optional contentType to define the content-type of the attachment (default: image/jpeg ).
Since “image/jpeg” is documented as default, but doesn’t work - did you create a bug report?
It’s already been reported that it looks like none of the default arguments for pushover work. I did add a comment to confirm the issue also exists in sendAttachmentMessage.
Hi,
Adding “” or “image/jpeg” results in this error:
org.openhab.binding.pushover.internal.connection.PushoverCommunicationException: java.util.NoSuchElementException
at org.openhab.binding.pushover.internal.connection.PushoverAPIConnection.executeRequest(PushoverAPIConnection.java:167) ~[?:?]
at org.openhab.binding.pushover.internal.connection.PushoverAPIConnection.post(PushoverAPIConnection.java:134) ~[?:?]
at org.openhab.binding.pushover.internal.connection.PushoverAPIConnection.sendMessage(PushoverAPIConnection.java:78) ~[?:?]
at org.openhab.binding.pushover.internal.handler.PushoverAccountHandler.sendMessage(PushoverAccountHandler.java:137) ~[?:?]
at org.openhab.binding.pushover.internal.actions.PushoverActions.send(PushoverActions.java:208) ~[?:?]
at org.openhab.binding.pushover.internal.actions.PushoverActions.sendAttachmentMessage(PushoverActions.java:125) ~[?:?]
at org.openhab.binding.pushover.internal.actions.PushoverActions.sendAttachmentMessage(PushoverActions.java:130) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1176) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1137) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1082) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:862) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:232) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:216) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:459) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:240) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:216) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:202) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:47) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:30) ~[?:?]
at com.sun.proxy.$Proxy286.apply(Unknown Source) ~[?:?]
at org.openhab.core.model.script.actions.ScriptExecution.lambda$0(ScriptExecution.java:82) ~[?:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$12(SchedulerImpl.java:166) ~[bundleFile:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$1(SchedulerImpl.java:76) [bundleFile:?]
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.util.NoSuchElementException
at org.eclipse.jetty.client.util.PathContentProvider$PathIterator.next(PathContentProvider.java:140) ~[?:?]
at org.eclipse.jetty.client.util.PathContentProvider$PathIterator.next(PathContentProvider.java:110) ~[?:?]
at org.eclipse.jetty.client.util.MultiPartContentProvider$MultiPartIterator.next(MultiPartContentProvider.java:346) ~[?:?]
at org.eclipse.jetty.client.util.MultiPartContentProvider$MultiPartIterator.next(MultiPartContentProvider.java:301) ~[?:?]
at org.eclipse.jetty.client.HttpContent.advance(HttpContent.java:155) ~[?:?]
at org.eclipse.jetty.client.HttpContent.advance(HttpContent.java:143) ~[?:?]
at org.eclipse.jetty.client.HttpSender$ContentCallback.process(HttpSender.java:829) ~[?:?]
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[?:?]
at org.eclipse.jetty.util.IteratingCallback.succeeded(IteratingCallback.java:366) ~[?:?]
at org.eclipse.jetty.client.HttpSender$ContentCallback.succeeded(HttpSender.java:885) ~[?:?]
at org.eclipse.jetty.util.Callback$Nested.succeeded(Callback.java:266) ~[?:?]
at org.eclipse.jetty.client.http.HttpSenderOverHTTP$ByteBufferRecyclerCallback.succeeded(HttpSenderOverHTTP.java:335) ~[?:?]
at org.eclipse.jetty.io.WriteFlusher.completeWrite(WriteFlusher.java:394) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint$IncompleteWriteCallback.succeeded(SslConnection.java:1312) ~[?:?]
at org.eclipse.jetty.io.WriteFlusher.completeWrite(WriteFlusher.java:394) ~[?:?]
at org.eclipse.jetty.io.ChannelEndPoint$3.run(ChannelEndPoint.java:132) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[?:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) ~[?:?]
Sorry, I don’t know what else to suggest. Here’s the complete code I used:
val String attachmentUrl = "/home/openhab/yin_yang.gif"
val pushoverActions = getActions("pushover", "pushover:pushover-account:default")
pushoverActions.sendAttachmentMessage("Door Bell Rung", "Door Bell Rung", attachmentUrl,"")
The only thing I changed from your example was the attachment name, and the account info.I also had to fix all of the quote marks which I assume the forum software changed when you posted without using the code fences.