Allgemeine MQTT Frage

Ich bin aktuell noch am experimentieren und auf der Suche nach eine optimalen Lösung für mich.
Ich habe mal das aktuelle Build von Homegear installiert. Aktuell läuft auf der gleichen Maschine schon eine Installation mit iobroker. Im iobroker habe ich einen mqtt Broker eingerichtet. Diesen habe ich bei homegear in der Config eingetragen. An Homegear habe ich eine CCU2 als Gateway eingetragen in der CCU2 sind nur ein paar HB Sensoren angelernt, die Temperatur und Luftfeuchte melden. Ich hätte nun erwartet, da Gateway und Sensorten in Homegear Admin angezeigt werden, dass diese auch per mqtt an iobroker übertragen werden. Leider kommt nichts an. Wo kann ich schauen bzw. was muss noch eingestellt werden?
Gruß
Dirk

BTW Warum wird im Order log eine 50MB große core Datei abgelegt?

core entsteht bei einem Absturz und dient der Fehlersuche. Wenn alles bei dir läuft, kannst du sie löschem.

@Micha, kannst du was zu den Geräten die über die CCU kommen im Adminintterface was sagen?

Also wenn der Dump (core) da ist, hat der Kern eine Exception ausgelöst?

Das weiß ich nicht genau. Aber die Datei wird nur erzeugt, wenn Homegear bei irgendetwas abgestürzt ist. @sathya kann da sicher mehr zu sagen.

Hallo zusammen,

die Anzeige der Geraete in der Admin-UI ist an sich unabhaengig von den MQTT-Events. Allerdings sollte Homegear die Events sofort uebertragen, sofern das Geraet bekannt, und MQTT korrekt konfiguriert ist.

Ein Coredump in /var/log/ ist IIRC vom homegear-management Dienst, Homegear an sich hat /var/lib/homegear als Cordump-Location. Aber ja, da gab es wohl ein Signal 11 …

– Micha

Ich habe in der mqtt.conf einen Broker eingetragen und sonst eher nichts verändert. Wo muss denn noch etwas eingestellt werden? Die Doku ist an der Stelle eher dünn.

Ich habe mich noch einmal auf die Suche begeben. Im Log stand ja noch, dass der RPC nicht gestartet werden konnte, da die Adresse schon in Benutzung war. Dies war io.Broker mit den RPC Adapter. Der ist nun beendet und Homegear kann den Port öffnen. Nun erscheint auch in zyklischen Abständen mein Homematic Sensor Modul mit Temperatur und Luftfeuchtigkeitswerten. Aber die werden immer noch nicht per mqtt übertragen.
Im Log tauchen direkt nach den “Werten” auch eine Warnung auf. Konkret sieht es so aus:

06/27/19 15:57:32.573 RPC Server (Port 2001): Info: Client number 17 is calling RPC method: system.multicall (2) Parameters:
(Array length=2)
[
(Struct length=2)
{
[methodName] (String) event
[params] (Array length=4)
[
(String) hm-rpc.0
(String) JPTH10I001:1
(String) TEMPERATURE
(Float) 25
]
}
(Struct length=2)
{
[methodName] (String) event
[params] (Array length=4)
[
(String) hm-rpc.0
(String) JPTH10I001:1
(String) HUMIDITY
(Integer) 40
]
}
]
06/27/19 15:57:32.574 IPC Server: Warning: RPC method not found: event
06/27/19 15:57:32.574 IPC Server: Warning: RPC method not found: event

Wie sieht denn deine mqtt.conf aus und wo läuft dein Broker?

Habe mal meine mqtt.conf angehängt. Ist aber nicht viel verändert. Es läuft auf der gleichen Maschine Mosquitto
mqtt.conf.txt (3,4 KB) .

Die mqtt.conf sieht gut aus, was sagt:

sudo homegear -r
ls
fs <family-id-ccu>
ls

Listet die Geräte der CCU auf

Dann müssten sie auch im MQTT ankommen…

