Nach dem Scriptstart wird ein Connect zum Heos System aufgebaut, connected sich mindestens ein Player, wird in Zeil 301
this.getMusicSources();
aufgerufen, was zum Auslesen der Presets führen sollte. Erhält das Script vom Heos-Player eine Antwort, dann werden die Presets als Objekte im Script ab Zeile 430 erzeugt. Meine Vermutung ist, dass die Antwort des Heos-Players nicht so aussieht, wie im Script erwartet, Bsp ab Zeile 419.
Dieses Laden der Presets kann man auch später, nach Scriptstart, manuell aufrufen: heos.getMusicSources();
Bsp:
// Heos Instanz erzeugen und verbinden
var heos = new Heos( );
heos.connect();
...
heos.getMusicSources();
Noch ein Hinweis. Ich habe meine ioBroker Installation vom Pi3 auf einen Windows10 Rechner umziehen lassen. Da hier der node-ssdp Client wohl anders arbeitet, musste ich im Script beim connect() (ab Zeile 224) die Zeile "this.nodessdp_client.explicitSocketBind = true; " ergänzen:
connect() {
try {
this.log('connecting to HEOS ...');
setState( this.statePath+"connected", false );
const NodeSSDP = require('node-ssdp').Client;
this.nodessdp_client = new NodeSSDP();
this.nodessdp_client.explicitSocketBind = true; // <--- notwendig für Windows10 !
...
}