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:

Code: Alles auswählen

if(nPdc > 0)
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:

Code: Alles auswählen

nPdc = Solar_Power_dc.state as Number
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:

Code: Alles auswählen

if(nPdc > 0)
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:

Code: Alles auswählen

nPdc = Solar_Power_dc.state as Number
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).