Eigene Funktion in einem "at" aufrufen? Geht das?

Begonnen von dougie, 04 Januar 2013, 19:01:08

Vorheriges Thema - Nächstes Thema

dougie


Entweder ich stell mich wieder zu blöd an, oder es geht einfach nicht.

Ich hab in meiner 99_MyUtils eine Funktion "prg_MC_Bewegungsmelder_Dach" angelegt, in deren Verlauf ich an einer Stelle ein at definiere.
Egal wie ich es anstelle, er will den zweiten Befehl im at "prg_DispUpdate()" nicht anerkennen.

Was mache ich denn falsch?

VG
Ralf



sub
prg_MC_Bewegungsmelder_Dach()
 {
  ...
  fhem ("define Bewegungsmelder_Dach_reset at +00:05:00 {set MansCave_Bewegungsmelder_Dach off; prg_DispUpdate()}");
  ...}

Zrrronggg!

Sieht für mich wie Klammerfehler und fehlendes Escape aus. Versuch mal

{
  ...
  fhem ("define Bewegungsmelder_Dach_reset at +00:05:00 set MansCave_Bewegungsmelder_Dach off ;; prg_DispUpdate()");
  ...}
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

dougie


Sauber! Das war's!

Die geschweifte Klammer hatte ich aus Verzweiflung gemacht, weil nix funktionierte.
Das ich innerhalb der 99_MyUtils auch auf das Escape achten muss, hab ich wohl irgendwie noch nicht geschnallt gehabt.

Danke schön!

dougie



....doch noch nicht ganz.. gibt immer noch nej Fehlermeldung, das er prg_dispupdate() nicht kennt.

So funktioniert es bei mir:

{
...
fhem ("define Bewegungsmelder_Dach_reset at +00:05:00 set MansCave_Bewegungsmelder_Dach off ;; {prg_DispUpdate()}");
...}

Zrrronggg!

ja, das hätte ich als nächstes vorgeschlagen, bei den Klammer bin ich mir auch manchmal unsicher. Das Escapen hab ich inzwischen " im Blut "  ;-)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

broadway

Es müsste auch gehen:


fhem ("define Bewegungsmelder_Dach_reset at +00:05:00 set MansCave_Bewegungsmelder_Dach off");prg_DispUpdate();


Ansonsten ist es doppelt gemoppelt: Sage Perl, es soll einen fhem Befehl ausführen mit fhem("..") und sage dann FHEM, es soll Perl ausführen mit {prg_DispUpdate()}.
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

dougie



...ich glaube da reden wir aneinander vorbei: Mein Ziel ist es, das in 5 Minuten zwei Befehle ausgeführt werden.

So wie du es schreibst, wird erst das at definiert, und dann sofort das Programm DispUpdate ausgeführt. Richtig?

VG
Ralf

broadway

Das stimmt. Hab ich falsch verstanden, sorry!
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro