NEWS
IoBroker.scenes
-
Hallo Bluefox,
ich nutze den Adapter auch sehr gern. Vor allem für die Lichtsteuerung. Der Adapter ersetzt natürlich nicht die Direktverknüpfungen zwischen Homematic Komponenten, aber er spart (wie oben von pman schon gesagt) viel Arbeit in Javascript.
<u>Javascript</u>
Vorteil:
-
Universelles ansprechen von Gruppen ("alle Lampen im Wohnzimmer aus" sind nur wenige Zeilen Code). Aktoren können getauscht werden, ohne den Code zu ändern. Sie müssen nur einem Gewerk zugeordnet werden (zB Licht, Raum Wohnzimmer).
-
Für die Dauer wartungsfreundlicher.
-
Bedingungen sind leichter eingebaut (Systemvariablen)
Nachteil:
-
Kenntnisse nötig
-
Testen nötig
-
genaue Dokumentation im Skript nötig
-
nur mit Workaround (ack oder weitere Variable) aus VIS aufrufbar
<u>Scenes</u>
Vorteil:
-
Einfacheres Setzen der Datenpunkte.
-
Jede Komponente wird direkt angesprochen.
-
unterschiedliche Zeitverzögerungen sind schnell eingebaut.
-
Benennung übersichtlicher als in Javascript.
-
Direktes aufrufen aus VIS
Nachteil:
-
Bei Änderung einer Komponente müssen alle Szenen nach dem Aktor durchsucht werden (Beispiel: Regallicht - alter Schaltaktor wird durch eine neuen Dimmer ersetzt).
-
Bedingungen nicht verfügbar (z.B. "wenn zwischen 20Uhr und 22 Uhr" oder "wenn (Regen == true) && (Temp < 10°C)" )
Ich nutze auch eine Kombination aus beidem. Einige Szenen werden einfach aus Javascript angestossen. Das ist zB in Verbindung mit den Homematic Wandtastern sehr praktisch. Wenn der Datenpunkt (zB Tastendruck oben lang) auf true geht, wird die Funktion aufgerufen
function tv_szene() { log('TV Szene gestartet'); setState('scene.0.tv_ein', true); // TV Licht ein via Szenen Adapter wird gestartet }
Ich wünsche mir noch:
-
Optionaler Logeintrag, wenn Szene gestartet (kann ich zwar mit Javascript machen, ein Haken in den Szeneneinstellungen wär super)
-
Drag and Drop bei der Festlegung der Reihenfolge
Fragen:
Ich habe die Neuerung http://forum.iobroker.net/posting.php?mode=reply&f=23&t=1134#pr13597 nicht verstanden. Kannst du das nochmal erklären?
Was bedeutet "Use trigger for true/false" ?
Kann man eine Szene aus einer anderen Szene starten? (Beispiel: Szene Licht_alles_aus startet Szenen Licht_alles_aus_Wohnzimmer, Licht_alles_aus_Flur, Licht_alles_aus_Küche, etc.) ?
Danke fü die Entwicklung dieses tollen Adapters!
Gruß,
Pix
-
-
Hallo pix
@pix:Fragen:
Ich habe die Neuerung Virtuelle Gruppen nicht verstanden. Kannst du das nochmal erklären?
Was bedeutet "Use trigger for true/false" ? `
@[url=http://www.iobroker.net/?page_id=1950⟨=de:~~Website"]~~Setze Werte bei False: Ist diese Checkbox angehakt, können zu jedem eingebundenen Datenpunkt eine Aktion bei true und eine Aktion bei false eingegeben werden. Letztere Befehle werden abgearbeitet, wenn der Zustand der gesamten Szene false ist. `
Wenn ich das richtig verstanden habe, wird mit diesen "Gruppen" ermöglichst mehrere Dinge aufeinmal zu schalten.
Trigger 1: Taster oben kurz startet die "Szene"
Trigger 2: Taster unten kurz beendet die Szene.
Bei normalen Szenen startet die Szene wenn der Trigger ausgelöst wird und endet eigentlich nie.
Hoffe das stimmt so.
Gruß
Rainer
-
Hallo Homoran,
@Homoran:Wenn ich das richtig verstanden habe, wird mit diesen "Gruppen" ermöglichst mehrere Dinge aufeinmal zu schalten.
Trigger 1: Taster oben kurz startet die "Szene"
Trigger 2: Taster unten kurz beendet die Szene.
Bei normalen Szenen startet die Szene wenn der Trigger ausgelöst wird und endet eigentlich nie. `
so richtig hab ich das noch nicht kapiert. Eine Szene startet, wenn sie getriggert wurde. Also wenn ein Auslöser zB den Datenpunkt scene.0.licht_an auf "true" gesetzt hat. Dann werden die Punkte innerhalb der Szenenkonfiguration abgearbeitet (zB Lampe 1 true, Lampe 2 true; Licht ist an).
Die Szene endet, wenn eine der Lampen wieder ausgeht. Dann ist scene.0.licht_an == "false".
Um die Lampen absichtlich auszuschalten nutze ich ja eine zweite Szene "scene.0.licht_aus".
Welchen Sinn hat es, manuell eine Szene zu beenden?
@[url=http://www.iobroker.net/?page_id=1950⟨=de:~~Website"]~~Setze Werte bei False: Ist diese Checkbox angehakt, können zu jedem eingebundenen Datenpunkt eine Aktion bei true und eine Aktion bei false eingegeben werden. Letztere Befehle werden abgearbeitet, wenn der Zustand der gesamten Szene false ist. `
Aha! Das ist ja wie IF und ELSE, oder?
Damit hat sich die obige Frage fast wieder erledigt. Um beim Licht zu bleiben und wir lassen Direktverknüpfungen mal raus:
Ich habe zwei Lampen mit Aktoren im Raum. Dazu die Szene "scene.0.licht". Wenn ich die Szene starte werden beide Lampen eingeschaltet, die Szene wird "true". Beide Datenpunkte haben "Aktion bei false" angehakt. Wenn eine der Lampen ausgeht und damit die ganze Szene auf "false", kann ich die andere Lampe damit zum Beispiel auch auf "aus" stellen. So wie Master/Slave? Ist das richtig?
Gruß,
-
@pix:Um die Lampen absichtlich auszuschalten nutze ich ja eine zweite Szene "scene.0.licht_aus".
Welchen Sinn hat es, manuell eine Szene zu beenden? `
Das Beispiel von BF auf github zeigt den Grund:
"Lichtschalter" oben an macht alle Lampen im Bad an und der Lichtschalter unten wieder aus und ggf. den Lüfter
…für einfaches Gruppieren von mehreren Aktoren.
Eine zweite Scene ist natürlich auch eine Möglichkeit.
Gruß
Rainer
-
Danke für die tolle Feedbacks, werde morgen die genau durchlesen.
Heute war bei mir ein langen Tag.
-
Hallo,
habe heute mal einen Bewegungsmelder mit einem Funkschaltaktor verknüpft um eine Direktverbindung zu simulieren. Läuft.
Ich finde die Szenen für die Zukunft vor allem auch für die Sprachsteuerung nützlich. Damit lassen sich leicht die Aktionen zusammenfassen und einbinden, die auf Sprachbefehle erfolgen sollen. Es fehlt nur noch der Teil Spracheingabe (offline) :roll:
Gruß,
Pix
-
Hallo,
ich habe noch ein Frage zum Adapter:
Bisher habe ich bei eintretender Nachtruhe meinen Dimmer im Bad über einen Virtuellen Kanal auf max 50% gesetzt. Drückt man nachts auf den Lichttaster an der Wand, wird es nicht so hell. Mit Ende der Nachtruhe wurde der Wert wieder auf 100% gesetzt (natürlich gibt es eine Direktverknüpfung über HM-Webui). Später werden noch mehr Dimmer dazukommen und ggf. einige Schaltaktoren bei Nachtruhe gesperrt werden. Aber erstmal nutze ich nur einen Dimmer.
Ich habe das bisher mit einer Javascript-Funktion gemacht und möchte jetzt Scenes dafür nutzen.
Ich habe zwei Szenen angelegt:
Nachtlicht_aus schaltet den Dimmer auf 50% wenn scene.0.licht_nachtlicht_aus auf true gesetzt wird.
Nachtlicht_ein schaltet den Dimmer auf 100% wenn scene.0.licht_nachtlicht_ein auf true gesetzt wird.
EDIT: Sorry, hatte die Werte im Adapter falschherum gesetzt. hab es korrigiert und jetzt neue Bilder eingepflegt. Die Frage bleibt aber bestehen!
Kann ich das nicht zusammenfassen?
Wenn scene.0.licht_nachtlicht = true dann Dimmer auf 50%
Sonst wenn scene.0.licht_nachtlicht = false dann Dimmer auf 100%
Gruß
Pix
-
Hi zusammen,
aus meiner Sicht könnte man noch verbessern:
Wenn ich eine virtuelle Gruppe aus zB nur Lampen (Dimm-Werte) mache, und diese Gruppe dann in eine andere Scene einbaue, müsste ich hier den %-Wert eingeben können den dann alle Lampen der Gruppe annehmen sollen. Selbes gilt für ON/OFF.
Gut wäre auch, wenn man eine Toggle Schaltung machen könnte: 1. Druck auf den Knopf=AN 2. Druck auf den Knopf=Aus
UND: dass man mehrere Trigger zum auslösen verwenden kann
-
gude, ich hab heute das erste mal den Scene adapter benutzt. nur bis jetzt komm ich noch zu keinem erfollg.
ich habe eine Homematic tasterschnittstelle an nem taster und will damit eine Hue lampe anschalten.
in Vis klappt das einwandfrei die hue lampe anzuschalten. nur über scene bekomm ich zwar den status angezeigt, aber es lässt sich nichts schalten.
könnt ihr mir da mal helfen? hab ich da wo ein fehler gemacht?
-
ok, habs hin bekommen
nicht lachen, aber ichs habs einfach verschlafen den adapter zu aktivieren^^
-
Hallo!
Wie kann ich über einen Knopf in VIS eine Scene starten?
Danke!
Vore
-
Hallo!
Wie kann ich über einen Knopf in VIS eine Scene starten?
Danke!
Vore `
Du musst nicht die Szene starten, sondern trigger Zustand setzten. Falls du kein speziellen Trigger hast, dann erzeuge ein Trigger in javascript adapter oder über admin (Reiter Objekte)
Danach kannst du in vis den Zustand javascript.0.myTriggerSzene1 auf true (z.B. mit jqui-state) setzten.
-
Hallo Bluefox,
es geht doch auch direkt
habe widget Metro Tile Toogle
unter unter Object ID wähle ich die Scene aus.
Gruß Stephan
-
Hallo Bluefox,
es geht doch auch direkt
habe widget Metro Tile Toogle
unter unter Object ID wähle ich die Scene aus.
Gruß Stephan `
Ich muss doku schreiben um selbst nicht vergessen, wie es funktioniert. :? -
Hallo!
Das mit dem Metro habe ich gesucht! Danke (natürlich auch an BlueFox)!
Gruß
Volker
-
Wie kann ich einen Zeitsteuerung in das "Scene" einbauen? z.b. Sonnenaufgang/untergang und s.w. Gibst für ein Adapter? Oder soll ich das aus dem CCU auslesen?
-
Wie kann ich einen Zeitsteuerung in das "Szene" einbauen? z.b. Sonnenaufgang/untergang und s.w. Gibst für ein Adapter? Oder soll ich das aus dem CCU auslesen? `
Mit Javascript.
schedule({astro: "sunrise"}, function () { // setState(scene.0.scene1,true); // Datenpunkt der eigenen Szene verwenden }
-
Alle Astro-Zeitbereiche findes du hier in der Javascript Doku hier: https://github.com/iobroker/ioBroker.ja ... --function
Pix
-
Danke! Werde es versuchen.
-
Wie kann ich als Trigger ein "ist nicht" erreichen?
Zur Erklärung:
Ich habe eine Szene angelegt, welche mir per Harmony die Aktion "Kodi" startet und in Kodi einen Internetradio-Stream aufruft.
Da der Stream aber lauter als meine Musik von NAS kommt, möchte ich Kodi auf 80% Volume regeln.
Soweit alles gut, wenn ich aber den Stream beende, sprich eine andere Quelle starte, soll Volume wieder auf 100% gehen.
Während dem Internet-Stream ist der Inhalt von Kodi.0.info.file "http://mp3channels.webradio.rockantenne.de/heavy-metal"
Nun hätte ich gerne zum Ändern der Lautstärke auf 100% den Trigger WENN Kodi.0.info.file IST NICHT "http://mp3channels.webradio.rockantenne.de/heavy-metal" DANN Volume 100%
Ich finde aber nur mathematische Ansätze wie = > <…
Alternative: Variable. Aber kriegs nicht gebacken, eine solche mit True / False, die sich auf o.g. Datenpunkt bezieht, zu erstellen. Keinen Schimmer von Skripten...
Nachtrag: Hab ja jetzt gesehen, dass != eigentlich dafür sein sollte. Habe jetzt sogar eine extra Scene angelegt, Trigger: != http://mp3channels.webradio.rockantenne.de/heavy-metal
Trotzdem wird, nachdem die erste Scene Rock Antenne schaltet und auf 80 setzt, gleich wieder auf 100 geschaltet...