Mehre Aktoren über einen Sensor schalten

Begonnen von svenson08, 17 Januar 2013, 19:41:22

Vorheriges Thema - Nächstes Thema

svenson08

Hallo,

ich bin noch ziemlich am Anfang mit meinen ersten fhem geh versuchen und hab noch nicht so wirklich den Durchblick.
Ich hab zwei Rolläden die ich über fhem einzeln Schalten kann. Auch werden beide Rolläden zu einer festen Uhrzeit hochgefahren. Das hab wie folgt gelöst.


define Rolladen1 FS20 1234 01
define Rolladen2 FS20 1234 02
define RolladenHoch at 07:00:00 set Rolladen1,Rolladen2 on


So weit ist das auch OK. Jetzt möchte ich einen Schalter haben mit dem ich beide Rolläden manuell hochfahren und runterfahren kann. Also einen Schaltern der, wie bei dem AT Befehl mehrere Aktoren anspricht.
Wie richte ich in fhem einen solchen Schalter ein, oder wie löst man so etwas generell?

Gruß
svenson

Zrrronggg!

Der Schalter wird eingerichtet in FHEM, z.b. so:

define Rolladen_Schalter FS20  11114444 de  (11114444 = Hauscode   de = Adresse des Senders)



Und dann reicht:



define Rolladen_Manuell notify at Rolladen_Schalter set Rolladen1,Rolladen2 on


Das macht die Rolladen allerdings hoch, egal was der Schalter sendet.
Unterscheiden kann man das z.b. so:

define Rolladen_Manuell_on notify at Rolladen_Schalter:on set Rolladen1,Rolladen2 on
define Rolladen_Manuell_off notify at Rolladen_Schalter:off set Rolladen1,Rolladen2 off

Aber Achtung: Man muss sich auch sicher sein, das der Sender wirklich "on" bzw "off" sendet und nicht
eines der mehr als ein Dutzend anderen Kommandos die FS20 Sender so können (dim, on-for timer, on-old  etc.etc.)

Die Frage ist allerdings sehr grundlegend, daher denke ich du solltest die mal das "FHEM für Einstiger" - PDF durchlesen und eine paar der Codebeispiele im WIKI ansehen.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

svenson08

So ganz verstehe ich es noch nicht

Zitatdefine Rolladen_Manuell notify at Rolladen_Schalter set Rolladen1,Rolladen2 on
ist mir so weit verständlich

Zitatdefine Rolladen_Schalter FS20 11114444 de (11114444 = Hauscode de = Adresse des Senders)

Der Rolladen_Schalter sendet aber nur eine Adresse (Tastencode). Die beiden Rolläden nutzen aber keine Funktionsgruppen oder Lokale
Master, sondern nur Einzeladressen. Das dachte das könnte man umgehen in dem man den Sensor Rolladen1 und Rolladen2 über einen Schalter ausführt, also in fhem Gruppen baut und diese über einen "virtuellen" Sensor auslöst. Diesen Sensor gibt es auch nicht physikalisch, das möchte ich rein über fhem abbilden.

ZitatDie Frage ist allerdings sehr grundlegend, daher denke ich du solltest die mal das "FHEM für Einstiger" - PDF durchlesen und eine paar der Codebeispiele im WIKI ansehen.
Beides nutze ich, aber was sich mir dort nicht erklärt muss ich fragen. Suchen ist so eine Sache wenn man kein Schlagwort hat das man zur Suche verwenden kann. Das soll jetzt keine Ausrede sein.

Zrrronggg!

Zitat
Zitatdefine Rolladen_Schalter FS20 11114444 de (11114444 = Hauscode de = Adresse des Senders)


Der Rolladen_Schalter sendet aber nur eine Adresse (Tastencode). Die beiden Rolläden nutzen aber keine Funktionsgruppen oder Lokale
Master, sondern nur Einzeladressen. Das dachte das könnte man umgehen in dem man den Sensor Rolladen1 und Rolladen2 über einen Schalter ausführt, also in fhem Gruppen baut und diese über einen "virtuellen" Sensor auslöst. Diesen Sensor gibt es auch nicht physikalisch, das möchte ich rein über fhem abbilden.

