Vorstellung loxMqttRelay: Docker-fähiges MQTT-Gateway "light"

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Deepflash
    LoxBus Spammer
    • 08.06.2021
    • 218

    #16
    bin gerade am Aufsetzen von dem Ganzen und habe nun eine kleine Frage:
    Wenn ich es richtig verstanden habe, nimmt loxmqttrelay alle VIs vom Miniserver und schaut am MQTT-Broker nach passenden Werten.
    Wozu müssen dann eigentlich noch Topics oder Filter definiert werden? Um den Pool zu verkleinern, in dem gesucht wird?

    Kommentar


    • Acidcliff
      Acidcliff kommentierte
      Kommentar bearbeiten
      Wenn du die Miniserver-Sync-Funktion benutzt dann ist das richtig - dann brauchst du theoretisch gar keine Filter/Topics mehr setzen.
      Theoretisch könntest du mit "#" auf alle topics subscriben und loxmqttrelay übernimmt den Rest.

      Da das filtern aber erst im letzten Schritt stattfinden kann, erreichst du typischerweise eine bessere Performance, wenn du zumindest die Subscriptions klug aussuchst. Den größten Effekt wird es immer haben, wenn du über die Subscriptions so wählst, dass Topics, die JSON-Payload enthalten, aber ohnehin verworfen werden würden, ausgeschlossen werden. Die sind am rechenintensivsten.

      Wenn du es simpel halten willst, kannst du es aber quasi auch komplett generisch lassen. Das Relay ist wirklich sehr performant.

    • Deepflash
      Deepflash kommentierte
      Kommentar bearbeiten
      aber welchen Vorteil bringt es mit Topic Subscriptions oder Whitelists zu arbeiten, wenn es doch das MiniServer-Sync-Feature gibt:
      Automatic Configuration Sync

      Enable automatic synchronization with your Miniserver's configuration:

      [miniserver]
      sync_with_miniserver = true

      When enabled, the relay will:

      Automatically load Miniserver configuration on startup
      Update the topic whitelist based on Miniserver inputs
      Resync when Miniserver configuration changes

      Caution: This function will assume that every Virtual Input is a possible target for forwarding mqtt messaages.

    • Acidcliff
      Acidcliff kommentierte
      Kommentar bearbeiten
      Einerseits um das letzte bisschen Performance rauszuholen.
      Andererseits (und das war meine hauptsächliche Motivation beides anzubieten) ist die Interaktion mit der Miniserver-Config eigentlich kein von Loxone offiziell vorgesehener Weg. Ich dachte mir, dass sich nicht jeder wohl fühlen wird ein fremdes Programm auf die eigene Konfiguration loszulassen.
  • Deepflash
    LoxBus Spammer
    • 08.06.2021
    • 218

    #17
    noch etwas: offenbar ist der UDP-Port bereits durch das MQTT Gateway vom Loxberry besetzt. Gibt es einen eleganten Weg, das frei zu bekommen?

    Kommentar


    • Deepflash
      Deepflash kommentierte
      Kommentar bearbeiten
      - Antwort: einfach im MQTT Gateway einen anderen Port eintragen

    • <Andreas>
      <Andreas> kommentierte
      Kommentar bearbeiten
      Entweder in den Gateway Settings des loxberrys den "Gateway UDP in-port" ändern oder in Docker einen anderen setzen, dann müsstest du aber auch die Adresse in der Config ändern (zu spät 🙈)
      Zuletzt geändert von <Andreas>; 03.09.2025, 10:45.
  • Deepflash
    LoxBus Spammer
    • 08.06.2021
    • 218

    #18
    also was soll ich sagen, bin nun auch ein- bzw. umgestiegen ohne separaten Broker.
    Das Ergebnis lässt sich sehen (ganz am Ende). Sieht an und für sich nicht so drastisch aus, entscheidend ist aber, dass die ständigen Spikes in der CPU-Nutzung in HTOP komplett weg sind und auch meine IKEA MQTT Lampe mit Display nun flüssig funktioniert. Davor war das furchtbar.. die Zeilen nie synchron, mal gar nicht, mal alles auf einmal... Manchmal haben die schaltbaren Steckdosen einfach nicht reagiert - funktioniert nun prima :-) Vielen Dank an der Stelle auch für die Unterstützung beim einrichten.Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 201
