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. (gesucht) Kleines Script: Kaffeemaschine

NEWS

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

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

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

(gesucht) Kleines Script: Kaffeemaschine

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 2.0k Aufrufe
  • Ä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.
  • D Offline
    D Offline
    DiJaexxl
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe einen Zwischenstecker an der hängt unsere Kaffeemaschine in der Küche.

    Jetzt suche ich jemanden, der mir ein kleines Script schreibt zum folgenden Ablauf.

    Ich möchte gerne das, nachdem ich den Zwischenstecker (Variabel) eingeschaltet habe, und ein Stromverbrauch (variabel) erreicht wurde, der Zwischenstecker nach x Sek. (variabel) sich abschaltet.

    Die Zeitvariabel möchte ich auch dafür nutzen, dass wenn die Kaffeemaschine garnicht eingeschaltet wurde, der Stecker sich nach der Zeit auch wieder abschaltet.

    Ich habe den MEQ0273558 (das ist das Teil mit Leistungsmessung).

    Der Pfad zum mA Wert lautet: MEQ0273558.2.CURRENT

    Kann mir da bitte einer ein "kleines" Script erstellen?

    Ich möchte es mit den Variablen haben, dann kann man es auch anderswo einsetzten.

    Oder gibt es im E-Net einen besseren Platz für die Frage/Bitte.

    Danke im voraus

    Gruss aus Bensberg

    Dirk

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Das folgende Skript enthält nicht das Einschalten des Zwischensteckers:

      var stromid = "hm-rpc.0.MEQ0273558.2.CURRENT";
      var steckerid = "hm-rpc.0.MEQ0273558.1.STATE";
      var eindauerid = getIdByName("Kaffee.Einschaltdauer"); // Einschaltdauer in Minuten
      var schwelleid = getIdByName("Kaffee.Stromschwelle"); // Stromgrenzwert in mA
      
      var timer = null;
      var stromschwelle = getState(schwelleid).val;
      var eindauer = 60000 * getState(eindauerid).val;
      
      function ausschalten() {
      	if (timer) {
      		clearTimeout(timer);
      		timer = null;
      	}
      	timer =  setTimeout(function() {
              setState(steckerid, false);
         }, eindauer);  // nach eindauer Minuten aus
      }
      
      on(stromid, function(dp) { 
      	if (dp.state.val > stromschwelle) ausschalten();  // Kaffeemaschine wird eingeschaltet
      });
      
      on({id: steckerid, val: true}, ausschalten);  // Stecker wird eingeschaltet
      
      

      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
      • D Offline
        D Offline
        DiJaexxl
        schrieb am zuletzt editiert von
        #3

        Das Einschalten mach ich anders.

        DANKE!!!!

        Gruss aus Bensberg

        Dirk

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          DiJaexxl
          schrieb am zuletzt editiert von
          #4

          Hallo Paul,

          ich bekomme im Log folgenden Fehler

          [error]	javascript.0 script.js.Test.Kaffeemaschine compile failed: SyntaxError: Unexpected token function
          
          

          Im Scripteditor habe ich eine Fehlermeldung bei der Zeile 10

          ausschalten function () {

          var stromid = "hm-rpc.0.MEQ0273558.2.CURRENT";
          var steckerid = "hm-rpc.0.MEQ0273558.1.STATE";
          var eindauerid = getIdByName("3"); // Einschaltdauer in Minuten
          var schwelleid = getIdByName("100"); // Stromgrenzwert in mA
          
          var timer = null;
          var stromschwelle = getState(schwelleid).val;
          var eindauer = 60000 * getState(eindauerid).val;
          
          ausschalten function () {
             if (timer) {
                clearTimeout(timer);
                timer = null;
             }
             timer =  setTimeout(function () {
                  setState(steckerid, false);
             }, eindauer);  // nach eindauer Minuten aus
          }
          
          on(stromid, function(dp) { 
             if (dp.state.val > stromschwelle) ausschalten();  // Kaffeemaschine wird eingeschaltet
          });
          
          on({id: steckerid, val: true}, ausschalten);  // Stecker wird eingeschaltet
          
          

          Gruss aus Bensberg

          Dirk

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            Sorry, richtig muss es lauten:

            function ausschalten() {
            
            

            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
            • D Offline
              D Offline
              DiJaexxl
              schrieb am zuletzt editiert von
              #6

              Mmmmhhh,

              Zeile habe ich getauscht, nun sieht das Script so aus:

              var stromid = "hm-rpc.0.MEQ0273558.2.CURRENT";
              var steckerid = "hm-rpc.0.MEQ0273558.1.STATE";
              var eindauerid = getIdByName("3"); // Einschaltdauer in Minuten
              var schwelleid = getIdByName("100"); // Stromgrenzwert in mA
              
              var timer = null;
              var stromschwelle = getState(schwelleid).val;
              var eindauer = 60000 * getState(eindauerid).val;
              
              function ausschalten() {
                 if (timer) {
                    clearTimeout(timer);
                    timer = null;
                 }
                 timer =  setTimeout(function () {
                      setState(steckerid, false);
                 }, eindauer);  // nach eindauer Minuten aus
              }
              
              on(stromid, function(dp) { 
                 if (dp.state.val > stromschwelle) ausschalten();  // Kaffeemaschine wird eingeschaltet
              });
              
              on({id: steckerid, val: true}, ausschalten);  // Stecker wird eingeschaltet
              
              

              Wenn ich es einschalte, bekomme ich die folgende Loginfo:

              javascript-0	02 19:26:54.373	error	at script.js.Test.Kaffeemaschine:7:41
              javascript-0	02 19:26:54.373	error	script.js.Test.Kaffeemaschine: TypeError: Cannot read property 'val' of null
              javascript-0	02 19:26:54.369	warn	State "undefined" not found
              javascript-0	02 19:26:54.364	info	Start javascript script.js.Test.Kaffeemaschine
              
              

              Gruss aus Bensberg

              Dirk

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Solear
                schrieb am zuletzt editiert von
                #7

                Da sind noch mehr Stellen, wo ein Leerzeichen vor der Klammer ist, mache die mal weg (die Leerzeichen).

                iobroker als LXC unter Proxmox

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  DiJaexxl
                  schrieb am zuletzt editiert von
                  #8

                  Wo jetzt noch?

                  ! var stromid = "hm-rpc.0.MEQ0273558.2.CURRENT";
                  ! var steckerid = "hm-rpc.0.MEQ0273558.1.STATE";
                  ! var eindauerid = getIdByName("3"); // Einschaltdauer in Minuten
                  ! var schwelleid = getIdByName("100"); // Stromgrenzwert in mA
                  ! var timer = null;
                  ! var stromschwelle = getState(schwelleid).val;
                  ! var eindauer = 60000 * getState(eindauerid).val;
                  ! function ausschalten(){
                  ! if(timer){
                  ! clearTimeout(timer);
                  ! timer = null;
                  ! }
                  ! timer = setTimeout(function(){
                  ! setState(steckerid, false);
                  ! }, eindauer); // nach eindauer Minuten aus
                  ! }
                  ! on(stromid, function(dp){
                  ! if(dp.state.val > stromschwelle) ausschalten(); // Kaffeemaschine wird eingeschaltet
                  ! });
                  ! on({id: steckerid, val: true}, ausschalten); // Stecker wird eingeschaltet

                  Gruss aus Bensberg

                  Dirk

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @DiJaexxl:

                    var eindauerid = getIdByName("3"); // Einschaltdauer in Minuten
                    var schwelleid = getIdByName("100"); // Stromgrenzwert in mA
                    ```` `  
                    

                    Das funktioniert nicht !

                    "Kaffee.Einschaltdauer" und "Kaffee.Stromschwelle" sind die Namen von Datenpunkten, die vorher im Reiter "Objekte" unter javascript.0 angelegt werden müssen. Wenn Du es erst einmal mit festen Werten testen möchtest, dann so:

                    var stromid = "hm-rpc.0.MEQ0273558.2.CURRENT";
                    var steckerid = "hm-rpc.0.MEQ0273558.1.STATE";
                    // var eindauerid = getIdByName("Kaffee.Einschaltdauer"); // Einschaltdauer in Minuten
                    // var schwelleid = getIdByName("Kaffee.Stromschwelle"); // Stromgrenzwert in mA
                    
                    var timer = null;
                    var stromschwelle = 100;   // 100 mA
                    var eindauer = 60000 * 3;  // 3 Minuten
                    
                    

                    Wenn Du die Datenpunkte nicht im Reiter "Objekte" erstellen möchtest", kannst Du sie auch im Skript anlegen:

                    createState("Kaffee.Einschaltdauer", 3, {
                                         read: true,
                                         write: true, 
                                         desc: "Einschaltdauer Kaffeemaschine", 
                                         type: "number", 
                                         min: 0, 
                                         max: 30, 
                                         def: 3,
                                         unit: "min"
                    });
                    createState("Kaffee.Stromschwelle", 100, {
                                         read: true,
                                         write: true, 
                                         desc: "Stromschwellwert Kaffeemaschine läuft", 
                                         type: "number", 
                                         min: 0, 
                                         max: 1000, 
                                         def: 100,
                                         unit: "mA"
                    });
                    
                    

                    Damit sie im Skript ausgewertet werden, ist ein zweiter Skript-Start erforderlich.

                    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
                    • D Offline
                      D Offline
                      DiJaexxl
                      schrieb am zuletzt editiert von
                      #10

                      Hallo Paul,

                      DANKE, jetzt läuft es.

                      Tschuldigung für meine blöden Fehler!

                      Gruss aus Bensberg

                      Dirk

                      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

                      871

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      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