Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Datenpunkt in Script neu einlesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Datenpunkt in Script neu einlesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Peoples
      Peoples last edited by

      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

      1 Reply Last reply Reply Quote 0
      • R
        RappiRN Most Active last edited by

        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 Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          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

          1 Reply Last reply Reply Quote 0
          • Peoples
            Peoples last edited by

            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

            1 Reply Last reply Reply Quote 0
            • Jey Cee
              Jey Cee Developer last edited by

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

              Gesendet von meinem m8 mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • Peoples
                Peoples last edited by

                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?

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                822
                Online

                31.7k
                Users

                79.9k
                Topics

                1.3m
                Posts

                3
                6
                576
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo