Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Werte in ein Register Schreiben

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.6k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    673

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Werte in ein Register Schreiben

Geplant Angeheftet Gesperrt Verschoben JavaScript
48 Beiträge 3 Kommentatoren 483 Aufrufe 1 Beobachtet
  • Ä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.
  • T Offline
    T Offline
    TOBO
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    ich habe folgenden Code. Leider tut sich nichts.
    Von einer SPS wird ein Merker gesetzt. Bei True soll 256 in ein Modbus Register geschrieben werden und der Merker selbst wieder zurück gesetzt. Bei Status false soll 512 in das Register geschreiben werden. Hier mein Code.

    const Wohnen_L01 = 'modbus.0.holdingRegisters.Ausgang-01'/*Output*/;
    const Merker_L01 = 's7.0.Markers.25.Wohnen_L01'/*Merker*/;
    
    
    // Überwachung des Merkers
    on({id: Merker_L01, change: "ne"}, (obj) => {
        // Holen des aktuellen Status (true/false)
        const status = obj.state.val;
    
        if (status === true) {
            setState(Wohnen_L01, 256);
            setState(Merker_L01, false);
            console.log("Merker ist TRUE: Schreibe 256");
        } else {
            setState(Wohnen_L01, 512);
            console.log("Merker ist FALSE: Schreibe 512");
        }
    });
    
    paul53P 1 Antwort Letzte Antwort
    0
    • T TOBO

      Hallo zusammen,
      ich habe folgenden Code. Leider tut sich nichts.
      Von einer SPS wird ein Merker gesetzt. Bei True soll 256 in ein Modbus Register geschrieben werden und der Merker selbst wieder zurück gesetzt. Bei Status false soll 512 in das Register geschreiben werden. Hier mein Code.

      const Wohnen_L01 = 'modbus.0.holdingRegisters.Ausgang-01'/*Output*/;
      const Merker_L01 = 's7.0.Markers.25.Wohnen_L01'/*Merker*/;
      
      
      // Überwachung des Merkers
      on({id: Merker_L01, change: "ne"}, (obj) => {
          // Holen des aktuellen Status (true/false)
          const status = obj.state.val;
      
          if (status === true) {
              setState(Wohnen_L01, 256);
              setState(Merker_L01, false);
              console.log("Merker ist TRUE: Schreibe 256");
          } else {
              setState(Wohnen_L01, 512);
              console.log("Merker ist FALSE: Schreibe 512");
          }
      });
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @TOBO [sagte]: Leider tut sich nichts.

      In Zeile 12 wird sofort wieder ausgeschaltet.

      Soll Merker umschalten? Dann muss status aus dem Wert des Modbus-DP gebildet werden.

          const status = getState(Wohnen_L01).val == 512;
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        TOBO
        schrieb am zuletzt editiert von TOBO
        #3

        Stimmt, in Zeile 12 wird der Merker wieder zurück gesetzt. Das ist ein Denkfehler. Allerdings wird er gar nicht zurück gesetzt. Ich setze ihn in der SPS und er sollte dann beim durchlaufen des Scripts wieder zurück gesetzt werden. Unabhängig davon das es so nicht funktioniert, wird der Merker aber nicht gelöscht. Ich setze ihn in der SPS und er bleibt immer auf true stehen. Kann ich das Status nicht ganz weglassen und die If Abfrage direkt auf den Merker_L01 setzen?

        paul53P 1 Antwort Letzte Antwort
        0
        • T TOBO

          Stimmt, in Zeile 12 wird der Merker wieder zurück gesetzt. Das ist ein Denkfehler. Allerdings wird er gar nicht zurück gesetzt. Ich setze ihn in der SPS und er sollte dann beim durchlaufen des Scripts wieder zurück gesetzt werden. Unabhängig davon das es so nicht funktioniert, wird der Merker aber nicht gelöscht. Ich setze ihn in der SPS und er bleibt immer auf true stehen. Kann ich das Status nicht ganz weglassen und die If Abfrage direkt auf den Merker_L01 setzen?

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

          @TOBO [sagte]: Ich setze ihn in der SPS und er bleibt immer auf true stehen.

          Zeile 12 ist wirkungslos?
          Der Merker aktualisiert nur den Zeitstempel, ist also eine Taste? In dem Fall versuche es mal so:

          const Wohnen_L01 = 'modbus.0.holdingRegisters.Ausgang-01'/*Output*/;
          const Merker_L01 = 's7.0.Markers.25.Wohnen_L01'/*Merker*/;
           
           
          // Überwachung des Merkers
          on({id: Merker_L01}, () => {
              // Holen des aktuellen Status (true/false)
              const status = getState(Wohnen_L01).val;
              setState(Wohnen_L01, status == 256 ? 512 : 256);
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            TOBO
            schrieb am zuletzt editiert von
            #5

            Mit dem Modbus Register kann man gar nichts machen, bzw. den Status abfragen ist sinnlos. Dies wird nach dem Schreiben von der Modbus Karte selbständig wieder zurück gesetzt auf 0. Lediglich das Schreiben der Werte 256 und 512 bewirkt das ein Relais auf dieser Karte gesetzt und wieder zurück gesetzt wird.

            Der Merker wird in der sps durch die dort prigrammierte Logig gesetzt, oder zurück gesetzt. Wird der Merker 1 soll 256 ins Register geschrieben werden und wird der Merker wieder 0, dann einmal 512 ins Register schreiben.

            paul53P 1 Antwort Letzte Antwort
            0
            • T TOBO

              Mit dem Modbus Register kann man gar nichts machen, bzw. den Status abfragen ist sinnlos. Dies wird nach dem Schreiben von der Modbus Karte selbständig wieder zurück gesetzt auf 0. Lediglich das Schreiben der Werte 256 und 512 bewirkt das ein Relais auf dieser Karte gesetzt und wieder zurück gesetzt wird.

              Der Merker wird in der sps durch die dort prigrammierte Logig gesetzt, oder zurück gesetzt. Wird der Merker 1 soll 256 ins Register geschrieben werden und wird der Merker wieder 0, dann einmal 512 ins Register schreiben.

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

              @TOBO [sagte]: Wird der Merker 1 soll 256 ins Register geschrieben werden und wird der Merker wieder 0, dann einmal 512 ins Register schreiben.

              // Überwachung des Merkers
              on(Merker_L01, (dp) => { // triggert auf Wertänderung
                  setState(Wohnen_L01, dp.state.val ? 256 : 512);
              });
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                TOBO
                schrieb am zuletzt editiert von
                #7

                @paul53 sagte:

                // Überwachung des Merkers
                on(Merker_L01, (dp) => { // triggert auf Wertänderung
                setState(Wohnen_L01, dp.state.val ? 256 : 512);
                });

                Ich habe Deinen Code 1:1 kopiert und es geht nicht.
                Kann es an der Zuweisung ganz oben liegen ?
                So sieht das jetzt bei mir aus. Schreibe ich die Werte von Hand über Objekte in das Register funktioniert es.

                Lampen Script.JPG

                paul53P 1 Antwort Letzte Antwort
                0
                • T TOBO

                  @paul53 sagte:

                  // Überwachung des Merkers
                  on(Merker_L01, (dp) => { // triggert auf Wertänderung
                  setState(Wohnen_L01, dp.state.val ? 256 : 512);
                  });

                  Ich habe Deinen Code 1:1 kopiert und es geht nicht.
                  Kann es an der Zuweisung ganz oben liegen ?
                  So sieht das jetzt bei mir aus. Schreibe ich die Werte von Hand über Objekte in das Register funktioniert es.

                  Lampen Script.JPG

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

                  @TOBO [sagte]:

                  Dann logge mal den Merker-Wert:

                  // Überwachung des Merkers
                  on(Merker_L01, (dp) => { // triggert auf Wertänderung
                      log('Merker: ' + dp.state.val);
                      setState(Wohnen_L01, dp.state.val ? 256 : 512);
                  });
                  

                  EDIT: Gibt es überhaupt eine Wertänderung des Merkers? Das kann man so überprüfen:

                  // Überwachung des Merkers
                  on({id: Merker_L01}, (dp) => { // triggert auf jede Aktualisierung
                      log('Merker: ' + dp.state.val);
                  });
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    TOBO
                    schrieb am zuletzt editiert von
                    #9

                    Da tut sich gar nichts im Log. Ich habe mehrmals den Merker in der SPS getoggelt und es gibt keinen Eintrag im Log. Kann es mit der Konfiguration des Adapter zu tun haben?
                    Es dauert auch sehr lange bis die Meldung "Instanz ist deaktiviert" verschwindet.

                    paul53P 2 Antworten Letzte Antwort
                    0
                    • T TOBO

                      Da tut sich gar nichts im Log. Ich habe mehrmals den Merker in der SPS getoggelt und es gibt keinen Eintrag im Log. Kann es mit der Konfiguration des Adapter zu tun haben?
                      Es dauert auch sehr lange bis die Meldung "Instanz ist deaktiviert" verschwindet.

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

                      @TOBO [sagte]: Kann es mit der Konfiguration des Adapter zu tun haben?

                      Mit dem S7-Adapter kenne ich mich nicht aus.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        TOBO
                        schrieb am zuletzt editiert von TOBO
                        #11

                        Der S7 Adapter funktioniert einwandfrei. Ich meine den JS Adapter. Ich kann ja alle Werte problemlos von Hand in den Objekten Schreiben, bzw. setzen.

                        Lampen Script.JPG

                        Schon der falsche Verweis verursacht keinen Fehler. Ich habe einfach mal die "1" gelöscht und das Script läuft trotzdem. Die Deklaration, bzw. der VErweis auf die Adressen ist nicht in Ordnung.

                        paul53P 2 Antworten Letzte Antwort
                        0
                        • T TOBO

                          Der S7 Adapter funktioniert einwandfrei. Ich meine den JS Adapter. Ich kann ja alle Werte problemlos von Hand in den Objekten Schreiben, bzw. setzen.

                          Lampen Script.JPG

                          Schon der falsche Verweis verursacht keinen Fehler. Ich habe einfach mal die "1" gelöscht und das Script läuft trotzdem. Die Deklaration, bzw. der VErweis auf die Adressen ist nicht in Ordnung.

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

                          @TOBO [sagte]: Ich meine den JS Adapter.

                          Dann zeige mal die Konfiguration der Javascript-Instanz.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                          1 Antwort Letzte Antwort
                          0
                          • T Offline
                            T Offline
                            TOBO
                            schrieb am zuletzt editiert von TOBO
                            #13

                            Ich habe da gar nichts geändert.

                            JS-Adapter.JPG

                            JS-Instanz.JPG

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • T TOBO

                              Ich habe da gar nichts geändert.

                              JS-Adapter.JPG

                              JS-Instanz.JPG

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

                              @TOBO [sagte]: Ich habe da gar nichts geändert.

                              Mit den Daten sollte sich der JS-Adapter normal verhalten. Es sieht nicht nach einer Überlastung aus.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                              T 1 Antwort Letzte Antwort
                              0
                              • T Offline
                                T Offline
                                TOBO
                                schrieb am zuletzt editiert von
                                #15

                                Ich werde die Instanz löschen und neu installieren. Braucht man noch andere Dinge um den JS Adapter zum laufen zu bringen ?

                                1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @TOBO [sagte]: Ich habe da gar nichts geändert.

                                  Mit den Daten sollte sich der JS-Adapter normal verhalten. Es sieht nicht nach einer Überlastung aus.

                                  T Offline
                                  T Offline
                                  TOBO
                                  schrieb am zuletzt editiert von
                                  #16

                                  @paul53 sagte:

                                  Mit den Daten sollte sich der JS-Adapter normal verhalten. Es sieht nicht nach einer Überlastung aus.

                                  Es gibt auch nur diese eine Script. Es ist eine komplette Neu-Installation nach einem SD Card Crash. Habe auf RP4B und 120GB SSD aufgerüstet.

                                  HomoranH 1 Antwort Letzte Antwort
                                  0
                                  • T TOBO

                                    @paul53 sagte:

                                    Mit den Daten sollte sich der JS-Adapter normal verhalten. Es sieht nicht nach einer Überlastung aus.

                                    Es gibt auch nur diese eine Script. Es ist eine komplette Neu-Installation nach einem SD Card Crash. Habe auf RP4B und 120GB SSD aufgerüstet.

                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von
                                    #17

                                    @TOBO zeig doch mal die Objektdaten von dem Merker-Datenpunkt im Adapter

                                    kein Support per PN! - Fragen im Forum stellen -
                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    1 Antwort Letzte Antwort
                                    0
                                    • T TOBO

                                      Der S7 Adapter funktioniert einwandfrei. Ich meine den JS Adapter. Ich kann ja alle Werte problemlos von Hand in den Objekten Schreiben, bzw. setzen.

                                      Lampen Script.JPG

                                      Schon der falsche Verweis verursacht keinen Fehler. Ich habe einfach mal die "1" gelöscht und das Script läuft trotzdem. Die Deklaration, bzw. der VErweis auf die Adressen ist nicht in Ordnung.

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

                                      @TOBO [sagte]: Schon der falsche Verweis verursacht keinen Fehler.

                                      Eine falsche (nicht existierende) ID im Trigger erzeugt keinen Fehler; es wird halt nicht getriggert.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                                      1 Antwort Letzte Antwort
                                      0
                                      • T TOBO

                                        Da tut sich gar nichts im Log. Ich habe mehrmals den Merker in der SPS getoggelt und es gibt keinen Eintrag im Log. Kann es mit der Konfiguration des Adapter zu tun haben?
                                        Es dauert auch sehr lange bis die Meldung "Instanz ist deaktiviert" verschwindet.

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

                                        @TOBO sagte:

                                        Ich habe mehrmals den Merker in der SPS getoggelt und es gibt keinen Eintrag im Log.

                                        Um zu testen, ob die richtige Merker-ID gewählt wurde, kann man auf alle Merker triggern:

                                        const ids = $('s7.0.Markers.*').toArray();
                                        // Überwachung aller Merker
                                        on({id: ids}, (dp) => { // triggert auf jede Aktualisierung
                                            log(dp.id + ': ' + dp.state.val);
                                        });
                                        
                                        

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                                        T 1 Antwort Letzte Antwort
                                        1
                                        • T Offline
                                          T Offline
                                          TOBO
                                          schrieb am zuletzt editiert von
                                          #20

                                          Ich habe jetzt den Adapter gelöscht und neu installiert. Dann selbst zwei Variablen im System definiert und dann dieses Blockly Teil erstellt.

                                          Blockly.PNG

                                          variable.PNG

                                          und es passiert absolut nichts.

                                          HomoranH paul53P 2 Antworten Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          393

                                          Online

                                          32.9k

                                          Benutzer

                                          83.0k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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