NEWS
[gelöst]Wechselschaltung
-
Hallo zusammen,
ich versuche gerade mit Blocky eine Wechselschaltung zu realisieren.
Ich habe 2 Schalter (hmip-bsm) die eine Lampe (Philips hue) steuern soll.Mein Problem ist, dass wenn ich den einen Schalter betätige, also auf true setze, der andere auch auf true gesetzt werden muss beim Einschalten. Beim Ausschalten das ganze natürlich andersherum.
Mein Versuch funktioniert nur so halb^^ Könnte mir jemand helfen?
-
@dominik-f sagte in Wechselschaltung:
ass wenn ich den einen Schalter betätige, also auf true setze, der andere auch auf tru
ich kenne die hmip-bsm nicht aber wäre es nicht eine Lösung dass du wenn ein Schalter betätigt wird einfach "toggelst", also statt "steuere..." im Blockly "umschalten..." nimmst ?
-
Ich verstehe nicht genau was du meinst. Ich hab das steuern ja nur bei der Lampe genutzt. Könnte also das steuern der Lampe die Wechselschaltung der Schalter durcheinander bringen?
-
Ich glaube, dass ich mir irgendwie eine Dauerschleife eingebaut habe.
Stell die einen dieser Schalter einfach als Kippschalter vor. Drücke ich auf den Oberen, ist der Datenpunkt true, drücke ich auf den unteren, ist der Datenpunkt false. -
@dominik-f sagte in Wechselschaltung:
Ich verstehe nicht genau was du meinst.
Wenn du ganz einfach "Falls objektID xyz wurde geändert" als Trigger nimmst und dann "umschalten OG_Diele_Deckenlampe" sagst, dann wird die Lampe bei jedem Betätigen des Schalters xyz umgeschaltet, also an wenn sie aus war und umgekehrt.
und jetzt machst du noch ein blockly mit derselben Anweisung für den 2. Schalter. Dann hast du logisch eine "Wechselschaltung" abgebildet. -
Das funktioniert soweit, nur kann ich nicht erkennen, in welcher Stellung sich der jeweilige Taster befindet und dadurch muss ich dann oft 2 mal die Taster betätigen, dass ich den Taster mit der richtigen Stellung treffe
-
Ich konnte die Schalter jetzt auf Toggle umstellen, so das die bei jedem Tastendruck den Status ändern. Somit funktioniert es, aber noch nicht perfekt. Aus irgendeinem Grund nimmt er manchmal die änderungen nicht an.
-
@dominik-f sagte in Wechselschaltung:
Aus irgendeinem Grund
Dann wäre es psannend rauszufinden was der Grund ist.
Löst das Skript denn immer richtig aus?
Ich würd da mal ein paar "debug output" Zeilen reinpacken und dann im log nachschauen ob die immer kommen, wenn du einen Schalter drückst. -
@dominik-f @amg_666 meinte, dass du den Blockly Baustein "umschalten" benutzen sollst bei beiden Schaltern/Tastern. Dann ist es wurscht, welchen Schalter bzw. Taster du drückst.
-
@dominik-f
fertig ist Deine Wechselschaltung. Für jeden weiteren Schalter ein Block mehr und nein, es kommt sonst nix dazu.
-
Ich danke dir, leider funktioniert das nicht
Wenn ich den einen Schalter auf True schalte, dann geht die Lampe an, der andere Schalter bleibt jedoch auf false. Ich muss den zweiten schalter also erst auf True stellen, um danach die Lampe wieder ausschalten zu können.
-
@dominik-f sagte: Ich habe 2 Schalter (hmip-bsm)
Sind das zwei normale Schalter, d.h. der Datenpunkt-Wert (false/true) hängt von der Stellung der Schaltwippe ab?
Dann sollte es so funktionieren:Erklärung: Wenn bei einem Schalter die Wippenstellung geändert wird, wird getriggert und das Licht umgeschaltet (toggle).
-
Da ich immer verwirrter werde und das Gefühl habe weniger zu verstehen, beschreibe ich nochmal genauer die Taster.
So sieht der Schalter aus:
Die Taster sind von Weksteinstellung so eingestellt, dass der obere Taster immer auf true schaltet, der untere immer auf false.
Sie können jedoch auch so eingestellt werden, dass jeder Tastendruck den State ändert. -
@dominik-f sagte: Sie können jedoch auch so eingestellt werden, dass jeder Tastendruck den State ändert.
Das muss dann eingestellt werden.
Alternativ wertet man alle 4 Tasten aus:
-
Das mit dem Auswerten der Tasten funktioniert nicht, wenn ich die Tasten betätige, dann ändert sich der Wert der Tasten nicht.
Das erste Bild von dir hat teilweise funktioniert. Es klappt irgendwie, aber manchmal geht die Lampe erst nach mehreren Sekunden an, mal geht es gar nicht, mal funktioniert es
-
@dominik-f sagte: wenn ich die Tasten betätige, dann ändert sich der Wert der Tasten nicht.
Deshalb muss auf "ist wahr" (s. Bild) oder "wurde aktualisiert" getriggert werden , da "PRESS_SHORT" immer true ist und nur den Zeitstempel aktualisiert.
-
Eventuell liegt dort das Problem:
Edit:
Der Zeitstempel aktualisiert sich auch nicht. Laut Stempel wurde gestern irgendwann das letzte mal aktualisiert
-
@dominik-f sagte: Eventuell liegt dort das Problem:
Die CCU sendet die Tasten nicht an ioBroker. Gibt es ein Dummy-Programm auf der CCU?
Sonst versuche mal das Aktivieren der Tasten für jeden der 4 Kanäle mit folgendem Skript:// Dieses Skript einmal für jeden Taster-Kanal ausführen const inst = 'hm-rpc.0'; // Instanz anpassen const channel = '001A5D899A7DDA:1'; // Kanal-Adresse anpassen sendTo(inst, 'reportValueUsage', {ID: channel, paramType: 'PRESS_SHORT', params: 1}, res => { log(JSON.stringify(res)); });
-
Ich weiß gar nicht was ein Dummy-Programm ist, daher schätze ich nein.
Ich melde mich wenn ich das Skript ausgeführt habe
-
einfach den "umschalten" block nehmen und den trigger auf "wurde aktualisiert"
dann ist es wurscht, welche Stellung oder welchen State irgendein Schalter hat