NEWS
Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen
-
Hallo zusammen, ich habe leider immer mal wieder das Problem, dass mein Warema Access Point die Verbindungen zu meinen Sonnenschutzanlagen "verliert" so dass ich diese weder mit der Warema App noch mit IoBroker ansteuern kann. Dann hilft leider nur einmal stromlos schalten und neustarten. Dannach ist dann alles wieder OK. Ich habe jetzt eine Schaltsteckdose davor geschaltet um dann in diesen Fällen das Stromlosschalten und den Neutsart automatisch durchlaufen zu lassen. Jetzt bin ich auf der Suche nach einem Trigger dafür.
Wenn dieser "verlorene" Umstand vorliegt, und ich dann über IobBroker einen Status setze, wird im Log folgendes erzeugt:
wmswebcontrol.0 2023-05-29 20:06:31.824 error Get device status failed wmswebcontrol.0 2023-05-29 20:06:31.823 error "Internal Server error" wmswebcontrol.0 2023-05-29 20:06:31.822 error Error: Request failed with status code 500 wmswebcontrol.0 2023-05-29 20:06:31.820 error https://devicecloudservice.prod.devicecloud.warema.de/api/v1.0/communication/wcp/01791489/postMessage/
Kann man Logeinträge auslesen um dann damit im Blockly dann einen Trigger zu erhalten?
Besten Dank.
Markus -
@blacktigga sagte: Kann man Logeinträge auslesen um dann damit im Blockly dann einen Trigger zu erhalten?
Es gibt die Funktion onLog(). Ist eher nichts für Blockly.
-
Welche Datenpunkte liefert den dein Adapter? Eventuell so was wie Connect?
-
Leider lieferen die interessanten Datenpunkte in den Momenten immer ein "true" und können daher nicht als Trigger genutzt werden.
-
@blacktigga und wie verhält sich der rot markierte DP ?
-
@djmarc75
Das kann ich jetzt nicht mit Gewissheit sagen. Den DP muss ich mir dann nochmal genauer anschauen.
Melde mich dann nochmal zurück. -
@djmarc75
Der DP liefert leider dann auch nur ein true. Kann ich also auch nichts mit triggern. -
@blacktigga
spontan fällt mir da nix Neues ein. Wende dich doch mal an den Entwickler, vielleicht kann er weiterhelfen. -
@blacktigga sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:
Der DP liefert leider dann auch nur ein true.
Ich wage das mal zu bezweifeln Da dieser DP definitiv auf "false" geht wenn der zugehörige Adapter OFF ist.
Kannst doch mal einfach testen wenn Du den Adapter (die Instanz) deaktivierst
-
@djmarc75
damit bekommt er ja nicht mit, dass die Warema-Kiste die Verbindung verloren hat. Das ist doch hier das Problem, oder? -
@tt-tom
ja exakt. Warema Access Point verliert immer mal wieder die Verbindung zu den Aktoren und das bekomme ich derzeitig nur über die o.g. Log Einträge mit wenn ich Werte in DP schreiben möchte. -
@tt-tom sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:
damit bekommt er ja nicht mit, dass die Warema-Kiste die Verbindung verloren hat. Das ist doch hier das Problem, oder?
Dann bin ich da lieber raus und lass die Elite ran
-
@tt-tom sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:
@blacktigga
spontan fällt mir da nix Neues ein. Wende dich doch mal an den Entwickler, vielleicht kann er weiterhelfen.@tombox Kennst Du ähnliche Auffälligkeiten, dass es in Verbindung mit Nutzung des IoBroker Adapters zu Verbindungsverlsuten zwischen Warema Access Point und Warema Aktoren kommt?
Die Access Box wurde bei mir schon mal getauscht. Der Fehler ist geblieben, so dass Warema das Problem jetzt im Moment eher nicht bei sich sieht, sondern in Verbindung mit der Smarthome Anbindung.
Danke Dir für eine kurze Einschätzung/Rückinfo.
-
In der Warema App sind dann in den beschriebenen Momenten sämtliche Schalt-Icons ausgegraut und entsprechend nicht bedienbar:
-
@blacktigga und wir sind jetzt noch beim eigentlichen "Problem" / "Thread" ? weil ...
@blacktigga sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:
n der Warema App sind dann in den beschriebenen Momenten sämtliche Schalt-Icons ausgegraut und entsprechend nicht bedienbar:
Wenn das eigentliche Thema erledigt ist dann bitte den Thread auf [gelöst] setzen und für Sonstiges einen neuen Beitrag aufmachen.
-
@djmarc75
Ja und Nein... ich wäre natürlich an der eigentlichen Ursache interessiert ansttatt mir da so eine Krücke mit Schaltsteckdose und hartem Neustart basteln zu müssen.Aber dafür benötige ich immer noch einen Trigger, und derzeitig kann ich nur über die o.g. Logeinträge erkennen, dass ein Neustart erfoderlich ist. Bis jetzt noch keine Lösung für Trigger aus Logeintrag für Umsetzung in Blockly.
-
Probiere mal das Script, es sollte bei einer Error Meldung von der Instanz einen Datenpunkt auf true setzen, den könntest du triggern.
const instanzname = 'javascript'; const dp_userdata = '0_userdata.0.example_boolean'; const Debug = true; onLog('error', data => { if (Debug) console.log('Fehler von: ' + data.from + ' mit Meldung: ' + data.message + ' ' + data.severity + ' ' + data.ts); let loginstanzname = data.from.split('.', 1); if (Debug) console.log(loginstanzname[0]) if (loginstanzname[0] == instanzname) { let logTimeout = null; if (logTimeout) { clearTimeout(logTimeout) }; setState(dp_userdata, true, true); if (Debug) console.log('Datenpunkt ' + dp_userdata + ' gesetzt') logTimeout = setTimeout(async function () { setState(dp_userdata, false, true); if (Debug) console.log('Datenpunkt ' + dp_userdata + ' zurückgesetzt') }, 5000); } });
lege dir unter 0_userdata ein Datenpunkt vom Typ Boolean an. Den Pfad dann im Script eintragen und den Instanznamen
EDIT: Script nochmal angepasst, nach 5s geht der Datenpunkt wieder auf false. Wenn du die Log-Meldungen nicht mehr brauchst, setzte Debug auf false.
-
Danke Dir für deine Hilfe.
Hab es jetzt so gemacht:const instanzname = wmswebcontrol.0; const dp_userdata = 0_userdata.0.var_Instantz_WMS_Trigger_aus_Log; const Debug = true; onLog('error', data => { if (Debug) console.log('Fehler von: ' + data.from + ' mit Meldung: ' + data.message + ' ' + data.severity + ' ' + data.ts); let loginstanzname = data.from.split('.', 1); if (Debug) console.log(loginstanzname[0]) if (loginstanzname[0] == instanzname) { let logTimeout = null; if (logTimeout) { clearTimeout(logTimeout) }; setState(dp_userdata, true, true); if (Debug) console.log('Datenpunkt ' + dp_userdata + ' gesetzt') logTimeout = setTimeout(async function () { setState(dp_userdata, false, true); if (Debug) console.log('Datenpunkt ' + dp_userdata + ' zurückgesetzt') }, 5000); } });
Erhalte aber eine Fehlermeldung beim Start des Skripts:
-
@BlackTigga
ja ist klar, du musst auch Springs übergeben, alsoconst instanzname = 'wmswebcontrol'; const dp_userdata = '0_userdata.0.var_Instantz_WMS_Trigger_aus_Log';
die "0" bleibt weg bei der Instanz
-
wenn du es testen willst, bau dir ein blockly und nehme als Instanzname
const instanzname = 'javascript';
bei jedem Neustart des Blockly sollte das Script auslösen