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

TomLee

Nimm mal die ganzen \ aus dem define und mach aus den doppelten Semikolon einfache.
Was steht dann im Logfile, wenn du oben in der Befehlszeile ein Lampe_BS6 on ausführst ?

Bracew

#16
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 sortby 2
attr   Aussentreppe_LED_Schlauch icon light_stairs

In der Oberfläche:
Unknown command }, try help. Unknown command my, try help. Unknown command }, try help. Unknown command return, try help. Unknown command return, try help. Unknown command }, try help.

In der Befehlszeile "Lampe_BS6 on":
Unknown command {my, try help.

FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Mein Fehler. Im define braucht es die doppelten Semikolon, die / (Zeilenumbruch) dürfen vorkommen, müssen aber nicht.

Hast du denn mit deiner gezeigten Definition in #14 den Befehl Lampe_BS6 on in der Befehlzeile ausgeführt ? Oder nur auf on oder off in der DeviceOverview geklickt ?
Das on/off hab ich bei mir gar nicht und verstehe auch nicht wie das bei Dir da hinkommt.

Das ist der gleiche Code wie du gezeigt hast:
defmod 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 icon light_stairs
attr Aussentreppe_LED_Schlauch room Licht

setstate Aussentreppe_LED_Schlauch defined

Wenn ich damit ein Lampe_BS6 on ausführe, steht bei mir im Logfile:
sh: 1: /usr/local/sbin/send433: not found
sh: 1: /usr/local/sbin/send433: not found
sh: 1: /usr/local/sbin/send433: not found

Bei Dir sollten die "Befehle" gefunden und ausgeführt werden.

Bracew

#18
Zitat von: TomLee am 26 November 2023, 15:03:23Hast du denn mit deiner gezeigten Definition in #14 den Befehl Lampe_BS6 on in der Befehlzeile ausgeführt ?
Ja

Dein neuen Code habe ich nun bei mir eingesetzt.
defmod 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

setstate Aussentreppe_LED_Schlauch defined

Das DeviceOverview sieht wir folgt aus:
Du darfst diesen Dateianhang nicht ansehen.

Wenn ich damit ein Lampe_BS6 on in der Befehlzeile ausführe, steht bei mir im Logfile:
sending systemCode[11001] unitCode[4] command[1]
sending systemCode[11001] unitCode[4] command[0]
sending systemCode[11001] unitCode[4] command[1]
und auf der Oberfläche:
Du darfst diesen Dateianhang nicht ansehen.

Aber der LED-Schlauch hat nicht geschaltet.

Wenn ich in der bash:
bracew@pi:~$ /usr/local/sbin/send433 11001 4 1
sending systemCode[11001] unitCode[4] command[1]

eingebe, geht der LED-Schlauch an.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Dann ist jetzt der Punkt erreicht wo ich nicht wirklich weiterhelfen kann. Ich weiß nicht ob man diese Befehle so schnell hintereinander ausführen kann/darf und wie man eine Pause dazwischen machen könnte hab ich ehrlich gesagt auch keine Vorstellung.

Bracew

Was mir im Systemprotokoll:

2023.11.26 12:15:22 3: GenShellSwitch command result: sending systemCode[11001] unitCode[4] command[1]
2023.11.26 12:15:22 2: GenShellSwitch set Lampe_BS6 on
2023.11.26 12:15:32 3: GenShellSwitch command result: sending systemCode[11001] unitCode[4] command[0]
2023.11.26 12:15:32 2: GenShellSwitch set Lampe_BS6 off
.
.
.
sending systemCode[11001] unitCode[4] command[1]
sending systemCode[11001] unitCode[4] command[0]
sending systemCode[11001] unitCode[4] command[1]
sending systemCode[11001] unitCode[4] command[1]
sending systemCode[11001] unitCode[4] command[0]
sending systemCode[11001] unitCode[4] command[1]
sending systemCode[11001] unitCode[4] command[1]
sending systemCode[11001] unitCode[4] command[0]
sending systemCode[11001] unitCode[4] command[1]

aufgefallen ist, dass die Einträge keinen Zeitstempel bekommen haben.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

#21
Hilft beim Problem nicht weiter, aber was mir eben noch auffällt:
Die Zeile für das AUS-Kommando:
return (&$offcmd, &$oncmd, &$offcmd);;}ist Käse, da würde doch einfach ein aus reichen oder nicht ?:
return (&$offcmd);;}
Wenn der LED Streifen eingeschaltet ist, wird denn dann wenigstens die Lampe ausgeschaltet mit Lampe_BS6 off?

Bracew

Neuer Code nach Deiner Verbesserung:
defmod 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);;}
attr   Aussentreppe_LED_Schlauch group Licht
attr   Aussentreppe_LED_Schlauch room Licht
attr   Aussentreppe_LED_Schlauch icon light_stairs

setstate Aussentreppe_LED_Schlauch defined

Dann habe ich mit der bash den LED-Schlauch angeschaltet und mit "Lampe_BS6 off" in der FHEM-Befehlzeile ist er tatsächlich ausgegangen. Bei "Lampe_BS6 on" passiert leider jedoch nichts.

FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

#23
Dann liegts wahrscheinlich daran das die Befehle für AN zu schnell ausgeführt werden, ich weiß es aber nicht wie man das jetzt umsetzt.

Da muss sich irgendeiner der Herren die genau wissen wie man das macht, aber nur das Popcorn genüsslich genießen, erbarmen zu helfen.

TomLee

ZitatDann habe ich mit der bash den LED-Schlauch angeschaltet...

Wie genau hast du diese drei Kommandos in der Bash ausgeführt ?

Bracew

Siehe in meinem Beitrag zuvor:

Zitat von: Bracew am 26 November 2023, 16:09:14Wenn ich in der bash:
bracew@pi:~$ /usr/local/sbin/send433 11001 4 1
sending systemCode[11001] unitCode[4] command[1]

eingebe, geht der LED-Schlauch an.

aber wieso "...drei Kommandos..."?
Es ist
"/usr/local/sbin/send433 11001 4 1" für AN und
"/usr/local/sbin/send433 11001 4 0" für AUS

"sending systemCode[11001] unitCode[4] command[1]" bzw.
"sending systemCode[11001] unitCode[4] command[0]" ist die Antwort der bash (Systemresponse) zur Bestätigung.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Weil ich es aufgrund der Aussage:
Zitat von: Bracew am 25 November 2023, 18:22:31Wird 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.
so verstanden habe, das bei dem neuen Led-Streifen jetzt drei Kommandos gebraucht werden um das gewünschte Ergebnis zu erreichen ? ? ?

Bracew

Das gewünschte Ergebnis ist, dass der LED-Schlauch einfach und kontinuierlich leuchtet ohne Blinken oder sonstiges trallala.
Mit dem neuen Schlauch ist beim einfachen AN schalten es aber manchmal so, dass er in den Effektmodus (Blinken, Rollen, Laufen, Ab- und Aufblenden, etc.) geht.

Schalte ich aber AN-AUS-AN leuchtet er kontinuierlich ohne Effektmodus, also mit dem gewünschten Ergebnis.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

#28
Ich glaube verstanden zu haben das man in FHEM keine Pause zwischen Shell-Kommandos hinbekommt ohne zu blockieren.

Dann halt so:
defmod Aussentreppe_LED_Schlauch cmdalias customon AS {fhem("set Lampe_BS6 on;;sleep 0.2;;set Lampe_BS6 off;;sleep 0.2;;set Lampe_BS6 on");;}
attr Aussentreppe_LED_Schlauch group Licht
attr Aussentreppe_LED_Schlauch icon light_stairs
attr Aussentreppe_LED_Schlauch room Licht

Einfach customon ausführen und das gewünschte Ergebnis sollte stattfinden, wenn nicht muss man mit den Pausen "spielen".

edit:

die kürzere Variante hab ich gleich zum Anfang in #1 vorgeschlagen

Bracew

#29
Ok, in fhem.cfg eingecheckt.
Dann in der Befehlszeile "customon" und das Licht get AN-AUS-AN. Toll!
Teilerfolg, denn wie kann ich "customon" in der Oberfläche anklicken und im WeekdayTimer einbinden?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

#30
ZitatOk, in fhem.cfg eingecheckt.
Warum machst du das nicht über das + oder über den Raw-Editor ganz unten bei jedem Device ?

Zitat... wie kann ich "customon" in der Oberfläche anklicken ...
Zitatdefmod Aussentreppe_LED_Schlauch cmdalias set Lampe_BS6 customon AS {fhem("set Lampe_BS6 on;;sleep 0.2;;set Lampe_BS6 off;;sleep 0.2;;set Lampe_BS6 on");;}
attr Lampe_BS6 webCmd customonoder
attr Lampe_BS6 devStateIcon on::off off::customon
Zitat... im WeekdayTimer einbinden?
Hab ich mich noch nie mit beschäftigt, mit der jetzt vorgeschlagenen Änderung aber ganz normal mit set Lampe_BS6 customon, schätz ich.


Bracew

Hallo TomLee,

erstmal vielen, vielen Dank für Deine unermüdliche Hilfe. Ganz toll!!!

Zitat von: TomLee am 27 November 2023, 12:49:55Warum machst du das nicht über das + oder über den Raw-Editor ganz unten bei jedem Device ?
Aus vielen Gründen, u.a.:
1.) Weil ich es von Anfang an hier so gelernt habe.
2.) Weil ich es seit fast 10 Jahren deshalb so gewohnt bin.
3.) Weil ich zu faul bin mich neu umzugewöhnen.
4.) Weil ich mit listenorientierter Programmierung (z.B. Cobol, Fortran, Pascal) alt geworden bin.
5.) Weil ich es so einfacher und verständlicher finde.
6.) Weil ich so mehr verstehe. Leider auch manchmal vergesse und mich über die Struktur und meine Kommentare in der fhem.cfg dann manchmal doch wieder daran erinnere.
7.) Weil ich über auskommentieren mit # manchen alten funktionierenden Code zu meiner Erinnerung behalten kann.
8.) Weil ich über auskommentieren mit # manchen neuen Code testen und wieder ausschalten kann.
9.) Weil ich Mustercode so einfacher übernehmen kann (Eigenen und Fremden).
10.) 11.) 12.) ...


Zitat von: TomLee am 27 November 2023, 12:49:55attr Lampe_BS6 webCmd customon
führt zu:
Du darfst diesen Dateianhang nicht ansehen.
bzw.
Du darfst diesen Dateianhang nicht ansehen.
Führt beim Klick auf das FS20-Symbol (Bulb) zum einfachen AN bzw. AUS und beim Klick auf "customon" zu AN-AUS-AN.


Zitat von: TomLee am 27 November 2023, 12:49:55attr Lampe_BS6 devStateIcon on::off off::customon
habe ich geändert zu:
attr Lampe_BS6 devStateIcon on:FS20.on:off off:FS20.off:customonund führt zu:
Du darfst diesen Dateianhang nicht ansehen.
bzw.
Du darfst diesen Dateianhang nicht ansehen. 
Wenn ich auf das FS20-Symbol klicke ist alles wunderbar:
  • beim einschalten AN-AUS-AN
  • beim ausschalten AUS
Wenn ich auf "off" klicke geht der LED-Schlauch aus.
Jedoch, wenn ich auf "on" klicke geht es nur AN (nicht! AN-AUS-AN)

Beide Varianten sind nicht Optimal. Die zweite gefällt mir besser. Jedoch wäre es noch schön den "on"-Klick noch zu AN-AUS-AN hin zu bekommen.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee


Bracew

#33
Du darfst diesen Dateianhang nicht ansehen.

Klick auf:
  • on            --> AN
  • off            -->AUS
  • FS20        -->AN / AUS
  • customon -->AN-AUS-AN
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Bracew

Hallo TomLee,

hast Du mir noch einen Tipp, wie ich das "customon" auf "on" bekomme?

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Das versteh ich nicht. Kannst du mal genau beschreiben was du haben möchtest ?

Bracew

Zitat von: TomLee am 28 November 2023, 17:51:25Kannst du mal genau beschreiben was du haben möchtest ?
Ja, gerne:

Ich habe einen Zoo von per FHEM schaltbaren Steckdosen, manche 433 MHz mit DIP-Schaltern, manche 433 MHz mit Drehschaltern, manche über WLAN mit Tasmota. Ich schalte die Steckdosen zum Teil händisch in der FHEM Oberfläche wie im Bild unten rechts und manche auch per FHEM automatisiert mit WeekdayTimer .
 