Das meine ich mit "Grundlegend"  ;-)
Ich habe ja nirgendwo gesagt, dass der Schalter eine Adresse oder Hauscode haben soll, der mit dem der Rolladen irgendwie identisch ist.
Das ist ja quasi "der Clou".

Ich versuche es mal abstrakt zu erklären:

1.
Rollade A hat die Adresse a1
Rollade B hat die Adresse b1
Der Schalter hat die Adresse c1

(Exkurs: Die Adresse besteht immer aus den Teilen "Hauscode" + "Einzeladresse"
Der Hauscode kann in alle drei Fälle gleich sein und meist macht man das auch so, aber ZWINGEND ist das nur bei direkter Kopplung, die du ja
genau NICHT willst. )

2.
Diese drei Geräte werden nun definiert, und zwar in der bekannten Art:
define Rolladen1 FS20 "Adresse a1"  (in deinem Fall 1234 01)
define Rolladen2 FS20 "Adresse b1"  (in deinem Fall 1234 02)
define Rolladen_Schalter FS20  "Adresse c1" (in meinem Vorschlag 11114444 de )

(Exkurs: Der Adressbestandteil Hauscode kann entweder 4 Stellen Hexadezimal ODER in der 8 stelligen ELV4 schreibweise angegeben werden
Zitat FHEM Commandref:
<housecode> is a 4 digit hex or 8 digit ELV4 number, corresponding to the housecode address.
DU hast die 4stellige Hexadezimal schreibweise gewählt: 1234. NACHTEIL dieser Schreibweise ist, das man die so ohne weiteres nicht in FS20 Geräte eingeben kann, denn die verlangen immer die Eingabe in ELV Schreibweise. So haben z.b. fast alle  FS20 sender VIER Tasten und den Hauscode gibt man ein, indem man diese Tasten 8x in beliebieger Reihenfolge drückt. Eben z.b. 4x die Taste EINS hintereineander und dann 4x die Taste VIER: 1-1-1-1-4-4-4-4  also Hauscode = 11114444. Ich verwende daher in FHEM "define" immer  diese Schreibweise, weil man dann leichter den passenden Hauscode auch manuell in die Sender einprogramieren kann. Ferner gibt auch das gerdae für Anfänger sehr Empfehlenswerte http://www.fhemwiki.de/wiki/FS20_DT_Diagnosetool den hauscode in dieser Form aus. Das ist in deinem konkreten Fall eventuell egal, weil du ja gar keinen physikalischen Sender einsetzen willst.)

3. So, jetzt hast du die 3 Gerätee quasi abstraiert und brauchst sie nicht mehr mit den Adressen ansprechen, sondern kannst alles über die Namen machen.
Nun kommt die "Verdrahtung!":

define Rolladen_Manuell notify at Rolladen_Schalter set Rolladen1,Rolladen2 on

Übersetzt heisst das:
Lege eine Aktion mit dem Namen "Rolladen_Manuell" an. Und zwar soll die, wenn eine Signal vom Schalter mit Adresse c1 empfangen wird ("notify"), zu Rollade A (mit Adresse a1)
und Rollade B (Adresse b1) den Befehl ON senden.

Eine DIREKTE Verbindung zwischen Schalter und Rolladen gibt es dabei gar nicht!


4. Nun willst du vielleicht noch unterscheiden, welche Taste der Fernbedienung du gedrück hast. Jeder Kanal (also einzelne Adresse) hat ja in der Regel 2 Tasten, eine für AN (die Rechte) und eine für AUS (die Linke).  Dazu legen wir ZWEI "Verdrahtungen" an und WErten aus, was den nun genau der Schalter mit adresse c1 gesendet hat:

define Rolladen_Manuell_on notify at Rolladen_Schalter:on set Rolladen1,Rolladen2 on

Übersetzt heisst das:
Lege eine Aktion mit dem Namen "Rolladen_Manuell" an. Und zwar soll die, wenn eine Signal vom Schalter mit Adresse c1 empfangen wird ("notify") und das Signal "on" lautete, zu Rollade A (mit Adresse a1) und Rollade B (Adresse b1) den Befehl ON senden.
 (und sinngemäss OFF)

(Exkurs: Hier muss man vorsichtig sein: Man kann bei den meisten sendern nämlich programieren, was genau die Tastendrücke senden. Das kann on und off sein, aber auch andere Kommandos wie on-for-timer oder on-old oder off-for-timer... die würden dann alle die Prüfung "notify at Rolladen_Schalter:on " nicht auslösen!  Ebenso kann man einen FS20 Sender in der Regel so programmieren, dass anstatt 2 Tasten je Adresse nur EINE Verwendet wird... im Handbuch des senders meist "Umstellen auf Doppelte Kanalzahl" genannt. Dann sendet das Betätigen einen TOGGLE Befehl. In FHEM toggelt der aber nichts von alleine, da muss man sich dann schon überlegen wie man das in FHEM genau verdrahten will)


ZitatDiesen Sensor gibt es auch nicht physikalisch, das möchte ich rein über fhem abbilden.
Das ist nur eine Kleinigkeit, das" Prinzip der Verdrahtung" bleibt gleich.
Bei der Gestaltung wie oben beschrieben ist es egal, ob es den FS20 Sender tatsächlich GIBT oder nicht.
Der so angelegte Sender wird auch als Schalter auf der Weboberfläche erscheinen, kann dort betätigt werden und löst dann auch die "Verdrahtung" aus.

Wenn man weiss, dass man tatsächlich NIEMALS einen "echten" Sender mit dieser Adresse nutzen will, kann man das auch mit einem DUMMY machen, das man ebenfalls mit "define" anlegt.
Das ist quasi eine Variable, die daher auch OHNE Adresse auskommt.
Ich bevorzuge es oft, so was mit einer FS20 Adresse anzulegen, weil ich oft genug dann irgendwann doch so einen aufklebbaren Wandsender gekauft habe der zusätzlich zur Weboberfläche die Aktion auslösen kann.  Und das ist dann keine Problem, ohne Umschreiben deiner Mimik sofort machbar:
Sender nur die oben eingetragen Adresse einprogrammieren, fertich.

Leg das erstmal so an wie hier beschrieben und spiel damit rum bitte.  Wenn du tatsächlich *NUR* Schalter in FHEM haben willst, unterhalten wir uns dann später, wie man das mit dem Dummy macht (das erfordert noch 2-3 weiter Kleinigkeiten, namentlich die Festlegung, welche Werte der Dummy beim Betätigen auf der Weboberfläche senden soll. Bei meinem Beispiel oben ist dies automatisch "on" und "off")

Oder du suchst die eben im Wiki rasch einen Codeschnipsel der Dummys einsetzt und siehst dir das an.

(oder jemand anders hilft ergänzt das jetzt hier, ich muss aber mal ne Tipp-pause machen)










FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

svenson08

Vor deinem letzten Post hab ich selbst redend noch rumprobiert und kam dann mehr oder weniger zu dem was du erklärt hast. Bin dann aber erstmal ins Bett :) Für mich war der Knackpunkt das ich den Sensor anlegen muss wie eigentlich alle anderen auch , also mit Haus- und Tastencode. Wobei es egal ist ob Haus- und Tastencode überhaupt von einem Aktor genutzt wird. Daher ist auch der Haus- und Tastencode von dem Sensor erst einmal egal. Deinen Hinweis kann ich verstehen, falls ich den Schalter doch mal irgendwo im Haus installiere ist es bequemer wenn ich schon einen nutzbaren Haus- und Tastencode hinterlegt habe.

Um es zusammen zu fassen


define Rolladen1 FS20 1234 01
define Rolladen2 FS20 1234 02
define RolladenHoch at 07:00:00 set Rolladen1,Rolladen2 on

define Rolladen_Schalter  FS20 2345 03
define Rolladen_Manuell notify Rolladen_Schalter set Rolladen1,Rolladen2 %


Damit funktioniert es.
 
Was ich noch machen werde ist den Hauscode 8-stellig angeben, das finde ich lesbarer.
Das mit den dummy schau ich mir noch an.