[gelöst] Filter für Jalousen als "ne" vergleich

Begonnen von Thoffi1978, 26 Juli 2019, 11:45:05

Vorheriges Thema - Nächstes Thema

Thoffi1978

Hallo,

ich habe
(set Jalo_SchlafZi:FILTER=pct=100 pct 0)
um die Jalousie nur zu schließen wenn diese "offen" ist.


Jetzt möchte ich gerne den fogenden Code so modifizieren, dass nur die Jalousien geöffnet werden,
die *nicht* 62% als Stellung haben.

*11:00 {if (Value("Jalousie_Automatik") eq "Auto") {fhem("set Rollo_Gruppe on")}}


Wie kann ich den
:FILTER=pct=100 pct 0
so umbauen das er nicht GLEICH sondern UNGLEICH vergleicht?

Vielen Dank
Hoffi

Beta-User

kurze Suche nach "FILTER" in der cref bringt einen hier hin: https://fhem.de/commandref_DE.html#devspec

Da steht nach einer kurzen Erläuterung zum Negieren z.B.
set room=kitchen:FILTER=STATE!=off off
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thoffi1978

Hallo Beta-User,

vielen Dank für die schnelle Antwort.
Jetzt weiß ich auch wieder, warum ich da Schwierigkeiten hatte.

Das
*11:00 {if (Value("Jalousie_Automatik") eq "Auto") {fhem("set Rollo_Gruppe:FILTER=STATE!=62 on")}}
schaltet eine structure, die bei unterschiedlichen Stellungen der Jalos "undefined" anzeigt.
Somit werden dann alle Jalousien, egal in welcher Stellung sie stehen, wieder geöffnet.

kann man über die structure auch die Prozentabfrage machen oder ist es einfacher ein
set Jalo1, Jalo2, Jalo3:FILTER=STATE!=62, Jalo4 on
zu erstellen?

Torsten

List Rollo_Gruppe:
Internals:
   .cachedHelp Unknown argument ?, choose one of assignHmKey clear deviceRename down fwUpdate getConfig getDevInfo getRegRaw getSerial getVersion inhibit off on pair pct peerBulk peerIODev peerSmart href='/fhem?detail=vccu_Btn1'>vccu_Btn1 press raw regBulk regSet reset sign statusRequest stop toggle toggleDir unpair up saveStructState restoreStructState
   .eventMapCmd Runter Hoch
   ATTR       alleRollos
   CHANGEDCNT 850
   DEF        alleRollos Jalo_Bad Jalo_Finnja_hinten Jalo_SchlafZi Jalo_WZ_Seite Jalo_WZ_TV_vorne Jalo_SchlafZi_hinten
   FUUID      5c6a8907-f33f-7e98-6654-ff3156106620e1fc
   NAME       Rollo_Gruppe
   NR         138
   NTFY_ORDER 50-Rollo_Gruppe
   STATE      undefined
   TYPE       structure
   .asyncQueue:
   .attraggr:
   .attrminint:
   .memberHash:
     Jalo_Bad   62
     Jalo_Finnja_hinten 62
     Jalo_SchlafZi 62
     Jalo_SchlafZi_hinten 62
     Jalo_WZ_Seite 62
     Jalo_WZ_TV_vorne 67
   .memberList:
     Jalo_Bad
     Jalo_Finnja_hinten
     Jalo_SchlafZi
     Jalo_WZ_Seite
     Jalo_WZ_TV_vorne
     Jalo_SchlafZi_hinten
   READINGS:
     2019-07-27 09   LastDevice      Jalo_WZ_TV_vorne
     2019-07-27 09   LastDevice_Abs  Jalo_WZ_TV_vorne
     2019-07-27 09   state           undefined
Attributes:
   clientstate_behavior absolute
   devStateIcon off on
   eventMap   off on
   group      Jalousien
   room       Jalousien,Jalousien Di´s
   webCmd     on

Beta-User

Versuch's mal mit pct.
Ansonsten ggf. mal die devspec mit dem userattr auf den Eintrag durch die structure arbeiten lassen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thoffi1978

Hallo,

ich habe nun verschiedene "sets" ausprobiert. Leider bekomme ich die Negierung nicht hin
Mit
set room=Jalousien:FILTER=level!=pct=62  100
oder
set room=Jalousien:FILTER=STATE!=pct=62  100
kommt folgender Fehler:
Unknown argument 100, choose one of active execNow inactive modifyTimeSpec
und alle Jalousien öffnen sich.
auch ein
set room=Jalousien:FILTER=STATE!=pct=62  pct 100
zeigt die Funktion wie oben beschrieben.

Vielleicht ist es nur ne kleinigkeit, ich komme aber nicht weiter.
Hoffi

Beta-User

? Wie wäre es mit
set room=Jalousien:FILTER=pct!=62 100

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thoffi1978

Der Befehl öffnet auch wieder alle Jalousien und es kommt wieder folgene Fehlermeldung:
Unknown argument 100, choose one of active execNow inactive modifyTimeSpec
Der Befehl mit "on" statt mit "100" gesetzt funktioniert auch nicht:
Unknown argument on, choose one of active execNow inactive modifyTimeSpec

Beta-User

Dann sind da wohl noch andere Geräte in dem Raum, oder (hier: ein at?)...?
set room=Jalousien:FILTER=TYPE=CUL_HM:FILTER=pct!=62 100

Sowas kann man voher auch mit "list" austesten (statt "set")...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thoffi1978

Danke  ;)

Jetzt funktioniert es. Wenn ich mir das SET angucke, verstehe ich es auch. Von allein wäre ich da nie drauf gekommen

Dank!
Hoffi

Beta-User

 :)
Schön, dass es jetzt funktioniert wie erwartet.

Das mit der Filterei (oder devspec und regex allgemein) ist eine feine Sache, aber leider nicht selbsterklärend. Aber wenn man mal den Einstieg hat, ist es nicht mehr sooo schwierig und wird immer leichter... Also: üben, üben, üben (und vorher mit list nachsehen, ob das klappen kann, wenn man effektiv ein set, attr ... durchführen will ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors