NEWS
Test Adapter shuttercontrol v1.7.x
-
@bostil sagte in Test Adapter shuttercontrol v1.2.x:
Also, wenn zB Aussentemperatur > 20 Grad, dann Rollade halb schließen, bei erreichen eines höheren Schwellenwertes dann komplett runter
die Sinnhaftigkeit dieses Vorhabens erschliesst sich mir nicht.
Bei Sonneneinstrahlung dringt die IR-Komponente unabhängig von der Außentemperatur ins Zimmer.Anders sähe es aus, wenn durch den Sonnenstand und damit zusammenhängendem variablem Schattenwurf die Beschattung angeglichen werden sollte.
-
@da_woody sagte in Test Adapter shuttercontrol v1.2.x:
brav bei sunrise rauf, state richtig gesetzt.
das funktioniert bei mir auch.
Aber eben nicht, dass er bei m Sonnenschutz wieder hochfährt, wenn Temp. unterschritten wird.
Da bleibt er stur im Manu_Mode hängen. -
@negalein
Manumode ist auch nicht Sonnenschutz.
Du solltest genau prüfen, wann sich der Status in Manumode ändert und die Ursache suchen. -
@simatec So zweite Tag heute, an dem dein Adapter die Rollo Steuerung übernommen hat.
So ganz rund scheint das bei mir noch nicht zu laufen, entweder falsche Einstellungen oder vom Adapter so gewollt.-
Shading Mode, sobald ich hier die Türe öffnet oder das Fenster, fährt er hoch, aber nicht mehr runter. Im DP steht dann manu mode. Gibt es hier keine erneute Prüfung auf Sonnenschutz ? Macht der Adapter das nur einmal und wenn er einmal in sunprotect war und man manuell eingreift, war's das ?
-
Nach der Nachtfahrt, wenn ich das Fenster von offen auf kippen stelle, bekommt der Sensor ja kurz Kontakt, so nach 10 Sekunden fährt der Rollo hoch. Denke das ist so gewollt ? Ich dachte die Verzögerung betrifft den Status des Fensterkontakts, sprich wenn ich innerhalb der 10 sek, das Fenster von offen auf kipp stelle, ist danach der Status ja wieder gleich offen und das Rollo sollte sich nicht bewegen.
-
-
@d3ltoroxp sagte in Test Adapter shuttercontrol v1.2.x:
Shading Mode, sobald ich hier die Türe öffnet oder das Fenster, fährt er hoch, aber nicht mehr runter.
kann ich bestätigen!
ich suche hier auch noch meine falsche Konfiguration.
Hab aber bisher nichts gefunden -
@homoran vllt wird das auch noch nicht Berücksichtigt. Wenn er sich im sunprotect befindet und man macht manuell was, z.b. mit der Tür oder dem Fenster, wäre das super, wenn er einfach wieder in die letzte Pos fährt, also die vom Sunprotect.
Das gleiche wenn die Rollos abends schließen. Entweder falsch eingestellt, oder der Adapter gibt das noch nicht her.
Gefühlt wird die Automatik bis zum nächsten Schaltpunkt unterbrochen, wenn man hier manuell eingreift. Klar wenn ich von Hand fahre, weiß der Adapter ja nicht warum, dann würde ich das auch so lassen. Vllt will man das ja offen haben. Aber wenn man eben nur die Tür kurz öffnet, weil man halt einfach raus muss und sie danach wieder zu macht, wäre es schon schön.
-
@d3ltoroxp said in Test Adapter shuttercontrol v1.2.x:
Gefühlt wird die Automatik bis zum nächsten Schaltpunkt unterbrochen, wenn man hier manuell eingreift. Klar wenn ich von Hand fahre, weiß der Adapter ja nicht warum, dann würde ich das auch so lassen. Vllt will man das ja offen haben. Aber wenn man eben nur die Tür kurz öffnet, weil man halt einfach raus muss und sie danach wieder zu macht, wäre es schon schön.
Ich denke Dein Anliegen ist in der Doku zu finden...:
Rollladen fahren bei Änderung des Fenster/Tür Zustandes:
Pulldown zur Auswahl der Funktion, die bei Bewegung des Fenster/Tür Sensors
durchgeführt werden soll:Aus: keine Bewegung
Öffnen: Beim Öffnen der Tür fährt der Rollladen auf und verbleibt dort
Schließen: Nach Schließen der Tür fährt der Rollladen auf die Verdunklungsposition
Öffnen und Schließen: Der Rollladen öffnet sich mit der Tür und fährt mit dem Schließen wieder runterWenn er dies nicht tut - prüfe den Status und was Dein Rolle bei der entsprechenden Handlung zurückmeldet.
Viel Erfolg! -
@foxro sagte in Test Adapter shuttercontrol v1.2.x:
Öffnen und Schließen: Der Rollladen öffnet sich mit der Tür und fährt mit dem Schließen wieder runter
und genau das habe ich eingestellt!
Macht er aber nicht! er bleibt nach dem Schließen oben -
@simatec sagte in Test Adapter shuttercontrol v1.2.x:
Manumode ist auch nicht Sonnenschutz.
Du solltest genau prüfen, wann sich der Status in Manumode ändert und die Ursache suchen.Das hat doch @FoxRo schon gefunden.
Der HmIP-BROLL und HmIP-FROLL schreibt den Wert nicht mehrfach.
Zum Beispiel Startwert 100, Sollwert 50
Start 100
Zwischenwert (vermutlich von CCU) zB 98,4 (nicht gewollt und keine Ahnung obs vom HM-Entwickler geändert wird oder geändert werden kann)
Endwert 50Und durch diesen doofen Zwischenwert hauts den Shuttercontrol in den Manu_Mode. Somit fährt der Rollo nach unterschreiten der Temperatur nicht mehr automatisch hoch.
Dies wurde hier schon mehrfach besprochen (bin bestimmt nicht der einzige mit HmIP-Rollos) sowie auch im anderen Thread.
-
@negalein
Ich hab bei einem Kumpel mit HMIP Aktoren eingerichtet und keine Probleme mit den Werten feststellen können.
Überprüfung der Aktoren nach 60 Sekunden und alles funktioniert.Werde aber in meiner Testumgebung das ganze mal simulieren und loggen
-
@simatec sagte in Test Adapter shuttercontrol v1.2.x:
Werde aber in meiner Testumgebung das ganze mal simulieren und loggen
soll ich dir meinen Export schicken?
Ich hab bei einem Kumpel mit HMIP Aktoren eingerichtet und keine Probleme mit den Werten feststellen können.
Überprüfung der Aktoren nach 60 Sekunden und alles funktioniert.
Bei mir sind sie an der CCU3 angelernt.
Überprüfung der Aktoren hab ich schon auf 120 raufgedreht.
-
@negalein
Poste mal deine Config hier. Dann kann ich es nachstellen -
@simatec sagte in Test Adapter shuttercontrol v1.2.x:
Poste mal deine Config hier. Dann kann ich es nachstellen
-
@negalein said in Test Adapter shuttercontrol v1.2.x:
Und durch diesen doofen Zwischenwert hauts den Shuttercontrol in den Manu_Mode. Somit fährt der Rollo nach unterschreiten der Temperatur nicht mehr automatisch hoch.
Dies wurde hier schon mehrfach besprochen (bin bestimmt nicht der einzige mit HmIP-Rollos) sowie auch im anderen Thread.
Hallo
Habe keine Ahnung in welcher Reihenfolge dieser Update von Höhe und Workin Signal passiert. Was ich bis jetzt gelernt habe ist, dass es bei HM einen DP gibt, welcher die aktuelle Position liefert und ein DP welcher anzeigt, ob er am fahren ist oder nicht.
.. evtl könnte sowas helfen? (mal Testweise)
Damit würdest einen weiteren DP (müsstest testweise von Hand anlegen) nur mit der gültigen Höhe "Füttern". Diesen kannst dann im Alias als aktuell gültige Höhe einbinden und nicht der vom CCU gelieferte. Der neue DP wird nur geupdatet, wenn das working Signal "false" ist - der Rollo also steht und dann die Pos. von CCU daher kommt. Je nach Reihenfolge der beiden Signale müsstest evtl den Trigger auf nicht auf die CCU Höhe, sondern auf das Working Signal legen.
Wenn das tatsächlich funktioniert, wäre es zumindest mal ein Workaround, damit Du Shuttercontrol korrekt betreiben kannst.
Viel Erfolg! -
@foxro Eben, die Doku bin ich durch, selbst beim Einstellen ist es eigentlich schon selbsterklärend. Öffnen/Schließen ist eingestellt.
-
@dirkhe sagte in Test Adapter shuttercontrol v1.2.x:
Zum Thema Button vs Level. Ich habe den adapter noch nicht getestet, aber ich habe hier ein Script geschrieben, was ein Level simuliert. Damit kann ich meine rolladen zb. Auf 50% fahren. Vlt hilft es dir ja
(function(){ // interne Funktion function drive(idActive, idPassive, runtime) { setState(idPassive, false); setState(idActive, true); setStateDelayed(idActive,false,runtime); } /** * initialisiert eine SOnOff Rolladensteuerung, zb ein T1 * @param {string} id_DeviceBase Die ID des Basisobjektes * @param {string} stateUpName Der Name des Schalter für Auf, zb. "POWER1" * @param {string} stateDownName Der Name des Schalter für Zu, zb. "POWER2" * @param {number} runtimeUp Die Laufzeit (in sec), bis die Rollade komplett aufgefahren ist * @param {number} runtimeDown Die Laufzeit (in sec), bis die Rollade komplett zugefahren ist */ function initRollade(id_DeviceBase, stateUpName, stateDownName, runtimeUp, runtimeDown){ var id_deviceDown= id_DeviceBase + '.' + stateDownName; var id_deviceUp= id_DeviceBase + '.' + stateUpName; var id_deviceLevel= id_DeviceBase + '.level'; if (getState(id_deviceLevel).notExist){ //setState(id_deviceLevel,0,true,function(){ extendObject(id_deviceLevel,{type:"state",common:{ "type": "number", "name": "Level", "def": 0, // optional, default 0 "read": true, // mandatory, default true "write": true, // mandatory, default true "min": 0, // optional, default 0 "max": 100, // optional, default 100 "unit": "%", // optional, default % "role": "level.blind" // mandatory, } },function(){ log("create " + id_deviceLevel); setStateDelayed(id_deviceLevel,0,true,100); }); //}); } on({id: id_deviceUp, change: "ne", val:false}, function (obj) { let pos= getState(id_deviceLevel).val + Math.round((100 / (runtimeUp * 1000)) * (obj.state.ts - obj.oldState.ts)); if (pos > 100) { pos = 100; } setState(id_deviceLevel, pos, true); }); on({id: id_deviceDown, change: "ne", val:false}, function (obj) { let pos= getState(id_deviceLevel).val - Math.round((100 / (runtimeDown * 1000)) * (obj.state.ts - obj.oldState.ts)); if (pos < 0) { pos = 0; } setState(id_deviceLevel, pos,true); }); on({id: id_deviceLevel, ack:false}, function (obj) { if (getState(id_DeviceBase + ".alive").val) { setState(id_deviceLevel,obj.oldState.val,true); if (obj.state.val <= 0) drive(id_deviceDown, id_deviceUp, runtimeDown * 1000 + 1000); else if (obj.state.val >= 100) drive(id_deviceUp, id_deviceDown, runtimeUp * 1000 + 1000); else { let diff = obj.oldState.val - obj.state.val; if (diff > 0) drive(id_deviceDown, id_deviceUp, diff * (runtimeDown / 0.1)); else drive(id_deviceUp, id_deviceDown, Math.abs(diff) * (runtimeUp / 0.1)); } } }); } initRollade("sonoff.0.Rollade/Florian", "POWER1", "POWER2",15,10); //initRollade('sonoff.0.DVES_AD871717', 'POWER2', 'POWER1',18,16); })();
Daaanke, habe die ganze Zeit nach einer Lösung für meinen Sonoff Touch 2ch mit Tasmota gesucht, damit ist es mir möglich, ohne den Adapter zu arbeiten. (brauche lediglich das Level für den IOT-Adapter/Alexa.
-
@foxro sagte in Test Adapter shuttercontrol v1.2.x:
Habe keine Ahnung in welcher Reihenfolge dieser Update von Höhe und Workin Signal passiert.
Hallo
Ich versteh das Blockly nicht richtig.
Ich zeig dir mal ein Gif, wie sich die DP verhalten.
Vielleicht kannst du mir dann das Blockly erklären.Es geht von 0 auf 30. Dann wieder von 30 auf 0.
-
@d3ltoroxp said in Test Adapter shuttercontrol v1.2.x:
@foxro Eben, die Doku bin ich durch, selbst beim Einstellen ist es eigentlich schon selbsterklärend. Öffnen/Schließen ist eingestellt.
Dann bleibt Dir nur noch, was ich auch geschrieben hatte..
Wenn er dies nicht tut - prüfe den Status und was Dein Rollo bei der entsprechenden Handlung zurückmeldet.
Hast Du auch HM IP Aktoren im Einsatz? wie verläuft der Update der zurück gemeldeten Position? Fällt er in den Manu_Mode, wenn Du das Fenster öffnest / schliesst? -
@negalein said in Test Adapter shuttercontrol v1.2.x:
Hallo
Ich versteh das Blockly nicht richtig.
Ich zeig dir mal ein Gif, wie sich die DP verhalten.
Vielleicht kannst du mir dann das Blockly erklären.Es geht von 0 auf 30. Dann wieder von 30 auf 0.
Danke für das GIF - das erleichtert es um einiges.
Habe das Blockly umgeschrieben und mit den DPs erstellt, wie sie im GIF genannt werden.
Was macht das Ding:
Es lauscht auf den Datenpunkt Process und beginnt zu laufen, wenn sich dieser ändert.
Wenn der Wert des DP Prozess == 1 ist, dann läuft der Rollo und der DP "HoeheGueltig" auf dem aktuellen Wert wird belassen (Kein Update).
Sobald der DP Process ändert und == 0 ist, dann wird der aktuelle Wert aus Level an den DP HoeheGueltig weiter gereicht.
Den DP HoeheGueltig ist ein neuer eigener DP und müsstest dann als "Actual" im Alias einbinden, an der Stelle wo aktuell den "Level" eingebunden hast.
Hoffe das war verständlich.
Bin gespannt ob dies bei dir Funktioniert.
Wenn weitere Hilfe dazu benötigst lass es mich wissen, dann macht es evtl Sinn, mal zusammen in einer gemeinsamen Session drauf zu schauen - wenn Du das willst.
Viel Erfolg! -
@foxro sagte in Test Adapter shuttercontrol v1.2.x:
Hoffe das war verständlich.
Danke, war sehr hilfreich.
DP wird brav ohne Zwischenschritt aktualisiert.Im Alias-Script check ich noch nicht, wo nun dieser DP eingetragen werden muss.
.3.LEVEL = Status
.4.LEVEL ist zum schaltenScript ist jetzt zwar von einem anderen Alias-Rollo. Aber alle sind HmIP.
// Original-Datenpunkt const idOrigin = 'hm-rpc.0.00111A49914A48.4.LEVEL'/*Rollo Kinderzimmer :4 LEVEL*/ // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = 'hm-rpc.0.00111A49914A48.3.LEVEL'/*Rollo Kinderzimmer :3 LEVEL*/ // Alias-Datenpunkt const idAlias = 'Rollos.Rollo_Kinderzimmer'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Rollo Kinderzimmer'; 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);