FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Gunther am 10 Februar 2013, 02:05:32

Titel: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 10 Februar 2013, 02:05:32
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?
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 10 Februar 2013, 02:26:57
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")}
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: UliM am 10 Februar 2013, 09:50:15
Du musst nur Punkt durch Doppelpunkt ersetzen:
Nicht.     ....notify <device>.<event>
sondern ....notify <device>:<event>
=8-)
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Zrrronggg! am 10 Februar 2013, 14:18:54
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.
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 10 Februar 2013, 19:16:44
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.
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: sweetie-pie am 11 Februar 2013, 07:53:02
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...
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: UliM am 11 Februar 2013, 10:03:41
mit einem
set <device> on-for-timer 900
=8-)
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: sweetie-pie am 11 Februar 2013, 10:10:38
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...
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Zrrronggg! am 11 Februar 2013, 18:48:12
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") }}

Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 11 Februar 2013, 20:00:32
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?

Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Zrrronggg! am 11 Februar 2013, 20:30:24
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.

Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 11 Februar 2013, 20:41:47
Klasse, danke für die Erklärung!
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 11 Februar 2013, 21:08:20
[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?
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Zrrronggg! am 11 Februar 2013, 21:42:28
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.
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 11 Februar 2013, 22:58:01
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?
Titel: Aw: Probleme mit toogle (Doppelbelegung)
Beitrag von: Gunther am 11 Februar 2013, 23:09:17
Ich habe nun in den Files geschaut und <gnuplot-file> bzw. temp4hum6 durch fs20 ersetzt. scheint zu funktionieren.