TYPE=xy automatisch in eigenen Room

Begonnen von hmtec99, 11 April 2019, 18:29:42

Vorheriges Thema - Nächstes Thema

hmtec99

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?

DeeSPe

MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Benni

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

DeeSPe

#3
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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

justme1968

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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Benni

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#

hmtec99

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.

hmtec99

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.*

justme1968

#8
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.*
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hmtec99

#9
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?

justme1968

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.*
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hmtec99

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.

justme1968

hast du gelesen was ich geschrieben habe? hast du dir FILTER in devspec angeschaut?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hmtec99

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.  >:(

hmtec99

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