Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Auslösen eines Skriptes mittel Füllstandssensor

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Auslösen eines Skriptes mittel Füllstandssensor

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

      Möchte das Skript entweder alle 60 Minuten auslösen, oder wenn sich der Wert des Füllstanssesors ändert.

      Alle 60 Minuten geht es doch wenn sich der Wert ändert passiert nichts.

      Liegt das an dem .val? Wenn ja, was muss da dann hin?
      212_skript.jpg

      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo,

        @HKF8770:

        Alle 60 Minuten geht es doch wenn sich der Wert ändert passiert nichts. `
        Dein Skript löst alle 60min aus (Zeile 1), legt eine Variable an (Zeile 3) und schreibt den aktuellen Wert (Zeile 6) rein (Zeile 8 und 10). Es löst nicht auf Änderung auf, weil keine Änderung abgefragt wird. Du subscribest (Achtung denglisch) auf den Kanal FILLING.LEVEL und nutzt in der nächsten Zeile getState, um die Variable zu füllen, statt den Wert aus dem Subscribe zu verwenden.

        Ich habs mal neu geschrieben (bitte nächstes Mal Code mit der Forumfunktion CODE einfügen, sonst muss man so viel abtippen):

        createState('Zisterne.Literaktuell', '0');
        
        function liter_berechnen(level) {
            log('Zisterne Berechnung Liter');
            log('Zisterne Level: ' + level + ' %');
            var Liter = level * 75;
            log('Zisterne in Liter: ' + Liter + ' Liter');
            setState('Zisterne.Literaktuell', Liter);
        }
        
        schedule('*/60 * * * *', liter_berechnen(getState('hm-rpc.0.KEQ0849082.1.FILLING.LEVEL').val));
        
        on('hm-rpc.0.KEQ0849082.1.FILLING.LEVEL', function(data) {
            liter_berechnen(data.newState.val);
        });
        
        

        Hab die Berechnung in eine Funktion ausgelagert, die auf zwei Möglichkeiten aufgerufen werden kann (Zeitsteuerung mit getState-Wert oder Subscribe mit neuem Wert). Der aktuelle Füllstand wird übergeben (level). Logs sind standardmäßig 'info', hab das mal weggelassen. Und CreateState besser nicht in einer Funktion verwenden, sondern ausserhalb.

        Gruß

        Pix

        1 Reply Last reply Reply Quote 0
        • H
          HKF8770 last edited by

          Sorry, lade in Zukunft nur den Code hoch.

          Pix, vielen Dank für deine umfassende Erklärung. Bin Anfänger und so eine ausführliche Erklärung hielt das besser zu verstehen und Fehler zu vermeiden.

          Eigentlich spricht doch dann alles dafür das immer über Funktionen abzubilden, oder? Ist auch viel übersichtlicher.

          Frage:

          Jetzt löst er ja aus entweder nach Zeit oder Zustandswechsel, also "or". Wie kann ich dass als "and" Bedingung formulieren?

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            Hallo,
            @HKF8770:

            Eigentlich spricht doch dann alles dafür das immer über Funktionen abzubilden, oder? Ist auch viel übersichtlicher. `
            ja, das ist übersichtlicher. Ich halte es so, wie früher auf der CCU: Lieber mehr Programme (Funktionen, Skripte) als zu viele Verschachtelungen innerhalb eines Programms.

            @HKF8770:

            Frage:

            Jetzt löst er ja aus entweder nach Zeit oder Zustandswechsel, also "or". Wie kann ich dass als "and" Bedingung formulieren? ` Im ersten Post fragtest du:@HKF8770:

            Möchte das Skript entweder alle 60 Minuten auslösen, oder wenn sich der Wert des Füllstanssesors ändert. `

            Wann soll nun gemeldet werden?

            Sofort, wenn Zisterne-Level sich ändert?

            Genau jede Stunde einmal?

            Immer wenn sich das Level geändert hat, aber zur festen Zeit, wenn nix geändert keine Meldung?

            Letzteres braucht ja dann nur jede Stunde gestartet zu werden. Wenn das alte Level (Zisterne.Literaktuell/75) ungleich neuem Level ('hm-rpc.0.KEQ0849082.1.FILLING.LEVEL') ist, dann loggen (oder push oder email oder so)

            createState('Zisterne.Literaktuell', '0');
            
            function liter_berechnen(level) {
                if (level != getState('Zisterne.Literaktuell').val) {
                    log('Zisterne Berechnung Liter');
                    log('Zisterne Level: ' + level + ' %');
                    var Liter = level * 75;
                    log('Zisterne in Liter: ' + Liter + ' Liter');
                    // hier könnte auch ne EMail oder PUshmeldung stehen
                }
                setState('Zisterne.Literaktuell', Liter);
            }
            
            schedule('*/60 * * * *', liter_berechnen(getState('hm-rpc.0.KEQ0849082.1.FILLING.LEVEL').val));
            
            

            Gruß

            Pix
            1526_unbenannt1.png
            1526_unbenann8t.png

            1 Reply Last reply Reply Quote 0
            • H
              HKF8770 last edited by

              Hallo Pix,

              Die Frage war auf andere Skripte bezogen. Hab hier z.B. ein Skript dass die Außentemperatur abfragt und dann basierend auf der Temperatur entscheidet ob es Frost hat oder nicht (Ist natürlich nur ein Beispiel).

              In diesem Fall würde das Ganze dann alle 1 Minute ausgeführt, oder wenn sich der Wert ändert.

              createState('Temperatur.Temperatur_Ostseite', '0');

              createState('Temperatur.Temperatur_Ostseite_Frost', '');

              function solar_produziert(level) {

              var Temperatur = getState("hm-rpc.0.KEQ0121727.1.TEMPERATURE"/Aussensensor Ost.TEMPERATURE/).val;

              if (Temperatur > 0) {

              setState('Temperatur.Temperatur_Ostseite', Temperatur);

              setState('Temperatur.Temperatur_Ostseite_Frost', 'ja');

              log("–-> TEST Ostseite hat es keinen Frost bei: " + Temperatur +" °C", "info");

              } else {

              setState('Temperatur.Temperatur_Ostseite', Temperatur);

              setState('Temperatur.Temperatur_Ostseite_Frost', 'nein');

              log("---> TEST Ostseite hat es Frost bei: " + Temperatur +" °C", "info");

              }

              }

              schedule('*/1 * * * *', solar_produziert(getState("hm-rpc.0.KEQ0121727.1.TEMPERATURE"/Aussensensor Ost.TEMPERATURE/).val));

              on("hm-rpc.0.KEQ0121727.1.TEMPERATURE"/Aussensensor Ost.TEMPERATURE/, function(obj) {

              solar_produziert(data.newState.val);

              });

              Ich habe aber in meiner CCU 2 einen virtuellen Schalter wo ich "aktualisieren" und wenn ich den betätige soll alles neu gerechnet werden.

              Also eine "oder" Bedienung. Ist dass dann so unten richtig? Und wie würde es aussehen bei einer "Und" Bedienung?

              on("hm-rpc.0.BidCoS-RF.5.PRESS_SHORT"/aktualisiern Dashui.PRESS_SHORT/, function(obj) { //virtueller Schalter in CCU 2

              solar_produziert(data.newState.val);

              on("hm-rpc.0.KEQ0121727.1.TEMPERATURE"/Aussensensor Ost.TEMPERATURE/, function(obj) {

              solar_produziert(data.newState.val);

              });

              });

              Sorry für die vielen Fragen. Ich möchte aber versuchen zu verstehen was ich mache. 😉 ..und nochmals danke für eure Hilfe hier

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                Hallo HKF8770,

                für Deine Fragen musst du dich nicht entschuldigen.

                Die Frostfrage: Du hast das eigentlich doppelt gemoppelt. Du brauchst ja nur auf eine Aktualisierung der Temperatur reagieren. Wenn sich jede 10 Sekunden die Temperatur ändert, dann wird eben jede 10s entschieden, ob Frost herrscht oder nicht. Eine zusätzliche zeitgesteuerte Abfrage ist nicht nötig.

                Stell dir vor, du fährst mit dem Auto durch den Regen. Der Regen ist nicht gleichmäßig, sondern mal stärker mal schwächer. Der moderne Regensensor in der Scheibe reagiert auf den Regen und wischt, wenn die Sicht schlecht ist. Die altmodische Intervallsteuerung wischt zB alle 3s und das ist mal zu früh und mal zu spät. Beide Systeme zusammen machen aber gar keinen Sinn.

                createState('Temperatur.Temperatur_Ostseite'); // erstmal ohne Wert und ohne Häkchen, da sonst ein String erwartet wird
                createState('Temperatur.Temperatur_Ostseite_Frost');
                
                on("hm-rpc.0.KEQ0121727.1.TEMPERATURE"/*Aussensensor Ost.TEMPERATURE*/, function(data) {
                    var Temperatur = data.newState.val;
                    if (Temperatur < 0) { // aktuelle Temp unter 0 -> Frost
                        setState('Temperatur.Temperatur_Ostseite_Frost', true); // hier würde ich statt 'ja' lieber 1 oder true schreiben
                        log("---> TEST Ostseite hat es keinen Frost bei: " + Temperatur +" °C", "info");
                    } else { 
                        setState('Temperatur.Temperatur_Ostseite_Frost', false); // hier lieber 0 oder false
                        log("---> TEST Ostseite hat es Frost bei: " + Temperatur +" °C", "info"); 
                    } 
                    setState('Temperatur.Temperatur_Ostseite', Temperatur); // diese Zeile brauchst nicht in der IF-Abfrage, wird ja in beiden Fällen ausgeführt
                });
                
                

                In VIS kannst du dir über die Sichtbarkeit die Variable 'Temperatur.Temperatur_Ostseite_Frost' ausblenden lassen, wenn sie 'false' ist. Wenn die Variable nur für die Anzeige gedacht ist, nicht aber für die weitere Steuerung, kannst du gleich auf den Temperaturwert zurückgreifen (Wenn "hm-rpc.0.KEQ0121727.1.TEMPERATURE" <0 , dann FROST anzeigen)

                ! Hier das Widget zum Importieren:

                [
                  {
                    "tpl": "tplMetroTileBoolNumber",
                    "data": {
                      "visibility-cond": "<",
                      "visibility-val": "0",
                      "hover": "true",
                      "bg_class_false": "bg-amber",
                      "bg_class_true": "ribbed-cobalt",
                      "icon_class_false": "icon-sun",
                      "icon_class_true": "icon-snowflake",
                      "badge_bg_class_false": "",
                      "badge_bg_class_true": "",
                      "brand_bg_class_false": "",
                      "brand_bg_class_true": "",
                      "visibility-oid": "hm-rpc.0.KEQ0121727.1.TEMPERATURE",
                      "state_oid": "",
                      "number_oid": "hm-rpc.0.KEQ0121727.1.TEMPERATURE",
                      "label_append": " °C",
                      "label_false": "Frost
                ",
                      "label_true": "Frost
                "
                    },
                    "style": {
                      "left": "299px",
                      "top": "213px"
                    },
                    "widgetSet": "metro"
                  }
                ]
                

                Und noch ein Hinweis: @pix:

                on("hm-rpc.0.BidCoS-RF.5.PRESS_SHORT"/aktualisiern Dashui.PRESS_SHORT/, function(obj) { //virtueller Schalter in CCU 2

                solar_produziert(data.newState.val); ` Hier würde der Wert des Tasters mit````
                obj.newState.val

                
                Gruß
                
                Pix
                1 Reply Last reply Reply Quote 0
                • H
                  HKF8770 last edited by

                  Ich benötige nochmals Hilfe weil ich es einfach nicht schaffe 😢 😢

                  Hab das ganze jetzt als Funktion aufgebaut und möchte dass die Funktion durch 3 varianten angestoßen wird. Es müssen aber nicht alle 3 erfüllt sein, sondern nur 1 der 3. So wie es jetzt ist läuft es alle 10 Minuten, aber nicht bei Änderung der Temperatur bzw. des Aktualisierungsknopfes

                  function alarm_gefriertruhe(obj) { 
                  	var temp = getState("hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/).val;
                  	if (temp < -25) {
                  		setState('Gefriertruhe.Alarm', false);  
                  		log("---> TEST Temperatur Gefriertruhe: o.k.  " + temp +" °C","info"); 
                  	} 
                  	if (temp > -25) { 
                  		setState('Gefriertruhe.Alarm', true);
                  		log("---> Temperatur Gefriertruhe: kritisch   " + temp +" °C","info");  
                  		sendTo("email", {
                  			from:    "test@test.com",
                  			to:      "friedhelm.kuehnle@hoerauf.com",
                  			subject: "Gefriertruhe",
                  			text:    ("Achtung, Gefriertruhe ist nicht kalt genug! Lediglich " + temp +" °C")
                  		});
                  	} 
                  }
                  
                  on("hm-rpc.0.BidCoS-RF.5.PRESS_SHORT"/*aktualisiern Dashui.PRESS_SHORT*/, function(obj) {   //soll entweder ausgelöst werden bei Änderung hm-rpc.0.BidCoS-RF.5.PRESS_SHORT
                  	log("===>Ausgelöst durch CCU2!");
                  	alarm_gefriertruhe(obj.newState.val);
                  
                  	on("hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/, function(obj) {             //oder!! soll entweder ausgelöst werden beihm-rpc.0.KEQ0040908.1.TEMPERATURE
                  		log("===>Ausgelöst durch Temperaturänderung!");
                  		alarm_gefriertruhe (obj.newState.val);
                  
                  		schedule("*/10 * * * *", function () {                                                      //oder!! soll entweder ausgelöst werden alle 10 Minuten
                  			log("===>Will be triggered every 10 minutes!"); 
                  			alarm_gefriertruhe(obj.newState.val);
                  		});
                  	});
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    Probiere mal so:

                    function alarm_gefriertruhe() { 
                    	var temp = getState("hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/).val;
                    	if (temp < -25) {
                    		setState('Gefriertruhe.Alarm', false, true);  
                    		log("---> TEST Temperatur Gefriertruhe: o.k.  " + temp +" °C","info"); 
                    	} 
                    	if (temp > -25) { 
                    		setState('Gefriertruhe.Alarm', true, true);
                    		log("---> Temperatur Gefriertruhe: kritisch   " + temp +" °C","info");  
                    		sendTo("email", {
                    			from:    "test@test.com",
                    			to:      "friedhelm.kuehnle@hoerauf.com",
                    			subject: "Gefriertruhe",
                    			text:    ("Achtung, Gefriertruhe ist nicht kalt genug! Lediglich " + temp +" °C")
                    		});
                    	} 
                    }
                    
                    on("hm-rpc.0.BidCoS-RF.5.PRESS_SHORT"/*aktualisiern Dashui.PRESS_SHORT*/, function() {   //soll entweder ausgelöst werden bei Änderung hm-rpc.0.BidCoS-RF.5.PRESS_SHORT
                    	log("===>Ausgelöst durch CCU2!");
                    	alarm_gefriertruhe();
                    });
                    on("hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/, function() {             //oder!! soll entweder ausgelöst werden beihm-rpc.0.KEQ0040908.1.TEMPERATURE
                    	log("===>Ausgelöst durch Temperaturänderung!");
                    	alarm_gefriertruhe ();
                    });
                    schedule("*/10 * * * *", function () {                                                    //oder!! soll entweder ausgelöst werden alle 10 Minuten
                    	log("===>Will be triggered every 10 minutes!"); 
                    	alarm_gefriertruhe();
                    });
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • P
                      pix last edited by

                      Hallo,

                      zuerst möchte ich dich wirklich bitten, die CODE FUNKTION mit eckigeKlammerAuf Code eckigeKlammerZu hier im Forum zu nutzen.

                      Der Fehler in Deinem Skript ist die Strukturierung: Auslöser durch Taster BEINHALTET die Auslösung durch Temperaturänderung. Und diese beinhaltet die schedule Funktion. Die drei Auslöser können aber gleichzeitig laufen. Wie im letzten Thread schon erwähnt, kannst du dir den schedule schenken, wenn du auf die Änderung der Temperatur triggerst. Den manuellen Auslöser auch, aber wenn du es unbedingt willst.

                      Ausserdem übergibst du der Funktion alarm_Gefriertruhe mal den neuen Tasterstatus, mal die Temperatur und mal gar nix (schedule). Besser du rufst die Funktion ohne Übergabe auf. Die aktuelle Temperatur wird in diesem Fall eh INNERHALB der Funktion erst ermittelt (var temp = getState…).

                      createState('Gefriertruhe.Alarm');
                      
                      function alarm_gefriertruhe() { 
                          var temp = getState("hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/).val;
                          if (temp <= -25) {
                              setState('Gefriertruhe.Alarm', false); 
                              log("---> TEST Temperatur Gefriertruhe: o.k. " + temp +" °C","info"); 
                          } 
                          if (temp > -25) { 
                              setState('Gefriertruhe.Alarm', true);
                              log("---> Temperatur Gefriertruhe: kritisch " + temp +" °C","info"); 
                              sendTo("email", {
                                  from: "test@test.com",
                                  to: "friedhelm.kuehnle@hoerauf.com",
                                  subject: "Gefriertruhe",
                                  text: ("Achtung, Gefriertruhe ist nicht kalt genug! Lediglich " + temp +" °C")
                              });
                          } 
                      }
                      
                      on({id: "hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/, change: 'ne'} function(obj) { //oder!! soll entweder ausgelöst werden beihm-rpc.0.KEQ0040908.1.TEMPERATURE
                          log("===>Ausgelöst durch Temperaturänderung!");
                          alarm_gefriertruhe;
                      });
                      
                      // Die nächsten beiden Auslöser sind nicht wirklich nötig, schaden aber auch nicht
                      
                      on({"hm-rpc.0.BidCoS-RF.5.PRESS_SHORT"/*aktualisiern Dashui.PRESS_SHORT*/, val:true}, function(obj) { //soll entweder ausgelöst werden bei Änderung hm-rpc.0.BidCoS-RF.5.PRESS_SHORT
                          log("===>Ausgelöst durch CCU2!");
                          alarm_gefriertruhe;
                      });
                      
                      schedule("*/10 * * * *", function () { //oder!! soll entweder ausgelöst werden alle 10 Minuten
                          log("===>Will be triggered every 10 minutes!"); 
                          alarm_gefriertruhe;
                      });
                      
                      

                      Gruß

                      Pix

                      Edit: Das Logging und ggf. die Email werden bei jeder Aktualisierung der Temperatur gesendet. Im nächsten Post gehts besser.

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo,

                        hier mal die einfache Lösung für die Gefriertruhe. Einmalige Benachrichtigung bei Überschreiten der Temperatur.

                        createState('Gefriertruhe.Alarm');
                        
                        // Benachrichtigung, sobald Alarm gesetzt wurde
                        on({id: 'Gefriertruhe.Alarm', change: 'ne'} function(data) { 
                            if (data.newState.val) { // Variable wird abgefragt, wenn true, dann Email senden
                                sendTo("email", {
                                    from: "test@test.com",
                                    to: "friedhelm.kuehnle@hoerauf.com",
                                    subject: "Gefriertruhe",
                                    text: ("Achtung, Gefriertruhe ist nicht kalt genug! Lediglich " + getState("hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/).val +" °C")
                                });
                            }
                        });
                        
                        // Alarmariable wird gesetzt, wenn kritische Temp überschritten
                        on({id: "hm-rpc.0.KEQ0040908.1.TEMPERATURE"/*FWT_WZ:1.TEMPERATURE*/, change: 'ne'} function(data) { 
                            temp = data.newState.val;
                            if (temp > -25) { 
                                setState('Gefriertruhe.Alarm', true);
                                log("---> Temperatur Gefriertruhe: kritisch " + temp +" °C","info"); 
                        
                            } else {
                                setState('Gefriertruhe.Alarm', false);
                            }
                        });
                        
                        

                        Gruß

                        Pix

                        1 Reply Last reply Reply Quote 0
                        • H
                          HKF8770 last edited by

                          Hallo Pix und Bluefox….danke für eure Hilfe...läuft jetzt. Mit euren Erklärungen kapier sogar ich es 🙂

                          Morgen mach ich mich an die einfache Version von Pix.

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

                            Hi,

                            ich versuche mich auch bei iobroker mal an den Scripten und hoffe das ich es irgendwann mal verstehe.

                            Habe dieses Script genommen:

                            createState('Zisterne.Literaktuell', '0');
                            
                            function liter_berechnen(level) {
                                log('Zisterne Berechnung Liter');
                                log('Zisterne Level: ' + level + ' %');
                                var Liter = level * 59;
                                log('Zisterne in Liter: ' + Liter + ' Liter');
                                setState('Zisterne.Literaktuell', Liter);
                            }
                            
                            schedule('*/60 * * * *', liter_berechnen(getState('hm-rpc.0.KEQ0849124.1.FILLING_LEVEL').val));
                            
                            on('hm-rpc.0.KEQ0849124.1.FILLING_LEVEL', function(data) {
                                liter_berechnen(data.newState.val);
                            });
                            

                            und erhalte nach Start diese Einträge im Log:

                            javascript-0	2016-01-19 21:49:27	info	script.js.Füllstandumrechnen: registered 1 subscription and 0 schedules
                            javascript-0	2016-01-19 21:49:27	error	script.js.Füllstandumrechnen: schedule callback missing
                            javascript-0	2016-01-19 21:49:27	info	script.js.Füllstandumrechnen: Zisterne in Liter: 4189 Liter
                            javascript-0	2016-01-19 21:49:27	info	script.js.Füllstandumrechnen: Zisterne Level: 71 %
                            javascript-0	2016-01-19 21:49:27	info	script.js.Füllstandumrechnen: Zisterne Berechnung Liter
                            javascript-0	2016-01-19 21:49:27	info	Start javascript script.js.Füllstandumrechnen
                            

                            Warum kommt dieser Error und wie bekomme ich den weg?

                            Danke und Gruß

                            1 Reply Last reply Reply Quote 0
                            • blauholsten
                              blauholsten Developer last edited by

                              Probiert das…

                              createState('Zisterne.Literaktuell', '0');
                              
                              function liter_berechnen() {
                              
                              level = (getState('hm-rpc.0.KEQ0849124.1.FILLING_LEVEL').val)    
                                  log('Zisterne Berechnung Liter');
                                  log('Zisterne Level: ' + level + ' %');
                                  var Liter = level * 59;
                                  log('Zisterne in Liter: ' + Liter + ' Liter');
                                  setState('Zisterne.Literaktuell', Liter);
                              }
                              
                              schedule('*/60 * * * *', liter_berechnen);
                              
                              on('hm-rpc.0.KEQ0849124.1.FILLING_LEVEL', function(data) {
                                  liter_berechnen();
                              });
                              
                              
                              1 Reply Last reply Reply Quote 0
                              • wendy2702
                                wendy2702 last edited by

                                Mache ich morgen früh .

                                Gebe dann Bescheid.

                                Danke!

                                Sent from my iPhone using Tapatalk

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

                                  Das andere Script läuft jetzt auch ohne Error im log.

                                  Musste also nicht mehr testen.

                                  Danke

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  1.2k
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  5
                                  15
                                  2607
                                  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