Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Datenpunkt in Script neu einlesen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[gelöst] Datenpunkt in Script neu einlesen

[gelöst] Datenpunkt in Script neu einlesen

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 3 Posters 604 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    wrote on last edited by
    #1

    Ich steh gerade ein wenig auf dem Schlauch, ich definiere am Anfang meines Scripts eine Variable via getState und Verarbeite sie im Script weiter.

    Wenn ich nun händisch den Wert der Variablen im Datenpunkt bspw. von true auf false ändere und mir die Variable ausgeben lasse hat sich deren Wert nicht geändert. Starte ich das Script neu hat die Variable den neuen Wert.

    Das ganze leuchtet mir auch ein nur wie mache ich das ganze automatisch? Ist es möglich ein Script neu zu laden oder lediglich die Variablen?

    Vielleicht liegts an der Uhrzeit dass mir das nicht gelingen will.

    Bin für jeden Tipp dankbar

    Ich beantworte keine Fragen zu Themen via PN

    1 Reply Last reply
    0
    • R Offline
      R Offline
      RappiRN
      Most Active
      wrote on last edited by
      #2

      Dir wird wohl der trigger fehlen, hier mal ein Beispiel aus Blockly konvertiert:

      on({id: "hm-rpc.0.NEQ1508508.1.STATE"/*Bad_unten.STATE*/, change: "ne"}, function (obj) {
      

      Das muss jetzt nicht vollständig sein, ich kann nur Blockly! 😄

      Enrico

      1 Reply Last reply
      0
      • Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        wrote on last edited by
        #3

        Erstellt eine Subscription mit on() auf den Datenpunkt und hol den Aktuellen wert in die Variable.

        So wird sie immer Aktualisiert wenn sich was ändert.

        Gesendet von meinem m8 mit Tapatalk

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        1 Reply Last reply
        0
        • PeoplesP Offline
          PeoplesP Offline
          Peoples
          wrote on last edited by
          #4

          Ich habe das schlecht beschrieben :lol:

          Hier mal der Kopf meines Scripts:

          var Backup = [];                                        // Array für die Definition der Backuptypen und deren Details
          
          // Konfigurationen für das Standard-IoBroker Backup
          
              Backup[0] = [];
              Backup[0][0] = 'minimal';   // Backup Typ (nicht verändern!)
              Backup[0][1] = getState(instanz + pfad0 + 'Konfiguration.minimal.NamensZusatz').val;        // Names Zusatz, wird an den Dateinamen angehängt bspw. Master/Slave (falls gewünscht, ansonsten leer lassen) 
              Backup[0][2] = getState(instanz + pfad0 + 'Konfiguration.minimal.BackupLoeschenNach').val;  // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
              Backup[0][3] = getState(instanz + pfad0 + 'Konfiguration.minimal.FtpHost').val;             // FTP-Host
              Backup[0][4] = getState(instanz + pfad0 + 'Konfiguration.minimal.FtpDir').val;              // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
              Backup[0][5] = getState(instanz + pfad0 + 'Konfiguration.minimal.FtpUser').val;             // Username für FTP Server - Verbindung
              Backup[0][6] = getState(instanz + pfad0 + 'Konfiguration.minimal.FtpPw').val;               // Passwort für FTP Server - Verbindung
              Backup[0][7] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[0][8] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[0][9] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[0][10] = getState(instanz + pfad0 + 'Konfiguration.minimal.CifsMount').val;         // Festlegen ob CIFS-Mount genutzt werden soll 
              Backup[0][11] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
          
          // Konfigurationen für das Komplette-IoBroker Backup
          
              Backup[1] = [];
              Backup[1][0] = 'komplett';  // Backup Typ (nicht verändern)
              Backup[1][1] = getState(instanz + pfad0 + 'Konfiguration.komplett.NamensZusatz').val;       // Names Zusatz, wird an den Dateinamen angehängt bspw. Master/Slave (falls gewünscht, ansonsten leer lassen)
              Backup[1][2] = getState(instanz + pfad0 + 'Konfiguration.komplett.BackupLoeschenNach').val; // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
              Backup[1][3] = getState(instanz + pfad0 + 'Konfiguration.komplett.FtpHost').val;            // FTP-Host
              Backup[1][4] = getState(instanz + pfad0 + 'Konfiguration.komplett.FtpDir').val;             // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
              Backup[1][5] = getState(instanz + pfad0 + 'Konfiguration.komplett.FtpUser').val;            // Username für FTP Server - Verbindung
              Backup[1][6] = getState(instanz + pfad0 + 'Konfiguration.komplett.FtpPw').val;              // Passwort für FTP Server - Verbindung
              Backup[1][7] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[1][8] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[1][9] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[1][10] = getState(instanz + pfad0 + 'Konfiguration.minimal.CifsMount').val;       // Festlegen ob CIFS-Mount genutzt werden soll 
              Backup[1][11] = getState(instanz + pfad0 + 'Konfiguration.komplett.IoStopStart').val;         // Festlegen ob IoBroker gestoppt/gestartet wird 
          
          // Konfiguration für das CCU / pivCCU / Raspberrymatic Backup
          
              Backup[2] = [];
              Backup[2][0] = 'ccu'; // Backup Typ (nicht verändern)
              Backup[2][1] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
              Backup[2][2] = getState(instanz + pfad0 + 'Konfiguration.ccu.BackupLoeschenNach').val; // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
              Backup[2][3] = getState(instanz + pfad0 + 'Konfiguration.ccu.FtpHost').val;            // FTP-Host
              Backup[2][4] = getState(instanz + pfad0 + 'Konfiguration.ccu.FtpDir').val;             // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
              Backup[2][5] = getState(instanz + pfad0 + 'Konfiguration.ccu.FtpUser').val;            // Username für FTP Server - Verbindung
              Backup[2][6] = getState(instanz + pfad0 + 'Konfiguration.ccu.FtpPw').val;              // Passwort für FTP Server - Verbindung
              Backup[2][7] = getState(instanz + pfad0 + 'Konfiguration.ccu.CcuIp').val;              // IP-Adresse der CCU
              Backup[2][8] = getState(instanz + pfad0 + 'Konfiguration.ccu.CcuUser').val;            // Username der CCU
              Backup[2][9] = getState(instanz + pfad0 + 'Konfiguration.ccu.CcuPw').val;              // Passwort der CCU
              Backup[2][10] = getState(instanz + pfad0 + 'Konfiguration.minimal.CifsMount').val;         // Festlegen ob CIFS-Mount genutzt werden soll 
              Backup[2][11] = ''; // Nicht benötigt bei diesem BKP-Typ (nicht verändern!)
          
          var Mysql_DBname = getState(instanz + pfad0 + 'Konfiguration.Mysql.DbName').val;           // Name der Datenbank (wenn nicht verwendet leer lassen!)
          var Mysql_User = getState(instanz + pfad0 + 'Konfiguration.Mysql.DbUser').val;           // Benutzername für Datenbank (wenn nicht verwendet leer lassen!)
          var Mysql_PW = getState(instanz + pfad0 + 'Konfiguration.Mysql.DbPw').val;           // Passwort für Datenbank (wenn nicht verwendet leer lassen!)
          var Mysql_LN = getState(instanz + pfad0 + 'Konfiguration.Mysql.BackupLoeschenNach').val;           // DB-Backup löschen nach (wenn nicht verwendet leer lassen!)
          
          

          Ich lese die Werte der verschiedenen Datenpunkte in ein Array ein, welches ich im Nachgang in anderen Funktionen weiter auswerte /verwende.

          Mir geht es nun darum, dass die Werte des Arrays bei Änderung des Datenpunktwertes neu eingelesen werden.

          Alle Datenpunkte sind in den enum.functions aufgelistet und diese überwache ich via:

          $('state(functions=BackItUp)').on(function(obj) {
          
              BackupStellen();
          
          });
          

          Wenn es nun möglich wäre bei Änderung das Script automatisch zu stoppen und wieder zu Starten so wie wenn ich auf das Pause/Play Symbol drücke wären die Werte aktuell.

          Ich habe auch überlegt den Zwischenweg über eine weitere Funktion zu gehen:

          function werteinlesen(){
          var1 = getState(blabla)
          var2 = getState(blabla)
          usw.
          }
          var Backup =[]
          
          Backup[0][1] =var1
          Backup[0][2]=var2
          
          Bei scriptstart werteeinlesen()
          
          

          Aber ich hoffte das alles ein wenig schöner lösen zu können

          Ich beantworte keine Fragen zu Themen via PN

          1 Reply Last reply
          0
          • Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            wrote on last edited by
            #5

            Du kannst das Skript neu starten, schau mal in den Objekt Baum deiner JS Instanz unter "script.enabled"

            Gesendet von meinem m8 mit Tapatalk

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            1 Reply Last reply
            0
            • PeoplesP Offline
              PeoplesP Offline
              Peoples
              wrote on last edited by
              #6

              Genau das habe ich gesucht

              Tausend Dank!

              Zwei kurze Fragen noch, den Datenpunkt via setState auf false und true setzen oder besser setStateDelayed? Und umsetzen muss ich das ganze wahrscheinlich in einem seperaten Script da das laufenden ja gestoppt wird oder?

              Ich beantworte keine Fragen zu Themen via PN

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              282

              Online

              32.4k

              Users

              81.3k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe