Hauptmenü

Wake up Dimmer

Begonnen von mister, 19 April 2020, 22:32:22

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#15
Ups.

Das muss wohl:


$ActDimValue .= "%";


heißen...

EDIT: war ne Mischung aus C/C++ und Perl ;)  Kommt davon, wenn man nur ganz ab und an mal Perl macht ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mister

Ich muss leider nochmal Fragen da ich den fehler nicht sehe

der Aufruf findet ja so statt

{my_DimmUp2("dmTestLicht",0,5)}

wenn ich hier jeodch z.b.
{my_DimmUp2("dmTestLicht",0, 10 )}
eintrage, funktioniert es nicht mehr aber warum?

MadMax-FHEM

#17
Weil ich es mir einfach gemacht habe ;)

Und zwar muss die "timespec" bei at ja wie folgt aussehen:

hh:mm:ss

Ich habe im code folgendes:


  my $AtTime = "+00:00:0" . $WaitTime;


Also geht damit nur: 1-9 (es ginge auch 0 macht aber ja keinen Sinn ;)  )

Wenn du über 9 willst, dann den "ursprünglichen" Code (erster Post [da war es nämlich "falsch" ;) ]):


  my $AtTime = "+00:00:" . $WaitTime;


Wenn du beides willst, dann sowas:


if($WaitTime > 9)
{
  my $AtTime = "+00:00:" . $WaitTime;
}
else
{
  my $AtTime = "+00:00:0" . $WaitTime;
}


EDIT: aber hiermit geht auch "nur" 1 (0) - 59 !!! Weil dann ist ja eine Minute und dann müsste es ja so sein 00:01:00 usw. Sicherheitshalber kann man das auch noch abfragen if($WaitTime > 9 && $WaitTime < 60) und dann einen Fehler werfen (dazu aber dann statt else -> elsif($WaitTime < 10) weil sonst landest du ja bei 60+ auch wieder "falsch")...

EDIT2: ich hab ja geschrieben, das hier ist kein "sauberer" Code etc. Soll dir nur zeigen wie es gehen kann/könnte...

Oder halt eine richtige "Berechnung", die ich mir eben "gespart" hab...

UND: Perl lernen ;)

UND: fhem lernen ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mister

Ok hab ich verstanden und umgesetzt. Kann man auch zustande von dummy im Porgramm nutzen? Ich möchte das Programm unterbrechen können.

Jetzt dachte ich mir ich schreibe in die If schleife
if($DimIndex < 15 && $DimSchalter eq "On")
somit müsste ich doch nur den state vom besagten Schalter mitnehmen oder? Wenn der Schalter den STATE off hat springt er aus der Schleife und ich kann die Lampe ausschalten.

MadMax-FHEM

Schön, dass du so ausführlich Infos lieferst... ;)

Was ist $DimSchalter !?

Und wie bekommt dieser den Status!?
Schön, dass du den Code so vollständig postest...

Oder willst du meine Hellseher-Fähigkeiten testen... ;)

Aber vermutlich wird es so gehen.
Was spricht gegen: einfach ausprobieren!? ;)

Und: STATE != state !!!!

Das eine (STATE) ist ein INTERNAL!
Das andere (state) ein Reading!

Meist gleich aber nicht zwingend!

UND: das eine wird abgefragt mittels ReadingsVal bzw. ReadingsNum und das andere mittels InternalVal

UND: wichtig On != on != ON

Da du so ausführlich Infos geliefert hast, kann ich nur allgemein antworten...

Und mich (noch mal) wiederholen:

Perl lernen!
fhem lernen!

Viel Spaß noch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)