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. Blockly
  5. Yahka und Zeitsteuerung ESPeasy

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Yahka und Zeitsteuerung ESPeasy

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklymonitoring
14 Beiträge 2 Kommentatoren 1.0k Aufrufe 1 Watching
  • Ä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.
  • paul53P paul53

    @xxx_turbo_xxx
    Du steuerst die Pumpe per URL. Lässt sich die Pumpe nicht auch über den Datenpunkt "ESP_Easy_pro_11.Pumpe.State" steuern ?

    xxx_turbo_xxxX Offline
    xxx_turbo_xxxX Offline
    xxx_turbo_xxx
    schrieb am zuletzt editiert von
    #3

    @paul53 Ich denke nicht. Zumindest wüsste ich nicht wie! Der Wemos sendet ja nur 0 und 1 und Yahka setzt den Status auf wahr oder falsch...

    paul53P 1 Antwort Letzte Antwort
    0
    • xxx_turbo_xxxX xxx_turbo_xxx

      @paul53 Ich denke nicht. Zumindest wüsste ich nicht wie! Der Wemos sendet ja nur 0 und 1 und Yahka setzt den Status auf wahr oder falsch...

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @xxx_turbo_xxx sagte:

      Der Wemos sendet ja nur 0 und 1

      Wird die Pumpe nicht geschaltet, wenn der Wert im Objekt-Tab geändert wird (0 --> 1 / 1 --> 0) ?

      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

      xxx_turbo_xxxX 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @xxx_turbo_xxx sagte:

        Der Wemos sendet ja nur 0 und 1

        Wird die Pumpe nicht geschaltet, wenn der Wert im Objekt-Tab geändert wird (0 --> 1 / 1 --> 0) ?

        xxx_turbo_xxxX Offline
        xxx_turbo_xxxX Offline
        xxx_turbo_xxx
        schrieb am zuletzt editiert von
        #5

        @paul53 Nein, ioBroker empfängt den Wert nur, wenn ich das richtig sehe

        paul53P 1 Antwort Letzte Antwort
        0
        • xxx_turbo_xxxX xxx_turbo_xxx

          @paul53 Nein, ioBroker empfängt den Wert nur, wenn ich das richtig sehe

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #6

          @xxx_turbo_xxx sagte:

          ioBroker empfängt den Wert nur

          Dann benötigst Du einen Alias-Datenpunkt mit getrenntem Kommando / Status.

          • alias.id.write: "0_userdata.0.Pool.Pumpe"
          • alias.id.read: "mqtt.0.ESP_Easy_pro_11.Pumpe.State"
          • alias.read: "!!val"

          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

          xxx_turbo_xxxX 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @xxx_turbo_xxx sagte:

            ioBroker empfängt den Wert nur

            Dann benötigst Du einen Alias-Datenpunkt mit getrenntem Kommando / Status.

            • alias.id.write: "0_userdata.0.Pool.Pumpe"
            • alias.id.read: "mqtt.0.ESP_Easy_pro_11.Pumpe.State"
            • alias.read: "!!val"
            xxx_turbo_xxxX Offline
            xxx_turbo_xxxX Offline
            xxx_turbo_xxx
            schrieb am zuletzt editiert von
            #7

            @paul53 Ok. Kannst du mir das bitte etwas genauer darstellen? Wo trage ich die Werte ein?

            paul53P 1 Antwort Letzte Antwort
            0
            • xxx_turbo_xxxX xxx_turbo_xxx

              @paul53 Ok. Kannst du mir das bitte etwas genauer darstellen? Wo trage ich die Werte ein?

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #8

              @xxx_turbo_xxx
              Kopiere folgendes Script und starte es kurz einmal:

              // Original-Datenpunkt
              const idOrigin = '0_userdata.0.Pool.Pumpe'; 
              // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
              // Bei Nicht-Verwendung Leerstring '' zuweisen
              const idRead = 'mqtt.0.ESP_Easy_pro_11.Pumpe.State';
               
              // Alias-Datenpunkt
              const idAlias = 'Pool.Pumpe';
              var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
              // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
              nameAlias = 'Pool Pumpe';
              desc = 'per Script erstellt';
              typeAlias = 'boolean'; // oder 'number'
              read = "!!val";   
              // write = "val ? true : true";
              role = 'switch';
              // min = 0; // nur Zahlen
              // max = 100; // nur Zahlen
              // unit = '%'; // nur für Zahlen
              // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
              // custom = []; // verhindert doppelte Ausführung von history, ...
              // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
              // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
              
              // Ab hier nichts ändern !!
              function createAlias(idDst, idSrc, idRd) {
                 if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                 else {
                    var obj = {};
                    obj.type = 'state';
                    obj.common = getObject(idSrc).common;
                    obj.common.alias = {};
                    if(idRd) {
                        obj.common.alias.id = {};
                        obj.common.alias.id.read = idRd;
                        obj.common.alias.id.write = idSrc;
                        obj.common.read = true;
                    } else obj.common.alias.id = idSrc;
                    if(typeAlias) obj.common.type = typeAlias;
                    if(obj.common.read !== false && read) obj.common.alias.read = read;
                    if(obj.common.write !== false && write) obj.common.alias.write = write;
                    if(nameAlias) obj.common.name = nameAlias;
                    if(role) obj.common.role = role;
                    if(desc) obj.common.desc = desc;
                    if(min !== undefined) obj.common.min = min;
                    if(max !== undefined) obj.common.max = max;
                    if(unit) obj.common.unit = unit;
                    if(states) obj.common.states = states;
                    if(custom && obj.common.custom) obj.common.custom = custom;
                    obj.native = {};
                    setObject(idDst, obj);
                    if(raum && existsObject('enum.rooms.' + raum)) {
                       let obj = getObject('enum.rooms.' + raum)
                       obj.common.members.push(idDst);
                       setObject('enum.rooms.' + raum, obj);
                    }
                    if(gewerk && existsObject('enum.functions.' + gewerk)) {
                       let obj = getObject('enum.functions.' + gewerk)
                       obj.common.members.push(idDst);
                       setObject('enum.functions.' + gewerk, obj);
                    }
                 } 
              }
               
              createAlias('alias.0.' + idAlias, idOrigin, idRead);
              

              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

              xxx_turbo_xxxX 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @xxx_turbo_xxx
                Kopiere folgendes Script und starte es kurz einmal:

                // Original-Datenpunkt
                const idOrigin = '0_userdata.0.Pool.Pumpe'; 
                // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                // Bei Nicht-Verwendung Leerstring '' zuweisen
                const idRead = 'mqtt.0.ESP_Easy_pro_11.Pumpe.State';
                 
                // Alias-Datenpunkt
                const idAlias = 'Pool.Pumpe';
                var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                nameAlias = 'Pool Pumpe';
                desc = 'per Script erstellt';
                typeAlias = 'boolean'; // oder 'number'
                read = "!!val";   
                // write = "val ? true : true";
                role = 'switch';
                // min = 0; // nur Zahlen
                // max = 100; // nur Zahlen
                // unit = '%'; // nur für Zahlen
                // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                // custom = []; // verhindert doppelte Ausführung von history, ...
                // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                
                // Ab hier nichts ändern !!
                function createAlias(idDst, idSrc, idRd) {
                   if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                   else {
                      var obj = {};
                      obj.type = 'state';
                      obj.common = getObject(idSrc).common;
                      obj.common.alias = {};
                      if(idRd) {
                          obj.common.alias.id = {};
                          obj.common.alias.id.read = idRd;
                          obj.common.alias.id.write = idSrc;
                          obj.common.read = true;
                      } else obj.common.alias.id = idSrc;
                      if(typeAlias) obj.common.type = typeAlias;
                      if(obj.common.read !== false && read) obj.common.alias.read = read;
                      if(obj.common.write !== false && write) obj.common.alias.write = write;
                      if(nameAlias) obj.common.name = nameAlias;
                      if(role) obj.common.role = role;
                      if(desc) obj.common.desc = desc;
                      if(min !== undefined) obj.common.min = min;
                      if(max !== undefined) obj.common.max = max;
                      if(unit) obj.common.unit = unit;
                      if(states) obj.common.states = states;
                      if(custom && obj.common.custom) obj.common.custom = custom;
                      obj.native = {};
                      setObject(idDst, obj);
                      if(raum && existsObject('enum.rooms.' + raum)) {
                         let obj = getObject('enum.rooms.' + raum)
                         obj.common.members.push(idDst);
                         setObject('enum.rooms.' + raum, obj);
                      }
                      if(gewerk && existsObject('enum.functions.' + gewerk)) {
                         let obj = getObject('enum.functions.' + gewerk)
                         obj.common.members.push(idDst);
                         setObject('enum.functions.' + gewerk, obj);
                      }
                   } 
                }
                 
                createAlias('alias.0.' + idAlias, idOrigin, idRead);
                
                xxx_turbo_xxxX Offline
                xxx_turbo_xxxX Offline
                xxx_turbo_xxx
                schrieb am zuletzt editiert von
                #9

                @paul53 ok... hab ich

                paul53P xxx_turbo_xxxX 2 Antworten Letzte Antwort
                0
                • xxx_turbo_xxxX xxx_turbo_xxx

                  @paul53 ok... hab ich

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #10

                  @xxx_turbo_xxx sagte:

                  hab ich

                  Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.

                  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

                  xxx_turbo_xxxX 2 Antworten Letzte Antwort
                  0
                  • xxx_turbo_xxxX xxx_turbo_xxx

                    @paul53 ok... hab ich

                    xxx_turbo_xxxX Offline
                    xxx_turbo_xxxX Offline
                    xxx_turbo_xxx
                    schrieb am zuletzt editiert von
                    #11

                    @xxx_turbo_xxx Wenn ich das richtig verstehe legt das Script nur den Datenpunkt unter alias an, richtig?

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @xxx_turbo_xxx sagte:

                      hab ich

                      Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.

                      xxx_turbo_xxxX Offline
                      xxx_turbo_xxxX Offline
                      xxx_turbo_xxx
                      schrieb am zuletzt editiert von
                      #12

                      @paul53 Läuft! Danke!!! Dann kann ich das Skript theoretisch wieder löschen bzw. deaktivieren? Jetzt muss ich nur noch verstehen, was da im Hintergrund läuft :-)

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @xxx_turbo_xxx sagte:

                        hab ich

                        Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.

                        xxx_turbo_xxxX Offline
                        xxx_turbo_xxxX Offline
                        xxx_turbo_xxx
                        schrieb am zuletzt editiert von
                        #13

                        @paul53 eines ist mir allerdings noch aufgefallen. Wenn ich die Pumpe manuell per Browserkommando starte kann ich sie nicht per Homekit deaktivieren...

                        1 Antwort Letzte Antwort
                        0
                        • xxx_turbo_xxxX xxx_turbo_xxx

                          @paul53 Läuft! Danke!!! Dann kann ich das Skript theoretisch wieder löschen bzw. deaktivieren? Jetzt muss ich nur noch verstehen, was da im Hintergrund läuft :-)

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #14

                          @xxx_turbo_xxx sagte:

                          Dann kann ich das Skript theoretisch wieder löschen bzw. deaktivieren?

                          Nein, das Skript wandelt das Kommando (false/true) vom Datenpunkt in eine gesendete URL, wird also weiterhin benötigt.

                          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
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          327

                          Online

                          32.7k

                          Benutzer

                          82.4k

                          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