at und on-for-time wollen nicht

Begonnen von Caleus, 29 Mai 2018, 12:37:46

Vorheriges Thema - Nächstes Thema

Caleus

Hey Leute ich habe mal wieder eine Anfänger Frage und zwar habe ich hier eine LED Leiste (RGB) diese möchte ich gehen für ein paar Sekunden blinken lassen in einer DOIF abfrage ohne at und on-for -timer leuchtet die LED Leiste auch in gewünschter Farbe nur das blinken will nicht gelingen  ich habe es schon mit ;; sleep 0.5 ;; versucht wollte er nicht dann habe ich es mit wait versucht naja die Geschwindigkeit vom ein und ausschalten war zu schnell deswegen hoffe ich das mir hier jemand bei dem Tollen Wetter trotzdem helfen kann hier mal der Code

([Unwetter:Warn_0_levelName] eq "notice_warn_orange") (define warnungrot at +*{5}00:00:05 set wz.licht.decke RGB FF0000 on-for-timer 0.5) DOELSE (set wz.licht.decke off)

Gruß Caleus

amenomade

#1
([Unwetter:Warn_0_levelName] eq "notice_warn_orange")
   (set wz.licht.decke RGB FF0000 on-for-timer 0.5) DOELSE (set wz.licht.decke off)

attr DOIFname repeatcmd 1
attr DOIFname  repeatsame 5

sollte jede Sekunde blinken, und das 5 mal
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Caleus

Danke für die schnelle Antwort aber leider bekomme ich da den Fehler:
error set wz.licht.decke RGB FF0000 on-for-timer 0.5: usage: set wz.licht.decke HSV H,S,V seconds flags programm 2018-05-29 13:03:23

nils_

funktioniert denn dein aufruf aus dem ersten post

set wz.licht.decke RGB FF0000 on-for-timer 0.5

wenn du das in der FHEM Kommandozeile eingibst ??
viele Wege in FHEM es gibt!

amenomade

#4
Funktioniert überhaupt on-for-timer auf deiner RGB Leiste? Nicht jedes Gerät kann das (abhängig vom FHEM Modul).

Sonst kannst Du auch so machen:
([Unwetter:Warn_0_levelName] eq "notice_warn_orange")
   (set wz.licht.decke RGB FF0000)(set wz.licht.decke off) DOELSE (set wz.licht.decke off)

attr DOIFname wait 0,0.5
attr DOIFname repeatcmd 1
attr DOIFname  repeatsame 5


Alles abhängig von den Kommandos, die dein Gerät unterstützt. Was schaltest Du die an?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Beta-User

Zitat von: Caleus am 29 Mai 2018, 13:06:28
error set wz.licht.decke RGB FF0000 on-for-timer 0.5: usage: set wz.licht.decke HSV H,S,V seconds flags programm 2018-05-29 13:03:23
Schon das RGB kann der Aktor nicht, oder?
Liefere doch mal ein list von dem Teil...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

#6
Blinken lassen kannst du ein WifiLight-Device (wovon ich aufgrund der Fehlermeldung ausgehe) mit folgender Funktion in einer myUtils:

# Blinkfunktion für WifiLight.pm
sub blink(@)
{
  my ($ledName, $color, $t) = @_;
  # preserve actual 
  my $oldColor = ReadingsVal($ledName, 'RGB', '000000');
  # set initial blink - color
  #fhem "set $ledName RGB $color";
# blink $t times ...
for (my $i=0; $i<$t; $i++) {
   fhem "set $ledName RGB $color;set $ledName RGB 000000;"
}
# restore old color
fhem "set $ledName RGB $oldColor 0 q";
return undef;
}


Aufruf im DOIF

([Unwetter:Warn_0_levelName] eq "notice_warn_orange") ({blink("wz.licht.decke","FF0000",3)}) DOELSE (set wz.licht.decke off)

Caleus

@nils_ es liefert mir die gleiche Meldung wie einen Post über dir.

@ amenomade dein verschlag klappt danke.

@beta-user doch es kann RGB so mache ich bzw steuer ich es ja die ganze zeit.

@tomlee danke werde es mir mal anschauen aber vorerst reicht mir mal die Lösung von amenomade.

Wenn mir nun einer noch verraten kann wie ich den Intervall eingestellt bekommen zum Prüfen der Bedienung wäre ich da mit erst mal Fertig.

Gruß Caleus

nils_

Zitat von: Caleus am 29 Mai 2018, 14:19:00
@nils_ es liefert mir die gleiche Meldung wie einen Post über dir.
ok, dann war die syntax aus deinem ersten post falsch.
einfach so befehle zusammenbauen hat noch nie wirklich zum ziel geführt.
da sollte man sich schon an die doku halten!

Zitat von: Caleus am 29 Mai 2018, 14:19:00
Wenn mir nun einer noch verraten kann wie ich den Intervall eingestellt bekommen zum Prüfen der Bedienung wäre ich da mit erst mal Fertig.
intervall wofür??
wenn du schon module verwendest (in deinem Fall DOIF), dann solltest du auch in Grundzügen verstehen wie sie funktionieren.
viele Wege in FHEM es gibt!

Caleus

OK zum Verständnisse ich habe mir das DOIF im Commandref angeschaut dieser besagt

Fernbedienung (Ereignissteuerung): define di_rc_tv DOIF ([remotecontol] eq "on") (set tv on) DOELSE (set tv off)

das hat bei mir mit

define wetterwarnung DOIF ([Unwetter:Warn_0_levelName] eq "alert_forewarn_red") (set wz.licht.decke RGB FF0000) DOELSE (set wz.licht.decke off)

auch wunderbar geklappt. Also habe ich weil einfach nur AN langweilig war geschaut hier im Forum was die andere so erstellt haben und habe dann einen beitrag gefunden wo jemand es Blinken lassen wollte ich habe nur nicht sehen können wir er es realisiert hat also habe ich gesucht und AT gefunden und da wird mir im Commandref folgendes gezeigt als Beispiel:

define a7 at +*{3}00:00:02 set lamp on-for-timer 1  # Blinke 3 mal

nun habe ich daraus folgendes verstanden

define wetterwarnung DOIF ([Unwetter:Warn_0_levelName] eq "alert_forewarn_red") (define warnungrot at +*{15}00:00:02 set wz.licht.decke RGB FF0000 on-for-timer 0.5) DOELSE (set wz.licht.decke off)

das funktionierte aber leider nur wenn ich define warnungrot at +*{15}00:00:02 und on-for-timer 0.5 weg lies und deswegen habe ich gefragt es war schlicht weg eine für mich logische Variante.

und das 2. wie soll ich etwas verstehen wenn ich zum Thema DOIF und Intervall nichts finde und auch keine ähnlichen Anhaltspunkte habe ?

Und ja ich experimentiere gerne so lerne ich es aber besser.

Und bevor jemand fragt der Intervall soll dafür sein das er die Bedinung alle X Minuten abfragt und dann entweder wieder Rot Blinkt oder ebend nichts macht.

Caleus

TomLee

Du zeigst ja kein list vom Streifen.

Gehe mal weiterhin davon aus wir von WifiLight reden..

Kann auch daneben liegen, lasse mich auch gerne eines besseren belehren und lerne gerne dazu, aber wie willst du im Falle WifiLight dem RGB-Befehl mitgeben das er nur 0.5 Sekunden an bleiben soll ?

Auszug commandref


set <name> RGB RRGGBB [ramp] [l|s|q] [event]

Setzt die Farbe im RGB Farbraum.

Erweiterte Parameter:

ramp

Caleus

@TomLee sorry vergessen hier der auszug habe aber aufgrund der länge mal COLORMAP und GAMMAMAP weggelassen

Internals:
   CONNECTION LD382A
   DEF        RGB LD382A:192.168.178.61
   IP         192.168.178.61
   LEDTYPE    RGB
   NAME       wz.licht.decke
   NR         61
   NTFY_ORDER 50-wz.licht.decke
   PORT       5577
   PROTO      1
   SLOT       0
   STATE      off
   TYPE       WifiLight
   Readings:
     2018-05-29 14:23:52   RGB             000000
     2018-05-29 14:23:52   brightness      0
     2018-05-29 14:23:52   hue             0
     2018-05-29 14:23:52   saturation      100
     2018-05-29 14:23:52   state           off
   Helper:
     COMMANDSET on off dim dimup dimdown HSV RGB
     llLock     0
     targetHue  0
     targetSat  100
     targetTime 1527596632.32961
     targetVal  100

TomLee

Also mit meiner Lösung würds jetzt schon blinken.  ;D

Schauen wir mal wer sich noch meldet und eine einfachere Möglichkeit zeigt.


Caleus

@TomLee habe gerade deins extra mal versucht und muss leider sagen nein bei mir geht deins leider nicht, wie vorhin schon geschrieben klappt aber das von amenomade ist auch ok, nur der Intervall zum prüfen der Bedienung da komme ich nicht weiter ich möchte ja das er es in Intervallen abfragt und mir dann mit blinken signalisiert es liegt immer noch eine Warnung vor oder kann ich es anders realisieren wäre auch ok ?

Caleus

TomLee

#14
Zitat([Unwetter:Warn_0_levelName] eq "notice_warn_orange")
   (set wz.licht.decke RGB FF0000)(set wz.licht.decke off) DOELSE (set wz.licht.decke off)

Hatte amenomade's Vorschlag vorhin ausprobiert und irgendwie set wz.licht.decke off überlesen, klar gehts so, sry.
Mein Vorschlag sollte aber auch klappen.

So in der Art

(["Unwetter:Warn_0_levelName:notice_warn_orange"])
   (set wz.licht.decke RGB FF0000)(set wz.licht.decke off) DOELSE (set wz.licht.decke off)


mit Attribut do always im DOIF

und Intervall 300 im Unwetter-Device sollte dein Vorhaben klappen.

https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events