AN-AUS-AN statt nur AN senden.

Begonnen von Bracew, 25 November 2023, 18:22:31

Vorheriges Thema - Nächstes Thema

Bracew

AN-AUS-AN statt nur AN senden.

Hallo,

ich habe an der Aussentreppe zur Beleuchtung seit Jahren einen LED-Lichtschlauch. Dieser wird über ein Brennenstuhl Funkschalter RCS 2044 N (Wie der Schwarze in diesem Bild: https://www.mindfactory.de/product_info.php/Brennenstuhl-Funkschalt-Set-RCS-2044-N-Comfort_1055855.html) geschaltet.

Der Funkschalter kann händisch in der FHEM-Oberfläche zum Beispiel am Smartphone geschaltet werden. Weiterhin habe ich eine Automatik in FHEM, welche den Schalter abhängig von der Dämmerung AN und zur festen Zeit wieder AUS schaltet.

Definition in FHEM:

# FunkSchalter Brennenstuhl
define Lampe_BS6 GenShellSwitch /usr/local/sbin/send433 11001 4 1 0
attr   Lampe_BS6 group Licht
attr   Lampe_BS6 room hidden
#
define Aussentreppe_LED_Schlauch structure room Lampe_BS6
attr   Aussentreppe_LED_Schlauch group Licht
attr   Aussentreppe_LED_Schlauch room Licht
attr   Aussentreppe_LED_Schlauch icon light_stairs
#
define Aussentreppe_LED WeekdayTimer Aussentreppe_LED_Schlauch de !$we|{sunrise_abs('HORIZON=-12',0,"07:16:30","07:41:30")}|on !$we|{sunrise_abs('HORIZON=-1',3,"07:16:35","07:42:17")}|off Mo-So|{sunset_abs('HORIZON=-4',0,"16:01:21","21:09:58")}|on Mo-So|21:10:04|off  (isAt_LED_Automatik())
#

Dies hat über Jahre hinweg problemlos funktioniert.

Nun ist der alte LED-Schlauch defekt und ich habe einen baugleichen neuen gekauft. Den neuen habe ich wieder an den gleichen unveränderten Funkschalter angeschlossen.

Wird der neue LED-Schlauch angeschaltet, fängt er jedoch mit blinken und allerlei wilden optischen Effekten an. Erst beim 2. Einschalten geht er in den ,,Normal"-Modus mit dauerhaft AN über. Er braucht also AN-AUS-AN um mit gleichmäßigem Dauerlicht zu funktionieren.

Jetzt zu meiner Frage:
Wie kann ich FHEM dazu überreden AN-AUS-AN statt einfach nur AN zu senden?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Hallo,

mit einem cmdalias wäre eine Möglichkeit:

defmod cmd_example cmdalias ledstripeon AS set du_reed on;;sleep 2;;set du_reed off;;sleep 2;;set du_reed on
Ob du eine Pause brauchst musst halt ausprobieren.

Bracew

Hmmm, wie müsste ich das umsetzen?

define Doppelt_AN cmdalias Lampe_BS6_AN AS set Lampe_BS6 on;;sleep 1;;Lampe_BS6 off;;sleep 1;;Lampe_BS6 on

Wo setze ich dann Doppelt_AN ein?
Und wie gehts beim ausschalten? Bisher gab es ja kein dediziertes AN oder AUS?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

#3
Lampe_BS6_AN ist dein neuer on-Befehl. Für ausschalten brauchst eine weitere cmdalias-Definition.

Hier fehlt das set noch:
Lampe_BS6 off;;sleep 1;;Lampe_BS6 on

Bracew

Zitat von: TomLee am 25 November 2023, 19:37:05Lampe_BS6_AN ist dein neuer on-Befehl. Für ausschalten brauchst eine weitere cmdalias-Definition.
Aber, ich habe doch bisher keinen speziellen AN bzw. AUS Befehl, oder doch?
Der
define Lampe_BS6 GenShellSwitch /usr/local/sbin/send433 11001 4 1 0
schaltet meines Wissens nach doch nur hin und her, triggert von AN nach AUS bzw. von AUS nach AN

Zitat von: TomLee am 25 November 2023, 19:37:05Hier fehlt das set noch:
define Doppelt_AN cmdalias Lampe_BS6_AN AS set Lampe_BS6 on;;sleep 1;;set Lampe_BS6 off;;sleep 1;;set Lampe_BS6 on
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

ZitatAber, ich habe doch bisher keinen speziellen AN bzw. AUS Befehl, oder doch?

Achso, ich kenne GenShellSwitch nicht, wie schaltest du denn normal / wie macht man das ?

TomLee

Kannst du nur toggeln oder kannst du Definition anpassen und ein on oder off senden ?

Bracew

#7
Ich nutze den GenShellSwitch schon seit Mai 2014 unverändert und wenn mich mein Gedächtnis nicht im Stich lässt basiert er auf /opt/fhem/FHEM/00_GenShellSwitch.pm meines RasPi.

GenShellSwitch schaltet per /usr/local/sbin/send433 Befehl. Diesen kann man auch in der bash nutzen als
/usr/local/sbin/send433 11001 1 1 für AN und
/usr/local/sbin/send433 11001 1 0 für AUS,
aber in FHEM wird m.E. per GenShellSwitch nur getoggelt, da es eh keinen Rückkanal gibt.

Deswegen ist die Definition in FHEM wohl
define Lampe_BS6 GenShellSwitch /usr/local/sbin/send433 11001 4 1 0 wobei hier mit den letzten beiden Ziffern die Toggelwerte angegeben werden.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

OK, du könntest dir also eine GenShellSwitch-Definition für on und eine für off erstellen. Aber wie schaltet man ? Wie ist der Schaltbefehl in FHEM ?

Bracew

Nein, meines Wissen nach kann ich keine für on und keine für off erstellen.

Die GenShellSwitch-Definition ist:
define Lampe_BS6 GenShellSwitch /usr/local/sbin/send433 11001 4 1 0 die letzten beiden Ziffern geben nur die Alternativen an, also 1 und 0. Diese bleiben in der Definition 1 und 0. Beim ersten Schalten wird daraus die 1 für AN gezogen und beim nächsten Mal die 0 für AUS und beim nächsten Mal die 1 für AN und beim nächsten......u.s.w.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Bracew

Doch, ich kann den Aussentreppe_LED_Schlauch in der FHEM Oberfläche auf ON oder OFF oder Toggle drücken. Ich weis aber nicht wie ich da eine GenShellSwitch-Definition für on und eine für off erstelle.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

OK, ich verstehe aber immer noch nicht wie man schaltet.

Basierend auf dieser Aussage:
ZitatGenShellSwitch schaltet per /usr/local/sbin/send433 Befehl. Diesen kann man auch in der bash nutzen als
/usr/local/sbin/send433 11001 1 1 für AN und
/usr/local/sbin/send433 11001 1 0 für AUS

Ein anderer Ansatz:
defmod cmd_example cmdalias ledstripe .* AS {\
my $oncmd=system("/usr/local/sbin/send433 11001 1 1 &");;\
my $offcmd=system("/usr/local/sbin/send433 11001 1 0 &");;\
return $oncmd $offcmd $oncmd if $EVENT eq 'on';;
return $offcmd $oncmd $offcmd;;}

Dein FHEM-Befehl wäre dann ledstripe on oder ledstripe off

Ich bin mir unsicher ob die Syntax so richtig ist und die drei Variablen mit dem Systembefehl ausgeführt werden, ich hab aber jetzt keine Zeit mehr das zu testen, so in die Richtung könnte man es auf jedenfall auch umsetzen.


RalfRog

Hi
Lt. CommandRef geht on/off so (mit Modul GenShellSwitch) :
ZitatSet
    set <name> <value>

    where value is one of:
        off
        on

Was hinter on/off steckt ist im "define Lampe_BS6 GenShellSwitch /usr/local/sbin/send433 11001 4 1 0" hinterlegt.

Gruß Ralf

FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

TomLee

Also ginge es mit zwei GenShellSwitch i.V.m dem cmdalias.

Bei mir würd ich versuchen, das mit meinem zweiten vorgeschlagenen Ansatz, in einem Device, umzusetzen.

Nach etwas Gedanken darüber zu machen, den Erinnerungen die hochkamen und damit kurz zu beschäftigen, mein ich, das es so klappen sollte:

defmod cmd_example cmdalias ledstripe .* AS {\
my $oncmd = sub {system("/usr/local/sbin/send433 11001 1 1 &");;};;\
my $offcmd = sub {system("/usr/local/sbin/send433 11001 1 0 &");;};;\
return (&$oncmd, &$offcmd, &$oncmd) if $EVENT eq 'on';;\
return (&$offcmd, &$oncmd, &$offcmd);;}




Bracew

Der Versuch der Umsetzung klappt leider nicht:
define Aussentreppe_LED_Schlauch cmdalias Lampe_BS6 .* AS {\
       my $oncmd = sub {system("/usr/local/sbin/send433 11001 4 1 &");;};;\
       my $offcmd = sub {system("/usr/local/sbin/send433 11001 4 0 &");;};;\
       return (&$oncmd, &$offcmd, &$oncmd) if $EVENT eq 'on';;\
       return (&$offcmd, &$oncmd, &$offcmd);;}
attr   Aussentreppe_LED_Schlauch group Licht
attr   Aussentreppe_LED_Schlauch room Licht
attr   Aussentreppe_LED_Schlauch icon light_stairs
Ich bekomme die Schaltsymbole in der Oberfläche (Siehe Screenshots):

Du darfst diesen Dateianhang nicht ansehen.

nicht angezeigt, sondern:

Du darfst diesen Dateianhang nicht ansehen.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe