Hilfe bei Code für Dimmer / Notify Anwendung

Begonnen von DJCrazy, 11 Oktober 2013, 16:34:17

Vorheriges Thema - Nächstes Thema

DJCrazy

Hallo zusammen,

Bei einer Notify für den "TVAbend" habe ich das Problem das ich die Lampe nicht dimmbar angeht.

Funktioniert das dim50% bei einer Aufzählung?? Den mit dem Befehl on statt dim50% geht es.

Hier mein Code was unter DEF in der Notify steht.

TVAbend:on set wzTVAnlage on;set wzStehlampe on;set flKugelLampe off - Funktioniert
TVAbend:on set wzTVAnlage on;set wzStehlampe dim50%;set flKugelLampe off - Geht NICHT.

Was mache ich hier falsch??

jody

Hey,

Versuch mal ein zweites %-zeichen. Wird glaub nur in perl codes so benötigt aber einen versuch ist es wert.
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

DJCrazy

Mit dem zweiten % zeichen hat es funktioniert.
TVAbend:on set wzTVAnlage on;set wzStehlampe dim50%%;set flKugelLampe off - Geht NICHT.

Vielen Dank jody90

Zrrronggg!

ZitatVersuch mal ein zweites %-zeichen. Wird glaub nur in perl codes so benötigt aber einen versuch ist es wert.

Ich habe schon öfters beobachtet, das unter Umständen escaped werden muss, wo man es nicht erwartet, bzw nicht offensichtlich PERL verwendet wird.

Folgendes:

definde blubber notify schalter  set lampe1 on ; set lampe2 on

keine Escapen nötig. Aber:
definde blubber notify schalter:on  set lampe1 on ; set lampe2 off
funktioniert nicht.

Jedoch
definde blubber notify schalter:on  set lampe1 on ;; set lampe2 off
geht. Das hatte ich letzte Woche erst einem Thread hier beobachten können.

Es will mir scheinen, das Defines bei denen das notify bedingt ist (eigentlich eine verkürzte IF Abfrage) escaped werden müssen.

Im Grunde ist

definde blubber notify schalter:on  ...

eine abgekürzte Darstelllung von

define blubber notify schalter { if ("%" eq "on") { fhem(" ... ") }}

eventuell hängt das damit zusammen.

Die Erfahrung von DJCrazy, dass
... TVAbend:on set wzTVAnlage on;set wzStehlampe on;set flKugelLampe off
geht widerspricht dem allerdings.

Vielleicht kann Rudi Licht ins Dunkel bringen.
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

rudolfkoenig

Escape Regeln in FHEM:

- Im notify wird % mit dem Ereignis/Event und @ mit dem betroffenen Geraetenamen ersetzt, vermeiden kann man das mit %% oder @@. Diese Ersetzung passiert nur falls man im Ausdruck KEIN $NAME/$EVENT/$EVTPART0 usw. verwendet, die dem gleichen Zweck dienen. % und @ sind also ueberholt, und diese Ersetzung wird irgendwannmal abgeschaltet.
- ACHTUNG: das gilt nicht in at oder Watchdog, da fuer diese solch eine Ersetzung nicht anwendbar ist.
Erklaert in http://fhem.de/commandref.html#notify

- Um mehrere FHEM kommandos in at/notify einbauen zu koennen, trennt man diese mit ;; D.h.
define at 07:00 set Lampe1 on; set Lampe2 on
schaltet Lampe1 an um 07:00, und die Lampe2 jetzt. Um beide um 7 einzuschalten, muss man ;; verwenden:
define at 07:00 set Lampe1 on;; set Lampe2 on
Das ist erklaert in http://fhem.de/commandref.html#command

Zrrronggg!

ZitatNach 90 Sekunden sollte dann der Ausschalter von alleine gedrückt werden.
Das wollte ich so realisieren, funktioniert aber nicht.

SchlafenGehen:on set SchlafenGehen:off off-for-timer 90

Was mache ich falsch?
Wie muss der Code richtig aussehen?

Es wäre sicher vorteilhaft, wenn du das komplette define von dir hinschreiben würdest. Dies scheinen ja nur Teilstücke davon zu sein, die so garantiert nix machen.
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