NEWS
[gelöst]:Szene auf true, wenn ein Objekt aus Szene auf true
-
Hallo zusammen,
es ist wahrscheinlich eine Kleinigkeit, aber ich finde die Lösung nicht. Ich habe eine Szene mit fünf Lampen angelegt. Das An- und Ausschalten der Szene funktioniert einwandfrei über das Setzen der Szene auf true bzw. false.
Mein Problem: schalte ich eine einzelne Lampe, die in der Szene enthalten ist, geht auch der Status der Szene auf true (ohne dass die anderen Lampen der Szene angehen). Damit kann ich dann nicht mehr auf den true Status der Szene wechseln.
Kann mir jemand sagen, wie ich das entkoppeln kann?
Vielen Dank im Voraus und Frohes Neues
Kai -
@kai-brendel sagte in Szene geht auf true, wenn ein Objekt aus Szene auf true:
Damit kann ich dann nicht mehr auf den true Status der Szene wechseln.
klar kannst du das.. warum nicht ?
-
@arteck : vielen Dank für die Rückmeldung! Ich kann zwar wechseln, muss aber zunächst auf false und dann wieder auf true, damit die komplette Szene wieder angeschaltet wird.
Es ist doch inhaltlich falsch, dass die Szene auf true geht, wenn nur eine Lampe aus der Szene auf true ist, oder habe ich einen Denkfehler? -
@kai-brendel warum musst du wechseln.. ?? womit ?? und warum soll es falsch sein..
eine Lampe ist an .. also ist die Scene auch an .. so ist das .... ab wan soll die Scene dann an sein bei 2 3 4 Lampen ??
das ist doch nicht händelbar..
was ist wenn nur eine Lampe in der Scene an ist.. ist dann die Scene an ??
womit schaltest du die Scene ?
-
@arteck für mich ist die Szene an, wenn alle Lampen an sind, also eine logische UND Verknüpfung. Das ist dann ja erst die Szene. Sind nur einzelne Lampen an, ist es eben nicht die Szene, sondern ein beliebiger Zustand. Wenn ich die Lampe in zwei Szenen verwende, würde dann ja bei einschalten der eine Szene auch die andere auf true gehen. Das halte ich für falsch, aber vielleicht liege ich damit ja auch falsch.
-
@arteck vergessen: ich schalte über einen Schalter in Vis
-
@kai-brendel Sicher, dass die Szene beim Einschalten einer Lampe bereits auf true geht? Ich mache auch einiges mit Szenen und die haben bei mir 3 Zustände: False, wenn alle false-Bedingungen der Szene erfüllt sind, true, wenn eben alles true erfüllt ist und drittens uncertain, eben genau dann, wenn weder alle false nich true Bedingen erfüllt sind. Ich bin auf Version 2.3.9 vom Adapter.
Hier mal beispielhaft bei einer, die momentan uncertain ist:
Gruss, Jürgen
EDIT: Screenshot ausgetauscht gegen einen, der es direkt zeigt. -
@wildbill hallo Jürgen, ja , ganz sicher:
Meine Szene ist so definiert:
Gruß
Kai -
@kai-brendel Komisch, einizger Unterschied scheint mir in Deinem Bild der "einfache Modus" zu sein. Keine Ahnung, was der bewirkt. Welche Version vom Adapter hast Du installiert?
Ich habe oben den Screenshot nochmal getauscht, da sieht man es direkt.Gruss, Jürgen
EDIT: Ist es tatsächlich der Datenpunkt der Szene unter scene.0 der sofort auf true springt? Denn ich habe manche Widgets in der ViIS, die bei false aus sind, aber bei allem anderen (true, aber auch uncertain) den Zustand für true anzeigen. Ich nutze genau das, um mittels einem Widget zu sehen, ob irgendwo Licht brennt. Sobald die dort hinterlegte Szene nicht false ist, geht es an. Wenn es bei Dir im Datenpunkt der Szene uncertain anzeigt, so hast Du kein Problem mit dem Szenen-Adapter, sondern musst eventuell ein anderes Widget nehmen, welches anders reagiert...
-
@wildbill: nun ist der Groschen gefallen Dank Deiner Rückmeldung. Tatsächlich geht die Szene auf uncertain, der Schalter in Vis interpretiert das dann als true. Danke!!
P.s.: der einfache Modus versteckt die true/false Optionen -
@kai-brendel Schön, dass das die Lösung ist. Zur Not musst Du Dir halt einen Hilfsdatenpunkt für die VIS basteln, der die Logik etwas ändert. Also true wird, wenn die Szene auf true steht und ansonsten eben auf false geht (auch bei uncertain).
Gruss, Jürgen
-
@wildbill Vielen Dank für die schnelle und vor Allem kompetente Hilfestellung!
-
Da der Thread noch nicht so lange abgeschlossen ist, hänge ich mich einmal kurz daran und möchte eine kurze Lösung vorstellen, die ich bei mir laufen habe. Ist in NodeRed implementiert, sollte sich aber auch einfach in Blockly umsetzen lassen.
Und zwar ist es für mich wichtig, dass eine Szene nur auf "true" steht, wenn sie komplett zutrifft. Und wenn nicht alle Parameter zutreffen, soll die Szene immer "false" sein. Ich nutze die Szenen oft mit den gleichen Lampen, aber verschiedenen Farben / Helligkeiten. Damit habe ich eigentlich immer 2-x Szenen im Raum dann auf "uncertain" stehen.
In dem Script ersetze ich dann "uncertain" immer durch "false", wobei beim setzen die "ack" flag auf TRUE stehen muss (sonst würde der Adapter oder andere Scripte) ja wieder darauf reagieren (in Blockly glaube "setzen" und nicht "steuern"). Wenn man das entgegengesetzte Verhalten möchte (wie der Thread Ersteller wenn ich es richtig gelesen habe), dann "uncertain" immer durch "true" ersetzen.Dadurch werden in Visualisierungen nur Szenen, die zu 100% zutreffen als aktiv angezeigt, und ich kann mich an allen anderen Stellen darauf verlassen, dass ich immer mit boolean Werten arbeite.
Vielleicht hilft es ja jemandem, der in der Zukunft mal in der Suche über den Tread stolpert.
[ { "id": "37a819661a802676", "type": "tab", "label": "Szenen", "disabled": false, "info": "", "env": [] }, { "id": "5afecc8e369d8b73", "type": "ioBroker in", "z": "37a819661a802676", "name": "", "attrname": "payload", "topic": "scene.0.*", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "ioBroker", "x": 260, "y": 100, "wires": [ [ "34475eda69ecaa8c" ] ] }, { "id": "128c113f803512b9", "type": "ioBroker out", "z": "37a819661a802676", "name": "Korrigiere \"uncertain\"", "topic": "", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1120, "y": 100, "wires": [] }, { "id": "34475eda69ecaa8c", "type": "switch", "z": "37a819661a802676", "name": "is uncertain", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "uncertain", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 530, "y": 100, "wires": [ [ "f3670e9b1b166b9e" ] ] }, { "id": "f3670e9b1b166b9e", "type": "change", "z": "37a819661a802676", "name": "FALSE", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 100, "wires": [ [ "128c113f803512b9" ] ] } ]