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.
    • P
      Perador last edited by

      Hallo zusammen,

      gibt es in IoBroker irgendwie die Möglichkeit Systemvariablen auf einem Homegear zu beschreiben bzw. auszulesen? Mit der CCU2 ging dies sehr einfach mit hilfe des ReGaHSS Adapters. Ist es auch Möglichkeit Systemvariablen auf einen Homegear zu beschreiben?

      Grüße Jörg

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

        Die "Systemvariablen" in ioBroker ohne ReGaHSS sind Datenpunkt-Objekte unter Javascript, erzeugt mit createState() oder direkt im Reiter "Objekte".

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

          Danke für die Antwort,

          allerdings verstehe ich nicht ganz wie sich das ganze umsätzen lässt. Ich verwende für die Kommunikation mit den den Geräten ein Raspberry Pi2+Homegear+CC1101 Modul. Die Steuerung und Parametrierung des Homegear bzw. der Angelernten Geräte erfolgt über externe SPS (eine Art Softs-SPS). Von der SPS aus werden auch die Systemvariablen des Homegear (V0.6) erstellt, beschrieben und ausgelesen, welche ich jetzt gern im IoBroker zur Verfügung hätte . Damit könnte ich dann eine schnittstelle zwischen IoBroker.vis und meiner SPS schaffen.

          Das auslesen der Variablen im IoBroker funktioniert auch schon in dem ich im vis auf die ID "hm-rpc.0..TestVar" verweise. Die Variable "TestVar" habe zuvor in meiner SPS erstellt und sie taucht jetzt im IoBroker unter dem Reiter Ereignisse auf. Auch Zustandsänderungen werden sofort von IoBoker erkannt.

          http://postimage.org/ ~~Nur leider ist es nicht möglich diese Variable auch von IoBroker aus zu beschreiben. Im Log bekomme ich dann die Fehlermeldung:

          http://postimage.org/~~.

          Wahrscheinlich ist dies auch der falsche Weg Systemvariablen auf den Homegear zu beschreiben und auszulesen. Könnte mir daher vielleicht jemand ein Denkanstoß geben wie das ganze evtl. mit einem Javascript oder ein Objekt gelöst werden kann?

          Grüße Jörg~~~~

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

            Datenpunkte können direkt im Reiter "Objekte" http://forum.iobroker.de/viewtopic.php?f=21&t=1633sid=f31410ce85401d1aa902cf8133a60bec&sid=24dc173b0e8a06ac4024c5b7dbc439fb&sid=24dc173b0e8a06ac4024c5b7dbc439fb#p13826.

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

              Was genau müsste in dem Objekt eingestellt werden, damit es eine Systemvariableariable auf dem Homegear beschreiben kann? Habe ein Objekt im hm-rpc.0 hinzugefügt…. aber da tut sich irgendwie nichts.

              1 Reply Last reply Reply Quote 0
              • 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

                                  683
                                  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