Neues Modul: remotecontrol

Begonnen von UliM, 29 Juni 2013, 09:56:00

Vorheriges Thema - Nächstes Thema

UliM

Hallo,
es gibt ein neues Modul zur Anzeige einer grafischen "Fernbedienung". Das Tastenlayout der Fernbedienung kann frei definiert werden, es sind auch Standard-Tatstatur-Layouts enthalten. Die Fernbedienung kann in FHEMWEB wie auch in FLOORPLAN angezeigt und verwendet werden.

An die Entwickler: Jedes Modul kann eigene Standard-Layouts hinterlegen. Prädestiniert dafür sind Module, die Geräte steuern, die auch in der Realität eine Fernbedienung haben, also alle Steuerungen für TV-Geräte, Receiver, XBMC etc.
Wie Standard-Layouts hinterlegt werden ist im Wiki-Artikel beschrieben. Ab morgen kann auch das Modul 70_VIERA (für Panasonic-TV) als Beispiel genutzt werden. Sollten Fragen auftreten, helfe ich natürlich gerne.

Generelle Fragen und feedback bitte im Forum-Ordner Frontends, Fragen zur Einrichtung von Standard-Layouts bitte hier.

Viel Spaß damit,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

TeeVau

Habe gerade die neue Version von 70_VIERA eingecheckt.
Sollte ab morgen per fhem "update" zur Verfügung stehen.
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

justme1968

hallo uli,

ich bin gerade dabei ein default layout für das xbmc modul einzubauen.

dabei sind mir ein paar dinge aufgefallen:
  • für kleine remotes mit nur ein paar tasten wie itunes oder xbmc wäre es schön die direkt in der raum übersicht zu haben ohne den extra weblink. sondern direkt als icon des original oder remote devices.
  • das könnte man den user per devStateIcon für das original device setzen lassen
  • und/oder die FW_summaryFn für das remove device per attribut aktivieren
  • alternativ oder zusätzich könnte man auch webCmdFn verwenden und die remote im webCmd bereich anzeigen. das ist vielleicht sogar noch schöner.
  • für beides wäre es schön RC_attr2html zu dokumentieren
  • bei der devStateIcon variante muss rudi noch das matchen auf html code ein klein wenig erweitern damit newline im html code erlaubt ist. ich hab ihn schon darum gebeten.
  • bei beiden varianten hab ich noch das problem das die remote tasten beim seiten refresh kurz zu sehen sind und dann verschwinden.
gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

UliM

Hi Andre,
Zitat von: justme1968 schrieb am So, 30 Juni 2013 11:58ich bin gerade dabei ein default layout für das xbmc modul einzubauen.
Prima :)

Zitat von: justme1968 schrieb am So, 30 Juni 2013 11:58direkt in der raum übersicht zu haben ohne den extra weblink. sondern direkt als icon des original oder remote devices.
Ob man den weblink oder den remote-device anzeigen lässt (durch setzen Raum-Attribut) kommt ja auf's Gleiche raus.
Direkt als icons des Original-device: Wie Du schon schreibst geht vll RC_attr2html als webCmdFn.

Zitat von: justme1968 schrieb am So, 30 Juni 2013 11:58das könnte man den user per devStateIcon für das original device setzen lassen
[*]und/oder die FW_summaryFn für das remove device per attribut aktivieren
[*]alternativ oder zusätzich könnte man auch webCmdFn verwenden und die remote im webCmd bereich anzeigen. das ist vielleicht sogar noch schöner.
Jupp. Geschmackssache :)
Mir reichen die Tasten des Weblinks, den Zugriff auf das ausführende device kann man ja immer noch über andere Räume haben.

Zitat von: justme1968 schrieb am So, 30 Juni 2013 11:58für beides wäre es schön RC_attr2html zu dokumentieren
Verstehe ich nicht. Wo dokumentieren?
Wenn Du das mit webCmdFn hinkriegst kannst Du's ja als Beispiel mit in den Wiki-Beitrag setzen.

Zitat von: justme1968 schrieb am So, 30 Juni 2013 11:58bei beiden varianten hab ich noch das problem das die remote tasten beim seiten refresh kurz zu sehen sind und dann verschwinden.
Diesen Effekt hatte ich zwischenzeitlich auch bei aktiviertem longpoll, tritt mittlerweile aber nicht mehr auf bei eingebundenem Weblink.

RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

beim debuggen eben ist mir aufgefallen das der html code den das remote modul liefert ein \n am anfang hat. das verhindert das die regex die devStateIcon auf html code prüft greift und sogar fhem komplett abschmiert.

wäre es möglich das \n am anfang weg zu lassen ?

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

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

UliM

Zitat von: justme1968 schrieb am So, 30 Juni 2013 18:56wäre es möglich das \n am anfang weg zu lassen ?
Hi,
die Nebenwirkungen waren mir nicht bewusst.
\n rausgenommen und eingecheckt, rev3372.
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

im prinzip habe ich jetzt alle versionen laufen. webCmd, devStateIcon und SummayFn.

mein safari hat nur probleme wenn ich die remote tabelle in die tabelle der raumübersticht verschachtele. ich verstehe noch nicht was da schief geht. der seitenquelltext schaut ok aus aber im dom baum ist das div wo die tabelle eigentlich drin sein sollte leer und die tabelle hängt als zweite tabele hinter derjenigen in die sie eigentlich eingebettet sein sollte. ich muss mal drüber schlafen...

ich möchte das deshalb innerhalb des original device anzeigen weil ich bei xbmc und meinem itunes modul jeweils im state noch informationen habe oder bei itunes z.b. auch das cover image. und alles zusammen in einer zeile ist schöner als 2 oder sogar 3 devices dafür zu brauchen. zumindest für die einfachen einzeiligen remotes. wenn man die remote für das sonos modul verwendet wäre es das gleiche. in allen fällen wäre die webCmd version am schönsten.

eine idee: was wäre wenn man dem RC_attr2html ein optionales attribut verpasst um die tabelle weg zu lassen und nur die buttons zu generieren?


(siehe Anhang / see attachement)


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

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

UliM

Moin,
ui, sieht schön aus :)

Wg iTunes: steht irgendwo im Wiki o.ä., wie Du das gemacht hast, v.a. mit Anzeige des Coverbildes. Bei mir läuft fhem auf der FB, iTunes aufm macmini, hab dazu mal ein Wiki geschrieben
Vll kannst Du mir was per PN schicken oder wir machen dazu nen separaten Fred auf, zB in Codeschnipsel.


Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 00:12im prinzip habe ich jetzt alle versionen laufen. webCmd, devStateIcon und SummayFn.
Cool. Sind alle Versionen im xbmc-Modul eingecheckt? Sonst wär ich Dir dankbar wenn Du mir Schipsel per PN schicken könntest.

Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 00:12eine idee: was wäre wenn man dem RC_attr2html ein optionales attribut verpasst um die tabelle weg zu lassen und nur die buttons zu generieren?
Ja, gerne. Mir würden für ein Attribut 'mode' nun einfallen:
- weblink (aktuelle Ausgabe)
- html w/out table
- webCmdFn (Anzeige als webCmdFn auf dem remotecontrol-device selbst, ohne weblink)
- SummaryFn (evtl., ich weiss gar nicht wo das angezeigt würde?)

Weitere Werte?

Gruß, Uli

PS: Ist eigenlich irgendwo nachzulesen, welche Anzeige-Schnittstellen (webcmdfn, summaryfn etc etc) FHEMWEB bereitstellt und wo die jeweils landen? Im Wiki hab ich nix gefunden. Das wär hilfreich.
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

so...

- itunes hab ich dir per pm geschrieben

- die beschreibung zu webCmdFn und FW_SummaryFn findest du hier: http://forum.fhem.de/index.php?t=msg&goto=75077&rid=430&srch=webCmdFn#msg_75077
im prinzip ist es so:
  • devStateIcon ist für den anwender gedacht. entweder icon namen oder mit {} auch perl code. wie man aus dem perl code default icons zurück geben kann findet sich hier:
