MQTT mit Loxone

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    MQTT mit Loxone

    Hallo,

    Loxone unterstützt ja leider kein MQTT, daher habe ich zumindest das MQTT Publish sehr rudimentäre in PICOC implementiert.
    Man kann über die 13 Eingänge - jeweils ein Topic "schalten".

    Die Implementierung ist sehr rudimentär - Authentifizierung ist implementiert (aber ehrlicherweise nicht getestet) - aber kein QoS, kein RETAIN Flag. Es wird nur Publish unterstützt.

    Mit dem Codet lassen sich z.B. ESPEASY, TASMOTA oder ESPURNA direkt über MQTT (via einem MOSQUITTO Broker) steuern.

    Im Code muß man die IP vom MQTT Broker, (bei Bedarf) Username, Passwort - sowie die Topics definieren.
    Jeder Eingang entspricht ein TOPIC.

    Viel Spaße
    Angehängte Dateien
  • pmayer
    LoxBus Spammer
    • 27.02.2017
    • 379

    #2
    Hey Gast - find ich super!! Ich wusste gar nicht, dass das PicoC im Miniserver sowas zulässt. Knaller und Hut ab!

    Ich hatte genau aus diesem Grund node-red-contrib-loxone entwickelt, da Loxone auf mein Bitten nach MQTT-Support letztes Jahr natürlich nicht eingegangen ist: https://allgeek.de/2017/10/05/node-r...ng-mit-loxone/
    Hier im Forum findet die komplette EntWicklung und Erweiterung statt: https://www.loxforum.com/forum/faqs-...3%BCr-node-red

    Natürlich kann man diskutieren ob man noch node-red zusätzlich braucht aber dadurch hat man schon eine recht komplette Anbindung inklusive mqtts, retain und QOS.
    Zuletzt geändert von pmayer; 05.11.2017, 14:29.
    https://allgeek.de/

    https://twitter.com/pregopm, https://github.com/codmpm/
    https://github.com/codmpm/node-red-contrib-loxone
    https://github.com/codm/wled-controller

    Kommentar

    • Gast

      #3
      Danke.

      Ich habe mich bis jetzt noch nicht durchgerungen node-red einzusetzen, verfolge aber dein Modul seit längerem.

      Bis jetzt verwende ich iobroker. Aber ich experimentiere noch ...

      Kommentar

      • pmayer
        LoxBus Spammer
        • 27.02.2017
        • 379

        #4
        Gast hat den mit kleinen Spickereien vom node-red node gebaut. Fußt auf der selben Bibliothek: https://www.loxforum.com/forum/faqs-...5726#post95726
        Es kommt denke auf den Einsatzwunsch und die persönliche Präferenz an :-)

        Ich hab mir io.broker auch mal angeschaut, war aber völlig erschlagen von der Konfigurationslogik. Ich denke es liegt daran, dass ALLES vorhanden ist und man da erst mal durch muss. Bei node-red picke ich mir immer nur das raus was ich brauche. Das ist sicher vom Ansatz ein Unterschied... liegt aber denke auch daran, dass man als Programmierer vielleicht einen einfacheren Zugang zu node-red hat.
        Zuletzt geändert von pmayer; 05.11.2017, 21:26.
        https://allgeek.de/

        https://twitter.com/pregopm, https://github.com/codmpm/
        https://github.com/codmpm/node-red-contrib-loxone
        https://github.com/codm/wled-controller

        Kommentar

        • Gast

          #5
          Hallo,

          Anbei eine neue Version, diese lässt die Verbindung offen und überwacht die Verbindung per MQTT-PING ...
          Username/Passwort Implementierung ist mittlerweile getestet.

          Viel Spaß

          Kianusch
          Angehängte Dateien

          Kommentar


          • leschnux
            leschnux kommentierte
            Kommentar bearbeiten
            Hallo Kianusch,

            Ich finde diesen Ansatz noch immer genial. Hast du evtl. an dem Modul weiter gearbeitet? Momentan sind ja die shellies schwer angesagt. Die senden ja alle nach /shellies/shelly-id/

            Hast du vielleicht eine Idee, wie man das etwas dynamisch machen könnte, das man mehr als 12 ansteuern könnte?
        • leschnux
          Extension Master
          • 22.10.2017
          • 144

          #6
          Hallo Zusammen,

          ich bin noch neu was Loxone angeht. Wie muss ich das mqtt File in Loxone einfügen?

          Ich habe einige Tasmotta Sonoff Devices, diese würde ich gerne schalten und den Schalt Zustand überwachen?

          Geht es mit diesem oder muss ich doch dies Node-JS. Variante nehmen?


          Gruss

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Sofern Du möchtest geht Sonoff auch direkt, also ohne PicoC und auch ohne Node-JS.

          • Gast
            Gast kommentierte
            Kommentar bearbeiten
            Auf der Sonoff muß ESPEASY, Tasmota oder ESPURNA laufen ...

            Den Programm-Code in irgendeinem Editor öffnen - in die Zwichenablage kopieren ...
            Im Loxone-Config ein Programmbaustein einfügen - und den Code aus der Zwischenablage in den Programmbaustein einfügen.
        • leschnux
          Extension Master
          • 22.10.2017
          • 144

          #7
          Ja hab es gelesen, da gibt es eine firmware aber ich wollte bei mqtt bleiben, da ich die Teile aus beiden Welten fhem und Loxone abfragen kann.

          gruss

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Kein Problem.
            Wenn Du Tasmota auf dem Sonoff hast, dann hast Du doch schon die Firmware die Du dafür benötigst.
            Ich würde nur so wenig wie unbedingt nötig in Loxone mit Programmbausteinen machen.

          • Gast
            Gast kommentierte
            Kommentar bearbeiten
            Abfragen über Loxone geht nicht - nur schalten.
        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5113

          #8
          Gast
          Sorry, ich möchte nicht Deinen Thread hier mit anderem zumüllen. Ich finde Deine Lösung auch gut, sofern man MQTT einsetzen möchte.
          Dennoch möchte ich die Antworten in #6.2 und #7.2 nicht unbeantwortet lassen.

          #6.2
          Dass es mit dem Programmbaustein geht, ist meinerseits unbestritten, wollte damit nur sagen, dass es aber auch ohne geht.

          #7.2
          Wozu auch?
          Sonoff kann ja per UDP senden.

          Beispiel:
          Bild von Loxone App
          Sonoff POW mit Tasmota und Loxone, ohne Programmbaustein:

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

