Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Texte von mehreren SV in eine SV schreiben

    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

    Texte von mehreren SV in eine SV schreiben

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

      Hallo zusammen
      Ich habe eine ServiceVariable vom Typ Zeichenkette in die ich Texte von mehreren ServiceVariablen vom Typ Zeichenkette mit dem Trennzeichen ; schreiben möchte.

      Beispiel (der Intervall ist nur für Testzwecke):

      schedule("* * * * *", function () {
        setState("hm-rega.0.2633"/*Heute ist*/, [getState("hm-rega.0.25018").val, getState("hm-rega.0.39794").val, getState("hm-rega.0.3365").val], true);
      });
      

      bf81e6dc-f07b-4904-87c1-6ac124ce4bbe-image.png

      Leider mache ich hier etwas falsch...
      Hat mir bitte jemand einen Typ.

      Liebe Grüsse aus der Schweiz

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

        @hanan Texte fügt man nicht mit erzeuge Liste mit, sondern mit erstelle Text aus zusammen.

        1 Reply Last reply Reply Quote 0
        • hanan
          hanan last edited by

          Hallo Paul
          Das habe ich auch versucht, leider ohne Erfolg.

          Habe gesehen, dass eine SV nicht vom Typ Zeichenkette ist sondern Werteliste. Daher habe ich gedacht, dass das der Fehler ist, leider nicht.

          Was möchte ich tun:
          Ich habe eine SV Typ Zeichenkette in die ich folgendes schreiben möchte.
          SV1 leer = auslassen, SV1 mit Text = Text in SV mit einem ;
          SV2 leer = auslassen, SV2 mit Text = Text in SV mit einem ;
          SV3 leer = auslassen, SV3 mit Text = Text in SV
          (im Moment ist SV1 noch mit Typ Werteliste und SV2 und SV3 sind mit Typ Zeichenkette)

          Dieses muss nicht zwingend mit Blockly sein, doch mit der Skript-Sprache bin ich nicht so der Anton...

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @hanan last edited by

            @hanan sagte in Texte von mehreren SV in eine SV schreiben:

            Das habe ich auch versucht, leider ohne Erfolg.

            Kannst du das mal zeigen, das muss auch mit deinen Wünschen gehen, auch wenn es dann wüst aussieht

            1 Reply Last reply Reply Quote 0
            • hanan
              hanan last edited by hanan

              Hallo Homoran

              Hier mal mein Blockly:
              efa9507a-3562-490d-ac31-4a8481d7791a-image.png

              schedule("* * * * *", function () {
                setState("hm-rega.0.2633"/*Heute ist*/, ([getState("hm-rega.0.25018").val,getState("hm-rega.0.3365").val,getState("hm-rega.0.39794").val].join('')));
              });
              

              (freier Tag = SV1; Ist-XTAG-Heute-Name = SV2;IST-Feiertag-Heute-Name = SV3)

              Hier die Fehlermeldung:
              javascript.0 2019-06-07 13:41:00.010 warn at Timer.listOnTimeout (timers.js:290:5)
              javascript.0 2019-06-07 13:41:00.010 warn at tryOnTimeout (timers.js:323:5)
              javascript.0 2019-06-07 13:41:00.010 warn at ontimeout (timers.js:498:11)
              javascript.0 2019-06-07 13:41:00.010 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
              javascript.0 2019-06-07 13:41:00.006 warn at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
              javascript.0 2019-06-07 13:41:00.006 warn at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
              javascript.0 2019-06-07 13:41:00.006 warn at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34)
              javascript.0 2019-06-07 13:41:00.006 warn at Object.<anonymous> (script.js.common.Programme_ioBroker.Heute_ist:2:3)
              javascript.0 2019-06-07 13:41:00.005 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
              javascript.0 2019-06-07 13:41:00.004 warn State "hm-rega.0.2633" not found

              07ff0390-76b1-46e1-824a-d9af365ea07a-image.png

              Homoran paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @hanan last edited by Homoran

                @hanan

                Ich fürchte da reden wir aneinander vorbei.

                Das sieht für mich aus, als ob er eine Werteliste ausliest.
                Dort wird üblicherweise nur eine Zahl gespeichert und die Wird in der Rega übersetzt.

                ioBroker bekommt aber nur die Info über die Zahlen

                EDIT:
                Da stand doch eben noch ganz was anderes?????!!!!

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

                  @hanan sagte:

                  javascript.0 2019-06-07 13:41:00.004 warn State "hm-rega.0.2633" not found

                  Das hat nichts mit der Textverknüpfung zu tun. Offenbar gibt es Probleme mit dem Datenpunkt "Heute ist". Welche Eigenschaften hat er (bitte RAW in code tags) ?

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @paul53 last edited by

                    @paul53

                    Aus dem Kopf:
                    Eben stand da noch was von Heute ist: 1,3

                    1 Reply Last reply Reply Quote 0
                    • hanan
                      hanan last edited by hanan

                      Hallo paul53, hallo Homoran
                      Jep, habe die SV "Heite ist" in ioBroker neu eingelesen und es funzt.
                      Leider wird, wie bereits festgestellt, die SV1-Werteliste nur als Zahl dargestellt.

                      Frage, wie kann ich es machen, dass wenn kein Text in der SV ist diese nicht mit einem ; getrennt wird?

                      schedule("* * * * *", function () {
                        setState("hm-rega.0.2633"/*Heute ist*/, ([getState("hm-rega.0.25018").val,'; ',getState("hm-rega.0.3365").val,'; ',getState("hm-rega.0.39794").val].join('')));
                      });
                      

                      81703b3d-3e8b-4bdf-8530-a3d1d07d3eca-image.png

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @hanan last edited by

                        @hanan sagte in Texte von mehreren SV in eine SV schreiben:

                        Leider wird, wie bereits festgestellt, die SV1-Werteliste nur als Zahl dargestellt.

                        Du musst vorher eine Ersetzung der Ziffern durch den gewünschten Text machen.

                        @hanan sagte in Texte von mehreren SV in eine SV schreiben:

                        wie kann ich es machen, dass wenn kein Text in der SV ist diese nicht mit einem ; getrennt wird?

                        Beim Erzeugen der jeweiligen Werte aus den Ziffern bereits dort ein Semikolon dranhängen, oder eben nicht.

                        Dazu musst du mit Variablen arbeiten

                        1 Reply Last reply Reply Quote 0
                        • hanan
                          hanan last edited by hanan

                          Hallo Homoran

                          Ist vielleicht nicht das sauberste, aber könnte funktionieren...

                          var freier_Tag_Name;
                          
                          
                          schedule("* * * * *", function () {
                            if (getState("hm-rega.0.25018").val == 0) {
                              freier_Tag_Name = 'unbekannt';
                            } else if (getState("hm-rega.0.25018").val == 1) {
                              freier_Tag_Name = 'Arbeit';
                            } else if (getState("hm-rega.0.25018").val == 2) {
                              freier_Tag_Name = 'Wochenende';
                            } else if (getState("hm-rega.0.25018").val == 3) {
                              freier_Tag_Name = 'Frei';
                            } else if (getState("hm-rega.0.25018").val == 4) {
                              freier_Tag_Name = 'Ferien';
                            } else if (getState("hm-rega.0.25018").val == 5) {
                              freier_Tag_Name = 'Urlaub';
                            }
                            setStateDelayed("hm-rega.0.2633"/*Heute ist*/, (String(freier_Tag_Name)), 1000, false);
                            if (getState("hm-rega.0.3365").val == '' && getState("hm-rega.0.39794").val == '') {
                              setStateDelayed("hm-rega.0.2633"/*Heute ist*/, (String(freier_Tag_Name)), 1000, false);
                            } else if (getState("hm-rega.0.3365").val != '' && getState("hm-rega.0.39794").val == '') {
                              setStateDelayed("hm-rega.0.2633"/*Heute ist*/, ([freier_Tag_Name,'; ',getState("hm-rega.0.3365").val].join('')), 1000, false);
                            } else if (getState("hm-rega.0.3365").val == '' && getState("hm-rega.0.39794").val != '') {
                              setStateDelayed("hm-rega.0.2633"/*Heute ist*/, ([freier_Tag_Name,'; ',getState("hm-rega.0.39794").val].join('')), 1000, false);
                            } else if (getState("hm-rega.0.3365").val != '' && getState("hm-rega.0.39794").val != '') {
                              setStateDelayed("hm-rega.0.2633"/*Heute ist*/, ([freier_Tag_Name,'; ',getState("hm-rega.0.39794").val,'; ',getState("hm-rega.0.3365").val].join('')), 1000, false);
                            }
                          });
                          

                          0a17b221-248f-426b-9c92-76cb76dcae1e-image.png

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          743
                          Online

                          31.9k
                          Users

                          80.3k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          437
                          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