Link gegen ende. wenn man in seinem modul eine funktion hat die html zurück gibt kann der anwender die natürlich mit der {} variante verwenden.
  • da rudi es nicht so gerne mag die anwender funktion devStateIcon vom modul code aus zu verwenden gibt es für den modulautor SummaryFn. ist im prinzip noch etwas mächtiger. da es bis vor kurzem noch probleme mit dem refresh gab habe ich in meinen modulen bist jetzt trozdem devStateIcon verwendet und nicht SummaryFn.
  • webCmdFn: ist für den modulautor um dem anweder zu ermöglichen vorbereiteten html code in der webCmd liste unterzubringen. z.b. für den colorpicker. rudi hat den slider und den timepicker auch darauf umgestellt.[/list]wie das dann ausehen kann findest du z.b. hier: Link oder hier: Link oder eben oben das itunes bzw xbmc modul. das sonos modlu wäre noch ein kandidat denke ich. und das webcam modul fällt mir auch gerade ein: vorschau bild und ptz buttons.

    anbei noch der patch für 95_remotecontrol.pm der webCmdFn und FW_summaryFn implementiert:
    • um webCmdFn zu nutzen muss der modulautor bei 'set <device> ?' in der liste ein ein 'remotecontrol:remotecontrol' mit zurück geben. sobald das der fall ist kann der anwender dann in der liste des webCmd attribut ein 'remotecontrol <remote device>' angeben und bekommt die buttons angezeigt.
    • FW_summaryFn ist noch auskommentiert. das remote device sollte noch ein attribut haben um FW_summaryFn pro device zu aktivieren. wenn es nicht aktiviert ist sollte FW_summaryFn undef zurück geben.
    • wenn man eins von beiden verwendet ist der weblink nicht mehr nötig.
    • beide müssen noch so umgebaut werden das sie RC_attr2html mit dem zusätzlichen parameter aufrufen der die tabelle unterdrückt. sonst hat die darstellung die oben genannten probleme.
    • nach meinem stand reicht es in allen beiden fällen die tabelle weg zu lassen. d.h. eigentlich ist es erst mal gar nicht nötig mehr fälle zu unterscheiden.
    anbei ebenfalls die erste version des XBMC moduls mit remote defaults. das modul ist noch nirgends eingecheckt. ich weiss nicht ob der ursprüngliche ersteller noch aktiv ist.

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

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

    UliM

    Hi Andre,
    vielen Dank schon mal :)

    Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 17:38- itunes hab ich dir per pm geschrieben
    Jepp, danke. Hab schon begonnen zu probieren.

    Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 17:38die beschreibung zu webCmdFn und FW_SummaryFn findest du hier: http://forum.fhem.de/index.php?t=msg&goto=75077&rid=430&srch=webCmdFn#msg_75077
    @Boris - falls Du hier mitliest - wo wäre ein geeigneter Platz dafür im Developer-Wiki?


    Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 17:38anbei noch der patch für 95_remotecontrol.pm
    Danke!
    Habe webCmdFn implementiert, Testversion schicke ich Dir per PN.
    RC_attr2html hat nun einen optionalen Parameter, um die tags <table> und <tr> zu unterdrücken.

    Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 17:38muss der modulautor bei 'set <device> ?' in der liste ein ein 'remotecontrol:remotecontrol' mit zurück geben.
    Funktioniert, hab's gleich in rc selbst eingebaut.
    Das einzige was mich stört, ist dass in fhemweb-detail nun der set-Befehl remotecontrol zur Verfügung steht, der aber sinnbefreit ist.
    Hab mit "webCmd .remotecontrol remotecontrol" probiert, Funktionalität bleibt erhalten.
    @Rudi: wäre es möglich, in FW_makeSelect "versteckte" setter zu haben, zB diejenigen die mit . beginnen nicht im dropdown anzeigen.

    Gruß, Uli
    RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

    rudolfkoenig

    > Das einzige was mich stört, ist dass in fhemweb-detail nun der set-Befehl remotecontrol zur Verfügung steht, der aber sinnbefreit ist.

    Ich verstehe das Problem nicht: wenn ein Befehl sinnbefreit ist, dann sollte das Modul es doch nicht anbieten.

    justme1968

    der befehl ist sinnvoll in der webCmdListe (weil er zum anklicken sinn macht) in der detail ansicht wird er aber als drop down dargestellt. und in dieser form macht er keinen sinn.

    mit dem colorpicker ist es ähnlich: im der webCmdListe wird das interaktive element dargestellt um die farbe einzustellen. das ist gut. in der detail ansicht wird aber nicht das interaktive element dargestellt sondern ein dropdown mit dem text colorpicker.


    (siehe Anhang / see attachement)
    hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

    rudolfkoenig

    Sorry, so verstehe ich es auch nicht besser...

    justme1968

    für den colorpicker: im FW_makeSelect gibt es immer noch eine sonderbehandlung für den slider. andere mit webCmdFn definierte elemente werden nicht durch den hinterlegten code dargestellt sondern als drop down. in diesem fall wird angabe 'rgb:colorpicker,RGB' aus der set list zu einem drop down mit den einträgen colorpicker und RGB. statt dessen sollte entweder der colorpicker eingeblendet werden so wie es beim slider auch ist oder es sollte ein eingabefeld sein oder es sollte nicht auftauchen.

    für die remote: im prinzip das gleiche. es wird ein remotecontrol item für die webCmdListe definiert. an dieser stelle werden dann die buttons der remote eingeblendet. in der detail ansicht wird aber statt den den buttons nur ein dropdown mit dem text 'remotecontrol' eingeblendet.

    mit webCmdFn soll der modul autor ein html element definieren können das in der raum übersicht verwendet werden kann. das funktioniert. in der detail Ansicht wird aber die definition in text form als drop down angezeigt statt des html elements.

    hoff es ist jetzt besser verständlich.

    ein per webCmdFn definiertes element sollte in FW_makeSelect die gleiche sonderbehandlung erfahren wie der slider. und zusätzlich  wenn sie mit einem '.' anfängt ignoriert werden.
    hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

    rudolfkoenig

    Ich meine es jetzt zu verstehen, dass ihr immer noch auf meine versprochene Aenderung wartet, dass man sowas wie colorpicker/etc als javascript widget auch auf der Detailseite darstellen kann.

    Ok, dann wird das jetzt wieder hoeher priorisiert :)

    justme1968

    auf die einfache formulierung hätte ich auch kommen können :).

    es betrifft aber nicht nur javascript sondern ganz allgemein html per webCmdFn.

    auf der liste mit den prioritäten etwas weiter nach oben könnte dann noch:
     - verhindern das beim longpoll summarfn oder devState icons verschwinden
     - refresh der webCmdFn elemente beim longpoll
     - die duplikats erkennung damit ich die panstamp module einchecken kann. oder die aussage es kommt auf längere zeit nicht.
     - vielleicht sollte ich erst mal wieder aufhoeren :)
    hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

    Dr. Boris Neubert

    Hallo Uli,

    Zitat von: UliM schrieb am Di, 02 Juli 2013 13:54
    Zitat von: justme1968 schrieb am Mo, 01 Juli 2013 17:38die beschreibung zu webCmdFn und FW_SummaryFn findest du hier: http://forum.fhem.de/index.php?t=msg&goto=75077&rid=430&srch=webCmdFn#msg_75077
    @Boris - falls Du hier mitliest - wo wäre ein geeigneter Platz dafür im Developer-Wiki?

    weiß nicht - gibt es das Developer-Wiki überhaupt noch? Ich mag mich nicht darum kümmern, weil ich noch frustriert bin wegen des Crashs mit Totalverlust (einmal ist ein Unfall, zweimal ist Sorglosigkeit).

    Du fragtest neulich mal in einem anderen Thread, ob jemand die Seiten gespeichert habe. Sie sind hier: http://web.archive.org/web/*/fhemwiki.de.

    Viele Grüße
    Boris
    Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
    Bitte keine unaufgeforderten privaten Nachrichten!

    UliM

    Zitat von: Dr. Boris Neubert schrieb am Do, 04 Juli 2013 19:51Hallo Uli,
    [...]
    gibt es das Developer-Wiki überhaupt noch?
    [...]
    Viele Grüße
    Boris

    Hi Boris,
    Danke für den Link - ist aber m.E. alles schon wieder da, siehe http://www.fhemwiki.de/wiki/Kategorie:Development . Fehlt da noch was?

    Damit passen die FHEMWEB-Erweiterungen wohl am besten nach http://www.fhemwiki.de/wiki/DevelopmentFHEMWEB
    Ich nehm's mal bei mir auf die ToDo-List.
    Gruß, Uli
    RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

    rudolfkoenig

    > verhindern das beim longpoll summarfn oder devState icons verschwinden

    Ich behaupte standhaft, dass das ein iOS Bug ist, und ich es gerne fixe, wenn jemand mir sagt wie, bzw. was falsch ist.


    > refresh der webCmdFn elemente beim longpoll

    Das habe ich jetzt eingebaut, siehe www/pgm2/fhemweb_slider.js

    Fuer einen colorpicker muss man eine Datei www/pgm2/fhemweb_colorpicker.js anlegen, und eine updateLine Funktion definieren bzw. in FW_widgets eintragen. Da es fhemweb_XXX.js heisst, wird es automatisch als Skript geladen, und updateLine wird bei jeden Event fuer jede Zeile aufgerufen. Eine selChange Funktion ist in der Detail-Ansicht notwendig, falls einer der set Kommandos (oder attr Werte) einen colorpicker haben will.

    > die duplikats erkennung damit ich die panstamp module einchecken kann. oder die aussage es kommt auf längere zeit nicht.

    Habs eingecheckt, siehe passende Diskussion

    justme1968

    ich weiss inzwischen haben wir drei threads bei denen die letzen posts nicht mehr zum titel passen. aber in dem fall vielleicht doch besser als einen neuen auf zu machen:

    - das verschwinden der icons ich kann ich mit der aktuellen version nicht mehr reproduzieren.

    - der refresh der webCmdFn elemente beim longpoll funktioniert wunderbar. eine hand voll code und das gui ist wieder konsistent. :) danke.

    - den colorpicker in der detail ansicht kann ich noch nicht machen weil da ja noch das drop down menü gezeigt wird statt dem widget. der slider hat an dieser stelle immer noch eine sonderbehanldung.

    so.... genug für heute.
    hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

    rudolfkoenig

    >  ... weil da ja noch das drop down menü gezeigt wird statt dem widget.

    Das funktioniert so:
    - "set dev ?" liefert als Beispiel "... dim:slider,0,1,10 duration:time color:colorpicker" zurueck.
    - auf der Detailansicht von dev kann man deswegen per dropdown zwischen dim,duration und color waehlen.
    - bei dim erscheint ein slider, gebaut von der FW_sliderSelChange funktion, der sich wg. dem slider Stichwort zustaendig fuehlt, und ein Objekt statt undefined zurueckliefert.
    - bei duration baut FW_timeSelChange ein Time-Picker
    - bei color muesste ein FW_colorpickerSelChange in Javascript einen colorpicker Html-Dom-Element komplett erstellen und zurueckliefern, damit das Framework in fhemweb.js das alte Element dadurch ersetzt. Per optional zurueckgelieferten qFn kann dieser colorpicker mit dem aktuellen Wert gefuellt werden.

    justme1968

    ok. kapiert.

    wäre es nicht möglich für die initiale darstellung die vorhandene {webCmdFn} zu verwenden? die liefert ja eigentlich schon ein passendes div das sich mit dem zugehörigen updateLine ja auch schon aktualisieren lässt. sonst gibt es doch für jedes widget zwei stellen an denen es gebaut wird. ein mal in der webCmdFn und ein mal in SelChange.
    hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

    rudolfkoenig


    UliM

    Zitat von: UliM schrieb am So, 07 Juli 2013 21:38Damit passen die FHEMWEB-Erweiterungen wohl am besten nach http://www.fhemwiki.de/wiki/DevelopmentFHEMWEB
    Ich nehm's mal bei mir auf die ToDo-List.
    Erstellt unter
    http://www.fhemwiki.de/wiki/DevelopmentFHEMWEB#Plugins
    Bitte prüfen, ggf korrigieren/erweitern.
    Gruß, Uli
    RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

    rudolfkoenig

    Korrigiert und erweitert.
    Hauptsaechlich aber die alten Abschnitte gekeurzt, da sie nicht mehr zutreffen.

    justme1968

    sollte man updateLine und selChange nicht auch noch hier dokumentieren ?
    hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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