NEWS
HM-RPC Level Kanal 3&4 nicht synchron
-
@negalein sagte: Als Wert steht ja 0 dort.
Sicher? Prüfe es mal in einem kleinen Test-Skript:
log('Rollo Wohnzimmer: ' + getState('alias.0.Rollos.Rollo_Wohnzimmer').val);
-
@paul53
Damit kam bei mir immer der richtige Wert (aber im admin stand trotzdem der falsche Wert und war dann auch in iQontrol falsch.)
@Negalein
Es wäre interessant welchen Wert denn Shuttercontrol nimmt, den sichtbaren aus dem admin oder den "wirklichen", wenn es denn in Deinem Log auch so ist wie bei mir. -
@dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Warte aber trotzdem noch das Ergebnis heute Abend mit Shuttercontrol ab. Ich nutze den Adapter nicht, kann man da zum testen für das eine Rollo nicht die Zeiten einstellen ?
So, ich hab jetzt wieder das Blockly deaktiviert, Alias-Script aktiviert und gerade geschalten.
Derzeit ist der Alias noch gleich wie .3.LEVELHab jetzt noch History dafür aktiviert.
@paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Sicher? Prüfe es mal in einem kleinen Test-Skript:
Ok, wenns wieder auftritt.
-
@paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Sicher? Prüfe es mal in einem kleinen Test-Skript:
javascript.0 2021-04-09 18:00:52.697 info (814) script.js.Fenster.Test-Alias: Rollo Wohnzimmer: 93
Im Log stehts richtig.
Bin dann gespannt. -
-
@negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Funktioniert mit dem Alias.
Shuttercontroll hat soeben brav geschlossen!
beobachte es mal noch einen Tag. Wie war das Log und history zu der Zeit als Shuttercontrol geschlossen hat ?
-
@negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Im Log stehts richtig.
Bin dann gespannt.ist das Log und der Screenshot zur gleichen Zeit gemacht ?
Edit: weil das Log von 18:00 Uhr ist ?
-
@dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:
ist das Log und der Screenshot zur gleichen Zeit gemacht ?
Ja, war der Zeitpunkt, wo ich den Schalter betätigt habe.
Schalter betätigt --> im Wert wird 0 angezeigt, im Log aber die richtigen 93
-
Kann ich in diesem Script auch die anderen Rollos einfügen, oder je Rollo 1 Script?
// Original-Datenpunkt const idOrigin = 'hm-rpc.0.00115A49A5B2BE.4.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/ // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = 'hm-rpc.0.00115A49A5B2BE.3.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/ // Alias-Datenpunkt const idAlias = 'Rollos.Rollo_Wohnzimmer'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Rollo Wohnzimmer'; desc = 'per Script erstellt'; // typeAlias = 'boolean'; // oder 'number' // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? String(1) : String(0)"; // role = 'value'; // 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(obj.common.type == 'number') { if(min !== undefined) obj.common.min = min; if(max !== undefined) obj.common.max = max; if(unit) obj.common.unit = unit; } else { if(obj.common.min !== undefined) delete obj.common.min; if(obj.common.max !== undefined) delete obj.common.max; if(obj.common.unit) delete obj.common.unit; } if(states) obj.common.states = states; if(custom && obj.common.custom) obj.common.custom = custom; obj.native = {}; setObject(idDst, obj, function() { if(idRd) setState(idRd, getState(idRd).val, true); else setState(idSrc, getState(idSrc).val, true); }); 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);
-
@negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:
je Rollo 1 Script?
entweder je Rollo eins, oder Du überschreibst nur die oberen beiden id und erstellst damit neu usw.
-
@dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Wie war das Log und history zu der Zeit als Shuttercontrol geschlossen hat ?
History hatte ich vergessen zu aktivieren.
2021-04-09 19:53:00.027 - [32minfo[39m: shuttercontrol.0 (22669) #12 Set ID: alias.0.Rollos.Rollo_Wohnzimmer Rollo Wohnzimmer value: 0%
-
@dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:
oder Du überschreibst nur die oberen beiden id und erstellst damit neu usw.
Ok, also das Script muss nur 1x laufen um den Alias anzulegen. Danach kann es pausiert werden?
-
@negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:
Danach kann es pausiert werden?
ja, das brauchst Du nur jeweils 1x zum erstellen, danach kannst Du es ausschalten.
-