[APP][Pro] Simple (Sys) LOG - Use this app for Simple (Sys) Logging

Hmmm, this might be the case on your end, but it’s not in general; I just downloaded the .csv w/o issues using the Android app:

@Steve_Nye

  1. In case you want do save the logs on external storage, you can use the FTP Client app for example.
    First add a FTP enabled server / NAS to Homey per FTP Client app


    .
    EDIT: use the “get log as CSV (Base64)” card instead, when you get a bunch of odd characters as file contents:

    .

  2. Another possibility is using a syslog server.

  3. When you want to peek the log every now and then, you can save and open this html file (change the IP address to your Homey’s IP

<!-- Save as html file and open it to view the logs -->

<!-- NOTE: at line 48: Replace IP address with IP address of your Homey -->

<!DOCTYPE html>
<html>
<head>
    <!-- (optional) Replace title with your own -->
	<title>Homey1 log</title>
    <style>
        table, th, td
        {
            border: solid 1px #ddd;
            border-collapse: collapse;
            padding: 2px 3px;
            font-family: verdana;
            color: #fff; <!-- change font color-->
            <!-- font-size: 30px; -->
            text-align: left;
         }
            tr:nth-child(even) {
            background-color: #393939; <!-- change background color of even rows -->
            }
            tr:nth-child(odd) {
            background-color: #101010; <!-- change background color of odd rows -->
            }
            tr:hover {
            background-color: #874444; <!-- change background color of mouse hovering -->
            }
        th {
            font-weight: bold;
            font-family: verdana;
            text-align: left;
        }
    </style>
</head>
<body>

	<p style="font-size:30px;" id="showData"></p>

</body>

<script>

 // the json data //

// !! Replace IP address with your Homey's IP address !!

const url = "http://192.168.2.7/api/app/nl.nielsdeklerk.log/"; 

// END of Replace IP address

async function FetchData() {
  const response = await fetch(url);
  const data = await response.text();
  const string = "["+data+"]";
  const myJSON = JSON.parse(string);
  const JSONtable = myJSON[0].logs;

  response.ok;     // => false
  response.status; // => 404

  return JSONtable;
}

FetchData().then(JSONtable => {
  JSONtable; // => 'Page not found'

    // Extract value from table header.

    let col = [];
    for (let i = 0; i < JSONtable.length; i++) {
      for (let key in JSONtable[i]) {
        if (col.indexOf(key) === -1) {
          col.push(key);
        }
      }
    }

    // Create table.
    const table = document.createElement("table");

    // Create table header row using the extracted headers above.
    let tr = table.insertRow(-1);                   // table row.

    for (let i = 0; i < col.length; i++) {
      let th = document.createElement("th");      // table header.
      th.innerHTML = col[i];
      tr.appendChild(th);
    }

    // add json data to the table as rows.
    for (let i = 0; i < JSONtable.length; i++) {

      tr = table.insertRow(-1);

      for (let j = 0; j < col.length; j++) {
        let tabCell = tr.insertCell(-1);
        tabCell.innerHTML = JSONtable[i][col[j]];
      }
    }

    // Now, add the newly created table with json data, to a container.
    const divShowData = document.getElementById('showData');
    divShowData.innerHTML = "";
    divShowData.appendChild(table);

	});


</script>
</html>
  1. This can be taken further, by adding it as Dashboard widget:
    [APP][Pro] Simple (Sys) LOG - Use this app for Simple (Sys) Logging - #449 by Peter_Kawa