Ich habe nun ein wenig in der Anleitung für Anfänger und in der commandref gelesen.
Leider komme ich nicht weiter.
Ich habe einen FS20 S8-2 Handsender. Diesen möchte ich mit 8 Funktionen belegen (Doppelbelegung).
Wenn ich das richtig verstanden habe, muss ich hier mit toggle arbeiten.
Jetzt geht es mir darum eine Steckdose indirekt über FHEM anzusprechen:
Die Taste 1 habe ich wie folgt lt. Anleitung definiert und dann in FHEM angelegt:
define k_wr_Rohrluefter.on FS20 42122134 2111
Zusätzlich habe ich eine Steckdose in FHEM eingerichtet (im Coding vor der Tastendefinition):
(anderer Hauscode weil andere Etage <-- hoffe das ist kein Problem)
define k_wr_Rohrluefter FS20 32122134 1113
Nun möchte ich die Steckdose per Taste 1 togglen, also an und ausschalten:
Das bekomme ich nicht hin. Habe schon verschiedenes ausprobiert:
define anmachen notify k_wr_Rohrluefter.on set k_wr_Rohrluefter on
und
define anmachen notify k_wr_Rohrluefter.on set k_wr_Rohrluefter toggle
und (laut Wiki, wobei ich mir beim letzten Befehl nicht sicher bin, im Wiki steht "dim12%%")
#define anmachen notify k_wr_Rohrluefter.on {UntoggleIndirect("k_wr_Rohrluefter.on","k_wr_Rohrluefter","toggle")}
Wo habe ich meinen Denkfehler?
jetzt geht das. :-)
Irgendwie sind die Tastencodes von links nach rechts vertauscht, obwohl ich mich an die Anleitung der Fernbedienung gehalten habe.
was ich jetzt noch gemäß Wiki probiert habe:
define k_wr_Rohrluefter.schalten notify k_wr_Rohrluefter.sender {UntoggleIndirect("k_wr_Rohrluefter.sender","k_wr_Rohrluefter","toggle")}
wobei k_wr_Rohrluefter die Steckdose ist und
k_wr_Rohrluefter.sender die Taste ist.
Leider passiert nichts. Das Logile sagt:
2013.02.10 02:37:01 2: FS20 k_wr_Rohrluefter.sender off
2013.02.10 02:37:01 2: FS20 set k_wr_Rohrluefter off
EDIT: jetzt ein paar Minuten später geht es... (?)
1.) Wie kann ich nun nach dem EInschalten nach 15 Minuten das Ding automatisch wieder ausschalten lassen?
2.) Kann ich Intertechogeräte nicht mit Toggle schalten? Ein Klicken im Aktor höre ich aber es passiert nichts.
Coding:
# Kinoleinwand
# Intertechno CMR-500 (rechts über Leinwand über Lampe verbaut)
define g4_eg_ki_Leinwand IT 0FF0FF000F FF F0
attr g4_eg_ki_Leinwand IODev CUL_0
attr g4_eg_ki_Leinwand model itswitch
attr g4_eg_ki_Leinwand room Kino
define g4_eg_ki_Leinwand.sender FS20 42122134 2111
attr g4_eg_ki_Leinwand.sender room Kino
define g4_eg_ki_Leinwand.schalten notify g4_eg_ki_Leinwand.sender {UntoggleIndirect("g4_eg_ki_Leinwand.sender","g4_eg_ki_Leinwand","toggle")}
Du musst nur Punkt durch Doppelpunkt ersetzen:
Nicht. ....notify <device>.<event>
sondern ....notify <device>:<event>
=8-)
ich denke ja vielleich zu simpel, aber ich würde das so machen:
define anmachen notify k_wr_Rohrluefter_sender { if (Value("k_wr_Rohrluefter") eq "off") { fhem("k_wr_Rohrluefter on") } else { fhem("k_wr_Rohrluefter off") }}
Das schaltet den Rohrlüfter um, jedesmal wenn du die k_wr_Rohrluefter_sender die toggel taste drückst.
Damit kannst du dann auch Intertechno mit einer FS20 Fernbedienungen im Toggle modus schalten.
Den tieferen Sinn der "untoggle" Geschichte im Wiki habe ich nicht verstanden. Da muss ich mich nochmal reindenken.
Danke Euch!
Ich habe nun die "Intertechno"-Geräte (Baumarktsteckdosen) eingebunden.
Komischerweise verhalten sich diese unterschiedlich.
Ich habe nun eine Fernbedienung doch normal belegt (links auf, rechts an).
Bei einer Steckdose wird wirklich nur auf einer Taste ein- und auf der anderen Taste ausgeschaltet.
Dort sieht das Coding so aus.
define a4_eg_wg_Lampe IT 0000FF000F 11 10
attr a4_eg_wg_Lampe IODev CUL_0
attr a4_eg_wg_Lampe model itswitch
attr a4_eg_wg_Lampe room Wintergarten
define a4_eg_wg_Lampe.sender FS20 42122134 2112
attr a4_eg_wg_Lampe.sender room Wintergarten
define a4_eg_wg_Lampe.schalten notify a4_eg_wg_Lampe.sender {UntoggleIndirect("a4_eg_wg_Lampe.sender","a4_eg_wg_Lampe","toggle")}
Bei einer weiteren Steckdose habe ich das Coding analog gewählt und dort ist es egal, welche Taste ich drücke. Der schaltet immer hin und her. Das ist natürlich nicht mein Wunsch.
Kann es sein, dass sich diese Baumarktsteckdosen trotz augenscheinlicher Baugleichheit unterschiedlich verhalten?
Fragt mich jetzt nicht, warum ich diesen "UntoggleIndirect"-Befehl gelassen habe. Es funktioniert ja generell.
Zitat von: Gunther schrieb am So, 10 Februar 2013 02:261.) Wie kann ich nun nach dem EInschalten nach 15 Minuten das Ding automatisch wieder ausschalten lassen?
Watchdog oder
at-Job, je nach Vorliebe und Bedarf...
mit einem
set <device> on-for-timer 900
=8-)
Zitat von: UliM schrieb am Mo, 11 Februar 2013 10:03set <device> on-for-timer 900
Wenn das Device diese Funktion es unterstützt. ;-) Ansonsten muss fhem es machen...
Zitatset <device> on-for-timer 900
Nope.
1. geht nur 896 oder 960
2. kann Intertechno das nicht.
ZitatAnsonsten muss fhem es machen...
Genau, z.b. so: (ich erweitere mein eigenes Beispiel weiter oben und ergänze die fehlenden "set"s, die mir peinlicherweise durchgeflutscht sind)
define anmachen notify k_wr_Rohrluefter_sender { if (Value("k_wr_Rohrluefter") eq "off") { fhem("set k_wr_Rohrluefter on ;; define k_wr_Rohrluefter_15m_off at +00:15:00 set k_wr_Rohrluefter off ") } else { fhem("set k_wr_Rohrluefter off") }}
Zitat von: Zrrronggg! schrieb am Mo, 11 Februar 2013 18:481. geht nur 896 oder 960
2. kann Intertechno das nicht.
1. kannst Du bitte kurz erklären, warum nur diese Werte gehen?
2. Danke für den FHEM-Code. In meinem Fall bezog sich die Frage bzgl. des Timers auf eine FS20 Steckdose.
Kann ich die on-for-timer Anweisung auch im Log sehen?
Zitatkannst Du bitte kurz erklären, warum nur diese Werte gehen?
Bei der Übermittlung der Schaltzustände steht im Funkprotokoll nur eine begrenzte Anzahl von Bits zur Verfügung, nämlich (soweit ich weiss!) ein Byte.
Damit lassen sich 128 Schaltzustände codieren. FS20 kennt in etwa 20 Schaltzustände (on, off, toggle, on-old, on-for-timer, off-for-timer, diverse DIM Stufen etc.etc, siehe Anleitung)
Es bleiben noch knapp über 100 Werte frei für die Codierung der Timerdauern. Die hat ELV nun mit grösser werdenden Abständen so verteilt, das möglichst "viel" damit abdeckbar ist. Und das haben die so gemacht, dass es "nach oben" immer länger wird. Während die Auflösung unten noch 1/4 Sekunden beträgt, sind die Sprünge im Bereich der maximalen Dauern von 4.5 Stunden mehrere Minuten und am Ende sogar ca. 20 Minuten.
Die möglichen Werte sind:
0,25 0,5 0,75 1 1,25 1,5 1,75 2 2,25 2,5 2,75 3 3,25 3,5 3,75
4 4,5 5 5,5 6 6,5 7 7,5 8 9 10 11 12 13 14 15 16 18 20 22
24 26 28 30 32 36 40 44 48 52 56 60 64 72 80 88 96 104 112
120 128 144 160 176 192 208 224 240 256 288 320 352 384 416
448 480 512 576 640 704 768 832 896 960 1024 1152 1280 1408
1536 1664 1792 1920 2048 2304 2560 2816 3072 3328 3584 3840 4096
4608 5120 5632 6144 6656 7168 7680 8192 9216 10240 11264 12288
13312 14336 15360
(Werte in Sekunden).
Wenn man andere Werte nimmt, rundet FHEM die auf einen dieser Werte.
Klasse, danke für die Erklärung!
[quote title=Zrrronggg! schrieb am Mo, 11 Februar 2013 18:48]
Zitatdefine anmachen notify k_wr_Rohrluefter_sender { if (Value("k_wr_Rohrluefter") eq "off") { fhem("set k_wr_Rohrluefter on ;; define k_wr_Rohrluefter_15m_off at +00:15:00 set k_wr_Rohrluefter off ") } else { fhem("set k_wr_Rohrluefter off") }}
Das ist vermutlich die einzige Möglichkeit auch bei FS20-Devices die Ein- und Ausschaltzeiten mitzuplotten, richtig?
ZitatDas ist vermutlich die einzige Möglichkeit auch bei FS20-Devices die Ein- und Ausschaltzeiten mitzuplotten, richtig?
Ohne da richtig drüber nachzudenken möchte ich da lieber keine Aussage zu machen.
Aber klar ist, das du das Auschalten eine "on-for-timer" Befehls nicht mitbekommst, da der im Aktor passiert und FHEM das nicht weiss.
Was das Webinterface betrifft, kannst du da eventuell mit "follow-on-for timer" was bewirken, aber ich setzte das selten ein und kenne daher den Befehl nicht wirklich gut.
Genaue Syntax und Wirkung möge besser jemand anders erklären.
Danke für die Rückmeldung.
Ich habe nun Dein Coding genommen und das funktioniert auch gut. Vor allem kann ich im Gegensatz zu on-for-timer auch selber wieder abschalten.
Nur den Plot bekomme ich noch nicht hin. Die commandref verstehe ich an der Stelle nicht.
Dort steht:
define MyPlot weblink fileplot <logdevice>:<gnuplot-file>:<logfile>
Leider finde ich zu <gnuplot-file> keine Information.
Ich habe nun bei einem anderen meiner mit autocreate erstellten Devices abgepinnt:
define weblink_k_WW_Zirkulationspumpe weblink fileplot FileLog_k_WW_Zirkulationspumpe:temp4hum6:CURRENT
attr weblink_k_WW_Zirkulationspumpe room Heizungsraum
Hier ist auf jeden Fall temp4hum6 noch falsch. Wie bekomme ich ein "0 oder 1"-Device ähnlich der Fenster (offen/zu) geplottet?
Ich habe nun in den Files geschaut und <gnuplot-file> bzw. temp4hum6 durch fs20 ersetzt. scheint zu funktionieren.