homeBridgeMapping für Harmony Hub als Homekit Gerät + Control Center Remote

Begonnen von Thyraz, 22 September 2019, 22:21:44

Vorheriges Thema - Nächstes Thema

Thyraz

Hallo zusammen,

bisher finden sich noch recht wenig Beispiele zu Television Mappings für FHEM außer in Verwendung mit dem LG Modul.
Meiner Meinung nach völlig zu Unrecht, da dies nicht nur für den Fernseher, sondern für alle Arten von Medien einen bequemen und schnellen Zugriff vom Sperrbildschirm aus bedeutet.

Ich hab wohl einen LG Fernseher der so eingebunden werden könnte, finde die Einbindung über das Harmony Modul aber spannender,
da ich hier hier alles steuern kann was über die Harmony geht.

Als Inputs hab ich zum Testen erstmal TV + über den SAT-Receiver, Medien über den Apple TV und Musik über den Sonos Connect eingerichtet.

Das spannende bei dem Weg über die Harmony ist, dass man hier die Tasten aus dem HUB-Device (und nicht den spezifischen Geräten) mappen kann und somit je nach gewählter Aktivität ( = Input) die Tasten in der Control Center Remote das aktive Gerät steuern anstatt einer festen Zuweisung.

So wähle ich z.B. mit den Cursor-Tasten + Select beim Sat-Recevier Input den Kanal, während beim Apple TV Input eben das typische Steuerkreuz der Fernbedienung gesteuert wird.

Außerdem kann man so alle TV-, Film- und Musikaktivitäten in ein Homekit Gerät kombinieren und entsprechend über den aktiven Input starten/wählen.

Ich stelle hier mal meine Konfig zur Verfügung, muss aber zugeben, dass ich die Mappings in diesem spezifischen Fall noch nicht zu 100% durchschaut habe.
Ich hoffe daher darauf, dass hier im Thread ggf. eine verbesserte Version entsteht.

Das Attribut genericDeviceType ist als "Television" gesetzt.

Hier mal das aktuelle Mapping:

clear
ConfiguredName:default=Medien
Active:activity,values=PowerOff:INACTIVE;/^((?!PowerOff).)*$/:ACTIVE,cmds=ACTIVE:;INACTIVE:activity+PowerOff
RemoteKey:key,cmds=REWIND:command+Rewind;FAST_FORWARD:command+FastForward;NEXT_TRACK:command+SkipForward;PREVIOUS_TRACK:command+SkipBackward;ARROW_UP:command+DirectionUp;ARROW_DOWN:command+DirectionDown;ARROW_LEFT:command+DirectionLeft;ARROW_RIGHT:command+DirectionRight;SELECT:command+Select;BACK:command+Back;EXIT:command+Menu;PLAY_PAUSE:command+Play;INFORMATION:command+Info
SleepDiscoveryMode:default=ALWAYS_DISCOVERABLE
ClosedCaptions:default=0
DisplayOrder:default=Test1
CurrentMediaState:default=0
TargetMediaState:default=0,cmds=PLAY:command+Play;PAUSE:command+Pause;STOP:command+Stop;
PictureMode:default=1
PowerModeSelection:default=1,cmds=0:
ActiveIdentifier:Harmony01:activity,default=0,values=Fernsehen:1;AppleTV:2;Musik:3,cmds=1:activity+Fernsehen;2:activity+AppleTV;3:activity+Musik
TelevisionSpeaker#Mute=mute
Active:default=ACTIVE
VolumeSelector:command,cmds=INCREMENT:VolumeUp;DECREMENT:VolumeDown
VolumeControlType:default=RELATIVE_WITH_CURRENT
linkedTo=Television
InputSource(1)#Identifier:default=1
ConfiguredName:default=TV
IsConfigured:default=CONFIGURED
InputSourceType:default=HDMI
CurrentVisibilityState:default=SHOWN
linkedTo=Television
InputSource(2)#Identifier:default=2
ConfiguredName:default=APPLE+TV
IsConfigured:default=CONFIGURED
InputSourceType:default=HDMI
CurrentVisibilityState:default=SHOWN
linkedTo=Television
InputSource(3)#Identifier:default=3
  ConfiguredName:default=MUSIK
  IsConfigured:default=CONFIGURED
  InputSourceType:default=HDMI
  CurrentVisibilityState:default=SHOWN
  linkedTo=Television


Schaltet man das Gerät in Homekit ein, passiert erst einmal nichts.
Das hab ich so gewählt, da ich sonst immer eine Standard-Aktivität starten müsste.

Einschalten ist also nichts anderes als die Inputwahl freizuschalten.
Ich habe es nicht geschafft das ganze so zu konfigurieren, dass man bei ausgeschaltetem Gerät einen Kanal wählen kann und dies zum Einschalten + Inputwahl führt.
Man muss aktuell also immer erst einschalten und dann den Input wählen um die Aktivität zu starten.

Dafür erkennt Homekit eine über die Fernbedienung gestartete Aktivität problemlos und zeigt das Gerät dann als eingeschaltet mit dem korrekten Input an.

Ausschalten des Geräts in Homekit schaltet eine laufende Aktiviät aus.

Für die Control Center Fernbedienung sollte man schauen, dass man eben bei allen Aktivitäten das Steuerkreuz, Menu, Zurück etc. mit sinnvollen Befehlen belegt um die Aktivitäten damit ausreichen steuern zu können.

Im Anhang noch Screenshots wie das dann aussieht.

edit: Achja, die Lautstärke der Aktivität ändert man in der Control Center Remote mit den Hardware-Lautstärketasten des iPhones.
Es gibt da keine Software Steuerelemente auf dem Touchscreen.

Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Phiolin

Ganz interessante Idee eigentlich. Vielleicht lohnt es sich hier noch mal weiter nachzuforschen?
Ich habe das homebridgeMapping wie oben mal übernommen, aber meine Homebridge kann damit offenbar nichts anfangen und generiert für das Device gar keinen Service.

Harmony: no service type detected
no accessory created for Harmony (harmony)


Hat jemand mittlerweile ein brauchbares Mapping für einen Harmony Hub?

Z-Rick

Hi,

ich bin auch schon seit einigen Tagen dabei mich mit dem Mapping meines Harmony Hubs zu beschäftigen - erfolglos. Der "genericDeviceType" "Television" müsste ja eigentlich dazu führen, dass Homebridge versteht, dass es sich um ein TV-Gerät handelt. Welches Gerät dann FHEM-seitig dahinter sitzt, ist ja egal. Mir geht es in erster Linie auch nur um die Input-Auswahl via Homekit-App. Das wäre ja schon sehr praktisch. Das Bild aus dem Ausgangspost von Thyraz, wo die schicke Auswahl angezeigt wird, bekomme ich jedoch nicht zu Stande. Homekit scheint mit dem genericDeviceType nichts anfangen zu können.

Daher stelle ich die Frage auch nochmal: Hat jemand bisher ein funktionierendes Harmony-Mapping zwischen FHEM und Homebridge hinbekommen?

Kann es ggf. auch an iOS14 liegen, dass das nicht mehr hinhaut?

Besten Dank und Liebe Grüße
Cedric

MadMax-FHEM

Zitat von: Z-Rick am 30 September 2020, 16:48:37
Der "genericDeviceType" "Television" müsste ja eigentlich dazu führen, dass Homebridge versteht, dass es sich um ein TV-Gerät handelt. Welches Gerät dann FHEM-seitig dahinter sitzt, ist ja egal.

Jein.

Welches tatsächliche Gerät "dahinter sitzt" ist schon egal...
ABER: genericDeviceType ist nur EIN Baustein zur Geräteerkennung!!

Siehe auch hier: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa#Ger.C3.A4te_im_FHEM-Webfrontend_zuweisen
(Anmerkungen (weil oft gestellte Fragen im Forum) bzgl. Erkennung von Geräten: ff.)

(ist zwar alexa-fhem aber Code-Basis ist gleich [im Prinzip] / daher kann nach Mappings auch "dort" und sogar bei gassistant geschaut werden / ABER: nicht alles geht überall [gleich])



Zitat von: Z-Rick am 30 September 2020, 16:48:37
Mir geht es in erster Linie auch nur um die Input-Auswahl via Homekit-App. Das wäre ja schon sehr praktisch. Das Bild aus dem Ausgangspost von Thyraz, wo die schicke Auswahl angezeigt wird, bekomme ich jedoch nicht zu Stande. Homekit scheint mit dem genericDeviceType nichts anfangen zu können.

Dann musst du eben homekit erklären wie dein Gerät/Device "funktioniert", womit wir wieder beim homebridgeMapping wären ;)

Zitat von: Z-Rick am 30 September 2020, 16:48:37
Homekit scheint mit dem genericDeviceType nichts anfangen zu können.

Siehe 1. Antwort...

Zitat von: Z-Rick am 30 September 2020, 16:48:37
Daher stelle ich die Frage auch nochmal: Hat jemand bisher ein funktionierendes Harmony-Mapping zwischen FHEM und Homebridge hinbekommen?

Wie geschrieben, evtl. auch mal bei alexa-fhem oder gassistant schauen!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Z-Rick

Top! Danke dir, Joachim.

Ich schaue heute oder morgen mal rein und poste dann eine - hoffentlich funktionierende Lösung hier.

Liebe Grüße
Cedric

Thyraz

Um das evtl. nochmal klarzustellen:

der Code im ersten Posting ist mein homebridgeMapping des HarmonyHub Devices in Fhem.
Also wirklich alle diese Zeilen sind das Mapping für dieses eine Device.

genericDeviceType ist bei mir auch zusätzlich auf Television.
Weiß aber nicht ob das nötig ist.

Ohne das Mapping wird das aber auf alle Fälle nichts.
Du musst ihm ja beibringen was Kanäle es gibt und welche FHEM Kommandos gesendet werden müssen.

Zerpflücken wir das Ganze mal:


clear

Alle automatisch zugewiesenen Mappings löschen

ConfiguredName:default=Medien

Der Name in Homekit (das Attribut SiriName scheint man hier dagegen nicht zu brauchen)

Active:activity,values=PowerOff:INACTIVE;/^((?!PowerOff).)*$/:ACTIVE,cmds=ACTIVE:;INACTIVE:activity+PowerOff

Die Erkennung ob das Gerät an oder aus ist (Reading activity: "PowerOff" gilt als INACTIVE, alles andere als ACTIVE
UND
Steuerung für an / aus: Zum Einschalten (Active) wird nichts ausgeführt, da man ja erst noch einen Channel wählen muss damit eine bestimmte Aktivität gestartet werden soll. Beim Ausschalten wird "activity PowerOff" ausgeführt.

RemoteKey:key,cmds=REWIND:command+Rewind;FAST_FORWARD:command+FastForward;NEXT_TRACK:command+SkipForward;PREVIOUS_TRACK:command+SkipBackward;ARROW_UP:command+DirectionUp;ARROW_DOWN:command+DirectionDown;ARROW_LEFT:command+DirectionLeft;ARROW_RIGHT:command+DirectionRight;SELECT:command+Select;BACK:command+Back;EXIT:command+Menu;PLAY_PAUSE:command+Play;INFORMATION:command+Info

Hier werden Tasten für die iOS On-Screen Remote auf Harmony Buttons gemappt.
Was diese Buttons der Harmony dann wirklich ausführen, hängt von der aktuellen Harmony Activity ab.

SleepDiscoveryMode:default=ALWAYS_DISCOVERABLE
ClosedCaptions:default=0
DisplayOrder:default=Test1
CurrentMediaState:default=0
TargetMediaState:default=0,cmds=PLAY:command+Play;PAUSE:command+Pause;STOP:command+Stop;
PictureMode:default=1
PowerModeSelection:default=1,cmds=0:

Was das alles war müsste ich auch erstmal wieder raussuchen. Notfalls einfach mal testweise mit übernehmen. ;)

ActiveIdentifier:Harmony01:activity,default=0,values=Fernsehen:1;AppleTV:2;Musik:3,cmds=1:activity+Fernsehen;2:activity+AppleTV;3:activity+Musik

Hier werden die verfügbaren Channels konfiguriert und das Reading über welches der aktuelle Kanal erkannt wird (Harmony01:activity)
UND
Die Kommandos um diese Channels zu starten (z.B. "activity Fernsehen")

TelevisionSpeaker#Mute=mute
Active:default=ACTIVE
VolumeSelector:command,cmds=INCREMENT:VolumeUp;DECREMENT:VolumeDown
VolumeControlType:default=RELATIVE_WITH_CURRENT
linkedTo=Television

Settings damit die Lautstärkeregelung über die Hardwarebuttons des iOS Geräts funktioniert.

InputSource(1)#Identifier:default=1
ConfiguredName:default=TV
IsConfigured:default=CONFIGURED
InputSourceType:default=HDMI
CurrentVisibilityState:default=SHOWN
linkedTo=Television
InputSource(2)#Identifier:default=2
ConfiguredName:default=APPLE+TV
IsConfigured:default=CONFIGURED
InputSourceType:default=HDMI
CurrentVisibilityState:default=SHOWN
linkedTo=Television
InputSource(3)#Identifier:default=3
ConfiguredName:default=MUSIK
IsConfigured:default=CONFIGURED
InputSourceType:default=HDMI
CurrentVisibilityState:default=SHOWN
linkedTo=Television

Konfigurations-Blöcke für die einzelnen Kanäle.
Hier ist an sich nur der Name entsprechend den schon oben konfigurierten Kanälen anzupassen.

Hoffe das hilft ein wenig.
Sonst einfach nochmal fragen.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

speex

Hallo zusammen,

erstmal Danke an Thyraz ich habe dein "Homebridge Harmony Mapping Setup" auch schon ein Weilchen am laufen und bin sehr zufrieden damit.

Jüngst macht bei mir aber Homebridge selbst massiv Schwierigkeiten besonders nach dem ios14 Update plagt mich das keine Rückmeldung Problem innerhalb der Home App auf Apple Geräten.

Über die Homebridge-Config-UI lassen sich die Geräte schalten nur nicht über Apple geräte bzw. die Home App.
Ist wohl auch bekannt bei github: https://github.com/homebridge/homebridge/issues/2681

Ein Tipp von mir ich hatte Thyraz Setup am laufen und bin immer in die falsche Apple TV Remote App gegangen wo man nicht auswählen kann welche Fernbedienung man nun haben möchte, das habe ich zufällig irgendwo in einem Video entdeckt.