Entwicklung node-red-contrib-loxone für node-red

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • pmayer
    LoxBus Spammer
    • 27.02.2017
    • 379

    Also, das Problem entsteht durch node-websocket Version 1.0.32. Die setzen seit August 2020 bufferutil ein, das einen Binärteil hat und deswegen mit node-gyp per python kompiliert werden muss: https://github.com/theturtle32/WebSocket-Node#changelog

    Wir referenzieren ^1.0.31 - das Circumflex heißt "entspricht". Da es in der Art und Weise wie man websocket anspricht keine Änderungen gab, sondern nur hinten raus, entspricht 1.0.32 eben 1.0.31. Ich werde die Version fest auf 1.0.31 setzen und gleich ein neues release von node-red-contrib-loxone machen.

    romildo Du solltest dann auch die aktuelle Version einsetzen können und Gast sollte dann hoffentlich den node installieren können, weil es keine Binärabhängigkeiten mehr gibt.

    Aber: Irgendwann werden wir auf die neue node-websocket-Version gehen müssen... die Raspberrypimatic Jungs müssen also über kurz oder lang - auch für andere nodes - eine Lösung finden.
    Zuletzt geändert von pmayer; 08.10.2020, 14:01.
    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

    • pmayer
      LoxBus Spammer
      • 27.02.2017
      • 379

      So, node-red-contrib-loxone 0.10.11 released
      • node-lox-ws-api 0.4.5-bugfix3 so you don't have to build binary dependencies of WebSocket-Node
      Sag bescheid obs klappt.
      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

        Was soll ich sagen ..... perfekt. ist ohne Probleme über Palette durch gelaufen. Ich erstelle später ein paar Geräte und werde alles einmal durch testen und Dir ein Feedback geben.
        Vielen Dank für den wirklich superschnellen Support 1 mit Sternchen

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

