NEWS
Yahka und Zeitsteuerung ESPeasy
-
@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...
@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_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) ?
@paul53 Nein, ioBroker empfängt den Wert nur, wenn ich das richtig sehe
-
@paul53 Nein, ioBroker empfängt den Wert nur, wenn ich das richtig sehe
@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_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"
@paul53 Ok. Kannst du mir das bitte etwas genauer darstellen? Wo trage ich die Werte ein?
-
@paul53 Ok. Kannst du mir das bitte etwas genauer darstellen? Wo trage ich die Werte ein?
@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_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);@paul53 ok... hab ich
-
@paul53 ok... hab ich
@xxx_turbo_xxx sagte:
hab ich
Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.
-
@paul53 ok... hab ich
@xxx_turbo_xxx Wenn ich das richtig verstehe legt das Script nur den Datenpunkt unter alias an, richtig?
-
@xxx_turbo_xxx sagte:
hab ich
Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.
@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 :-)
-
@xxx_turbo_xxx sagte:
hab ich
Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.
@paul53 eines ist mir allerdings noch aufgefallen. Wenn ich die Pumpe manuell per Browserkommando starte kann ich sie nicht per Homekit deaktivieren...
-
@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 :-)
@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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden