• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

js als Tabelle darstellen

chris47803

New member
Im folgenden Script möchte ich die Ausgabe von id:, icon: und suffix: gerne als Tabelle ausgeben.

Code:
  {
    module: 'MMM-ioBroker',
    position: 'top_right',
    header: "     ",   
    config: {
      host: '192.168.2.61',
      port: '8088',
      https: false,
      template: 'MMM-ioBroker.njk',
      devices: [
          { name: 'Küche',
            deviceStates: [
                              { id: '0_userdata.0.Heizung.Kueche',              icon: 'wi wi-thermometer',        suffix: ' °C'},
                              { id: 'fritzdect.0.DECT_099950214189.battery',    icon: 'fa fa-battery-half',       suffix: '%'}                             

                          ]
          },
          
          { name: 'Bad',
            deviceStates: [
                              { id: '0_userdata.0.Heizung.Bad',                 icon: 'wi wi-thermometer',        suffix: ' °C' },
                              { id: 'fritzdect.0.DECT_099950216627.battery',    icon: 'fa fa-battery-half',       suffix: '%'}                               
                            
                          ]
          },
          
          { name: 'Serverraum',
            deviceStates: [
                              { id: '0_userdata.0.Heizung.Serverraum',          icon: 'wi wi-thermometer',        suffix: ' °C' },
                              { id: 'fritzdect.0.DECT_099950273573.battery',    icon: 'fa fa-battery-half',       suffix: '%'}                               
                              
                          ]
          },
          
          { name: 'Schlafzimmer',
            deviceStates: [
                              { id: '0_userdata.0.Heizung.Schlafzimmer',        icon: 'wi wi-thermometer',        suffix: ' °C'},
                              { id: 'fritzdect.0.DECT_099950279527.battery',    icon: 'fa fa-battery-half',       suffix: '%'}                               
                              
                          ]
          },
          
         { name: 'Büro',
            deviceStates: [
                              { id: '0_userdata.0.Heizung.Buero',               icon: 'wi wi-thermometer',        suffix: ' °C' },
                              { id: 'fritzdect.0.DECT_139790667712.battery',    icon: 'fa fa-battery-half',       suffix: '%'}                               
                              
                          ]
          },
          
         { name: 'Wohnzimmer',
            deviceStates: [
                              { id: '0_userdata.0.Heizung.Wohnzimmer',          icon: 'wi wi-thermometer',        suffix: ' °C' },
                              { id: 'fritzdect.0.DECT_099950308576.battery',    icon: 'fa fa-battery-half',       suffix: '%'}                               
                              
                          ]
          },
          
                   { name: 'Aussentemperatur',
            deviceStates: [
                              { id: 'tuya.0.bfa3627a6b9002903fte1v.1',          icon: 'wi wi-thermometer'},
                              { id: 'tuya.0.bfa3627a6b9002903fte1v.2',          icon: 'wi wi-humidity',        suffix: '%' }                                                             
                          ]
          },
          
                   { name: 'AirRobo',
            deviceStates: [
                              { id: 'tuya.0.bfdcea245e055d2c20sj1i.106',        icon: 'fa fa-battery-half',    suffix: '%' }                                                           
                          ]
          },
          
                   { name: 'Briefkasten',
            deviceStates: [
                              { id: 'tuya.0.bf538c2e67ace7ad3eky7f.4',          icon: 'fa fa-battery-half',    suffix: '%' }                                                           
                          ]
          },     
          
                             { name: 'Türspion',
            deviceStates: [
                              { id: 'alias.0.Tuerspion.145',          icon: 'fa fa-battery-half',    suffix: '%' }                                                           
                          ]
          }                 
          
        ]
    }
  },
 
Hi,
probier mal so:

Code:
function createTable(devices) {
  const table = document.createElement('table');
  table.border = '1';

  // Create table header
  const header = table.createTHead();
  const headerRow = header.insertRow();
  const headers = ['ID', 'Icon', 'Suffix'];
  headers.forEach(headerText => {
    const cell = document.createElement('th');
    cell.textContent = headerText;
    headerRow.appendChild(cell);
  });

  // Create table body
  const tbody = table.createTBody();
  devices.forEach(device => {
    device.deviceStates.forEach(state => {
      const row = tbody.insertRow();
      Object.values(state).forEach(text => {
        const cell = row.insertCell();
        cell.innerHTML = text;
      });
    });
  });

  return table;
}

document.body.appendChild(createTable(devices));
 
Code:
const devices = [
  { name: 'Küche',
    deviceStates: [
      { id: '0_userdata.0.Heizung.Kueche', icon: 'wi wi-thermometer', suffix: ' °C'},
      { id: 'fritzdect.0.DECT_099950214189.battery', icon: 'fa fa-battery-half', suffix: '%'}                             
    ]
  },
  ...
];

function createTable(devices) {
...
}
 
Ich hab´s mir schon gedacht, dass es um einen MagicMirror geht. Das ist zu speziell für ein allg. JS-Forum, da würde ich dir raten, ein MM-Forum zu suchen und dort nachzufragen.
Gerne kannst Du das Ergebnis dann hier posten oder verlinken.
 
Zurück
Oben