NEWS
Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen
-
Aktuelle Test Version 0.1.0-alpha.8 34567Veröffentlichungsdatum 12. Juli 2020 Github Link https://github.com/Mic-M/ioBroker.smartcontrol Über diesen Adapter
Mein ursprünglicher Plan war/ist, das Bewegungsmelder-Script durch einen Adapter abzulösen. In meiner Umfrage war das auch Wunsch Nummer 1 als nächster Adapter.
Daraus ist nun der "Smart Control"-Adapter entstanden, der aber deutlich mehr kann als nur Bewegungsmelder, und es wird noch deutlich mehr folgen
Alles dreht sich bei dem Adapter um Auslöser (z.B. Wandschalter wird geschaltet, Bewegungsmelder aktiviert, Fenster wird geöffnet, 8:30 Uhr Freitags tritt ein, Sonnenaufgang + 30 Minuten am Wochenende tritt ein, etc.), worauf dann Datenpunkte geschaltet werden, wenn weitere Bedingungen zutreffen (z.B. "mindestens eine Person anwesend"). Ausgeschaltet wird dann optional auch wieder automatisch z.B. mittels Timer (also wenn Bewegungsmelder verwendet: keine Bewegung mehr und nach angegebenen Sekunden).
Die ganze Logik legt ihr in den Adapter-Einstellungen an und verknüpft diese dort entsprechend.
Hier kurz erklärt (Screenshot von den Adapter-Einstellungen);
Ein paar Beispiel-Anwendungen (Use Cases):
- Bad wird am Montag um 7:00 betreten (falls nicht Feiertag), dann geht das Licht an und das Radio schaltet sich an. Falls nach 15 Minuten keine Bewegung mehr, wird ausgeschaltet.
- Flurlicht-Steuerung mit Bewegungsmeldern, Lichtschaltern, etc.
- Küchenlicht schaltet sich bei Bewegung ein, wenn Helligkeit kleiner x Lux und andere Kriterien (z.B. jemand anwesend, Uhrzeit/Astro, etc.) zutreffen.
- Relax-Bereich: Licht geht an und Alexa spielt Musik, sobald sich jemand auf den Sessel in der "Leseecke" sitzt und es nach Sonnenuntergang minus 30 Minuten ist. Sobald keiner mehr sitzt (z.B. erkannt über Xiaomi-Tür/Fenster-Sensor), wird wieder ausgeschaltet.
Der Adapter legt mehrere Datenpunkte an:
smartcontrol.0.Test
– rein zum testen, haben keinerlei sonstige Auswirkungen. Details siehe "Für Tester" in der Adapter-Startseite (Admin):
smartcontrol.0.info.astroTimes
: Hier werden eure aktuellen Astrozeiten angezeigt. Der Adapter aktualisiert diese Datenpunkte für euch jede Nacht um 0.00 Uhr.
Zeitstempel (timeStamps) gibt es auch, falls ihr die Astrozeiten zur JavaScript/Blockly-Entwicklung nutzen wollt.
Der Adapter selbst nutzt diese Datenpunkte nicht aktiv, sondern kalkuliert selbst, dient also nur für euch zur Info und soll ein ggf. bislang genutztes Script hierfür ersetzen. Weil ich ja eh schon die Infos im Adapter habe (über suncalc), stelle ich sie euch hier gleich zur Verfügung Ihr könnt damit außerdem die aktuellen Astrozeiten sehen für eure Einstellungen, ist ja dann doch "verwirrend", wann z.B. "nauticalDusk" jetzt genau ist aktuell...smartcontrol.0.targetDevices
: Hier erscheinen alle "ZIELGERÄTE" als Datenpunkte. Für jede Tabellenzeile unter "1. ZIELGERÄTE" fügt dieser Adapter verknüpfte Datenpunkte zusmartcontrol.x.targetDevices.xxx
hinzu. Wenn du diese Datenpunkte änderst, wird der ursprüngliche Ziel-Datenpunkt entsprechend geändert, und umgekehrt, d.h. die Datenpunkte sind verlinkt.
Das ist sozusagen eine kleine "Alias / Linked Devices"-Implementierung. Du kannst also Geräte im SmartControl-Adapter unter "ZIELGERÄTE" anlegen und dann nur noch die Datenpunkte unterhalb vonsmartcontrol.0.targetDevices
zum ein- und ausschalten in deinen anderen Scripts verwenden. Wie du halt magst...smartcontrol.0.options
: Hier kannst du Tabellenzeilen der Adapter-Konfig aktivieren und deaktivieren. Bitte beachte, dass eine Änderung einen Neustart der Adapter-Instanz auslöst, weil nur damit die geänderten Zeitpläne, Verifzierungen usw. greifen.
Ursprünglicher Thread auch mit allen Erklärungen usw.
Hier: Planung neuer Adapter: Smart Control
Testen
Der Adapter kann nun endlich getestet werden, Feuer frei
Bitte beachten
Mehrere Abschnitte in den Adapter-Einstellungen sind noch nicht in Deutsch übersetzt.- ioBroker-Admin-Issue #590 - Auswahlfelder müssen "an der Seite" angeklickt werden. Ist bereits behoben im ioBroker Admin Adapter, aber ist derzeit noch präsent.
Bisherige Erweiterungs-Anfragen
Zum Testen
Weitere Infos zum Testen findet ihr im Adapter selbst:
Du brauchst Hilfe? Es gibt ein Problem? Du hast einen Verbesserungsvorschlag?
Am besten postest du erst mal hier (auch wenn in den Adapter-Optionen schon mal anders beschrieben für zukünftige Versionen), weil der Adapter noch so früh in der Entwicklung ist.
Ich sammle hier alle Erweiterungswünsche: Github - Erweiterungswünsche, die ich später noch besser strukturiere und priorisiere, usw.
Meine Entwicklungs-Approaches
- Durchgängig Promises mittels async/await, also so wie modern vorgesehen
- Durchgängig try/catch als Errorhandling, aber vor dem "catch" schon vieles abfangen
- Kapseln in eigene Funktionen wenn immer möglich/sinnvoll
- Alles gut dokumentiert im Quellcode
- User-Eingaben immer verifizieren und mit aussagekräftigem Log ausgeben falls was nicht passt. Habe keine Lust auf Fehlersuche, wenn ich nicht genau weiß, wie ich anfangen soll. Grad bei fremden Datenpunkten usw. ein großes Thema...
To Do's beim Adapter-Code:
- Restrukturierung, der Adapter-Code ist ziemlich gewachsen, muss da mal prinzipiell noch mal ran. Ggf. auch isolierte Sachen in eigene Klassen und sogar eigene Files packen, usw.
- Noch nicht umgesetzte 'this.log.error' in throw() umwandeln und dort dann
this.dumpError()
sowie entsprechenden return. - Wiederholende Logiken noch besser in Funktionen kapseln.
- Noch bessere Trennung: Adapter-spezifisch, vs. Adapter-unabhängig, vs. node.js.-generisch
- Konsistentere Logausgaben debug vs. info vs. extendedInfo
- ggf. eigene Klasse für User-Input der Admin-Optionen zur Validierung, möglichst generisch und verwendbar dann auch für andere Adapter
- ...
-
@Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.3 testen:
Hallo @Mic , ich habe deinen Adapter installiert. Ich habe die Testdaten im Adapter entfernt und zuerst mal zwei Bewegungsmelder und eine Lampe eingetragen. Dazu die Bedingungen Anwesend und Haustür neu erstellt.
Das sieht alles gut aus, aber unter Objekte finde ich immer noch den Zweig Test und den Testdaten. Der Bereich "Test" müsste doch eigentlich leer sein? Ich hatte auch schon den Adapter gestoppt und Test gelöscht. Nach dem Start ware die Datenpunkte unter Test wieder da.
-
@Mic Ich habe verstanden, dass die Test Einträge zum Testen erhalten bleiben sollen.
Ich habe nun meine eigenen DP angelegt. Das sieht erstmal gut aus, ich kann aber leider einige Punkte nicht verändern:
Hier lässt sich kein Feld anwählen. Ich habe die Instanz gelöscht und wieder neu angelegt; es zeigt sich aber kein Unterschied.
Was muss ich einstellen? -
@MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.3 testen:
Hier lässt sich kein Feld anwählen.
Kann ich bestätigen.
-
-
wollte einen lüftereinschalten, wenn temp über ..°C ist und wieder aus, wenn temp unter ..°C ist
sowas kann noch nicht gemacht werden ? oder stell ich mich zu d..f an
-
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.3 testen:
um das feld auszuwählen musst ihr rechts in dieser zeile klicken - obwohl da nix ist - also nicht direkt am haken, sondern rechts in dieser zeile
Ist auch adressiert / zukünftig behoben:
@Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.3 testen:
ioBroker-Admin-Issue #590 - Auswahlfelder müssen "an der Seite" angeklickt werden. Ist bereits behoben im ioBroker Admin Adapter, aber ist derzeit noch präsent.
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.3 testen:
wollte einen lüftereinschalten, wenn temp über ..°C ist und wieder aus, wenn temp unter ..°C ist
sowas kann noch nicht gemacht werden ?Geht noch nicht. Stellst du dir so was vor?
Also dass in Spalte "DP-Wert" auf Vergleiche, also
<
,<
,<=
und>=
möglich ist? -
@Mic ja genau - sowas habe ich mir vorgestellt
-
@liv-in-sky
Danke, funktioniert. -
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
@Mic ja genau - sowas habe ich mir vorgestellt
Ist nun drin in 0.1.0-alpha.5 - brauch ich nämlich auch
Bitte mal testen. -
@Mic Ich bekomme immer Fehler:
bei
-
den fehler habe ich auch
-
@liv-in-sky
Auf den Adapter habe ich auch lange gewartet. Aktuell laufen meine Bewegungsmelder über Script in der Homematic. Ich hatte vor einiger Zeit das Script von @Mic im Einsatz. Hier fehlte aber die Funktion, vor dem Einschalten der Lampen durch den Bewegungsmelder zu prüfen, ob die Lampe schon brennt. Dadurch wurden die Lampen dann ausgeschaltet. War schon blöd.... -
werde meine scripte mit den bewegungsmeldern wahrscheinlich auch nicht in diesem adapter nutzen können - ich habe einen mode, indem ich - wenn allein - die scripte bzw iobroker - immer weiß, wo ich bin und einiges mehr, wie ein licht eingeschaltet wird - aber mal sehen, ob ich da was umstellen kann - ist bei mir daheim wie mit google - iobroker weiß immer wo ich bin
finde aber so eine schaltzentrale eine gute idee - meine javascript sammlung ist zu groß und unübersichtlich geworden - vielleicht kann ich mit dem adapter etwas aufräumen
ich glaube, ich muss langsam mit den aliasen richtig anfangen, sonst muss man darin auch noch ändern, wenn geräte getauscht werden
-
@liv-in-sky Das geht mir genauso. Ich emigriere auch so langsam meine Script von der Homematic zum ioBroker. Der größte Brocken waren die Rollläden inkl. Beschattung. Die laufen jetzt in Shuttercontrol. Bisher erfüllt der Adapter ca. 90% der Funktionen meiner Script. Der riesige Vorteil der Adapter ist die "zentrale" Steuerung der Einstellungen. Ich hatte ca. 40 Scripte für die Rollos laufen inkl. Beschattungssteuerung mit Temp./Differenztemp, Auswertung der Innen- wie auch Außentemperatur, etc.....
Das war doch schon immer ein Problem bei jedem Change Prozess. Das macht der Adapter schon einfacher.
Jetzt muss ich überlegen, wo läuft denn mein Script? Auf der Homematic oder schon auf dem ioBroker. Ich werde dann umsteigen, wenn mehr als 80% der Funktionen erfüllt sind. -
@MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
@Mic Ich bekomme immer Fehler:
Ich habe nun die Anforderung rausgenommen, dass Datenpunkte nur einmal pro Tabelle vorkommen dürfen.
Gelöst in 0.1.0-alpha.6 -
@Mic
Werde ich testen. Danke. Die Entwicklung läuft ja rasant. -
@MartyBr
Das hier sollten wir uns noch ansehen:
Hast du Latitude/Longitude in deinen Admin-Einstellungen drin?
Sonst noch was auffälliges im Log?
-
@Mic
Die Meldungen kommen im Sommer bei <night> und <nightend>. Die Zeiten liegen hier in Deutschland wohl außerhalb des Scopes. Ich habe das seit Anfang an in jedem Script, wo Astro Zeiten berechnet werden. Dazu gibt es einige Foreneinträge.Habe jetzt die neue Version installiert. Im Test System einige Errors:
War dann mutig und habe es auf dem Produktiv System installiert. Hier lief es einwandfrei durch bis auf den Zeitfehler.
Konnte aber beide Systeme noch nicht testen.
Update 18:40
Habe die beiden "Anderen Auslöser" aktiv geschaltet, läuft wieder.
Danke -
@MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
Update 18:40
Habe die beiden "Anderen Auslöser" aktiv geschaltet, läuft wieder.Danke fürs Testen. Was meinst du mit "läuft wieder"? D.h. auch Astro für night/nightEnd geht?
Denn das sollte dennoch gehen, auch wenn night/nightEnd nach Mitternacht sind.