Name: Lox.JPG
Ansichten: 940
Größe: 16,0 KB
ID: 268988

        Kommentar

        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5126

          Zitat von pmayer
          ..Sag bescheid obs klappt.
          Update von 0.10.8 auf 0.10.11 klappt auch.
          Vielen Dank!

          lg Romildo

          Kommentar

          • Philipp1596
            Dumb Home'r
            • 22.11.2017
            • 22

            Ich würde gerne die Solltemperatur, sowie den Mode der Raumregelung anpassen. Ist dies auch möglich? Laut API von Loxone sollte es gehen.
            Ich habe an die Raumregelung ein Objekt "mode" mit einem Wert gesendet. Aber leider passiert hier nichts. Ich habe es auch probiert, den "Wert" als String zu senden, aber da tut sich auch nichts. GIbt es da eine Möglichkeit?

            Kommentar

            • romildo
              Lebende Foren Legende
              • 25.08.2015
              • 5126

              Philipp1596
              Da ich mich mit NodeRed nicht besonders gut auskenne, kann es durchaus sein, dass es auch einfacher geht, aber mittels Objekt "webservice" geht das.
              Beispiel für Komforttemperatur
              Code:
              URI: jdev/sps/io/<UUID von Intelligenter Raumregelung>/setComfortTemperature/
              Beispiel Komfortanpassung
              Code:
              URI: jdev/sps/io/<UUID von Intelligenter Raumregelung>/[FONT=Calibri]setComfortModeTemp[/FONT]/
              Häkchen bei "Append msg.payload" nicht vergessen.

              Sofern die Bezeichnung von der Intelligenten Raumregelung eindeutig ist, kann auch diese an Stelle der UUID eingetragen werden.


              Edit: Fehler bei Komfortanpassung korrigiert

              Edit2: Hier noch ein paar weitere Befehle
              Befehl Wert Bezeichnung in App
              setComfortModeTemp Komfortabweichung
              Einstellungen > Temperaturen > Bei Anwesenheit
              setComfortTemperature Komfort
              setComfortTolerance 0.5-3 Erlaubte Abweichung
              Einstellungen > Temperaturen > Bei Abwesenheit
              setAbsentMinTemperature 0.5- ∞ Untergrenze
              setAbsentMaxTemperature 0.5- ∞ Obergrenze
              Einstellungen > Betriebsmodus > Automatikbetrieb
              setOperatingMode 0 Heizen und Kühlen
              setOperatingMode 1 nur Heizen Kühlen nicht erlaubt
              setOperatingMode 2 nur Kühlen Heizen nicht erlaubt
              Einstellungen > Betriebsmodus > Manueller Betrieb
              setOperatingMode 3 Heizen und Kühlen
              setOperatingMode 4 nur Heizen Kühlen nicht erlaubt
              setOperatingMode 5 nur Kühlen Heizen nicht erlaubt
              Zuletzt geändert von romildo; 09.10.2020, 09:10.
              lg Romildo

              Kommentar


              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Die Liste oben habe ich nur schnell für diesen Thread im Excel zusammengestellt.
                Die Loxone Dokumentation findest du hier:
                Beschreibung der Programmierschnittstelle (API) des Miniservers, und eine Auflistung der für die Kommunikation verwendeten Ports und Domains.

              • stefanski
                stefanski kommentierte
                Kommentar bearbeiten
                Vielen Dank erst mal, scheinbar sind dort aber auch nicht alle Optionen dokumentiert. Beispielsweise für die Jalousie kann man wie ich im FAQ Thread zu nodered Beispielen gelesen habe (auch auch getestet habe) mittels:

                jdev/sps/io/uid/ManualPosition/{prozent}

                eine Jalousie direkt auf einen Wert fahren (statt über AIp zu gehen)

                Vermutlich ist in der API nur das drin was Loxone will, dass es da drin ist

              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Ja warum auch immer.
                Die muss man dann halt selber herausfinden

                Befehle welche in der Strukturdatei nicht zu finden sind, sind möglicherweise in der Configdatei zu finden.
                Beispiele:
                Beschattung:
                IP/jdev/sps/io/uid/Shade

                Autobeschattung:
                An Stelle von
                IP/jdev/sps/io/uid/Auto
                könnte auch
                IP/jdev/sps/io/uid/AutoShade/1
                in Folge
                IP/jdev/sps/io/uid/ReactAutoShade
                genommen werden

                Sicherheitsabschaltung ein:
                IP/jdev/sps/io/uid/Safety/1
                Sicherheitsabschaltung aus:
                IP/jdev/sps/io/uid/Safety/0

                Position der Jalousie:
                IP/jdev/sps/io/uid/ManualPosition/Wert0-100

                Stop:
                IP/jdev/sps/io/uid/Stop
            • Philipp1596
              Dumb Home'r
              • 22.11.2017
              • 22

              romildo
              Vielen Dank für deine Hilfe, das hat so wunderbar funktioniert mit der Betriebsart umschalten.
              Jetzt habe ich nur noch ein Problem: Ich habe noch die Raumregelung Gen. 1 im Einsatz. Ich würde dort gerne die Temperatur in der manuellen Betriebsart einstellen. Laut Structure File von Loxone geht das auch, jedoch steht folgendes bei unter Commands bei settemp
              changes the value of an temperature with a temperature id and the new value
              Jetzt weiß ich nicht, welche ID die ID für die manuelle Temperatur ist. Ich habe in der JSON zwar verschiedene temperatures gefunden, jedoch weiß ich nicht, welche die richtige ist, allgemein blicke ich da noch nicht so ganz durch. Kannst du mir da noch einen Tipp geben?

              Ansonsten werde ich die Raumregelung auf Gen. 2 konvertieren.

              Kommentar

              • romildo
                Lebende Foren Legende
                • 25.08.2015
                • 5126

                Philipp1596
                Schau im Strukturfile unter <Intelligent Room Controller > Details > temperatures > temperature-ids> dort wirst Du fündig.
                Beispiel für Komforttemperatur:
                Code:
                jdev/sps/io/<UUID von Intelligenter Raumregelung>/settemp/1/23
                sollte die Komforttemperatur auf 23° setzen.
                lg Romildo

                Kommentar

                • Philipp1596
                  Dumb Home'r
                  • 22.11.2017
                  • 22

                  romildo
                  Vielen Dank für deine Hilfe! Genau das war es, es funktioniert super.
                  Sollte mir die Structure File wohl einfach mal genauer durchlesen.

                  Kommentar

                  • Gast

                    Hallo zusammen, ich habe soweit alles durch getestet und kann bisher kein Problem finden. Sieht sehr gut aus, und auch die Werte von dem Homematic WT kommt in der Loxone an.
                    Jetzt habe ich nur noch ein Problem, wie gesagt, bin in der HM Welt neu. Wie bekomme ich es hin, einen Soll Temperaturwert also Ausgang der IRR an das HM Thermostat via Node-RED zu senden? bin schon die ganze Zeit am suchen und Testen, finde aber nur Beispiele von Lichtschaltern. Hat jemand evtl. einen Screenshot seiner Konfig für mich, damit ich da etwas abschauen kann ? Vielen Dank euch allen.

                    Kommentar


                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Kommando zurück ich bin ein Stück weiter. Habe nur noch das Problem, das ich die Solltemperatur, die im Wandthermostat eingestellt wird an den IRR Baustein zurück geben will. Da hänge ich aber fest.
                  • Gast

                    Hi, ausgelesen habe ich es über einen "Control in Node" über die TempTarget des Bausteins.
                    Im Moment gehe ich hier raus, in die Homematic rein, und da wieder in die Solltemp der Loxone. Zumindest hab ich jetzt einen Sync zwischen allen Komponenten. Was jedoch komisch ist, egal was ich einstelle, der Stellmotor macht nicht auf, obwohl er auf zb. 25 Grad Soll ist und auf Manuell läuft.
                    Ich denke da gibt es bestimmt die Masterlösung dafür, jedoch habe ich die noch nicht gefunden.

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

Name: Temp.JPG
Ansichten: 859
Größe: 26,3 KB
ID: 269222

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

