Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Einheit z.B. Lux auf 100% mit Verteilung über Leistungskurfe

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einheit z.B. Lux auf 100% mit Verteilung über Leistungskurfe

    This topic has been deleted. Only users with topic management privileges can see it.
    • michl75
      michl75 last edited by

      ![Hallo, habe ioBroker sei einem Jahr und konnte mir bisher über Forenbeiträge selbst immer ganz gut weiterhelfen. Soweit 🙂 ...nun habe ich eine Problem, was ich bis heute von keinem anderen gefunden habe.

      Darum mein erster Post...

      Ich benötige für eine LED Steuerung (homematic) im Garten (Gewächshaus) eine Steuerung per Script, die sich nach Lux richtet. bisher war dies statisch, sprich 100% = 100.000 Lux, oder 50.000 Lux = 50% usw.

      Nun möchte ich dies über drei Schieberegler sozusagen dynamisch regeln... anbei Bild, dann die Werte sozusagen über eine Leistungskurfe, die ich mich den Reglern festlege.

      Nun stehe ich aber vor dem Problem, die drei Regler auch so im Script umzusetzen, dass diese entsprechend berechnet werden...

      Z. B.
      Regler 1 steht auf 3000 Lux = aber NICHT 30% sondern nur x z.N. 10%
      Regler 2 steht auf 25.000 Lux = 60%
      Regler 3 steht auf 80.000 Lux = 95 %

      Ich hoffe ich konnte es irgendwie erklären...

      Kann mi9r dabei einer helfen?
      10101.PNG
      Viele Grüße
      M.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @michl75 last edited by paul53

        @michl75 sagte:

        die drei Regler auch so im Script umzusetzen

        Vorschlag für 3 Werte Lichtstärke bei 25 %, 50 % und 75 % (4 Geraden):

        const idLux  = '...'; 
        const idLicht = '...'; // 0 - 100 %
        const idGw25 = '0_userdata.0.Garten.Lux.Gw25';
        const idGw50 = '0_userdata.0.Garten.Lux.Gw50';
        const idGw75 = '0_userdata.0.Garten.Lux.Gw75';
        
        var lux = getState(idLux).val;
        var Gw25 = getState(idGw25).val;
        var Gw50 = getState(idGw50).val;
        var Gw75 = getState(idGw75).val;
        
        function calcLight() {
            let light  = 25 * lux / Gw25;
            if(lux > Gw25) light = 25 * (1 + lux / (Gw50 - Gw25));
            if(lux > Gw50) light = 25 * (2 + lux / (Gw75 - Gw50));
            if(lux > Gw75) light = 25 * (3 + lux / (100000 - Gw75));
            setState(idLicht, light, true);
        }
        
        calcLight(); // Script start
        
        on(idGw25, function(dp) {
            Gw25 = dp.state.val;
            calcLight();
        });
        on(idGw50, function(dp) {
            Gw50 = dp.state.val;
            calcLight();
        });
        on(idGw75, function(dp) {
            Gw75 = dp.state.val;
            calcLight();
        });
        on(idLux, function(dp) {
            lux = dp.state.val;
            calcLight();
        });
        
        1 Reply Last reply Reply Quote 0
        • michl75
          michl75 last edited by

          Vielen Dank für die schnelle Rückmeldung. Ich werde morgen dies mal umzusetzen in mein Vorhaben. Bin heute nur zu kaputt, da erst von Arbeit heim gekommen. Aber vielen Dank schon mal für die Hilfe!

          Ich teste und gebe Bescheid 🙂

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          398
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          javascript
          2
          3
          169
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo