FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: peterk_de am 31 Mai 2017, 17:20:16

Titel: Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 31 Mai 2017, 17:20:16
Hallo zusammen,

eben entdeckt, und fast aus Reflex auf Kaufen gedrückt:

https://www.elgato.com/en/gaming/stream-deck

15 transparente Hardware-Buttons, hinter denen jeweils ein Vollfarb-Display liegt. Sowas wollte ich schon immer haben für meinen Nachttisch als Ergänzung / Ersatz für meine Tablet-UI, da ein Touchdisplay im Halbschlaf kaum zu bedienen ist und eine reine Hardwaretastatur mir zu unflexibel ist ...

Und das beste, es gibt schon funktionsfähige Ansätze, das Ding zu sinnvolleren Sachen zu missbrauchen, als wofür es verkauft wird:

https://github.com/Lange/node-elgato-stream-deck

Soll sogar auf dem Raspi laufen - ein Traum (node js). Hat das Teil hier in der Gemeinde evtl. schon jemand?

Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 02 Juni 2017, 23:11:31
Also testhalber musste ich mir das Ding dann doch mal bestellen ...

Erstes Test-Zwischenergebnis:

Von der Hardware bin ich angesichts des Preises von 150 Euro nicht 100% überzeugt. Sie ist OK, aber die ganzen euphorischen Rezensionen kann ich nicht unterschreiben. Es scheint ein großes (mittelprächtiges) LCD in dem Deck zu stecken, nicht jeweils separate für jede Taste. Wenn man die Tasten nur wenig über den Druckpunkt hinaus strapaziert, hat man die typischen LCD-Farbschlieren. Kein echter Show-Stopper, aber nun ja ... Die Auflösung ist auch nicht "Retina", man erkennt in 30 cm noch das Pixelraster, dadurch wirkt es billiger als es müsste.

Der Blickwinkel ist hingegen erstaunlich gut, obwohl das LCD sehr weit hinter den Tasten sitzt. Die Tasten selbst sind leise und haben einen recht weichen Anschlag. Der Druckpunkt geht voll in Ordnung. Das Gehäuse ist stabil und gut verarbeitet. Der Standfuß ist wackelig, denn da liegt es nur locker drin, das werde ich ankleben müssen.

Den stolzen Preis sieht man ihm insgesamt also nicht wirklich an. Rein vom Gefühl her fände ich hier _maximal_ die Hälfte angemessen. Leider ist es aber trotz der Macken alternativlos, passt zu 100% in meinen Usecase (Nachttisch) und ist auch noch WAF-kompatibel, da echte Knöpfe dran sind statt rumgetatsche...

Die Software (für den Mac) habe ich spaßeshalber einmal ausprobiert ... aber sie stürzte in einer Endlosschleife ab und zeigte nur ein nicht funktionierendes "Bitte Fehlerbericht senden"-Dialogfeld. Ältere Version, Neuinstallieren, ... nix half, das wäre ein Fall für den Support (aber das ist ja auch primär für Gamer aka Windows-User ... wird also aus der Zielgruppe keinen stören). Für nen Test unter Windows war ich zu faul, da mir die Software von Elgato eigentlich eh egal ist.

Die node.js-Library hingegen - also das für uns interessante - funktioniert anstandslos, wenn man sie erstmal installiert bekommen hat (node-hid ist etwas zickig). Anbei einmal ein erster Screenshot von dem Teil am Raspberry ...
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 21 Juni 2017, 20:54:14
Ich habe mir da jetzt in Node.js etwas gebaut, was mit einem Raspberry 2 und mit FHEM schon ganz gut funktioniert ... ich mache gerade selbst einen Alpha-Test. Falls es Interessierte gibt, würde ich den Code noch weiter aufpolieren und das mal irgendwo hochladen, momentan ist der Code zwar schon sehr featurereich, aber noch nicht sehr sauber ;)

Insgesamt ist das Teil schon sehr, sehr cool ... zwar am Raspi 2 nicht sonderlich flott (zumindest das Refreshen der Anzeige, die Button-Events kommen hingegen quasi ohne Lag) und die Hardware wie gesagt auch noch nicht perfekt, aber besser die Bedienbarkeit zum Knöpfchendrücken ist definitiv besser als jeder Touchscreen.

Bis jetzt läuft:

Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: xaver88 am 26 Juli 2017, 19:32:16
Hi

der Code würde mich interessieren
habe das Stream Deck seit letzter Woche auch hier, bekomme aber die Beispiele nicht alle zum laufen
(fillcolor geht nicht und das mit dem Text geht auch nicht)
Grafiken hinterlegen habe ich hin bekommen

wie geht das mit dem Longpress?

Hast Du den Coder schon irgendwo hochgeladen?
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 28 Juli 2017, 22:04:49
Hi, mangels Resonanz habe ich das noch nirgends hochgeladen, werde ich nun demnächst aber mal angehen. Es läuft bei mir 24/7 als Nachttisch-Tablet, bin sehr zufrieden.

Longpress kann die Library von denen nicht, habe ich selbst implementiert, neben  diversen anderen Sachen. Gibt auch noch vieles  was man noch zusätzlich  einbauen könnte (Doppelklick wär noch nützlich und dynamische Grafiken und Texte, also z.B. um Wetter-Icons hinzupushen oder Temperaturen anzuzeigen), aber als Bedien- und Statustablet ist es uneingeschränkt nutzbar und wirklich super blind zu bedienen.

Ich hab sogar (fast) die Funktionalität von Homematic-Tastern abgebildet: Kurzer Druck  kann dann eine Lampe z.B. an/ausschalten, gedrückt halten langsam Dimmen ...

Ab und an schlägt am Raspi allerdings mal ein Schreibbefehl fehl, so dass ein Button nicht neu bemalt wird - vermutlich wegen des langsamen USB-Busses. Aber die entsprechende Exception habe ich abgefangen und das Nodeskript  läuft und läuft ... :)

Die Beispiele liefen bei mir alle. Musst ggf mal nach fehlenden Paketen suchen und nachinstallieren.
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: xaver88 am 28 Juli 2017, 22:11:11
Hi

ich denke nicht, dass es an Paketen liegt (da müsste ja eine Fehlermeldung kommen oder?)

beim fillcolor z.B. werden die Tasten immer nur weis (bzw grau)

kann es sein, dass die "neueren" Boards schon eine andere Firmware haben?
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: herrmannj am 28 Juli 2017, 22:17:08
ach, guck ma schau. Hab den thread heute das erste Mal gesehen. Schick! Wie ist das denn Nachts? Bekommt man die Tasten komplett gaaanz dunkel ?

vg
joerg
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: xaver88 am 28 Juli 2017, 22:27:29
mit brightness auf 0 sieht man nix mehr
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: herrmannj am 28 Juli 2017, 22:32:35
und wenn man was mitteilen möchte stellt dann die Helligkeit via fhem hoch ? Schei..e geil!
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 29 Juli 2017, 14:05:11
Klassische 8-Bit regelung: Alles unter 9 ist komplett aus (Backlight aus), darüber ist der unterste Wert erträglich dunkel um daneben schlafen zu können. Und ich bin da sehr empfindlich, hatte vorher ein OLED-Tablet wegen der Blendwirkung.

Ich lad es dieses WE noch hier in den Thread.
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 29 Juli 2017, 14:07:28
Ach so und ja das ding hängt per Telnet inform an FHEM und lauscht auf einen Dummy, bei dem kann man dann per Reading Helligkeit und Bildschirmseite (mehrere Seiten mit unterschiedlichen Buttons sind möglich) einstellen.

Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 30 Juli 2017, 22:19:45
Ich hab es leider nicht geschafft, das Skript fürs Deployment vorzubereiten ... also noch keine tolle Doku, keine schöne Beispiel-Konfiguration und kein fertiges Package ... Damit ihr trotzdem was zum Spielen habt, anbei mal mein Folder-Snapshot von der bei mir laufenden Version. Es sind deshalb leider aktuell zwingend einige Node.js-Kenntnisse zur Nutzung erforderlich.

Nach dem Entpacken erstmal die fehlenden Node-Pakete nachinstallieren. Dann config.json anpassen. Nicht vergessen, in FHEM einen entsprechenden Dummy für das Streamdeckdevice anzulegen.

Dann start mit sudo node main.js (oder index.js, dann wird bei Fehlern automatisch restartet per forever - ist aber eigentlich nicht nötig, wenn das Teil luft, läuft es auch ...; sudo braucht ihr nicht, wenn ihr das streamdeck-device per udev für alle Nutzer schreibbar gemacht habt. Am besten erstmal die Beispiele aus der node-streamdeck-API zum Laufen bringen!)

Wichtigstes zur config.json

Der grobe Aufbau ist folgendermaßen - bitte achtet auf korrektes JSON, sonst startet das Programm nicht!

{

  "fhemHost":"192.168.178.57",
  "fhemTelnetPort":"7073",
 
  "fhemStreamDeckDummy":"schlafzimmer.streamdeck",

  "buttonTemplates": {
    ...
  },
  "buttons": {
    ...
  },
  "pages": {
     ...
  }

}


Definition von Buttons

Der Abschnitt buttons enthält alle Button-Definitionen. Man gibt dem Button da einen eindeutigen Namen, ordnet ein FHEM-Device zu, stellt Icon, Farbe etc. ein und so weiter. Der Button wird dann aber noch nicht angezeigt.

Buttons können verschiedene States haben. Das Prinzip ist wie bei den Multistate-Buttons bei Tablet-UI. Nur noch etwas weitergehender. Erläuterung folgt ;)


Anordnen der Buttons auf den Tasten - "Bildschirmseiten"

Buttons werden erst angezeigt, wenn man sie im Abschnitt pages einer oder mehreren Bildschirmseiten hinzufügt. Eine Seite muss man also mindestens definieren. Durch dieses Prinzip kann man dann sehr bequem den selben Button gleich auf mehreren Seiten anzeigen, ohne viel Codewiederholungen.

Die aktuell angezeigte Seite wird über den FHEM-Dummy eingestellt. Will man per Streamdeck selbst die Seite wechseln, muss man einen Button anlegen, der den FHEM-Dummy entsprechend umsetzt.

Definition einer Beispielseite

"Default": {

      "Nachtlicht":[1],
      "Treppenlicht":[2],
      "SZDeckenlicht":[3],
      "TreppenlichtOben":[4],     
      "Wohnungsmodus":[5],

      "KZDeckenlicht":[11,12,13,14,15],
      "TreppenlichtUnten":[11,12,13,14,15],
      "WZDeckenlicht":[11,12,13,14,15],
      "BOWandlicht":[11,12,13,14,15],
      "KZTuer":[11,12,13,14,15],
      "Kellertuer":[11,12,13,14,15],
      "Balkontuer":[11,12,13,14,15],
      "Haustuer":[11,12,13,14,15],
      "BUTuer":[11,12,13,14,15],     
      "BOTuer":[11,12,13,14,15]

}


Die ersten 5 Buttons (Nachtlicht, Treppenlicht, ...) haben genau eine Feste Position zugeordnet bekommen (die 15 Tasten des Streamdecks sind in meinem Skript intuitiv in Leserichtung beginnend mit 1 oben links durchnummeriert, oben Links ist also die Nachtlicht-Taste.) Das ist sicher simpel ;)

Buttons verstecken + nachrücken lassen

Die nächsten 10 Buttons haben jedoch jeweils mehrere Positionen zugeordnet bekommen, und zwar alle jeweils die 5 Tasten der mittleren Reihe - 11 bis 15. Das führt dazu, dass das Skript diese Buttons automatisch auf die erste freie Taste in diesem Bereich legt - ist auf Button 11 schon ein Button, wird Button 12 probiert usw. Wozu? Nun, man kann Buttons mit der Eigenschaft "hidden":"true" in Abhängigkeit von einem Regex verstecken - der Platz kann dann vom nächsten (nicht ausgeblendeten) Button belegt werden. In diesem Beispiel wurden die Buttons für die 10 Lampen / Türen so definiert, dass sie nur sichtbar sind, wenn die jeweilige Tür offen bzw. das Licht angeschaltet ist Die ersten 5, auf die das zutrifft, sieht man dann; sollten einmal mehr im "anzeigewürdigen Zustand" sein, werden die überzähligen nicht angezeigt (in diesem Beispiel hier würde man nur die ersten 5 Buttons sehen, auch wenn 6 Türen offen sind).


Template-System

Des weiteren wird für die Buttons ein Template-System unterstützt - die Benutzung ist optional, aber sehr Praktisch. Man kann sich z.B. ein Template "Homematic-Dimmer" im Bereich buttonTemplates der config-Datei anlegen, in dem man das ganze Schaltverhalten (Shortpress/Longpress/Event-Regex etc.) hinterlegt; also das, was für alle Homematic-Dimmer gleich ist:

     "HM_Dimmer": {
        "label":"Dimmer",
        "fhem-reading": "pct",
        "lockStateWhileDown":true,
        "states": {
          "off": {
            "shortPress": "set %DEVICE% pct 100", 
            "longPressRepeat": "set %DEVICE% up",                 
             "fhem-value-regex":"0"
           },
          "dimming": {
            "icon": "./img/wait.png",
            "fhem-reading": "dim",
            "shortPress": "set %DEVICE% pct 0",
            "longPressRepeat": "set %DEVICE% down",                             
            "fhem-value-regex":".*(up|down).*"
          },
          "on": {
            "shortPress": "set %DEVICE% pct 0",
            "longPressRepeat": "set %DEVICE% down",
            "fhem-value-regex":".*"
           }                     
        }
     },


Im Abschnitt buttons wird dann Für jeden Dimmer ein Label, ggf. ein anderes Icon (Angaben beim Button überschreiben die Vor-Einstellungen des Templates) und ein konkretes FHEM-Device ergänzt:

     "WZDeckenlicht": {
        "template":"HM_Dimmer",     
        "label":"Stube",
        "fhem-device": "stube.deckenlicht.dimmer"
     },


Den Rest müsst ihr euch erstmal selbst im Code anschauen. Ich ergänze das gern nach und nach, dauert aber leider noch etwas ;(

Known Bugs:

- Labels werden nicht zentriert
- gelegentliche Write-Timeouts in Richtung Streamdeck-Device
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: nils_ am 31 Juli 2017, 15:34:27
sehr cool....

ich sehe mich schon nachher den bestell-knopf drücken  ::)
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: Per am 02 August 2017, 12:40:31
Zitat von: peterk_de am 31 Mai 2017, 17:20:16Sowas wollte ich schon immer haben für meinen Nachttisch als Ergänzung / Ersatz für meine Tablet-UI, da ein Touchdisplay im Halbschlaf kaum zu bedienen ist und eine reine Hardwaretastatur mir zu unflexibel ist ...
Gabs doch aber schon zu DOS-Zeiten! Sogar mit echten Microtastern und Einzel-Displays.

Zitat von: peterk_de am 31 Mai 2017, 17:20:16Soll sogar auf dem Raspi laufen - ein Traum (node js).
Und damit ist es bei mir raus. Node.js verfügt leider über keine, für mich nachvollziehbare Installationsanweisung.

Zitat von: peterk_de am 02 Juni 2017, 23:11:31Es scheint ein großes (mittelprächtiges) LCD in dem Deck zu stecken, nicht jeweils separate für jede Taste.
[...]
Den stolzen Preis sieht man ihm insgesamt also nicht wirklich an. Rein vom Gefühl her fände ich hier _maximal_ die Hälfte angemessen. Leider ist es aber trotz der Macken alternativlos, passt zu 100% in meinen Usecase (Nachttisch) und ist auch noch WAF-kompatibel, da echte Knöpfe dran sind statt rumgetatsche...
Ein "normales" OLED/LCD und ein Plexiglasgitter drüber, schon kann man es blind ertasten ;).
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 02 August 2017, 13:26:47
Per, ich hab echt schon lange und immer mal wieder nach sowas gesucht ... das ist leider das einzige Gerät, das mir dabei begegnet ist (in einigermaßen verträglichen Comsumer-Preisbereichen). Wie oben geschrieben, leider trotzdem nicht perfekt. Falls es Alternativen gibt, wäre ich daran sehr interessiert, insbesondere welche die etwas preisgünstiger sind ;)

Aber besser als ein Touchscreen mit Plexiglas-Gitter ist es dann doch, das haptische Feedback der "echten" Tasten ist schon schick...

Theoretisch müsste das auch ohne Node.js gehen, wenn einer in Perl die Ansteuerung nachbaut ... da dann aber noch recht viel über den reinen Treiber "oben drüber" muss, hab ich darauf verzichtet. Wenn sich das jemand antun möchte, wäre das sicher schick ;) Andererseits ist ein aktuelles node.js mit einem Einzeiler automatisch auf diversen Plattformen installiert - https://github.com/nodesource/distributions
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: LuBeDa am 11 November 2017, 16:42:40
Habe das Ding auch schon auf meinen Wunschzettel geschrieben :-)
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: blecher-at am 08 Dezember 2017, 22:30:04
Hab mir das Teil auch zugelegt und schreibe gerade an einem nativen perl modul für FHEM. kein node.js und extra configfiles notwendig.
Das Grundgerüst steht, also man kann bereits jeden der 15 taster als eigenes FHEM gerät anlegen, tastendrücke werden registriert und bildchen können gesetzt werden.

Werde es hier hochladen wenn interesse besteht, und bin für featurewünsche dankbar
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: blecher-at am 11 Dezember 2017, 11:23:25
Das native modul ist nun in der Alpha-Version verfügbar: https://forum.fhem.de/index.php/topic,80897.0.html
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: Tobias Claren am 24 Januar 2018, 16:17:58
Hallo.

Warum wäre ein Touchscreen schlechter zu bedienen, wenn man die Buttons so verteilt und groß macht wie diese Tasten?
Ich hätte auch Interesse an so etwas, aber 15 Tasten..
Weiß jemand wie viele man z.B. für Videoschnitt braucht? Die extra Videoschnitt-Tastaturen sind ja im Aufbau die normalen 104/105-Tasten-Tastaturen, und die meisten oder alle Tasten scheinen belegt zu sein.

Und man will ja alle Funktionen auf einmal sehen (egal ob Videoschnitt oder anderes), oder nicht?
Wie da bei diesen 15 Tasten 210 Funktionen (wäre das 14-Fache) abrufbar sein sollen, das sieht man nicht mal im Video auf der Produktseite von Elgato.
Da stelle Ich mir das wischen der ganzen Seite beim Touchscreen einfacher vor.
Es wird ja für "Streaming" beworben, aber auch Gaming und eben Video/Audio-"Editing" erwähnt.

Ich habe noch ein "PC Dash 2" irgendwo, das hatte schon 35 Tasten (7x5).

Gibt es (k)eine Software die man auf dem Windows-PC öffnet, auf einen Nebenmonitor legt, dort maximiert, und beliebige Tasten einrichtet (Grafik, Text...) und Verknüpfungen etc. zuweist? Dann kann man diese mit Mausklick, oder Touchscreen drücken.
Alternativ auf einem Tablet, z.B. Android die Oberfläche, und die Befehle werden als Tastaturbwefehle an den PC gesendet.
Kommt drauf an, wie viele Tasten man z.B. auf einem billigen 10.1"-Tablet darstellen kann.

Und wollte man unbedingt echte Tasten könnten Auflagen auf einem normalen LCD existieren, welche auch Tasten haben die runter drückbar sind.
Bei einem resistiven oder ultraschall, Infrarot etc. reicht ja wenn etwas über die Oberfläche gerät (hier bei mir schon eine Fruchtfliege auf dem Samsung ld220z), oder eben drückt. Also auch etwas transparentes.
Transparent UND kapazitiv ist problematisch.
Titel: Antw:Tastatur mit LCD hinter den Tasten: Elgato Stream Deck
Beitrag von: peterk_de am 25 Januar 2018, 09:23:00
Hi Tobias,

in bestimmten Situationen will man echte Tasten. Mein Use-Case ist der Nachttisch, ich kann das Elgato-Ding im Halbschlaf bedienen, was mir bei einem reinen Touchscreen nicht gelang - ich hab zu oft die Augen dafür zu weit aufmachen müssen ;)

Ich hatte zwischenzeitlich einen kleines Nummern-Keyboard mit selbst beklebten Tasten. Das ging in meinen verschlafenen Phasen schon besser als der Touchscreen. War aber zu unflexibel (zu wenig Tasten, kein Feedback).

Bei dem Elgato-Teil kann ich das jetzt viel flexibler machen: In der obersten Reihe hab ich auf 5 Knöpfen alle wichtigen Funktionen, immer an der gleichen Stelle (z.B. das Licht im Schlafzimmer). Die anderen Tasten belege ich mit meiner Library dynamisch: In der mittleren sind Notfall-Buttons, die sind nur zu sehen / aktiv, wenn ein bestimmter Alarmkreis angeschlagen hat. Damit kann ich dann z.B. den Alarmkreis wieder ausschalten o.ä. - ohne Alarm kann ich aber auch nicht aus versehen draufdrücken, da schwarz und funktionslos. Und die untere Reihe, da hab ich alle Lampen im Haus und alle Türen / Fensterstati dynamisch draufgelegt (>30): Die Buttons werden nur angezeigt, wenn eine Tür/Fenster offen bzw. eine Lampe an ist. Somit sehe ich beim einschlafen, ob ich noch was zumachen muss; Lampen kann ich mit einem Druck ausschalten. Wenns mehr als 5 sind, zeigt er nach einer hinterlegten Reihenfolge die ersten 5 an.

Also ich habe auf das Teil insgesamt deutlich über 100 Funktionen gemappt, und das nur auf eine "Seite" ... läuft wie Sahne und gefällt mir viel besser als die Original-Ansteuerung mit den Ordnern.

Ich gehe mit, dass man das mit einem Tablet-PC + irgendwelchen Aufsatztasten hardwaremäßig auch selber und vielleicht besser hinbekommt, aber auch da habe ich nichts passendes gefunden. Müsste für ein Touchscreen mit kapazitiver Eingabe ja elektrisch leitend + transparent + mit ordentlichem Druckpunkt sein ... falls du da was findest, bitte posten, dann könnte man mit TabletUI was schönes stricken ;) In anderen Räumen nutze ich übrigens auch normale Android-Tablet-PCs mit Touchscreen, da sie billiger und flexibler sind und ich im Wachzustand auch mit der Bedienung keine Probleme habe ;)