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. JavaScript
  5. [gelöst] variable Rolladenposition über Vis

NEWS

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

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

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

[gelöst] variable Rolladenposition über Vis

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 3 Kommentatoren 420 Aufrufe 1 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.
  • W Offline
    W Offline
    webseb79
    schrieb am zuletzt editiert von webseb79
    #1

    Hallo liebe Gemeinde,

    ich habe folgendes Script welches funktioniert aber folgenden Fehler erzeugt.
    " You are assigning a string to the state "knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position" which expects a number."

    var idt1 = 'javascript.2.Zeiten.Isabelle.Nachtruhe.Start';
    var timer1;
    var Pos_Nachtruhe = 'javascript.2.Rolladen.Positionen.Isabelle.Nachtruhe';
    
    function getTimeObject(state) {
        var t = state.val.split(":");
        var h = parseInt(t[0]);
        var m = parseInt(t[1]);
        return {hour: h, minute: m};   
    }
    
    on(idt1, function(dp) {
        var t = getTimeObject(dp.newState);
        if (timer1) clearSchedule(timer1);
        timer1 = on({time: t}, function () {
            Nachtruhe ();
        });
    });
    
    var state = getState(idt1);
    var t = getTimeObject(state);
    if (timer1) clearSchedule(timer1);
    timer1 = on({time: t}, function () {
         Nachtruhe ();
    });
    
    function Nachtruhe() {
        // Abbruch
        if      (getState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/).val >= 10 
            ||   getState("knx.0.Rolladen.Rolladen-Betrieb.OG-Isabelle-Rolladen-Sperre"/*OG-Isabelle-Rolladen-Sperre*/).val === 1
            ||   getState("javascript.2.Zeiten.Isabelle.Nachtruhe.Freigabe").val === 0)
                
                { return; }
                
                event("Isabelle...Rolladen hat Nachtruheposition durch Zeitvorgabe angefahren","Allgemein","");
                setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/,getState(Pos_Nachtruhe).val);
                
    }
    

    Über Vis gebe ich per Input Widget eine Prozentzahl vor für die Position.
    Dieses Widget gibt immer einen String obwohl der Datenpunkt als Number deklariert ist.
    Die Position der Rollade ist auch ein Number.

    Was kann ich da nun tun um die Fehlermeldung zu bereinigen?

    Danke im voraus

    Sebastian

    paul53P 1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      mbw
      schrieb am zuletzt editiert von
      #2

      var pos = Number(getState(Pos_Nachtruhe).val);
      if (!isNaN(pos)) {
      event("Isabelle...Rolladen hat Nachtruheposition durch Zeitvorgabe angefahren","Allgemein","");
      setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/OG-Isabelle-Rolladen-Position/, pos);
      }

      1 Antwort Letzte Antwort
      0
      • W webseb79

        Hallo liebe Gemeinde,

        ich habe folgendes Script welches funktioniert aber folgenden Fehler erzeugt.
        " You are assigning a string to the state "knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position" which expects a number."

        var idt1 = 'javascript.2.Zeiten.Isabelle.Nachtruhe.Start';
        var timer1;
        var Pos_Nachtruhe = 'javascript.2.Rolladen.Positionen.Isabelle.Nachtruhe';
        
        function getTimeObject(state) {
            var t = state.val.split(":");
            var h = parseInt(t[0]);
            var m = parseInt(t[1]);
            return {hour: h, minute: m};   
        }
        
        on(idt1, function(dp) {
            var t = getTimeObject(dp.newState);
            if (timer1) clearSchedule(timer1);
            timer1 = on({time: t}, function () {
                Nachtruhe ();
            });
        });
        
        var state = getState(idt1);
        var t = getTimeObject(state);
        if (timer1) clearSchedule(timer1);
        timer1 = on({time: t}, function () {
             Nachtruhe ();
        });
        
        function Nachtruhe() {
            // Abbruch
            if      (getState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/).val >= 10 
                ||   getState("knx.0.Rolladen.Rolladen-Betrieb.OG-Isabelle-Rolladen-Sperre"/*OG-Isabelle-Rolladen-Sperre*/).val === 1
                ||   getState("javascript.2.Zeiten.Isabelle.Nachtruhe.Freigabe").val === 0)
                    
                    { return; }
                    
                    event("Isabelle...Rolladen hat Nachtruheposition durch Zeitvorgabe angefahren","Allgemein","");
                    setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/,getState(Pos_Nachtruhe).val);
                    
        }
        

        Über Vis gebe ich per Input Widget eine Prozentzahl vor für die Position.
        Dieses Widget gibt immer einen String obwohl der Datenpunkt als Number deklariert ist.
        Die Position der Rollade ist auch ein Number.

        Was kann ich da nun tun um die Fehlermeldung zu bereinigen?

        Danke im voraus

        Sebastian

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

        @webseb79 sagte:

        Was kann ich da nun tun um die Fehlermeldung zu bereinigen?

        setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/, parseFloat(getState(Pos_Nachtruhe).val));
        

        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
        • W Offline
          W Offline
          webseb79
          schrieb am zuletzt editiert von
          #4

          Ich danke euch beiden für die schnelle Hilfe.

          Bei der Lösung von mbw hat er mir die Position nicht übernommen, auch bei mehrmaligem Versuch.
          Bei der Lösung von Paul53 funktioniert alles.

          Danke

          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

          808

          Online

          32.4k

          Benutzer

          81.6k

          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