Name: SonoffPow.png
Ansichten: 5554
Größe: 48,0 KB
ID: 131476
          lg Romildo

          Kommentar


          • Gast
            Gast kommentierte
            Kommentar bearbeiten
            Verschieden Lösungen zu haben und zu diskutieren ist ja gut - genau aus diesem Grund gibt es ja Foren wie diese

            #7.2 - Stimmt schon - das es nicht geht, war nur auf die MQTT Lösung hier gemeint.
            Neben UDP könnte man auch node-red dazwischen schalten ...
            Oder ein MQTT Programmodule schreiben, der das abonnieren kann ...

            #6.2 - Für ein oder zwei SONOFFs ist die Steuerung über UDP sicher gut und effizienter als MQTT - nur hatte ich Probleme, dass bei mir die SONOFFs nach einer gewissen Zeit, die Verbindung verloren haben, wenn ich UDP eingesetzt habe - und nur mehr zögerlich reagiert haben. Mit MQTT habe ich diese Probleme nicht mehr.

            Außerdem - Ich habe derzeit vier SONOFFs, eine H801 und drei ElectroDragon Module im Einsatz - da ist halt eine Standardisierte Lösung zentral über einen Broker einfacher zu administrieren als sechs oder sieben verschiedene Virtuelle Ausgänge im Loxone.

            Aber wie gesagt - es ist ja gut verschiedene Möglichkeiten zu haben, die die Module anzusteuern.

          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Ich hatte in der Vergangenheit halt schon des öfteren Probleme mit Programmbausteinen und meide diese wo immer es geht.
            Ich denke wir sind uns da völlig einig.
            Immer gut zu wissen, dass es in Loxone verschiedene Wege gibt, die zumindest heute noch funktionieren.

          • leschnux
            leschnux kommentierte
            Kommentar bearbeiten
            Hi,

            jetzt bin ich neugierig, wie kann ich das ohne Programmierstein und mit Tasmotta MQTT machen?
        • Gast

          #9
          Tasmotta MQTT geht nur mit Programmierbaustein ...

          Ohne Programmierbaustein kein MQTT - sondern nur HTTP ...

          Im Loxone einen virtuellen UDP Ausgang definieren - und dann die Befehle direkt an Tasmotta übermitteln ...

          Die Befehle findet man hier:

          Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP...


          Mit dieser Methode erspart man sich natürlich auch den MQTT Broker.

          Wenn man statt Tasmotta, ESPEASY einsetzt, dann kann man SONOFF auch über UDP steuern ...
          Zuletzt geändert von Gast; 03.12.2017, 22:03.

          Kommentar

          • leschnux
            Extension Master
            • 22.10.2017
            • 144

            #10
            Zitat von Kianusch
            Tasmotta MQTT geht nur mit Programmierbaustein ...

            Ohne Programmierbaustein kein MQTT - sondern nur HTTP ...

            Im Loxone einen virtuellen UDP Ausgang definieren - und dann die Befehle direkt an Tasmotta übermitteln ...

            Die Befehle findet man hier:

            Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP...


            Mit dieser Methode erspart man sich natürlich auch den MQTT Broker.

            Wenn man statt Tasmotta, ESPEASY einsetzt, dann kann man SONOFF auch über UDP steuern ...

            Bei der UDP Variante hat man quasi dann kein Rückkanal, oder wie fragst du ab, ob sonoff tatsächlich auch geschaltet hat?
            Oder pollst du zyklisch per http?
            Zuletzt geändert von leschnux; 03.12.2017, 22:14.

            Kommentar


            • Gast
              Gast kommentierte
              Kommentar bearbeiten
              Stimmt - es gibt keine Feedback wenn man UDP verwendet. Die Sonoff könnte zwar über UDP (Rules) was zurückmelden - aber die Loxone kann das nicht als Statusmeldung zu dem ausgegebenen Befehl auswerten.

              Daher verwende ich nicht UDP - sondern MQTT
          • pmayer
            LoxBus Spammer
            • 27.02.2017
            • 379

            #11
            Ich will nicht schon wieder Eigenwerbung machen und ich hatte es ja oben schon erwähnt, aber über node-red ist das bidirektional kein Problem.
            Hatte das hier mal am Beispiel von homematic/homegear, was ich über mqtt schalte, aufgeschrieben: https://allgeek.de/2017/10/05/node-r...ng-mit-loxone/

            Man nimmt sich einen Schalterbaustein und holt den per Control-In und Control-Out in node-red. Die verbindet man entsprechend mit dem mqtt-node's in node red und gibt dort die Topics (schalten, status) des Sonoff weiter.
            Zuletzt geändert von pmayer; 03.12.2017, 23:41.
            https://allgeek.de/

            https://twitter.com/pregopm, https://github.com/codmpm/
            https://github.com/codmpm/node-red-contrib-loxone
            https://github.com/codm/wled-controller

            Kommentar


            • Gast
              Gast kommentierte
              Kommentar bearbeiten
              Also wenn man schon node-red verwendet - stellt sich die Frage, wozu dann noch mqtt dazwischenschalten - und nicht gleich node-red direkt mit der Sonoff kommunizieren lassen?

            • pmayer
              pmayer kommentierte
              Kommentar bearbeiten
              Ob http oder mqtt zu den SonOff ist doch egal, oder? Du musst ja irgendwie mit ihnen kommunizieren - oder was meinst du mit "direkt"?

              Mein Ansatz war: Allgemeingültiger Event-Bus. Bei mir läuft alles über mqtt... keine Extrawurst für jedes Gerät, alles ist im mqtt. Ob da üben drüber jetzt node-red, openhab, homegear oder was auch immer hängt, ist egal.

              Hier hatte ich das mal weiterführend aufgeschrieben: https://allgeek.de/2017/07/09/homema...eber-homegear/
              Zuletzt geändert von pmayer; 04.12.2017, 11:49.
          • romildo
            Lebende Foren Legende
            • 25.08.2015
            • 5113

            #12
            Auch ich will keine Werbung machen.
            Da ich aber scheinbar nicht ganz verstanden wurde, oder ich es nicht verstanden habe, hier mal ein Beispiel wie ich es mit Rückmeldung direkt in Loxone mache.

            Ich erkläre mal wie ich es an Hand einer Sonoff Pow mache:
            In Tasmota findet man über den Webbrowser ja auch Configuration und dort Configure Logging
            In dieser kann man einen UDP Empfänger und einen UDP Empfangsport eingeben.
            Zudem gibt es noch Syslog level und Telemetry period.
            Syslog level bestimmt ob die Daten gesendet werden oder nicht.
            Telemetry period funktioniert ab ca. 1s ich würde aber den Wert wegen der Netzwerkbelastung nicht zu kurz wählen.
            Im Beispiel sind 10s eingestellt.
            Diese Zeit hat aber nur was mit der Leistungsmessung und nichts mit dem Status des Relais zu tun.
            Der Status des Relais wird auch sofort nach Änderung geschickt.
            Unter Syslog Host kommt die IP-Adresse des Miniservers
            Unter Syslog Port kommt die UDP Port Nummer welche auch in Loxone unter Empfangsport eingetragen werden muss.

            Hier mal das Bild meiner Einstellungen:

            Klicke auf die Grafik für eine vergrößerte Ansicht  Name: TasmotaLogging.png Ansichten: 1 Größe: 34,6 KB ID: 131533

            In Loxone verwende ich einen EIB-Taster, damit ich die Rückmeldung erhalte auch wenn die Sonoff anderweitig, z.B. über den Schalter an der Sonoff, ein-/aus- geschaltet wird, dabei aber kein Signal an die Sonoff gesendet werden darf.
            Da ich bei der Sonoff POW auch Leistung Spannung und Strom messe, ist dies im Bild auch noch integriert.

            Formel im Formelbaustein: I1/I2

            Klicke auf die Grafik für eine vergrößerte Ansicht  Name: SonoffPowLoxone.png Ansichten: 1 Größe: 198,8 KB ID: 131534
            lg Romildo

            Kommentar


            • romildo
              romildo kommentierte
              Kommentar bearbeiten
              Gast Ansteuern kannst Du schon über den Lichtbaustein, da dieser aber keine Rückmeldung hat, ohne Rückmeldung.
              Frage: Kann das der MQTT-Programmbaustein mit Rückmeldung?

              Bei der zweiten Frage bin ich mir nicht sicher, ob ich sie richtig verstanden habe.
              Loxone bekommt den Status nicht vom Schalter sondern vom Relais.

              Der Status wird nicht nur beim Schalten, sondern auch sporadisch von Tasmota gesendet.
              Ob und wie Du auf diesen Staus reagieren möchtest, kannst Du durch die Programmierung in Loxone frei entscheiden.

              Zusatzbemerkung:
              Du kannst den Status zudem auch über Loxone HTTP-Eingänge abfragen.

              Ich sehe schon, Dir gefällt es nicht, aber es gibt ja dank Dir und pmayer noch zwei Alternativen

            • Gast
              Gast kommentierte
              Kommentar bearbeiten
              So habe ich das auch realisiert. Danke!
              Aber warum multiplizierst du die Leistung mit den Leistungsfaktor?
              Gruß
              Martin

            • romildo
              romildo kommentierte
              Kommentar bearbeiten
              @martinez
              Der Leistungsfaktor wird nicht Multipliziert, das kann man im Bild leider nicht erkennen.
              Die Formel: I1/I2
              Bei Sonoff gibt es eine Leistung und einen Powerfaktor. Dies wird auch im Tasmota so angezeigt.
              Berechne mal die Leistung mittels Spannung und Strom also P=U*I und schau dir die angezeigte Leistung an, wenn der Powerfaktor nicht gleich 1 ist.

              Nun berechnest Du die Leistung indem Du die angezeigte Leistung durch den Powerfaktor dividierst, und vergleichst das Ergebnis mit der errechneten Leistung mittels Spannung und Strom.
          • pmayer
            LoxBus Spammer
            • 27.02.2017
            • 379

            #13
            Straft mich Lügen, aber mir ist kein Weg bekannt dem Loxone-Lichtbaustein einen Zustand mitzuteilen. Das heißt außer der Szene kann ich ihm doch nicht sagen, oder?

            Liegt da nicht das Hauptproblem?
            Zuletzt geändert von pmayer; 04.12.2017, 12:12.
            https://allgeek.de/

            https://twitter.com/pregopm, https://github.com/codmpm/
            https://github.com/codmpm/node-red-contrib-loxone
            https://github.com/codm/wled-controller

            Kommentar

          • manu6613
            Dumb Home'r
            • 11.12.2017
            • 21

            #14
            @romildo Super Anleitung, klasse. Klappt bei mir jetzt auch =)

            Kommentar

            • leschnux
              Extension Master
              • 22.10.2017
              • 144

              #15
              Hallo,

              dieser Thread ist ja was älter und es gibt ja diverse andere Lösungen zum Thema MQTT. Dennoch finde ich das mit dem Picoc genial.
              Hat jemand in diese Richtung vielleicht was weiter gebaut?

              Gruss

              Kommentar


              • Gast
                Gast kommentierte
                Kommentar bearbeiten
                PICOC-MQTT dürfte ja funktionieren - zumindest gab es keine Meldungen, dass es nicht funktioniert ...

                Aber - prinzipiell kommt halt immer darauf an, was man machen will - und an welcher Stelle man welche Komponente einsetzt.

                Meistens/sehr oft hat man ja ein zweites Home-Steuerungs-System (NODE-RED, HomeAssist, usw), dass parallel zu LoxOne läuft - in diesen Fällen macht die "PICOC" MQTT Lösung wenig Sinn.

                Wenn man "nur" LoxOne verwendet - und Zigbee Geräte steuern will (egal ob Hue, oder IKEA) - dann wäre PICOC-MQTT in kombination mit zigbee2mqtt eventuell eine effizienter Ansatz.
            Lädt...