LoxBerry MQTT

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • SehlingS
    Smart Home'r
    • 19.12.2016
    • 83

    Hallo zusammen,

    ich habe erfolgreich die MQTT Bridge eingerichtet und übertrage nun auch die Readings aus FHME mit der Standard Config auf dem Wiki.



    define lb_mosquitto MQTT loxberry:1883 loxberry <deinMQTTPasswort>
    define mqttGeneric MQTT_GENERIC_BRIDGE
    attr mqttGeneric IODev lb_mosquitto
    attr mqttGeneric globalDefaults sub:qos=2 pub:qos=0 retain=1
    attr mqttGeneric globalPublish *:topic={"fhem/$device/$reading"}

    Dort gibt es reading von meiner Heizung und dem harmonyhub.
    Heute morgen hatte ich über 700 Einträge bei incoming.
    Sprich ich muss irgendwie filtern.

    Kann mir jemand erklären, wie ich das in FHEM hin bekomme?
    Speziell geht es im diese Readings, welche ich gerne ausschließen würde.
    fhem_harmonyhub_automation.state_hue-00:17:88:5E3:15-15_brightness
    (Wobei der Anfang immer gleich ist)
    Komischerweise sehe ich in fhem diese reading nirgends. Dort gibt es nur diese 4 readings.

    Readings
    activity FireTV 2020-03-24 09:56:33
    currentActivity FireTV 2020-03-24 09:56:33
    previousActivity Rolladen runter 2020-03-24 09:56:33
    state Connected 2020-03-24 09:25:27
    Ist es von der Performance her schlimm über 700 incomings zu haben und falls ja, wie kann ich diese ausschließen.

    Grüße und Danke
    Sascha

    Kommentar

    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11217

      Servus Sascha,
      wenn sich die meisten Daten nie ändern, ist das unproblematisch, weil der Cache von LoxBerry das abfängt. Nur beim Start des Gateways (zb LoxBerry-Reboot), oder bei Restart des Miniservers, geht mal eine Ladung raus.

      Es gibt Filter für MQTT in FHEM, damit habe ich mich selbst aber noch nie beschäftigt.

      Anders rum kannst du über die Topic-Hierarchie in den Plugin-Subsciptions genau das abonnieren, was du möchtest (statt mit dem „Vorschlaghammer“ das ganze fhem/# zu abonnieren).

      lg Christian
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar


      • SehlingS
        SehlingS kommentierte
        Kommentar bearbeiten
        Danke für den Tip. Habe jetzt nur das abonniert, was ich auch brauche.
        Das hatte ich vorher schon mal probiert leider mit den "_" als Trennzeichen und nicht dem "/".

        Jetzt geht alles.
        Danke
    • Clubsport
      MS Profi
      • 11.01.2018
      • 601

      Hallo Christian,

      kann das sein dass bei der Befehlserkennung ein Bug drin ist...?
      Das Plugin schlägt mir vor:

      MQTT:\ixiaomi/158d00019ff548/status=\i\v

      Müsste es nicht stattdessen heissen:

      MQTT:\ixiaomi/158d00019ff548/status=\v

      ???

      Merkwürdigerweise geht aber auch das nicht in Loxone, der UDP-Messageinhalt ist bei mir z.B.

      MQTT:/xiaomi/158d00019ff548/time=123456789 xiaomi/158d00019ff548/status=0

      Check mit dem Command Recognition Plugin haut eigentlich hin!

      Grüße, Martin
      *auf dem sprichwörtlichen Schlauch stehend*

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11217

        Zitat von Clubsport
        kann das sein dass bei der Befehlserkennung ein Bug drin ist...?
        Niemals! Sowas passiert mir nieee!


        Das Plugin schlägt mir vor:
        MQTT:\ixiaomi/158d00019ff548/status=\i\v
        Schaut gut aus!

        Müsste es nicht stattdessen heissen:
        MQTT:\ixiaomi/158d00019ff548/status=\v
        Schaut falsch aus!

        \i wird immer doppelt angegeben: z.B. \iWort\i sucht das Wort zwischen den \i's.

        Merkwürdigerweise geht aber auch das nicht in Loxone, der UDP-Messageinhalt ist bei mir z.B.
        MQTT:/xiaomi/158d00019ff548/time=123456789 xiaomi/158d00019ff548/status=0
        Entweder du bist ein schlechter Copy/Paster hier im Forum, oder irgendwas stimmt mit deinen Topics nicht (oder ich hab wirklich einen Bug..... Naaaa glaub ich nicht! )

        In deiner angegebenen UDP-Übertragung ist einmal das Topic
        Code:
        /xiaomi/....
        und einmal
        Code:
        xiaomi/....
        .
        Irgendwas stimmt da nicht, was du mir schreibst.


        Woran erkennst du, dass es nicht funktioniert hat, wenn der eingehende Wert 0 ist?
        Sind die Minimal- und Maximalwerte im Virtuellen Eingang groß genug, um die Zahl von time abzubilden?
        Stimmt dein Eingangsport?
        Schon mal überlegt, auf HTTP-Übertragung umzustellen?
        Zuletzt geändert von Christian Fenzl; 26.03.2020, 19:33.
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Clubsport
          MS Profi
          • 11.01.2018
          • 601

          Ah okay, das mit den "i's" hatte ich so nicht mehr auf dem Schirm... Brett vor dem Kopf heute...
          Ich weiß wirklich nicht wo der Fehler ist - ich seh es schlichtweg nicht....
          Angehängte Dateien

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11217

            Und ich sehe nicht, dass es nicht geht.
            Was genau stimmt denn nicht?
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar

            • Clubsport
              MS Profi
              • 11.01.2018
              • 601



              Ich hab es gefunden.... Ich hatte "als Digitaleingang" verwenden angewählt... Und damit wird die Fensterstellung nicht erkannt.
              Was ich aber ehrlich gesagt nicht ganz verstehe - denn genau das ist für mich digital: Zwei Zustände, 0 und 1...

              Egal, haut also alles so hin wie es soll.... SORRY!

              Grüße, Martin

              Kommentar


              • Christian Fenzl
                Christian Fenzl kommentierte
                Kommentar bearbeiten
                Klassiker! 🙂
                Ist in keinem deiner Screenshots 😉

              • Clubsport
                Clubsport kommentierte
                Kommentar bearbeiten
                Ja, habe ich dann auch gesehen...
                Aber die "Loxone-Logik" was die unter einem Digitaleingang verstehen, die muss ICH nicht verstehen....

              • Christian Fenzl
                Christian Fenzl kommentierte
                Kommentar bearbeiten
                Loxone hat das so implementiert:
                Wenn Digitaleingang=Ja, dann wird der Wert nicht gespeichert, sondern nur ein Impuls ausgegeben.
                Für manche Use-Cases kann auch das praktisch sein.
            • seppe
              Smart Home'r
              • 12.03.2017
              • 45

              Hallo,

              ich habe die letzten Tage an der implementierung von WLAN Thermostaten gearbeitet, Broadlink_Thermostat2Lox. (bestehendes Pythonscript in Loxone eingebunden) Es klappt soweit alles, nur wenn der Zeitplan als JSON geliefert wird meckert MQTT Gateway:

              Code:
              19:58:09.559 [B]INFO:[/B] MQTT received: broadlink/9e909b34ea34/weekday: [{"start_hour": 6, "start_minute": 0, "temp": 20.0}, {"start_hour": 8, "start_minute": 0, "temp": 15.0}, {"start_hour": 11, "start_minute": 30, "temp": 15.0}, {"start_hour": 12, "start_minute": 30, "temp": 15.0}, {"start_hour": 17, "start_minute": 0, "temp": 22.0}, {"start_hour": 22, "start_minute": 0, "temp": 15.0}]
              
              19:58:09.560 Expanding json message
              
              19:58:09.560 [B]ERROR:[/B] Error on JSON expansion: Inappropriate ioctl for device
              19:58:09.562 [B]INFO:[/B] MQTT received: broadlink/9e909b34ea34/weekend: [{"start_hour": 8, "start_minute": 0, "temp": 22.0}, {"start_hour": 23, "start_minute": 0, "temp": 15.0}]19:58:09.563 Expanding json message
              
              19:58:09.563 [B]ERROR:[/B] Error on JSON expansion: Inappropriate ioctl for device
              19:58:09.565 [B]INFO:[/B] MQTT received: broadlink/9e909b34ea34/schedule: [[{"start_hour": 6, "start_minute": 0, "temp": 20.0}, {"start_hour": 8, "start_minute": 0, "temp": 15.0}, {"start_hour": 11, "start_minute": 30, "temp": 15.0}, {"start_hour": 12, "start_minute": 30, "temp": 15.0}, {"start_hour": 17, "start_minute": 0, "temp": 22.0}, {"start_hour": 22, "start_minute": 0, "temp": 15.0}], [{"start_hour": 8, "start_minute": 0, "temp": 22.0}, {"start_hour": 23, "start_minute": 0, "temp": 15.0}]]19:58:09.565 Expanding json message
              
              19:58:09.566 [B]ERROR:[/B] Error on JSON expansion: Inappropriate ioctl for device

              Wenn ich den JSON code im Netz aber prüfe ist er gültig.. was ist an dem JSON falsch? Was muss anders sein?

              Gruß
              Harry

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11217

                Ich glaub, er mag das Top-Array nicht.

                BTW Arrays sind in Loxone auch schwer zu handhaben, weil die Anzahl der Elemente nicht klar ist.
                Wenn zb das 5. Element später im Array nicht mehr existiert, kann es vom Gateway nie zurückgesetzt werden (weil das Element ja nicht mehr existent ist).
                Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                Kommentar

                • seppe
                  Smart Home'r
                  • 12.03.2017
                  • 45

                  Okay danke, ich hab die Werte jetzt in einzelne Tage aufgeteilt (mit Stunde Minute und Temp: {"start_hour": 17, "start_minute": 0, "temp": 22.0}) dann funktioniert es.
                  Wirklich sinn machen diese Variablen meiner Meinung nach eh nicht, daher sind sie per default beim Plugin deaktivert. Es war halt im originalscript so vorgesehen, darum habe ich die Funktion drin gelassen, falls jemand das braucht.

                  Danke!

                  Kommentar

                  • Gast

                    Hallo,
                    ich bekomme die Kommunikation zwischen mehreren Miniservern nicht hin. Habe alles nach Anleitung versucht. Das Pipe Zeichen in allen Varianten ausprobiert. Die neuste Version 1.11 ist installiert. Es kommt auch die Fehlermeldung.

                    The following topics have syntax errors:

                    Sobald was hinter # steht, kommt eine Fehlermeldung.

                    Der LoxBerry läuft als Hyper-V.

                    Danke vorab.


                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2020-05-01 um 12.21.15.png
Ansichten: 313
Größe: 212,5 KB
ID: 247184

                    Kommentar


                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Hallo. Laut Anleitung ist das der Befehl für den 2. Miniserver. Und lt. Anleitung darf ich das so schreiben. Auch wenn ich # weglasse, ändert sich nichts. Dann bekomme ich keine Daten. Zum Standard Miniserver funktioniert alles super.

                    • AlexAn
                      AlexAn kommentierte
                      Kommentar bearbeiten
                      Bei mir bekomme ich den gleichen Fehler wenn ich I2 nach der # schreibe!
                      Keine Ahnung was du da machst aber würde die Topics etwas anders strukturieren.

                      Mach mal Lautstaerke-Bad/# dann sollte der I2 auch kommen
                      Zuletzt geändert von AlexAn; 01.05.2020, 13:17.

                    • svethi
                      svethi kommentierte
                      Kommentar bearbeiten
                      Nutzt Ihr denn auch wirklich den senkrechten Strich (pipe)?
                  • svethi
                    Lebende Foren Legende
                    • 25.08.2015
                    • 6292

                    Also bei mir geht das ohne Probleme
                    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                    Kommentar


                    • romildo
                      romildo kommentierte
                      Kommentar bearbeiten
                      Bei mir auch.
                      Wie man im Bild in #536 bei genauer Betrachtung sehen kann, wurde ein grosses "i" I und kein piepe | verwendet.

                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      I| Das sind bei mir die Unterschiede. Christian hat die Lösung schon gepostet. Danke.
                      Zuletzt geändert von Gast; 01.05.2020, 15:20.
                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11217

                    Wartet mal...
                    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                    Kommentar

                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11217

                      Schaut bitte mal via putty in
                      /opt/loxberry/config/plugins/mqttgateway/mqtt.json

                      Unter Main gibt’s ein
                      toMS_delimiter

                      Wenn das leer ist, oder nicht existiert, erkennt auch das UI das Trennzeichen nicht.
                      Dann bitte die Pipe | dort ergänzen.

                      Ist eigentlich schon länger gefixt, aber er macht es wohl nicht mehr richtig, wenn’s mal falsch drin steht.
                      Angehängte Dateien
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar

                      • Gast

                        Das Thema hatte schon mal ein User angesprochen. Hat super geklappt. Danke.

                        Kommentar

                        Lädt...