Name: Target.JPG
Ansichten: 791
Größe: 23,2 KB
ID: 269223

                    Kommentar


                    • Lenardo
                      Lenardo kommentierte
                      Kommentar bearbeiten
                      zeig mal die Konfig vom HM Teil, das ist ein Heizkörperthermostat nehme ich an, ohne alles gelesen zu haben

                    • Lenardo
                      Lenardo kommentierte
                      Kommentar bearbeiten
                      Emit cached value on start, im Node ankreuzen

                    • romildo
                      romildo kommentierte
                      Kommentar bearbeiten
                      Danke für die Info. Bei mir hatte sich der "Control in Node" nicht verändert.
                      Es lag aber an meiner Dummheit, da ich im Testserver den Falschen IRR-Baustein verändert habe.
                  • Gast

                    ich hbe hier einmal alles in ein Bild gepackt.
                    Die Beschriftung HT = Heikörper Thermostat und WT = Wandthermostat ist eigentlich hinfällig.
                    Ich hatte anfangs alles aus dem WT ausgelesen.
                    Mittlerweile habe ich eine Gruppe erstelt und hole mir die Daten aus dem virtuellen Gerät.


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

Name: Temp.png
Ansichten: 800
Größe: 194,5 KB
ID: 269233

                    Kommentar


                    • pmayer
                      pmayer kommentierte
                      Kommentar bearbeiten
                      Man kann die Bilder leider nicht vergrößern...

                    • romildo
                      romildo kommentierte
                      Kommentar bearbeiten
                      Rechte Maustaste > Grafik anzeigen.

                    • pmayer
                      pmayer kommentierte
                      Kommentar bearbeiten
                      Ah, Danke! Hatte nicht gemerkt, dass es nur _ein_ Bild ist ;-)
                  • davidoff019
                    Dumb Home'r
                    • 23.04.2019
                    • 27

                    Hallo, uerst einmal Danke für den tollen Support und der Lösung die Ihr hier entwickelt. Mittlerweile habe ich per NodeRed schon einige Dinge in Loxone integriert und wollte nun fragen ob mein Ansatz bezüglich Datenaustausch zwischen Loxone und Node Red der richtige ist oder ob es eine besser Lösung gibt. Für einzele Daten von NodeRed zu Loxone verwende ich control out bzw. Virtual Inputs in Loxone. Für die andere Richtung verwende ich control in und in Loxone Merker um die Daten auszutauschen. Ist mein Ansatz mit den Meckern hier richtig oder gibt es dazu eine bessere und Ressourcen schonendere Lösung wenn man nicht direkt auf die Daten eines Bausteins zugreifen kann. Danke schon mal vorab.

                    LG

                    Kommentar


                    • pmayer
                      pmayer kommentierte
                      Kommentar bearbeiten
                      Sers. Danke dir.

                      Das mit den Merkern ist schon in Ordnung. Es müssen ja immer visualisierte Elemente sein, da sie sonst nicht im Websocket von Loxone auftauchen - das ist das, worüber die Kommunikation der App und auch node-red-contrib-loxone läuft.

                      Ich kann nicht beurteilen ob viele Merker dem Miniserver "weh tun". Falls doch, könntest du versuchen die Bausteine direkt per Control-In "anzuzapfen" und auf die Events, ähnlich wie beim Merker, zu reagieren oder den Webservice node zu nehmen und da die Informationen die du brauchst pollen.
                      https://www.loxone.com/dede/kb/webservices/ bzw. https://github.com/codmpm/node-red-c...oxone#examples (drittes Beispiel)

                      Der Webservice wird durch die bestehende Verbindung abgefragt, sollte also keinen Overhead erzeugen. Du verlierst damit dann eben nur den eventbasierten Ansatz.
                  • Tico
                    Lox Guru
                    • 31.08.2016
                    • 1035

                    Hello. I have a curl command I wish to execute in Node-Red:

                    Code:
                    curl  -X POST -H "Host:prod.zodiac-io.com" -H "accept:application/json" -H "content-type:application/json" -H "accept-encoding:gzip" -H "user-agent:okhttp/3.12.0" -d '{"api_key":"XXXYYYZZZ", "email":"myemail@gmail.com", "password":"AAABBBCCC"}' "https://prod.zodiac-io.com/users/v1/login"
                    I've researched that I need a Change node in front of a HTTP Request node. Where I'm struggling is the correct way to format the Change node.

                    Any guidance is much appreciated.
                    Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                    Kommentar

                    • hagor
                      Extension Master
                      • 25.02.2017
                      • 181

                      Tico I did something similar using a function node, not a change node
                      Within the function node you can set all values.

                      The content of the function node should look something like this:
                      Code:
                      msg.method = 'POST';
                      msg.headers = {};
                      msg.headers['Host'] = 'prod.zodiac-io.com';
                      msg.headers['accept'] = 'application/json';
                      msg.headers['content-type'] = 'application/json';
                      msg.headers['accept-encoding'] = 'gzip';
                      msg.headers['user-agent'] = 'okhttp/3.12.0';
                      msg.url = 'https://prod.zodiac-io.com/users/v1/login';
                      msg.payload = '{"api_key":"XXXYYYZZZ", "email":"myemail@gmail.com", "password":"AAABBBCCC"}';
                      return msg;

                      Kommentar

                      Lädt...