Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Neuer Adapter] LinkedDevices

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Neuer Adapter] LinkedDevices

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

      @scrounger

      Hallo, ich habs gerade über Github installiert. Wenn es wieder passiert, melde ich mich. Vielen Dank.

      R 1 Reply Last reply Reply Quote 0
      • R
        ryto @Palm_Maniac last edited by

        Ich habe unter Experteneinstellung: keine Umwandlung ,0 Nachkommastellen und Umrechnung /xxx eingetragen. Das verlinkte Objekt hat aber Nachkommastellen.
        Wie bekomme ich diese weg?

        1 Reply Last reply Reply Quote 0
        • Scrounger
          Scrounger Developer @SevenUp last edited by

          @sevenup sagte in [Neuer Adapter] LinkedDevices:

          @Scrounger ist es möglich ein Boolean Wert negiert zu verlinken?
          Habs eingebaut, v1.4.3 sollte demnächst im latest sein.

          @ryto sagte in [Neuer Adapter] LinkedDevices:

          Ich habe unter Experteneinstellung: keine Umwandlung ,0 Nachkommastellen und Umrechnung /xxx eingetragen. Das verlinkte Objekt hat aber Nachkommastellen.

          Zeig mal die Einstellungen oder die raw daten des zu verlinkenden Objektes (parent)

          R S 2 Replies Last reply Reply Quote 0
          • R
            ryto @Scrounger last edited by

            @scrounger
            Hier die Einstellungen:

            {
              "type": "state",
              "common": {
                "name": "",
                "role": "value",
                "type": "number",
                "unit": "",
                "read": true,
                "write": true,
                "custom": {
                  "linkeddevices.0": {
                    "enabled": true,
                    "number_unit": "",
                    "linkedId": "dali_ecg_set_color_COORDINATE_Y",
                    "name": "",
                    "role": "",
                    "mergeSettingsOnRestart": true,
                    "expertSettings": true,
                    "number_convertTo": "",
                    "number_maxDecimal": 0,
                    "number_min": "",
                    "number_max": "",
                    "number_calculation": "/65535",
                    "number_calculation_readOnly": "",
                    "number_to_boolean_condition": "",
                    "number_to_boolean_value_true": "",
                    "number_to_boolean_value_false": "",
                    "number_to_string_condition": "",
                    "number_to_duration_convert_seconds": "",
                    "number_to_duration_format": "",
                    "number_to_datetime_convert_seconds": "",
                    "number_to_datetime_format": "",
                    "number_to_multi_condition": "",
                    "boolean_convertTo": "",
                    "boolean_to_string_value_true": "",
                    "boolean_to_string_value_false": "",
                    "string_convertTo": "",
                    "string_prefix": "",
                    "string_suffix": "",
                    "string_to_boolean_value_true": "",
                    "string_to_boolean_value_false": "",
                    "string_to_number_unit": "",
                    "string_to_number_maxDecimal": "",
                    "string_to_number_calculation": "",
                    "string_to_number_calculation_readOnly": "",
                    "string_to_duration_format": "",
                    "string_to_datetime_parser": "",
                    "string_to_datetime_format": ""
                  }
                }
              },
              "native": {
                "cat": "db",
                "type": "WORD",
                "db": "DB12",
                "dbId": 12,
                "address": 972,
                "offsetBit": 0,
                "rw": true,
                "wp": false,
                "len": ""
              },
              "from": "system.adapter.s7.0",
              "user": "system.user.admin",
              "ts": 1615905527674,
              "_id": "s7.0.DBs.DB12.dali_ecg_set_color_COORDINATE_Y",
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            
            Scrounger 1 Reply Last reply Reply Quote 0
            • Palm_Maniac
              Palm_Maniac @Scrounger last edited by

              @scrounger Hallo. Bisher keine Fehler mehr mit der Version über github, es scheint zu klappen. Das komische dabei ist aber, dass es vorher eigentlich immer ohne Probleme lief. Mal schauen, wie die neue Version 1.4.3 läuft.

              1 Reply Last reply Reply Quote 0
              • Scrounger
                Scrounger Developer @ryto last edited by

                @ryto sagte in [Neuer Adapter] LinkedDevices:

                @scrounger
                Hier die Einstellungen:

                Sieht soweit alles gut aus. Habs getestet funktioniert. Hat den der datenpunkt s7.0.DBs.DB12.dali_ecg_set_color_COORDINATE_Y auch einen Wert?
                Lösch mal das verlinkte Objekt und starte den Adapter neu.

                @palm_maniac sagte in [Neuer Adapter] LinkedDevices:

                @scrounger Hallo. Bisher keine Fehler mehr mit der Version über github, es scheint zu klappen. Das komische dabei ist aber, dass es vorher eigentlich immer ohne Probleme lief. Mal schauen, wie die neue Version 1.4.3 läuft.

                Wie gesagt ich hab nur das Error Handling optimiert, so dass der Adapter nicht mehr abschmieren sollte. Du musst aber trotzdem mal das Log beobachten ob da eine Fehlermeldung kommt.

                R Palm_Maniac 2 Replies Last reply Reply Quote 0
                • R
                  ryto @Scrounger last edited by

                  @scrounger
                  Alles gelöscht, Neustart und alles neu angelegt. Keine Änderung.
                  Aber:
                  Wenn ich in Objekte den linked_xxx Datenpunkt ändere, wird der Wert ohne Nachkomma im verlinkten Objekt eingetragen, i.O.
                  Den Wert im linked_xxx Datenpunkt habe ich bisher über Blockly mit aktualisiere.... geändert, Ergebnis waren Nachkommastellen im Datenpunkt. Da linked_xxx für mich eigentlich eine interne Variable ist, habe ich mit aktualisiere... gearbeitet.
                  Nun habe ich aktualisiere mit setze... auf den linked_xxx Datenpunkt ersetzt, und die Nachkommastellen sind weg.
                  Problem gelöst, nur noch mit setze... auf den linked_ und es klappt.
                  Danke

                  Scrounger 1 Reply Last reply Reply Quote 0
                  • Scrounger
                    Scrounger Developer @ryto last edited by

                    @ryto
                    Nachkommastellen werden auch nur auf den verlinkten Datenpunkt angewendet!

                    Grundsätzlich solltest du nur noch mit den verlinkten Datenpunkten in Script vis, etc. arbeiten, das ist die Idee Konzept hinter dem Adapter

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      ryto @Scrounger last edited by

                      @scrounger
                      Ich hatte nur auf das verlinkte (linked_...) Objekt geschrieben. Es arbeitet aber nur richtig, wenn die Variable mit setze... und nicht aktualisiere... geändert wird.

                      1 Reply Last reply Reply Quote 0
                      • S
                        SevenUp @Scrounger last edited by

                        @scrounger said in [Neuer Adapter] LinkedDevices:

                        @sevenup sagte in [Neuer Adapter] LinkedDevices:

                        @Scrounger ist es möglich ein Boolean Wert negiert zu verlinken?
                        Habs eingebaut, v1.4.3 sollte demnächst im latest sein.

                        Vielen Dank!
                        Funktioniert super

                        1 Reply Last reply Reply Quote 0
                        • Palm_Maniac
                          Palm_Maniac @Scrounger last edited by

                          @scrounger Hi. Es gab wieder Fehler. Hier der Logauszug:

                          2021-03-19 10:38:57.248 - error: linkeddevices.0 (1508) [getConvertedValue] sourceId 'Datenpunkte.0.Energie.Autarkie' targetId 'linkeddevices.0.Sensoren.Keller.Hobbyraum.Wechselrichter.Autarkie_Jetzt', error: Unexpected type of argument in function round (expected: number or Complex or BigNumber or Fraction or Array or Matrix or DenseMatrix or SparseMatrix or string or boolean, actual: null, index: 0), stack: TypeError: Unexpected type of argument in function round (expected: number or Complex or BigNumber or Fraction or Array or Matrix or DenseMatrix or SparseMatrix or string or boolean, actual: null, index: 0)
                          at createError (D:\iobroker\KuhnHome\node_modules\typed-function\typed-function.js:555:19)
                          at Function.generic (D:\iobroker\KuhnHome\node_modules\typed-function\typed-function.js:1077:15)
                          at Object.round (D:\iobroker\KuhnHome\node_modules\typed-function\typed-function.js:1092:24)
                          at Linkeddevices.getConvertedValue (D:\iobroker\KuhnHome\node_modules\iobroker.linkeddevices\main.js:1474:32)
                          at runMicrotasks ()
                          at runNextTicks (internal/process/task_queues.js:62:5)
                          at processImmediate (internal/timers.js:434:9)
                          at async Linkeddevices.onStateChange (D:\iobroker\KuhnHome\node_modules\iobroker.linkeddevices\main.js:274:21)
                          

                          Der Fehler taucht immer wieder regelmäßig auf, obwohl der Alias-Datenpunkt und LinkedDevices sauber laufen. es handelt sich hierbei um einen manuell angelegten Datenpunkt, der per Blockly berechnet wird.

                          Scrounger 1 Reply Last reply Reply Quote 0
                          • Scrounger
                            Scrounger Developer @Palm_Maniac last edited by Scrounger

                            @palm_maniac
                            Zeig mal die raw daten von beiden datenpunkten.
                            Wird auch der richtige type vom blockly in den DP geschrieben?

                            Palm_Maniac 1 Reply Last reply Reply Quote 0
                            • Palm_Maniac
                              Palm_Maniac @Scrounger last edited by

                              @scrounger

                              Hier die Daten von der Quelle:

                              {
                                "from": "system.adapter.admin.0",
                                "user": "system.user.admin",
                                "ts": 1613475446191,
                                "common": {
                                  "name": "Autarkie Jetzt",
                                  "role": "",
                                  "type": "number",
                                  "desc": "Manuell erzeugt",
                                  "unit": "%",
                                  "min": 0,
                                  "read": true,
                                  "write": true,
                                  "custom": {
                                    "linkeddevices.0": {
                                      "enabled": true,
                                      "number_unit": "",
                                      "linkedId": "Sensoren.Keller.Hobbyraum.Wechselrichter.Autarkie_Jetzt",
                                      "name": "Autarkie Jetzt",
                                      "role": "",
                                      "mergeSettingsOnRestart": true,
                                      "expertSettings": true,
                                      "number_convertTo": "",
                                      "number_maxDecimal": 2,
                                      "number_min": "",
                                      "number_max": "",
                                      "number_calculation": "",
                                      "number_calculation_readOnly": "",
                                      "number_to_boolean_condition": "",
                                      "number_to_boolean_value_true": "",
                                      "number_to_boolean_value_false": "",
                                      "number_to_string_condition": "",
                                      "number_to_duration_convert_seconds": "",
                                      "number_to_duration_format": "",
                                      "number_to_datetime_convert_seconds": "",
                                      "number_to_datetime_format": "",
                                      "number_to_multi_condition": "",
                                      "boolean_convertTo": "",
                                      "boolean_to_string_value_true": "",
                                      "boolean_to_string_value_false": "",
                                      "string_convertTo": "",
                                      "string_prefix": "",
                                      "string_suffix": "",
                                      "string_to_boolean_value_true": "",
                                      "string_to_boolean_value_false": "",
                                      "string_to_number_unit": "",
                                      "string_to_number_maxDecimal": "",
                                      "string_to_number_calculation": "",
                                      "string_to_number_calculation_readOnly": "",
                                      "string_to_duration_format": "",
                                      "string_to_datetime_parser": "",
                                      "string_to_datetime_format": "",
                                      "boolean_invert": false
                                    }
                                  }
                                },
                                "native": {},
                                "acl": {
                                  "object": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator",
                                  "state": 1636
                                },
                                "_id": "Datenpunkte.0.Energie.Autarkie",
                                "type": "state"
                              }
                              

                              Und hier vom Ziel:

                              {
                                "type": "state",
                                "common": {
                                  "name": "Autarkie Jetzt",
                                  "role": "",
                                  "type": "number",
                                  "desc": "Created by linkeddevices",
                                  "unit": "%",
                                  "min": 0,
                                  "max": 100,
                                  "def": 0,
                                  "read": true,
                                  "write": true,
                                  "custom": {
                                    "linkeddevices.0": {
                                      "enabled": true,
                                      "parentId": "Datenpunkte.0.Energie.Autarkie",
                                      "parentType": "number",
                                      "isLinked": true,
                                      "mergeSettingsOnRestart": true,
                                      "number_maxDecimal": 2,
                                      "linkedId": "",
                                      "name": "",
                                      "role": "",
                                      "expertSettings": false,
                                      "number_convertTo": "",
                                      "number_unit": "",
                                      "number_min": "",
                                      "number_max": "",
                                      "number_calculation": "",
                                      "number_calculation_readOnly": "",
                                      "number_to_boolean_condition": "",
                                      "number_to_boolean_value_true": "",
                                      "number_to_boolean_value_false": "",
                                      "number_to_string_condition": "",
                                      "number_to_duration_convert_seconds": "",
                                      "number_to_duration_format": "",
                                      "number_to_datetime_convert_seconds": "",
                                      "number_to_datetime_format": "",
                                      "number_to_multi_condition": "",
                                      "boolean_convertTo": "",
                                      "boolean_to_string_value_true": "",
                                      "boolean_to_string_value_false": "",
                                      "string_convertTo": "",
                                      "string_prefix": "",
                                      "string_suffix": "",
                                      "string_to_boolean_value_true": "",
                                      "string_to_boolean_value_false": "",
                                      "string_to_number_unit": "",
                                      "string_to_number_maxDecimal": "",
                                      "string_to_number_calculation": "",
                                      "string_to_number_calculation_readOnly": "",
                                      "string_to_duration_format": "",
                                      "string_to_datetime_parser": "",
                                      "string_to_datetime_format": "",
                                      "boolean_invert": false
                                    },
                                    "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": false,
                                      "debounce": "1000",
                                      "retention": 0,
                                      "changesRelogInterval": 4,
                                      "changesMinDelta": 0,
                                      "storageType": "",
                                      "aliasId": "Autarkie Jetzt"
                                    }
                                  },
                                  "icon": "linkeddevices_small.png"
                                },
                                "native": {},
                                "from": "system.adapter.linkeddevices.0",
                                "user": "system.user.admin",
                                "ts": 1616149703821,
                                "_id": "linkeddevices.0.Sensoren.Keller.Hobbyraum.Wechselrichter.Autarkie_Jetzt",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                }
                              }
                              

                              Das Blockly scheint richtig zu arbeiten, da nur gerechnet wird. Es handelt sich dabei um einen Prozentwert zwischen 0 und 100.

                              Scrounger 1 Reply Last reply Reply Quote 0
                              • Palm_Maniac
                                Palm_Maniac last edited by

                                Ich hab nochmal nachgeschaut. Der Fehler taucht nur heute auf, 3mal. Gestern war noch nix drin.

                                1 Reply Last reply Reply Quote 0
                                • B
                                  bungee71 last edited by

                                  @Scrounger Hallo, was mir aufgefallen ist, wenn ich für den Source Datenpunkt History aktiviere wird das auch auf den linked Datenpunkt gespiegelt und umgekehrt. Bisher habe ich keine Stelle gefunden an der ich dieses Verhalten konfigurieren kann - kann man es überhaupt konfigurieren ?
                                  Was mich daran stört ist, dass History dann natürlich zwei Datenpunkte aufzeichnet. Das kann Sinn machen wenn man den Wert konvertiert, somit dann beide Werte aufzeichnet.
                                  Aktuell kann ich History entweder für beide DP aktivieren oder für keinen.

                                  Gruß Bungee

                                  1 Reply Last reply Reply Quote 0
                                  • Scrounger
                                    Scrounger Developer @Palm_Maniac last edited by

                                    @palm_maniac sagte in [Neuer Adapter] LinkedDevices:

                                    Das Blockly scheint richtig zu arbeiten, da nur gerechnet wird. Es handelt sich dabei um einen Prozentwert zwischen 0 und 100.

                                    Ich konnte es jetzt reproduzieren, der Fehler tritt auf, wenn der Wert null oder undefined ist.
                                    Ich schätze das da was in deinem Blockly nicht korrekt läuft und eine der Werte schreibt.
                                    Ich werd die log Ausgabe mal noch erweiteren, dass man sieht was zum Zeitpunkt des Fehlers für ein Wert verwenden wird.

                                    @bungee71 sagte in [Neuer Adapter] LinkedDevices:

                                    Aktuell kann ich History entweder für beide DP aktivieren oder für keinen.

                                    Stimmt nur halb 😉 Wenn du History beim orginalen DP aktiviert hast, dann wird das automatisch beim verlinkten DP auch aktiviert, weil der orginale DP 1zu1 gespiegelt wird - das ist das Konzept des Adapters.
                                    Wenn aber beim orginalen DP kein History aktiviert ist, kannst du das nur für den verlinkten DP aktivieren.

                                    Warum ist das so - nehmen wir mal an du hast einen Aktor von dem du Daten per History aufzeichnen willst. Wenn das jetzt nur beim verlinkten DP aktiviert ist, der Aktor defekt ist und getauscht wird, muss man nur die verlinkung reparieren und die Aufzeichnung der Daten per History läuft weiter, d.h. die alten Daten sind dann nach wie vor vorhanden. Genauso funktioniert dann auch alles wieder in VIS, Skripten, etc.
                                    D.h. man sollte immer den roh datenpunkten zunächst verlinken und dann alle Einstellungen wie z.B. History am verlinkten Datenpunkt durchführen bzw. den verlinkten dann in VIS, Skripten, etc. verwenden.
                                    Wenn man jetzt z.B. hier noch eine Umrechnung haben möchte für die VIS, dann kann man sich z.B. eine zweite Instanz vom linkeddevices anlegen, mit dem verlinken DP von Insanz 0 verlinken und z.B. umrechnen.

                                    B Scrounger 2 Replies Last reply Reply Quote 1
                                    • B
                                      bungee71 @Scrounger last edited by bungee71

                                      @scrounger Den Gedanken hatte ich zuerst auch, dass es nur in ein Richtung gespiegelt was auch vollkommen richtig ist, aber aus irgendeinem Grund geht es bei mir in beide Richtungen.
                                      Hab es jetzt nochmal getestet:
                                      neuen DP angelegt --> verlinkt --> history im linked DP aktiviert.
                                      Ergebnis:
                                      History wird nicht im source DP aktiviert --> Passt.

                                      Bei dem DP mit dem ich dieses Verhalten habe war bereits vor dem Verlinken History aktiviert - scheinbar funktioniert es dann in beide Richtungen. Nachdem ich jetzt den Link gelöst habe, History am source DP deaktiviert, den Link wieder aktiviert kann ich History am linked DP aktivieren und es wird nicht zurückgespiegelt --> Passt

                                      Den grundsätzlich Gedanken des Adapter kann ich nachvollziehen (mache seit 26 Jahren Automatisierung 😵 ) und finde den Ansatz sehr gut - wie alle deine Sachen 🤘 - was mir aber noch fehlt sind Strukturen und der Vorteil nur ein Verbindung herstellen zu müssen, das zieht sich aber durch IO Broker. Dein Adapter bzw. die Datenpunkte davon werden ja vom Geräte Adapter erkannt, leider kann man beim Geräte Adapter keine eigenen Datentypen anlegen. Das Ziel wäre es einen Datentyp z.B. Shelly 1 anzulegen und dann nur noch eine (1) Verbindung zum Device zu erstellen die Member sind ja bekannt und könnten somit automatisch verbunden werden. Dann fehlt nur noch ein Widget das sich genauso verhält und ich bringe mit 2 Verbindungen mein komplettes Device in die VIS - wenn ich die original DP nehme sogar nur mit einer Verbindung. Das Corona Widget ist hier ein Paradebeispiel.

                                      Gruß Bungee

                                      1 Reply Last reply Reply Quote 0
                                      • Scrounger
                                        Scrounger Developer @Scrounger last edited by Scrounger

                                        @scrounger sagte in [Neuer Adapter] LinkedDevices:

                                        @palm_maniac sagte in [Neuer Adapter] LinkedDevices:

                                        Das Blockly scheint richtig zu arbeiten, da nur gerechnet wird. Es handelt sich dabei um einen Prozentwert zwischen 0 und 100.

                                        Ich konnte es jetzt reproduzieren, der Fehler tritt auf, wenn der Wert null oder undefined ist.
                                        Ich schätze das da was in deinem Blockly nicht korrekt läuft und eine der Werte schreibt.
                                        Ich werd die log Ausgabe mal noch erweiteren, dass man sieht was zum Zeitpunkt des Fehlers für ein Wert verwenden wird.

                                        Teste mal die aktuelle version von github. Da wird jetzt angezeigt, welchen Wert er hat zum Zeitpunkt des Fehlers. Achtung ich hab die Info von error auf warn umgestellt, d.h. schau nach warn meldung. Wenn der fehler wieder auftritt bitte log posten

                                        @bungee71 sagte in [Neuer Adapter] LinkedDevices:

                                        Den grundsätzlich Gedanken des Adapter kann ich nachvollziehen (mache seit 26 Jahren Automatisierung 😵 ) und finde den Ansatz sehr gut - wie alle deine Sachen 🤘 - was mir aber noch fehlt sind Strukturen und der Vorteil nur ein Verbindung herstellen zu müssen, das zieht sich aber durch IO Broker. Dein Adapter bzw. die Datenpunkte davon werden ja vom Geräte Adapter erkannt, leider kann man beim Geräte Adapter keine eigenen Datentypen anlegen. Das Ziel wäre es einen Datentyp z.B. Shelly 1 anzulegen und dann nur noch eine (1) Verbindung zum Device zu erstellen die Member sind ja bekannt und könnten somit automatisch verbunden werden.

                                        Schau mal hier, evtl. hilft dir das bei der Strukturierung weiter:
                                        https://forum.iobroker.net/topic/40609/organisieren-mit-alias-wie-macht-ihr-das

                                        Dann fehlt nur noch ein Widget das sich genauso verhält und ich bringe mit 2 Verbindungen mein komplettes Device in die VIS - wenn ich die original DP nehme sogar nur mit einer Verbindung. Das Corona Widget ist hier ein Paradebeispiel.

                                        Mit den Material Design Widgets und skripten ist sowas schon möglich 🙂

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          DocGame @Scrounger last edited by

                                          @scrounger Da ich deinen Adapter liebe und ich mit alias überhaupt nicht klar komme hier meine Frage:
                                          Ist eine neue Adapterversion geplant, so das man unter der neuen Reac UI Linkeddevice wieder nutzen kann?
                                          Im Moment erscheint es leider nicht mehr unter den States mit dem Schraubenschlüssel.
                                          Das hält mich von einem dauerhaften umstellen auf Reac UI ab. Wäre toll, wenn du dir die Mühe machen könntest. Deine Fangemeinde wird es dir danken 😊

                                          Scrounger 1 Reply Last reply Reply Quote 1
                                          • Scrounger
                                            Scrounger Developer @DocGame last edited by

                                            @docgame
                                            Bin ich dran, wir aber sicher noch dauern, weil da noch ein paar Sachen im Admin Adapter integriert werden müssen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            692
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter
                                            68
                                            464
                                            85615
                                            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