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. Ansage "Wäsche ist fertig" HILFE

NEWS

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

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

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

Ansage "Wäsche ist fertig" HILFE

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 7 Kommentatoren 2.5k 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
    Dragonius
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich muß mal wieder lauthals "HILFE" rufen.

    Ich versuche gerade die Scripte aus CCU.IO zu importieren und….... versage kläglich. :roll:

    Ein Script das bis dato wunderbar funktioniert hat, ist ein Script das mir ansagt wann die Wäsche fertig ist (Waschmaschine steht in anderem Stockwerk. Frau war begeistert ;) ). Gelöst mit einem Zwischenstecker mit Leistungsmessung.

    Erstellt wurde es mit dem Scripteditor.

    Hier die "angepasste" Version:
    ` > // Force Variablen

    setObject(Wasch, true);

    // Timeout Variablen

    var loop_2 = 0;

    var loop_2_delay;

    // Variablen

    function loop_2_loop(data) {

    if (loop_2 < 2) {

    loop_2++;

    codebox_0(data);

    loop_2_delay = setTimeout(function() {

    loop_2_loop(data)}, 30000);

    }

    }

    function loop_2_in1(data) { loop_2 = 0;clearTimeout(loop_2_delay);

    loop_2_loop(data);

    }

    function loop_2_in2(data) { clearInterval(loop_2_delay);

    loop_2 = 2;

    }

    // CCU.IO Objekte

    var Wasch = true;

    //setObject("Wasch"), {Name: "var_Waschmaschine",TypeName: "VARDP",_persistent: true});

    // Trigger

    var Daten="hm-rpc.0.LEQ0529875.2.POWER";

    var Power = getState(Daten);

    subscribe({id:(getState(Power).val),valLt: 2}, function(data) {codebox_12(data);});

    subscribe({id: (getState(Power).val),valLt: 1}, function(data) {codebox_12(data);});

    subscribe({id: (getState(Power).val),valGt: 4}, function(data) {codebox_9(data);});

    //Bedingungsabfrage_Leistungsdaten

    function codebox_0(data) {

    var input_1_out = getState("hm-rpc.0.LEQ0529875.2.POWER"/Waschmaschine-Daten.POWER/).val;

    var string_2_out = "2";

    var input_13_out = getState("hm-rpc.0.LEQ0529875.2.CURRENT"/Waschmaschine-Daten.CURRENT/).val;

    var string_14_out = "40";

    var wenn_3_out=true;

    var wenn_16_out = true;

    var und_15_out = true;

    if (input_1_out < string_2_out) {

    wenn_3_out = true;

    } else {

    wenn_3_out = false;

    } if (input_13_out < string_14_out) {

    wenn_16_out = true;

    } else {

    wenn_16_out = false;

    } if (wenn_3_out === true && wenn_16_out === true) {

    und_15_out = true;

    } else {

    und_15_out = false;

    } if (und_15_out === true) {

    codebox_1(data);

    }

    }

    //Sprachausgabe

    function codebox_1(data) {

    var string_4_out = "Die Waesche ist fertig.";

    setState("sayit.0.tts.text"/Text to speech/, string_4_out);

    }

    //Abfrage_Bedingung_Abbruch

    function codebox_3(data) {

    var input_7_out = getState(Wasch);

    var true_8_out = true;

    var wenn_6_out = true;

    if (input_7_out == true_8_out) {

    wenn_6_out=true;

    } else {

    setState(wenn_6_out, false);

    } if (wenn_6_out === true) {loop_2_in2(data);}}

    //Abfrage_Variable_unwahr

    function codebox_5(data) {

    Log("Codebox_5");

    var input_18_out = getState(Wasch);

    Log("Varable Wasch: "+Wasch);

    var true_19_out = true;

    var wenn_17_out = false;

    if (input_18_out != true_19_out) {

    wenn_17_out = true;

    } else {

    wenn_17_out = false;

    }

    codebox_3(data);

    if (wenn_17_out === true) {loop_2_in1(data);}

    }

    //Trigger_Variable_unwahr_setzen

    function codebox_9(data) {

    var false_27_out = false;

    setState(Wasch, false_27_out);

    }

    //Trigger_Variable_wahr_setzen

    function codebox_12(data) {

    var true_31_out = true;

    setState(Wasch, true_31_out);

    } `

    Ziemlich wirr. Ich weiß…...

    Das folgende Script hab ich versucht selbst zu erstellen. Hat auch teilweise funktioniert. Hab dann aber so lange dran rum experimentiert bis gar nichts mehr ging...

    var varWatt ='hm-rpc.0.LEQ0529875.2.POWER';
    var varAmpere = 'hm-rpc.0.LEQ0529875.2.CURRENT';
    var ccuvar_1 ="hm-rega.0.9531";
    var ccuvar_2 = "hm-rega.0.11273";
    var varWaschmaschine =getState(ccuvar_2).val;
    
    {
    subscribe ({id: varWatt, change: "lt"}, Ausgabe);
    //subscribe ({id: varWatt, change: "any"}, Steuerung);
    
    }
    function Ausgabe()
    {  
     var varWaschmaschine =getState(ccuvar_2).val;
     var Leistung =getState(varWatt).val;
     var strom=getState(varAmpere).val;
     var varAnzeige=getState(ccuvar_1).val;
        if (varWaschmaschine===true)
           if(Leistung<1)
               if(strom<40)
                    setState("sayit.0.tts.text", "Die Wäsche ist fertig!")
                    setState("hm-rega.0.11273", "0");
    }
    function Steuerung()
    {
      var varWaschmaschine =getState(ccuvar_2).val;
      var Leistung=getState(varWatt).val;
      var strom=getState(varAmpere).val;
      var varAnzeige=getState(ccuvar_1).val;
    
        if(Leistung>1)
            if(strom>40)
                setState("hm-rega.0.11273", "1")
                setState("hm-rega.0.9531", "1")
                setState("hm-rega.0.11330", true);
    }
    

    Kann mir einer sagen was ich zum :evil: verkehrt mache?

    Danke und Gruß

    Dragonius

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

      1. Bei der verschachtelten if-Abfrage fehlen geschweifte Klammern. Besser man verwendet eine UND-Verknüpfung.

      2. if (varWaschmaschine===true) erwartet einen boolean Wert. setState("hm-rega.0.11273", "0"); achreibt aber einen String !

      Vielleicht funktioniert es so ?

      var varWatt ='hm-rpc.0.LEQ0529875.2.POWER';
      var varAmpere = 'hm-rpc.0.LEQ0529875.2.CURRENT';
      var ccuvar_1 = "hm-rega.0.9531";
      var ccuvar_2 = "hm-rega.0.11273";
      // var varWaschmaschine =getState(ccuvar_2).val;
      
      subscribe ({id: varWatt, change: "lt"}, Ausgabe);
      //subscribe ({id: varWatt, change: "any"}, Steuerung);
      
      function Ausgabe()
      { 
      	var varWaschmaschine = getState(ccuvar_2).val;
      	var Leistung  = getState(varWatt).val;
      	var strom = getState(varAmpere).val;
      	var varAnzeige = getState(ccuvar_1).val;
      	if (varWaschmaschine && Leistung < 1 && strom < 40)
      	{
      		setState("sayit.0.tts.text", "Die Wäsche ist fertig!");
      		setState(ccuvar_2, false);
      	}
      }
      

      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
        Dragonius
        schrieb am zuletzt editiert von
        #3

        Danke für die Hilfe. Hat nicht ganz auf Anhieb geklappt. Die "Und" Dedingung wollte er so nicht fressen.

        Hier das Script, dass jetzt fehlerfrei und so wie es soll läuft:

        var varWatt ='hm-rpc.0.LEQ0529875.2.POWER';
        var varAmpere = 'hm-rpc.0.LEQ0529875.2.CURRENT';
        var ccuvar_1 = "hm-rega.0.9531";
        var ccuvar_2 = "hm-rega.0.11273";
        
        subscribe ({id: varWatt, change: "lt"}, Ausgabe);
        subscribe ({id: varAmpere, change: "lt"}, Ausgabe);
        subscribe ({id: varWatt, change: "any"}, Steuerung);
        
        function Ausgabe()  // Abfrage der Energiedaten und Sprachausgabe
        {
           var varWaschmaschine = getState(ccuvar_2).val;
           var Leistung  = getState(varWatt).val;
           var strom = getState(varAmpere).val;
        {   
           if (Leistung < 1)
                if (strom < 40)
                   setState("sayit.0.tts.text", "Die Wäsche ist fertig!");
                   setState(ccuvar_2, 0);
                   setState(ccuvar_1, false);
        }}
        
        function Steuerung()  // Zum setzen der Anzeige
        {
            var varWaschmaschine =getState(ccuvar_2).val;
            var Leistung=getState(varWatt).val;
            var strom=getState(varAmpere).val;
        
              if(Leistung > 1)
                  if(strom>40)
                      setState(ccuvar_2, 1);
                      setState(ccuvar_1, true);
        }
        

        Gruß

        Dragonius

        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          jack77
          schrieb am zuletzt editiert von
          #4

          Hi,

          kann mir einer sagen wie ich die Ansage über ein Sonos herausgeben kann?

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            dwm
            schrieb am zuletzt editiert von
            #5

            Du brauchst den Sonos Adapter und den text-to-speech adapter, entsprechend konfiguriert.

            Im Script unten erfolgt dann die Ausgabe mit der Zeile

            setState("sayit.0.tts.text", "Die Wäsche ist fertig!");
            

            Nach einem schnellen Blick …

            Ich glaub ja nicht, dass das Script so 100% funktioniert.

            Diese komische geschweifte Klammer in function Ausgabe() macht ... nix.

            EINRÜCKUNGEN sagen der if Abfrage auch NIX.

            das heisst bei Aufruf von "Ausgabe" werden die CCU-Variablen IMMER 0 bzw. false.

            Genau so wird bei der function Steuerung die ccuvar_1 IMMER auf true gesetzt, die ist AUSSERHALB der if Abfragen - es ist wie gesagt EGAL, wie weit die eingerückt ist.

            Siehe z.B. ... https://developer.mozilla.org/de/docs/W ... behandlung

            Wenn Du also willst, dass z.B. in function Ausgabe die ccu-Variablen nur auf 0 bzw. false gehen, wenn die Wäsche fertig ist, muss das heissen ...

            function Ausgabe()  // Abfrage der Energiedaten und Sprachausgabe
            {
               var varWaschmaschine = getState(ccuvar_2).val;
               var Leistung  = getState(varWatt).val;
               var strom = getState(varAmpere).val;
            
               if (Leistung < 1)
                    if (strom < 40)
                    {
                       setState("sayit.0.tts.text", "Die Wäsche ist fertig!");
                       setState(ccuvar_2, 0);
                       setState(ccuvar_1, false);
                    }
            }
            
            function Steuerung()  // Zum setzen der Anzeige
            {
                var varWaschmaschine =getState(ccuvar_2).val;
                var Leistung=getState(varWatt).val;
                var strom=getState(varAmpere).val;
            
                  if(Leistung > 1)
                      if(strom>40)
                      {
                          setState(ccuvar_2, 1);
                          setState(ccuvar_1, true);
                      }
            }
            
            

            Übrigens fragst Du in beiden Funktionen die varWaschmaschine zwar ab, aber machst nichts damit…

            Gibt es eigentlich einen Grund, den Strom und die Leistung abzufragen? Naiv hätte ich gesagt, P=U x I ... und wir haben doch recht konstant U = 230V...

            CU

            Werner

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              pix
              schrieb am zuletzt editiert von
              #6

              Hallo,

              Werner hat recht, die letzte gepostete Version des Skriptes kann so nicht fehlerfrei laufen. Da muss doch auch der Editor im Javascript Adapter meckern (auf die Symbole am linken Rand achten!)

              Ich denke vielleicht so:

              ! ````
              var varWatt ='hm-rpc.0.LEQ0529875.2.POWER';
              var varAmpere = 'hm-rpc.0.LEQ0529875.2.CURRENT';
              var ccuvar_1 = "hm-rega.0.9531";
              var ccuvar_2 = "hm-rega.0.11273";
              ! on({
              id: varWatt,
              change: "lt"
              }, Ausgabe);
              ! on({
              id: varAmpere,
              change: "lt"
              }, Ausgabe);
              ! on({
              id: varWatt,
              change: "any"
              }, function(obj) {
              // var varWaschmaschine = getState(ccuvar_2).val; // wozu wurde dieser State abgefragt?
              var Leistung = obj.state.val;
              var strom=getState(varAmpere).val;
              if (Leistung > 1 && strom > 40) {
              setState(ccuvar_2, 1);
              setState(ccuvar_1, true);
              }
              });
              ! function Ausgabe() { // Abfrage der Energiedaten und Sprachausgabe
              var varWaschmaschine = getState(ccuvar_2).val;
              var Leistung = getState(varWatt).val;
              var strom = getState(varAmpere).val;
              if (Leistung < 1 && strom < 40) {
              setState("sayit.0.tts.text", "Die Wäsche ist fertig!");
              setState(ccuvar_2, 0);
              setState(ccuvar_1, false);
              }
              }

              ! ````

              Gruß

              Pix

              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

              1 Antwort Letzte Antwort
              0
              • DirkKD Offline
                DirkKD Offline
                DirkK
                schrieb am zuletzt editiert von
                #7

                Hallo Dragonius,

                so sieht es bei mir aus, Ausgabe über Lautsprecher und Telegram
                1162_image_2.png

                Gruß Dirk

                Raspi3 CCU

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  ple
                  schrieb am zuletzt editiert von
                  #8

                  Mein Code sieht so aus. Einfach und funktioniert super. besonders beim Trockner, weil der am Ende noch auflockert.

                  Das valLt und oldValGe sind echt gute Funktionen.

                  Gruß

                  var timer = null;
                  
                  // Einschaltverzögerung   
                  on({id: "hm-rpc.0.LEQ1314518.2.POWER", valLt: 1.1, oldValGe: 100}, function() {
                      timer = setTimeout(meldung, 120000);  // in ms
                      log("Einschaltverzögerung ausgelöst");
                  });
                  // Timer löschen
                  on({id: "hm-rpc.0.LEQ1314518.2.POWER", valGe: 100, oldValLt: 5}, function() {
                      if(timer) clearTimeout(timer);
                      log("Timer löschen");
                  });
                  
                  // Anweisung
                  function meldung() {
                      log("Trockner fertig");
                      //Sayit
                      setState("sayit.0.tts.text", "de;40;" + 'Der Trockner ist fertig');
                      //Push schicken
                      sendTo("telegram.0", "send", {
                          text: 'Trockner',
                     });
                  }
                  

                  Intel Nuc + Proxmox

                  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

                  493

                  Online

                  32.5k

                  Benutzer

                  81.6k

                  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