Autor Thema: structure mit Devices "Switch Detect: on/off" soll den Status on/off annehmen  (Gelesen 5628 mal)

Offline grappa24

  • Sr. Member
  • ****
  • Beiträge: 782
Nachdem ich hier http://forum.fhem.de/index.php/topic,17360.msg114072.html#msg114072 mit Eurer Hilfe meine Gedanken sortiert habe, jetzt nochmal klar formuliert mein Problem:

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 hab ich es nicht geschafft, da dessen Syntax nicht den "/" als Delimiter erlaubt ...

Dann hatte ich 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 ?

VG, Dieter
FHEM 5.9, RasPi 3B+, Debian Stretch, KNX, FS20, HM, HUE, Rollo-/Lichtsteuerung/-szenarien, Velux via HM, T-Sensoren, Wassermelder, Fensterkontakte, Signalgeber, Heizungssteuerung, HEOS, Sprachsteurung mit HA-Bridge und Alexa, Xiaomi Flower Care, Netatmo, ...

Offline Strippenzieher

  • Jr. Member
  • **
  • Beiträge: 82
Ich habe gerade so etwas ähnliches im anderen Thread geschrieben vllt. hilft das ja:

Zitat
attr <StructureNAME> clientstate_behavior relative
attr <StructureNAME> clientstate_priority present absent

das hatte zur folge, dass present der Status war wenn ein Gerät in der Structure present war und absent wenn kein Gerät present war.

in deinem Fall dann wohl:

attr <StructureNAME> clientstate_behavior relative
attr <StructureNAME> clientstate_priority on off

EDIT:

Habe gerade in deinem anderen Thread gesehen, dass du das schon probiert hast ... also ignorieren ...
 
« Letzte Änderung: 12 Dezember 2013, 23:06:50 von Strippenzieher »

Offline Matscher

  • Developer
  • Full Member
  • ****
  • Beiträge: 319
Hallo,

in der Attribute-Liste vom HMS müsste bei Dir ein <structureName>_map auftauchen. Das benutzte ich um das Reading switch_detect, welches on oder off sein kann, in die Structure zu mappen.

define FensterKGstruct structure structFensterKG Keller_Tuer
attr FensterKGstruct clientstate_behavior relative
attr FensterKGstruct clientstate_priority on off
...

define Keller_Tuer HMS 7b12
...
attr Keller_Tuer structFensterKG FensterKGstruct
attr Keller_Tuer structFensterKG_map switch_detect
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Energy meter, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20782
Das Problem mit clientstate_priority und das _map Attribut ist, dass sie erstmal an Leerzeichen trennen, und deswegen "Switch Detect: on" nicht spezifizierbar ist. Ich habe fuer structure das Trennen jetzt wie beim eventmap durch optionalen / am Anfang ergaenzt, und das Mapping mit stateFormat geloest:

define tf structure tf tfk1 tfk2
attr tf clientstate_behavior relative
attr tf clientstate_priority /Switch Detect: on/Switch Detect: off/
attr tf stateFormat {ReadingsVal("tf","state","") eq "Switch Detect: on" ? "on" : "off"}

Eigentlich waeren die _map Attribute fuer sowas zustaendig, leider steht hier nicht nur das Leerzeichen, sondern auch das Doppelpunkt im Weg. Wie man das elegant loest, ist mir noch ein Raetsel.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19289
in den _map attributen regex zuzulassen wäre nicht elegant genug?

attr tfk1 tf_map /.*on:on/.*off:off/
gruss
  andre
« Letzte Änderung: 13 Dezember 2013, 09:48:47 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline grappa24

  • Sr. Member
  • ****
  • Beiträge: 782
Matschers Lösung hat auch bei mir auf Anhieb funktioniert, Rudolfs Ansatz nicht (werde diesen aber nochmals testen, vlt. hab ich beim Umsetzen was falsch gemacht).

Auf jeden Fall: "Danke, Danke, Danke, ..."

VG, Dieter
FHEM 5.9, RasPi 3B+, Debian Stretch, KNX, FS20, HM, HUE, Rollo-/Lichtsteuerung/-szenarien, Velux via HM, T-Sensoren, Wassermelder, Fensterkontakte, Signalgeber, Heizungssteuerung, HEOS, Sprachsteurung mit HA-Bridge und Alexa, Xiaomi Flower Care, Netatmo, ...

