NEWS
Bayrol Webportal
-
forums test für Problem mit Backslash:
-
ohne Codeblock
Programmzeile
const regex = /var clients = [(\d+)];/gm;
EinfachBackslash
Doppelbackslash
\
Dreifach
\\ -
mit Codeblock
problem mach hier die erste Codezeile. vgl mit Screenshot
const regex = /var clients = [(\d+)];/gm; EinfachBackslash \ Doppelbackslash \\ Dreifach \\\
Screenshot des Edit-Bereichs
Fehlermeldung hier
https://forum.iobroker.net/topic/73975/problem-mit-backslash-im-codeblock -
-
Genial !!, ich habe heute meine neue Bayrol Cl+pH installiert und sofort eine funktionierende Lösung . Super Klasse
Jetzt kommen bei mir beim Abrufen aber immer noch Warnings im Log.. Die Werte kommen aber einwandfrei... ?
14:52:35.554 warn javascript.1 (4100763) at writeData (script.js.Pool.Bayrol:103:5) 14:52:35.554 warn javascript.1 (4100763) at getData (script.js.Pool.Bayrol:98:3) 14:52:35.554 warn javascript.1 (4100763) at main (script.js.Pool.Bayrol:18:14) 14:52:35.555 warn javascript.1 (4100763) at writeData (script.js.Pool.Bayrol:104:5) 14:52:35.555 warn javascript.1 (4100763) at getData (script.js.Pool.Bayrol:98:3) 14:52:35.555 warn javascript.1 (4100763) at main (script.js.Pool.Bayrol:18:14) 14:52:35.556 warn javascript.1 (4100763) at writeData (script.js.Pool.Bayrol:105:5) 14:52:35.556 warn javascript.1 (4100763) at getData (script.js.Pool.Bayrol:98:3) 14:52:35.556 warn javascript.1 (4100763) at main (script.js.Pool.Bayrol:18:14)
Was könnte das wohl noch sein ?
Edit: Ok, gefunden .. man sollte sich zuerst die weiteren Logs ansehen
You are assigning a number to the state "0_userdata.0.BayrolSaltRlxPro.pH" which expects a string.
Ich hatte die States als String angelegt..
-
danke für den hinweis.
ich habe mal den folgenden post entsprechend aktualisiert und auf das richtige skript verwiesenhttps://forum.iobroker.net/topic/66973/bayrol-webportal/17?_=1715102271325
-
@oliverio In dem Post steht aber immernoch: Die DP müssen vom Typ String sein, (was ja falsch ist..) Die müssen "Number" sein!
-
@mameier1234
ha, zu schnell gelesen. korrigiert -
@oliverio Ich habe noch ein bisschen umgebaut...
das hier auskommentieren
//setTimeout(getData.bind(this),requesttime,sessionid,cid);
dafür am Schluss dann die Werte nur innerhalb 9-18 Uhr in die Datenpunkte schreiben.
function checkAndExecuteFunction() { const now = new Date(); const startHour = 9; const endHour = 18; // Erstelle eine Kopie des aktuellen Datums und setze die Stunde auf die Start- und Endzeit const startTime = new Date(now.getFullYear(), now.getMonth(), now.getDate(), startHour, 0, 0); const endTime = new Date(now.getFullYear(), now.getMonth(), now.getDate(), endHour, 0, 0); // Prüfe, ob die aktuelle Zeit innerhalb des Zeitfensters liegt if (now >= startTime && now < endTime) { //console.log("Abfrage wird ausgeführt"); main(); } else { //console.log("Es ist nicht die Zeit für die Funktion, sie wird nicht ausgeführt."); } } // Interval aufsetzen, um die Funktion alle 60 Sekunden zu prüfen setInterval(checkAndExecuteFunction, 60000);
Damit bekomme ich die unschärfen ausserhalb meiner Filterzeiten weg. Sonst steht ja das Wasser in der Messzelle und kühlt auf die Umgebung ab... und die riesen Redox-Sprünge im stehenden Wasser habe ich so auch nicht in meinen Graphen..
Vieleicht hilft es ja jemandem.
-
Hat jemand von euch mit dem Skript auch das Problem, dass manchmal keine neuen Werte kommen ?
Das Skript läuft ohne Fehlermeldung aber es kommen dann irgendwann keine neuen Werte mehr.
Erst ein Neustart des Skriptes hilft. Eine Fehlermeldung im Log erscheint nicht. -
@qwertz Ja.. hatte ich auch schon... Seit meiner Änderung allerdings nun schon seit einer Woche kein Problem mehr.
-
OK. Möglicherweise gibt es ein TimeOut vom Server, wenn man 24h am Stück immer wieder die Daten pullt ? Ich werde das Skript mal stoppen solange die Filterpumpe nicht läuft.
-
@qwertz deswegen habe ich ja die Änderungen im Script.. einstellbar, wann es nicht pollen soll.. und vor allem nicht falsche Werte in die DB schreibt...
-
@OliverIO
Ich versuche gerade das Script zum laufen zu bringen, allerdings habe ich die gleichen Fehler wie oben beschrieben.
Meiner Meinung nach habe ich alles so wie oben von dir beschrieben gemacht.Was könnte das Problem sein?
javascript.0 22:32:11.471 error script.js.common.Pool.Byrol: TypeError: Cannot read properties of null (reading 'length') javascript.0 22:32:11.471 error at getCID (script.js.common.Pool.Byrol:129:16) javascript.0 22:32:11.471 error at login (script.js.common.Pool.Byrol:74:10) javascript.0 22:32:11.471 error at main (script.js.common.Pool.Byrol:19:14)
-
hast du das skript, das als textdatei dem folgenden post anhängt, verwendet?
https://forum.iobroker.net/post/1147632im skript ist ein regex enthalten, das das forum nicht richtig anzeigen mag.
keine ahnung ob man das hier auch mal fixen mag. -
@oliverio ja das habe ich genommen.
-
@nwh dein fehler ist genau der, der gepostet wurde mit der skriptversion und den defekten regex
wenn du magst, kannst du mir deine zugangskennung per PN senden, dann lass ich das hier mal laufen und kann rein debuggen.
habe gerade mal die letzte version laufen lassen mit einer anderen zugangskennung.
das läuft einwandfrei -
seltsam.
habe jetzt die textdatei selbst mal getestet und da sind fehler drin.
hier jetzt eine version die klappen müsste -
@oliverio leider nein.
So sehen die besagten Zeilen aus.
-
neuer versuch
bayrol.txt -
@oliverio hat wieder nicht funktioniert.
Wenn ich die Zeilen so abändere
function extractValues(text){ const regexPH = /[pH]<\/span><h1>([\d\.]+)<\/h1>/gm; const regexMV = /[mV]<\/span><h1>([\d\.]+)<\/h1>/gm; const regexCC = /[°C]<\/span><h1>([\d\.]+)<\/h1>/gm;
dann kommt nurmehr der Fehler.
javascript.0 23:21:12.867 error script.js.common.Pool.Byrol compile failed: at script.js.common.Pool.Byrol:109
-
@nwh
du sollst nix abändern. du sollst nur deine login daten im skript eintragenansonsten komm ich nicht mehr weiter.
mit den anderen login-daten funktioniert esich selbst hab bayrol nicht
-
@oliverio
So ich depp, habe den falschen login eingegeben.jetzt ist er Richtig, allerdings kommt jetzt das.
Er meckert jetzt mit "reading1"javascript.0 23:45:06.327 error script.js.common.Pool.Byrol: TypeError: Cannot read properties of null (reading '1') javascript.0 23:45:06.327 error at extractValues (script.js.common.Pool.Byrol:119:26) javascript.0 23:45:06.327 error at getData (script.js.common.Pool.Byrol:99:13) javascript.0 23:45:06.327 error at main (script.js.common.Pool.Byrol:19:14)
Das kommt zuvor noch
javascript.0 23:50:10.271 info Stopping script script.js.common.Pool.Byrol javascript.0 23:52:46.677 info Start JavaScript script.js.common.Pool.Byrol (Javascript/js) javascript.0 23:52:46.687 info script.js.common.Pool.Byrol: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 23:52:47.669 info script.js.common.Pool.Byrol: <div><div class="gapp_"></div><div class="tab_data_link" onclick="document.location.href='device.php?c=26081'"><div class="gstat_warning"></div><div class="tab_box stat_warning"><span>pH [pH]</span><h1>7.20</h1></div><div class="tab_box stat_warning"><span>mV [mV]</span><h1>860</h1></div><div class="tab_box stat_warning"><span>T1 [°C]</span><h1>27.1</h1></div><div class="tab_box "></div><div class="tab_info"><span>DGGB18461B23</span></br><span>PoolManager Chlor (Cl)</span></br><span>v221216-M1 (7.8.3)</span></br><span><a href="device.php?c=26081">Direct access</a></div></div></div>
aber morgen weiter...