Die meisten funktionieren über Jahre gleich und auch gut. Doch in diesem Monat ist ein LED-Lichtschlauch von LIDL kaputt gegangen. LIDL hatte diesen zufälligerweise gerade im Angebot (Bild unten links):

Du darfst diesen Dateianhang nicht ansehen.

sodass ich einen neuen gekauft und wieder an dieselbe per FHEM schaltbare 433 MHz Brennenstuhl RCS 2044 N  Funkschalter-Steckdose, angeschlossen haben. Der alte Schlauch aus 2019 war ,,...mit 8 einstellbaren Leuchtmodi und Memoryfunktion..." und der neue hat auch ,,...8 einstellbaren Leuchtmodi und Memoryfunktion...".

Den neuen LED-Lichtschlauch habe ich wieder so am LED-Lichtschlauch eingestellt, dass er beim Einschalten gleichmäßiges leuchtet, kein Blinken, kein Lauflicht, kein Auf- u. Abblenden, keine anderen Effekt. Nach dem Strom ausschalten in der Nacht und wieder einschalten am nächsten Tag sollte der LED-Lichtschlauch sich die letzte Einstellung gemerkt haben (Memoryfunktion).

Doch manchmal nach dem Einschalten schaltet der LED-Lichtschlauch alle seine Effekte an. Was ich aber nicht will, denn ich nutze den LED-Lichtschlauch nicht nur zu Weihnachten sondern das ganze Jahr an der Aussentreppe.

Ich habe herausgefunden, dass, wenn ich die Funksteckdose und damit den LED-Schlauch AN-AUS-AN schalte statt einfach nur AN, der LED-Lichtschlauch genau das macht was er soll: gleichmäßig leuchten.

Deshalb soll FHEM AN-AUS-AN senden statt einfach nur AN, wenn ich auf ,,on" klicke. Beim Klick auf ,,off" soll einfach nur AUS gesendet werden. Auch das FS20 Symbol (Bulb) auf der Oberfläche soll sinngemäß mit AN-AUS-AN statt nur AN funktionieren beim drauf klicken, wenn der LED-Lichtschlauch aus ist. Wenn der LED-Lichtschlauch an ist reicht natürlich wiederum ein einfaches AUS.

Im Moment habe ich das FHEM Element Aussentreppe_LED_Schlauch so:
Du darfst diesen Dateianhang nicht ansehen.
statt so wie es sein soll:
Du darfst diesen Dateianhang nicht ansehen.
also ähnlich wie die anderen Schaltelemente.

meine ursprüngliche Definition für nur AN oder AUS bzw. automatische Schaltung per WeekdayTimer war so:
# 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())
#

Mit Deiner Hilfe habe wir über diesen Code:
# 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 cmdalias set Lampe_BS6 customon AS {fhem("set Lampe_BS6 on;;sleep 0.1;;set Lampe_BS6 off;;sleep 0.1;;set Lampe_BS6 on");;}
attr   Aussentreppe_LED_Schlauch group Licht
attr   Aussentreppe_LED_Schlauch room Licht
attr   Aussentreppe_LED_Schlauch icon light_stairs
#
attr Lampe_BS6 webCmd customon:on:off
#
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())
#
uns so weit dem Ziel angenähert, dass es so:
Du darfst diesen Dateianhang nicht ansehen.
aussieht und beim klicken auf:
    on            --> AN des LED-Lichtschlauch
    off            --> AUS des LED-Lichtschlauch
    FS20        --> AN oder AUS des LED-Lichtschlauch je nach vorherigem Zustand
    customon --> AN-AUS-AN des LED-Lichtschlauch

Aber leider schaltet ein Klick auf "on" eben nicht AN-AUS-AN sondern nur ein Klick auf "customon" und
leider ist auf der FHEM Oberfläche noch "customon" zu sehen.

Kurzgefasst möchte ich folgenden Zustand:
Du darfst diesen Dateianhang nicht ansehen.

aber, dass beim Klick auf "on" von FHEM AN-AUS-AN gesendet wird, bzw. beim Klick auf das FS20-Symbol (Bulb) je nach Zustand AN-AUS-AN oder AUS gesendet wird.

Ich hoffe, ich habe mich verständlich ausgedrückt.

FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Zitat... bzw. beim Klick auf das FS20-Symbol (Bulb) je nach Zustand AN-AUS-AN oder AUS gesendet wird.

Das macht ja dieses devStateIcon:
Zitat von: TomLee am 27 November 2023, 12:49:55attr Lampe_BS6 devStateIcon on::off off::customon

Zitat... dass beim Klick auf "on" von FHEM AN-AUS-AN gesendet wird...
Ich weiß nicht ob das irgendwie geht, glaub nicht, aber wer weiß.

Was genau ist dein Problem?
Liegt es daran das du die structure-Definition nur mit on/off schalten kannst? Wozu gibts die überhaupt wenn da nur ein Device drin steckt ?

Und die WeekdayTimer-Definition (wie gesagt hab mich nie wirklich mit beschäftigt) sieht doch auch so aus, das du da einfach on durch customon ersetzen kannst, oder geht das nicht ?



Bracew

Zitat von: TomLee am 28 November 2023, 20:12:13Das macht ja dieses devStateIcon:
Zitatattr Lampe_BS6 devStateIcon on::off off::customon

Ja, man muss aber "customon" klicken. Beim Klick auf "on" funktioniert es nicht und auch nicht beim Klick auf das FS20-Symbol. Meine Frau schaltet (nur) mit dem Smartphone und auf dem ist nur das FS20-Symbol zu sehen, kein "on", kein "off" und kein "customon". Auf dem Smartphone ist nur die reduzierte WEBphone-Oberfläche von FHEM zu sehen. Meine Frau würde also beim anschalten erst gar nicht "customon" sehen (geschweige denn den Unterschied verstehen. Der WAF ist so nicht gegeben).

Ich würde gerne hinter der selben Oberflächenfunktion, wenn man "on" bzw. die FS20-Bulb klickt das AN-AUS-AN von "customon" haben.

WeekdayTimer habe ich hinten an gestellt. Würde ich mich gerne später drauf konzentrieren.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Zitatund auch nicht beim Klick auf das FS20-Symbol

Doch, mit:
attr Lampe_BS6 devStateIcon on::off off::customonfunktioniert genau das.

Aber eben denk ich seh ich das Problem mit der Frau, die schaltet immer die structure Aussentreppe_LED_Schlauch ?
Du brauchst die structure doch nicht wirklich, wie wärs wenn du die einfach löschst, Lampe_BS6 umbenennst in Aussentreppe_LED_Schlauch oder einen alias mit Aussentreppe_LED_Schlauch vergibst und dann noch das devStateIcon angibst.
Dann ist für die Frau erstmal alles beim alten und sie kann über die FS20 einschalten.

Bracew

Zitat von: TomLee am 28 November 2023, 20:54:01Doch, mit:
Code Auswählen Erweitern
attr Lampe_BS6 devStateIcon on::off off::customonfunktioniert genau das.
Ja.

Zitat von: TomLee am 28 November 2023, 20:54:01Du brauchst die structure doch nicht wirklich, wie wärs wenn du die einfach löschst
Ja.

Zitat von: TomLee am 28 November 2023, 20:54:01Lampe_BS6 umbenennst in Aussentreppe_LED_Schlauch
Aber, wo muss ich den den "GenShellSwitch /usr/local/sbin/send433 11001 4 1 0" unterbringen?
Und wie sieht der "cmdalias" aus?

Wie führe ich die den zusammen?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

TomLee

Wie wärs wenn du alles was hier steht noch 2-3 mal durchliest und versuchst nachzuvollziehen, eine Nacht darüber schläfst, dich morgen nochmal mit beschäftigst und dich dann nochmal meldest falls immer noch Fragen offen sind.
Ich hab jetzt keine Zeit mehr ...

Bracew

Danke für Deine Hilfen und Deine Geduld.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Bracew

Hallo,

meine Frau hat mitbekommen, was ich tue und mich einen Zeitverschwender gescholten  ::) .
Sie hat den Lichtschlauch zurückgegeben und einen neuen funktionierenden mitgebracht   :) .

Nun können wir wieder die FHEM-Programmierung wie vorher nutzen.
Sie hat das Problem gelöst  8) . Es braucht nun kein AN-AUS-AN mehr.

Danke dennoch für die Hilfen!
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe