NEWS
Test Adapter shuttercontrol v1.7.x
-
@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? -
die Settings finde ich sehr verwirrend und nicht selbsterklärend...
-
@dos1973
Da du Automatik für den Wohnbereich und Wohnbereich den gleichen enum hast, schalte mal autoliving auf false. -
@dos1973 sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:
die Settings finde ich sehr verwirrend und nicht selbsterklärend...
Da wird es noch Änderungen geben
-
Hallo zusammen,
erst mal vielen Dank für den Adapter. Ich habe ihn installiert und eingerichtet. Lief alles ohne Probleme. Allerdings funktioniert er noch nicht mit Shelly 2.5 Schaltern. Der Adapter trägt den Wert richtig im Objekt ein, der Rollo fährt aber nicht.
-
@SWeimar
Zeige mal bitte ein Screenshot deiner Config.
Aktuell habe ich da etwas gebastelt, was aber noch nicht alles funktioniert.Ich werde für die Testversionen am besten mal ein separaten Branch einrichten
-
@simatec
Hier die Screenshots meiner config:
-
@SWeimar
Ja das konnte ich mir denken.
Die tabelle habe ich gestern gebastelt ... Allerdingsnoch ohne Funktion.
Mir ging es erstmal um die Tabelle ansich und dem Aufruf des Object-ID Baum.Die Funktion baue ich die nächste Tage mal zum testen ein.
Aktuell musst du deine Rolläden in den enums, die du ausgewählt hast, abgelegt haben, damit sie angesteuert werden.
Dies wird sich aber auf Wunsch ändern und zukünftig über die Tabellenfunktion laufen -
@simatec said in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:
Aktuell musst du deine Rolläden in den enums, die du ausgewählt hast, abgelegt haben, damit sie angesteuert werden.
Ok, korrigiere mich falls ich mich irre. Genau das habe ich doch getan, wie im dritten Bild zu sehen...
-
@SWeimar
Ich habe gerade eine Version zum testen auf Github geladen ...
Kannst du bitte diese noch einmal installieren und testen.
In dieser Version wird die Zuordnung auf Userwunsch nicht mehr über Enums gemacht.Hier muss du lediglich deine Rollläden in der Tabelle anlegen.