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. ioBroker Allgemein
  4. Javascript Adapter Frage

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    326

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

Javascript Adapter Frage

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
10 Beiträge 5 Kommentatoren 591 Aufrufe 5 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.
  • teletapiT Offline
    teletapiT Offline
    teletapi
    schrieb am zuletzt editiert von
    #1

    Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
    Gruß
    Hawe

    paul53P haus-automatisierungH AsgothianA CodierknechtC 4 Antworten Letzte Antwort
    0
    • teletapiT teletapi

      Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
      Gruß
      Hawe

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

      @teletapi sagte: versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen

      Wie?

      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

      1 Antwort Letzte Antwort
      0
      • teletapiT teletapi

        Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
        Gruß
        Hawe

        haus-automatisierungH Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        @teletapi Tipp: Erstelle direkt deine Datenpunkte in 0_userdata.0 mit dem JavaScript-Adapter und nicht in der javascript.0. Struktur.

        Ansonsten zeig mal das Script, welches sich so verhält.

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

        1 Antwort Letzte Antwort
        0
        • teletapiT teletapi

          Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
          Gruß
          Hawe

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von
          #4

          @teletapi sagte in Javascript Adapter Frage:

          Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
          Gruß
          Hawe

          Manuell erzeugte datenpunkte gehören nicht in den namespace von Adaptern sondern unter 0_userdata. Die adapter namespaces sind für adapter-interne datenpunkte vorgesehen. Es ist denkbar das der JS adapter da code zu hat das sicher zu stellen.

          A.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @teletapi sagte in Javascript Adapter Frage:

            Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
            Gruß
            Hawe

            Manuell erzeugte datenpunkte gehören nicht in den namespace von Adaptern sondern unter 0_userdata. Die adapter namespaces sind für adapter-interne datenpunkte vorgesehen. Es ist denkbar das der JS adapter da code zu hat das sicher zu stellen.

            A.

            haus-automatisierungH Offline
            haus-automatisierungH Offline
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @asgothian sagte in Javascript Adapter Frage:

            Es ist denkbar das der JS adapter da code zu hat das sicher zu stellen.

            Hat er nicht - alles in javascript.0 (ist ja der "eigene Namespace" der Scripts) und 0_userdata.0 ist erlaubt.

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

            1 Antwort Letzte Antwort
            0
            • teletapiT teletapi

              Ich muss jetzt nochmal fragen, ich hatte gestern versucht unter javascript.0.XXXX einen datenpunkt zu erzeugen mittels der Funktion in Iobroker skript Das funktioniert auch aber der Datenpunkt erscheint nach dem erstellen nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX und ich kann das auch nicht ändern. Hab das jetzt sooft probiert komm da aber im Moment garnicht weiter. Könnte mir da mal jemand helfen .
              Gruß
              Hawe

              CodierknechtC Offline
              CodierknechtC Offline
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @teletapi sagte in Javascript Adapter Frage:

              nicht unter Javascript.0.XXX sondern unter javascript.0.scriptproblem.XXXX

              Dann hast Du das in Deinem Script auch so vorgesehen.
              Ohne besonderes Zutun - also per createState('meinState') - erscheint ein State unter javascript.0.

              Dass der da nicht hingehört, wurde bereits gesagt.

              Aber ohne das Script zu sehen bleibt unsere Glaskugel recht trüb.

              "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

              1 Antwort Letzte Antwort
              2
              • teletapiT Offline
                teletapiT Offline
                teletapi
                schrieb am zuletzt editiert von
                #7

                Jetzt im Moment hatte ich garkein script dazu ich wollte nur nochmal versuchen einen datenpunkt unter dem Rootverzeichnis javascript.0.XX zu erstellen. Gestern hatte ich mir mithilfe von Chatgpt ein script erstellen lassen um aus einem wert die differenz pro tag erstellen zu lassen Chatgpt hatte dazu den Datenpunkt unter javascript.0.XXX erstellen wollen was aber nicht funktionierte weil der Datenpunkt dann immer unter javascrip.0.scriptproblem.XXXX auftauchte und somit das script nicht laufen konnte und ich auch nicht wirklich einen weg gefunden hatte das zu ändern. Irgendwie hab ich das wohl hinbekommen. Möglicherweise ist das ja falsch aber ich habe ja viele datenpunkte im Javascript Adapter dann aber in Unterordner..

                // Funktion, die das Skript periodisch ausführt
                function updateDailyEnergy() {
                    // Datenpunkt für die gesamte erzeugte Energie
                    const totalEnergyDP = 'modbus.0.holdingRegisters.1086_Total_PV_Energy';
                    // Datenpunkt für die täglich erzeugte Energie
                    const dailyEnergyDP = 'javascript.0.PV_Daily_Energy';
                
                    // Heutiges Datum
                    const today = new Date();
                    today.setHours(0, 0, 0, 0); // Setze Zeit auf Mitternacht
                
                    // Gestriges Datum
                    const yesterday = new Date(today);
                    yesterday.setDate(yesterday.getDate() - 1);
                
                    // Datenpunktwerte lesen
                    getState(totalEnergyDP, (err, state) => {
                        if (err) {
                            console.error('Fehler beim Lesen des Datenpunkts für die gesamte erzeugte Energie:', err);
                            return;
                        }
                        
                        const totalEnergy = state.val || 0; // Gesamte erzeugte Energie heute
                        console.log('Gesamte erzeugte Energie heute:', totalEnergy);
                
                        getState(dailyEnergyDP, (err, state) => {
                            if (err) {
                                console.error('Fehler beim Lesen des Datenpunkts für die täglich erzeugte Energie:', err);
                                return;
                            }
                
                            const lastTotalEnergy = state.val || 0; // Gesamte erzeugte Energie gestern
                            console.log('Gesamte erzeugte Energie gestern:', lastTotalEnergy);
                            
                            // Täglich erzeugte Energie berechnen
                            const dailyEnergy = totalEnergy - lastTotalEnergy;
                
                            console.log('Täglich erzeugte Energie:', dailyEnergy);
                
                            // Täglich erzeugte Energie in den entsprechenden Datenpunkt schreiben
                            setState(dailyEnergyDP, dailyEnergy, true, (err) => {
                                if (err) {
                                    console.error('Fehler beim Schreiben des Datenpunkts für die täglich erzeugte Energie:', err);
                                    return;
                                }
                                console.log('Täglich erzeugte Energie erfolgreich aktualisiert:', dailyEnergy);
                            });
                        });
                    });
                }
                
                // Funktion periodisch ausführen (alle 30 Minuten)
                updateDailyEnergy(); // Sofortiges Ausführen beim Start
                setInterval(updateDailyEnergy, 30 * 60 * 1000); // Alle 30 Minuten wiederholen
                
                haus-automatisierungH paul53P 2 Antworten Letzte Antwort
                0
                • teletapiT teletapi

                  Jetzt im Moment hatte ich garkein script dazu ich wollte nur nochmal versuchen einen datenpunkt unter dem Rootverzeichnis javascript.0.XX zu erstellen. Gestern hatte ich mir mithilfe von Chatgpt ein script erstellen lassen um aus einem wert die differenz pro tag erstellen zu lassen Chatgpt hatte dazu den Datenpunkt unter javascript.0.XXX erstellen wollen was aber nicht funktionierte weil der Datenpunkt dann immer unter javascrip.0.scriptproblem.XXXX auftauchte und somit das script nicht laufen konnte und ich auch nicht wirklich einen weg gefunden hatte das zu ändern. Irgendwie hab ich das wohl hinbekommen. Möglicherweise ist das ja falsch aber ich habe ja viele datenpunkte im Javascript Adapter dann aber in Unterordner..

                  // Funktion, die das Skript periodisch ausführt
                  function updateDailyEnergy() {
                      // Datenpunkt für die gesamte erzeugte Energie
                      const totalEnergyDP = 'modbus.0.holdingRegisters.1086_Total_PV_Energy';
                      // Datenpunkt für die täglich erzeugte Energie
                      const dailyEnergyDP = 'javascript.0.PV_Daily_Energy';
                  
                      // Heutiges Datum
                      const today = new Date();
                      today.setHours(0, 0, 0, 0); // Setze Zeit auf Mitternacht
                  
                      // Gestriges Datum
                      const yesterday = new Date(today);
                      yesterday.setDate(yesterday.getDate() - 1);
                  
                      // Datenpunktwerte lesen
                      getState(totalEnergyDP, (err, state) => {
                          if (err) {
                              console.error('Fehler beim Lesen des Datenpunkts für die gesamte erzeugte Energie:', err);
                              return;
                          }
                          
                          const totalEnergy = state.val || 0; // Gesamte erzeugte Energie heute
                          console.log('Gesamte erzeugte Energie heute:', totalEnergy);
                  
                          getState(dailyEnergyDP, (err, state) => {
                              if (err) {
                                  console.error('Fehler beim Lesen des Datenpunkts für die täglich erzeugte Energie:', err);
                                  return;
                              }
                  
                              const lastTotalEnergy = state.val || 0; // Gesamte erzeugte Energie gestern
                              console.log('Gesamte erzeugte Energie gestern:', lastTotalEnergy);
                              
                              // Täglich erzeugte Energie berechnen
                              const dailyEnergy = totalEnergy - lastTotalEnergy;
                  
                              console.log('Täglich erzeugte Energie:', dailyEnergy);
                  
                              // Täglich erzeugte Energie in den entsprechenden Datenpunkt schreiben
                              setState(dailyEnergyDP, dailyEnergy, true, (err) => {
                                  if (err) {
                                      console.error('Fehler beim Schreiben des Datenpunkts für die täglich erzeugte Energie:', err);
                                      return;
                                  }
                                  console.log('Täglich erzeugte Energie erfolgreich aktualisiert:', dailyEnergy);
                              });
                          });
                      });
                  }
                  
                  // Funktion periodisch ausführen (alle 30 Minuten)
                  updateDailyEnergy(); // Sofortiges Ausführen beim Start
                  setInterval(updateDailyEnergy, 30 * 60 * 1000); // Alle 30 Minuten wiederholen
                  
                  haus-automatisierungH Offline
                  haus-automatisierungH Offline
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von haus-automatisierung
                  #8

                  @teletapi sagte in Javascript Adapter Frage:

                  wollte nur nochmal versuchen einen datenpunkt unter dem Rootverzeichnis javascript.0.XX zu erstellen

                  Dann lass den Namespace javascript.0. in der ID weg.

                  Dein Script legt aber nirgendwo einen neuen State an, sondern liest und schreibt nur diesen State?!

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

                  1 Antwort Letzte Antwort
                  0
                  • teletapiT teletapi

                    Jetzt im Moment hatte ich garkein script dazu ich wollte nur nochmal versuchen einen datenpunkt unter dem Rootverzeichnis javascript.0.XX zu erstellen. Gestern hatte ich mir mithilfe von Chatgpt ein script erstellen lassen um aus einem wert die differenz pro tag erstellen zu lassen Chatgpt hatte dazu den Datenpunkt unter javascript.0.XXX erstellen wollen was aber nicht funktionierte weil der Datenpunkt dann immer unter javascrip.0.scriptproblem.XXXX auftauchte und somit das script nicht laufen konnte und ich auch nicht wirklich einen weg gefunden hatte das zu ändern. Irgendwie hab ich das wohl hinbekommen. Möglicherweise ist das ja falsch aber ich habe ja viele datenpunkte im Javascript Adapter dann aber in Unterordner..

                    // Funktion, die das Skript periodisch ausführt
                    function updateDailyEnergy() {
                        // Datenpunkt für die gesamte erzeugte Energie
                        const totalEnergyDP = 'modbus.0.holdingRegisters.1086_Total_PV_Energy';
                        // Datenpunkt für die täglich erzeugte Energie
                        const dailyEnergyDP = 'javascript.0.PV_Daily_Energy';
                    
                        // Heutiges Datum
                        const today = new Date();
                        today.setHours(0, 0, 0, 0); // Setze Zeit auf Mitternacht
                    
                        // Gestriges Datum
                        const yesterday = new Date(today);
                        yesterday.setDate(yesterday.getDate() - 1);
                    
                        // Datenpunktwerte lesen
                        getState(totalEnergyDP, (err, state) => {
                            if (err) {
                                console.error('Fehler beim Lesen des Datenpunkts für die gesamte erzeugte Energie:', err);
                                return;
                            }
                            
                            const totalEnergy = state.val || 0; // Gesamte erzeugte Energie heute
                            console.log('Gesamte erzeugte Energie heute:', totalEnergy);
                    
                            getState(dailyEnergyDP, (err, state) => {
                                if (err) {
                                    console.error('Fehler beim Lesen des Datenpunkts für die täglich erzeugte Energie:', err);
                                    return;
                                }
                    
                                const lastTotalEnergy = state.val || 0; // Gesamte erzeugte Energie gestern
                                console.log('Gesamte erzeugte Energie gestern:', lastTotalEnergy);
                                
                                // Täglich erzeugte Energie berechnen
                                const dailyEnergy = totalEnergy - lastTotalEnergy;
                    
                                console.log('Täglich erzeugte Energie:', dailyEnergy);
                    
                                // Täglich erzeugte Energie in den entsprechenden Datenpunkt schreiben
                                setState(dailyEnergyDP, dailyEnergy, true, (err) => {
                                    if (err) {
                                        console.error('Fehler beim Schreiben des Datenpunkts für die täglich erzeugte Energie:', err);
                                        return;
                                    }
                                    console.log('Täglich erzeugte Energie erfolgreich aktualisiert:', dailyEnergy);
                                });
                            });
                        });
                    }
                    
                    // Funktion periodisch ausführen (alle 30 Minuten)
                    updateDailyEnergy(); // Sofortiges Ausführen beim Start
                    setInterval(updateDailyEnergy, 30 * 60 * 1000); // Alle 30 Minuten wiederholen
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #9

                    @teletapi
                    Es gibt 3 Möglichkeiten in Javascript per createState() einen Datenpunkt zu erstellen:

                    createState('XXXX', 0, common); // erstellt DP "javascript.N.XXXX" (N = JS-Instanznr.)
                    createState('javascript.0.XXXX', 0, common); // erstellt DP "javascript.0.XXXX" 
                    createState('0_userdata.0.XXXX', 0, common); // erstellt DP "0_userdata.0.XXXX"
                    

                    EDIT: Die 3. Version ist zu bevorzugen.

                    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

                    1 Antwort Letzte Antwort
                    0
                    • teletapiT Offline
                      teletapiT Offline
                      teletapi
                      schrieb am zuletzt editiert von
                      #10

                      Danke euch, man lernt halt nie aus

                      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
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      570

                      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