Ich habe inzwischen ein paar von den neuen Displays ergattert: Die M3 Solum. Die sind so schön schwarz und haben zwei Knöpfe. Mit einem Javascript lese ich den Wert der Buttons vom Websocket Server im AP aus. Das geht auch sehr fix.
Mit Hilfe der iobroker Telegram Gruppe ist dann das hier entstanden:
const WebSocket = require('websocket').w3cwebsocket;
let previousWakeupReason = null; // Vorheriger Wert von wakeupReason
// Funktion zum Behandeln der WebSocket-Verbindung für EPS
function handleEPSWebSocket(deviceIP) {
const ws = new WebSocket(deviceIP);
// ...
ws.onmessage = (event) => {
const data = event.data.toString();
console.log(`Empfangene Daten von EPS (${deviceIP}): ${data}`);
try {
const jsonData = JSON.parse(data);
console.log('JSON-Daten:', jsonData); // Ausgabe der empfangenen Daten für Überprüfung
if (jsonData.tags && jsonData.tags.length > 0) {
const wakeupReason = jsonData.tags[0].wakeupReason;
const mac = jsonData.tags[0].mac;
console.log(`Wakeup Reason erhalten: ${wakeupReason}`);
// Wenn sich der Wert von wakeupReason geändert hat oder previousWakeupReason noch nicht definiert ist
if ((wakeupReason !== previousWakeupReason || previousWakeupReason === null) && (wakeupReason === 4 || wakeupReason === 5)) {
setState('00-ZUHAUSE.0.EPS.Websocket', `${mac}_${wakeupReason}`, true);
console.log(`Wert von Wakeup Reason (${wakeupReason}) und MAC (${mac}) in Datenpunkt geschrieben.`);
previousWakeupReason = wakeupReason; // Aktualisiere den vorherigen Wert von wakeupReason
}
}
} catch (error) {
console.error(`Fehler beim Verarbeiten der empfangenen Daten: ${error}`);
}
};
// ...
}
// Verbindung zum EPS WebSocket-Server herstellen und behandeln
handleEPSWebSocket('ws://192.168.1.70/ws');
Bitte beachtet, das Script ist extrem rudimentär aufgebaut und hat noch nicht die besten Auswertmöglichkeiten. Aktuell zeigt es den Wert (entweder 4 oder 5) an und davor die MAC Adresse vom Tag.
Vielleicht ein Anfang für einen Adapter?
Die Buttons reagieren sofort.