NEWS
Planung neuer Adapter: Smart Control
-
Hi,
das ist ein super Projekt. Sehr vielversprechend.Ich habe mich ebenfalls mit dem Thema befasst und vor einiger Zeit ein Script dazu geschrieben. (habe ich übrigens Simple_IFTTT genannt )
Mitterweile habe ich zahlreiche Programme und auch Adapter damit ersetzt. So steuere ich meine Rolladen damit aber auch komplexeres wie die Poolheizung bzw. Filterung, natürlcih BWM und Licht etc.In dem Script habe ich ein paar Features eingebaut, die ich schmerzlich vermissen würde.
Dachte mir, dass du das ggf auf deine Feature - List nehmen könntestIch denke, dass diese Funktionenrelativ einfach zu integrieren wären. Jedenfalls passt es zu deiner Struktur. Wäre jedenfalls super:
- Moeglichkeit der Umrechnung des neu abzuspeichernden Wertes aus der Aktion (Damit kann z.B. ein Zähler realisiert werden. Wenn der neue Wert <+> <-> </> <:> enthält dann wird der folgende Zielwert berechnet beispiel. Alter wert = 2 Neuer Wert = <+>1 ergibt 3 im Zielwert. - also ein Zähler
- Möglichkeit der Simulation, damit für die Umstellung eine Zeitlang parallel gearbeitet werden kann bis zur endgültigen Umstellung. Meldungen müssen natürlich ausgegeben werden aber der eigentliche Update des Wertes bleibt aus. Das erleichtet das Einstellen und testen enorm
- Message Ausgabe (konfigurierbar)
- Im Log
- Push Message , z.B. PushBullet
- email
Dabei kann die Message per text in den Aktionen hinterlegt werden und wird dann entsprechend ausgegeben
- Log als CSV Datei. sieht dann z.B. so bei mir aus:
Datum;Uhrzeit;TriggerKey;ActionKey;Ziel-ID;Neuer Wert;Message
22.06.2020 ;07:00:00 ;RolladeKind2Auf;RolladeKind2Auf;hm-rpc.0.LEQ0276xxx.1.LEVEL;100;Rollade Kind2 hochgefahren
22.06.2020 ;07:00:00 ;RolladeKind1Auf;RolladeKind1Auf;hm-rpc.0.JEQ0112xxx.1.LEVEL;100;Rollade Kind1 hochgefahren
22.06.2020 ;07:00:00 ;RolladeKuecheAuf;RolladeKuecheAuf;hm-rpc.0.JEQ0111xxx.1.LEVEL;100;Rollade Kueche hochgefahren
Liebe Gruesse
Looxer -
Wie kann ich einen zeitgesteuerten Trigger einsetzen?
Aufgabe: Licht um 22:00 einschalten und um 22:15 ausschaltenTrigger erstellen klappt: jeden Tag um 22:00
Device erstellen klappt
Room/Area: Da komme ich nicht weiter. Ich kann den Trigger einem Device zuordnen, also z.B. meinen 22:00 Trigger, aber wo sage ich, dass das Device ein oder ausgeschaltet werden soll? -
@Mic sagte in Planung neuer Adapter: Smart Control:
Erste Testversion folgt sehr bald.
Wie ist der aktuelle Stand?
-
@sigi234
Mic hat die Version 0.1.0 getaggt, und sie funktioniert soweit auch.grüße
-
@ Alle
Ich hab den "Fehler" gemacht, noch mehr Features in den Adapter vor der offiziellen "Erstveröffentlichung zum Testen" einzubauen. Ein komplexes Feature hat es in sich, und ich muss da noch debuggen usw. Es sind/waren in den bisherigen Versionen auch noch mehrere Bugs drin, auch die gilt es noch zu beheben. Bringt mir und euch ja nichts, wenn ich ein "buggy-Release" hier raus bringe
Daher verzögert es sich noch etwas, bis ich einen offiziellen Aufruf zum Testen mache.
Kommt aber die Tage, keine Sorge@looxer01
Danke für dein umfangreiches Feedback und deine Feature-Liste
Ich sammle das jetzt erst mal in der README des Adapters:
Zunächst muss ich sicherstellen, dass die Basis-Funktionalitäten und derzeitigen Features stabil laufen, und eine erste Test-Version veröffentlichen. Dann sehe ich mir sehr gerne deine Punkte an. Denn sonst dauert es zu lange...
@OstfrieseUnterwegs sagte in Planung neuer Adapter: Smart Control:
Wie kann ich einen zeitgesteuerten Trigger einsetzen?
Aufgabe: Licht um 22:00 einschalten und um 22:15 ausschaltenTrigger erstellen klappt: jeden Tag um 22:00
Device erstellen klappt
Room/Area: Da komme ich nicht weiter. Ich kann den Trigger einem Device zuordnen, also z.B. meinen 22:00 Trigger, aber wo sage ich, dass das Device ein oder ausgeschaltet werden soll?Hier mal als Beispiel für eine Kaffeemaschine:
-
Unter "1. TARGET DEVICES" ist die Kaffeemaschine (Datenpunkte zum ein- und ausschalten) angelegt.
-
Unter "3. TRIGGERS", "Time Specific Triggers", sind dann Auslöser definiert.
In diesem Beispiel:- Mo-Fr wird um 7:00 eingeschaltet, aber nur wenn wer anwesend und kein Feiertag
- Sa-So wird um 8:30 eingeschaltet, aber nur wenn wer anwesend und kein Feiertag
- An Feiertagen (egal welcher Wochentag) wird um 8:30 eingeschaltet, wenn wer anwesend.
-
Unter "4. ROOMS / AREAS" werden im Bereich "Kaffee" (könnte man auch "Kaffeeecke" nennen und z.B. gleichzeitig noch ein Licht schalten etc.) diese 3 Auslöser (s.o.) mit dem Zielgerät (hier "Kaffeemaschine") verknüpft.
-
Unter "5. SCHEDULES" braucht man dann nur noch für den "Room/Area", hier "Kaffee", einen Zeitplan, wann geschaltet werden soll. Da das schon im Vorfeld unter "3. TRIGGERS" >"Time Specific Triggers" die zu schaltenden Zeiten definiert wurden, setzt man hier einfach alle Wochentage Mo-So und von 0:00-23:59. Man könnte das auch hier noch eingrenzen, aber unnötig in diesem Use Case.
Das "Keiner anwesend" ist hier übrigens unnötig, weil zuvor schon auf "Jemand anwesend" in den "Time Specific Triggers" geprüft wurde. Aber schadet auch nicht, wird hier dann halt noch mal geprüft
-
-
@Mic Wahnsinn!!
Das gibt das ultimative iobroker Konfigurationstool -
Oh man, wird ja immer schöner der Script. Aber genau solche Scripte braucht man, um auch Leute, wie mich schnell zum Erfolg bei der Einrichtung von ioBroker
-
@Mic ich kann es kaum abwarten zu testen
-
@Mic Ich habe jetzt ebenfalls mal das Teil zur Ansicht installiert.
Schaut wirklich klasse aus und wirkt recht vielversprechend.Was mir allerdings auffällt ist eine Kleinigkeit die mittlerweile zu einem echten Ärgernis für mich geworden ist:
Der Adapter wird offensichtlich von einem deutschsprachigen Entwickler entwickelt und scheinbar überwiegend in deutschsprachigen Installationen eingesetzt. Wäre es da nicht wirklich sinnvoller die Anleitung auch auf deutsch einzubauen? Wenn einer dann tatsächlich seinen täglichen Orgasmus braucht um sich das in englisch reinzuziehen dann kann er das in der final Version immer noch auf Github nachholen.
Alleine wenn man hier ins Forum schaut existieren glatte 503 Beiträge in englisch. Also warum muss das unbedingt auf englisch zusammengezimmert werden Was ist denn an einer deutschen Anleitung so böse? -
@Chaot
Vielen Dank auf für dein Feedback@Chaot sagte in Planung neuer Adapter: Smart Control:
Was mir allerdings auffällt ist eine Kleinigkeit die mittlerweile zu einem echten Ärgernis für mich geworden ist:
Der Adapter wird offensichtlich von einem deutschsprachigen Entwickler entwickelt und scheinbar überwiegend in deutschsprachigen Installationen eingesetzt. Wäre es da nicht wirklich sinnvoller die Anleitung auch auf deutsch einzubauen? Wenn einer dann tatsächlich seinen täglichen Orgasmus braucht um sich das in englisch reinzuziehen dann kann er das in der final Version immer noch auf Github nachholen.
Alleine wenn man hier ins Forum schaut existieren glatte 503 Beiträge in englisch. Also warum muss das unbedingt auf englisch zusammengezimmert werden Was ist denn an einer deutschen Anleitung so böse?Bin völlig bei dir. Das muss auch in Deutsch sein. Wird es auch noch.
Der Grund ist: Ich darf keinen Adapter lt. ioBroker-Richtlinien veröffentlichen, der nicht diese Sprachen abdeckt:
Also inklusive chinesisch usw. Aber dafür gibt es Helfer zur Übersetzung. Aber das ist mega zeitaufwändig bei Änderungen.
Viel besser ist Gulp-Implementierung. Aber auch dafür müssen alle Quelltexte in Englisch vorliegen.Ich habe alles soweit für Gulp vorbereitet (daher auch schon 90+% in Englisch), aber jetzt in der noch nicht mal veröffentlichen Test-Version setze ich das mit Gulp noch nicht um, zu viele Änderungen werden noch kommen, bis das Gerüst sauber steht.
Ich muss dann außerdem nämlich das Deutsche Korrekturlesen, da die Übersetzungen oft suboptimal sind. Aber das mache ich aus Effizienzgründen dann in einem Schwung, und nicht bei jeder Änderung. -
Ja ne is klar.
Wir Türken werden sogar in iobroker diskriminiert.
Also wirklich... -
@Mic Danke für die ausführliche Anleitung - ich hatte keinen extra Schedule erstellt. Ich hätte erwartet, dass die Trigger-Area verknüpfung immer aktive ist, wenn es keinen dedizierten Schedule gibt. Aber nun ist es klar.
Ausschalten geht auch, wenn man das selbe Device mit 'false' in der 'Value:on' Spalte nochmal anlegt und dann das Device triggert. Oder geht das auch noch anders?Ich finde übrigens Room/Area etwas unglücklich gewählt. Eigentlich ist es eine Art komplexe Szenen-Steuerung. Aber Scene ist ja als Begriff schon besetzt. Also hab ich auch keine bessere Idee. Vlt hilft ja Schwarmintelligenz.
Auf jeden Fall ein super Adapter.
-
@Mic
Enhancement Request
In Admin und auch in den Skript-Editor ist eine Art Cron-Wizard eingebaut. Könntest Du sowas auch machen?
-
@Mic Ich habe gestern den Adapter nur installiert und keinerlei Einstellungen vorgenommen.
Lediglich einmal alle Reiter geöffnet.
Das kommt als Fehlermeldung in der "Grundeinstellung":smartcontrol.0 2020-07-03 17:42:00.033 error (2778) Trigger activation 'Every hour at minute 42' failed: no schedules found in schedule table. smartcontrol.0 2020-07-03 17:42:00.016 error (2778) Trigger activation 'Every hour at minute 42' failed: no schedules found in schedule table.
-
Danke für dein Feedback.
Ich habe die Punkte so weit vorgemerkt:@OstfrieseUnterwegs sagte in Planung neuer Adapter: Smart Control:
Ausschalten geht auch, wenn man das selbe Device mit 'false' in der 'Value:on' Spalte nochmal anlegt und dann das Device triggert. Oder geht das auch noch anders?
Bewusst so gemacht, weil es einige Datenpunkte in ioBroker-Umgebungen gibt, die nicht nur boolean (true/false) sind zum schalten oder unterschiedliche Datenpunkte für "ein" und "aus" erwartet werden.
Zum Beispiel Fully Browser Adapter:
Oder ein Audiogerät, bei dem zum Anschalten "Radio Chillout" gesetzt wird, und ein separater Datenpunkt "false".Daher muss das für on/off, zumindest jetzt erst mal, separat angelegt werden, auch wenn das mehr Klickerei bedeutet für den Anwender.
@OstfrieseUnterwegs sagte in Planung neuer Adapter: Smart Control:
Ich finde übrigens Room/Area etwas unglücklich gewählt. Eigentlich ist es eine Art komplexe Szenen-Steuerung. Aber Scene ist ja als Begriff schon besetzt. Also hab ich auch keine bessere Idee. Vlt hilft ja Schwarmintelligenz.
Ich auch Guter Punkt, aber mir fällt auch nix besseres ein. Evtl. "Zone"? Das ganze Konstrukt ist ja eigentlich eine "Szene" und nicht limitiert auf eine "Szenen"-Tabelle.... hmm...
-
Danke für deinen Test. Ich zitiere mal
@Mic sagte in Planung neuer Adapter: Smart Control:
ich muss da noch debuggen usw. Es sind/waren in den bisherigen Versionen auch noch mehrere Bugs drin, auch die gilt es noch zu beheben. Bringt mir und euch ja nichts, wenn ich ein "buggy-Release" hier raus bringe
Daher verzögert es sich noch etwas, bis ich einen offiziellen Aufruf zum Testen mache.
Kommt aber die Tage, keine SorgeBitte noch etwas Geduld.
-
@Mic Ist ja auch keine Kritik sondern nur als Info.
-
@Chaot
Hab ich auch null als Kritik, sondern vielmehr als wichtigen Hinweis verstanden, danke noch mal für dein Feedback. Das obige Zitat soll vielmehr implizit darstellen, dass mir bewusst ist, dass noch mehrere Fehler drin sind, und ich aktiv erst darauf eingehen kann, sobald ich die offizielle Testversion veröffentliche. Dein Fehler (und einige andere) sollte in meiner aktuellen lokalen Testumgebung nicht mehr vorhanden sein
Dafür andere die es noch zu beheben gilt. -
@Mic Na wenn das so ist... .. habe ich nochwas das beim Test aufgefallen ist.
Wenn du ALLE Haken deaktivierst kommt:smartcontrol.0 2020-07-03 20:27:25.412 info (19122) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason smartcontrol.0 2020-07-03 20:27:25.411 info (19122) terminating smartcontrol.0 2020-07-03 20:27:25.410 error at processImmediate (internal/timers.js:456:21) smartcontrol.0 2020-07-03 20:27:25.410 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41) smartcontrol.0 2020-07-03 20:27:25.410 error at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5215:29) smartcontrol.0 2020-07-03 20:27:25.410 error at stop (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:8270:22) smartcontrol.0 2020-07-03 20:27:25.410 error at SmartControl.emit (events.js:315:20) smartcontrol.0 2020-07-03 20:27:25.410 error at SmartControl._onUnload (/opt/iobroker/node_modules/iobroker.smartcontrol/main.js:275:32) smartcontrol.0 2020-07-03 20:27:25.410 error (19122) Error while stopping adapter – TypeError: Cannot read property 'cancel' of null smartcontrol.0 2020-07-03 20:27:25.404 info (19122) Got terminate signal TERMINATE_YOURSELF host.ioBroker 2020-07-03 20:27:25.402 info stopInstance system.adapter.smartcontrol.0 send kill signal host.ioBroker 2020-07-03 20:27:25.397 info stopInstance system.adapter.smartcontrol.0 (force=false, process=true) host.ioBroker 2020-07-03 20:27:25.391 info "system.adapter.smartcontrol.0" disabled smartcontrol.0 2020-07-03 20:26:53.006 error (19122) Error – Message: Adapter admin configuration validation failed --> Please check your configuration. You will not be able to use this adapter without fixing the issues. smartcontrol.0 2020-07-03 20:26:53.005 warn (19122) [Config Verification] 4 error(s) found while verifying your adapter configuration. smartcontrol.0 2020-07-03 20:26:53.003 warn (19122) No active and valid trigger defined in any trigger table. smartcontrol.0 2020-07-03 20:26:53.002 warn (19122) [Config Table 'Schedules'] No rows defined. smartcontrol.0 2020-07-03 20:26:53.001 warn (19122) [Config Table 'Rooms/Areas'] No rows defined. smartcontrol.0 2020-07-03 20:26:52.999 warn (19122) [Config Table 'Target Devices'] No rows defined.
Der obere Teil ist nach der ersten Fehlerwarnung der manuelle Shutdown des Adapters.
-
Hey Mic,
ich nutze dein aqara motion control script (mit einigen Anpassungen) seit Version 0.1 und bin super zufrieden mit dem Funktionsumfang und Zuverlässigkeit.
Das Einzige, was bei mir nie so richtig funktioniert hat (hat Nichts mit deinem Script zu tun ) ist die helligkeitsbezogene Steuerung.
Ich habe Aqara RTCGQ11LM Sensoren, welche ich mittels zigbee2mqtt und ein Paar Zeilen Code ins iobroker eingebunden habe. Das Problem, das im Zusammenhang mit deinem Script auftritt ist Folgendes:
Die Lux-Datenpunkte werden etwas später geschrieben als Occupancy. Das Script prüft den Lux-Wert, jedoch nicht sein Timestamp, was in meinem Fall zur Verarbeitung nicht aktueller im Script Lux-Werte führt.
Eine mögliche Lösung wäre die Timestamps zu vergleichen. Sollte Lux-Timestamp um mehr als x (Milli)Sekunden in der Vergangenheit liegen, wird maximal y (Milli)Sekunden auf Aktualisierung des Lux-Datenpunkts gewartet, oder so ähnlich...
Des Weiteren wäre ein gewisses "misbehaviour-handling" wünschenswert, wenn zum Beispiel der Occupancy-Datenpunkt nicht auf False gesetzt wird. Hier könnte man zwischen "nichts tun" und "in z Minuten ausschalten" wählen.
Und zum Schluss: wird die Konfiguration nur statisch im Adapter vorgenommen oder auch mittels Datenpunkte?Viele Grüße,
Max