FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: grappa24 am 09 Dezember 2013, 21:27:17

Titel: "Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 09 Dezember 2013, 21:27:17
scheint mir wegen des ":" im state schwierig, oder gibts da eine Lösung?

Switch Detect: on:on    geht jedenfalls nicht ....
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: justme1968 am 09 Dezember 2013, 21:42:46
attr <device> eventMap /Switch Detect. on:on/

gruss
  andre
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 09 Dezember 2013, 21:57:45
Danke Andre,

was wär ich ohne Dich / ohne Euch / ohne das Forum ...

Ich verzweifle noch an FHEM/Pearl ... und wenn ich bedenke, dass ich mal Fortran, C und C++ unterrichtet habe, wirds mir ganz anders ....   ;)

Grüße, Dieter
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: justme1968 am 09 Dezember 2013, 22:14:29
na dann muss es dir doch wie ein segen vorkommen nicht an feste spalten gebunden zu sein sondern alles auf 1000 arten hinschreiben zu können :)
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 09 Dezember 2013, 22:20:02
die Spalten waren nicht das Problem, C++ hab ich beherrscht, FHEM/Pearl anscheinend nicht ...  ;)
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 09 Dezember 2013, 23:19:31
Zitat von: justme1968 am 09 Dezember 2013, 21:42:46
attr <device> eventMap /Switch Detect. on:on/
Andre, das setzt STATE um, (wie) kann man denn state umsetzen ?
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: ph1959de am 10 Dezember 2013, 07:47:21
Zitat von: grappa24 am 09 Dezember 2013, 22:20:02
die Spalten waren nicht das Problem, C++ hab ich beherrscht, FHEM/Pearl anscheinend nicht ...  ;)
Das hat nicht zwingend mit Fhem/Pearl zu tun. Ein kurzer Blick in die commandref zum Thema "eventMap" hätte Dir gezeigt:

If the first character is slash(/) or komma(,) then split not by space but by this character, enabling to embed spaces.

... und ein schönes Beispiel folgt auch noch.
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 10 Dezember 2013, 10:58:00
Danke, jetzt hab ich die Syntax des eventMap verstanden ;)
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 11 Dezember 2013, 00:22:40
Bräuchte nochmal Eure Hilfe, ich müsste den folgenden Ausdruck im Attribut clientstate_priority einer structure unterbringen:

   on|on|Switch Detect: on off|off|Switch Detect: off

aber hier scheint das Escape Zeichen "/" für Blanks nicht zu funktionieren, es wird "Detect:" als Zustand für die struct genommen, also die ersten Zeichen nach dem Blank ...

Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: ph1959de am 11 Dezember 2013, 07:36:41
Wenn die Syntaxbeschreibung für clientstate_priority in der commandref korrekt ist (und davon gehe ich einfach mal aus), dann gibt es hier nicht die Möglichkeit, den Schrägstrich (/) als Ersatz-Delimiter zu benutzen. Die Gruppen werden durch Leerzeichen voneinander getrennt und die Elemente innerhalb der Gruppe durch den senkrechten Strich ("Pipe", "|").

Habe gerade kurz 98_structure angeschaut. Ich denke, das
   split(" ", $attr{$me}{clientstate_priority})
ist relativ eindeutig: es wird nach Leerstellen gesplittet. Ob das (leicht?) geändert werden kann, kann sicherlich Rudi am besten beantworten.

Gruß, Peter
Titel: Antw:"Switch Detect: on" umsetzen mit eventMap auf "on"
Beitrag von: grappa24 am 11 Dezember 2013, 09:43:12
Danke Peter, ich war halt so naiv und wollte meine neu gewonnenen Kenntnisse über Delimiter bei eventMap auf clientstate_priority übertragen ...   ;)

Ich kann jetzt wenigstens mein Problem strukturiert beschreiben, ist ja auch was  ;)

Ich möchte in einer structure mehrere Devices vom Typ HMS100-TFK zusammenfassen, die alle "Switch Detect: on" bzw. "Switch Detect: off" annehmen können. Die übergeordnete Struktur soll aber die Zustände "on" (wenn nur einer der Devices "Switch Detect: on" ist) oder "off" (wenn alle Devices "Switch Detect: off" sind) annehmen. Mit clientstate_priority bin ich hier sicher auf dem richtigen Weg.

Ich hatte zunächst versucht mit eventMap die einzelnen Devices auf on|off umzuschreiben, was sich aber nur auf STATE und nicht auf das Reading state auswirkt - und die übergeordnete structure wertet wohl die Readings aus ????? Irdgendwo ist noch ein Knoten drin ....

VG, Dieter