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:
-
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:
.
-
Another possibility is using a syslog server.
-
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>
- 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



