CerboGX Keepalive-Fehler nach Update auf 5.0.3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Nosch
Beiträge: 22
Registriert: 16. Jan 2024 11:19
Answers: 0

CerboGX Keepalive-Fehler nach Update auf 5.0.3

Beitrag von Nosch »

Hi,
habe heute Mittag eine Update auf die 5.0.3 gemacht (kommend von 5.0.2).
Nach einigem Suchen habe ich einen Fehler, warum keine Daten meiner PVA-Anlage angezeigt werden, lokalisieren können.
Allerdings komme ich jetzt nicht weiter.

Ich verwende dieses Script:

Code: Alles auswählen

actions.get("mqtt", "mqtt:broker:TH__Cerbo_GX_MQTT_Broker_c0619ab3aab9").publishMQTT("R/c0619ab3aab9/keepalive", "");
In den Logs finde ich nur:

Code: Alles auswählen

2025-12-04 14:22:00.154 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: FLUSH for SendCallback@6a040854[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@7fe677ee] (null,[p=0,l=2,c
=32768,r=2],false)@COMMITTED
2025-12-04 14:22:00.154 [DEBUG] [org.eclipse.jetty.io.WriteFlusher   ] - write: WriteFlusher@1695dfa9{IDLE}->null [HeapByteBuffer@6fd83ac0[p=0,l=5,c=1024,r=5]={<<<\r\n2\r\n>>>\n\n\n\x00\x00\x00\x00\x00\x00...\x00\
x00\x00\x00\x00\x00\x00},HeapByteBuffer@4be6241f[p=0,l=2,c=32768,r=2]={<<<\n\n>>>ent: mess...\x00\x00\x00\x00\x00\x00\x00}]
2025-12-04 14:22:00.154 [DEBUG] [org.eclipse.jetty.io.WriteFlusher   ] - update WriteFlusher@1695dfa9{WRITING}->null:IDLE-->WRITING
2025-12-04 14:22:00.154 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 7 SocketChannelEndPoint@219ccff3{l=/192.168.6.79:8080,r=/192.168.6.1:34138,OPEN,fill=-,flush=W,to=1/30000}{io=0/0,kio=0,kro=1}->Http
Connection@45608c11[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@273f8cf0{s=COMMITTED}]=>HttpChannelOverHttp@468c7a53{s=HttpChannelState@16fa1d12{s=WAITING rs=ASYNC os=COMMITTED is=IDLE awp=false se=false i=fal
se al=2},r=4,c=false/false,a=WAITING,uri=//192.168.6.79:8080/rest/events?topics=openhab/rules/SC__Senden_keepalive_an_Cerbo_GX_PVA/*,age=300198}
2025-12-04 14:22:00.154 [DEBUG] [org.eclipse.jetty.io.WriteFlusher   ] - Flushed=true written=7 remaining=0 WriteFlusher@1695dfa9{WRITING}->null
2025-12-04 14:22:00.155 [DEBUG] [org.eclipse.jetty.io.WriteFlusher   ] - update WriteFlusher@1695dfa9{IDLE}->null:WRITING-->IDLE
2025-12-04 14:22:00.155 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: DONE for SendCallback@6a040854[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@7fe677ee] (null,[p=2,l=2,c=
32768,r=0],false)@COMMITTED
2025-12-04 14:22:00.155 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2025-12-04 14:22:00.155 [DEBUG] [e.jetty.util.thread.QueuedThreadPool] - ran org.eclipse.jetty.server.AsyncContextState$1@7c656873 in QueuedThreadPool[qtp1852722274]@6e6e4c62{STARTED,2<=14<=50,i=3,r=-1,q=0}
Das Einzige, was mit da auffällt, ist dass es die Adresse 192.168.6.1 in meinem Netzwerk nicht gibt.

Wäre mal wieder für jeden Tipp dankbar!


Viele Grüße
Norbert


Nachtrag:
Hab' den Fehler doch noch selber gefunden. Offenbar darf der zweite Parameter in publishMQTT(..) ab 5.0.3 kein Leerstring sein.
Ich habe nun '["battery/256/Soc"]' statt "" verwendet. Jetzt geht es wieder.

Danke!
openHAB 5.0.x

Benutzeravatar
udo1toni
Beiträge: 15482
Registriert: 11. Apr 2018 18:05
Answers: 248
Wohnort: Darmstadt

Re: CerboGX Keepalive-Fehler nach Update auf 5.0.3

Beitrag von udo1toni »

Ja, wenn man einen leeren String schickt, wird das Topic "gelöscht", falls es im mqtt Explorer zuvor angezeigt wurde.
Ich habe ads Verhalten auch schon beobachtet und halte das für ein Fehlverhalten.
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.1.1, LXC)

Maggi
Beiträge: 33
Registriert: 22. Okt 2019 20:09
Answers: 0
Wohnort: Hanau

Re: CerboGX Keepalive-Fehler nach Update auf 5.0.3

Beitrag von Maggi »

Also ich benutze eine Rule und die Funktioniert auch mit der aktuellen OH 5 Version.
Allerdings lasse ich nicht alle Topics aufwachen, da ich nicht alle brauche.

Code: Alles auswählen

rule "Cerbo MQTT Keep Alive Timer"

when

Time cron "0/50 * * * * ?"

then

val mqttActions = getActions("mqtt", "mqtt:broker:Cerbo_GX")

mqttActions.publishMQTT("R/CERBO_ID/keepalive", '["system/0/Dc/#", "system/0/Ac/#", "solarcharger/0/Pv/V", "grid/30/Ac/Power"]')
end
Dafür sind folgende Add Ons nötig.
MQTT Binding
MQTT Actions

Benutzeravatar
udo1toni
Beiträge: 15482
Registriert: 11. Apr 2018 18:05
Answers: 248
Wohnort: Darmstadt

Re: CerboGX Keepalive-Fehler nach Update auf 5.0.3

Beitrag von udo1toni »

Es gibt kein Addon MQTT Actions, das gab es für openHAB1 und openHAB2.

Und das Problem ist nicht, ein Topic mit Inhalt zu füllen, sondern einen null-String zu schicken.
Beispiel:

Code: Alles auswählen

rule "update all shutter positions" // my-38
 when
    Member of gS_mqtt received command
 then
    if(tPosUpdate !== null)
        return;
    tPosUpdate = createTimer(now.plusSeconds(2), [|
        logInfo("mqtt","Action {}","initializing actions")
        val mqttActions = getActions("mqtt","mqtt:broker:mymqtt")
        logInfo("mqtt","Action {}",mqttActions)
        mqttActions.publishMQTT("tasmotas/cmnd/shutterposition1",null,true)
        tPosUpdate = null
    ])
end
Dieser Code hat unter openHAB4 funktioniert und dazu geführt, dass alle Geräte, die das Group Topic tasmotas gesetzt hatten, mit ihrer aktuellen shutterposition1 geantwortet haben. Seit openHAB5 muss man statt der null ein "" senden, das ist aber streng genommen kein null-String, sondern ein leerer String. Glücklicherweise akzeptiert Tasmota auch den leeren String als Aufforderung, den aktuellen Status zu senden.
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.1.1, LXC)

Antworten