Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [GELÖST] id Übergabe an Function klappt nicht

NEWS

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

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

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

[GELÖST] id Übergabe an Function klappt nicht

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 6 Kommentatoren 1.0k Aufrufe
  • Ä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.
  • M Offline
    M Offline
    mctom
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    hier ein Auszug aus einem Script von mir:

    var = idRArbeitenTuer = "hm-rpc.0.IEQ123456.1.LEVEL"/*Rollo-Arbeiten-Tuer.LEVEL*/,
    idKArbeitenTuer = "hm-rpc.0.IEQ123456.1.STATE"/*Kontakt-Arbeiten-Tuer.STATE*/,
    idRolloStatus = "javascript.0.Rollo.Steuerung.Status"/*Rollo.Steuerung.Status*/;
    
    on({id: idKArbeitenTuer, change: "ne"}, function () {
    	kontakt (idKArbeitenTuer,idRArbeitenTuer);
    });
    
    function kontakt (namekontakt,namerollo){
        log("kontaktänderung " + namerollo + namekontakt);
        if(getState(namekontakt) === 2 && getState(idRolloStatus) === 2)setState(namerollo,20);
        if(getState(namekontakt) === 0 && getState(idRolloStatus) === 2)setState(namerollo,0);
    }
    
    

    Leider funktioniert das ganze nicht so wie es soll.

    Der Aufruf der Function klappt soweit. Allerdings bekomme ich nicht die korrekte Übergabe der IDs hin. Da die Anführungszeichen entfernt werden.

    Kann mir jemand helfen und vielleicht einen Tipp geben ?

    Gruß

    Michael

    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #2

      Hey,

      hat mit den Anführungszeichen nichts zu tun. Ich denke eher das es daran liegt das ein "getState()" ein Objekt zurückgibt und nicht den Wert!!

      Du musst getState().val nutzen um den Wert zu bekommen!+

      Ingo

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3
        var = idRArbeitenTuer
        

        Das funktioniert trotz dem Gleichheitszeichen hinter dem var?

        Das Gleichheitszeichen gehört nach meiner Meinung nicht nicht da hin.

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • apollon77A Offline
          apollon77A Offline
          apollon77
          schrieb am zuletzt editiert von
          #4

          Ja, das ist auch falsch. Hatte ich glatt übersehen

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          1 Antwort Letzte Antwort
          0
          • arteckA Offline
            arteckA Offline
            arteck
            Developer Most Active
            schrieb am zuletzt editiert von
            #5
            var idRArbeitenTuer = "hm-rpc.0.IEQ123456.1.LEVEL"/*Rollo-Arbeiten-Tuer.LEVEL*/;
            var idKArbeitenTuer = "hm-rpc.0.IEQ123456.1.STATE"/*Kontakt-Arbeiten-Tuer.STATE*/;
            var idRolloStatus = "javascript.0.Rollo.Steuerung.Status"/*Rollo.Steuerung.Status*/;
            
            on({id: idKArbeitenTuer, change: "ne"}, function () {
               kontakt (idKArbeitenTuer,idRArbeitenTuer);
            });
            
            function kontakt (namekontakt,namerollo) {
                log("kontaktänderung " + namerollo + namekontakt);
                if (getState(namekontakt) === 2 && getState(idRolloStatus) === 2) {
                	setState(namerollo,20);
                }
                if (getState(namekontakt) === 0 && getState(idRolloStatus) === 2) {
                	setState(namerollo,0);
                }
            }
            

            und hinten kein komma am variablendeklarationsende

            probier das mal..

            zigbee hab ich, zwave auch, nuc's genauso und HA auch

            1 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              @arteck:

              und hinten kein komma am variablendeklarationsende `
              Deklarationen per Komma trennen ist vollkommen ok, solange hinter dem letzten ein Semikolon steht. Nur das = direkt hinter <u>var</u> darf nicht sein.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                dwm
                schrieb am zuletzt editiert von
                #7
                var idRArbeitenTuer = "hm-rpc.0.IEQ123456.1.LEVEL"/*Rollo-Arbeiten-Tuer.LEVEL*/;
                var idKArbeitenTuer = "hm-rpc.0.IEQ123456.1.STATE"/*Kontakt-Arbeiten-Tuer.STATE*/;
                var idRolloStatus = "javascript.0.Rollo.Steuerung.Status"/*Rollo.Steuerung.Status*/;
                
                on({id: idKArbeitenTuer, change: "ne"}, function () {
                   kontakt (idKArbeitenTuer,idRArbeitenTuer);
                });
                
                function kontakt (namekontakt,namerollo) {
                    log("kontaktänderung " + namerollo + namekontakt);
                    if (getState(namekontakt).val === 2 && getState(idRolloStatus).val === 2) {
                       setState(namerollo,20);
                    }
                    if (getState(namekontakt).val === 0 && getState(idRolloStatus).val === 2) {
                       setState(namerollo,0);
                    }
                }
                

                … die .val nach den getStates haben noch gefehlt.

                Noch ein Tipp ... ich würde das mit mindestens 5s Verzögerung schalten. Sonst kriegt das Rollo immer Zuckungen, wenn jemand kurz mal den Hebel hin- und herdreht.

                Also:

                var idRArbeitenTuer = "hm-rpc.0.IEQ123456.1.LEVEL"/*Rollo-Arbeiten-Tuer.LEVEL*/;
                var idKArbeitenTuer = "hm-rpc.0.IEQ123456.1.STATE"/*Kontakt-Arbeiten-Tuer.STATE*/;
                var idRolloStatus = "javascript.0.Rollo.Steuerung.Status"/*Rollo.Steuerung.Status*/;
                var RolloTimer = null;
                
                on({id: idKArbeitenTuer, change: "ne"}, function () {
                   if (RolloTimer !== null) 
                       clearTimeout(RolloTimer);
                   RolloTimer = setTimeout( function() {kontakt (idKArbeitenTuer,idRArbeitenTuer);},5000);
                });
                
                function kontakt (namekontakt,namerollo) {
                    log("kontaktänderung " + namerollo + namekontakt);
                    if (getState(namekontakt).val === 2 && getState(idRolloStatus).val === 2) {
                       setState(namerollo,20);
                    }
                    if (getState(namekontakt).val === 0 && getState(idRolloStatus).val === 2) {
                       setState(namerollo,0);
                    }
                    RolloTimer=null;
                }
                
                

                Das ruft dann die Routine für Kontaktänderung erst nach 5s nach der letzten Statusänderung auf.

                BTDTBTTS …

                Werner

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  mctom
                  schrieb am zuletzt editiert von
                  #8

                  Danke an alle für die Hilfe.

                  Da hatte ich am Anfang wohl Tomaten auf den Augen.

                  Die Idee mit den 5s habe ich direkt auch übernommen.

                  Gruß

                  Michael

                  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

                  763

                  Online

                  32.4k

                  Benutzer

                  81.4k

                  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