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. gewünschte Zeit mit gewünschter Temperatur

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

gewünschte Zeit mit gewünschter Temperatur

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 395 Aufrufe 3 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.
  • S Offline
    S Offline
    Sasa1887
    schrieb am zuletzt editiert von
    #1

    Moin zusammen,

    das ist glaub ich mein erster Beitrag hier. Habe mir einen Raspberry angeschafft zur Steuerung meiner Smart Home Geräte. Habe viel hier im Forum gelesen und mich quasi weitergebildet. Nun bin ich aber am verzweifeln, weil ich auch keine Ahnung von Javaskript habe.
    Folgendes Projekt wollte ich umsetzen. Ich habe im Wohnzimmer ein Fritz!DECT 301 Thermostat. Das soll zu gewissen Zeiten auf eine bestimmte Temperatur stellen. Damit meine Freundin diese Zeiten auch ändern kann, wollte ich es in der Vis darstellen. Dafür habe ich für jeden Tag vier Zeitdatenpunkte angelegt (montagZeit1, montagZeit2 usw.) und vier Temperaturdatenpunkte angelegt (montagTemp1, montagTemp2 usw.) Also montagZeit1 gehört zu montagTemp1. Jetzt wollte ich anhand eines Skript festlegen welche Zeit gerade aktuell ist und welche Temperatur aktuell ist. Dafür habe ich zwei weitere Datenpunkte angelegt. lastReachedTime und lastReachedTemp. Nun ist es so, dass ich im Protokoll keine Fehlermeldung bekomme und das Skript immer die Zeit von sonntagZeit4 und die dazugehörige Temperatur von sonntagTemp4 nimmt.

    // Die folgenden Datenpunkt-Namen anpassen entsprechend Ihrer Bezeichnungen
    const daysOfWeek = ['montag', 'dienstag', 'mittwoch', 'donnerstag', 'freitag', 'samstag', 'sonntag'];
    const timeDataPoints = [];
    const tempDataPoints = [];
    
    // Zeit- und Temperaturdatenpunkte für jeden Tag
    for (const day of daysOfWeek) {
        for (let i = 1; i <= 4; i++) {
            timeDataPoints.push(`0_userdata.0.Heizung.Wohnzimmer.${day}Zeit${i}`);
            tempDataPoints.push(`0_userdata.0.Heizung.Wohnzimmer.${day}Temp${i}`);
        }
    }
    
    // Funktion, um die zuletzt erreichte Zeit und Temperatur zu ermitteln
    function updateLastReachedTimeAndTemp() {
        let lastReachedTime = null;
        let lastReachedTemp = null;
    
        // Aktuelle Zeit im "HH:MM"-Format
        const currentTime = new Date().toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' });
        
        console.log('Aktuelle Zeit:', currentTime);
    
        for (let i = 0; i < timeDataPoints.length; i++) {
            const timeString = getState(timeDataPoints[i]).val;
            if (timeString) {
                // Direkt als Zeichenkette übernehmen
                lastReachedTime = timeString;
                
                // Temperaturwert als Zahl konvertieren
                lastReachedTemp = parseFloat(getState(tempDataPoints[i]).val);
            }
        }
    
        console.log('Zuletzt erreichte Zeit:', lastReachedTime);
        console.log('Zuletzt erreichte Temperatur:', lastReachedTemp);
    
        // Datenpunkte für die zuletzt erreichte Zeit und Temperatur aktualisieren
        setState('0_userdata.0.Heizung.Wohnzimmer.lastReachedTime', lastReachedTime, true);
        setState('0_userdata.0.Heizung.Wohnzimmer.lastReachedTemp', lastReachedTemp, true);
    }
    
    // Schleife mit Zeitintervall für regelmäßige Aktualisierung
    setInterval(updateLastReachedTimeAndTemp, 60000); // Aktualisiert alle 60 Sekunden (kann angepasst werden)
    
    

    Kann mir da jemand helfen? Im übrigen, das alles hab ich mit ChatGPT versucht zu meistern. Also ich hab ChatGPT alle meine Infos gegeben und gesagt was ich möchte.
    Node.js: 18.18.2
    npm:9.8.1

    Schon mal Danke für eure Hilfe

    Gruß Sascha

    M 1 Antwort Letzte Antwort
    0
    • S Sasa1887

      Moin zusammen,

      das ist glaub ich mein erster Beitrag hier. Habe mir einen Raspberry angeschafft zur Steuerung meiner Smart Home Geräte. Habe viel hier im Forum gelesen und mich quasi weitergebildet. Nun bin ich aber am verzweifeln, weil ich auch keine Ahnung von Javaskript habe.
      Folgendes Projekt wollte ich umsetzen. Ich habe im Wohnzimmer ein Fritz!DECT 301 Thermostat. Das soll zu gewissen Zeiten auf eine bestimmte Temperatur stellen. Damit meine Freundin diese Zeiten auch ändern kann, wollte ich es in der Vis darstellen. Dafür habe ich für jeden Tag vier Zeitdatenpunkte angelegt (montagZeit1, montagZeit2 usw.) und vier Temperaturdatenpunkte angelegt (montagTemp1, montagTemp2 usw.) Also montagZeit1 gehört zu montagTemp1. Jetzt wollte ich anhand eines Skript festlegen welche Zeit gerade aktuell ist und welche Temperatur aktuell ist. Dafür habe ich zwei weitere Datenpunkte angelegt. lastReachedTime und lastReachedTemp. Nun ist es so, dass ich im Protokoll keine Fehlermeldung bekomme und das Skript immer die Zeit von sonntagZeit4 und die dazugehörige Temperatur von sonntagTemp4 nimmt.

      // Die folgenden Datenpunkt-Namen anpassen entsprechend Ihrer Bezeichnungen
      const daysOfWeek = ['montag', 'dienstag', 'mittwoch', 'donnerstag', 'freitag', 'samstag', 'sonntag'];
      const timeDataPoints = [];
      const tempDataPoints = [];
      
      // Zeit- und Temperaturdatenpunkte für jeden Tag
      for (const day of daysOfWeek) {
          for (let i = 1; i <= 4; i++) {
              timeDataPoints.push(`0_userdata.0.Heizung.Wohnzimmer.${day}Zeit${i}`);
              tempDataPoints.push(`0_userdata.0.Heizung.Wohnzimmer.${day}Temp${i}`);
          }
      }
      
      // Funktion, um die zuletzt erreichte Zeit und Temperatur zu ermitteln
      function updateLastReachedTimeAndTemp() {
          let lastReachedTime = null;
          let lastReachedTemp = null;
      
          // Aktuelle Zeit im "HH:MM"-Format
          const currentTime = new Date().toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' });
          
          console.log('Aktuelle Zeit:', currentTime);
      
          for (let i = 0; i < timeDataPoints.length; i++) {
              const timeString = getState(timeDataPoints[i]).val;
              if (timeString) {
                  // Direkt als Zeichenkette übernehmen
                  lastReachedTime = timeString;
                  
                  // Temperaturwert als Zahl konvertieren
                  lastReachedTemp = parseFloat(getState(tempDataPoints[i]).val);
              }
          }
      
          console.log('Zuletzt erreichte Zeit:', lastReachedTime);
          console.log('Zuletzt erreichte Temperatur:', lastReachedTemp);
      
          // Datenpunkte für die zuletzt erreichte Zeit und Temperatur aktualisieren
          setState('0_userdata.0.Heizung.Wohnzimmer.lastReachedTime', lastReachedTime, true);
          setState('0_userdata.0.Heizung.Wohnzimmer.lastReachedTemp', lastReachedTemp, true);
      }
      
      // Schleife mit Zeitintervall für regelmäßige Aktualisierung
      setInterval(updateLastReachedTimeAndTemp, 60000); // Aktualisiert alle 60 Sekunden (kann angepasst werden)
      
      

      Kann mir da jemand helfen? Im übrigen, das alles hab ich mit ChatGPT versucht zu meistern. Also ich hab ChatGPT alle meine Infos gegeben und gesagt was ich möchte.
      Node.js: 18.18.2
      npm:9.8.1

      Schon mal Danke für eure Hilfe

      Gruß Sascha

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von MCU
      #2

      @sasa1887
      timeString soll doch mit der aktuellen Zeit verglichen werden oder?
      Da muss aber auch noch der Tag mit eingearbeitet werden.
      Das kann so nicht funktionieren.
      Später mal weiter.

      Dafür gibt es den Adapter heatingcontrol.
      e2622f3a-88d9-462b-ace9-1572f99aae56-image.png

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      S 1 Antwort Letzte Antwort
      1
      • M MCU

        @sasa1887
        timeString soll doch mit der aktuellen Zeit verglichen werden oder?
        Da muss aber auch noch der Tag mit eingearbeitet werden.
        Das kann so nicht funktionieren.
        Später mal weiter.

        Dafür gibt es den Adapter heatingcontrol.
        e2622f3a-88d9-462b-ace9-1572f99aae56-image.png

        S Offline
        S Offline
        Sasa1887
        schrieb am zuletzt editiert von
        #3

        @mcu Vielen Dank für deine Antwort.
        Ich hab deine Antwort mal bei ChatGPT eingegeben. Der hat sich gleich entschuldigt und gesagt, dass du Recht hast :grin:
        Ich hab mir den Adapter HeatingControl mal angeschaut. Damit komm ich ja garnicht klar. Gibt es da ne Anleitung auf deutsch. Finde alles nur auf Englisch.

        OliverIOO 1 Antwort Letzte Antwort
        0
        • S Sasa1887

          @mcu Vielen Dank für deine Antwort.
          Ich hab deine Antwort mal bei ChatGPT eingegeben. Der hat sich gleich entschuldigt und gesagt, dass du Recht hast :grin:
          Ich hab mir den Adapter HeatingControl mal angeschaut. Damit komm ich ja garnicht klar. Gibt es da ne Anleitung auf deutsch. Finde alles nur auf Englisch.

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

          @sasa1887

          ach gäbe es nur so etwas wie ein übersetzungstool im internet....

          huch!!!!

          https://github-com.translate.goog/rg-engineering/ioBroker.heatingcontrol?_x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=de&_x_tr_pto=wapp

          ist zwar nicht immer perfekt, aber soweit sollte man das schon verstehen können

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

          S 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @sasa1887

            ach gäbe es nur so etwas wie ein übersetzungstool im internet....

            huch!!!!

            https://github-com.translate.goog/rg-engineering/ioBroker.heatingcontrol?_x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=de&_x_tr_pto=wapp

            ist zwar nicht immer perfekt, aber soweit sollte man das schon verstehen können

            S Offline
            S Offline
            Sasa1887
            schrieb am zuletzt editiert von
            #5

            @oliverio Vielen Dank, auf die Idee war ich auch schon gekommen. Ich hab trotzdem fast nur Bahnhof verstanden. Nun hab ich aber die ganzen Datenpunkte für die Perioden gefunden. Da komm ich auf jeden Fall weiter.
            Ich danke euch erstmal für eure Hilfe.

            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

            727

            Online

            32.6k

            Benutzer

            82.0k

            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