NEWS
Test Adapter shuttercontrol v1.7.x
-
@dos1973
Was sagt denn der Datenpunkt Level bei dir.
Den sehe ich nicht, da der Ordner nicht aufgeklappt ist -
der Shelly 2.5PM Rolladen hat kein Level
Edit: Sorry. Position= level
-
@Homoran
Astro wird gefahren, wenn Astro kleiner ist als das späteste Runterfahren und wenn Astro im Bereich frühste zeit zum hochfahren und späteste Zeit zum hochfahren liegt -
@dos1973
Dann muss ich Position mit aufnehmen.
Wie im ersten Beitrag geschrieben, habe ich aktuell nur LEVEL drin und hier sollte berichtet werden, was noch benötigt wird.
Mache ich morgen -
ok. Danke.
dann probieren wir es morgen
was passiert wenn es kein Level oder Postion gibt?
meine Funkrolladen haben nur Buttonshoch
stop
runterkönnen diese Button auch verwendet werden?
Danke für deine Mühe & Geduld !
-
@dos1973
Die Button werden aktuell nicht unterstützt.
Da müsste man eine Funktion für überlegen.
Aktuell wird nur nach Level 0-100% gefahren. -
@dos1973 sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:
so richtig?
übersetzt der Rolladen nach blinds?Du kannst den Enum noch nachträglich bearbeiten und die ID anpassen.
Dann ist der ID Name auch nicht mehr blinds -
@Homoran sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:
@simatec
Auch wäre schön einen offset einstellen zu können.Was meinst du mit offset?
Für Astro kannst du ein offset einstellen.
Standard sind in der Config 30 Minuten.Für das fahren von mehreren Rollläden aus einer Funktion gibt es auch einen offset zum einstellen. Standard ist hier auf 10 Sekunden eingestellt
-
@simatec
ist es für mich realistisch zeitnah auf die Funktion mit den Button zu hoffen?
keine Ahnung welche Ideen und Anforderungen du noch hast.Bei mir werden alle Rolladen mit Funk und eben nur mit Buttons angesprochen, ohne diese Funktion wird der Adapter dann für mich leider nicht nutzbar sein.
-
@simatec sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:
Was meinst du mit offset?
Ich meine eigentlich unterschiedloche offsets je zimmer.
Da dein Adapter jedoch nicht zimmerbezogen arbeitet vielleicht je Gruppe.Meiner Meinung nach ergibt diese Gruppierung nicht für alle Anwender einen Sinn.
Wenn für jedes Zimmer separate Einstellungen gemacht werden sollen (schlafräume der Kinder waren da sehr speziell) ergibt andererseits die ganze enums-Sache nur bedingt Sinn.Mein Schlafzimmer geht zur Straße, da soll nicht im winter schon der Rollladen hochgehen, wenn ich beim Aufstehen noch Licht anmachen muss. Man will die Leute ja nicht erschrecken!
Ebenso die Küche. Die ist 3m von dem Fusweg weg, hier soll abends der Rolladen schon runtergehen bevor die Sonne ganz unten ist, wenn ich schon Licht zum arbeiten brauche.
Auf der anderen Seite ist das große Wohnzimmerfenster, da möchte meine Holde gerne im Sommer beim TV noch den Abendhimmel beim/nach Sonnenuntergang sehen.Mir schwebte eine Konfiguration in Tabellenform, ähnlich ping oder parser, vor, ganz zu Ende hatte ich es aber auch noch nicht gedacht.
Alle Räume eine Zeile, bei mehreren Rollläden ggf. Gruppen.
Es gibt ja auch Räume, die Fenster in verschiedene Himmelsrichtungen haben.Bei Beschattung ergibt die Aufteilung nach Raumfunktionen gar kei en Sinn, wenn die Räume gleixher Funktion in alle Himmelsrichtungen zeigen.
-
@Homoran
Die Idee hatte ich Anfangs auch, das ganze in Tabellenform zu machen.
grundsätzlich ist diese Version nur eine erste Idee.
Ich hatte da auch schon mit @Dutchman drüber diskutiert.
Da kamen wir zu der Meinung, dass enums im Prinzip das sinnvollste wäre.Aber es ist eine erste Beta und wir können noch viele Ideen einfließen lassen.
-
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); })();
-
So hat doch etwas gedauert ... Jetzt kannst du die shellys mal testen.
-
@Homoran
Hallo Rainer,ich habe nun mal angefangen und das ganze in Tabellenform gemacht.
Die Überlegung wäre noch, ob man enums und Tabelle anbietet (als Vorauswahl)
Da überlege ich aber noch.
Aktuell gibt es das noch nicht auf Github, da ich zwar die Tabelle hinbekomme ubd man auch Zeilen einfügen kann, aber das schreiben der ID des Rolladens noch manuell erfolgen muss.Ich sitze seit Tagen dran, bekomme aber diese blöde Dialogabfrage nicht zum laufen, damit man die ID Auswahl über das Popup wie z.B. im Cloud Adapter machen kann.
Im Moment geht also nur copy & paste ️
Kannst du ml bitte deine Ideen in Stichpunkten hier zusammenfassen, was für Auswahlmöglichkeiten die Tabelle bieten sollte?
Aktuell gibt es die ID mit edit-Button (noch ohne Funktion), eine checkbox für an/aus, eine delete-Button, und hoch/runter Button zum Reihenfolge ändern.
Ich würde noch eine Auswahl für Zuordnung der unterschiedlichen Bereiche vorschlagen.Noch weitere Ideen?
-
Hallo, möchte auch meine Erfahrungen einbringen zu meiner derzeitigen Steuerung.
Mein Aussen-Raffstores werden über Azimut, Elevation und Lux (HM Helligkeitssensor) gesteuert.
Sind die entsprechenden Parameter true bzw. über einer definierten Höhe werden zB. alle Südseitigen auf 2% gesetzt und die anderen (Westseitigen) auf 0%. Nordseitige beachte ich in meinem Script nicht, da sie für die Beschattung keine Relevanz haben.
Das entsprechende Script lasse ich nur zwischen 9:00 und 18:00 Uhr laufen, außerhalb dieser Zeit brauch ich die Funktion nicht.
Zusätzlich beachte ich auch ob einer meiner Fernseher läuft, denn da möchte ich ja nicht dass diese wieder aufgehen.
Auch meinen Windmesser lasse ich in die Funktion miteinfließen, möchte ja nicht, dass bei Sturm die Raffstores runterfahren. -
@simatec sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:
Kannst du ml bitte deine Ideen in Stichpunkten hier zusammenfassen, was für Auswahlmöglichkeiten die Tabelle bieten sollte?
Gerne, aber da war ich mit mir selber noch nicht einig
Wie du selber richtig schriebst, muss das ganze noch halbwegs übersixhtlich u d bedienbar bleiben, soll aber alle möglichen Optionen enthalten KÖNNEN.
Optimal wären dann optionale Editier/Konfigurierpopups, wie sie z.b. im Parser Adapter sind.
Ich setze mich mal heute hin und versuche das zu formulieren, passend zu den Wünschen zu Beginn des Threads, gemäß: wie soll ich wissen was ich meine, bevor ich lese was ich schrieb.
-
@JohGre
Das deckt sich ja schon mal weitestgehend mit meinen "Grundanforderungen" -
@Homoran sagte in [[Aufruf] Neuer Adapter
wie soll ich wissen was ich meine, bevor ich lese was ich schrieb.
-
@simatec
klappt noch nicht...shuttercontrol.0 2019-05-18 14:39:30.799 warn undefined shuttercontrol.0 2019-05-18 14:39:30.798 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.shuttercontrol, node: v8.15.0 host.ioBroker 2019-05-18 14:39:30.089 info instance system.adapter.shuttercontrol.0 started with pid 20445 host.ioBroker 2019-05-18 14:39:00.079 info Restart adapter system.adapter.shuttercontrol.0 because enabled host.ioBroker 2019-05-18 14:39:00.079 error instance system.adapter.shuttercontrol.0 terminated with code 0 (OK) Caught 2019-05-18 14:39:00.079 error by controller[0]: at Timer.listOnTimeout (timers.js:290:5) Caught 2019-05-18 14:39:00.078 error by controller[0]: at tryOnTimeout (timers.js:323:5) Caught 2019-05-18 14:39:00.078 error by controller[0]: at ontimeout (timers.js:498:11) Caught 2019-05-18 14:39:00.078 error by controller[0]: at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.shuttercontrol/main.js:510:52) Caught 2019-05-18 14:39:00.078 error by controller[0]: TypeError: Cannot read property 'common' of undefined shuttercontrol.0 2019-05-18 14:39:00.053 info terminating shuttercontrol.0 2019-05-18 14:39:00.049 info cleaned everything up... shuttercontrol.0 2019-05-18 14:39:00.048 error at Timer.listOnTimeout (timers.js:290:5) shuttercontrol.0 2019-05-18 14:39:00.048 error at tryOnTimeout (timers.js:323:5) shuttercontrol.0 2019-05-18 14:39:00.048 error at ontimeout (timers.js:498:11) shuttercontrol.0 2019-05-18 14:39:00.048 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.shuttercontrol/main.js:510:52) shuttercontrol.0 2019-05-18 14:39:00.048 error TypeError: Cannot read property 'common' of undefined shuttercontrol.0 2019-05-18 14:39:00.047 error uncaught exception: Cannot read property 'common' of undefined shuttercontrol.0 2019-05-18 14:38:02.678 warn undefined shuttercontrol.0 2019-05-18 14:38:02.658 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.shuttercontrol, node: v8.15.0 host.ioBroker 2019-05-18 14:38:02.053 info instance system.adapter.shuttercontrol.0 started with pid 20385 host.ioBroker 2019-05-18 14:37:59.579 info instance system.adapter.shuttercontrol.0 terminated with code 0 (OK) shuttercontrol.0 2019-05-18 14:37:59.547 info cleaned everything up... host.ioBroker 2019-05-18 14:37:59.539 info stopInstance system.adapter.shuttercontrol.0 killing pid 20290 host.ioBroker 2019-05-18 14:37:59.539 info stopInstance system.adapter.shuttercontrol.0 shuttercontrol.0 2019-05-18 14:37:59.540 info cleaned everything up...
-
@dos1973
Zeig mal deine Config für den Wohnbereich?