Achtung: Homegear 0.8.0.2254 => Alle Geräte in openHAB Offline

Ich hab heute testweise von 0.8.0-2245 auf 0.8.0-2254 upgedated, danach war die Verbindung von Homegear und openHAB gestört. Alle Geräte waren in openHAB offline. Inklusive Bridge und Gateway-Extras. Die Kommunikation von Homegear mit den Geräten hat noch funktioniert.

Ein Downgrade auf 0.8.0-2245 hat die Verbindung wieder hergestellt.

Hallo @job,

da hat ein Fix einen Fehler erzeugt. Wir haben vor ein paar Tagen endlich einmal die Notwendigkeit für eine zweite Verbindung zum Ereignisserver entfernt. Jetzt ist auch das Senden von Ereignissen über die Clientverbindung möglich. Das war eine ziemlich große Änderung, welche letztlich über einen Fix von vorgestern auch zu o. g. Problem geführt hat.

In 0.8.0-2255 sollte es wieder funktionieren.

Ich hoffe, jetzt funktioniert es, denn für mich geht es jetzt ab in den Urlaub ;-).

Viele Grüße

Sathya

Achso: Danke dir :slight_smile:!!! Wenn du nicht geschrieben hättest, wär das Problem nicht so schnell gelöst gewesen :wink:

2 Likes

Danke dir für Homegear und den schnellen Fix. Im Moment bin ich bei 2245, da bleibe ich auch erstmal bis etwas >2254 da ist.

Schönen Urlaub!

Moin Zusammen,

bin jetzt auf die 2256 gegangen, da funktioniert es und in der 2260 schon wieder nicht mehr.

Thomas

Ich kann es leider bestätigen, dass in 2260 die RPC Server wohl ein Problem haben. Die Verbindung zu openhab reißt immer wieder ab.

Was ein doofer Fehler :roll_eyes:. Im nächsten Nightly geht’s wieder.

Viele Grüße und vielen Dank!

Sathya

1 Like

Hatte am Wochenende die 2260 installiert und ein ähnliches Fehlerbild im Zusammenhang mit Home-Assistant.
Schnittstelle schien in Ordnung, aber es wurde keine Statusänderungen übertragen.
Eben die 2263 getestet, selbes Ergebnis wie 2260. Zurück auf die 2251 und wieder alles gut…
Sag Bescheid wenn du logs brauchst :slight_smile:

2 Likes

Es gibt in den Ereignispaketen in 2263 eine Änderung: Es wird jetzt der Auslöser des Ereignisses mit übertragen (statt vorher im gleichen Parameter die irrelevante ID des Ereignisservers). Vielleicht mag Home-Assistant das nicht?

Das Log auf Loglevel 5 wäre eine große Hilfe. Ich schaue mir das jetzt direkt an.

Viele Grüße

Sathya

Hier hochladen oder per Mail an dich?

Per Mail wäre super!

Ist raus :slight_smile:

Wenn ich folgende Zeile richtig interpretiere

__init__.py Zeile 578

wird die Schnittstellen-ID benötigt, um das korrekte Array-Element auszuwählen. Das ist total doof, da die Info überflüssig ist. Der Fehler ist also genau durch die o. g. Änderung ausgelöst. Ich muss für Home Assistant also eine Ausnahme einbauen.

Soweit ich die Schnittstelle von homeassistant verstanden habe, unterscheidet sie nicht zwischen CCU2 oder Homegear. Damit wäre die Frage, macht die CCU2 etwas anders als Homegear?

Die CCU sendet offenbar als Schnittstellen-ID immer die ID des Servers, an den sie sendet, mit. Da der Server sich selbst aber eigentlich kennt, aus meiner Sicht keine sinnvolle Information. Das Feld war vermutlich mal so gedacht, wie es jetzt in Homegear verwendet wird: Zum Identifizieren des Absenders, also ob ein Wert z. B. vom Gerät kommt oder welcher Client den Wert verändert hat. Der nächste Commit wird zeigen, ob das tatsächlich das Problem war.

Na dann drücke ich mal die Daumen und warte auf die Änderungen und den Nightly…
Danke!

Änderungen sind auf GitHub. Ich habe es getestet, es sollte funktionieren. Ich habe jetzt einfach eine Ausnahme für Home Assistant definiert. Am schönsten wäre, wenn die Jungs von Home Assistant die Ereignisquelle mit berücksichtigen. Das ist ja eine sinnvolle Information.

Viele Grüße

Sathya

Macht openHAB und FHEM das anders?
Ich glaube so ganz habe ich das noch nicht verstanden.

Um mich an Homegear zu registrieren sende ich ein
-> void init(String url, String interface_id)
url = ip und port
interface_id ist “homeassistant”

Wenn jetzt homegear mir einen event schickt, dann geht das über
void event(String interface_id, String address, String value_key, ValueType value)

Und hier muss doch interface_id wieder übereinstimmen? Oder übersehe ich da was?

Hurra, es läuft!!!

:smile:

Korrekt.

Ja.

Ja, die vergleichen interface_id nicht.

In der Referenz steht zu interface_id:

Der Parameter interface_id gibt die id des Schnittstellenprozesses an, der das Event sendet.

Das interpretiere ich so, dass der Absender des Ereignisses übergeben wird - bzw. werden soll, da die CCU das offenbar nicht tut. Die Interface-ID, welche du bei init() mitübergeben hast, zu übergeben, ist ja eine überflüssige Information, da der empfangende Server sich selbst ja kennt. Daher übergebe ich an der Stelle jetzt den Absender des Ereignisses. So weißt du, ob ein Ereignis vom Gerät, aus Homegear selbst, Skriptengine, Node-BLUE, MQTT oder von einem bestimmten Netzwerkclient kam.

Viele Grüße

Sathya

Danke für die Erklärung, vielleicht setze ich mich mal ran und versuche das für Home-Assistant zu ändern

1 Like