iobroker-community-adapters / ioBroker.km200

ioBroker Buderus KM200 adapter *DEPRECATED*
Other
24 stars 16 forks source link

Fehler bei JSON Werten #80

Closed Bwestphal1 closed 1 year ago

Bwestphal1 commented 2 years ago

Ich wollte von meinem KM200 Modul den Wert: km200.0.system.info auslesen, hier der Inhalt: [{Tok: '8',Id: '123',Ver: '06.08',No: '383733373930333434313032313735323037323700FFFFFFFFFFFF'},{Tok: '16',Id: '158',Ver: 'NF18.03',No: '323533303831393236333834323737333831313233313000FFFFFF'},{Tok: '48',Id: '163',Ver: 'NF27.05',No: '383135303831373030303133383737333831313031303300FFFFFF'},{ Tok: '9', Id: '125', Ver: 'NF03.03', No: '' }]

Der String entspricht leider nicht den JSON-Format, da dir Feldname nicht in Doppelten Hochkomma " und die Feldwerte nur in einfachen Hochkomma ' gesetzt sind. Ich weis leider nicht ob die Daten so aus dem KM200-Modul geliefert werden oder ob sie Adapter erzeugt werden. Zumindest währe es sinnvoll die JSON_Ausgaben anzupassen, da damit die Verarbeitung im IOBroker leichter währe.

Der JSON-String sollte so aussehen:** [{"Tok": "8","Id": "123","Ver": "06.08","No": "383733373930333434313032313735323037323700FFFFFFFFFFFF"},{"Tok": "16","Id": "158","Ver": "NF18.03","No": "323533303831393236333834323737333831313233313000FFFFFF"},{"Tok": "48","Id": "163","Ver": "NF27.05","No": "383135303831373030303133383737333831313031303300FFFFFF"},{ "Tok": "9", "Id": "125", "Ver": "NF03.03", "No": "" }]

Der gleiche Fehler tritt auch z.B. im Wert:km200.0.notifications auf.

crusader85 commented 1 year ago

Das Problem habe ich auch. Ich würde gerne die Notifications auslesen.

neopholus commented 1 year ago

So kann man die Notifications auslesen (Typescript Code)

function getHeaterError() {
    let json = JSON.parse(JSON.stringify(getState("km200.0.notifications").val));
    let anz:number = json.length;
    let errorString = '';

    for (let i = 0; i < anz; i++) {
        errorString +=  " Zeitstempel: " + json[i].t + 
                        " / Fehlercode: " + json[i].dcd + "/" + json[i].ccd + 
                        " / Kategorie: " + json[i].cat + 
                        " / Aktiv: " + (json[i].act == "A"?"ja":"nein") + 
                        "\n"; 
    }

    setState('0_userdata.0.Heating.Status.meldungen'/*Text der Meldungen der Heizungsanlage*/, errorString, true);
    setState('0_userdata.0.Heating.Status.meldungenAnzahl'/*Anzahl der Meldungen der Heizungsanlage*/, anz, true);
}
on({id:['km200.0.notifications'], logic: "and", change: "ne"}, function (obj) {
    getHeaterError();
});
mcm1957 commented 1 year ago

Please add all related versions adapter version: admin version: js-controller version: node version: operating system and version:

Bwestphal1 commented 1 year ago

adapter version: 2.0.3 admin version: 6.3.5 js-controller version: 4.0.21 node version: v14.21.3 operating system and version: debian 10.9 on raspberry

mcm1957 commented 1 year ago

Adapter km200 is deprected. So this isse will be closed.

See #122