Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    7
    1
    272

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    252

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    903

Java: Problem beim Verwalten von Fenster Status

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 2 Kommentatoren 274 Aufrufe 1 Beobachtet
  • Ä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

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            631

            Online

            32.8k

            Benutzer

            82.8k

            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