NEWS
[Vorlage] Denon HEOS Script
-
@withstu oder Jemand anderes ...
ich benötige mal Hilfe:
Hab das Skript usw. alles installiert, funktioniert soweit auch super.
Jetzt möchte ich aber die Favoriten per Button aufrufen (So wie im ersten Post oben). Hab soweit alles erstellt, aber erhalte eine Fehlermeldung im Skript, jedes mal wenn ich einen Favoriten in der Vis per klick aufrufe.. Leider bin ich eher der Copy/Paste Mensch und hab da nicht wirklich Ahnung von.Vielleicht kannst Du mir anhand der Bilder helfen.
Vielen Dank
-
@Seadon Sieht noch nach der ersten Version des Scripts aus. Eventuell bist du nicht im Konto eingeloggt? Die Fehlermeldung sagt mir spontan nichts. Du kannst es ja mal mit dem Adapter versuchen: https://github.com/withstu/ioBroker.heos Der Adapter wurde leider noch nicht ins offizielle Repository aufgenommen, da noch ein Review fehlt.
-
Der stable sayit Adapter unterstützt jetzt auch HEOS. Zudem sind in der Version 1.6.0 noch Source Logos hinzugekommen und ich habe den Spotify Ad-Blocker flexibilisiert. Während ein Regex auf die Songinformationen matcht, wird die Musik automatisch gemuted bzw. unmuted.
-
Der heos Adapter ist jetzt im latest Repository verfügbar. Den PR zur Aufnahme der Version 1.6.1 in das stable Repository habe ich gestellt.
-
@withstu sagte in [Vorlage] Denon HEOS Script:
Der stable sayit Adapter unterstützt jetzt auch HEOS.
Das würde ich gerne nutzen. Ich habe die Version des Text2Speak 1.12.2 installiert, weiß aber nicht, wie die Funktion (z. B. in Blockly) integriert wird. Eine Anleitung dazu finde ich beim Adapter nicht.
-
Der Heos Adapter ist nun im stable Repo in der Version 1.6.1
@Meister-Mopper Das funktioniert ähnlich zu dem SONOS Adapter:
- SayIt Adapter in der Version > 1.12.0 installieren
- SayIt Adapter Instanz für HEOS konfigurieren
- In Blockly Sendto -> Aussprechen auswählen -> Meldung hinzufügen -> Script ausführen
-
@withstu sagte in [Vorlage] Denon HEOS Script:
SayIt Adapter Instanz für HEOS konfigurieren
Danke, das hat mir gefehlt
-
Ein Frage, wie kann ich mit dem Heos Adapter meine Favoriten auf eine Button legen? So das wenn ich auf einen Button klicke dieser abgespielt wird.
-
@NWH Da gibt es mehrere Varianten:
- Per command: Den command state eines players mit folgendem Text füllen "play_preset&preset=1". Die Nummer ist der entsprechende Favorit. (oder um es auf allen Playern abzuspielen den State heos.0.command mit leader/play_preset&preset=1 füllen).
- Per State: Zunächst einmal die aktuellen Favoriten abrufen, indem folgender State auf true gesetzt wird: heos.0.sources.1028.browse. Anschließend werden die Favoriten unter heos.0.sources.1028 aufgelistet. Diese enthalten jeweils auch einen play state. In Vis lässt sich ein jqui - Icon State Button wie folgt konfigurieren:
-
@withstu said in [Vorlage] Denon HEOS Script:
"play_preset&preset=1"
Sorry ich finde den unter dem Ordner 1028 keinen Play Button.
Schon gefunden, habe das überlesen das man 1x die Favoriten abrufen muss. Dann kann man sie gleich auswählen. Sorry
-
Hat sich hier schonmal jemand mit der SOAP API von HEOS beschäftigt? Eventuell könnte man den Funktionsumfang des Adapters so noch um Seek, Zonen, Updates etc. erweitern. Ich hab dazu gerade auf GitHub ein interessantes Projekt gefunden: https://github.com/mkarasoff/shoe
RootXML: http://<Player IP>:60006/upnp/desc/aios_device/aios_device.xml
-
Ich habe am Wochenende dem Adapter eine UPNP Schnittstelle spendiert. Dadurch ist es nun möglich die Bitrate, Sample Rate, Audio Format anzuzeigen und Seek zu unterstützen. Folgende Aktionen unterstützt die API meines Receivers. Ihr könnt ja kommentieren, welche Funktionen für euch noch interessant für den Adapter wären:
AVTransport
- GetCurrentState
- GetCurrentTransportActions
- GetDeviceCapabilities
- GetMediaInfo
- GetMediaInfo_Ext
- GetPositionInfo
- GetTransportInfo
- GetTransportSettings
- Next
- Pause
- Play
- Previous
- Seek
- SetAVTransportURI
- SetNextAVTransportURI
- SetPlayMode
- Stop
- X_SetShuffle
ConnectionManager
- ConnectionComplete
- GetCurrentConnectionIDs
- GetCurrentConnectionInfo
- GetCurrentState
- GetProtocolInfo
- PrepareForConnection
RenderingControl
- GetCurrentState
- GetMute
- GetVolume
- GetVolumeDB
- ListPresets
- SelectPreset
- SetMute
- SetVolume
- SetVolumeDB
- X_GetBalance
- X_GetBass
- X_GetPreset
- X_GetSubwoofer
- X_GetTreble
- X_SetBalance
- X_SetBass
- X_SetMute
- X_SetSubwoofer
- X_SetTreble
- X_SetVolume
ErrorHandler
- ClearError
- DummyAction_ErrorHandler
ZoneControl
- AddMemberToZone
- CreateZone
- DestroyZone
- DummyAction_ZoneControl
- GetCurrentState
- GetMemberStatus
- GetZoneConnectedList
- GetZoneFriendlyName
- GetZoneMemberList
- GetZoneMinimise
- GetZoneMute
- GetZoneStatus
- GetZoneUUID
- GetZoneVolume
- RemoveMemberFromZone
- SetZoneFriendlyName
- SetZoneMinimise
- SetZoneMute
- SetZoneVolume
- TestZoneConnectivity
GroupControl
- AddMembersToGroup
- CreateGroup
- DestroyGroup
- DummyAction_GroupControl
- GetConfigDeviceUUID
- GetCurrentState
- GetDeviceFriendlyName
- GetGroupBalance
- GetGroupBass
- GetGroupFriendlyName
- GetGroupMemberChannel
- GetGroupMemberList
- GetGroupMute
- GetGroupStatus
- GetGroupTreble
- GetGroupUUID
- GetGroupUpdating
- GetGroupVolume
- GetMediaServerUUID
- GetSignalStrength
- RemoveMembersFromGroup
- SetDeviceFriendlyName
- SetGroupBalance
- SetGroupBass
- SetGroupFriendlyName
- SetGroupMemberChannel
- SetGroupMute
- SetGroupTreble
- SetGroupVolume
ACT
- AddNetworkShare
- ApplyChanges
- CancelChanges
- CancelFirmwareUpgrade
- CheckForFirmwareUpgrade
- DeleteNetworkShare
- GetAccessPointList
- GetActiveInterface
- GetAudioConfig
- GetAvrZoneStatus
- GetBluetoothStatus
- GetConfigurationStatus
- GetConfigurationToken
- GetCurrentLanguage
- GetCurrentState
- GetDaylightSaving
- GetDevicePowerState
- GetFriendlyName
- GetHEOSNetID
- GetLowLatencyConfig
- GetNetworkConfiguration
- GetNetworkConfigurationList
- GetNetworkShares
- GetP2PMode
- GetQuickSelectNames
- GetSessionId
- GetSupportedLanguageList
- GetSurroundSpeakerConfig
- GetTimeZone
- GetTranscode
- GetUpdateAction
- GetUpdateLevel
- GetUpgradeProgress
- GetUpgradeStatus
- GetVolumeLimit
- GetWirelessProfile
- GetWirelessState
- GetWirelessStatus
- ReIndexNetworkShare
- ReMountNetworkShare
- RecallQuickSelect
- RegisterUser
- ReleaseConfigurationToken
- SetAudioConfig
- SetAvrZoneStatus
- SetBluetoothAction
- SetConfigurationStatus
- SetCurrentLanguage
- SetDaylightSaving
- SetDevicePowerState
- SetFriendlyName
- SetHEOSNetID
- SetLowLatencyConfig
- SetNetworkConfiguration
- SetQuickSelectNames
- SetSessionId
- SetSurroundSpeakerConfig
- SetTimeZone
- SetTranscode
- SetUpdateAction
- SetUpdateLevel
- SetVolumeLimit
- SetWPSPinSSID
- SetWirelessProfile
- StartInvitation
- StartWifiAp
- StopInvitation
- StopWifiAp
- StoreQuickSelect
- SubmitDiagnostics
- UpdateFirmware
ContentDirectory
- Browse
- GetSearchCapabilities
- GetSortCapabilities
- GetSystemUpdateID
- Search
- X_HideItem
- X_RenameItem
- X_SetItemInputLevel
-
Hallo,
ich habe das Skript bei mir seit ein paar Wochen am laufen. Leider habe ich seit dem neuen Update das Problem, dass mein Blocky Skript nicht mehr in den HEOS command state schreiben kann, bzw. das Kommando nicht mehr ausgeführt wird. Das Skript wird an der Stelle ausgeführt, jedoch passiert nichts. Leider kann ich kein Bild einfügen, darum versuche ich es so:
Steuere Kommando für Heos-Skript mit "browse/play_preset?pid=39318011&preset=3"
Gebe ich das Kommando manuell ein, so wird es problemlos ausgeführt. Ich hab auch das Skript gedebuggt und der befehl wird definitiv so ausgeführt. Im Log ist das auch zu sehen:
2021-05-27 08:21:25.696 info script.js.Heos.Heos: [Heos] command: browse/play_preset?pid=39318011&preset=3 2021-05-27 08:21:25.690 info script.js.Heos.Heos_Steuerung: test Ende 2021-05-27 08:21:25.689 info script.js.Heos.Heos_Steuerung: PLAY ABSOLUTE RELAX: browse/play_preset?pid=39318011&preset=3 2021-05-27 08:21:25.688 info script.js.Heos.Heos_Steuerung: test Anfang
Ich hoffe ich bin hier richtig für diese Frage.
-
@bouster wieso nutzt du nicht den Adapter?
-
Ich habe den Adapter installiert und möchte mit dem Skript den Wert von Command schreiben, damit das Skript den Befehl ausgeführt. Leider wird der Wert aber nicht eingetragen.
-
Das kannst du doch im Adapter im State
heos.0.players.3931801.command
als commando
play_preset&preset=3
übergeben. Klappt aus vis aus dem State oder einem beliebigen JS. Script und Adapter könnte sich beißen.
Grüße
Brati
-
@brati
Ich benutze Vis nicht. Ich nutze das Mediola AIO neo iobroker plugin und möchte darin eine Auswahl des Lautsprechers festlegen, indem ich die ID an 0_userdata.0.HeosSelected_ID übergebe.
In meinem Skript habe ich es wie folgt verwendet:setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));
Das funktioniert aber leider nicht.
-
@bouster die Syntax aufm Handy ist immer schwer, du kannst den o.g. State aus dem Adapter per setState so wie beschrieben setzen. Das sollte ohne das Heos Script funktionieren.
-
@brati tut mir leid, ich verstehe nicht genau was du meinst. Meinst du so:
setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));
-
Ok, ich denke jetzt habe ich verstanden was du gemeint hast. Danke, habs hinbekommen.