Hi there,
I’d like to integrate my first smartplug via Tasmota and MQTT. Unfortunately, few Items doesn’t work at all.
I am using Openhab 2.4 (latest stable updates) on a Raspberry Pi 2, MQTT Server is done by embedded Server.
I will start with the MQTT Message and Things/Items/Sitemap definitions:
This is a sample Message from my Tasmota-flashed Gosund smartplug
{"Time":"2019-07-23T23:10:19","ENERGY":{"TotalStartTime":"2019-07-19T23:08:28","Total":6.428,"Yesterday":1.493,"Today":1.808,"Period":0,"Power":6,"ApparentPower":7,"ReactivePower":4,"Factor":0.78,"Voltage":235,"Current":0.030}}
My Things-file is defined as follows
Bridge mqtt:broker:SARAH "SARAH" [ host="192.168.178.61", port=1883, secure=false, username="SARAH", password="dJkk3GZ3711", clientID="openHAB2" ]
{
// Waschmaschine
Thing topic WashingMachine "Waschmaschine" @ "Kueche" {
Channels:
Type switch : power "Power" [ stateTopic="home/kitchen/washingmachine/stat/POWER", commandTopic="home/kitchen/washingmachine/cmnd/POWER" ]
Type number : voltage "Spannung" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage" ]
Type number : load "Leistung" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power" ]
Type number : appload "Scheinleistung" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.ApparentPower" ]
Type number : reacload "Blindleistung" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.ReactivePower" ]
Type number : factor "Leistungsfaktor" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Factor" ]
Type number : current "Strom" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
Type number : today "Verbrauch heute" [ stateTopic="home/kitchen/washingmachine/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today" ]
Type number : yesterday "Verbrauch gestern" [ stateTopic="home/kitchen/washingmachine/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday" ]
Type number : total "Verbrauch total" [ stateTopic="home/kitchen/washingmachine/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : RSSI "Signalstärke" [ stateTopic="home/kitchen/washingmachine/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI" ]
Type switch : reachable "Erreichbarkeit" [ stateTopic="home/kitchen/washingmachine/LWT"]
}
}
My item file is:
Group WashingMashine
Switch WashingMachinePower "Power []" <washingmachine> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:power"}
Number WashingMachineVoltage "Spannung [%.0f V]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:voltage"}
Number WashingMachineLoad "Leistung [%.0f W]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:load"}
Number WashingMachineAppLoad "Scheinleistung [%.0f VA]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:appload"}
Number WashingMachineReacLoad "Blindleistung [%.0f Var]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:reacload"}
Number WashingMachineFactor "Leistungsfaktor [%.2f]" (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:factor"}
Number WashingMachineCurrent "Strom [%.3f A]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:current"}
Number WashingMachineToday "Verbrauch heute [%.3f kWh]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:today"}
Number WashingMachineTotal "Verbrauch gesamt [%.3f kWh]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:total"}
Number WashingMachineYesterday "Verbrauch gestern [%.3f kWh]" <energy> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:yesterday"}
Number WashingMachineRSSI "Signalstärke [%d %%]" <network> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:RSSI"}
Switch WashingMachineReachable "Erreichbarkeit []" <network> (WashingMachine) {channel="mqtt:topic:SARAH:WashingMachine:reachable"}
At last, the sitemap:
sitemap washingmachine label="Waschmaschine"
{
Frame label="Waschmaschine"
{
Switch item=WashingMachinePower
Text item=WashingMachineVoltage
Text item=WashingMachineLoad
Text item=WashingMachineAppLoad
Text item=WashingMachineReacLoad
Text item=WashingMachineFactor
Text item=WashingMachineCurrent
Text item=WashingMachineToday
Text item=WashingMachineYesterday
Text item=WashingMachineTotal
Text item=WashingMachineRSSI
Switch item=WashingMachineReachable
}
}
In General, everything is working quiet well and almost all items are updated by the Messages in mqtt. Alsmost? Yes! The Items WashingMachineYesterday and WashingMachineYesterday as well as WashingMachineRSSI don’t receive any value at all and are still uninitialized after 2 days.
The console doesn’t Show any Errors, expect for this fault (doenst seem to rely to this Problem) i don’t get anything:
2019-07-23 23:09:45.715 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2019-07-23T23:09:45.704+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
<XFeatureCallImplCustom>.postUpdate(<XBinaryOperationImplCustom>)
} ] threw an unhandled Exception:
java.lang.NullPointerException: null
at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:140) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:902) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:865) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:224) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1116) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1046) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]
at com.sun.proxy.$Proxy189.apply(Unknown Source) ~[?:?]
at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
2019-07-23 23:09:45.879 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.2019-07-23T23:09:45.704+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
<XFeatureCallImplCustom>.postUpdate(<XBinaryOperationImplCustom>)
} ] threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception.
at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
Caused by: java.lang.NullPointerException
at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:140) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:902) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:865) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:224) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1116) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1046) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]
at com.sun.proxy.$Proxy189.apply(Unknown Source) ~[?:?]
at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]
... 1 more
Do you have any idea and hints for me?
Thanks an best regards
Chris