Nimm dir mal sowas wie mqtt-spy oder mqtt.fx, connecte auf den Broker und abonier mal #. Schau dann mal ob meldungen kommen, wenn sich an den CCU-Geräten was ändert.
Denk dran, nicht jede “Aktion” wir direkt gesendet.

Hab ich gemacht. Kommt nichts.
Gibt es eine mqtt Log?

sugo homegear -r
dl 5

Setzt das Debuglevel im Laufenden Betrieb auf 5, damit siehst du jeden Publish von Homegear an MQTT im Log.

Was sagt dieser Eintrag aus?
06/27/19 15:57:32.574 IPC Server: Warning: RPC method not found: event

Im Log sind nun schon einmal folgende Zeilen drin:
06/28/19 11:13:56.695 Debug: MQTT packet received: D000
06/28/19 11:13:56.695 MQTT Client: Debug: Packet received: D000
06/28/19 11:13:56.695 MQTT Client: Debug: Received ping response.

Also es kommt nun nachdem ein neuen Datenpaket kam folgendes im Log

06/28/19 11:17:32.306 RPC Server (Port 2001): Info: Client number 17 is calling RPC method: system.multicall (2) Parameters:
(Array length=2)
[
(Struct length=2)
{
[methodName] (String) event
[params] (Array length=4)
[
(String) hm-rpc.0
(String) JPTH10I001:1
(String) TEMPERATURE
(Float) 24
]
}
(Struct length=2)
{
[methodName] (String) event
[params] (Array length=4)
[
(String) hm-rpc.0
(String) JPTH10I001:1
(String) HUMIDITY
(Integer) 35
]
}
]
06/28/19 11:17:32.306 IPC Server: Warning: RPC method not found: event
06/28/19 11:17:32.307 IPC Server: Warning: RPC method not found: event
06/28/19 11:17:32.307 RPC Server (Port 2001): Response:
(Array length=2)
[
(Struct length=2)
{
[faultCode] (Integer) -32601
[faultString] (String) Requested method not found.
}
(Struct length=2)
{
[faultCode] (Integer) -32601
[faultString] (String) Requested method not found.
}
]

Könnte dies an einer defekten Installation liegen? Habe ja nun schon einiges ausprobiert…

RPC hat nichts mit MQTT zu tun. Wenn du von io.Broker aus per MQTT verbindest, benötigst du RPC nicht: https://ref.homegear.eu/rpc.html

RPC heißt Remote Procedure Call und ist eine der Schnittstellen die homegear zur Verfügung stellt - hat aber eben in deinem Fall nichts mit MQTT zu tun. Ob jetzt dein io.Broker dazu irgendwie connected kann ich - da ich deine Installation nicht kenne - nicht sagen.
Irgendwas versucht da per RPC die Methode event aufzurufen, die es nicht gibt.

Was ich nicht verstehe ist, warum obwohl deine mqtt.conf offensichtlich richtig ist, keine Nachrichten per MQTT gepublished werden.

Was ein RPC ist, ist mir bewusst. Ich kenne den internen Aufbau nicht von Homegear. Hätte ja sein können, dass die interne Kommunikation per RPC gelöst ist. Also Homegear verbindet sich mit 2 Connections mit dem Broker. Das CCU Modul sendet auch per mqtt?
Hatte irgendwo gelesen, dass z.B. das HUE Mudel es noch nicht macht. Dann werde ich wieder io.Broker direkt mit der CCU verbinden. :frowning:

Mir ist kein Homegear-Modul bekannt was nicht auf MQTT landet, wenn es aktiviert ist. Ich betreibe Homematic, EnOcean, Hue und Max! über Homegear seit mehreren Jahren komplett per MQTT: https://allgeek.de/2017/07/09/homematic-mit-node-red-ueber-homegear/
Ich denke immer noch, dass du ein Konfigurationsproblem hast.

Was kann ich denn noch prüfen? An den nightly build kann es nicht liegen?
Der Versuch auf das stabile build zu gehen schlug fehl wegen irgendwelchen Abhängigkeiten.