NEWS
Planung neuer Adapter: Smart Control
-
Hi,
mein ursprünglicher Plan war/ist, das Bewegungsmelder-Script abzulösen.
In meiner Umfrage war das auch Wunsch Nummer 1 als nächster Adapter.Nun steht ein Konzept, hab aber außer der Adapter-Konfiguration noch keine Zeile Adapter-Code geschrieben
Selbst der Adapter-Name steht noch nicht fest, hab ihn jetzt erst mal "Room Control" benannt. Namens-Vorschläge sind willkommen
Was wird der Adapter können:
Hier mal Beispiel 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 ein, wenn Helligkeit kleiner xxx Lux und andere Kriterien (z.B. jemand anwesend, Uhrzeit/Astro, Bewegung, etc.) zutreffen.
- Relax-Bereich: Licht geht an und Alexa spielt Musik, sobald sich jemand auf den Sessel in der "Leseecke" sitzt. Sobald keiner mehr sitzt (z.B. über Xiaomi-Tür/Fenster-Sensor), wird nach paar Minuten wieder ausgeschaltet.
Ich erkläre es mal anhand der Konfiguration:
-
Man definiert Auslöser ("Triggers") also z.B. Bewegungsmelder, Wandschalter, einen Fensterkontakt, o.ä.
-
Man definiert zu schaltende Geräte/Datenpunkte, die geschaltet werden (Mehrfachauswahl) sobald ein Auslöser was meldet.
-
Man definiert Räume/Bereiche, wie z.B. "Lese-Ecke", "Gäste-WC EG", "Flur 1. OG", "Esstisch", usw. Hier verknüpft man dann die Auslöser und die zu schaltenden Ziele.
-
Dann definiert man noch gewisse Bedingungen, z.B. Feiertag, alle abwesend, Kaffeemaschine muss gereinigt werden, etc.
-
Zum Schluss eine Zeitplanung, wann bei Auslösen der Trigger geschaltet wird. Also z.B. immer, wenn ein Trigger auslöst, oder nur zu bestimmten Zeiten und nur falls wer anwesend, nicht auslösen, falls die Kaffeemaschine gereinigt werden muss, usw.
Soweit so gut. Beim Entwerfen des Konzepts kommt mir immer mehr, dass das eine größere Sache werden könnte und nicht nur limitiert auf Schalter/Bewegungsmelder/Lichter etc. Aber jetzt erst mal hiermit starten
Hier noch eine gif-Animation zu den geplanten Einstellungen:
Ausblick
Fokus ist erst mal "Licht-/Geräte-/Raumsteuerung" in Verbindung mit optionalen Bewegungsmeldern und Zeitplanungen.
Aber man könnte damit auch viele andere Blockly/JavaScripts ablösen, wie z.B. "Xiaomi Aqara Cube wird geschüttelt --> Fernseher geht aus", also einige ITTT "If This Then That" Sachen, ohne dass man Blockly/JS braucht.
Mal sehenIdeen und Vorschläge anderer User
- @Tirador hat hier und nachfolgend hier einige sehr gute Ideen zur zentralen Lichtsteuerung gepostet.
- @Omnedon hat dazu ergänzt.
- Generell:
Nun brauche ich bitte euer Feedback
Die Umsetzung der Adapter-Entwicklung hängt maßgeblich vom Konzept ab, daher habe ich erst mal die Konfiguration gestaltet. Bevor ich jetzt loslege mit der eigentlichen Entwicklung und unnötig Zeit verbrate:
- Erscheint das Konzept für euch so sinnvoll?
- Fehlt was Wesentliches?
- Was würdet ihr euch noch wünschen?
- Andere Meinungen?
VIS-Widgets und VIS-Steuerung schließe ich im Scope des Adapters explizit aus, das überlasse ich anderen Aber Datenpunkte kann ich natürlich gerne zur Verfügung stellen zur Konfiguration.
Brauche auch noch bitte bessere Namensvorschläge für den Adapter (derzeit "Room Control")
-
@Mic sagte in Planung neuer Adapter: Licht-/Raumsteuerung und mehr:
derzeit "Room Control
irgendwie fehlt das das light um was es eigentlich geht...
lightroom fällt da wohl flach sind ja nicht bei der Bildbearbeitung
aber light zwischen deinem Room und Control wäre doch schon mal eine Idee.Alles in allem klingt das schon mal sehr gut, muss man sich noch ein zweimal durch den Kopf gehen lassen.
Ob was fehlt, stellt sich meist erst im nach hinein heraus ausser jemand hat etwas spezielles, was er dadurch umsetzen möchte/könnte, was dann eher wieder Faktor Geräte spezifisch sein könnte.Wichtig für mich, hatte ich schon erwähnt, das erkennen, ob manuell geschaltet wurde, oder durch BWM. Da sonst schon mal das Licht beim Zeitungslesen, einem im Stich lässt.
-
Hi @crunchip
danke für dein Feedback
irgendwie fehlt das das light um was es eigentlich geht...
Na ja, das war ursprünglich, aber genau so kann der Adapter dann auch sämtliche andere Geräte steuern, und auch unabhängig von Bewegungsmeldern.
a) Beliebiger Einschalt-Auslöser (Alexa, Wandschalter, BWM, etc.) --> Check ob Bedingungen zutreffen (Zeitraum, wer anwesend, etc.) --> Ziele schalten
b) Optional: dann wieder ausschalten, falls keine Bewegung mehr nach x Sekunden, und/oder gewisse Zeit abgelaufen. Aber nicht ausschalten, falls "manuell" eingeschaltet (nicht per Bewegungsmelder)Daher die "Adapternamen"-Frage...
Wichtig für mich, hatte ich schon erwähnt, das erkennen, ob manuell geschaltet wurde, oder durch BWM.
Sehr guter Punkt wird definitiv berücksichtigt
-
@crunchip
Naja wenn man die sensoren richtig platziert dann braucht man überhaupt keinen Lichtschalter und somit auch die Erkennung wieso das licht an ist überhaupt nicht mehr.
Da aber nicht nur Licht geschaltet werden soll, sondern alles was gerade in der Nähe ist, ist dies also schon sowas wie der Szenen adapter 2.0.
Vielleicht wäre auch smart living, oder irgendwas mit automate your live zwar nicht direkt erklärbar für alle Funktionen, aber das wird es wohl nicht dafür geben.Egal, wie auch immer das Kind heißen wird, es klingt mehr als vielversprechend. Ich freue mich drauf. Bisher scheint alles dabei zu sein, aber das merkt man erst beim probieren.
-
@e-s sagte in Planung neuer Adapter: Licht-/Raumsteuerung und mehr:
Naja wenn man die sensoren richtig platziert
wenn ich irgendwo sitze und das Licht wurde durch nen BWM aktiviert(timer 10min)und nun blätter ich gemütlich im Buch...erkennt das der BWM nicht unbedingt...egal wo ich den platziere, weil es in dem Fall nur ne kleine Handbewegung ist, von daher finde ich das schon sinnvoll, die Möglichkeit zu haben, BWM Zeitgesteuert, aber manuelles Schaltes soll dies ausser Kraft setzen. Gibt vllt auch Gründe, das man in einem Raum bewusst das Licht mal brennen lassen möchte.
-
@e-s
Dankesmart living klingt sehr gut und vor allem mehr "generic" als reduziert auf Raum oder Licht / Bewegung. Namen sind ja eigentlich Schall und Rauch, aber passen sollte es dennoch
-
@crunchip sagte in Planung neuer Adapter: Licht-/Raumsteuerung und mehr:
wenn ich irgendwo sitze und das Licht wurde durch nen BWM aktiviert(timer 10min)und nun blätter ich gemütlich im Buch...erkennt das der BWM nicht unbedingt...egal wo ich den platziere, weil es in dem Fall nur ne kleine Handbewegung ist, von daher finde ich das schon sinnvoll, die Möglichkeit zu haben, BWM Zeitgesteuert, aber manuelles Schaltes soll dies ausser Kraft setzen. Gibt vllt auch Gründe, das man in einem Raum bewusst das Licht mal brennen lassen möchte.
Bin absolut bei dir, wird deswegen auch eingebaut
Ebenso die Möglichkeit, nach x Minuten ausschalten zu lassen (z.B. nach 2 Stunden) falls kein Trigger wie BWM mehr was auslöst, um Fälle abzudecken wie "der User ist eingeschlafen" Vermeidet dann auch Festbeleuchtung um 3:00 Uhr Nachts. -
@crunchip
Hast du schon mal an einen drucksensor unter der toilettenbrille gedacht...Aber sonst hast du schon recht, wenn man das licht an haben will, dann soll das auch an bleiben.
-
@e-s ich lese nie auf der Toilette
aber ich saß schon am Esstisch, bzw das Kind am Hausaufgaben machen und zack war das Licht aus. -
@Mic
sehr cooles Projekt
Da hast dir was sehr anspruchsvolles rausgesucht, hat das Potential das man iob doch irgendwann mal per maus "zusammen klicken" kann.Folgende Namensvorschläge hätte ich:
- mySmartControl, mySmartHome, myIntelligentHome bzw. mySmartLiving
- Nett wäre auch myWifesShock
den Zusatz
my
fände ich sehr aussagefähig bzgl. "generic" bzw. das man es individuell konfigurieren kann.Bzgl. Widgets kann ich gerne unterstützen bzw. ggf. im MDW noch passende Schnittstellen einbauen. Musst halt json strings zur verfügung stellen
-
Sehr interessantes Thema, Bewegungsmelder.
Habe etliche BWM und auch Tür-Fensterkontaktsensoren (HM und 433MHz).
Allerdings sind bei mir die Lichtfunktionen schon weitgehen "hartverdrahtet" oder mit HM-Direktverknüpfungen umgesetzt. Zuverlässig, könnte aber noch komfortabler werden
Was ich noch brauchen könnte:- Abhängigkeit der Schaltaktionen von
- Astro
- Helligkeitswert eines Helligkeitssensors
- Damit verknüpft eine Rampensteuerung der Dimmfunktion (speziell für Durchgangsräume): schnelles Andimmen, Haltezeit, Langsames Ausfaden mit der Möglichkeit per Taster wieder das Licht einzuschalten. Dieses realisiere ich derzeit mit einem Eltako EUD12D-UC was sehr gut funktioniert. Aber ich möchte von 230V LED auf 24V Stripes umstellen, z.B. mit Schelly o.ä.
Mit dieser Erweiterung wäre es möglich nachts eine "wärmere" Lichtfarbe einzustellen als morgens und tagsüber.
Ferner nutze ich derzeit meine BWM und Türkontaktschalter mit einem selbstgeschriebenen holprigen JS Script
- Meldung (z.B. email) bei den ersten 3 Betätigungen pro Tag, die nach einer definierten Uhrzeit (z.B 06:30) erfolgen und mind. x Minuten Abstend haben.
- Zählen der Betätigungen pro Tag
Und wenn diese Funktionen schon drin sind, dann könnte man die Wassermelder auch gleich mit reinnehmen (Benachrichtigung).
Vielleicht passt so etwas noch in den Umfang des Adapters?
- Abhängigkeit der Schaltaktionen von
-
Vielleicht noch ein Gedankenansatz:
- Man kann ein Licht ja mit einer neuen Einstellung aufgrund eines Triggers starten lassen
- Man kann aber auch zu gewissen Zeiten die Lichteinstellungen (Helligkeit, Lichtfarbe etc) setzen, OHNE das Licht hierbei anzuschalten. Also quasi die Lichteinstellungen nur proaktiv setzen.
Als Beispiel die Deckenbeleuchtung gesteuert über einen Shelly Dimmer: Hier möchte ich gerne, dass der Dimmer selber das Licht anmacht, um unabhängig vom zentralen System zu sein. Denn mindestens das Deckenlicht jeden Raumes soll in meinem Setup auch ohne zentrales System noch angehen können.
Beim Shelly Dimmer mit Shelly Adapter wird bspw. das Licht nicht automatisch angeschaltet wenn der Helligkeiswert geändert wird. Ich weiß nicht ob sich alle im ioBroker integrierten Lampen so verhalten.Vielleicht kann man dies auch im Adapter berücksichtigen, gerade im Bezug auf zeitabhängige Lichteinstellungen. Gerade dieses ist für mich sehr interessant, da die Konfiguration über einzelne Blocklys sehr unübersichtlich ist.
-
@Mic Klasse Idee, das würde viele Scripte ersetzen und die Wartung vereinfachen.
-
@Scrounger @klassisch @siggi85 @ilovegym
Danke für euer Feedback
@Scrounger
Super Namensvorschläge! myWifesShock gefällt mir am besten , aber wird wohl jetzt "mySmartControl". Wobei ich noch nicht sicher mit dem "my" bin, denn dann sollte man das ja an konsequenterweise an jeden Adapter-Namen dran hängen, der nicht nur als reiner "Verbinder" einer Hardware mit dem ioBroker dient. Mal sehenBzgl. Widgets kann ich gerne unterstützen bzw. ggf. im MDW noch passende Schnittstellen einbauen. Musst halt json strings zur verfügung stellen
Herzlichen Dank für dein Angebot!! Darauf komme ich sehr gerne im Bedarf dann zurück.
@klassisch
Danke für deinen Use Case. Ist notiert.@siggi85
Danke, ebenso notiert. -
Kurzes Update / Zwischenstand:
Bin aktiv an der Entwicklung, aber wie ich halt so dazu komme, habe relativ wenig Zeit, Dauert also noch etwas
Je mehr ich entwickle, desto mehr stelle ich das große Potenzial des Adapters und dieses Konzeptes fest, also später nicht mehr nur begrenzt auf Licht/Raumsteuerung etc., sondern auch ein einfach zusammen-klickbares "If This, Then That"mit optionaler Zeitsteuerung, etc..... Mal sehen, lassen wir uns überraschenAccomplishments:
- User friendly Admin-Oberfläche steht. Hat mich viel Zeit gekostet, aber war es wert!
- Saubere input validation für die User-Angaben im Admin (z.B. ob Datenpunkte existieren, die angegebenen State-Values mit Type des Datenpunktes etc. übereinstimmen, usw.) für alle Konfig-Tabellen implementiert. Gekapselt in eine Function, daher gut skalierbar usw.
- Alles async/await und mit ES6 class, damit sauberer Code zustande kommt. Musste mich erst einarbeiten in die Thematik
- Verkettung/Abgleich der Config-Tabellen mit vielen Abhängigkeiten (in Kürze schwierig zu erklären, aber war sehr zeitintensiv)
- Vieles weitere.
Derzeitiger Entwicklungsstand: ca. 25% fertig. Jetzt fängt es an, Spaß zu machen mit den Logiken, etc.
-
Hi,
wenn du noch Ideen suchst, hier was ich mir gerade bastle:
abhängig von Tagesphase ändere ich die Werte, ob eine Lampe überhaupt angehen soll und welche Helligkeit sie haben soll. Falls ich viel Lust habe, werde ich die Farben bzw. Farbtemperaturen miteinbauen.
Außerdem baue ich in manchen Räumen ein automatischen Licht aus mit ein, je nachdem welche Tageszeit gerade ist oder ob z.b. die Luftfeuchtigkeit gestiegen ist ( also jemand duscht ).
Ich baue das aber aktuell einfach als javascript, da ich iobroker erst vor ein paar Wochen installiert habe und an einen Adapter hab ich mich noch nicht rangetraut.
Falls du Hilfe benötigst beim entwickeln könnte ich da wohl auch einiges machen.
grüße
-
und noch eins:
Wenn es einen Timer gibt, würde ich eine "Warnung" miteinbauen, also 10% der Zeit bevor es ausgeht das Licht kurz aus und wieder anmachen.
-
@Mic sagte in Planung neuer Adapter: Licht-/Raumsteuerung und mehr:
Derzeitiger Entwicklungsstand: ca. 25% fertig. Jetzt fängt es an, Spaß zu machen mit den Logiken, etc.
Wie weit bist du jetzt?
-
-
Ausblick / Konzept so weit:
Ein paar generelle Optionen:
Auslöser
Als erstes legt man Auslöser an, also Bewegungsmelder oder irgendwelche Geräte (Fensterkontakte, Wandschalter, Post im Briefkasten, etc.).
Zu schaltende Ziele
Dann legt man zu schaltende Ziele an. Auch hier beliebige Datenpunkte, und sowohl true/false als auch String möglich. Ebenso andere Datenpunkte zum ausschalten.
Bereiche
Als nächstes definiert man beliebig viele Bereiche, also z.B. Räume, Raumbereiche, oder auch nur den Briefkasten usw.
Den Bereichen ordnet man dann die Auslöser (Trigger) sowie die zu schaltenden Ziele zu, die man vorher definiert hat.
Bedingungen
Dann legt man noch ein paar Bedingungen an, also z.B. ob jemand anwesend, ob gerade Feiertag, die Eingangstüre offen, usw.
Schedule
Zum Schluss gehts zum "Schedule", also zur Planung, wann was geschaltet wird. Natürlich inklusive Astrozeiten, usw. Geschaltet wird dann auch nur, wenn die eingestellten Bedingungen zutreffen, z.B. "mindestens eine Person ist anwesend", oder "heute ist Feiertag".
Ebenso kann man Ausschlusskriterien auswählen, also wann nie geschaltet wird.Zukunftsplanung, die es ggf. nicht in die erste Test-Version schaffen wird:
Als Auslöser nicht nur Bewegungsmelder, Wandschalter, Fensterkontakte etc. ermöglichen, sondern auch ein Zeiteintritt. Also z.B. (erste Spalte noch ein beliebiger Auslöser-Name, fehlt hier im Screenshot).
Löst dann auch diverse Scripts wie zur Weihnachtsbeleuchtung usw. ab. Auch diese Auslöser werden dann beliebigen Bereichen und Schedules zugeordnet, damit man das alles individuell und einfach konfigurieren kann.