Autor Thema: Hilfe bei Code für Dimmer / Notify Anwendung  (Gelesen 3887 mal)

Offline DJCrazy

  • Jr. Member
  • **
  • Beiträge: 51
Hilfe bei Code für Dimmer / Notify Anwendung
« am: 11 Oktober 2013, 16:34:17 »
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??
« Letzte Änderung: 13 Oktober 2013, 12:07:00 von DJCrazy »

Offline jody

  • New Member
  • *
  • Beiträge: 47
Aw: Hilfe bei Code für Dimmer
« Antwort #1 am: 11 Oktober 2013, 21:08:12 »
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

Offline DJCrazy

  • Jr. Member
  • **
  • Beiträge: 51
Aw: Hilfe bei Code für Dimmer
« Antwort #2 am: 11 Oktober 2013, 21:26:59 »
Mit dem zweiten % zeichen hat es funktioniert.
TVAbend:on set wzTVAnlage on;set wzStehlampe dim50%%;set flKugelLampe off - Geht NICHT.

Vielen Dank jody90

Offline Zrrronggg!

  • Hero Member
  • *****
  • Beiträge: 2255
    • www.fresse.de
Antw:Hilfe bei Code für Dimmer
« Antwort #3 am: 12 Oktober 2013, 17:23:11 »
Zitat
Versuch 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 offfunktioniert nicht.

Jedoch
definde blubber notify schalter:on  set lampe1 on ;; set lampe2 offgeht. 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 offgeht 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

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20460
Antw:Hilfe bei Code für Dimmer
« Antwort #4 am: 13 Oktober 2013, 09:40:11 »
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 onschaltet 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 onDas ist erklaert in http://fhem.de/commandref.html#command

Offline Zrrronggg!

  • Hero Member
  • *****
  • Beiträge: 2255
    • www.fresse.de
Antw:Hilfe bei Code für Dimmer / Notify Anwendung
« Antwort #5 am: 13 Oktober 2013, 13:56:23 »
Zitat
Nach 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

 

decade-submarginal