vorschlag: show kommando in fhemweb um temporären raum über devspec aufzubauen

Begonnen von justme1968, 11 April 2018, 12:50:01

Vorheriges Thema - Nächstes Thema

justme1968

der angehängte kleine patch implementiert ein show <devspec> kommando für fhemweb. mit diesem kommando lässt sich ein 'temporärer' raum mit allen devices aus <devspec> anzeigen. d.h. es funktioniert im prinzip wie list, die 'ausgabe' ist aber kein text sondern direkt eine raumansicht mit den geräten.

das ganze hatte ich vor einziger zeit mal gebaut und zufällig wieder entdeckt als jemand im forum nach etwas in dieser art gefragt hat. ich finde den thread leider nicht mehr. vielleicht nützt es ja jemandem.

die implementierung ist nicht ganz sauber da $FW_room zur übergabe der devspec missbraucht wird, so lässt sich das ganze aber mit minimalen änderungen und auch ohne code duplizieren umsetzen.

ps: theoretsich könnte man das ganze vermutlich auch verwenden um z.b. dynamische räume ins menü rechts einzubauen um geräte die bestimmte kriterien erfüllen automatisch zu sammeln. ohne das room attribut zu setzen. also z.b. ein raum in dem alle fs20 devices auftauchen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Habe eigentlich nichts dagegen (auch wenn 'list <devspec>' ungefaehr das Gleiche bietet), aber es scheint nicht mit websocket kompatibel zu sein:

Zitat
fhemweb.js line 1111:Uncaught SyntaxError: Failed to construct 'WebSocket': The URL contains a fragment identifier ('devspec=TYPE=FHEMWEB;since=1523645190.75115;fmt=JSON&fw_id=314×tamp=1523645191933').

KernSani

Zitat von: justme1968 am 11 April 2018, 12:50:01
ps: theoretsich könnte man das ganze vermutlich auch verwenden um z.b. dynamische räume ins menü rechts einzubauen um geräte die bestimmte kriterien erfüllen automatisch zu sammeln. ohne das room attribut zu setzen. also z.b. ein raum in dem alle fs20 devices auftauchen.
Funktioniert auch praktisch... Damit kann man sich (z.b. über menuEntries) "smart" rooms bauen :-) Finde ich gut.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Benni

Zitat von: justme1968 am 11 April 2018, 12:50:01
ps: theoretsich könnte man das ganze vermutlich auch verwenden um z.b. dynamische räume ins menü rechts einzubauen um geräte die bestimmte kriterien erfüllen automatisch zu sammeln.

Die Idee finde ich sehr interessant!

Im Endeffekt könnte man damit das Raum-Konzept doch auch generell auf Dynamik umstellen, indem man unterschiedliche dynamische Räume auf Baisis des room-Attributs (oder auch eines beliebigen anderen) erzeugt. Dazu müsste es dann aber auch möglich sein, diese Räume aufgrund irgendeines Mappings o.ä. für die Anzeige im Menü "Enduser-tauglich" zu benennen.

Wäre schön, wenn man das noch websocket-kompatibel hinbekommt  ;D

Gruß Benni.

justme1968

websocket schaue ich mir an. auf die schnelle könnte ich mir vorstellen das irgendetwas noch nicht url encoded ist.

für die benennung der dynamischen räume bräuchte man eine art alias für räume. dazu gab es schon mal eine diskussion. oder man erweitert die syntax noch etwas auf etwas in der art: #name=<name>;devspec=$param

ich schau es mir an sobald ich dazu komme.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Benni

Weil ich gerade zufällig mal wieder über das Thema gestolpert bin, schubse ich das mal wieder etwas nach vorne  8)

justme1968

ich bin ziemlich sicher das das websocket problem am # am anfang von devspec liegt.

ein anderes sonderzeichen oder url encoden sollte helfen.

hat jemand einen vorschlag?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

@rudi: weißt du noch wo genau den fehler bekommen hast?

ich habe es inzwischen auch mit websocket getestet und keinen fehler bekommen. das # wird auch korrekt url encoded.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Ich konnte auch keine Probleme gerade entdecken, und habe deswegen dein Patch eingecheckt.

Side-Note: da es nirgendwo dokumentiert, und was aehnliches tut:l <devicename>(das ist ein kleines L) oben in der FHEMWEB Kommandozeile ruft die Detailansicht von <devicename>" auf.

justme1968

sehr schön. dann mache ich den zweiten teil mit den dynamischen räumen fertig.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

betateilchen

Und wo ist der passende commandref teil, damit "help show" eine entsprechende Beschreibung liefern kann?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!