Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Datenpunkte zusammenführen switch + state

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.9k

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

Datenpunkte zusammenführen switch + state

Geplant Angeheftet Gesperrt Verschoben Gelöst ioBroker Allgemein
s7.0datenpunkteobjekte
55 Beiträge 3 Kommentatoren 4.0k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Elektroniker86E Offline
    Elektroniker86E Offline
    Elektroniker86
    schrieb am zuletzt editiert von Elektroniker86
    #22

    @Elektroniker86 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                // IDs anpassen                                                                                                        const idButton = 's7.0.abc.NI19';                                                                                                        const idActor = 's7.0.xyz.Q19';                                                                                                                                                                                                                 const js = 'system.adapter.javascript.' + instance;                                                                                                        const common = getObject(idButton).common;                                                                                                        const idVis = 'Logo.s70' + common.name.replace(' ', '_');                                                                                                                                                                                                                 common.read = true;                                                                                                        createState(idVis, getState(idActor).val, common);                                                                                                                                                                                                                 on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                            setState(idButton, true);                                                                                                        });                                                                                                                                                                                                                 on(idActor, function(dp) {                                                                                                            setState(idVis, dp.state.val, true);                                                                                                        });                                                                                                                                 
    

    Alles klar ja den Punkt hatte ich vergessen.
    So, ich habe eben das Script getestet soweit alles in Ordnung.
    Allerdings kann ich die Aktoren nicht über den neuen Datenpunkt schalten.
    Wenn sich der Status vom Aktor ändert dann wechselt der neue Datenpunkt entsprechend mit, passt ja.
    Aber ich muss von dem neuen Datenpunkt auch den "Aktor" /Button ansteuern können.

    paul53P 1 Antwort Letzte Antwort
    0
    • Elektroniker86E Offline
      Elektroniker86E Offline
      Elektroniker86
      schrieb am zuletzt editiert von
      #23

      So habe ich das jetzt eingetragen, sollte doch so passen?

      Unbenannt.png

      1 Antwort Letzte Antwort
      0
      • Elektroniker86E Elektroniker86

        @Elektroniker86 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                    // IDs anpassen                                                                                                        const idButton = 's7.0.abc.NI19';                                                                                                        const idActor = 's7.0.xyz.Q19';                                                                                                                                                                                                                 const js = 'system.adapter.javascript.' + instance;                                                                                                        const common = getObject(idButton).common;                                                                                                        const idVis = 'Logo.s70' + common.name.replace(' ', '_');                                                                                                                                                                                                                 common.read = true;                                                                                                        createState(idVis, getState(idActor).val, common);                                                                                                                                                                                                                 on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                            setState(idButton, true);                                                                                                        });                                                                                                                                                                                                                 on(idActor, function(dp) {                                                                                                            setState(idVis, dp.state.val, true);                                                                                                        });                                                                                                                                 
        

        Alles klar ja den Punkt hatte ich vergessen.
        So, ich habe eben das Script getestet soweit alles in Ordnung.
        Allerdings kann ich die Aktoren nicht über den neuen Datenpunkt schalten.
        Wenn sich der Status vom Aktor ändert dann wechselt der neue Datenpunkt entsprechend mit, passt ja.
        Aber ich muss von dem neuen Datenpunkt auch den "Aktor" /Button ansteuern können.

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #24

        @Elektroniker86 sagte:

        kann ich die Aktoren nicht über den neuen Datenpunkt schalten.

        Das soll in Zeilen 13 bis 15 passieren: Tastendruck, wenn sich der Wert ändert, außer die Änderung erfolgt aus dem Skript. Füge mal vor Zeile 14 ein Log ein:

        on({id: idVis, change: 'ne', fromNe: js}, function() {
            log('Tastendruck');
            setState(idButton, true);
        });
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        Elektroniker86E 2 Antworten Letzte Antwort
        0
        • paul53P paul53

          @Elektroniker86 sagte:

          kann ich die Aktoren nicht über den neuen Datenpunkt schalten.

          Das soll in Zeilen 13 bis 15 passieren: Tastendruck, wenn sich der Wert ändert, außer die Änderung erfolgt aus dem Skript. Füge mal vor Zeile 14 ein Log ein:

          on({id: idVis, change: 'ne', fromNe: js}, function() {
              log('Tastendruck');
              setState(idButton, true);
          });
          
          Elektroniker86E Offline
          Elektroniker86E Offline
          Elektroniker86
          schrieb am zuletzt editiert von
          #25

          @paul53 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                      on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                                                                                                log('Tastendruck');                                                                                                                                                                                setState(idButton, true);                                                                                                                                                                            });                                            
          
          // IDs anpassen
          const idButton = 's7.0.DBs.DB1.NI02';
          const idActor = 's7.0.DBs.DB1.Q02';
           
          const js = 'system.adapter.javascript.' + instance;
          const common = getObject(idButton).common;
          const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
           
          common.read = true;
          createState(idVis, getState(idActor).val, common);
           
          on({id: idVis, change: 'ne', fromNe: js}, function() {
              setState(idButton, true);on({id: idVis, change: 'ne', fromNe: js}, function() {
              log('Tastendruck');
              setState(idButton, true);
          });
          
          });
           
          on(idActor, function(dp) {
              setState(idVis, dp.state.val, true);
          });
           
          
          

          So?

          paul53P 1 Antwort Letzte Antwort
          0
          • Elektroniker86E Elektroniker86

            @paul53 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                        on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                                                                                                log('Tastendruck');                                                                                                                                                                                setState(idButton, true);                                                                                                                                                                            });                                            
            
            // IDs anpassen
            const idButton = 's7.0.DBs.DB1.NI02';
            const idActor = 's7.0.DBs.DB1.Q02';
             
            const js = 'system.adapter.javascript.' + instance;
            const common = getObject(idButton).common;
            const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
             
            common.read = true;
            createState(idVis, getState(idActor).val, common);
             
            on({id: idVis, change: 'ne', fromNe: js}, function() {
                setState(idButton, true);on({id: idVis, change: 'ne', fromNe: js}, function() {
                log('Tastendruck');
                setState(idButton, true);
            });
            
            });
             
            on(idActor, function(dp) {
                setState(idVis, dp.state.val, true);
            });
             
            
            

            So?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #26

            @Elektroniker86 sagte:

            So?

            Nein, so:

            // IDs anpassen
            const idButton = 's7.0.DBs.DB1.NI02';
            const idActor = 's7.0.DBs.DB1.Q02';
             
            const js = 'system.adapter.javascript.' + instance;
            const common = getObject(idButton).common;
            const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
             
            common.read = true;
            createState(idVis, getState(idActor).val, common);
             
            on({id: idVis, change: 'ne', fromNe: js}, function() {
                log('Tastendruck');
                setState(idButton, true);
            });
             
            on(idActor, function(dp) {
                setState(idVis, dp.state.val, true);
            });
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • Elektroniker86E Offline
              Elektroniker86E Offline
              Elektroniker86
              schrieb am zuletzt editiert von
              #27

              Javascript spuckt das im Log aus::

              13:48:51.637 info javascript.0 Stop script script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
              13:48:51.657 info javascript.0 Start javascript script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
              13:48:51.658 info javascript.0 script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten: registered 2 subscriptions and 0 schedules
              13:48:58.646 info javascript.0 Stop script script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
              13:49:01.052 info javascript.0 Start javascript script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
              13:49:01.053 info javascript.0 script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten: registered 2 subscriptions and 0 schedules

              paul53P 1 Antwort Letzte Antwort
              0
              • Elektroniker86E Elektroniker86

                Javascript spuckt das im Log aus::

                13:48:51.637 info javascript.0 Stop script script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
                13:48:51.657 info javascript.0 Start javascript script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
                13:48:51.658 info javascript.0 script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten: registered 2 subscriptions and 0 schedules
                13:48:58.646 info javascript.0 Stop script script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
                13:49:01.052 info javascript.0 Start javascript script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
                13:49:01.053 info javascript.0 script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten: registered 2 subscriptions and 0 schedules

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #28

                @Elektroniker86 sagte:

                Javascript spuckt das im Log aus:

                Hast Du den Wert des Datenpunktes geändert (z.B. in Vis). Nur dann erscheint "Tastendruck" im Log.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • Elektroniker86E Offline
                  Elektroniker86E Offline
                  Elektroniker86
                  schrieb am zuletzt editiert von Elektroniker86
                  #29

                  Im Vis habe ich noch überhaupt nichts geändert. Ich habe jetzt nur erst mal zum test ein Script angelegt und das ganze teste ich unter objekte .... Javascript.LOGO.s7-0.

                  Wenn es in Objekte Funktioniert, dann muss der Rest auch funktionieren oder nicht?

                  Wenn ich am neuen Datenpunkt z.B auf true klicke dann wird die Button ID nicht angesteuert.

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • Elektroniker86E Elektroniker86

                    @paul53

                    Ja genau, es reicht den Taster Datenpunkt einmal auf true zu setzen.
                    Danach springt er nach einer Sekunde automatisch wieder auf false.

                    Cool, vielen Dank für deine Mühe. Werde das Script morgen testen.
                    Wo werden dann die Datenpunkte angelegt ?
                    Hätte da schon gerne ein Ordner unter Javascript.0/LOGO/s7.0........s7.1.........s7.2 usw.

                    Damit das soweit geordnet ist wie beim s7 Adapter unter Objekte.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #30

                    @Elektroniker86 sagte:

                    es reicht den Taster Datenpunkt einmal auf true zu setzen.
                    Danach springt er nach einer Sekunde automatisch wieder auf false.

                    Das passierte wohl im Szene-Adapter ? Dann muss dieses Verhalten auch im Skript erzeugt werden.

                    // IDs anpassen
                    const idButton = 's7.0.DBs.DB1.NI02';
                    const idActor = 's7.0.DBs.DB1.Q02';
                     
                    const js = 'system.adapter.javascript.' + instance;
                    const common = getObject(idButton).common;
                    const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
                     
                    common.read = true;
                    createState(idVis, getState(idActor).val, common);
                     
                    on({id: idVis, change: 'ne', fromNe: js}, function() {
                        log('Tastendruck');
                        setState(idButton, true);
                        setTimeout(function() {
                            setState(idButton, false);
                        }, 500);
                    });
                     
                    on(idActor, function(dp) {
                        setState(idVis, dp.state.val, true);
                    });
                    
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • Elektroniker86E Elektroniker86

                      Im Vis habe ich noch überhaupt nichts geändert. Ich habe jetzt nur erst mal zum test ein Script angelegt und das ganze teste ich unter objekte .... Javascript.LOGO.s7-0.

                      Wenn es in Objekte Funktioniert, dann muss der Rest auch funktionieren oder nicht?

                      Wenn ich am neuen Datenpunkt z.B auf true klicke dann wird die Button ID nicht angesteuert.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #31

                      @Elektroniker86 sagte:

                      Wenn es in Objekte Funktioniert, dann muss der Rest auch funktionieren oder nicht?

                      Ja.

                      @Elektroniker86 sagte in Datenpunkte zusammenführen switch + state:

                      Wenn ich am neuen Datenpunkt z.B auf true klicke dann wird die Button ID nicht angesteuert.

                      Wie stellst Du es fest ? Der Wert des Tasters ändert sich nicht, sondern nur der Zeitstempel.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • Elektroniker86E Offline
                        Elektroniker86E Offline
                        Elektroniker86
                        schrieb am zuletzt editiert von
                        #32

                        Doch der wert ändert sich kurz auf true und geht wieder zurück.
                        Habe als switch deklariert ...... ahh ist das der fehler?

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • Elektroniker86E Elektroniker86

                          Doch der wert ändert sich kurz auf true und geht wieder zurück.
                          Habe als switch deklariert ...... ahh ist das der fehler?

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #33

                          @Elektroniker86 sagte:

                          Habe als switch deklariert ...... ahh ist das der fehler?

                          Nein, die Rolle hat für Javascript keine Bedeutung.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • Elektroniker86E Offline
                            Elektroniker86E Offline
                            Elektroniker86
                            schrieb am zuletzt editiert von
                            #34

                            ich habe ein zweites Browserfenster auf gemacht und geschaut ob der Wert sich kurz ändert.
                            Wenn ich die Button ID vom s7 direkt ansteuere dann wechselt der Datenpunkt entsprechend dem Aktorzustand. Das funktioniert soweit.

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • Elektroniker86E Elektroniker86

                              ich habe ein zweites Browserfenster auf gemacht und geschaut ob der Wert sich kurz ändert.
                              Wenn ich die Button ID vom s7 direkt ansteuere dann wechselt der Datenpunkt entsprechend dem Aktorzustand. Das funktioniert soweit.

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #35

                              @Elektroniker86 sagte:

                              ich habe ein zweites Browserfenster auf gemacht und geschaut ob der Wert sich kurz ändert.

                              Wenn Du den Wert des Datenpunktes javascript.0.s7... änderst, muss eine Tastenbetätigung erfolgen (Logausgabe im anderen Fenster).

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Antwort Letzte Antwort
                              0
                              • Elektroniker86E Offline
                                Elektroniker86E Offline
                                Elektroniker86
                                schrieb am zuletzt editiert von Elektroniker86
                                #36

                                Mhh,

                                im Log kommt nur das :

                                javascript.0 2019-10-24 14:20:44.995 info script.js.common.Speedtest.Internet_Speedtest: Speedtest Daten aktualisiert
                                javascript.0 2019-10-24 14:18:22.025 info script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten: registered 2 subscriptions and 0 schedules
                                javascript.0 2019-10-24 14:18:22.020 info Start javascript script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
                                javascript.0 2019-10-24 14:18:20.632 info Stop script script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten

                                Beim wechseln vom #Datenpunkt passiert nichts im Log

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • Elektroniker86E Offline
                                  Elektroniker86E Offline
                                  Elektroniker86
                                  schrieb am zuletzt editiert von
                                  #37

                                  Anmerkung 2019-10-24 142404.png

                                  Anmerkung 2019-10-24 142505.png

                                  1 Antwort Letzte Antwort
                                  0
                                  • Elektroniker86E Elektroniker86

                                    Mhh,

                                    im Log kommt nur das :

                                    javascript.0 2019-10-24 14:20:44.995 info script.js.common.Speedtest.Internet_Speedtest: Speedtest Daten aktualisiert
                                    javascript.0 2019-10-24 14:18:22.025 info script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten: registered 2 subscriptions and 0 schedules
                                    javascript.0 2019-10-24 14:18:22.020 info Start javascript script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten
                                    javascript.0 2019-10-24 14:18:20.632 info Stop script script.js.common.LOGO.s7-0.Deckenleuchte_Zimmer_KG_hinten

                                    Beim wechseln vom #Datenpunkt passiert nichts im Log

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von paul53
                                    #38

                                    @Elektroniker86 sagte:

                                    im Log kommt nur das :

                                    Dann funktioniert der Trigger nicht.
                                    Ändere mal den Trigger (Zeile 12) in

                                    on({id: 'javascript.0.' + idVis, change: 'ne', fromNe: js}, function() {
                                    

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Antwort Letzte Antwort
                                    1
                                    • Elektroniker86E Offline
                                      Elektroniker86E Offline
                                      Elektroniker86
                                      schrieb am zuletzt editiert von
                                      #39

                                      @paul53 sagte in Datenpunkte zusammenführen switch + state:

                                      on({id: 'javascript.0.' + idVis, change: 'ne', fromNe: js}, function() {

                                      MEGA!!!

                                      Jetzt funktioniert es !!! 😊

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • Elektroniker86E Offline
                                        Elektroniker86E Offline
                                        Elektroniker86
                                        schrieb am zuletzt editiert von
                                        #40

                                        Genau so soll es funktionieren.
                                        Vielen lieben Dank für den tollen Support !!!
                                        Der Rest sollte jetzt kein Problem mehr sein.
                                        Jetzt kann ich alles ändern und den Szenenadapter entfernen. Klasse!

                                        1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @Elektroniker86 sagte:

                                          kann ich die Aktoren nicht über den neuen Datenpunkt schalten.

                                          Das soll in Zeilen 13 bis 15 passieren: Tastendruck, wenn sich der Wert ändert, außer die Änderung erfolgt aus dem Skript. Füge mal vor Zeile 14 ein Log ein:

                                          on({id: idVis, change: 'ne', fromNe: js}, function() {
                                              log('Tastendruck');
                                              setState(idButton, true);
                                          });
                                          
                                          Elektroniker86E Offline
                                          Elektroniker86E Offline
                                          Elektroniker86
                                          schrieb am zuletzt editiert von
                                          #41

                                          @paul53

                                          Was ist mit dem Log ?
                                          Kann man diese Zeile wieder entfernen?

                                          paul53P 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          372

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe