Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Bei bestimmtem String stürzt Javascript Instanz ab

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    952

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Bei bestimmtem String stürzt Javascript Instanz ab

Geplant Angeheftet Gesperrt Verschoben JavaScript
21 Beiträge 5 Kommentatoren 635 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich baue mir gerade eine Funtion, die mir Zeitangaben prüfen kann.

    // Prüfen,ob die angegebenen Zeit vor oder gleich der aktuellen ist
    onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
        const now = new Date();
        const actualTime = `${now.getHours()}:${now.getMinutes()}`;
        log(messagedata);
        log(messagedata.time);
        log(actualTime)
        callback(messagedata.time <= actualTime);
    });
    
    async function checkTime(){
        const ausgabe = await messageToAsync("TimeBeforeOrEqualNow",{time:"08:33"},{timeout:5000});
    
    }
    
    checkTime();
    

    Die Visu gibt auch über das "time Date" Widget so den getesteten Wert von "08:30" raus.
    Ich habe gerade nur gemerkt, dass die aktuelle Zeit ohne Führende 0 gehandelt wird.
    also "8:30". Wenn ich das als Eingabe eintrage, dann Stürzt die Instanz ab. Warum?

    CodierknechtC T 2 Antworten Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo,

      ich baue mir gerade eine Funtion, die mir Zeitangaben prüfen kann.

      // Prüfen,ob die angegebenen Zeit vor oder gleich der aktuellen ist
      onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
          const now = new Date();
          const actualTime = `${now.getHours()}:${now.getMinutes()}`;
          log(messagedata);
          log(messagedata.time);
          log(actualTime)
          callback(messagedata.time <= actualTime);
      });
      
      async function checkTime(){
          const ausgabe = await messageToAsync("TimeBeforeOrEqualNow",{time:"08:33"},{timeout:5000});
      
      }
      
      checkTime();
      

      Die Visu gibt auch über das "time Date" Widget so den getesteten Wert von "08:30" raus.
      Ich habe gerade nur gemerkt, dass die aktuelle Zeit ohne Führende 0 gehandelt wird.
      also "8:30". Wenn ich das als Eingabe eintrage, dann Stürzt die Instanz ab. Warum?

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @ben1983
      Liegt Dein Script in "global"?

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      Ben1983B 1 Antwort Letzte Antwort
      0
      • Ben1983B Ben1983

        Hallo,

        ich baue mir gerade eine Funtion, die mir Zeitangaben prüfen kann.

        // Prüfen,ob die angegebenen Zeit vor oder gleich der aktuellen ist
        onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
            const now = new Date();
            const actualTime = `${now.getHours()}:${now.getMinutes()}`;
            log(messagedata);
            log(messagedata.time);
            log(actualTime)
            callback(messagedata.time <= actualTime);
        });
        
        async function checkTime(){
            const ausgabe = await messageToAsync("TimeBeforeOrEqualNow",{time:"08:33"},{timeout:5000});
        
        }
        
        checkTime();
        

        Die Visu gibt auch über das "time Date" Widget so den getesteten Wert von "08:30" raus.
        Ich habe gerade nur gemerkt, dass die aktuelle Zeit ohne Führende 0 gehandelt wird.
        also "8:30". Wenn ich das als Eingabe eintrage, dann Stürzt die Instanz ab. Warum?

        T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        NICHT TESTEN

        Bei mir hat der resultierende Fehler den iobroker zerschossen spiele gerade ein Backup ein.

        @ben1983

        Bitte erstelle eine Github Issue.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @ben1983
          Liegt Dein Script in "global"?

          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          schrieb am zuletzt editiert von
          #4

          @codierknecht nein

          CodierknechtC 1 Antwort Letzte Antwort
          0
          • Ben1983B Ben1983

            @codierknecht nein

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

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

            @codierknecht nein

            Hatte ich mir jetzt schon gedacht, wenn @ticaki das reproduzieren kann.
            Hilft also nur, auf einen Fix zu warten oder sicherzustellen, dass der Wert in der benötigten Form verwendet wird.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            T 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

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

              @codierknecht nein

              Hatte ich mir jetzt schon gedacht, wenn @ticaki das reproduzieren kann.
              Hilft also nur, auf einen Fix zu warten oder sicherzustellen, dass der Wert in der benötigten Form verwendet wird.

              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von
              #6

              @codierknecht

              Das hier geht:

              onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
                  const now = new Date();
                  const actualTime = `${now.getHours()}:${now.getMinutes()}`;
                  log(messagedata.time <= actualTime);
                  log(messagedata.time);
                  log(actualTime)
                  callback({result: !!(messagedata.time <= actualTime)});
              });
               
              async function checkTime(){
                  try {
                      const ausgabe = await messageToAsync("TimeBeforeOrEqualNow",{time:"9:33"},{timeout:5000});
                      log(ausgabe.result)
                  } catch(e) {
                      log (e.message)
                      log ('error2')
                  }
              }
              

              Der Absturz der Instanz kommt von dem fehlenden try{};catch um den await. Das ist so auch richtig.

              Der Bug liegt daran das messageToAsnc einen Wert als Rückgabe erwartet und "false" als kein Wert interpretiert wird. Denke ich mal. @haus-automatisierung ?

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              OliverIOO haus-automatisierungH 2 Antworten Letzte Antwort
              0
              • T ticaki

                @codierknecht

                Das hier geht:

                onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
                    const now = new Date();
                    const actualTime = `${now.getHours()}:${now.getMinutes()}`;
                    log(messagedata.time <= actualTime);
                    log(messagedata.time);
                    log(actualTime)
                    callback({result: !!(messagedata.time <= actualTime)});
                });
                 
                async function checkTime(){
                    try {
                        const ausgabe = await messageToAsync("TimeBeforeOrEqualNow",{time:"9:33"},{timeout:5000});
                        log(ausgabe.result)
                    } catch(e) {
                        log (e.message)
                        log ('error2')
                    }
                }
                

                Der Absturz der Instanz kommt von dem fehlenden try{};catch um den await. Das ist so auch richtig.

                Der Bug liegt daran das messageToAsnc einen Wert als Rückgabe erwartet und "false" als kein Wert interpretiert wird. Denke ich mal. @haus-automatisierung ?

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                @ticaki

                oder log fängt zirkular referenzen nicht ab und loggt sich zu tode

                log(messagedata);
                

                weiß allerdings nicht, wie groß das objekt ist.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                T 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @ticaki

                  oder log fängt zirkular referenzen nicht ab und loggt sich zu tode

                  log(messagedata);
                  

                  weiß allerdings nicht, wie groß das objekt ist.

                  T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von ticaki
                  #8

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

                  @ticaki

                  oder log fängt zirkular referenzen nicht ab und loggt sich zu tode

                  log(messagedata);
                  

                  weiß allerdings nicht, wie groß das objekt ist.

                  Da die Funktion mit Rückgabewert true funktioniert und bei false den Error unknown errorzurück gibt, denke ich nicht, dass es das ist.

                  Code des TE nur um catch try erweitert 8:33 <= 10:46 == false Weil 8 > 1

                  10:46:15.827	info	javascript.0 (9472) script.js.Test.Skript_122: registered 0 subscriptions, 0 schedules, 1 message, 0 logs and 0 file subscriptions
                  10:46:15.831	info	javascript.0 (9472) script.js.Test.Skript_122: {'time':'8:33'}
                  10:46:15.831	info	javascript.0 (9472) script.js.Test.Skript_122: 8:33
                  10:46:15.831	info	javascript.0 (9472) script.js.Test.Skript_122: 10:46
                  10:46:15.834	info	javascript.0 (9472) script.js.Test.Skript_122: Unknown error
                  

                  @Ben1983

                  Von dem Fehler abgesehen halte ich nichts davon "Zahlen" per Stringvergleich zu vergleichen. Das hier ist da imho besser:

                  const now = new Date()
                  const actualTime = now.getHours()+now.getMinutes()/60;
                  const time = '8:33';
                  const timeAsArray = time.split(':')
                  const timeAsNumber = Number(timeAsArray[0]) + Number(timeAsArray[1])/60
                  
                  log(timeAsNumber <= actualTime);
                  

                  EDIT: Wie immer einen kleinen dämlichen Fehler im Code behoben :)

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    @codierknecht

                    Das hier geht:

                    onMessage("TimeBeforeOrEqualNow",(messagedata,callback)=>{
                        const now = new Date();
                        const actualTime = `${now.getHours()}:${now.getMinutes()}`;
                        log(messagedata.time <= actualTime);
                        log(messagedata.time);
                        log(actualTime)
                        callback({result: !!(messagedata.time <= actualTime)});
                    });
                     
                    async function checkTime(){
                        try {
                            const ausgabe = await messageToAsync("TimeBeforeOrEqualNow",{time:"9:33"},{timeout:5000});
                            log(ausgabe.result)
                        } catch(e) {
                            log (e.message)
                            log ('error2')
                        }
                    }
                    

                    Der Absturz der Instanz kommt von dem fehlenden try{};catch um den await. Das ist so auch richtig.

                    Der Bug liegt daran das messageToAsnc einen Wert als Rückgabe erwartet und "false" als kein Wert interpretiert wird. Denke ich mal. @haus-automatisierung ?

                    haus-automatisierungH Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #9

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

                    Der Bug liegt daran das messageToAsnc einen Wert als Rückgabe erwartet und "false" als kein Wert interpretiert wird. Denke ich mal. @haus-automatisierung ?

                    Das sollte auch funktionieren:

                    https://github.com/ioBroker/ioBroker.javascript/blob/939b0b0a70dd857684afc10be6732467fb3a5208/lib/sandbox.js#L3651-L3655

                    Du gibst ja als Objekt { result: false } zurück und nicht einfach nur false.

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    T 1 Antwort Letzte Antwort
                    0
                    • haus-automatisierungH haus-automatisierung

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

                      Der Bug liegt daran das messageToAsnc einen Wert als Rückgabe erwartet und "false" als kein Wert interpretiert wird. Denke ich mal. @haus-automatisierung ?

                      Das sollte auch funktionieren:

                      https://github.com/ioBroker/ioBroker.javascript/blob/939b0b0a70dd857684afc10be6732467fb3a5208/lib/sandbox.js#L3651-L3655

                      Du gibst ja als Objekt { result: false } zurück und nicht einfach nur false.

                      T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von ticaki
                      #10

                      @haus-automatisierung

                      Der TE gibt im seinem Beispiel code dort oben false zurück.

                      Oh sehe gerade das im Beispielcode auch ein Objekt zurück gegeben wird.
                      https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#messagetoasync

                      Aber ist es da wirklich zwingend das ein Objekt (oder ein Wert != null/undefined/0/''/false) zurück gegeben werden muß?

                                         if (res && res.error) {
                                              reject(res.error);
                                          } else {
                                              resolve(res);
                                          }
                      

                      Wäre doch da sinnvoller oder? Kann gerne ne PR machen, hab gesehen dass das Verhalten sich in allen sendToAsync Varianten wiederholt.

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      haus-automatisierungH 1 Antwort Letzte Antwort
                      0
                      • T ticaki

                        @haus-automatisierung

                        Der TE gibt im seinem Beispiel code dort oben false zurück.

                        Oh sehe gerade das im Beispielcode auch ein Objekt zurück gegeben wird.
                        https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#messagetoasync

                        Aber ist es da wirklich zwingend das ein Objekt (oder ein Wert != null/undefined/0/''/false) zurück gegeben werden muß?

                                           if (res && res.error) {
                                                reject(res.error);
                                            } else {
                                                resolve(res);
                                            }
                        

                        Wäre doch da sinnvoller oder? Kann gerne ne PR machen, hab gesehen dass das Verhalten sich in allen sendToAsync Varianten wiederholt.

                        haus-automatisierungH Online
                        haus-automatisierungH Online
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #11

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

                        Aber ist es da wirklich zwingend das ein Objekt (oder ein Wert != null/undefined/0/''/false) zurück gegeben werden muß?

                        Aktuell ja. Das ist analog zu sendTo implementiert. Würde das nicht umstellen - was ist der Mehrwert? Die Blockly-Bausteine generieren den Code ja momentan auch so, dass immer ein Objekt zurückgeliefert wird:

                        https://github.com/ioBroker/ioBroker.javascript/blob/939b0b0a70dd857684afc10be6732467fb3a5208/src/public/google-blockly/own/blocks_trigger.js#L998

                        Intern ist das ja ein einfaches sendTo. Und da arbeitet man ja eigentlich immer mit Objekten. Finde ich auch sauber gelöst.

                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                        📚 Meine inoffizielle ioBroker Dokumentation

                        T 1 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

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

                          Aber ist es da wirklich zwingend das ein Objekt (oder ein Wert != null/undefined/0/''/false) zurück gegeben werden muß?

                          Aktuell ja. Das ist analog zu sendTo implementiert. Würde das nicht umstellen - was ist der Mehrwert? Die Blockly-Bausteine generieren den Code ja momentan auch so, dass immer ein Objekt zurückgeliefert wird:

                          https://github.com/ioBroker/ioBroker.javascript/blob/939b0b0a70dd857684afc10be6732467fb3a5208/src/public/google-blockly/own/blocks_trigger.js#L998

                          Intern ist das ja ein einfaches sendTo. Und da arbeitet man ja eigentlich immer mit Objekten. Finde ich auch sauber gelöst.

                          T Nicht stören
                          T Nicht stören
                          ticaki
                          schrieb am zuletzt editiert von
                          #12

                          @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. :)

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          haus-automatisierungH 1 Antwort Letzte Antwort
                          0
                          • T ticaki

                            @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-automatisierungH Online
                            haus-automatisierungH Online
                            haus-automatisierung
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #13

                            @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.

                            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                            📚 Meine inoffizielle ioBroker Dokumentation

                            Ben1983B 1 Antwort Letzte Antwort
                            0
                            • haus-automatisierungH haus-automatisierung

                              @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.

                              Ben1983B Offline
                              Ben1983B Offline
                              Ben1983
                              schrieb am zuletzt editiert von
                              #14

                              @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-automatisierungH T 2 Antworten Letzte Antwort
                              0
                              • Ben1983B Ben1983

                                @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-automatisierungH Online
                                haus-automatisierungH Online
                                haus-automatisierung
                                Developer Most Active
                                schrieb am zuletzt editiert von haus-automatisierung
                                #15

                                @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

                                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                📚 Meine inoffizielle ioBroker Dokumentation

                                Ben1983B 1 Antwort Letzte Antwort
                                1
                                • Ben1983B Ben1983

                                  @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?

                                  T Nicht stören
                                  T Nicht stören
                                  ticaki
                                  schrieb am zuletzt editiert von
                                  #16

                                  @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...

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  1 Antwort Letzte Antwort
                                  1
                                  • haus-automatisierungH 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

                                    Ben1983B Offline
                                    Ben1983B Offline
                                    Ben1983
                                    schrieb am zuletzt editiert von
                                    #17

                                    @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-automatisierungH 1 Antwort Letzte Antwort
                                    0
                                    • Ben1983B Ben1983

                                      @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-automatisierungH Online
                                      haus-automatisierungH Online
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #18

                                      @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 :)

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      Ben1983B 1 Antwort Letzte Antwort
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @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 :)

                                        Ben1983B Offline
                                        Ben1983B Offline
                                        Ben1983
                                        schrieb am zuletzt editiert von Ben1983
                                        #19

                                        @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.

                                        CodierknechtC 1 Antwort Letzte Antwort
                                        0
                                        • Ben1983B 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.

                                          CodierknechtC Online
                                          CodierknechtC Online
                                          Codierknecht
                                          Developer Most Active
                                          schrieb am zuletzt editiert von
                                          #20

                                          @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
                                          });
                                          

                                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                          HmIP|ZigBee|Tasmota|Unifi
                                          Zabbix Certified Specialist
                                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                          Ben1983B 1 Antwort Letzte Antwort
                                          2
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          756

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe