Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Systemvariablen vom Homegear beschreiben und auslesen?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Systemvariablen vom Homegear beschreiben und auslesen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      @Perador:

      …damit es eine Systemvariableariable auf dem Homegear beschreiben kann? `
      Was soll eine SV auf dem Homegear ? Meiner Meinung nach ist Homegear die Schnittstelle zwischen BidCos (HomeMatic-Geräte) und XML-RPC. @Perador:

      Habe ein Objekt im hm-rpc.0 hinzugefügt `
      hm-rpc.0 ist die Schnittstelle zwischen XML-RPC (Homegear) und ioBroker-Objekten.

      Eine "SV" (virtueller Datenpunkt) legt man unter der Instanz an, unter der Programme (in ioBroker meist Javascript) auf den Datenpunkt zugreifen. Genau wie auf der CCU unter der ReGa muss der Wert eines virtuellen Datenpunktes durch ein Programm (JS) oder manuell (VIS oder Admin-Reiter "Zustände") gesetzt werden.

      1 Reply Last reply Reply Quote 0
      • P
        Perador last edited by

        > Eine "SV" (virtueller Datenpunkt) legt man unter der Instanz an, unter der Programme (in ioBroker meist Javascript) auf den Datenpunkt zugreifen. Genau wie auf der CCU unter der ReGa muss der Wert eines virtuellen Datenpunktes durch ein Programm (JS) oder manuell (VIS oder Admin-Reiter "Zustände") gesetzt werden.

        Irgendwie weiß ich nicht so recht wie du das meinst. Magst du mir vielleicht verraten wie das ganze dann konkret gemacht wird? Habe schon alles möglich ausprobiert, aber irgendwie funktioniert das nicht…..

        Gruß

        Jörg

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          Wenn ein virtueller Datenpunkt benötigt wird, braucht es immer ein Programm, das die Beziehung dieses DP zu physikalischen DP herstellt; bei ioBroker also eine Instanz des Javascript-Adapters (oder node-red, ScriptGUI, …). Unter der Javascript-Instanz kann im Reiter "Objekte" der virtuelle DP erzeugt werden, indem man die Instanz (javascript.0) selektiert, unter der der Datenpunkt erstellt werden soll und anschließend das "+" links oben anklickt.

          493_neues_objekt.jpg
          Mit einem Javascript-Programm stellt man dann die logische / mathematische Beziehung zu physikalischen Datenpunkten her.

          1 Reply Last reply Reply Quote 0
          • P
            Perador last edited by

            @paul53:

            Mit einem Javascript-Programm stellt man dann die logische / mathematische Beziehung zu physikalischen Datenpunkten her. `
            Wie würde das dann im Bezug auf einer Homegear Systemvariable funktionieren?

            Unter den Menüpunkt "Typ" habe ich leider auch nur die Auswahl Zustand,Kanal und Gerät. Die Option "Datenpunkt" ist dabei leider nicht enthalten.

            http://postimage.org/ ~~Da meine Systemvariablen des Homegears alles Strings sind gehe ich mal davon aus das ich als Type Zustand und als Datenpunkttyp Zeichenkette auswählen muss.

            Jetzt wird automatisch folgendes Script erstellt:

            http://postimage.org/ ~~Mir ist nicht ganz klar wie jetzt eine Variable beschrieben werden soll. Wenn ich beispielsweise über Vis mein Licht im Büro einschalten will muss ich als ID nur "hm-rpc.0.LEQ1014200.1.STATE" eintagen. Um eine Systemvariable zu beschreiben müsste doch jetzt als ID "system.adapter.javascript.0.TestVar" eingetragen werden und in dem entsprechenden Script muss dann sowas wie

            "setValue hm-rpc.0.TestVar.1.STATE" stehen?~~~~

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @Perador:

              Unter den Menüpunkt "Typ" habe ich leider auch nur die Auswahl Zustand,Kanal und Gerät. Die Option "Datenpunkt" ist dabei leider nicht enthalten. `
              Zustand = Datenpunkt. Sorry, habe ich bei mir in "Datenpunkt" geändert, da "State" (Zustand) in ioBroker etwas inflationär verwendet wird.
              @Perador:

              Jetzt wird automatisch folgendes Script erstellt: `
              Das ist kein Script, sondern ein Objekt (in JS Notation). Das Objekt sollte unter "javascript.0" und nicht unter "system.adapter.javascript.0" erstellt werden.
              @Perador:

              Wenn ich beispielsweise über Vis mein Licht im Büro einschalten will muss ich als ID nur "hm-rpc.0.LEQ1014200.1.STATE" eintagen. `
              Ja. Dieser Datenpunkt ist allerdings kein String, sondern vom Typ "Boolean" (Logikwert).
              @Perador:

              Um eine Systemvariable zu beschreiben müsste doch jetzt als ID "system.adapter.javascript.0.TestVar" eingetragen werden `
              Ja. Wenn damit ein- und ausgeschaltet werden soll, aber eine SV vom Typ "Logikwert".
              @Perador:

              in dem entsprechenden Script muss dann sowas wie "setValue hm-rpc.0.TestVar.1.STATE" stehen? `
              In einem zu erstellenden JS-Programm lautet dann der Befehl zum Einschalten der "SV" javascript.0.TestVar

              setState("javascript.0.TestVar", true);
              

              Bitte die https://github.com/ioBroker/ioBroker.javascript/blob/master/README.md lesen.

              Soll das Licht geschaltet werden, wenn die "SV" schaltet, sieht das JS-Programm so aus:

              on("javascript.0.TestVar", function(dp) {
                setState("hm-rpc.0.LEQ1014200.1.STATE", dp.newState.val);
              });
              
              

              Das Programm macht nichts anderes, als dass bei einer Änderung des Wertes der "SV" javascript.0.TestVar der Wert der SV (true/false) an den Aktor-Datenpunkt "hm-rpc.0.LEQ1014200.1.STATE" übertragen wird.

              1 Reply Last reply Reply Quote 0
              • P
                Perador last edited by

                @paul53:

                Das ist kein Script, sondern ein Objekt (in JS Notation). Das Objekt sollte unter "javascript.0" und nicht unter "system.adapter.javascript.0" erstellt werden. `

                javascript.0 gibt es in meiner Objekt-Liste leider nicht. Habe nur system.adapter.javascript.0 in der List.

                @paul53:

                Das Programm macht nichts anderes, als dass bei einer Änderung des Wertes der "SV" javascript.0.TestVar der Wert der SV (true/false) an den Aktor-Datenpunkt "hm-rpc.0.LEQ1014200.1.STATE" übertragen wird. `

                Genau, ich möchte nur keinen Aktor steuern sonder den Zusand einer Systemvariable. Also z.B. Zustand "Hallo" in "tschüss".

                In dem Beispiel ist beschrieben wie ein Aktor angesprochen wird (setState("hm-rpc.0.LEQ1014200.1.STATE", dp.newState.val). Wie schaut das ganze jetzt bei einer String Systemvariable, (welche keine Geräte ID besitzt) im Homegear aus? setState("hm-rpc.0.TestVar.1.Hallo", dp.newState.val ?

                on("javascript.0.TestVar", function(dp) {
                  setState("hm-rpc.0.LEQ1014200.1.STATE", dp.newState.val);
                });
                

                Wenn ich die Variable TestVar mit "Hallo und tschüss" beschreibe bekomme ich die Änderung sofort im ioBroker unter Ereignisse mit der ID hm-rpc.0..TestVar angezeigt. Jetzt muss es doch möglich sein hm-rpc.0..TestVar auch von ioBroker aus zu beschreiben. Ich verstehe auch nicht ganz wieso in der Ereignisliste die ID so dargestellt wird "hm-rpc.0..TestVar" müsste dies nicht eigentlich so aussehen "hm-rpc.0.TestVar.Hallo und tschüss"

                http://postimage.org/

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  @Perador:

                  javascript.0 gibt es in meiner Objekt-Liste leider nicht. Habe nur system.adapter.javascript.0 in der List. `
                  Wenn der Javascript-Adapter installiert wurde und eine Javascript-Instanz aktiviert wurde, gibt es das Objekt "javascript.0".
                  @Perador:

                  … keinen Aktor steuern sonder den Zusand einer Systemvariable. Also z.B. Zustand "Hallo" in "tschüss". `
                  Du meinst SV vom Typ "Logikwert" mit Zustandstexten "Hallo" und Tschüss" ?
                  493_testvar_objekt.jpg
                  Das ist ein Datenpunkt (Zustand) vom Typ "Schalter".
                  493_testvar_zustand.jpg
                  @Perador:

                  Wie schaut das ganze jetzt bei einer String Systemvariable, (welche keine Geräte ID besitzt) im Homegear aus? `
                  Eine String-SV ist dafür ungeeignet (s.o.).
                  @Perador:

                  Ich verstehe auch nicht ganz wieso in der Ereignisliste die ID so dargestellt wird "hm-rpc.0..TestVar" `
                  Das mit den 2 Punkten kann ich nicht nachvollziehen (s. Bilder).

                  1 Reply Last reply Reply Quote 0
                  • P
                    Perador last edited by

                    @paul53:

                    Du meinst SV vom Typ "Logikwert" mit Zustandstexten "Hallo" und Tschüss" ? `

                    Nein ich meine ein reinen String… "Das ist ein Text von mir": Beschrieben in der SPS

                    http://postimage.org/ ~~Und so kommt es im ioBroker an:

                    http://postimage.org/ Anders rum wäre es toll, wenn die Variable jetzt auch von ioBroker aus beschrieben werden könnte wie z.B, "Das ist jetzt wieder ein anderer Text".~~

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      Homegear und ioBroker sind zwei verschiedene Baustellen. Als Schnittstelle zwischen Homegear und ioBroker-Objekten dient der hm-rpc-Adapter, der aus den XML-RPC-Parametern von Homegear Datenpunkte (ioBroker-Objekte) macht (und umgekehrt).

                      Homegear kennt keine ioBroker-Objekte und folglich auch keine virtuellen Datenpunkte ("SV") !!

                      EDIT: In der https://www.homegear.eu/index.php/XML_RPC_Method_Reference#System_variable_functions existiert keine Beschreibung zu möglichen SV-Funktionen.

                      1 Reply Last reply Reply Quote 0
                      • P
                        Perador last edited by

                        Ok, verstehe. Vielen dank aber für die ausdauernd nette Hilfe 🙂

                        Ich hätte gedacht ich könnte den Homegear auch als Schnittstelle zwischen meiner SPS-Steuerung und ioBroker (vis) missbrauchen ähnlich wie das auch mit Rega und der CCU funktioniert hat. Im Prinzip möchte ioBroker (vis) nur für die Visualisierung nutzen, da der VIS Adapter genau wie das ehemalige Dashui eine wirklich gelungene Sache ist. Die ganze logische Programmierung von jeglichen Abläufen und Kommunikation mit den Geräten soll die SPS übernehmen. Daher bräuchte ich eigentlich nur ein gemeinsamen Zugriff auf Variablen zwischen meiner SPS und ioBroker.

                        Eine Möglichkeit das zu Realisieren wäre vielleicht noch eine SQL Datenbank. Da ich mit meiner SPS via PHP Scripts die Möglichkeit hätte auf einer MSSQL Datenbank zuzugreifen. Somit könnte man Variablen in der Datenbank von der SPS aus abrufen und neu beschreiben. Wäre dies evtl. auch von IoBroker aus möglich?

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        691
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        2
                        15
                        3125
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo