Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. XML Ausgabe parsen - DENON

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    5
    1
    42

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

XML Ausgabe parsen - DENON

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 3 Kommentatoren 1.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    Brati
    schrieb am zuletzt editiert von
    #1

    Hallo,

    mein Denon AVR kann über "IP/goform/formMainZone_MainZoneXmlStatusLite.xml" abgefragt werden und liefert dann z.B.

    This XML file does not appear to have any style information associated with it. The document tree is shown below.
     <power><value>OFF</value></power> 
     <inputfuncselect><value>MPLAY</value></inputfuncselect> 
     <volumedisplay><value>Absolute</value></volumedisplay> 
     <mastervolume><value>-58.0</value></mastervolume> 
     <mute><value>off</value></mute> 
    

    Das sieht ja ganz logisch aus und daraus würde ich z.B. gerne den Power State auslesen, Versuche über:

    request(link, function (error, response, body) {
            log (body);
            log (response);
            var power_state = body.Power;
            log("Power: " + power_state);
    

    liefert leider nur:

    12:11:24.814	[info]	javascript.0 script.js.Wz_Denon_Volume: OFF MPLAY Absolute -58.0 off
    12:11:24.814	[info]	javascript.0 script.js.Wz_Denon_Volume: [object Object]
    12:11:24.814	[info]	javascript.0 script.js.Wz_Denon_Volume: Power: undefined
    

    Wenn ich die Logik dahinter kennen würde, wäre der Rest vermutlich easy :roll: .

    Kann mir jemand helfen.

    Grüße Brati

    CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

    1 Antwort Letzte Antwort
    0
    • Jey CeeJ Online
      Jey CeeJ Online
      Jey Cee
      Developer
      schrieb am zuletzt editiert von
      #2

      Hey Brati,

      das sieht aus wie die XML für upnp. Du kannst schauen ob mit Hilfe des upnp Adapters die von dir gewünschten Datenpunkte gelesen werden.

      Gruß

      Jey cee

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        Brati
        schrieb am zuletzt editiert von
        #3

        @JeyCee

        So, ich habe den Adapter installiert. Der Denon wird gefunden und mit der Lautstärke konnte ich schon spielen. Die Werte passen zwar noch nicht so richtig, aber ich probier mal.

        709_zwischenablage01.jpg

        Grüße

        Brati

        CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

        1 Antwort Letzte Antwort
        0
        • frankjokeF Offline
          frankjokeF Offline
          frankjoke
          schrieb am zuletzt editiert von
          #4

          Ich verwende das nodejs-Module xml2js (https://www.npmjs.com/package/xml2js) um xml in Objekte umzuwandeln …

          Probier es mal.

          Frank,

          NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
          Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            Brati
            schrieb am zuletzt editiert von
            #5

            @fsjoke:

            Ich verwende das nodejs-Module xml2js (https://www.npmjs.com/package/xml2js) um xml in Objekte umzuwandeln …

            Probier es mal. `

            Bevor ich etwas falsch mache, muss ich das einfach über Putty im ioBroker Verzeichnis installieren? npm install xml2js…

            @JeyCee

            Der Upnp Adapter gibt mir noch nicht alle gesuchten Werte zurück. Z.B. ob eingeschaltet oder nicht und wie ich an Zone2 komme, ist mir auch noch schleierhaft.

            Meine Soundbridge gibt auch die Lautstärke in DB Werten, der Denon nur von 1-100, wobei die 8 bei 20-25DB angezeigt wird.

            Grüße

            Brati

            CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

            1 Antwort Letzte Antwort
            0
            • Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              schrieb am zuletzt editiert von
              #6

              @Brati:

              @fsjoke:

              Ich verwende das nodejs-Module xml2js (https://www.npmjs.com/package/xml2js) um xml in Objekte umzuwandeln …

              Probier es mal. `

              Bevor ich etwas falsch mache, muss ich das einfach über Putty im ioBroker Verzeichnis installieren? npm install xml2js… `

              In den Einstellungen vom Javascript Adapter gibt es ein Eingabefeld da trägst du einfach 'xml2js' ein, danach Speichern und Schließen. Anschließend wird das Modul installiert und kann in Scripten verwendet werden.

              @Brati:

              @JeyCee

              Der Upnp Adapter gibt mir noch nicht alle gesuchten Werte zurück. Z.B. ob eingeschaltet oder nicht und wie ich an Zone2 komme, ist mir auch noch schleierhaft.

              Meine Soundbridge gibt auch die Lautstärke in DB Werten, der Denon nur von 1-100, wobei die 8 bei 20-25DB angezeigt wird. `
              Dann stellt der Denon nur Standard Upnp Datenpunkte bereit und es gibt noch eine Denon Spezifische Schnittstelle die nicht vom Upnp Adapter gelesen wird.

              Bei upnp wird die Lautstärke üblicherweise in % angegeben, wobei das aber nicht zwingend sein muss.

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              1 Antwort Letzte Antwort
              0
              • B Offline
                B Offline
                Brati
                schrieb am zuletzt editiert von
                #7

                Mahlzeit,

                keine Ahnung ob das der eleganteste Weg ist, aber über den Weg JSON Objekt - bearbeiten - Array einlesen komme ich jetzt an die Werte:

                var link        = 'http://IPdesAVR/goform/formMainZone_MainZoneXmlStatusLite.xml';
                var request = require('request');
                var parseString = require('xml2js').parseString;
                
                function datenlesen() {
                
                    request(link, function (error, response, body) {
                
                            var xml, result;
                
                                parseString(body, function (err, result) {
                                        log("XML Objekt: " + result);
                                        xml = JSON.stringify(result);
                                        log("XML Objekt: " + xml);
                                        xml=replaceAll(xml,'[','');
                                        xml=replaceAll(xml,']','');
                                        xml=JSON.parse(xml); 
                                        log ("Power:  " + xml.item.Power.value);
                                        log ("Input:  " + xml.item.InputFuncSelect.value);
                                        log ("Volume: " + xml.item.MasterVolume.value);
                                        log ("Mute:   " + xml.item.Mute.value);
                
                                    });
                
                    });   // Ende request 
                
                }    
                
                datenlesen();
                
                function replaceAll(string, token, newtoken) {
                    if(token!=newtoken)
                    while(string.indexOf(token) > -1) {
                        string = string.replace(token, newtoken);
                    }
                    return string;
                }
                
                

                Das ergibt:

                13:44:34.573	[info]	javascript.0 script.js.##_Denon: XML Objekt: {"item":{"Power":[{"value":["OFF"]}],"InputFuncSelect":[{"value":["Favorites"]}],"VolumeDisplay":[{"value":["Absolute"]}],"MasterVolume":[{"value":["-60.0"]}],"Mute":[{"value":["off"]}]}}
                13:44:34.573	[info]	javascript.0 script.js.##_Denon: Power: OFF
                13:44:34.573	[info]	javascript.0 script.js.##_Denon: Input: Favorites
                13:44:34.573	[info]	javascript.0 script.js.##_Denon: Volume: -60.0
                13:44:34.573	[info]	javascript.0 script.js.##_Denon: Mute: off
                

                Und ich kann es weiter verarbeiten…

                Danke.

                Grüße

                Brati

                CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                477

                Online

                32.5k

                Benutzer

                81.7k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe