Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Schreiben in Datenpunkt schießt JS Instanz ab

    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

    Schreiben in Datenpunkt schießt JS Instanz ab

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      JoergH @liv-in-sky last edited by

      @liv-in-sky Das habe ich auch schon befürchtet und mal von "solange" auf "bis" umgestellt, hat aber keine Änderung gebracht...Hast Du eine Idee, wie ich denn anders eine Schleife darstellen kann, als mit dem entsprechenden Blockly?

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

        @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

        @homoran Stimmt. Die Antwort passt auf den Post der Amnmerkungen zu dem falschen Blockly. Ich beantworte auch gerne Fragen zu dem nun zum Script passenden Blockly.

        Deswegen niemals nachträglich ohne Kennzeichnung (und belassen des falschen) Änderungen durchführen
        Das gehört zu den Grundlagen eines Forums!

        https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1

        J 1 Reply Last reply Reply Quote 0
        • J
          JoergH @Homoran last edited by

          @homoran

          @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

          @bananajoe @David-G

          Sorry!!! Mir fällt gerade auf, dass ich die falschen Blocklys gepostet habe! Das ist ein funktionierendes Skript und nicht das zu dem Problem....das korrekte kommt gleich.

          [Edit] : Jetzt passt es.

          Homoran liv-in-sky 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @JoergH last edited by Homoran

            @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

            @homoran

            @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

            @bananajoe @David-G

            Sorry!!! Mir fällt gerade auf, dass ich die falschen Blocklys gepostet habe! Das ist ein funktionierendes Skript und nicht das zu dem Problem....das korrekte kommt gleich.

            [Edit] : Jetzt passt es.

            ???
            was willst du mir damit sagen?

            Hast du den verlinkten Thread überhaupt (vollständig) gelesen?

            EDIT:
            Habe einen entsprechenden Kommentar im betreffenden Post eingefügt!

            J 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @JoergH last edited by

              @joergh

              habe dein script nicht wirklich analisiert - aber du willst doch texte, die kleiner 70 zeichen sind

              zum testen

              function splitStringAtSpaces(inputString, maxLength = 70) {
                 const result = [];
                 let start = 0;
              
                 for (let end = 0; start < inputString.length; start = end + 1) {
                     end = start + maxLength;
              
                     // Suche das letzte Leerzeichen innerhalb des Bereichs [start, end]
                     if (end < inputString.length) {
                         const lastSpace = inputString.lastIndexOf(" ", end);
                         if (lastSpace > start) {
                             end = lastSpace; // An einem Leerzeichen abschneiden
                         }
                     }
              
                     // Abschnitt hinzufügen, führende und nachfolgende Leerzeichen entfernen
                     result.push(inputString.substring(start, end).trim());
                 }
                 for (let i=0; i<result.length;i++){log(result[i].length+" : "+result[i])}
                 return result;
              }
              
              // Beispiel:
              const testString = "Dies ist ein sehr sehr langer sehr langer Beispieltext, der mehr als siebzig Zeichen hat. Wir möchten sicherstellen, dass der Text korrekt an Leerzeichen getrennt wird. Das ganze soll ein Script mit einer FOR-Schleife sein und somit sicherer als mit einer WHILE-Schleife sein. Jetzt weiß ich nicht mehr, was ich noch schreiben soll";
              const result = splitStringAtSpaces(testString);
              
              console.log(result);
              

              bringt sowas:

              avascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 68 : Dies ist ein sehr sehr langer sehr langer Beispieltext, der mehr als
              javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 69 : siebzig Zeichen hat. Wir möchten sicherstellen, dass der Text korrekt
              javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 65 : an Leerzeichen getrennt wird. Das ganze soll ein Script mit einer
              javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 65 : FOR-Schleife sein und somit sicherer als mit einer WHILE-Schleife
              javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 60 : sein. Jetzt weiß ich nicht mehr, was ich noch schreiben soll
              
              J 1 Reply Last reply Reply Quote 0
              • J
                JoergH @Homoran last edited by

                @homoran Es hatte außer zwei Personen noch keiner geantwortet, die Blocklys austauschen dürfte da wohl eher wenig für Verwirrung sorgen, zumal ich direkt danach darauf hingewiesen habe und dies kenntlich gemacht habe. Geht es jetzt ums Prinzipenreiten oder gibt es ein echtes Problem?

                Samson71 1 Reply Last reply Reply Quote 0
                • J
                  JoergH @liv-in-sky last edited by JoergH

                  @liv-in-sky sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                  @joergh

                  habe dein script nicht wirklich analisiert - aber du willst doch texte, die kleiner 70 zeichen sind

                  zum testen

                  function splitStringAtSpaces(inputString, maxLength = 70) {
                     const result = [];
                     let start = 0;
                  
                     for (let end = 0; start < inputString.length; start = end + 1) {
                         end = start + maxLength;
                  
                         // Suche das letzte Leerzeichen innerhalb des Bereichs [start, end]
                         if (end < inputString.length) {
                             const lastSpace = inputString.lastIndexOf(" ", end);
                             if (lastSpace > start) {
                                 end = lastSpace; // An einem Leerzeichen abschneiden
                             }
                         }
                  
                         // Abschnitt hinzufügen, führende und nachfolgende Leerzeichen entfernen
                         result.push(inputString.substring(start, end).trim());
                     }
                     for (let i=0; i<result.length;i++){log(result[i].length+" : "+result[i])}
                     return result;
                  }
                  
                  // Beispiel:
                  const testString = "Dies ist ein sehr sehr langer sehr langer Beispieltext, der mehr als siebzig Zeichen hat. Wir möchten sicherstellen, dass der Text korrekt an Leerzeichen getrennt wird. Das ganze soll ein Script mit einer FOR-Schleife sein und somit sicherer als mit einer WHILE-Schleife sein. Jetzt weiß ich nicht mehr, was ich noch schreiben soll";
                  const result = splitStringAtSpaces(testString);
                  
                  console.log(result);
                  

                  bringt sowas:

                  avascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 68 : Dies ist ein sehr sehr langer sehr langer Beispieltext, der mehr als
                  javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 69 : siebzig Zeichen hat. Wir möchten sicherstellen, dass der Text korrekt
                  javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 65 : an Leerzeichen getrennt wird. Das ganze soll ein Script mit einer
                  javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 65 : FOR-Schleife sein und somit sicherer als mit einer WHILE-Schleife
                  javascript.0	11:06:17.939	info	script.js.common.AA-Versuche.Skript_1: 60 : sein. Jetzt weiß ich nicht mehr, was ich noch schreiben soll
                  

                  Richtig, ich will die Texte splitten und dann in ein array schreiben. Das funktioniert auch genauso so weit, bis er zum Schreiben des Datenpunktes kommt, dann schmiert er ab.

                  Du meinst ich sollte die Split Funktion in dem JS-Script auslagern, da ich damit auch die Schleife "verzichten" kann, sprich sie im JS-Script läuft...?

                  Wäre eine Möglichkeit...probiere ich mal aus. Danke für die Anregung!

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @JoergH last edited by

                    @joergh

                    die andere while schleife solltest du auch dann noch ersetzen - leider muss ich wieder los - zur not hilft dir auch chatgpt, falls sich kein anderer findet

                    1 Reply Last reply Reply Quote 0
                    • Samson71
                      Samson71 Global Moderator @JoergH last edited by

                      @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                      Geht es jetzt ums Prinzipenreiten oder gibt es ein echtes Problem?

                      Ich will mich hier nicht weiter reinhängen, aber genau um den ersten Teil der Frage geht es ganz und gar nicht, aber der zweite Teil ist durchaus für einen unbedarften Leser möglich. Deswegen auch das Mod-Edit bzw., die Ergänzung unter dem im 2. Beitrag ausgetauschten Blockly.

                      Wer das als Neuleser von Anfang an ohne Vorahnung (ggf. auch später) liest und eben nicht weiß, dass es eine schon korrigierte Austauschfassung ist, sucht wg. der Folgekommentare einen möglichen Fehler darin der gar nicht mehr enthalten ist. Bis dieser über den kleine unscheinbaren Edit-Hinweis im 6. Post gestolpert ist, ist u.U. nen Haufen Lebenszeit sinnlos verbraten.

                      Um nichts anderes ging es @Homoran bei seinen Ausführungen. Genau das ist der Grund warum nachträgliche Edits in Beiträgen ohne dortige direkte und deutliche Kenntlichmachung in echtes Foren-NoGo sind.

                      J 1 Reply Last reply Reply Quote 0
                      • David G.
                        David G. @JoergH last edited by David G.

                        @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                        Weil beim nächsten Umzug auf ein neues System die Datenpunkte nicht mehr das sind.

                        Dann macht es evtl Sinn sich ein Alias für die Geräte anzulegen.

                        Ich zähle meine Kontakte indem ich den DPs eine Funktion gebe. Das kann man schön schnell anpassen.
                        Das Script sucht die Funktion der DPs und fertig.

                        EDIT
                        Ich prüfe nur auf geschlossen und offen. Aber lässt sich ja leicht anpassen.
                        Screenshot_20241119_123130_Chrome.jpg

                        Du Funktion habe ich von meiner Alarmanlage übernommen. Dort werden alle Fenster geprüft. Dann muss ich es nicht doppelt vergeben.
                        Die Variable Durchlauf habe ich um das "und" richtig zu setzen für die Sprachansage.

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          JoergH @David G. last edited by

                          @david-g sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                          @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                          Weil beim nächsten Umzug auf ein neues System die Datenpunkte nicht mehr das sind.

                          Dann macht es evtl Sinn sich ein Alias für die Geräte anzulegen.

                          Ja, kann man machen. Ist eine Alternative. Ich lege die Datenpunkte lieber selber an, so wie jeder Adapter das schließlich auch macht. Ich denke genau dafür wurde die Blöcke doch auch eingerichtet.

                          Ich zahle meine Kontakte indem ich den DPs eine Funktion gebe. Das kann man schon schnell anpassen.

                          Das ist eben das Problem, welches ich schon öfter hatte: Beim bisher verwendeten Skript durfte man NICHT die Channels mit der Funktion ausstatten, MUSSTE aber die STATEs ausstatten. Leider liefert die Homematic_CCU es aber anders nach Neueinlesen. Beim mehr als 30 Fenster ging es mir gegen den Strich jedesmal die ganzen Eigenschaften wieder neu setzen zu müssen und vor allem habe ich nicht einmal mitbekommen, dass sie aus irgendwelchen Gründen mal wieder verschwunden sind und mich dann irgendwann gewundert, warum keine Warnungen mehr erschienen sind.

                          Das Script sucht die Funktion der DPs und fertig.

                          EDIT
                          Ich prüfe nur auf geschlossen und offen. Aber lässt sich ja leicht anpassen.
                          Screenshot_20241119_123130_Chrome.jpg

                          Mein Skript für die Fenster läuft nun auch wunderbar und vermeidet die oben genannte Problematik, da es die Eigenschaften so nutzt, wie sie von Homematic_CCU angeliefert werden, ohne irgendwas im iobroker setzen zu müssen (in der HM-CCU müssen sie natürlich zugeordnet sein!). Ich kann dann noch einstellen nach wie vielen Minuten er eine Warnung in einen Datenpunkt schreiben soll und damit weiterarbeiten.

                          Das war aber leider das falsche Skript, ich habe die Instanz-Absturz in einem anderen. Der JS-Code der Blockly-Blöcke war schon korrekt, nur die Screenshots nicht.

                          David G. 1 Reply Last reply Reply Quote 0
                          • J
                            JoergH @Samson71 last edited by

                            @samson71 sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                            @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                            Geht es jetzt ums Prinzipenreiten oder gibt es ein echtes Problem?

                            Ich will mich hier nicht weiter reinhängen, aber genau um den ersten Teil der Frage geht es ganz und gar nicht, aber der zweite Teil ist durchaus für einen unbedarften Leser möglich. Deswegen auch das Mod-Edit bzw., die Ergänzung unter dem im 2. Beitrag ausgetauschten Blockly.

                            Das MOD-Edit ist nur eben leider falsch, da sich die ersten Antworten und meine Reaktion darauf auf die ursprüngliche Grafik beziehen. Was nun mehr Verwirrung stiftet überlasse ich anderen....

                            Homoran 1 Reply Last reply Reply Quote 0
                            • David G.
                              David G. @JoergH last edited by

                              @joergh

                              Ich Pflege die Gewerke in der CCU nicht.
                              Kannst du diese nicht mit dem rega Adapter synchronisieren und die Fenster per Selector ermitteln?

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

                                @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                                Das MOD-Edit ist nur eben leider falsch, da sich die ersten Antworten und meine Reaktion darauf auf die ursprüngliche Grafik beziehen.

                                ???

                                @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                                MOD-EDIT: Das hier gezeigte Blockly wurde nachträglich ausgetauscht! Die folgenden Antworten beziehen sich auf das inzwischen gelöschte Blockly!

                                und was steht da??

                                J 1 Reply Last reply Reply Quote 0
                                • J
                                  JoergH @David G. last edited by

                                  @david-g Doch, aber nur, wenn Sie in der CCU auch als Fenster, Tür, Raum etc. eingepflegt wurden, werden sie synchronisiert. Dann aber die Channels und nicht die STATES...

                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    JoergH @Homoran last edited by

                                    @homoran Ja, stimmt nicht, weil der Rest sich eben nicht darauf bezieht, sondern dann auf die korrekte Grafik.

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

                                      @joergh ok!
                                      werde es anpassen und ändern in

                                      @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                                      Die folgenden 4 Antworten beziehen sich auf das inzwischen gelöschte Blockly!

                                      du siehst ja an den letzten Posts was das für ein durcheinander bringt

                                      J 2 Replies Last reply Reply Quote 0
                                      • J
                                        JoergH @Homoran last edited by

                                        @homoran Sorry, das ich nun so viel Verwirrung gestiftet habe wegen eines kleinen Fehlers. Ich dachte mit meinem Edit vier Beiträge später wäre es verkraftbar. Das nächste Mal schreibe ich es mit in den Grafik-Austausch Post und alle sind hoffentlich glücklich.

                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          JoergH @Homoran last edited by

                                          @homoran sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                                          @joergh ok!
                                          werde es anpassen und ändern in

                                          @joergh sagte in Schreiben in Datenpunkt schießt JS Instanz ab:

                                          Die folgenden 4 Antworten beziehen sich auf das inzwischen gelöschte Blockly!

                                          du siehst ja an den letzten Posts was das für ein durcheinander bringt

                                          Vorschlag: Lösch einfach den gesamten Thread. Ggfs. lege ich dann einen Neuen an.

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

                                            @joergh nee, das biegen wir schon zurecht.

                                            Wie @Samson71 schon schrieb ist das hier ja ein Forum und kein privater Supportchat.
                                            Daher muss es inhaltlich auch nachvollziehbar sein/bleiben.

                                            Vielleicht passt du daher auch noch den Threadtitel an, da höchstwahrscheinlich nicht das Schreiben in den Datenpunkt den Absturz der js-Instanz verursacht.

                                            Der Threadtitel sollte auch einem späteren Leser das behandelte "Problem" ersichtlich machen, wenn er nach etwas sucht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            773
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            31
                                            923
                                            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