Ein Befehl über 2 CUL`s absenden?_ 2 Funksteckdosen gleichzeitig schalten?

Begonnen von 1dz, 31 August 2016, 09:39:29

Vorheriges Thema - Nächstes Thema

1dz

Ein Befehl über 2 CUL`s absenden?_ 2 Funksteckdosen gleichzeitig schalten?

Hallo zusammen,

vielleicht könnt Ihr mir helfen. Ich glaube ich sehe vor lauter Bäumen den Wald nicht mehr.

Ich möchte den Schaltbefehl für eine Funksteckdose über meine beiden NanoCUL`s 433Mhz abstrahlen lassen.
Dafür habe ich betreffende Funksteckdose zwei Mal definiert. Jeweils für CUL1 und CUL2.

Wenn ich dann per set Befehl in der Kommandozeile die Schalfunktion zusammenfasse wird der Befehl auch
über beide CUL`s abgestrahlt.
Ich überprüfe das mit SDR#.
Interessanterweise werden die Befehle sogar mit zeitlicher Verzögerung abgestrahlt, obwohl ich das ,,sendpool" Attribut bei meinen
CUL`s nicht verwende. (Funktioniert leider bei mir nicht)

Meine Frage ist nun: Wie kann ich den ,,set"  Befehl für die 2 Schaltdefinitionen so definieren, dass ich mit einem Klick schalten kann?

Oder anders rum gefragt: Wie kann ich 2 Schalter mit einem Klick gleichzeitig schalten? An und aus, logischerweise.
Per ,,set" in der Kommandozeile kein Problem, aber ich kriege es einfach nicht gebacken, das ich am Ende einen ,,Schaltbutton" erzeuge.

Puh!
Wäre toll wenn mir jemand auf die Sprünge helfen könnte.

Gruß
Thomas

Elektrolurch

Mir würde da z.B. einfallen, die beiden Schalter in eine struct zusammenzufassen.
Oder definiere Dir ein notify für Schalter 1, was dann den Schalter 2 automatisch schaltet, wenn 1 verwendet wird.
So mache ich es z.B. mit meiner aktiven Bassbox.

Elektrolurch
configDB und Windows befreite Zone!

ErzGabriel

Ich habe das mit notify und einem dummy gelöst.
Ein notify für an, der einen sleep Befehl enthält und die Steckdosen so in Verzögerung von 3 Sekunden schaltet.
Ein notify für aus, gleiche Befehlsstruktur wie für an.
Und dann ein dummy, der als schalter, den jeweiligen notify anspricht.

Der spleep Befehl kann auch auf eine Sekunde gestellt werden und die Anzahl der zu schaltenden Steckdosen ist auch variable, weil ich schalte damit meine Terras.

Prof. Dr. Peter Henning

Die "Gleichzeitigkeit" kann in keiner Weise garantiert werden, weil der genaue Zeitpunkt der Aussendung von der Funklast der jeweiligen Transceiver abhängt. Auch könnte es sein, dass Funksteckdose 2 durch den Empfang von Signal 1 blockiert wird, und darum auf die Wiederholung von Signal 2 warten muss (oder umgekehrt). Wie groß der zeitliche Abstand ist, kann man ohne genaue Kenntnis der örtlichen Gegebenheiten kaum vorhersagen - vielleicht ist es ja noch im ergonomisch tolerablen Bereich von < 0,4 Sekunden.

Schlussfolgerung: Besser gleich eine definierte Reihenfolge des Schaltens einhalten, also erst 1, dann 2

LG

pah

1dz

Hallo zusammen,

danke für Eure Tips und Mühe.
Ich habe es hinbekommen. Und zwar auf folgende Art und Weise.


Zunächst habe ich eine Pollin Funksteckdose 2 Mal definiert. Für meinen 1. und 2. CUL:

define switch1 IT 000000FFFF FF F0
attr switch1 IODev ftdiCUL
attr switch1 room Flur


define switch2 IT 000000FFFF FF F0
attr switch2 IODev CUL433
attr switch2 room Flur


Dann habe ich einen Dummy definiert:

define Flur dummy
attr Flur eventMap on:an off:aus
attr Flur room Flur
attr Flur webCmd on:off


Und schließlich noch das Notify definiert:

define FlurLichtOn notify Flur:on set switch1,switch2 on
define FlurLichtOff notify Flur:off set switch1,switch2 off
attr FlurLichtOff room Flur



Irgendwie kompliziert und einfach zu gleich ;-)
Ich hatte gedacht das ich einen ,,set" Befehl viel leichter, so mit einer Zeile integrieren kann.
Kann man das noch vereinfachen?

Aber seis drum.
Diese Befehlsfolge sendet den Funkbefehl nacheinander über beide CUL`s aus. Gesehen und gehört mit SDR#

Warum nacheinander, ist mir nicht klar.
Entweder Zufall? Oder Fhem regelt dies intern? Oder weil es sich um unterschiedliche Firmware auf den Sticks handelt 1.66 und a-culfw.

,,Sendpool" in den CUL Definitionen macht keinen Unterschied. Habe ich wieder rausgenommen.

Danke fürs lesen.

Thomas

Elektrolurch

Den dummy kannst Du Dir sparen. Setze das notify auf den ersten Schalter und schalte damit den zweiten Schalter.

Elektrolurch
configDB und Windows befreite Zone!

1dz

Hallo zusammen und Elektrolurch,

Noch 2 Fragen.
1. Sollten denn nicht eigentlich mit dem sendpool Befehl grundsätzlich beide vorhandenen 433Mhz CUL`s benutzt werden.
Dann hätte ich mir die ganzen Definitionen sparen können.
Oder habe ich sendpool falsch verstanden?

2. Ich habe das mal ohne Dummy probiert. Also nur über notify.
Dann gehen allerdings, in meinem Fall, nicht nur 2, sondern mehrere Funkbefehle raus, die in einer Schleife zu laufen scheinen.
Könntest Du mir wohl anhand meines Anliegens ein Beispielcode zeigen?

Vielen Dank im vorraus.

Thomas


Elektrolurch

configDB und Windows befreite Zone!

1dz

Vielen Dank für den Code.

Ich habe das mal probiert.

Leider schalten meine beiden CUL`s dann nicht jeweils je 1 Funkpaket aus, sondern mehrere hintereinander.
Undefiniert manchmal nur 3, dann wierrum 5, und zeitweise hören die gar nicht mehr auf.

Lässt sich das irgendwo einstellen?

Gruß
Thomas