Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Switch Widget ID über Variablen Datenpunkt möglich?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Switch Widget ID über Variablen Datenpunkt möglich?

Scheduled Pinned Locked Moved Visualisierung
16 Posts 4 Posters 1.0k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • JoJo58J Offline
    JoJo58J Offline
    JoJo58
    wrote on last edited by
    #1

    Moin Zusammen,

    kann man die ID von einem Switch Widget, wie z.B. Inventwo Universal, über einen Datenpunkt variable angeben?

    Beispiel:
    Es gibt einen Datenpunkt mit Namen "Schalter"
    Der soll variable gefüllt werden mit:

    Datenpunkt - adapter1.0.Wert.on
    Datenpunkt - adapter2.0.Wert.on
    Datenpunkt - adapter3.1.Wert.on

    Das kriege ich über Blockly hin. Aber, ich möchte auf der View nur ein Widget haben und das soll je nach, über dem "select" Widget, ausgewählten Inhalt eben die entsprechenden Datenpunkte ein- oder ausschalten.

    Bei Objekt ID müsste also der Inhalt eines Datenpunktes stehen und nicht der Datenpunkt.

    Hoffe das ich mich einigermaßen verständlich ausgedrückt habe?

    Gruß, Johannes

    Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
    Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
    Einfach ein tolles Hobby :-)

    BananaJoeB O OliverIOO 3 Replies Last reply
    0
    • JoJo58J JoJo58

      Moin Zusammen,

      kann man die ID von einem Switch Widget, wie z.B. Inventwo Universal, über einen Datenpunkt variable angeben?

      Beispiel:
      Es gibt einen Datenpunkt mit Namen "Schalter"
      Der soll variable gefüllt werden mit:

      Datenpunkt - adapter1.0.Wert.on
      Datenpunkt - adapter2.0.Wert.on
      Datenpunkt - adapter3.1.Wert.on

      Das kriege ich über Blockly hin. Aber, ich möchte auf der View nur ein Widget haben und das soll je nach, über dem "select" Widget, ausgewählten Inhalt eben die entsprechenden Datenpunkte ein- oder ausschalten.

      Bei Objekt ID müsste also der Inhalt eines Datenpunktes stehen und nicht der Datenpunkt.

      Hoffe das ich mich einigermaßen verständlich ausgedrückt habe?

      Gruß, Johannes

      BananaJoeB Offline
      BananaJoeB Offline
      BananaJoe
      Most Active
      wrote on last edited by
      #2

      @jojo58 ich habe das über ein Skript / Blockly gelöst. Das Skript reagiert also auf "Wahr" und prüft welches Gerät es auf Grund der gewählten Optionen schalten soll.

      Ob das auch über deinen gedachten weg geht weis ich nicht. Schon probiert dort einen Datenpunkt einzutragen der den Wert enthält? der müsste dann in { ... } stehen damit er den Wert draus übernimmt.

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

      JoJo58J 1 Reply Last reply
      0
      • JoJo58J JoJo58

        Moin Zusammen,

        kann man die ID von einem Switch Widget, wie z.B. Inventwo Universal, über einen Datenpunkt variable angeben?

        Beispiel:
        Es gibt einen Datenpunkt mit Namen "Schalter"
        Der soll variable gefüllt werden mit:

        Datenpunkt - adapter1.0.Wert.on
        Datenpunkt - adapter2.0.Wert.on
        Datenpunkt - adapter3.1.Wert.on

        Das kriege ich über Blockly hin. Aber, ich möchte auf der View nur ein Widget haben und das soll je nach, über dem "select" Widget, ausgewählten Inhalt eben die entsprechenden Datenpunkte ein- oder ausschalten.

        Bei Objekt ID müsste also der Inhalt eines Datenpunktes stehen und nicht der Datenpunkt.

        Hoffe das ich mich einigermaßen verständlich ausgedrückt habe?

        Gruß, Johannes

        O Offline
        O Offline
        oFbEQnpoLKKl6mbY5e13
        wrote on last edited by
        #3

        @jojo58

        Was zumindest theoretisch auch noch ein Ansatz wäre, dass man durch ein Skript das Ziel eines Alias ändert.

        JoJo58J 2 Replies Last reply
        0
        • BananaJoeB BananaJoe

          @jojo58 ich habe das über ein Skript / Blockly gelöst. Das Skript reagiert also auf "Wahr" und prüft welches Gerät es auf Grund der gewählten Optionen schalten soll.

          Ob das auch über deinen gedachten weg geht weis ich nicht. Schon probiert dort einen Datenpunkt einzutragen der den Wert enthält? der müsste dann in { ... } stehen damit er den Wert draus übernimmt.

          JoJo58J Offline
          JoJo58J Offline
          JoJo58
          wrote on last edited by
          #4

          @bananajoe
          Ja, über ein Binding in diesen Klammern habe ich es versucht. Funktionierte leider nicht, daher habe ich hier nachgefragt.
          Du hast recht, über ein Blockly kann ich es lösen, aber es ist deutlich aufwendiger. Vor allem wenn ich auch jedes mal den aktuellen Status des ausgewählten Datenpunktes in der View haben will. Auch das kann man über Blockly lösen, ☺ aber eben alles etwas schwieriger.
          Was soll's, ich spiele ja gerne mit Blocklys, dann habe ich wieder etwas mehr zu tun. 👍

          Gruß, Johannes

          Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
          Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
          Einfach ein tolles Hobby :-)

          1 Reply Last reply
          0
          • O oFbEQnpoLKKl6mbY5e13

            @jojo58

            Was zumindest theoretisch auch noch ein Ansatz wäre, dass man durch ein Skript das Ziel eines Alias ändert.

            JoJo58J Offline
            JoJo58J Offline
            JoJo58
            wrote on last edited by
            #5

            @ofbeqnpolkkl6mby5e13
            Ein guter Ansatz, daran habe ich noch nicht gedacht. Mal sehen ob ich dazu etwas finden kann. 👍

            Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
            Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
            Einfach ein tolles Hobby :-)

            1 Reply Last reply
            0
            • O oFbEQnpoLKKl6mbY5e13

              @jojo58

              Was zumindest theoretisch auch noch ein Ansatz wäre, dass man durch ein Skript das Ziel eines Alias ändert.

              JoJo58J Offline
              JoJo58J Offline
              JoJo58
              wrote on last edited by JoJo58
              #6

              @ofbeqnpolkkl6mby5e13
              Deine Idee sieht sehr gut aus. Habe zum Testen ein kleines Blockly mit einer Funktion erstellt und darüber kann ich den Alias ändern. Das funktioniert schon mal. Jetzt werde ich morgen mal testen, ob das auch in der View den State des Widgets ändert, also ob mir angezeigt wird der DP an oder aus ist. Wenn das auch noch klappt, dann wäre das genial 👍 👍

              Danke schon mal für den Tipp...

              Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
              Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
              Einfach ein tolles Hobby :-)

              1 Reply Last reply
              1
              • JoJo58J JoJo58

                Moin Zusammen,

                kann man die ID von einem Switch Widget, wie z.B. Inventwo Universal, über einen Datenpunkt variable angeben?

                Beispiel:
                Es gibt einen Datenpunkt mit Namen "Schalter"
                Der soll variable gefüllt werden mit:

                Datenpunkt - adapter1.0.Wert.on
                Datenpunkt - adapter2.0.Wert.on
                Datenpunkt - adapter3.1.Wert.on

                Das kriege ich über Blockly hin. Aber, ich möchte auf der View nur ein Widget haben und das soll je nach, über dem "select" Widget, ausgewählten Inhalt eben die entsprechenden Datenpunkte ein- oder ausschalten.

                Bei Objekt ID müsste also der Inhalt eines Datenpunktes stehen und nicht der Datenpunkt.

                Hoffe das ich mich einigermaßen verständlich ausgedrückt habe?

                Gruß, Johannes

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                wrote on last edited by OliverIO
                #7

                @jojo58

                am einfachsten wäre es für jeden Datenpunkt ein eigenes Widget anzulegen und dann die Anzeige des richtigen Datenpunkts in Sichtbarkeit des widgets zu steuern.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                JoJo58J 1 Reply Last reply
                0
                • OliverIOO OliverIO

                  @jojo58

                  am einfachsten wäre es für jeden Datenpunkt ein eigenes Widget anzulegen und dann die Anzeige des richtigen Datenpunkts in Sichtbarkeit des widgets zu steuern.

                  JoJo58J Offline
                  JoJo58J Offline
                  JoJo58
                  wrote on last edited by
                  #8

                  @oliverio
                  Auch eine gute Idee. Man müsste die dann alle übereinander legen und dann über den Wert vom entsprechenden Datenpunkt anzeigen oder ausblenden.
                  Ich brauche das dann auch für ein JSON Widget und weiß nicht wie VIS das macht. Wenn ich 10 Widgets habe, werden die dann immer alle geladen und nur wenn die Sichtbarkeit zutrifft, dann auch angezeigt? Oder wird so ein Universal oder JSON erst dann geladen, wenn es auch angezeigt wird?
                  Falls immer alles geladen wird, dann wäre die Version über den Alias etwas Ressourcenschonender. Ich werde einfach beide Versionen testen und dann mal sehen was mir besser gefällt.

                  Danke für den Tipp.

                  Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                  Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                  Einfach ein tolles Hobby :-)

                  1 Reply Last reply
                  0
                  • OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    wrote on last edited by
                    #9

                    @jojo58

                    Datenpunkte müssen bei Start von vis
                    sowieso alle bekannt sein. Dynamische Datenpunkte funktionieren nicht.
                    Ich glaube, alle Widgets werden angelegt und dann per CSS sichtbar gemacht oder nicht. Bin mir da nicht ganz so sicher, wie bis innen drin funktioniert.

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    O JoJo58J 2 Replies Last reply
                    0
                    • OliverIOO OliverIO

                      @jojo58

                      Datenpunkte müssen bei Start von vis
                      sowieso alle bekannt sein. Dynamische Datenpunkte funktionieren nicht.
                      Ich glaube, alle Widgets werden angelegt und dann per CSS sichtbar gemacht oder nicht. Bin mir da nicht ganz so sicher, wie bis innen drin funktioniert.

                      O Offline
                      O Offline
                      oFbEQnpoLKKl6mbY5e13
                      wrote on last edited by
                      #10

                      @oliverio sagte in Switch Widget ID über Variablen Datenpunkt möglich?:

                      Dynamische Datenpunkte funktionieren nicht.

                      Gerade mal mit der Änderung des Ziels bei einem Alias ausprobiert. Funktioniert einwandfrei. Muss man nur noch in ein Skript gießen.

                      JoJo58J 1 Reply Last reply
                      0
                      • O oFbEQnpoLKKl6mbY5e13

                        @oliverio sagte in Switch Widget ID über Variablen Datenpunkt möglich?:

                        Dynamische Datenpunkte funktionieren nicht.

                        Gerade mal mit der Änderung des Ziels bei einem Alias ausprobiert. Funktioniert einwandfrei. Muss man nur noch in ein Skript gießen.

                        JoJo58J Offline
                        JoJo58J Offline
                        JoJo58
                        wrote on last edited by
                        #11

                        @ofbeqnpolkkl6mby5e13
                        Das funktioniert über ein Blockly mit Funktionen. Mit einer Funktion ändere ich das Ziel des Alias Datenpunktes und mit einer weiteren Funktion, die etwas später (1 Sekunde) aufgerufen wird, lese ich den Wert des Ziel Datenpunktes aus und schreibe diesen auch direkt wieder zurück, so das der Zeitstempel geändert wird. Dadurch bekommt der Alias auch den richtigen Wert, denn der wird beim ändern des Ziels nicht übernommen.
                        Ein Programmierer würde das wohl in einer Funktion unterbringen, aber ich habe keinen Plan von Javascript und bin froh das es mit zweien klappt.
                        Somit habe ich ein funktionierendes Widget bei dem der zu schaltende Datenpunkt über das "select" Widget von Material Design ausgewählt wird.
                        Coole Sache 😎
                        Vielen Dank für den Tipp...

                        Johannes

                        Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                        Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                        Einfach ein tolles Hobby :-)

                        O 1 Reply Last reply
                        1
                        • OliverIOO OliverIO

                          @jojo58

                          Datenpunkte müssen bei Start von vis
                          sowieso alle bekannt sein. Dynamische Datenpunkte funktionieren nicht.
                          Ich glaube, alle Widgets werden angelegt und dann per CSS sichtbar gemacht oder nicht. Bin mir da nicht ganz so sicher, wie bis innen drin funktioniert.

                          JoJo58J Offline
                          JoJo58J Offline
                          JoJo58
                          wrote on last edited by JoJo58
                          #12

                          @oliverio sagte in Switch Widget ID über Variablen Datenpunkt möglich?:

                          Datenpunkte müssen bei Start von vis
                          sowieso alle bekannt sein.

                          Stimmt, das hat ein anderer User bei Facebook auch geschrieben, deswegen funktioniert das ja auch nicht mit Binding in einer Objekt ID.

                          Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                          Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                          Einfach ein tolles Hobby :-)

                          1 Reply Last reply
                          0
                          • JoJo58J JoJo58

                            @ofbeqnpolkkl6mby5e13
                            Das funktioniert über ein Blockly mit Funktionen. Mit einer Funktion ändere ich das Ziel des Alias Datenpunktes und mit einer weiteren Funktion, die etwas später (1 Sekunde) aufgerufen wird, lese ich den Wert des Ziel Datenpunktes aus und schreibe diesen auch direkt wieder zurück, so das der Zeitstempel geändert wird. Dadurch bekommt der Alias auch den richtigen Wert, denn der wird beim ändern des Ziels nicht übernommen.
                            Ein Programmierer würde das wohl in einer Funktion unterbringen, aber ich habe keinen Plan von Javascript und bin froh das es mit zweien klappt.
                            Somit habe ich ein funktionierendes Widget bei dem der zu schaltende Datenpunkt über das "select" Widget von Material Design ausgewählt wird.
                            Coole Sache 😎
                            Vielen Dank für den Tipp...

                            Johannes

                            O Offline
                            O Offline
                            oFbEQnpoLKKl6mbY5e13
                            wrote on last edited by
                            #13

                            @jojo58

                            Wärst du bereit, deine zwei Funktionen zu teilen? Vielleicht brauche ich das auch mal, dann könnte ich das verwenden.

                            JoJo58J 2 Replies Last reply
                            0
                            • O oFbEQnpoLKKl6mbY5e13

                              @jojo58

                              Wärst du bereit, deine zwei Funktionen zu teilen? Vielleicht brauche ich das auch mal, dann könnte ich das verwenden.

                              JoJo58J Offline
                              JoJo58J Offline
                              JoJo58
                              wrote on last edited by
                              #14

                              @ofbeqnpolkkl6mby5e13
                              Klar, mache ich morgen früh als erstes. Im Moment hab ich nur mein Handy zur Verfügung.

                              Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                              Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                              Einfach ein tolles Hobby :-)

                              1 Reply Last reply
                              1
                              • O oFbEQnpoLKKl6mbY5e13

                                @jojo58

                                Wärst du bereit, deine zwei Funktionen zu teilen? Vielleicht brauche ich das auch mal, dann könnte ich das verwenden.

                                JoJo58J Offline
                                JoJo58J Offline
                                JoJo58
                                wrote on last edited by
                                #15

                                @ofbeqnpolkkl6mby5e13

                                Moin, wie gestern versprochen, hier die beiden Scripte.

                                Mit dieser Funktion ändere ich den Alias Datenpunkt:

                                // Ziel-Datenpunkt ändern
                                const targetAlias = alias_DP; // Der Alias-Datenpunkt, dessen Ziel geändert werden soll
                                const newTarget = source_Alias_DP; // Der neue Ziel-Datenpunkt
                                
                                // Objekt-ID des Alias-Datenpunkts abrufen
                                const aliasObj = getObject(targetAlias, (err, obj) => {
                                    if (err) {
                                        console.error('Fehler beim Abrufen des Alias-Datenpunkts:', err);
                                        return;
                                    }
                                
                                    if (!obj) {
                                        console.error('Alias-Datenpunkt nicht gefunden:', targetAlias);
                                        return;
                                    }
                                
                                    // Ziel-Datenpunkt des Alias ändern
                                    obj.common.alias.id = newTarget;
                                
                                    // Aktualisierte Objekteigenschaften speichern
                                    setObject(targetAlias, obj, (err) => {
                                        if (err) {
                                            console.error('Fehler beim Speichern der aktualisierten Alias-Eigenschaften:', err);
                                            return;
                                        }
                                
                                        console.log('Alias-Datenpunkt erfolgreich aktualisiert:', targetAlias);
                                    });
                                });
                                
                                return 0;
                                

                                Und mit dieser Funktion lese ich den Wert von einem DP und schreibe ihn direkt wieder zurück, damit sich der Zeitstempel ändert und der geänderte Alias den richtigen Wert hat.

                                const stateName = source_Alias_DP; // Name der State-Variable
                                
                                // Wert der State-Variable abrufen
                                getState(stateName, (err, state) => {
                                    if (err) {
                                        console.error('Fehler beim Abrufen des Zustands:', err);
                                        return;
                                    }
                                
                                    if (state) {
                                        const value = state.val;
                                        
                                        // Wert wieder in den gleichen Datenpunkt schreiben
                                        setState(stateName, value, (err) => {
                                            if (err) {
                                                console.error('Fehler beim Schreiben des Zustands:', err);
                                                return;
                                            }
                                            console.log('Wert erfolgreich aktualisiert:', value);
                                        });
                                    } else {
                                        console.error('Zustand nicht gefunden:', stateName);
                                    }
                                });
                                
                                return 0;
                                

                                Wie bereits erwähnt, ich bin kein Programmierer und bei mir laufen die beiden Funktionen einwandfrei. Falls hier jemand einen Verbesserungsvorschlag hat, immer her damit.

                                Gruß, Johannes

                                Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                                Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                                Einfach ein tolles Hobby :-)

                                O 1 Reply Last reply
                                1
                                • JoJo58J JoJo58

                                  @ofbeqnpolkkl6mby5e13

                                  Moin, wie gestern versprochen, hier die beiden Scripte.

                                  Mit dieser Funktion ändere ich den Alias Datenpunkt:

                                  // Ziel-Datenpunkt ändern
                                  const targetAlias = alias_DP; // Der Alias-Datenpunkt, dessen Ziel geändert werden soll
                                  const newTarget = source_Alias_DP; // Der neue Ziel-Datenpunkt
                                  
                                  // Objekt-ID des Alias-Datenpunkts abrufen
                                  const aliasObj = getObject(targetAlias, (err, obj) => {
                                      if (err) {
                                          console.error('Fehler beim Abrufen des Alias-Datenpunkts:', err);
                                          return;
                                      }
                                  
                                      if (!obj) {
                                          console.error('Alias-Datenpunkt nicht gefunden:', targetAlias);
                                          return;
                                      }
                                  
                                      // Ziel-Datenpunkt des Alias ändern
                                      obj.common.alias.id = newTarget;
                                  
                                      // Aktualisierte Objekteigenschaften speichern
                                      setObject(targetAlias, obj, (err) => {
                                          if (err) {
                                              console.error('Fehler beim Speichern der aktualisierten Alias-Eigenschaften:', err);
                                              return;
                                          }
                                  
                                          console.log('Alias-Datenpunkt erfolgreich aktualisiert:', targetAlias);
                                      });
                                  });
                                  
                                  return 0;
                                  

                                  Und mit dieser Funktion lese ich den Wert von einem DP und schreibe ihn direkt wieder zurück, damit sich der Zeitstempel ändert und der geänderte Alias den richtigen Wert hat.

                                  const stateName = source_Alias_DP; // Name der State-Variable
                                  
                                  // Wert der State-Variable abrufen
                                  getState(stateName, (err, state) => {
                                      if (err) {
                                          console.error('Fehler beim Abrufen des Zustands:', err);
                                          return;
                                      }
                                  
                                      if (state) {
                                          const value = state.val;
                                          
                                          // Wert wieder in den gleichen Datenpunkt schreiben
                                          setState(stateName, value, (err) => {
                                              if (err) {
                                                  console.error('Fehler beim Schreiben des Zustands:', err);
                                                  return;
                                              }
                                              console.log('Wert erfolgreich aktualisiert:', value);
                                          });
                                      } else {
                                          console.error('Zustand nicht gefunden:', stateName);
                                      }
                                  });
                                  
                                  return 0;
                                  

                                  Wie bereits erwähnt, ich bin kein Programmierer und bei mir laufen die beiden Funktionen einwandfrei. Falls hier jemand einen Verbesserungsvorschlag hat, immer her damit.

                                  Gruß, Johannes

                                  O Offline
                                  O Offline
                                  oFbEQnpoLKKl6mbY5e13
                                  wrote on last edited by
                                  #16

                                  @jojo58

                                  Vielen Dank!

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  412

                                  Online

                                  32.4k

                                  Users

                                  81.4k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe