Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Bei bestimmtem String stürzt Javascript 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

    Bei bestimmtem String stürzt Javascript Instanz ab

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki Developer @haus-automatisierung last edited by

      @haus-automatisierung
      Da ist kein Vorteil, nur das im sendTo() für jsonConfig.json bei textSendTo ein String erwartet wird(kein Object), daher meine Fehlannahme. 🙂

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @ticaki last edited by

        @ticaki Stimmt, wäre schöner wenn auch der Admin für textSendTo dann result.text nutzen würde und man auch dort ein Objekt zurückliefert.

        Ben1983 1 Reply Last reply Reply Quote 0
        • Ben1983
          Ben1983 @haus-automatisierung last edited by

          @haus-automatisierung ok.
          Dann sollte ja async meineFunktion.result gehen, oder?
          Trotzdem stürzt ja komischerweise die Instanz ab… obwohl nur der Rückgabewert geloggt werden soll. Sollte das nicht trotzdem gehen?

          haus-automatisierung T 2 Replies Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Ben1983 last edited by haus-automatisierung

            @ben1983 sagte in Bei bestimmtem String stürzt Javascript Instanz ab:

            Dann sollte ja async meineFunktion.result gehen, oder?

            Wenn Du ein Objekt an die Callback-Funktion übergibst, ja. So wie in der Doku zu finden.

            PS: Strings mit <> zu vergleichen ist so eine Sache... da wirst Du noch Probleme bekommen (je nachdem ob eine 0 vorangestellt wird, oder nicht):

            Screenshot 2023-11-09 at 12.53.48.png

            Ben1983 1 Reply Last reply Reply Quote 1
            • T
              ticaki Developer @Ben1983 last edited by

              @ben1983 sagte in Bei bestimmtem String stürzt Javascript Instanz ab:

              @haus-automatisierung ok.
              Dann sollte ja async meineFunktion.result gehen, oder?
              Trotzdem stürzt ja komischerweise die Instanz ab… obwohl nur der Rückgabewert geloggt werden soll. Sollte das nicht trotzdem gehen?

              Oben steht doch die Lösung die geht...

              1 Reply Last reply Reply Quote 1
              • Ben1983
                Ben1983 @haus-automatisierung last edited by

                @haus-automatisierung ok danke.
                Ja denke mache es so, dass ich wirklich den String splitten werde, denn nur aus einer Zeit kann man ja mit Date() nichts erzeugen. Werde dann auch ein Objekt übergeben.

                Nur ne Frage: wie kann es denn sein, dass der Fehler jemandem den ioBroker zerschießt?

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @Ben1983 last edited by

                  @ben1983 sagte in Bei bestimmtem String stürzt Javascript Instanz ab:

                  Nur ne Frage: wie kann es denn sein, dass der Fehler jemandem den ioBroker zerschießt?

                  Eigentlich gar nicht. Mindestens der JavaScript-Adapter läuft ja in einem eigenen Prozess (außer der Compact-Mode ist aktiviert). Gibt da für mich keine technisch Erklärung für.

                  Wenn ich das fehlerhafte Script nun so nehme und ausprobiere, passiert wahrscheinlich wieder gar nix 🙂

                  Ben1983 1 Reply Last reply Reply Quote 0
                  • Ben1983
                    Ben1983 @haus-automatisierung last edited by Ben1983

                    @haus-automatisierung OK. Wundert mich jetzt auch etwas.

                    Hier mein finaler Code, der funktioniert.
                    Sollte das so ok sein?

                    // Prüfen,ob die angegebenen Zeit vor oder gleich der aktuellen ist
                    onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
                        const now = new Date();
                        const inputTime = new Date(`${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}-${messagedata.time}`);
                        if(inputTime){
                            callback({result:inputTime <= now});
                        }
                        else{
                            callback({result:false});
                        }
                    });
                    
                    async function checkTime(){
                        log((await messageToAsync("TimeBeforeOrEqualNow",{time:"8:33"},{timeout:5000})).result);
                    }
                    
                    checkTime();
                    

                    @haus-automatisierung ich stehe nur irgendwie noch auf dem Schlauch, wie ich das in meine Logik unterbringen soll?
                    Also ich habe einen Trigger durch "$Selector.on((obj)=>{....}

                    wenn ich jetzt darin die Funktion nutzen möchte, kann ich ja gar kein await nutzen, da es nicht in einer async funktion ist.
                    Somit würde ja die If Abfrage mit "undefined" abgehakt werden, bevor ein result zurückkommen kann.

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @Ben1983 last edited by

                      @ben1983 sagte in Bei bestimmtem String stürzt Javascript Instanz ab:

                      wenn ich jetzt darin die Funktion nutzen möchte, kann ich ja gar kein await nutzen, da es nicht in einer async funktion ist.

                      Warum nicht? Mach doch eine draus.

                      on({id:'dein.dp.oder.selektor', change:"ne"}, async function () {
                          // hier geht auch await
                      });
                      
                      Ben1983 1 Reply Last reply Reply Quote 2
                      • Ben1983
                        Ben1983 @Codierknecht last edited by Ben1983

                        @codierknecht Danke... oh man, da bin ich gar nicht drauf gekommen, da es eine Arrow Function ist 🙂

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        763
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        5
                        21
                        579
                        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