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. ioBroker Allgemein
  4. Modbus Datenpunkte in Visu

NEWS

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

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

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

Modbus Datenpunkte in Visu

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
35 Beiträge 3 Kommentatoren 2.6k Aufrufe 2 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.
  • paul53P paul53

    @ghifunk said: hier die Objekteigenschaften der 3 Zeilen:

    So funktioniert es nicht. Es muss ein Alias erzeugt werden, der 2 Modbus-Datenpunkte verknüpft: 1 Kommando, 1 Status.
    Welches ist der Status? holdingRegisters oder inputRegisters?

    Erstelle den Alias mit folgendem Script (einmal kurz starten), wenn Kommando- und Status-ID richtig zugeordnet sind:

    // Original-Datenpunkt
    const idOrigin = 'modbus.0.holdingRegisters.12339_Licht_Waschküche'; 
    // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
    // Bei Nicht-Verwendung Leerstring '' zuweisen
    const idRead = 'modbus.0.inputRegisters.12340_Licht_Waschküche';
     
    // Alias-Datenpunkt
    const idAlias = 'Keller.Licht.Waschkueche';
    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
    
    // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
    nameAlias = 'Licht Waschküche';
    desc = 'per Script erstellt';
    // typeAlias = 'boolean'; // oder 'number'
    // read = "val > -20 ? val : -20"; // Erkennung "Aus" --> false erfolgt automatisch  
    write = "val ? true : true";
    role = 'switch.light';
    // min = 0; // nur Zahlen
    // max = 100; // nur Zahlen
    // unit = '%'; // nur für Zahlen
    // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
    custom = []; // verhindert doppelte Ausführung von history, ...
    // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
    // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
    
    // Ab hier nichts ändern !!
    function createAlias(idDst, idSrc, idRd) {
       if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
       else {
          var obj = {};
          obj.type = 'state';
          obj.common = getObject(idSrc).common;
          obj.common.alias = {};
          if(idRd) {
              obj.common.alias.id = {};
              obj.common.alias.id.read = idRd;
              obj.common.alias.id.write = idSrc;
              obj.common.read = true;
          } else obj.common.alias.id = idSrc;
          if(typeAlias) obj.common.type = typeAlias;
          if(obj.common.read !== false && read) obj.common.alias.read = read;
          if(obj.common.write !== false && write) obj.common.alias.write = write;
          if(nameAlias) obj.common.name = nameAlias;
          if(role) obj.common.role = role;
          if(desc) obj.common.desc = desc;
          if(obj.common.type == 'number') {
             if(min !== undefined) obj.common.min = min;
             if(max !== undefined) obj.common.max = max;
             if(unit) obj.common.unit = unit;
          } else {
             if(obj.common.min !== undefined) delete obj.common.min;
             if(obj.common.max !== undefined) delete obj.common.max;
             if(obj.common.unit) delete obj.common.unit;
          }
          if(states) obj.common.states = states;
          if(custom && obj.common.custom) obj.common.custom = custom;
          obj.native = {};
          setObject(idDst, obj, function() {
             if(idRd) setState(idRd, getState(idRd).val, true);
             else setState(idSrc, getState(idSrc).val, true); 
          });
          if(raum && existsObject('enum.rooms.' + raum)) {
             let obj = getObject('enum.rooms.' + raum)
             obj.common.members.push(idDst);
             setObject('enum.rooms.' + raum, obj);
          }
          if(gewerk && existsObject('enum.functions.' + gewerk)) {
             let obj = getObject('enum.functions.' + gewerk)
             obj.common.members.push(idDst);
             setObject('enum.functions.' + gewerk, obj);
          }
       } 
    }
     
    createAlias('alias.0.' + idAlias, idOrigin, idRead);
    

    EDIT: "write" für Toggle-Button ergänzt.

    G Offline
    G Offline
    ghifunk
    schrieb am zuletzt editiert von
    #8

    @paul53 Der Status ist das Input Register.

    paul53P 1 Antwort Letzte Antwort
    0
    • G ghifunk

      @paul53 Der Status ist das Input Register.

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

      @ghifunk said: Der Status ist das Input Register.

      Dann kannst Du das Script unverändert zur Erstellung des Alias verwenden.

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

      G 1 Antwort Letzte Antwort
      0
      • G ghifunk

        Re: Wago 750-841 in ioBroker einbinden

        TheBamT Offline
        TheBamT Offline
        TheBam
        schrieb am zuletzt editiert von
        #10

        @ghifunk du kannst auch einfach spezielle Widgets nutzen. Von inventwo gibt es welche die haben senden und rückmelde direkt getrennt über 2 objekte

        G 1 Antwort Letzte Antwort
        0
        • TheBamT TheBam

          @ghifunk du kannst auch einfach spezielle Widgets nutzen. Von inventwo gibt es welche die haben senden und rückmelde direkt getrennt über 2 objekte

          G Offline
          G Offline
          ghifunk
          schrieb am zuletzt editiert von
          #11

          @thabam Danke,
          das werde ich auch nochmal testen

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @ghifunk said: Der Status ist das Input Register.

            Dann kannst Du das Script unverändert zur Erstellung des Alias verwenden.

            G Offline
            G Offline
            ghifunk
            schrieb am zuletzt editiert von
            #12

            @paul53 guten Morgen,
            habe das Script gestartet und nun den Datenpunkt unter Alias vorhanden. die Statusanzeige funktioniert auch. Bei dem Befehl ist es so, daß ich in der Wago einen Stromstoßschalter verwende, der nur einen kurzen Tastimpuls benötigt. Hier bleibt der Eingang beim schalten dann immer stehen - müßte also noch eine Tastfunktion rein.
            Aber ich muß ehrlich sagen, in die Script-Sachen muß ich mich erst mal einarbeiten. Ich habe mom. da noch keinen Plan dazu oder ich bin schon zu alt dafür... vieleicht kannst du mir ja nochmal helfen.
            Wenn das dann funktioniert muß ich das Skript mit den ensprechenden Änderungen (Name und Adresse) für jeden Datenpunkt einmal aufrufen - ist das korrekt?
            Gruß

            paul53P 1 Antwort Letzte Antwort
            0
            • G ghifunk

              @paul53 guten Morgen,
              habe das Script gestartet und nun den Datenpunkt unter Alias vorhanden. die Statusanzeige funktioniert auch. Bei dem Befehl ist es so, daß ich in der Wago einen Stromstoßschalter verwende, der nur einen kurzen Tastimpuls benötigt. Hier bleibt der Eingang beim schalten dann immer stehen - müßte also noch eine Tastfunktion rein.
              Aber ich muß ehrlich sagen, in die Script-Sachen muß ich mich erst mal einarbeiten. Ich habe mom. da noch keinen Plan dazu oder ich bin schon zu alt dafür... vieleicht kannst du mir ja nochmal helfen.
              Wenn das dann funktioniert muß ich das Skript mit den ensprechenden Änderungen (Name und Adresse) für jeden Datenpunkt einmal aufrufen - ist das korrekt?
              Gruß

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

              @ghifunk said: Bei dem Befehl ist es so, daß ich in der Wago einen Stromstoßschalter verwende, der nur einen kurzen Tastimpuls benötigt.

              Ist der Befehl ein Button, der toggled ? Dann ergänze in der RAW-Ansicht der Objekteigenschaft den Eintrag unter common.alias um ",write":

                  "alias": {
                    "id": {
                      "read": "modbus.0.inputRegisters.12340_Licht_Waschküche",
                      "write": "modbus.0.holdingRegisters.12339_Licht_Waschküche"
                    },
                    "write": "val ? true : true"
                  }
              

              @ghifunk said in Modbus Datenpunkte in Visu:

              muß ich das Skript mit den ensprechenden Änderungen (Name und Adresse) für jeden Datenpunkt einmal aufrufen - ist das korrekt?

              Ja, für jeden neuen Alias-Datenpunkt.

              "write" für den Button habe ich oben ergänzt.

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

              1 Antwort Letzte Antwort
              0
              • G Offline
                G Offline
                ghifunk
                schrieb am zuletzt editiert von
                #14

                @paul53 Hallo,
                nach Eingabe der Änderung schaltet der DP nicht mehr. Status funktioniert!

                15-01-_2021_13-03-54.jpg

                paul53P 1 Antwort Letzte Antwort
                0
                • G ghifunk

                  @paul53 Hallo,
                  nach Eingabe der Änderung schaltet der DP nicht mehr. Status funktioniert!

                  15-01-_2021_13-03-54.jpg

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

                  @ghifunk said: nach Eingabe der Änderung schaltet der DP nicht mehr.

                  Wie muss der Datenpunkt im Tab "Objekte" verändert werden, damit geschaltet wird ? Reicht dort nicht "true" zu bestätigen ?

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

                  G 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @ghifunk said: nach Eingabe der Änderung schaltet der DP nicht mehr.

                    Wie muss der Datenpunkt im Tab "Objekte" verändert werden, damit geschaltet wird ? Reicht dort nicht "true" zu bestätigen ?

                    G Offline
                    G Offline
                    ghifunk
                    schrieb am zuletzt editiert von
                    #16

                    @paul53 nein, ich mußte auch im vorherigem Skript immer erst ein "0" eingeben um den Impuls wieder zurück zu stellen. Dann hat er ein weiteres "1" angenommen und damit den Ausgang geschaltet. Also bei jeder Betätigung muß ein kurzer "true" Impuls kommen dann wieder auf false.

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • G ghifunk

                      @paul53 nein, ich mußte auch im vorherigem Skript immer erst ein "0" eingeben um den Impuls wieder zurück zu stellen. Dann hat er ein weiteres "1" angenommen und damit den Ausgang geschaltet. Also bei jeder Betätigung muß ein kurzer "true" Impuls kommen dann wieder auf false.

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

                      @ghifunk said:

                      bei jeder Betätigung muß ein kurzer "true" Impuls kommen dann wieder auf false.

                      Dann weiß ich nicht, wie man es ohne Script lösen kann.

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

                      G 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @ghifunk said:

                        bei jeder Betätigung muß ein kurzer "true" Impuls kommen dann wieder auf false.

                        Dann weiß ich nicht, wie man es ohne Script lösen kann.

                        G Offline
                        G Offline
                        ghifunk
                        schrieb am zuletzt editiert von
                        #18

                        @paul53 wie meinst du "ohne skript"?

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • G ghifunk

                          @paul53 wie meinst du "ohne skript"?

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

                          @ghifunk said: wie meinst du "ohne skript"?

                          Man benötigt ein zusätzliches (ständig aktives) Script, um die Datenpunkte auf false zurück zu stellen.

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

                          G 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @ghifunk said: wie meinst du "ohne skript"?

                            Man benötigt ein zusätzliches (ständig aktives) Script, um die Datenpunkte auf false zurück zu stellen.

                            G Offline
                            G Offline
                            ghifunk
                            schrieb am zuletzt editiert von
                            #20

                            @paul53 ist es nicht möglich nur für eine kurze Zeit zB. 0,5s einen true Impuls auf die Modbus Adresse zu geben?

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • G ghifunk

                              @paul53 ist es nicht möglich nur für eine kurze Zeit zB. 0,5s einen true Impuls auf die Modbus Adresse zu geben?

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

                              @ghifunk said:

                              ist es nicht möglich nur für eine kurze Zeit zB. 0,5s einen true Impuls auf die Modbus Adresse zu geben?

                              Ja, aber ich kenne keine Lösung, wie man es ausschließlich mit Alias macht.

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

                              G 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @ghifunk said:

                                ist es nicht möglich nur für eine kurze Zeit zB. 0,5s einen true Impuls auf die Modbus Adresse zu geben?

                                Ja, aber ich kenne keine Lösung, wie man es ausschließlich mit Alias macht.

                                G Offline
                                G Offline
                                ghifunk
                                schrieb am zuletzt editiert von
                                #22

                                @paul53 dann versuche ich jetzt mal, den gesendeten true Wert über die SPS einfach wieder auf false zu schalten -
                                dann wieder mit der Variante des 1. Script!

                                paul53P TheBamT 2 Antworten Letzte Antwort
                                0
                                • G ghifunk

                                  @paul53 dann versuche ich jetzt mal, den gesendeten true Wert über die SPS einfach wieder auf false zu schalten -
                                  dann wieder mit der Variante des 1. Script!

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

                                  @ghifunk said: true Wert über die SPS einfach wieder auf false zu schalten

                                  Wenn alle "holdingRegisters" Button (Stromstoßschalter) sind, kann man es mit einem einfachen Script für alle DP lösen:

                                  on({id: /^modbus\.0\.holdingRegisters\..+/, val: true}, function(dp) {
                                      setStateDelayed(dp.id, false, 200);
                                  });
                                  

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

                                  G 1 Antwort Letzte Antwort
                                  0
                                  • G ghifunk

                                    @paul53 dann versuche ich jetzt mal, den gesendeten true Wert über die SPS einfach wieder auf false zu schalten -
                                    dann wieder mit der Variante des 1. Script!

                                    TheBamT Offline
                                    TheBamT Offline
                                    TheBam
                                    schrieb am zuletzt editiert von
                                    #24

                                    @ghifunk es gibt auch taster Widgets damit geht es ohne Script.

                                    Ansonsten ein kurzes blockly wenn Trigger =true dann setzen auf false mit Verzögerung 1sec fertig ist

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @ghifunk said: true Wert über die SPS einfach wieder auf false zu schalten

                                      Wenn alle "holdingRegisters" Button (Stromstoßschalter) sind, kann man es mit einem einfachen Script für alle DP lösen:

                                      on({id: /^modbus\.0\.holdingRegisters\..+/, val: true}, function(dp) {
                                          setStateDelayed(dp.id, false, 200);
                                      });
                                      
                                      G Offline
                                      G Offline
                                      ghifunk
                                      schrieb am zuletzt editiert von
                                      #25

                                      @paul53 hallo, Vielen Dank erstmal für Deine Mühe mit meinem Problem aber ich werd noch verrückt --

                                      • mit der Signalabschaltung in der SPS das hat funktioniert! Ich habe in der Objektseite unter Rolle jetzt mal
                                        einen Button verwendet und kann von hier aus nun meine Datenpunkte korrekt schalten.
                                        Wenn ich nun in dei Visu gehe, sieht das schon wieder anders aus. Einschalten einer Leuchte funktioniert und das Ausschalten reagiert jetzt erst beim eigentlichen nächsten einschalten wenn wieder ein True Impuls kommt...
                                        Es ist zum verzweifeln - ich bin schon ein paar Tage daran und werde nicht fertig!
                                        Gibt es denn keinen Benutzer, der ebenfalls eine WAGO SPS über iobroker bedient und dort auch zum Schalten von Leuchten Stromstoß- Funktionsblöcke benutzt?

                                      @ThaBam
                                      Ich habe auch mal in verschiedene Taster Widgets reingeschaut, dort aber vieleicht auch auf Grund der Vielfalt nicht das richtige ausfindig machen können. Ich bin für jeden Rat, Hilfe und Hinweis dankbar,
                                      Gruß
                                      Gerhard

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • G ghifunk

                                        @paul53 hallo, Vielen Dank erstmal für Deine Mühe mit meinem Problem aber ich werd noch verrückt --

                                        • mit der Signalabschaltung in der SPS das hat funktioniert! Ich habe in der Objektseite unter Rolle jetzt mal
                                          einen Button verwendet und kann von hier aus nun meine Datenpunkte korrekt schalten.
                                          Wenn ich nun in dei Visu gehe, sieht das schon wieder anders aus. Einschalten einer Leuchte funktioniert und das Ausschalten reagiert jetzt erst beim eigentlichen nächsten einschalten wenn wieder ein True Impuls kommt...
                                          Es ist zum verzweifeln - ich bin schon ein paar Tage daran und werde nicht fertig!
                                          Gibt es denn keinen Benutzer, der ebenfalls eine WAGO SPS über iobroker bedient und dort auch zum Schalten von Leuchten Stromstoß- Funktionsblöcke benutzt?

                                        @ThaBam
                                        Ich habe auch mal in verschiedene Taster Widgets reingeschaut, dort aber vieleicht auch auf Grund der Vielfalt nicht das richtige ausfindig machen können. Ich bin für jeden Rat, Hilfe und Hinweis dankbar,
                                        Gruß
                                        Gerhard

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

                                        @ghifunk said: Einschalten einer Leuchte funktioniert und das Ausschalten reagiert jetzt erst beim eigentlichen nächsten einschalten wenn wieder ein True Impuls kommt...

                                        Mit common.alias.write ?

                                            "alias": {
                                              "id": {
                                                "read": "modbus.0.inputRegisters.12340_Licht_Waschküche",
                                                "write": "modbus.0.holdingRegisters.12339_Licht_Waschküche"
                                              },
                                              "write": "val ? true : true"
                                            }
                                        

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

                                        G 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @ghifunk said: Einschalten einer Leuchte funktioniert und das Ausschalten reagiert jetzt erst beim eigentlichen nächsten einschalten wenn wieder ein True Impuls kommt...

                                          Mit common.alias.write ?

                                              "alias": {
                                                "id": {
                                                  "read": "modbus.0.inputRegisters.12340_Licht_Waschküche",
                                                  "write": "modbus.0.holdingRegisters.12339_Licht_Waschküche"
                                                },
                                                "write": "val ? true : true"
                                              }
                                          
                                          G Offline
                                          G Offline
                                          ghifunk
                                          schrieb am zuletzt editiert von
                                          #27

                                          @paul53 nein mit diesem write Befehl geht es nicht - ohne ist es wie oben beschrieben!

                                          G 1 Antwort 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          306

                                          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