wenn wir schon mal dabei sind...
mich nervt es dauernd z.B. "list TYPE=notify" zu tippen, wenn ich z.B. ein notify ändern will.
Dafür habe ich mir ein at gebastet, was 1x in der Stunde alle notifys in den Room notify schiebt (wenn ich es bei der Definition nicht händisch gemacht habe oder wenn ich plötzlich alle notifys noch in Room
notify2 haben will) und das funktioniert für mich wesentlich schneller.
Generell coole Sache aber bei jeder Ausführung wird ,notify an das Attribut Room angehängt und werden deshalb immmer mehr und müssen dementsprechend auch so oft gelöscht werden, wenn
ein notify nicht mehr im Room sein soll > ist also Käse.
Andererseits kann ich das Attribut auch nicht komplett löschen und wieder setzen, weil ja auch noch andere Räume hinterlegt sein können (und die dann weg wären).
Wie würdet ihr das lösen?
https://forum.fhem.de/index.php/topic,60018.msg919027.html#msg919027
Das könnte Dir weiterhelfen.
Gruß
Dan
Du kannst auch ein notify auf global:DEFINED setzen und darin den TYPE prüfen und dann einmalig den room zuordnen:
siehe https://fhem.de/commandref_DE.html#global unter Events
Zitat von: Benni am 11 April 2019, 18:36:45
Du kannst auch ein notify auf global:DEFINED setzen und darin den TYPE prüfen und dann einmalig den room zuordnen:
siehe https://fhem.de/commandref_DE.html#global unter Events
Genau so mache ich das!
Gruß
Dan
Tipp: https://wiki.fhem.de/wiki/Modul_HOMEMODE#HomeCMDfhemDEFINED
statt list kannst du auch show verwenden :)
oder du nimmst das extraRooms attribut um einen dynamischen raum zu erstellen der immer automatisch alle notifys enthält.
Zitat von: justme1968 am 11 April 2019, 20:14:56
oder du nimmst das extraRooms attribut um einen dynamischen raum zu erstellen der immer automatisch alle notifys enthält.
Oh je, das ist mir auf die Schnelle gar nicht eingefallen (zu neu), obwohl ich das selbst ja so mache ;D
gb#
Kann man die extraRooms in Fhemweb eigentlich dauerhaft ausgeklappt darstellen (also nicht zuerst Klick auf "Abfragen" und danach auf "Fenster").
Je nachdem wo das Menü steht wird dann die Seite wieder nach oben gescrollt (reload?) und dann nervt das schon wieder mehr als es nützt.
Zu den extraRooms habe ich noch eine Frage:
extraRooms
Durch Leerzeichen oder Zeilenumbruch getrennte Liste von dynamischen Räumen, die zusätzlich angezeigt werden sollen. Beispiel:
attr WEB extraRooms name=Offen:devspec=contact=open.* name=Geschlossen:devspec=contact=closed.*
Kann man statt devspec auch eine Gerätegruppe (z.B. notify oder CUL_HM) angeben um die Auswahl weiter einzugrenzen?
Meine Versuche führten leider zu nichts.
Also ich meine ungefähr so: name=Offen:CUL_HM=contact=open.*
schau dir noch mal an wie devspec und dort FILTER funktioniert. genau dazu ist es doch da:list FILTER=TYPE=CUL_HM:FILTER=contact=open.*
Nein,es funktioniert soweit schon.
name=Offen:devspec=contact=open.* liefert mir alle offenen Fenster.
Aber ich will es auf einen TYPE beschränken (kann ja mehrere TYPE's geben, die ein Reading contact haben).
Wie also (wenn möglich) kann ich das für extraRooms definieren?
Wie kann ich das
>> Filter: list FILTER=TYPE=CUL_HM:FILTER=contact=open.*
damit verbinden
>> name=Offen:devspec=contact=open.*
damit ich nur bestimmte Gerätetypen auf contact=open abfrage?
Oder nochmal ganz konkret:
Kann ich (das Wort) devspec in irgendeiner Form durch eine devspec ersetzen, z.B. name=Offen:CUL_HM=contact=open.* um nur CUL_HM > contact abzufragen?
das hier: FILTER=TYPE=CUL_HM:FILTER=contact=open.* ist deine devspec. einfach nur benutzen:
name=Offen:devspec=FILTER=TYPE=CUL_HM:FILTER=contact=open.*
Hier noch mal ein konkreter Anwendungsfall:
Ich will wissen was für einen Zustand meine Displays haben. Dabei frage ich die Stati disabled | disconnected | connected ab.
name=Abfragen->Displays:devspec=dis.*|con.*
Natürlich liefert mir die Abfrage auch alle Geräte zurück, die u.a. das Attribut disable (0 oder 1) haben; ich will aber nur die Display-Stati als extraRoom haben.
hast du gelesen was ich geschrieben habe? hast du dir FILTER in devspec angeschaut?
danke justme!
das wollte ich wissen!!
da problem ist für entwickler nicht existent, aber wenn ich als anwender mir die (m.E. für Anwender oft sehr unklare oder auch unvollständige) dokumentation durchlese und dann noch verschiedene dinge
miteinander verbinden soll, die teilweise in der doku, teilweise im wiki, teilweise im forum zu finden sind (wenn man sie findet) oder gar nicht (viele attribute der module sind in den moduldokus (aka "device
specific help") überhaupt nicht dokumentiert.
kein vorwurf. ist aber so. >:(
nachtrag.
das ist genau so ein beispiel (wieder kein vorwurf!):
name=Offen:devspec=FILTER=TYPE=CUL_HM:FILTER=contact=open.*
es gibt ein der hilfe zum attribut keine beispiel aus dem hervorgeht, das dies überhaupt möglich ist.
extraRooms
Space or newline separated list of dynamic rooms to add to the room list.
Example:
attr WEB extraRooms name=open:devspec=contact=open.* name=closed:devspec=contact=closed.*
vielleicht bin ich zu doof, aber für mich ist es nicht selbsterklärend, das ich da noch was dazwischenbasteln kann (und wenn doch, wie?).
:P
sorry. gerade in diesem fall ist die beschreibung zur devspec und FILTER in der commandref sehr vollständig und das jammern über nicht vorhandene doku nicht angebracht. sag mit beispielen und in deutsch und englisch.
danke auf jeden fall für die hilfe! ;D
und nein. das hier ist NICHT so ein beispiel: https://fhem.de/commandref.html#devspec (https://fhem.de/commandref.html#devspec)
ich meinte damit die beschreibung zum attribut extrarooms.
übrigens funktioniert es nicht so wie du es beschrieben hast. oder habe ich was übersehen?
name=Abfragen->Fenster:devspec=contact=open.*|closed.* >> funktioniert
name=Abfragen->Fenster2:devspec=FILTER=TYPE=CUL_HM:FILTER=contact=open.*|closed.* >> funktioniert nicht (leere Ausgabe)
List
Internals:
CHANGED
CUL_HM_MSGCNT 18
CUL_HM_RAWMSG A0D15A610517F23F1123406010000::-60:CUL_HM:
CUL_HM_RSSI -60
CUL_HM_TIME 2020-01-02 13:28:49
DEF 517F23
FUUID 5c48ebed-f33f-7535-f127-1a5706b892c584a5
IODev CUL_HM
LASTInputDev CUL_HM
MSGCNT 18
NAME FK_BD
NOTIFYDEV global
NR 132
NTFY_ORDER 50-FK_BD
STATE closed
TYPE CUL_HM
lastMsg No:15 - t:10 s:517F23 d:F11234 06010000
peerList TH_BD_WindowRec,
protLastRcv 2020-01-02 13:28:49
protRcv 18 last_at:2020-01-02 13:28:49
protRcvB 2 last_at:2020-01-02 13:08:53
protSnd 16 last_at:2020-01-02 13:28:49
protState CMDs_done
rssi_at_CUL_HM cnt:18 min:-67 max:-59.5 avg:-62.61 lst:-60
Helper:
DBLOG:
state:
logdb:
TIME 1577966933.21765
VALUE closed
READINGS:
2020-01-02 01:07:13 Activity alive
2019-03-12 23:40:28 D-firmware 1.0
2019-03-12 23:40:28 D-serialNr NEQ1505080
2020-01-02 13:28:49 alive yes
2020-01-02 13:28:49 battery ok
2020-01-02 13:28:49 contact closed (to CUL_HM)
2020-01-02 01:07:13 peerList TH_BD_WindowRec,
2019-05-21 05:34:57 powerOn 2019-05-21 05:34:57
2020-01-02 13:28:49 recentStateType info
2020-01-02 13:28:49 sabotageError off
2020-01-02 13:28:49 state closed
2020-01-02 13:08:53 trigDst_F11234 noConfig
2020-01-02 13:08:53 trigger_cnt 201
helper:
HM_CMDNR 21
mId 00C7
regLst ,0,1,4p
rxType 28
supp_Pair_Rep 0
ack:
expert:
def 1
det 0
raw 1
tpl 0
io:
lstRecType 10
newChn +517F23,00,00,00
nextSend 1577968130.03736
nxtSndMcnt 15
prefIO
restoredIO CUL_HM
rxt 2
tgtDly 88
vccu
lRcTm:
CUL_HM 249135780
tnms 641390495
p:
517F23
00
00
00
mRssi:
mNo 15
io:
CUL_HM:
-50
-50
prt:
bErr 0
sProc 0
sleeping 1
rspWait:
q:
qReqConf 00
qReqStat
role:
chn 1
dev 1
rpt:
IO CUL_HM
flg A
ts 1577968129.95484
ack:
HASH(0x5584c433c0)
158002F11234517F2300
rssi:
at_CUL_HM:
avg -62.6111111111111
cnt 18
lst -60
max -59.5
min -67
tmpl:
Attributes:
IODev CUL_HM
actCycle 002:50
actStatus alive
alias Fensterkontakt Bad
autoReadReg 5_readMissing
event-on-change-reading alive,battery,state
expert 2_raw
firmware 1.0
model HM-SEC-SCo
peerIDs 00000000,5016C903,
room Bad
serialNr NEQ1505080
subType threeStateSensor
Hab alle erdenklichen Kombinationen ausprobiert, keine Funktion mit Filter.
Aus der Commandref werde ich auch nicht schlauer wie genau die Zeile aussehen muss.
eigentlich ja so:
name=Abfragen->Fenster:devspec=FILTER=TYPE=CUL_HM=contact=open.*|closed.*
oder eher
name=Abfragen->Fenster:devspec:FILTER=TYPE=CUL_HM=contact=open.*|closed.*
aber da erhalte ich eine Fehler beim Speichern des Attributs
ein NAME=WERT Ausdruck, wo NAME ein "Internal" Wert wie TYPE ist, ein Reading-Name oder ein Attribut. WERT ist ein regulärer Ausdruck. Um die Bedingung zu negieren, muss NAME!=WERT verwendet werden. Um die Suche einzugrenzen, kann man als Praefix i: für internal Werte, r: für Reading-Namen und a: für Attribute verwenden, siehe das Beispiel unten. Groß-/Kleinschreibung wird durch die Verwendung von ~ oder !~ ignoriert.
Falls die Spezifikation von :FILTER=NAME=WERT gefolgt wird, dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck gefiltert.
Beispiele:
set lamp1 on
set lamp1,lamp2,lamp3 on
set lamp.* on
set room=kitchen off
set room=kitchen:FILTER=STATE=on off
set room=kitchen:FILTER=STATE!=off off
list disabled=
list room~office
list TYPE=FS20 STATE
list i:TYPE=FS20 STATE
Ich kapiers nicht. :P
Das einzige was funktioniert ist folgendes:
name=Abfragen->Displays:devspec=TYPE=Nextion
Damit kann ich aber nicht weiter filtern (z.b. disconnected).
Bei folgendem kommt wieder eine leere Seite als Ergebnis.
name=Abfragen->Displays2:devspec=TYPE=Nextion=dis.*
Heißt das man kann nicht mehr als einen Filter (z.B. TYPE= oder jeweils eins von Internal/Attribut/Reading) verwenden?
Du kannst doch erst den Type setzen und dann mit einem Filter weiter einschränken:
name=HUE->Dimmer:devspec=TYPE=HUEDevice:FILTER=subType=.*dimmer
Alle HUEDevice und dann den Filter auf die .*dimmer
Oder sowas zu deiner Abfrage von weiter oben
list TYPE=CUL_HM:FILTER=contact=(open.*|closed.*)