Xiaomi/Zigbee mit ioBroker in Loxone (Integration)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Matze_orb
    Extension Master
    • 19.12.2015
    • 154

    #1

    Xiaomi/Zigbee mit ioBroker in Loxone (Integration)

    Hallo ihr Lieben,

    ich habe mich mal an das Thema Integration von Zigbee Komponenten in Loxone herangetastet, um Produkte von Xiaomi (bspw. Aqara) oder Ikea in Loxone zu integrieren. Leider komme ich an einer bestimmten Stelle nicht weiter und denke, dass es nur eine kleine Sache ist, welche ich vergessen habe in der Loxone Config einzutragen. Jedenfalls klappt die Verbindung zu Loxone nicht und hoffe, dass mir vielleicht jemand einen Tipp geben kann?

    Ausgangssituation:
    - Auf dem RaspberryPi ist ioBroker installiert.
    - Adapter sind auch im ioBroker installiert (Loxone Miniserver Adapter, Zigbee Adapter und Simple Restful API)

    Zu integrierende Hardware:
    - Xiaomi/Aqara Taster
    - Xiaomi/Aqara Bewegungsmelder

    Problem:
    -
    Verbindung zu Loxone-Config. Ich tippe auf eine nicht korrekte Angabe des Virtuellen http Eingang-Befehls


    Lösungsfindung:

    Hardware wird im Zigbee-Adapter angezeigt (Bild-1)
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: zigbeeHArdware.PNG
Ansichten: 4097
Größe: 47,4 KB
ID: 239399

    Hardware wird im Zigbee-Adapter angezeigt (Bild-2, mit Markierung, nach drücken des Taster wird aus "false" --> "true")
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Zigbee-Adapter-hardware2.PNG
Ansichten: 3011
Größe: 85,6 KB
ID: 239400

    Mit der Simple-API habe ich mir einen Befehl geschnappt (vielleicht liegt hier schon mein Fehler :-) ??? )
    Befehl- Bsp: --> "set": "http://ipaddress:8087/set/stateID?value=1&prettyPrint"
    In meinem Fall: habe ich mir für den Taster den Click-Befehl in die Zwischenablage kopiert: zigbee.0.00158d000213257a.click/

    Der fertige http Befehl sieht dann so aus: http://192.168.2.9:8087/set/zigbee.0.00158d000213257a.click/?value=1&prettyPrint

    Frage: Vielleicht darf ich nicht den Set Befehl verwenden sondern einen anderen??? Oder weil "value" in http Befehl die Ziffer 1 ???

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

Name: Simple-API_http-Befehl.PNG
Ansichten: 2842
Größe: 117,5 KB
ID: 239401

    In Loxone-Config:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Loxone-http-1.PNG
Ansichten: 2830
Größe: 70,7 KB
ID: 239402

    in Loxone der EIngangs Befehl: Vielleicht ist bei Befehlskennung etwas falsch???
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Loxone-http-EINGANG.PNG
Ansichten: 2789
Größe: 141,0 KB
ID: 239403


    Weitere Info´s, welche ihr benötigt, gerne!

    Bin für Tipps sehr dankbar!!!

    Viele Grüße
    Matze
  • crasythom
    LoxBus Spammer
    • 02.10.2015
    • 297

    #2
    Hab das mit HTTP noch nie versucht. Warum gibst den Wert nicht einfach bei Änderung mittels JavaScript an den Datenpunkt aus dem Loxone Adapter weiter?
    So mach ich es jedenfalls.


    Gesendet von iPhone mit Tapatalk

    Kommentar


    • Matze_orb
      Matze_orb kommentierte
      Kommentar bearbeiten
      Wie stelle ich das an? Wie sieht der Befehl dann aus? Hättest du dafür eine kurze Anleitung/Howto/youtube oder ähnliches?
      VG
  • crasythom
    LoxBus Spammer
    • 02.10.2015
    • 297

    #3
    Du nimmst den JS-Adapter und hinterlegst hier einen Code wie diesen:

    on({id: "mihome.0.devices.weather_v1_158...8.temper ature"/*Temperature*/, change: "any"},
    function (obj) {
    var status=getState("mihome.0.devices.weather_v1_158.. ..8.temperature"/*Temperature*/).val;
    setState("loxone.0.12945b6.....value"/*Xiaomi Temp Schlafzimmer: value*/, status);
    });

    Bei on kommt bei dir das Objekt aus dem Zigbee-Adapter rein.
    Change: "any" sagt, dass jede Änderung übermittelt wird. Es gibt auch noch "ne" (ungleich)
    dann holst du dir mit getSate nochmals den Wert vom Objekt, das bereits für die Änderungsüberwachung zuständig war und legest es auf die Variabel Status.
    Diese Status setzt du jetzt auf den Datenpunkt aus deinem Loxone-Adapter.

    Das ganze geht auch irgendwie mit Block. Das mag ich aber nicht so gern. Such mal im Forum nochmal nach ioBroker. Da findest du bestimmt noch was zur Werteweitergabe. Oder ausführlich direkt hier: https://www.iobroker.net/docu/index-...d=5385&lang=de

    Ich hoffe ich konnte helfen.

    Kommentar


    • Matze_orb
      Matze_orb kommentierte
      Kommentar bearbeiten
      Jedenfalls vielen Dank, aber ich versuche irgendwie bei der API Methode zu bleiben. Ist mir zu kompliziert mit JavaScript, die Daten in die Loxone-Config zu bekommen...Bin blutiger Amateur auf dem Gebiet :-(
  • Stonelink
    Extension Master
    • 04.10.2015
    • 151

    #4
    Hallo Matze,

    ich nutze einige Aqara Produkte in Loxone.
    Tür und Fensterkontaktsensor vor alleem, aber auch Temp.sensor und BWM.

    Da ich nicht so auf China Cloud stehe, habe ich mir einen Conbee II Stick von Dresden Elektronik gekauft (gibts bei Amazon z.B.) und die Software Phoscon klar gemacht. Matthias Kleine von hausautomatisierung.com bietet dazu auch Youtube Videos an. Kann man Schritt für Schritt nachmachen...

    in ioBroker nimmst Du dann den Deconz Adapter und ja den Simple API Adapter, den Du ja schon hast.

    und schon bist Du in der Loxone Config...

    dort bisschen nervig viel einzuklimpern aber geht...

    Virtuellen http Eingang anlegen:
    dort kommt rein z.B.
    http://192.173.1.55:YYPort/getPlainV...Sensors.2.open
    also Deine IP Doppelpunkt Port, zB. 8087 dann Slash dann getPlainValue dann Slash und dann den namen des jew. Sensors... den Namen siehst Du in ioBroker bei den Objekten.

    Abfragezyklus hab ich momentan 10 sek. ggf. geh ich später mal auf 30 sek oder länger... hat mir noch keiner verraten was da sinnvoll ist
    Bei Timeout habe ich 800 ms stehen

    Anzahl erlaubte Timeouts: 0

    So vermutlich kommst Du auch soweit mit dem Zigbee Adapter

    jetzt kommt der spannende Teil wo es um den Befehl get den du dann darunter anlegst und zB. mit einem Statusbaustein verbindest

    bei Feld Befehlserkennung kommt lediglich ein \1 rein

    Das hat zur Folge dass entweder im Live Betrieb eine 102 = geschlossen oder eine 116 = offen vom ioB geliefert werden

    und das kann man dann im Statusbaustein weiterverarbeiten

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Aqara Status.jpg Ansichten: 0 Größe: 34,7 KB ID: 239480

    keine Ahnung ob das alles noch viel bequemer und schöner geht... JAVA kann ich halt auch nicht :-p

    Vom Stausbaustein gehe ich dann gesammelt mit allen Sensoren an den Fenster und Türüberwachungsbaustein an Eingang lw und lt negiert.


    ich hole mir auch noch die Batteriewerte... dort ist bei der Befehlserkennung dann aber nicht \1 zu verwenden sondern \v


    Ansonsten kann ich Dir noch den Tip geben das Youtube Video von Hendrik von die Allroundbastler zur Integration des Xiaomi Roborock in Loxone zu schauen und dort auch die Kommentare zu lesen. Selbe Machart.

    Viel Erfolg Dir!
    PS: Hier im Forum gibt es auch schon Beiträge... Such mal nach Aqara... ;-)






    Zuletzt geändert von Stonelink; 07.03.2020, 17:54.

    Kommentar


    • Matze_orb
      Matze_orb kommentierte
      Kommentar bearbeiten
      Beim Bewegungsmelder klappt es. Beim Taster nicht. Dort reagiert er nicht...
  • crasythom
    LoxBus Spammer
    • 02.10.2015
    • 297

    #5
    Wollte noch kurz was ergänzen. Ich bin auch kein Experte was JavaScript angeht. Im Prinzip braucht man den Codeschnipsel einfach immer wieder kopieren und an drei Stellen anpassen. Ist wirklich nicht schwer. Der Vorteil ist, dass man das nicht immer abfragen muss. Das kostet im MS so viel ich weiß ziemlich viel Ressourcen. Ich habe auch ein paar Bewegungsmelder im Einsatz da wären die Abfragezeiten dann auch hinderlich. Und ja, ich bin auch kein Freund von China Cloud. Deshalb habe ich das auch mit dem Zigbee-Adapter versucht. Leider komme ich da nicht weit und kann so nur meine Sensoren im Keller abdecken. Daher habe ich derzeit noch 2 Xiaomi-GW im Einsatz. Die will ich auch noch irgendwie ablösen. Brauche hierfür aber irgendwas dezentrales. Das ändert aber alles nichts daran, wie man die Werte von ioBroker zur Loxone übermittelt. Und glaube ich (meine Meinung), dass die Weitergäbe mit JavaScript ggf. als Blocky die bessere Lösung ist. Wenn es nur um Temperaturen geht, spielt das vermutlich keine Rolle, da reichen 30 oder 60 Sekunden locker.

    P.S. als dezentrale Lösung liebäugle ich gerade mit diesem Projekt https://tasmota.github.io/docs/#/Zigbee Ob ich das schaffe weiß ich auch noch nicht. Da sind für mich auch viele spanische Dörfer dabei.

    Wünsche in jedem Fall viel Erfolg. Ich finde die Sensoren wirklich gut. habe selbst 6 Bewegungsmelder, 5 Temperatursensoren, 5 Fensterkontakte im Einsatz.

    Kommentar


    • Stonelink
      Stonelink kommentierte
      Kommentar bearbeiten
      vielleicht kommst Du ohne Gateways klar wenn Du dir paar Zigbee Leuchtmittel holst, z.B. IKEA Tradfri. Die Leuchten erweitern das Netzwerk wenn ich das richtig gelesen habe...
      Bei mir zu Hause reicht es sogar ganz ohne... der Conbee im EG und trotzdem im Keller und im DG Empfang für die Fenstersensoren...

    • crasythom
      crasythom kommentierte
      Kommentar bearbeiten
      hab ich schon mit den Steckdosen von Phillips versucht. Ist irgendwie nicht zufriedenstellend. Leuchtmittel kann ich eigentlich nirgends reinmachen, weil alle Lampen im Haus über Loxone geschalten werden. Somit haben diese meist keinen Strom. Von dem Conbee hab ich schon viel gehört. Aber kann der wirklich so viel besser sein als ein CC2531 mit angelöteter externer Antenne?
  • Stonelink
    Extension Master
    • 04.10.2015
    • 151

    #6
    Tom, danke für den Input ... das ist definitiv ein paar nähere Blicke wert, was Du schreibst. Muss man halt mal schauen, ob man es bringt mit Java ;-)

    Das Argument mit den Miniserver Ressourcen ist schon berechtigt.

    Danke auch für den Zigbee2Tasmota Link, auch sehr interessant.

    habe Tasmota auf ein paar Gosund Steckern im Einsatz und über das LOxberry MQTT Plugin in Loxone integriert...



    Kommentar

    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11235

      #7
      ioBroker hat doch einen Loxone-Adapter?
      Die Werte, sie sich vielleicht 2x am Tag ändern, mit so einer intelligenten Software wie ioBroker per virtuellem HTTP-Eingang im x-Sekunden-Takt abzufragen, ist jedenfalls „grausam“ 🙃

      BTW JavaScript hat mit Java nix zu tun, das ist ganz was anderes.
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar


      • Stonelink
        Stonelink kommentierte
        Kommentar bearbeiten
        Danke Dir mal wieder ;-)

      • Matze_orb
        Matze_orb kommentierte
        Kommentar bearbeiten
        Guten Abend Christian,
        hättest Du ggf. einen Tipp welche Methode besser wäre, um Xiaomi/Aqara Hardware (bspw. Bewegungsmelder, Rauchmelder, Taster etc.) in die Loxone-Config zu bekommen? Gibt es vielleicht Bestrebungen, dass irgendwann ein Loxberry Plugin erstellt wird, um eine einfache Integration in Loxone zu ermöglichen?
        Gruß
        Matze
    • crasythom
      LoxBus Spammer
      • 02.10.2015
      • 297

      #8
      Evtl. hab ich noch eine Alternative für euch. Es gibt für ioBroker auch einen Zigbee2MQTT-Adapter. Für den Loxberry gibt es ja den MQTT-Broker, der das an die Loxone weiterreicht. Den Adapter muss man aber über GitHub beziehen. Evtl. ist da ja was für euch.

      Hab ich so aber noch nicht versucht.

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11235

        #9
        Matze_orb
        Ich verfolge das Thema Zigbee, ich habe aber ehrlich gesagt noch keinen Durchblick, welche Adapter es gibt, ob sich schon sowas wie ein „Standard-Adapter“ etabliert hat, und wie der einzurichten ist.
        Wenn es anfängt mit irgendwelchen Kabelbausätzen und Flashen über irgendeine Software, da bin ich schon „weg“ - den Zirkus mit Support fang ich mir nicht an.

        Ich schiele ein bisschen auf das Ikea-Gateway, aber das ist offenbar nicht voll Zigbee-kompatibel. Dann gibt’s ja noch die Connected-Home-over-IP Alliance, die in einem Jahr ihren offenen Standard vorstellt.

        Es würde sicher in Richtung bidirektionales MQTT gehen, am ehesten mit einem bereits existierenden Gateway.

        Das ist aber alles noch weit weg.

        Es würde mich viel mehr freuen, wenn das jemand mit Zigbee-Hardware in die Hand nimmt, und ich/wir helfen beim Plugin.
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

      • Matze_orb
        Extension Master
        • 19.12.2015
        • 154

        #10
        Christian Fenzl Danke dir für deine offene Meinung!

        Kommentar

        • Matze_orb
          Extension Master
          • 19.12.2015
          • 154

          #11
          AlexAn den conbee II Stick habe ich mir zufälligerweise heute auch zum Testen bestellt. Obwohl die Verbindung mit dem ioBroker und dem aktuellen Zigbee cc2531 usb Stick eigentlich gut klappt. Aber vielleicht funktioniert dieser besser um die Verbindung zur Loxone zu realisieren. Komme aktuell nicht weiter...

          Kommentar

        • Stonelink
          Extension Master
          • 04.10.2015
          • 151

          #12
          crasythom und alle Mitlesenden... ich hab mal versucht das Javascript von Dir auf einen Aqara Fenstersensor und dessen Status beim Eintrag Sensor open: "true" oder "false" zu schreiben...
          der Debug/Verbose modus geht erstmal fehlerfrei durch... Mit dem Loxone Adapter und welche Art Baustein ich da ansprechen muss bin ich noch nicht klar und bekommen noch kein zufriedenstellendes Ergebnis.

          Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Aqara Sensor Einträge.jpg Ansichten: 0 Größe: 65,8 KB ID: 239777

          Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Aqara JavaSkript Bsp.jpg Ansichten: 0 Größe: 38,9 KB ID: 239776

          Hab in der Config einen Statusbaustein angelegt und parallel auch einen virtuellen Statusbaustein. Der Adapter in ioB zeigt mir nur den virtuellen Status-Baustein an...

          Aber ist das überhaupt das Richtige? Wo hängst Du Deine Temperaturwerte dran? Muss das "true" bzw. "false" noch irgendwie übersetzt werden Richtung "0" oder "1"?

          Wenn ich den Loxone Adapter Eintrag öffne, dann Kommt auch True oder False rein...
          Im JavaScript hatte ich allerdings die Ordner Überschrift reinkopiert... muss man hier vielleicht die Zeile mit dem true / false kopieren?

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

Name: Aqara Loxone Adapter Detail.jpg
Ansichten: 2871
Größe: 77,0 KB
ID: 239780


          Danke für Input :-)
          Angehängte Dateien
          Zuletzt geändert von Stonelink; 08.03.2020, 23:19.

          Kommentar

          • crasythom
            LoxBus Spammer
            • 02.10.2015
            • 297

            #13
            Stonelink Du musst auf alle Fälle die Objekte selbst nehmen. Nicht die "Überschriften". In der Spalte Rolle im IoBroker muss also value stehen.
            Man kann eigentlich alles aus dem Loxone-Adapter ansprechen, was da auch in den Objekten angezeigt wird. Merker gehen entsprechend nicht. Jedoch der Lichtbaustein, usw. Wenn du eine Temperatur oder einen Fensterkontakt verwenden willst, legst du dir einen virtuellen Eingang in Loxone an. Wichtig ist, dass dieser in der Visualisierung sichtbar ist, sonst erscheint er nicht im Adapter. Dafür hat es sich bewehrt, einen eigenen User oder eine Usergruppe in Loxone anzulegen. Meine heißt z.B. Systeme. Wenn ich einen virtuellen Eingang (VI) nur dafür benötige, dass ich ihn aus ioBroker bediene und nicht in der Visualisierung bei den normalen Usern sehe, Stelle ich bei den Berechtigungen für die Visualisierung eben den SystemUser ioBroker ein.

            Auf diesem Weg ist es eigentlich kein Problem Temperaturen Batteriestände der Sensoren, Öffnungskontakte, Luftfeuchtigkeit usw. einzubinden. In der Regel legst du für jeden Wert einen virtuellen Eingang an. Dabei darauf achten, ob es ein digitaler (Türkontakt, Bewegungsmelder) oder ein analoger (Temperatur, Feuchtigkeit, Batteriestand) Wert ist. Eine Umsetzung von true auf 0 oder dergleichen ist nicht erforderlich. Sieht oben doch schon ganz gut aus. Ich würde nur nicht jedes mal einen virtuellen Status-Baustein nehmen, sondern eben den virtuellen Eingang.

            Ich hoffe damit kommst du klar. Sonst melde dich einfach nochmal.

            Kommentar


            • Stonelink
              Stonelink kommentierte
              Kommentar bearbeiten
              Danke Dir vielmals! War gerade dabei mit einem virtuellen Eingang zu versuchen die Temperatur abzugreifen... super, dass Du jetzt geschrieben hast, dann kann ich weiter eingrenzen...

              Man kann ja in dem Skript hintereinanderweg die Sachen schreiben sagtest du weiter oben, gell?
              Bei den Loxone Adapter Zeilen hat man ja regelmäßig mehrere Zeilen, wenn man die Ordnerstruktur aufklappt... beim virtuellen Eingang habe ich drei Zeilen, error, value und value-formatted.. da steht bisher bei Feld Rolle leider nirgendwo "value" sodern "indicator maintenance" "level" und "text"

              ich nehme die Zeile mit dem "Value" im Namen und editiere rechts über Stiftsymbol und überschreibe "level" mit value?
              oder direkt darunter die Zeile mit "formatted value"?

              Hab das Gefühl ich bin kurz davor ;-)
              werde berichten!

              Was die Benutzer angeht... ich hab nen Benutzer "ioBroker" und auch ne Benutzergruppe "ioBroker" - super Hinweis... da muss/möchte ich mich dann auch mit befassen ;-)
              Zuletzt geändert von Stonelink; 09.03.2020, 21:59.
          • crasythom
            LoxBus Spammer
            • 02.10.2015
            • 297

            #14
            Nimm den value von deinem VI. Level ist auch ok. Da brauchst nix umstellen.
            Im Script einfach eine Zeilenschaltung machen und dann den nächsten Wert eintragen.
            Ein bisschen Kommentieren hilft dir irgendwann sicher auch noch. Z.B

            // Temperatur Schlafzimmer


            Gesendet von iPhone mit Tapatalk

            Kommentar


            • Stonelink
              Stonelink kommentierte
              Kommentar bearbeiten
              supi... äh "Zeilenschaltung"? einfach neue Zeile nutzen oder muss eine Zeichenkombi eingegeben werden wie backslash n \n oder geschweifte Klammer auf { oder ähnlich?


              23:08: Teilerfolg... Die Temperatur krieg ich rein... auch wenn der Sensor mit 16 Grad Blödsinn misst... ggf. kann man das kalibrieren.

              Den Sensorstatus ist Fenster offen: "True" oder "false" habe ich noch nicht zum Laufen gebracht...

              Du sagst Digitaleingang nehmen... und dann weiter unten in der Loxone Config lasse ich den Wert so auf "Taste" stehen...
              Dann wird in ioB im Adapter ein Switch erkannt.
              im Ordner dort 2 Einträge, einer mit "active" und einer mit "pulse"...
              da muss ich jetzt noch drauf kommen... irgendwie
              Zuletzt geändert von Stonelink; 09.03.2020, 23:12.
          • crasythom
            LoxBus Spammer
            • 02.10.2015
            • 297

            #15
            Ganz normal Enter meine ich. Wie in Word 😄


            Gesendet von iPhone mit Tapatalk

            Kommentar


            • Stonelink
              Stonelink kommentierte
              Kommentar bearbeiten
              Danke für Deine wertvollen Hinweise! Dann werde ich das gleich mal ausprobieren... wäre ja gelacht wenn das nicht mal klappen täte ;-)


              Andere Frage: Hast du ein bestimmtes Vorgehen wenn Du das Skript speicherst, so das dies zeitnah ins System übernommen wird? Speichern Neustart Script sowie ausloggen ioBroker und wieder einloggen scheint nicht zu helfen... daert gefühlt immer ne Stunde... könnte das was mit der Einstellmöglichkeit oben rechts zu tun haben? Da ist ein Uhrensymbol zum Thema Zeitplan definieren... Bei Eintrag Wizard ist bei mir jeden Tag jede
              Stunde hinterlegt...

            • crasythom
              crasythom kommentierte
              Kommentar bearbeiten
              ne, da brauchst du nichts einstellen. Da kannst du einen Task anlegen, dass z.B. dein Script nur einmal am Tag läuft. In deinem Fall wird das Script aber bei jeder Änderung des Wertes ausgeführt. Der Zeitplan müsste dann in den Code eingebaut werden und würde dann ungefähr so aussehen:
              '{"time":{"start":"00:00","end":"23:59","mode":"ho urs","interval":1},"period":{"days":1}}'
              aber wie gesagt, da brauchst du gar nichts machen. auch Abmelden oder dergleichen ist nicht erforderlich. Wenn du deinen Fensterkontakt öffnest, muss das sofort greifen. Das macht das on(). Das gleiche gilt für die Temperatur. Wenn du den Temperatursensor erwärmst (z.B. in der geschlossenen Hand halten), musst du eine Änderung sehen. Da gibt es keine merkliche Verzögerung.

            • Stonelink
              Stonelink kommentierte
              Kommentar bearbeiten
              OK verstanden...
              ich hab nur das Gefühl, dass wenn ich am Skript was programmiert habe und dann Speichere sowie das Script anhalte und neustarte, dass dann die neuen Inhalte nicht immer sofort zur Anwendung kommen... daher Vermutung ein bestimmter workaround sei notwendig... ich beobachte das mal weiter ;-)

              Merci
          Lädt...