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. Java: Problem beim Verwalten von Fenster Status

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    551

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Java: Problem beim Verwalten von Fenster Status

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 2 Kommentatoren 271 Aufrufe 1 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.
  • L Offline
    L Offline
    Langer
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen

    habe ein Problem mit Java.
    Folgender Stand:

    1. Skript zur Erstellung der States:
    //Fenster Farbe
    createState('javascript.0.fenster.buero_strasse_farbe', {type: 'string',name: 'Buero_Strasse_Farbe'});
    .... usw
    //Fenster Last Aktion
    createState('javascript.0.fenster.buero_strasse_last', {type: 'string',name: 'Buero_Strasse_Last'});
    ..... usw
    //Fenster geöffnet
    createState('javascript.0.fenster.buero_strasse_offen', {type: 'string',name: 'Buero_Strasse_Offen'});
    .... usw 
    

    für weitere Fenster

    2: Skript mit den Statusabfragen der Fenster

    on({id: 'bshb.0.hdm:HomeMaticIP:3014F711A000009A185904C8.ShutterContact.value'}, function () {
         Window_Open("bshb.0.hdm:HomeMaticIP:3014F711A000009A185904C8.ShutterContact.value",
    		 "javascript.0.fenster.buero_strasse_farbe",
    		 "javascript.0.fenster.buero_strasse_last",
    		 "javascript.0.fenster.buero_strasse_offen");
    });
    ....... usw
    
    function Window_Open(objekt_status, farbe, last, offen) {
        if (getState(objekt_status).val === "OPEN") {
            setState(farbe,"#de3117",true);
            setState(last,formatDate(new Date(), "TT.MM.JJ SS:mm:ss").toString(),true);
        } else {
            setState(farbe,"#2f2d2d",true);
            var startDate = new Date(getState(last).val);
            var endDate = new Date(formatDate(new Date(), "TT.MM.JJ SS:mm:ss"));
            var differenz = Sekundenumwandeln(endDate.getTime() - startDate.getTime());
            setState(offen,differenz,true);
        };
    };
    
    function fuehrendeNull(wert) {
      if (wert < 10) return "0" + parseInt(wert);
      else return parseInt(wert);
    }
    
    function Sekundenumwandeln(Sekundenzahl) {
      Sekundenzahl = Math.abs(Sekundenzahl)
      return fuehrendeNull((Sekundenzahl/60/60)%24) + ":" +
             fuehrendeNull((Sekundenzahl/60)%60) + ":" + fuehrendeNull(Sekundenzahl%60);
    }
    

    Wird ein Fenster geöffnet wird in "last" folgendes Eingetragen: 29.01.21 16:40:06
    Beim Schließen des Fensters wird in "offen" folgendes Eingetragen: NaN:NaN:NaN sollte aber zB: 00:06:12 sein.

    Wo liegt mein Fehler?

    MfG
    Wastl

    paul53P 1 Antwort Letzte Antwort
    0
    • L Langer

      Hallo zusammen

      habe ein Problem mit Java.
      Folgender Stand:

      1. Skript zur Erstellung der States:
      //Fenster Farbe
      createState('javascript.0.fenster.buero_strasse_farbe', {type: 'string',name: 'Buero_Strasse_Farbe'});
      .... usw
      //Fenster Last Aktion
      createState('javascript.0.fenster.buero_strasse_last', {type: 'string',name: 'Buero_Strasse_Last'});
      ..... usw
      //Fenster geöffnet
      createState('javascript.0.fenster.buero_strasse_offen', {type: 'string',name: 'Buero_Strasse_Offen'});
      .... usw 
      

      für weitere Fenster

      2: Skript mit den Statusabfragen der Fenster

      on({id: 'bshb.0.hdm:HomeMaticIP:3014F711A000009A185904C8.ShutterContact.value'}, function () {
           Window_Open("bshb.0.hdm:HomeMaticIP:3014F711A000009A185904C8.ShutterContact.value",
      		 "javascript.0.fenster.buero_strasse_farbe",
      		 "javascript.0.fenster.buero_strasse_last",
      		 "javascript.0.fenster.buero_strasse_offen");
      });
      ....... usw
      
      function Window_Open(objekt_status, farbe, last, offen) {
          if (getState(objekt_status).val === "OPEN") {
              setState(farbe,"#de3117",true);
              setState(last,formatDate(new Date(), "TT.MM.JJ SS:mm:ss").toString(),true);
          } else {
              setState(farbe,"#2f2d2d",true);
              var startDate = new Date(getState(last).val);
              var endDate = new Date(formatDate(new Date(), "TT.MM.JJ SS:mm:ss"));
              var differenz = Sekundenumwandeln(endDate.getTime() - startDate.getTime());
              setState(offen,differenz,true);
          };
      };
      
      function fuehrendeNull(wert) {
        if (wert < 10) return "0" + parseInt(wert);
        else return parseInt(wert);
      }
      
      function Sekundenumwandeln(Sekundenzahl) {
        Sekundenzahl = Math.abs(Sekundenzahl)
        return fuehrendeNull((Sekundenzahl/60/60)%24) + ":" +
               fuehrendeNull((Sekundenzahl/60)%60) + ":" + fuehrendeNull(Sekundenzahl%60);
      }
      

      Wird ein Fenster geöffnet wird in "last" folgendes Eingetragen: 29.01.21 16:40:06
      Beim Schließen des Fensters wird in "offen" folgendes Eingetragen: NaN:NaN:NaN sollte aber zB: 00:06:12 sein.

      Wo liegt mein Fehler?

      MfG
      Wastl

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @langer sagte: habe ein Problem mit Java.

      Nein, mit Javascript.

      @langer sagte: Wo liegt mein Fehler?

      Zeile 15: new Date(datum) kann mit dem Datumsformat "TT.MM.JJ" nichts anfangen. Mit dem Format "YYYY-MM-DD hh:mm:ss" (Zeile 12) sollte es funktionieren. .getTime() liefert keine s, sondern ms.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      L 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @langer sagte: habe ein Problem mit Java.

        Nein, mit Javascript.

        @langer sagte: Wo liegt mein Fehler?

        Zeile 15: new Date(datum) kann mit dem Datumsformat "TT.MM.JJ" nichts anfangen. Mit dem Format "YYYY-MM-DD hh:mm:ss" (Zeile 12) sollte es funktionieren. .getTime() liefert keine s, sondern ms.

        L Offline
        L Offline
        Langer
        schrieb am zuletzt editiert von
        #3

        @paul53

        Herzlichen Dank!!!! Funktioniert.

        MfG
        Wastl

        paul53P 1 Antwort Letzte Antwort
        0
        • L Langer

          @paul53

          Herzlichen Dank!!!! Funktioniert.

          MfG
          Wastl

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @langer
          Zeilen 16 und 17 und die Funktionen unten sollten sich ersetzen lassen durch:

                  var differenz = formatDate(Date.now() - startDate.getTime(), 'hh:mm:ss');
          

          , wenn das Fenster nicht länger als 24 h offen sein kann.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          L 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @langer
            Zeilen 16 und 17 und die Funktionen unten sollten sich ersetzen lassen durch:

                    var differenz = formatDate(Date.now() - startDate.getTime(), 'hh:mm:ss');
            

            , wenn das Fenster nicht länger als 24 h offen sein kann.

            L Offline
            L Offline
            Langer
            schrieb am zuletzt editiert von
            #5

            @paul53

            nochmals Herzlichen Dank, habe es so umgesetzt wie vorgeschlagen!

            MfG
            Wastl

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


            Support us

            ioBroker
            Community Adapters
            Donate

            397

            Online

            32.6k

            Benutzer

            81.9k

            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