Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst: WARN in Script

    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

    Gelöst: WARN in Script

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

      @michihorn sagte:

      Ich checke alle 2 Minuten den Status den mir der Elero-Stick anbietet.

      Das machst Du im 2-Minuten-Schedule nicht, sondern es wird nur createState() (Datenpunkte erzeugen) ausgeführt.

      M 1 Reply Last reply Reply Quote 0
      • M
        michihorn last edited by michihorn

        Stimmt die Schedule sollte direkt vor dem eigentlichen Script sein.

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

          @paul53 DerDatenpunkt "hm-rpc.1.CUX4000002.6.RCVS" wird von den Elero-Stick geschrieben, dort steht der Status des jeweiligen Rollo drin.

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

            @michihorn sagte:

            DerDatenpunkt "hm-rpc.1.CUX4000002.6.RCVS" wird von den Elero-Stick geschrieben

            Der Datenpunkt dient als Trigger, dann solltest Du kein Schedule verwenden.

            1 Reply Last reply Reply Quote 0
            • M
              michihorn last edited by

              Stimmt den habe ich gerade schon raus geworfen reagiert ja auf "ne"

              1 Reply Last reply Reply Quote 0
              • M
                michihorn last edited by michihorn

                Das Script sieht nun wie folgt aus:

                createState('Rolladen.WZ_Links');
                createState('Rolladen.WZ_Rechts');
                createState('Rolladen.EZ');
                createState('Rolladen.Küche');
                createState('Rolladen.WC');
                createState('Rolladen.Move_WZ_Links');
                createState('Rolladen.Move_WZ_Rechts');
                createState('Rolladen.Move_EZ');
                createState('Rolladen.Move_Küche');
                createState('Rolladen.Move_WC');
                var Statuswert;
                var Status;
                var Nr;
                var Kanal;
                
                on({id:'hm-rpc.1.CUX4000002.6.RCVS', change: "ne"},
                    function(Rolladen) {
                        var RL = getState("hm-rpc.1.CUX4000002.6.RCVS").val;
                        Kanal = RL.substr(8, 2);
                        Status = RL.substr(10, 2);
                
                    if (Status == "00") Statuswert = "No Information";
                      else if (Status == "01") Statuswert = "OBEN";
                      else if (Status == "02") Statuswert = "UNTEN";
                      else if (Status == "03") Statuswert = "Intermediate position stop";
                      else if (Status == "04") Statuswert = "Tilt/ventilation position stop";
                      else if (Status == "05") Statuswert = "Blocking";
                      else if (Status == "06") Statuswert = "Overheated";
                      else if (Status == "07") Statuswert = "Timeout";
                      else if (Status == "08") Statuswert = "Start to move up";
                      else if (Status == "09") Statuswert = "Start to move down";
                      else if (Status == "0A") Statuswert = "Fährt AUF";
                      else if (Status == "0B") Statuswert = "Fährt AB";
                      else if (Status == "0D") Statuswert = "Stopped in undefined position";
                      else if (Status == "0E") Statuswert = "Top position stop which is tilt position";
                      else if (Status == "0F") Statuswert = "Bottom position stop which is intermediate position";
                      else if (Status == "10") Statuswert = "Switching devices switched off";
                      else if (Status == "11") Statuswert = "Switching devices switched on";
                      
                        if (Kanal == "01") {
                            setState('javascript.0.Rolladen.WZ_Links', Statuswert);
                            setState('javascript.0.Rolladen.Move_WZ_Links', Status);
                            var Nr = Status.substr(1, 1);
                            setState('javascript.0.Rolladen.Zeitsteuerung.EINS.Nr',Nr);
                                        log(Kanal + " WZ Links " + Status + " " + Statuswert);
                        } else {
                            if (Kanal == "02") {
                                setState('javascript.0.Rolladen.WZ_Rechts', Statuswert);
                                setState('javascript.0.Rolladen.Move_WZ_Rechts', Status);
                                Nr = Status.substr(1, 1);
                                setState('javascript.0.Rolladen.Zeitsteuerung.ZWEI.Nr',Nr);
                                log(Kanal + " WZ Rechts " + Status + " " + Statuswert);
                            } else {
                                if (Kanal == "04") {
                                    setState('javascript.0.Rolladen.EZ', Statuswert);
                                    setState('javascript.0.Rolladen.Move_EZ', Status);
                                    Nr = Status.substr(1, 1);
                                    setState('javascript.0.Rolladen.Zeitsteuerung.DREI.Nr',Nr); 
                                    log(Kanal + " EZ " + Status + " " + Statuswert);
                                } else {
                                    if (Kanal == "08") {
                                        setState('javascript.0.Rolladen.Küche', Statuswert);
                                        setState('javascript.0.Rolladen.Move_Küche', Status);
                                         Nr = Status.substr(1, 1);
                                        setState('javascript.0.Rolladen.Zeitsteuerung.VIER.Nr',Nr);
                                        log(Kanal + " Küche " + Status + " " + Statuswert);
                                    } else {
                                        if (Kanal == "10") {
                                            setState('javascript.0.Rolladen.WC', Statuswert);
                                            setState('javascript.0.Rolladen.Move_WC', Status);
                                            Nr = Status.substr(1, 1);
                                            setState('javascript.0.Rolladen.Zeitsteuerung.FÜNF.Nr',Nr); 
                                            log(Kanal + " WC " + Status + " " + Statuswert);
                                        }
                                    }
                                }
                            }
                        }
                       
                    });
                
                

                Die Warnmeldungen kommen bei Zeile 17, 21, 25, 29
                Anbei das LOG-File
                log.txt

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

                  @michihorn sagte:

                  Die Warnmeldungen kommen bei Zeile 17, 21, 25, 29

                  Nein, Warnungen kommen bei den setState('javascript.0.Rolladen.Zeitsteuerung.ZWEI.Nr',Nr) bis FÜNF. Sind die Datenpunkte vom Typ "Zeichenkette"(string) ? Das sollten sie sein.
                  17, 21, 25, 29 sind die Zeichenpositionen in der Zeile.

                  1 Reply Last reply Reply Quote 0
                  • M
                    michihorn last edited by

                    Doch schon:
                    Unbenannt3.JPG

                    1 Reply Last reply Reply Quote 0
                    • M
                      michihorn last edited by michihorn

                      Jetzt klappt es:
                      Hab CreateState so ausgedrückt: "createState("javascript.0.Rolladen.Zeitsteuerung.FÜNF.Nr");"
                      Fehler war so: "createState("javascript.0.Rolladen.Zeitsteuerung.FÜNF.Nr",{read: true,write: true,desc: "Berechneter Wert,",type: "string",min:'0', max:'12',def:1});"

                      Danke Paul53

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

                        @michihorn
                        Ja, min: und max: machen bei Strings keinen Sinn.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        754
                        Online

                        31.8k
                        Users

                        79.9k
                        Topics

                        1.3m
                        Posts

                        javascript
                        3
                        19
                        502
                        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