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.
    • M
      michihorn @paul53 last edited by

      @paul53 sagte in WARN in Script:

      Hat es einen Grund, warum Du ausgerechnet mit den Zahlen 01, 02, 04, 08 und 10 vergleichst ?

      Das gibt die Elero Doku so vor:
      Easy Control Transmitter Stick.pdf

      1 Reply Last reply Reply Quote 0
      • 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

                          366
                          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