Offline grappa24

  • Sr. Member
  • ****
  • Beiträge: 782
in der Attribute-Liste vom HMS müsste bei Dir ein <structureName>_map auftauchen. Das benutzte ich um das Reading switch_detect, welches on oder off sein kann, in die Structure zu mappen.
Ist das irgendwo beschrieben? ... jetzt möcht ichs auch verstehen, nachdem es funktioniert ...
FHEM 5.9, RasPi 3B+, Debian Stretch, KNX, FS20, HM, HUE, Rollo-/Lichtsteuerung/-szenarien, Velux via HM, T-Sensoren, Wassermelder, Fensterkontakte, Signalgeber, Heizungssteuerung, HEOS, Sprachsteurung mit HA-Bridge und Alexa, Xiaomi Flower Care, Netatmo, ...

Offline Matscher

  • Developer
  • Full Member
  • ****
  • Beiträge: 319
Sehr gut :)

Ist das irgendwo beschrieben? ... jetzt möcht ichs auch verstehen, nachdem es funktioniert ...

Beschrieben ist das Ganze etwas versteckt bei http://fhem.de/commandref.html#structure unter dem Punkt "clientstate_priority".

Oder auch hier: https://groups.google.com/d/msg/fhem-developers/8vwAZd04TjY/3OTZly2Sxb4J
Zitat
Alle Devices einer structure erhalten folgendes Attribut:
<struct-type>_map
  -> hier stellt man ein, welches Reading des Devices für die Structure  relevant ist, und ob ein mapping vorgenommen werden soll (mapping ähnlich zu eventmap)
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Energy meter, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

Offline grappa24

  • Sr. Member
  • ****
  • Beiträge: 782
In einer anderen structure möchte ich zwei EIB-Devices und ein HMS100TFK zusammenfassen

define ug structure ug_type ug1_eib ug2_eib ug2_hms

Die EIB-Devices sind einfach nur on|off, das HMS-Device wieder Switch Detect: on|Switch Detect: off mit den bekannen Readings.

Die structure ug soll dann on|off sein.

Hab auch hier schon mit clientstate_priority experimentiert, geht das vlt. auch mit <struct-type>_map?
FHEM 5.9, RasPi 3B+, Debian Stretch, KNX, FS20, HM, HUE, Rollo-/Lichtsteuerung/-szenarien, Velux via HM, T-Sensoren, Wassermelder, Fensterkontakte, Signalgeber, Heizungssteuerung, HEOS, Sprachsteurung mit HA-Bridge und Alexa, Xiaomi Flower Care, Netatmo, ...

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20782
Zitat
attr tfk1 tf_map /.*on:on/.*off:off/
Eingecheckt.

Damit kommt mein Beispiel auch ohne stateFormat aus:

define tf structure tf tfk1 tfk2
attr tf clientstate_behavior relative
attr tf clientstate_priority on off
attr tfk1 tf_map .*on:on .*off:off
attr tfk2 tf_map .*on:on .*off:off

Offline grappa24

  • Sr. Member
  • ****
  • Beiträge: 782
In einer anderen structure möchte ich zwei EIB-Devices und ein HMS100TFK zusammenfassen

define ug structure ug_type ug1_eib ug2_eib ug2_hms

Die EIB-Devices sind einfach nur on|off, das HMS-Device wieder Switch Detect: on|Switch Detect: off mit den bekannen Readings.

Die structure ug soll dann on|off sein.

Hab auch hier schon mit clientstate_priority experimentiert, geht das vlt. auch mit <struct-type>_map?
ich geb mir mal selbst die Antwort: "Klar geht das ...

attr ug_type clientstate_priority on off
attr ug_type_map switch_detect

Matscher, you saved my day .....
« Letzte Änderung: 14 Dezember 2013, 23:05:42 von grappa24 »
FHEM 5.9, RasPi 3B+, Debian Stretch, KNX, FS20, HM, HUE, Rollo-/Lichtsteuerung/-szenarien, Velux via HM, T-Sensoren, Wassermelder, Fensterkontakte, Signalgeber, Heizungssteuerung, HEOS, Sprachsteurung mit HA-Bridge und Alexa, Xiaomi Flower Care, Netatmo, ...

 

decade-submarginal