Seite 2 von 2
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 13:43
von goerdi
Ja
Code: Alles auswählen
2023-06-03 12:08:54.126 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'test.rules'
2023-06-03 12:08:58.060 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'test-1' failed: An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.IntegerExtensions.operator_greaterThan(int,int) on instance: null in test
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 13:48
von udo1toni
goerdi hat geschrieben: ↑2. Jun 2023 09:40
thing
Code: Alles auswählen
Type number : solar_eff "WR Wirkungsgrad" [stateTopic="solarview/WR1/EFF", commandTopic="solarview/WR1/EFF"]
Du hast stateTopic und commandTopic identisch gesetzt, das ergibt keinen Sinn.
mqtt kommuniziert
immer gerichtet, auf einem Topic wird entweder gesendet oder empfangen, aber nicht beides gleichzeitig.
Da Du ausschließlich sendest, kannst Du das stateTopic einfach leer lassen...
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 13:56
von udo1toni
Hast Du openHAB mal neu gestartet? Die Meldung ergibt überhaupt keinen Sinn, der Vergleich größer als kommt nur an einer Stelle vor:
und in der zweiten Zeile wird nPdc mit 0 gefüllt, nicht mit null
die einzige andere Stelle, in der nPdc noch angefasst wird, ist diese Zeile:
welche aber nur ausgeführt wird, wenn Solar_Power_dc.state eine gültige Zahl liefert. nPdc kann also nicht null sein. 0 kann auch nicht null sein -> die Meldung muss von einer anderen Rule herrühren.
Hast Du evtl. zwei gleichnamige Rules?
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 16:28
von goerdi
udo1toni hat geschrieben: ↑3. Jun 2023 13:48
goerdi hat geschrieben: ↑2. Jun 2023 09:40
thing
Code: Alles auswählen
Type number : solar_eff "WR Wirkungsgrad" [stateTopic="solarview/WR1/EFF", commandTopic="solarview/WR1/EFF"]
Du hast stateTopic und commandTopic identisch gesetzt, das ergibt keinen Sinn.
mqtt kommuniziert
immer gerichtet, auf einem Topic wird entweder gesendet oder empfangen, aber nicht beides gleichzeitig.
Da Du ausschließlich sendest, kannst Du das stateTopic einfach leer lassen...
Das hatte ich schon korrigiert...
Code: Alles auswählen
Type number : solar_eff "WR Wirkungsgrad" [commandTopic="solarview/WR1/EFF"]
Gruss Gerd
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 16:32
von goerdi
udo1toni hat geschrieben: ↑3. Jun 2023 13:56
Hast Du openHAB mal neu gestartet? Die Meldung ergibt überhaupt keinen Sinn, der Vergleich größer als kommt nur an einer Stelle vor:
und in der zweiten Zeile wird nPdc mit 0 gefüllt, nicht mit null
die einzige andere Stelle, in der nPdc noch angefasst wird, ist diese Zeile:
welche aber nur ausgeführt wird, wenn Solar_Power_dc.state eine gültige Zahl liefert. nPdc kann also nicht null sein. 0 kann auch nicht null sein -> die Meldung muss von einer anderen Rule herrühren.
Hast Du evtl. zwei gleichnamige Rules?
Nein... ich hab den originalen Teil rausgeloescht und mehrfach neu getartet...
Gruss Gerd
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 18:20
von udo1toni
Ok, ich hab den Fehler

Gewöhnlich sollte man Variablen nicht fix definieren, aber durch die Zuweisung von 0 wird aus der Variablen automatisch ein Integer. Versuche es bitte so:
Code: Alles auswählen
rule "calc efficiency"
when
Item Solar_Power_dc changed or
Item Solar_Power_ac changed
then
var Number nPac = 0 // hier Number ergänzen
var Number nPdc = 0 // hier Number ergänzen
if(Solar_Power_ac.state instanceof Number)
nPac = Solar_Power_ac.state as Number
if(Solar_Power_dc.state instanceof Number)
nPdc = Solar_Power_dc.state as Number
var Number nEff = 0 // hier Number ergänzen
if(nPdc > 0)
nEff = nPac / nPdc * 100
Solar_Efficiency.sendCommand(nEff)
end
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 18:32
von goerdi
Hi !
Heute nimmer

das BKW ist leider offline
Aber generell gings es ja nicht um die rule sondern um das senden nach MQTT , das scheint jetzt zu gehen ..
Gruss Gerd
Re: Items aus openhab nach MQTT
Verfasst: 3. Jun 2023 19:19
von udo1toni
Das sollte definitiv gehen. Du kannst die Rule auch manuell triggern (vorausgesetzt, Du bist mit openHAB3 unterwegs).