Größe: 132,8 KB
ID: 468529

    Kommentar


    • challo
      challo kommentierte
      Kommentar bearbeiten
      Ich hab auch einfach den loxberry Broker weiter am laufen. Die topics mit vielen Daten bzw. Json laufen über das relay und Dinge mit Transformation oder Umwandlung laufen weiter über loxberry. Funktioniert super bei mir.

    • Acidcliff
      Acidcliff kommentierte
      Kommentar bearbeiten
      Also wenn es nur um die eingebauten Mapper und Transformatoren geht ist es ziemlich überbordend den Loxberry noch laufen zu lassen, oder?
      Da wäre node-red vermutlich die deutlich schlankere/schnellere und durch die Plugins auch erweiterbarere Lösung.

      Ich glaube auch rein architekturell ist es sinnvoll allzuviel "Magie" auf den Transportwegen zu vermeiden

    • challo
      challo kommentierte
      Kommentar bearbeiten
      Hab noch mehr auf dem loxberry laufen. Ansonsten würde ich auch nodered nehmen....
  • <Andreas>
    LoxBus Spammer
    • 07.03.2023
    • 436

    #19
    Hey,

    Das Realy läuft nach wie vor top, ohne einen einzigen ausfall

    Ich wollte fragen ob du es möglich machen könntest MQTT 5 User Properties beim Loxone Ausgang zu übertragen?
    Ich gebe da gern unter anderen die Einheit mit um später mehr Übersicht zu haben

    Danke & Gruß
    Andreas

    Kommentar

  • <Andreas>
    LoxBus Spammer
    • 07.03.2023
    • 436

    #20
    Danke erst einmal für die schnelle Umsetzung wirklich super was du da leistest

    Hab hier aber noch ein kleines Problem, der Container startet in der aktuellen Version nicht mehr Logs bekomme ich auch keine
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 59
Größe: 54,6 KB
ID: 485710

    Ein wenig habe ich schon geforscht, vermutungen angestellt
    rustc_flags=["-C", "target-cpu=x86-64-v3"]
    AVX2 unterstützt meine CPU noch nicht, ich hab gesehen du hast einen fallback eingebaut, evtl. greift der nicht vollständig?

    Kommentar


    • <Andreas>
      <Andreas> kommentierte
      Kommentar bearbeiten
      Bei der neusten Version leider das gleiche Bild, bekomme auch keine weiteren logs

      Kann ich etwas machen um dir weitere Informationen zukommen zu lassen?

    • Acidcliff
      Acidcliff kommentierte
      Kommentar bearbeiten
      Leider kannst du vermutlich gerade nicht mehr tun um Logs zu generieren. Liegt daran, wann genau das XML Modul geladen wird.

      Versuch mal die neuste Version. Am besten direkt gegen den neusten Tag gehen statt auf lastest, damit nicht zufällig was aus dem Cache geholt wird: acidcliff/loxmqttrelay:49709b6aa820868f91cab9c275a917d29165d 73c (Achtung, das Forumsystem fügt hier gerne mal ein Leerzeichen beim Tag hinzu - sollte eigentlich ohne sein)

      Ich hoffe ich hab zumindest das Logging jetzt vorziehen können um mehr zu erfahren (und env variable LOG_LEVEL=DEBUG sollte zumindest für den Test gesetzt sein).

    • <Andreas>
      <Andreas> kommentierte
      Kommentar bearbeiten
      2026-06-06 13:15:38,512 INFO [loxmqttrelay.utils] platform=Linux 4.4.302+ arch=x86_64 (x86=True, avx2=False)

      Also läuft vielen Dank!

      Mein Nas ist mittlerweile in die Jahre gekommen wollte mal Influxdb3 hosten das machte auch schon Probleme, möchte den Neukauf aber noch ein paar Jahre hinauszögern
  • schildkroete
    Smart Home'r
    • 22.09.2021
    • 96

    #21
    Ich wollte nur kurz ein Danke und Feedback da lassen - bin gestern von Loxberry auf das Relay umgestiegen. War sehr schnell erledigt und tut genau das, was es soll - Top! Danke für die Zeit, die Du da reingesteckt hast.

    Kommentar

    • schildkroete
      Smart Home'r
      • 22.09.2021
      • 96

      #22
      Eine Frage kam mir gerade: Ich habe ein paar Sonoff-Buttons, die beim Klick ein solches "Event" feuern. Per Zigbee2MQTT landet das dann auf einem Topic.

      Code:
      {
         "action":"double",
         "battery":100,
         "last_seen":"2026-06-26T11:19:01+02:00",
         "linkquality":102,
         "update":{
            "installed_version":8704,
            "latest_release_notes":null,
            "latest_source":null,
            "latest_version":8704,
            "state":"idle"
         },
         "voltage":3000
      }

      Bei dieser Art von "Events" müsste es aber ja so sein, dass die Nachricht beim Lesen verschwindet. Sonst kann ich nicht erkennen, ob der Button "nochmal" gedrückt wurde. Im Loxberry Gateway gabs dafür eine Option (weiß gerade nicht mehr, wie sie hieß).

      Im Moment hab ich das dann als "zigbee2mqtt_device_eg_kueche_button_action" virtueller Texteingang in Loxone drin. Da kommt dann halt "double" an. Aber der Status bleibt dann natürlich bestehen.

      Wie würde man das hier lösen?
      Zuletzt geändert von schildkroete; vor 10 Stunden.

      Kommentar


      • schildkroete
        schildkroete kommentierte
        Kommentar bearbeiten
        Ich hab das jetzt mit einem Script innerhalb von iobroker gelöst, der dann UDP Signale an Loxone schickt.

      • Acidcliff
        Acidcliff kommentierte
        Kommentar bearbeiten
        Stimmt - das Relay macht das nicht, da ich möglichst keine intransparente Logik ins Relay packen wollte/will.

        An deiner Stelle hätte ich das in Loxone selbst abgebildet:

        Virtueller Texteingang erhält Nachricht -> Nachgelagerter Flow danach sendet über virtuellen Ausgang deinen gewünschten Resetwert auf den Topic "zigbee2mqtt_device_eg_kueche_button_action"

        So hättest du keine Abhängigkeit zu einem Drittsystem wie Biobroker

        Wahrscheinlich aber besser (aber ohne es selbst mal probiert zu haben):
        Zigbee2Mqtt hat ein Setting, das vermutlich genau das macht, was du hier zu lösen versuchst. Es heißt "legacy_action_sensor" und ist definiert als: "Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty `action` will be send after every published action. (Default: false)"

      • schildkroete
        schildkroete kommentierte
        Kommentar bearbeiten
        Danke für den Impuls!

        Das Zigbee2MQTT Feature ist nur global und laut Doku deprecated. "Note that this feature is deprecated and will be removed in the future. It's recommended to use the MQTT device trigger instead."

        Die Loxone Variante kann man natürlich machen, das stimmt schon. Ich habe iobroker eh im Einsatz, insofern ist mir die Abhängigkeit eher egal.
    • Prof.Mobilux
      Supermoderator
      • 25.08.2015
      • 5424

      #23
      Im Loxberry Gateway heißt die Option "Reset After send".
      LoxBerry: https://wiki.loxberry.de/start

      Kommentar

      Lädt...