Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Farbwechsel bei verschiedenen Verbräuchen

    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] Farbwechsel bei verschiedenen Verbräuchen

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

      ok , ich kenne mich mit Skript´s null aus, wo muss ich was einfügen ?

      Kannst DU mir mal ein Screenshot zusenden ?

      1 Reply Last reply Reply Quote 0
      • Y
        ykuendig last edited by

        Als Erstes brauchst Du den Javascript Adapter. Hast Du den schon? sonst installieren… (ich mach dann in der Zwischenzeit mal das Foto)

        1 Reply Last reply Reply Quote 0
        • S
          SigiMOE last edited by

          habe ich schon und läuft auch ( grün )

          1121_2017-03-19_11-37-46.jpg

          1 Reply Last reply Reply Quote 0
          • Y
            ykuendig last edited by

            Dann, Register 'Scripte' öffnen: 452_javascript01.png
            Oben links beim Plus einen Ordner erstellen zB Keller (optional) und ein neues Script öffnen (Blatt mit Eselsohr)

            Oben mitte einen Namen geben und

            Oben rechts Engine Javascript wählen.

            Ganzes Script in den Rahmen einkopieren…..
            452_javascript02.png
            Die Adressen deiner Geräte einfügen. Dazu am besten jeweils den roten Bereich markieren und oben rechts 'ID Einfügen' klicken. Im folgenden Dialog den Datenpunkt des Geräts auswählen (müsste etwas wie hm-rpc.0.XYZ1234567.2.POWER sein). Für das zweite Gerät wiederholen…

            ACHTUNG: Die Semikolons am Ende der Zeile sind Notwendig!

            Speichern -> und beim roten Playbutton aktivieren...

            Anschliessend solltest Du im Reiter 'Objekte' folgende Datenpunkte haben, welche Du überall im ioBroker, auch in .vis verwenden kannst:
            452_javascript03.png
            Habe Fertig.

            1 Reply Last reply Reply Quote 0
            • S
              SigiMOE last edited by

              sieht bis jetzt ganz gut aus….
              1121_2017-03-19_12-00-07.jpg
              1121_2017-03-19_12-05-18.jpg

              1 Reply Last reply Reply Quote 0
              • Y
                ykuendig last edited by

                Die 'Schwierigkeit' ist nun, durch beobachten herauszufinden, welche Schwellenwerte für Deine Maschine richtig sind und diese im Script anzupassen.

                Es gilt herauszufinden ab welcher Leistung die Maschine sicher läuft: zB 200W und jeweils, wie wenig wenn Sie aus ist zB <2W sowie der Standby zB <4W

                Dazu muss im Script die Schwellen angepasst werden

                UND ev. musst Du auch (wie ich) in der CCU die Schwelle ändern, wann ein Leistungswechsel signalisiert wird. Dazu auf der CCU 'Einstellunge' dann 'Geräte' dann 'Das Gerät' und nun rechts aussen Button 'Einstellen' Beim CH:2 "Ein Wert wird gesendet, wenn sich…" Leistung Werteingabe musste ich auf 3 reduzieren, damit ich genug Werte bekam um eine vernünftige Auswertung zu machen. Das sowohl beim Trockner als auch be der Maschine.
                452_javascript04.png

                1 Reply Last reply Reply Quote 0
                • S
                  SigiMOE last edited by

                  zumindest klappt es bisher schon einmal. Freu mich auf mehr Details… 🙂
                  1121_2017-03-19_12-10-57.jpg

                  1 Reply Last reply Reply Quote 0
                  • Y
                    ykuendig last edited by

                    Und wie schwer wars 😉

                    1 Reply Last reply Reply Quote 0
                    • S
                      SigiMOE last edited by

                      also, eigentlich war es ganz einfach, aber nur weil Du so viel Geduld mit mir hattest und es für meinen Geschmack mir

                      sehr gut erklärt hast. Vielen Dank dafür.

                      Wenn ich jetzt noch meine 2. Waschmaschine einbinden möchte, wie müsste dann das Script lauten ?

                      So in etwa : ?

                      ! ````
                      // Im Keller nach 2 Waschmaschinen und einem Trockner sehen
                      //
                      // Status der Waschmaschine und des Trockners führen
                      // Stati: 0 = aus/Standby, 1 = Maschine aus/fertig / 2 = Maschine läuft
                      ! // Erstellen der Datenpunkte
                      createState("javascript.0.Keller.Waschmaschine1.State", 0, {"type": "number", "role": "state"});
                      createState("javascript.0.Keller.Waschmaschine1.Farbe", "white", {type: "string"});
                      createState("javascript.0.Keller.Waschmaschine1.OptinSayit", false, { name: 'Optin Waschmaschine Sayit',
                      desc: 'Soll der Waschmaschinenstatus gesprochen werden??', type: 'boolean', role: "state.enabled" });
                      ! createState("javascript.0.Keller.Waschmaschine2.State", 0, {"type": "number", "role": "state"});
                      createState("javascript.0.Keller.Waschmaschine2.Farbe", "white", {type: "string"});
                      createState("javascript.0.Keller.Waschmaschine2.OptinSayit", false, { name: 'Optin Waschmaschine Sayit',
                      desc: 'Soll der Waschmaschinenstatus gesprochen werden??', type: 'boolean', role: "state.enabled" });

                      createState("javascript.0.Keller.Trockner.State", 0, {"type": "number", "role": "state"});
                      createState("javascript.0.Keller.Trockner.Farbe", "white", {type: "string"});
                      createState("javascript.0.Keller.Trockner.OptinSayit", false, { name: 'Optin Trockner Sayit',
                      desc: 'Soll der Trocknerstatus gesprochen werden??', type: 'boolean', role: "state.enabled" });

                      ! var WattWaschmaschine = "hm-rpc.0.XYZ7654321.2.POWER"/Waschmaschine Energy.POWER/;
                      var StateWaschmaschine = "javascript.0.Keller.Waschmaschine1.State";
                      var FarbeWaschmaschine = "javascript.0.Keller.Waschmaschine1.Farbe";
                      var OptinSayitW = "javascript.0.Keller.Waschmaschine1.OptinSayit";
                      ! var WattWaschmaschine = "hm-rpc.0.XYZ7654321.2.POWER"/Waschmaschine Energy.POWER/;
                      var StateWaschmaschine = "javascript.0.Keller.Waschmaschine2.State";
                      var FarbeWaschmaschine = "javascript.0.Keller.Waschmaschine2.Farbe";
                      var OptinSayitW = "javascript.0.Keller.Waschmaschine2.OptinSayit";
                      ! var WattTrockner = "hm-rpc.0.XYZ1234567.2.POWER"/Trockner Energy.POWER/;
                      var StateTrockner = "javascript.0.Keller.Trockner.State";
                      var FarbeTrockner = "javascript.0.Keller.Trockner.Farbe";
                      var OptinSayitT = "javascript.0.Keller.Trockner.OptinSayit";
                      ! var SayitID = "sayit.1.tts.text";
                      ! subscribe ({id: WattWaschmaschine1, change: "ne"}, checkState);
                      subscribe ({id: WattWaschmaschine2, change: "ne"}, checkState);
                      subscribe ({id: WattTrockner, change: "ne"}, checkState);
                      ! function checkState() { // Abfrage ob Waschmaschine oder Tumbler laufen
                      // Waschmaschine1
                      var StatusWaschmaschine1 = getState(StateWaschmaschine1).val;
                      var LeistungWaschmaschine1 = getState(WattWaschmaschine1).val;
                      if (StatusWaschmaschine1 < 2) { // Maschine aus
                      if (LeistungWaschmaschine1 > 200) {
                      setState(StateWaschmaschine1, 2, true);
                      setState(FarbeWaschmaschine1, "red", true);
                      log('Script Keller-Geräte; Status: Waschmaschine läuft. (' + LeistungWaschmaschine1 + "W)", "info");
                      } else if (LeistungWaschmaschine1 < 4) {
                      if (LeistungWaschmaschine1 < 2) {
                      setState(StateWaschmaschine1, 0, true);
                      setState(FarbeWaschmaschine1, "blue", true);
                      log("Script Keller-Geräte; Status: Waschmaschine ist ausgeschaltet. (" + LeistungWaschmaschine1 + "W)", "info");
                      } else {
                      setState(StateWaschmaschine1, 1, true);
                      setState(FarbeWaschmaschine1, "green", true);
                      log("Script Keller-Geräte; Status: Waschmaschine ist im Standby. (" + LeistungWaschmaschine1 + "W)", "info");
                      }
                      }
                      } else if (StatusWaschmaschine1 === 2 || StatusWaschmaschine1 === null) {
                      if (LeistungWaschmaschine1 < 4) {
                      setState(StateWaschmaschine1, 1, true);
                      setState(FarbeWaschmaschine1, "green", true);
                      if (getState(OptinSayitW).val) {
                      setState(SayitID, "Die Waschmaschine ist fertig.");
                      }
                      log("Script Keller-Geräte; Status: Waschmaschine ist fertig. (" + LeistungWaschmaschine1 + "W)", "info");
                      }
                      }
                      ! // Waschmaschine2
                      var StatusWaschmaschine2 = getState(StateWaschmaschine2).val;
                      var LeistungWaschmaschine2 = getState(WattWaschmaschine2).val;
                      if (StatusWaschmaschine2 < 2) { // Maschine aus
                      if (LeistungWaschmaschine2 > 200) {
                      setState(StateWaschmaschine2, 2, true);
                      setState(FarbeWaschmaschine2, "red", true);
                      log('Script Keller-Geräte; Status: Waschmaschine läuft. (' + LeistungWaschmaschine2 + "W)", "info");
                      } else if (LeistungWaschmaschine2 < 4) {
                      if (LeistungWaschmaschine2 < 2) {
                      setState(StateWaschmaschine2, 0, true);
                      setState(FarbeWaschmaschine2, "blue", true);
                      log("Script Keller-Geräte; Status: Waschmaschine ist ausgeschaltet. (" + LeistungWaschmaschine2 + "W)", "info");
                      } else {
                      setState(StateWaschmaschine2, 1, true);
                      setState(FarbeWaschmaschine2, "green", true);
                      log("Script Keller-Geräte; Status: Waschmaschine ist im Standby. (" + LeistungWaschmaschine2 + "W)", "info");
                      }
                      }
                      } else if (StatusWaschmaschine2 === 2 || StatusWaschmaschine2 === null) {
                      if (LeistungWaschmaschine2 < 4) {
                      setState(StateWaschmaschine2, 1, true);
                      setState(FarbeWaschmaschine2, "green", true);
                      if (getState(OptinSayitW).val) {
                      setState(SayitID, "Die Waschmaschine ist fertig.");
                      }
                      log("Script Keller-Geräte; Status: Waschmaschine ist fertig. (" + LeistungWaschmaschine2 + "W)", "info");
                      }
                      }

                      // Trockner
                      var StatusTrockner =    getState(StateTrockner).val;
                      var LeistungTrockner =  getState(WattTrockner).val;
                      if (StatusTrockner < 2) {
                          if (LeistungTrockner > 200) {
                              setState(StateTrockner, 2, true);
                              setState(FarbeTrockner, "red", true);
                              log("Script Keller-Geräte; Status: Trockner läuft. (" + LeistungTrockner + "W)", "info");
                          } else if (LeistungTrockner < 4) {
                              if (LeistungTrockner < 2) {
                              setState(StateTrockner, 0, true);
                              setState(FarbeTrockner, "blue", true);
                              log("Script Keller-Geräte; Status: Trockner ist ausgeschaltet. (" + LeistungTrockner + "W)", "info");
                              } else {
                              setState(StateTrockner, 1, true);
                              setState(FarbeTrockner, "green", true);
                              log("Script Keller-Geräte; Status: Trockner ist im Standby. (" + LeistungTrockner + "W)", "info");
                              }
                          }
                      } else if (StatusTrockner === 2 || StatusTrockner === null) {
                          if (LeistungTrockner < 4) {
                              setState(StateTrockner, 1, true);
                              setState(FarbeTrockner, "green", true);
                              if (getState(OptinSayitW).val) {
                                  setState(SayitID, "Der Trockner ist fertig.");
                              }
                              log("Script Keller-Geräte; Status: Trockner ist fertig. (" + LeistungTrockner + "W)", "info");
                          }
                      }
                      

                      }

                      ! checkState(); // Beim Script-Start einmal durchlaufen lassen

                      1 Reply Last reply Reply Quote 0
                      • Y
                        ykuendig last edited by

                        Im Prinzip FAST 😄 Die Deklaration der Variablen (der Teil mit den var am Anfang) muss natürlich auch durchgehend mit 1 und 2 ergänzt sein.

                        Hast Du mittelfristig vor über Lautsprecher Ansagen zu machen? Sonst könnte man den sayit Teil noch wegmachen. Auch den Farbteil könnte man weg machen, wenn Du willst.

                        1 Reply Last reply Reply Quote 0
                        • S
                          SigiMOE last edited by

                          Ich habe es probiert, aber irgendwas mache ich noch etwas falsch.

                          Ich bekomme den Datenpunkt für die 2. Waschmaschine nicht erzeugt ?

                          Könntest Du mir das Skript auf 2 Waschmaschinen und 1 Trockner erweitern ?

                          Say it habe ich noch nicht probiert, würde es aber irgendwann gerne mal nachholen. Zur Zeit lasse ich mir über dem MP3 Gong

                          die Nachricht ansagen, wenn Waschmaschine oder Trockner fertig ist.

                          Grüße

                          Sigi

                          1 Reply Last reply Reply Quote 0
                          • Y
                            ykuendig last edited by

                            Probier mal so:

                            ! ````
                            // Im Keller nach der Waschmaschine und dem Trockner sehen
                            //
                            // Status der Waschmaschine und des Trockners führen
                            // Stati: 0 = aus/Standby, 1 = Maschine aus/fertig / 2 = Maschine läuft
                            //
                            // Angepasst für 2 Waschmaschinen
                            // Leistungsgrenzen im Konfig
                            ! // Erstellen der Datenpunkte
                            createState("javascript.0.Keller.Waschmaschine1.State", 0, {"type": "number", "role": "state"});
                            createState("javascript.0.Keller.Waschmaschine1.Farbe", "white", {type: "string"});
                            createState("javascript.0.Keller.Waschmaschine1.OptinSayit", false, { name: 'Optin Waschmaschine 1 Sayit',
                            desc: 'Soll der Waschmaschinenstatus 1 gesprochen werden??', type: 'boolean', role: "state.enabled" });
                            ! createState("javascript.0.Keller.Waschmaschine2.State", 0, {"type": "number", "role": "state"});
                            createState("javascript.0.Keller.Waschmaschine3.Farbe", "white", {type: "string"});
                            createState("javascript.0.Keller.Waschmaschine4.OptinSayit", false, { name: 'Optin Waschmaschine 2 Sayit',
                            desc: 'Soll der Waschmaschinenstatus 2 gesprochen werden??', type: 'boolean', role: "state.enabled" });
                            ! createState("javascript.0.Keller.Trockner.State", 0, {"type": "number", "role": "state"});
                            createState("javascript.0.Keller.Trockner.Farbe", "white", {type: "string"});
                            createState("javascript.0.Keller.Trockner.OptinSayit", false, { name: 'Optin Trockner Sayit',
                            desc: 'Soll der Trocknerstatus gesprochen werden??', type: 'boolean', role: "state.enabled" });
                            ! var WattWaschmaschine1 = "hm-rpc.0.XYZ7654321.2.POWER"/Waschmaschine Energy.POWER/;
                            var StateWaschmaschine1 = "javascript.0.Keller.Waschmaschine1.State";
                            var FarbeWaschmaschine1 = "javascript.0.Keller.Waschmaschine1.Farbe";
                            var OptinSayitW1 = "javascript.0.Keller.Waschmaschine1.OptinSayit";
                            ! var WattWaschmaschine2 = "hm-rpc.0.XYZ7654321.2.POWER"/Waschmaschine Energy.POWER/;
                            var StateWaschmaschine2 = "javascript.0.Keller.Waschmaschine2.State";
                            var FarbeWaschmaschine2 = "javascript.0.Keller.Waschmaschine2.Farbe";
                            var OptinSayitW2 = "javascript.0.Keller.Waschmaschine2.OptinSayit";
                            ! var WattTrockner = "hm-rpc.0.XYZ1234567.2.POWER"/Trockner Energy.POWER/;
                            var StateTrockner = "javascript.0.Keller.Trockner.State";
                            var FarbeTrockner = "javascript.0.Keller.Trockner.Farbe";
                            var OptinSayitT = "javascript.0.Keller.Trockner.OptinSayit";
                            ! var SayitID = "sayit.1.tts.text";
                            var Pon = 200;
                            var Poff = 2;
                            var Pstby = 4;
                            ! subscribe ({id: WattWaschmaschine1, change: "ne"}, checkState);
                            subscribe ({id: WattWaschmaschine2, change: "ne"}, checkState);
                            subscribe ({id: WattTrockner, change: "ne"}, checkState);
                            ! function checkState() { // Abfrage ob Waschmaschine oder Tumbler laufen
                            // Waschmaschine 1
                            var StatusWaschmaschine1 = getState(StateWaschmaschine1).val;
                            var LeistungWaschmaschine1 = getState(WattWaschmaschine1).val;
                            if (StatusWaschmaschine1 < 2) { // Status Maschine aus
                            if (LeistungWaschmaschine1 > Pon) {
                            setState(StateWaschmaschine1, 2, true);
                            setState(FarbeWaschmaschine1, "red", true);
                            log('Script Keller-Geräte; Status: Waschmaschine 1 läuft. (' + LeistungWaschmaschine1 + "W)", "info");
                            } else if (LeistungWaschmaschine1 < Pstby) {
                            if (LeistungWaschmaschine1 < Poff) {
                            setState(StateWaschmaschine1, 0, true);
                            setState(FarbeWaschmaschine1, "blue", true);
                            log("Script Keller-Geräte; Status: Waschmaschine 1 ist ausgeschaltet. (" + LeistungWaschmaschine1 + "W)", "info");
                            } else {
                            setState(StateWaschmaschine1, 1, true);
                            setState(FarbeWaschmaschine1, "green", true);
                            log("Script Keller-Geräte; Status: Waschmaschine 1 ist im Standby. (" + LeistungWaschmaschine1 + "W)", "info");
                            }
                            }
                            } else if (StatusWaschmaschine1 === 2 || StatusWaschmaschine1 === null) {
                            if (LeistungWaschmaschine1 < Pstby) {
                            setState(StateWaschmaschine1, 1, true);
                            setState(FarbeWaschmaschine1, "green", true);
                            if (getState(OptinSayitW1).val) {
                            setState(SayitID, "Die Waschmaschine Eins ist fertig.");
                            }
                            log("Script Keller-Geräte; Status: Waschmaschine 1 ist fertig. (" + LeistungWaschmaschine1 + "W)", "info");
                            }
                            }
                            ! // Waschmaschine 2
                            var StatusWaschmaschine2 = getState(StateWaschmaschine2).val;
                            var LeistungWaschmaschine2 = getState(WattWaschmaschine2).val;
                            if (StatusWaschmaschine2 < 2) { // Status Maschine aus
                            if (LeistungWaschmaschine2 > Pon) {
                            setState(StateWaschmaschine2, 2, true);
                            setState(FarbeWaschmaschine2, "red", true);
                            log('Script Keller-Geräte; Status: Waschmaschine 2 läuft. (' + LeistungWaschmaschine2 + "W)", "info");
                            } else if (LeistungWaschmaschine2 < Pstby) {
                            if (LeistungWaschmaschine2 < Poff) {
                            setState(StateWaschmaschine2, 0, true);
                            setState(FarbeWaschmaschine2, "blue", true);
                            log("Script Keller-Geräte; Status: Waschmaschine 2 ist ausgeschaltet. (" + LeistungWaschmaschine2 + "W)", "info");
                            } else {
                            setState(StateWaschmaschine2, 1, true);
                            setState(FarbeWaschmaschine2, "green", true);
                            log("Script Keller-Geräte; Status: Waschmaschine 2 ist im Standby. (" + LeistungWaschmaschine2 + "W)", "info");
                            }
                            }
                            } else if (StatusWaschmaschine2 === 2 || StatusWaschmaschine2 === null) {
                            if (LeistungWaschmaschine2 < Pstby) {
                            setState(StateWaschmaschine2, 1, true);
                            setState(FarbeWaschmaschine2, "green", true);
                            if (getState(OptinSayitW2).val) {
                            setState(SayitID, "Die Waschmaschine Zwei ist fertig.");
                            }
                            log("Script Keller-Geräte; Status: Waschmaschine 2 ist fertig. (" + LeistungWaschmaschine2 + "W)", "info");
                            }
                            }
                            ! // Trockner
                            var StatusTrockner = getState(StateTrockner).val;
                            var LeistungTrockner = getState(WattTrockner).val;
                            if (StatusTrockner < 2) {
                            if (LeistungTrockner > Pon) {
                            setState(StateTrockner, 2, true);
                            setState(FarbeTrockner, "red", true);
                            log("Script Keller-Geräte; Status: Trockner läuft. (" + LeistungTrockner + "W)", "info");
                            } else if (LeistungTrockner < Pstby) {
                            if (LeistungTrockner < Poff) {
                            setState(StateTrockner, 0, true);
                            setState(FarbeTrockner, "blue", true);
                            log("Script Keller-Geräte; Status: Trockner ist ausgeschaltet. (" + LeistungTrockner + "W)", "info");
                            } else {
                            setState(StateTrockner, 1, true);
                            setState(FarbeTrockner, "green", true);
                            log("Script Keller-Geräte; Status: Trockner ist im Standby. (" + LeistungTrockner + "W)", "info");
                            }
                            }
                            } else if (StatusTrockner === 2 || StatusTrockner === null) {
                            if (LeistungTrockner < Pstby) {
                            setState(StateTrockner, 1, true);
                            setState(FarbeTrockner, "green", true);
                            if (getState(OptinSayitW).val) {
                            setState(SayitID, "Der Trockner ist fertig.");
                            }
                            log("Script Keller-Geräte; Status: Trockner ist fertig. (" + LeistungTrockner + "W)", "info");
                            }
                            }
                            }
                            ! checkState(); // Beim Script-Start einmal durchlaufen lassen

                            Ich habe zusätzlich noch die Leistungkonfig ind oberen Teil des Scripts genommen.
                            
                            Den Objektpfad javascript.0.Keller-Waschmaschine (ohne Nummer) kannst nun löschen.
                            1 Reply Last reply Reply Quote 0
                            • S
                              SigiMOE last edited by

                              OK prima, scheint zu klappen 🙂 Vielen Dank

                              Zum Thema "Löschen", kann ich die mit dem roten Pfeil über den Papierkorb löschen ?

                              Sind diese "unnütze" ?
                              1121_2017-03-19_19-27-24.jpg

                              1 Reply Last reply Reply Quote 0
                              • Y
                                ykuendig last edited by

                                Die alte Waschmaschine JA, Die Script enabled Dinger NEIN. Die braucht es für den Javascript Adapter

                                1 Reply Last reply Reply Quote 0
                                • S
                                  SigiMOE last edited by

                                  sehr cool vielen Dank

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  887
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  6
                                  44
                                  4524
                                  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