AN-AUS-AN statt nur AN senden.

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

Vorheriges Thema - Nächstes Thema

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