@tt-tom
Das klingt nach einem Plan, zeitlich kein Stress!
Die Richtung als Unterschrift ist auch gut.
NEWS
Best posts made by australien
-
RE: SONOFF NSPanel mit Lovelace UI
-
RE: javascript Adapter RAM wächst und CPU last 100%
@meister-mopper musste noch editieren, dass meintest du nehme ich an.
-
RE: Test Adapter enigma2 v1.2.x
@glasfaser
DANKE!!!!das war der Fehler, gebe nun http://username:password@enigma2.0.enigma2.CHANNEL_PICON}
und alles ist ok! -
RE: [gelöst] Werte aus Website auslesen
@homoran
wusste ich nicht, mach ich das nächste mal.
Ich lerne ja gerne was dazu. -
RE: SONOFF NSPanel mit Lovelace UI
@tt-tom
Aber der Gedankt lief in die richtige Richung.
Ich habe nun im Fahrplan_to_NSPanel den alias Pfad so geändert, wurde aus dem Panel Script copiert.// Pfad unter alias.0 Automatisch wird "FahrplanAnzeiger.HaltestelleX.AbfahrtX" durch das Script erzeugt // const DP_Alias: string = 'alias.0'; const DP_Alias: string = 'alias.0.' + DP_NSPanel.substring(13, DP_NSPanel.length);
jetzt passt es. Ja, der Fahrplan ist die Startpage. Und keine Fehlermeldungen mehr!
Danke!!
Latest posts made by australien
-
RE: kann man Verzeichisse in Objekte verschieben?
@paul53 Danke, dachte es mir schon.
-
kann man Verzeichisse in Objekte verschieben?
Hallo zusammen,
ich will meine Ordnerstruktur in den 0_userdata.0 und alias.0 ändern.
Kann man da die Ordner/Verzeichnisse verschieben? Wenn ja, werden diese in den Scripts mitumbenannt? -
RE: SONOFF NSPanel mit Lovelace UI
@armilar Die Erfahrung habe ich auch gemacht, darum die Frage ob es da eine andere Lösung gibt.
Ich nehme mal an, nein. Ist aber weiters kein Problem.Danke Euch für Eure Hilfe und den permanenten Support!
-
RE: SONOFF NSPanel mit Lovelace UI
@tt-tom dachte mir schon so etwas.
Noch eine andere Frage dazu.
Ist es möglich im heading zum Text eine Variable anzuhängen?
Wie zB solet CardChartawattar: PageType = { 'type': 'cardChart', 'heading': 'aWATTar ' + Datenpunkt + ' c/kWh',
-
RE: SONOFF NSPanel mit Lovelace UI
@tt-tom
danke, funktioniert auch bei diesem Diagram so.yAxisTicks: '0_userdata.0.Stromboerse.cardChartString.yscale',
nun habe ich eine weiter Frage, kann man ein Blockdiagram mit einem Liniendiagram überlappen?
Ich würde gerne den Durchschnittswert darüber legen. -
RE: Test Adapter schoolfree v1.0.x
@simatec Hallo, hattest du schon mal Zeit?
Ist ja jetzt schon eine Weile her -
RE: SONOFF NSPanel mit Lovelace UI
@tt-tom wenn ich ihn komplett weg lasse, unter kommentar setzte, bekomme ich folgende Warnung/Fehler
id: '0_userdata.0.Stromboerse.cardChartString', yAxis: 'Preis [ckW]', // yAxisTicks: [], onColor: Red
script.js.NSPanel.Panel_Küche_241006_4_4_0_6: error at function GenerateChartPage: Page item 0_userdata.0.Stromboerse.cardChartString yAxisTicks is undefined and unable to be calculated!
bei [] stehen wie gesagt keine Werte auf der Scala.
Beim Anklicken der Werte werden auch nur bis zur ca Hälfte Werte auf den Screen zu schreiben. (ist mir aber relativ egal) -
RE: SONOFF NSPanel mit Lovelace UI
Hallo zusammen,
Ich würde gerne meine Strompreise (aWATTar) in einem Chart darstellen wollen.
Die Daten liegen in einem JSON (aus apg-info Adappter) vor.
Kann man eventuell noch die Balken einzeln färben? zB Wert höher als der Durchschnitt.Danke für Eure Hilfe.
Falls ein Script, wahrscheinlich, benötigt wird, gerne javascript. Versuche die Logik zu lernenedit:
ich hab es jetzt soweit hin bekommen.
Meine cardchart schaut so aus:let CardChartawattar: PageType = { 'type': 'cardChart', 'heading': 'aWATTar', 'items': [{ //id: 'alias.0.NSPanel_1.cardChart', id: '0_userdata.0.Stromboerse.cardChartString', yAxis: 'Preis [ckW]', yAxisTicks: [], // 0_userdata.0.Stromboerse.cardChartString.yscale wie kann ich diese DP verwenden? onColor: Red }] };
die Daten werden so aufbereitet
/* Eingabedatenpunkt (holen des Wertes aus dem ioBroker-Datenpunkt) Bereitet den JSON vom apg-info Adapter für das NSPanel die cardChart auf 1.0. 07.11.2024 */ // Funktion zum Überprüfen und Erstellen von Datenpunkten function createStateIfNotExists(id, defaultValue, common) { if (!existsState(id)) { createState(id, defaultValue, common); } } schedule('3 * * * *', function () { let inputData = JSON.parse(getState('apg-info.0.marketprice.today.jsonChart').val); // Überprüfen und Erstellen der benötigten Datenpunkte (Falls erforderlich) createStateIfNotExists('0_userdata.0.Stromboerse.cardChartString.ACTUAL', '', {type:"string"}); createStateIfNotExists('0_userdata.0.Stromboerse.cardChartString.yscale', '' ,{type:"string"}); // Überprüfen, ob das Format korrekt ist, bevor wir weiterarbeiten if (inputData && inputData.graphs && inputData.graphs[0] && inputData.graphs[0].data) { let cardChartString = ""; // Hier speichern wir die formatierte Zeichenkette // Iteriere durch alle Datenpunkte for (let i = 0; i < inputData.graphs[0].data.length; i++) { let entry = inputData.graphs[0].data[i]; let value = (Math.round(entry.y * 10) / 10).toFixed(1); // Rundet auf 1 Dezimalstelle let valueDate = new Date(entry.t); // Zeitstempel in Date-Objekt umwandeln // Formatieren der Zeit im 12-Stunden-Format (nur Stunde, ohne AM/PM) let hours = valueDate.getHours(); hours = hours % 12; // Umrechnung auf 12-Stunden-Format hours = hours ? hours : 12; // Die Stunde "0" wird zu "12" für das 12h-Format // Formatierte Zeit (nur die Stunde) let timeString = hours; // Wenn der Wert zur nächsten Stunde gehört, füge ihn hinzu if (i === 0 || valueDate.getHours() !== new Date(inputData.graphs[0].data[i - 1].t).getHours()) { cardChartString += value + '^' + timeString + '~'; // Füge den Wert und die Zeit hinzu } } // Entferne das letzte Tilde-Zeichen (~) von der Zeichenkette cardChartString = cardChartString.slice(0, -1); // Ausgabe des formatierten Strings console.log(cardChartString); // Speichern des formatierten Strings in einem neuen Datenpunkt setState('0_userdata.0.Stromboerse.cardChartString.ACTUAL', cardChartString); } else { console.log("Das Eingabeformat ist nicht korrekt oder der Datenpunkt enthält keine gültigen Daten."); } // Abrufen des maximalen Wertes aus dem Datenpunkt '0_userdata.0.Stromboerse.max' let maxValue = getState('0_userdata.0.Stromboerse.max').val; // Sicherstellen, dass der Maximalwert vorhanden und eine gültige Zahl ist if (maxValue && !isNaN(maxValue)) { // Berechnen des nächsten Vielfachen von 10, das größer oder gleich dem Maximalwert ist let yScaleMax = Math.ceil(maxValue / 10) * 10; // Rundet auf das nächste Vielfache von 10 // Wenn der Maximalwert 0 ist, setzen wir die Y-Skala auf [0, 10] als Minimum if (yScaleMax === 0) { yScaleMax = 10; } // Erstellen der Y-Skala mit Schritten von 10 let yScale = []; for (let i = 0; i <= yScaleMax; i += 10) { yScale.push(i); } // Formatieren der Y-Skala als Array-Zeichenkette im gewünschten Format let yScaleString = "[" + yScale.join(", ") + "]"; // Beispielhafte Ausgabe des formatierten Y-Scale-Strings console.log(yScaleString); // Speichern der Y-Skala im gewünschten Format in einem neuen ioBroker-Datenpunkt setState('0_userdata.0.Stromboerse.cardChartString.yscale', yScaleString); } else { console.log("Der Maximalwert ist ungültig oder fehlt."); } });
ACTUAL
23.8^12~23.0^1~22.6^2~22.6^3~23.0^4~24.5^5~28.3^6~35.3^7~32.8^8~27.3^9~26.3^10~25.4^11~24.7^12~26.3^1~27.0^2~32.7^3~40.2^4~56.4^5~44.6^6~31.6^7~27.7^8~24.7^9~24.2^10~22.8^11~22.8^12
yscale
[0, 10, 20, 30, 40, 50, 60]
wie kann ich nun anstatt der yAxisTicks festen Wert meine Werte aus einem DP verwenden?
Leer lassen [] bringt mir nichts, da dann keine Werte auf der Y-Scala stehen. -
RE: brother MFC-L3770CDW drucker auslesen
@codierknecht
danke, da kann ich lange suchen. -
RE: brother MFC-L3770CDW drucker auslesen
jetzt ist das mit dem snmp doch schon sehr kompliziert, Tonerzustände finde ich gar keine.
Nun wollte ich es mit dem Parser probieren, klingt ja auch logisch.
Nur findet er nichts, obwohl es die Maske hergibt.<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en-gb" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb"><head><meta http-equiv="Content-Script-Type" content="text/javascript" /><meta http-equiv="content-style-type" content="text/css" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><script type="text/javascript" src="/common/js/ews.js"></script><link rel="stylesheet" type="text/css" href="../common/css/common.css" /> <link rel="stylesheet" type="text/css" href="../common/css/ews.css" /> <title>Brother MFC-L3770CDW series</title></head><body><div id="baseFrame"><div id="frameContainer"><div id="headerFrameContainerLeft"><div id="headerFrameContainerRight"><div id="headerFrameInner"><div id="headerFrame"><div id="modelName"><h1>MFC-L3770CDW series</h1><div class="SetBox" id="SetBoxAuthRight"><div id="SetBoxAuthLeft"><form method="post" action="/general/status.html"><div>Login<input type="password" id="LogBox" name="B12a1" /><input type="hidden" name="loginurl" value="/general/information.html?kind=item"/><input id="login" type="submit" value=" " /></div></form></div></div></div><div id="corporateLogo"><a href="http://www.brother.com" target="_blank" ><img src="/common/images/logo.gif" alt="Brother" /></a></div></div><div id="solutions"><div><span><a href="http://solutions.brother.com/cgi-bin/solutions.cgi?MDL=m00115&LNG=de&SRC=DEVICE">Brother<br />Solutions Center</a></span></div></div><div id="tabMenu"><ul><li><ul><li class="selected"><p>General</p></li></ul></li></ul></div></div></div></div><div id="mainFrameContainer"><div id="mainFrameTopLeft"><div id="mainFrameTopRight"><div id="mainFrameTopInner"><div id="subTabMenu"><div><span><a href="#topBack">Bottom<img src="/common/images/ic_bottom.gif" alt="Bottom" /></a></span></div></div></div></div></div><div id="mainFrameInner"><div id="subMenu"><div><a href="/general/status.html">Status</a></div><div><a href="/general/reflesh.html" class="subPage">Auto Refresh Interval</a></div><div class="selected"><div class="top"><div class="bottom"><a href="/general/information.html?kind=item">Maintenance Information</a></div></div></div><div><a href="/general/lists.html">Lists/Reports</a></div><div><a href="/general/find.html">Find Device</a></div><div><a href="/general/contact.html">Contact & Location</a></div><div><a href="/general/sleep.html">Sleep Time</a></div><div><a href="/general/powerdown.html">Auto Power Off</a></div><div><a href="/general/volume.html">Volume</a></div><div><a href="/general/panel.html">Panel</a></div><div><a href="/general/notice_settings.html">Notification</a></div></div><div id="rightFrameContainer"><div id="rightFrame"><div id="mainContent"><div id="pageTitle"><h2>Maintenance Information</h2></div><script type="text/javascript"> // <![CDATA[ function csv_file_download() { }window.onload=csv_file_download; // ]]> </script> <div id="pageContents"><form method="post" action="/general/information.html?kind=item"><div><input type="hidden" id="pageid" name="pageid" value="3" /></div><div class="CSRFToken"><input type="hidden" id="CSRFToken1" name="CSRFToken" value="G0XHMrZ4eXCZu+SVf6W/QFKEYNjaSVHHNCveX6FS8Dsar+pYQKqS1bEcbXkxczSzt6yxrmjMz5wR QeBXosZt1oiBEyj2SMi0buWFzsOMAIwRH7UrYat2RHEouBAtB4/4hCovLUObwI4+W0e3UBY05XM4 z1Om4OQOKGhu/wdhZyUC3S3HOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACueE9ThBTEci8bXKXQew86zx8Z9xZKQbJWThdpd8eq MnNG/f7csNWiHC9t+GyLwJFTA/OcQ4ER2U+MfXw7fd6o6XmcK48ZxRSdLEpHtSC9VQ=="/></div><div><input type="hidden" id="postif_registration_reject" name="postif_registration_reject" value="1" /></div><div class="contentsLine"><div class="contentsButtons"><input type="submit" value="Export" /></div></div><div class="contentsGroup"><h3>Node Information</h3><dl class="items"><dt>Model Name</dt><dd>Brother MFC-L3770CDW series</dd><dt>Serial no.</dt><dd>E79032C0N874621</dd><dt>Main Firmware Version</dt><dd>ZE</dd><dt>Sub1 Firmware Version</dt><dd>1.60</dd><dt>Memory Size</dt><dd>512<span class="unit">MB</span></dd></dl></div><div class="contentsGroup"><h3>Device Status</h3><dl class="items"><dt>Page Counter</dt><dd>14027</dd><dt class="subhead"><span>Colour</span></dt><dd>11059</dd><dt class="subhead"><span>B&W</span></dt><dd>2968</dd></dl></div><div class="contentsGroup"><h3>Remaining Life</h3><dl class="items"><dt>Drum Unit Cyan (C)*</dt><dd>95%</dd><dt>Drum Unit Magenta (M)*</dt><dd>95%</dd><dt>Drum Unit Yellow (Y)*</dt><dd>95%</dd><dt>Drum Unit Black (BK)*</dt><dd>95%</dd><dt>Belt Unit</dt><dd>49218<span class="unit">Page(s)</span></dd><dt>(% of Life Remaining)</dt><dd>(99%)</dd><dt>Fuser Unit</dt><dd>35973<span class="unit">Page(s)</span></dd><dt>(% of Life Remaining)</dt><dd>(72%)</dd><dt>Paper Feeding Kit MP</dt><dd>49959<span class="unit">Page(s)</span></dd><dt>(% of Life Remaining)</dt><dd>(100%)</dd><dt>Paper Feeding Kit 1</dt><dd>40878<span class="unit">Page(s)</span></dd><dt>(% of Life Remaining)</dt><dd>(82%)</dd><dt>Toner Cyan (C)**</dt><dd>60%</dd><dt>Toner Magenta (M)**</dt><dd>60%</dd><dt>Toner Yellow (Y)**</dt><dd>50%</dd><dt>Toner Black (BK)**</dt><dd>60%</dd></dl></div><div class="contentsGroup"><h3>Total Pages Printed</h3><dl class="items"><dt>A4/Letter</dt><dd>13994<span class="unit">Page(s)</span></dd><dt>Legal/Folio</dt><dd>0<span class="unit">Page(s)</span></dd><dt>B5/Executive</dt><dd>0<span class="unit">Page(s)</span></dd><dt>Envelope</dt><dd>2<span class="unit">Page(s)</span></dd><dt>A5</dt><dd>18<span class="unit">Page(s)</span></dd><dt>Others</dt><dd>13<span class="unit">Page(s)</span></dd></dl></div><div class="contentsGroup"><h3>Total Pages Printed</h3><dl class="items"><dt>Plain/Thin/Recycled</dt><dd>13993<span class="unit">Page(s)</span></dd><dt>Thick/Thicker/Bond</dt><dd>0<span class="unit">Page(s)</span></dd><dt>Envelopes/Env. Thick/Env. Thin</dt><dd>1<span class="unit">Page(s)</span></dd><dt>Label</dt><dd>0<span class="unit">Page(s)</span></dd><dt>Hagaki</dt><dd>0<span class="unit">Page(s)</span></dd><dt>Glossy</dt><dd>33<span class="unit">Page(s)</span></dd></dl></div><div class="contentsGroup"><h3>Total Pages Printed</h3><dl class="items"><dt>Total</dt><dd>14027<span class="unit">Page(s)</span></dd><dt class="subhead"><span>Colour</span></dt><dd>11059</dd><dt class="subhead"><span>B&W</span></dt><dd>2968</dd><dt class="subhead"><span>2-sided Print</span></dt><dd>9740</dd><dt class="subhead"><span>Colour 2-sided</span></dt><dd>7646</dd><dt class="subhead"><span>B&W 2-sided</span></dt><dd>2094</dd><dt>Fax</dt><dd>0<span class="unit">Page(s)</span></dd><dt class="subhead"><span>2-sided Print</span></dt><dd>0</dd><dt>Copy</dt><dd>70<span class="unit">Page(s)</span></dd><dt class="subhead"><span>Colour</span></dt><dd>59</dd><dt class="subhead"><span>B&W</span></dt><dd>11</dd><dt class="subhead"><span>2-sided Print</span></dt><dd>16</dd><dt class="subhead"><span>Colour 2-sided</span></dt><dd>14</dd><dt class="subhead"><span>B&W 2-sided</span></dt><dd>2</dd><dt>Print</dt><dd>13934<span class="unit">Page(s)</span></dd><dt class="subhead"><span>Colour</span></dt><dd>10977</dd><dt class="subhead"><span>B&W</span></dt><dd>2957</dd><dt class="subhead"><span>2-sided Print</span></dt><dd>9724</dd><dt class="subhead"><span>Colour 2-sided</span></dt><dd>7632</dd><dt class="subhead"><span>B&W 2-sided</span></dt><dd>2092</dd><dt>Others</dt><dd>23<span class="unit">Page(s)</span></dd><dt class="subhead"><span>Colour</span></dt><dd>23</dd><dt class="subhead"><span>B&W</span></dt><dd>0</dd><dt class="subhead"><span>2-sided Print</span></dt><dd>0</dd><dt class="subhead"><span>Colour 2-sided</span></dt><dd>0</dd><dt class="subhead"><span>B&W 2-sided</span></dt><dd>0</dd></dl></div><div class="contentsGroup"><h3>Total Pages Scanned</h3><dl class="items"><dt>ADF(1-sided)***</dt><dd>177<span class="unit">Page(s)</span></dd><dt>ADF(2-sided)***</dt><dd>176<span class="unit">Page(s)</span></dd><dt>Flatbed</dt><dd>319<span class="unit">Page(s)</span></dd><dt>Scan Page Count</dt><dd>619<span class="unit">Page(s)</span></dd></dl></div><div class="contentsGroup"><h3>Replace Count</h3><dl class="items"><dt>Toner Cyan (C)</dt><dd>8</dd><dt>Toner Magenta (M)</dt><dd>9</dd><dt>Toner Yellow (Y)</dt><dd>8</dd><dt>Toner Black (BK)</dt><dd>8</dd><dt>Drum Unit Cyan (C)</dt><dd>1</dd><dt>Drum Unit Magenta (M)</dt><dd>1</dd><dt>Drum Unit Yellow (Y)</dt><dd>1</dd><dt>Drum Unit Black (BK)</dt><dd>1</dd><dt>Belt Unit</dt><dd>1</dd><dt>Fuser Unit</dt><dd>0</dd><dt>Paper Feeding Kit MP</dt><dd>0</dd><dt>Paper Feeding Kit 1</dt><dd>0</dd><dt>Waste Toner Box</dt><dd>0</dd></dl></div><div class="contentsGroup"><dl class="items"><dt>Total Paper Jams</dt><dd>18</dd><dt class="subhead"><span>Jam MP Tray</span></dt><dd>0</dd><dt class="subhead"><span>Jam Tray 1</span></dt><dd>10</dd><dt class="subhead"><span>Jam Inside</span></dt><dd>3</dd><dt class="subhead"><span>Jam Rear</span></dt><dd>2</dd><dt class="subhead"><span>Jam 2-sided</span></dt><dd>3</dd></dl></div><div class="contentsGroup"><dl class="items"><dt>Total Paper Jams (ADF 1-sided)***</dt><dd>1</dd><dt>Total Paper Jams (ADF 2-sided)***</dt><dd>1</dd></dl></div><div class="contentsGroup"><h3>Error History(last 10 errors)</h3><table class="list errorHistory" summary="Error History"><tbody><tr><th>1</th><td>Stau innen</td><td>Page : 13680</td></tr><tr><th>2</th><td>Stau Zufuhr1</td><td>Page : 13680</td></tr><tr><th>3</th><td>Keine Zufuhr Z1</td><td>Page : 13343</td></tr><tr><th>4</th><td>Keine Zufuhr Z1</td><td>Page : 13343</td></tr><tr><th>5</th><td>Farbeinstell.</td><td>Page : 12771</td></tr><tr><th>6</th><td>Toner bestellen (M)</td><td>Page : 12522</td></tr><tr><th>7</th><td>Toner ersetzen (Y)</td><td>Page : 12058</td></tr><tr><th>8</th><td>Keine Zufuhr Z1</td><td>Page : 10822</td></tr><tr><th>9</th><td>Toner bestellen (BK)</td><td>Page : 10639</td></tr><tr><th>10</th><td>Stau Duplex</td><td>Page : 10362</td></tr></tbody></table></div><div class="contentsGroup"><p class="noteMessage">*Based on A4/Letter printing<br />**Remaining life will vary depending on the types of documents printed, their coverage and device usage.<br />***Automatic Document Feeder<br /></p></div><div class="contentsGroup"><p class="noteMessage">You can convert this Maintenance Information page to a CSV file format.<br />Click Export to create the CSV file</p></div><div class="contentsButtons"><input type="submit" value="Export" /></div></form></div></div></div></div><script type="text/javascript"><!-- SetMinHeight(); // --></script></div><div id="mainFrameBottomLeft"><div id="mainFrameBottomRight"><div id="mainFrameBottomInner"></div></div></div></div><div id="footerFrameContainer"><div id="copyright">Copyright(C) 2000-2018 Brother Industries, Ltd. All Rights Reserved.</div><div id="topBack"><a href="#">Top<img src="/common/images/ic_pt.gif" alt="Top" /></a></div></div></div></div></body></html>
\(BK\)\*\*<\/dt><dd>\(([0-9.]*) \(C\)\*\*<\/dt><dd>\(([0-9.]*) \(M\)\*\*<\/dt><dd>\(([0-9.]*) \(Y\)\*\*<\/dt><dd>\(([0-9.]*)
obwohl vorhanden, zeigt der Parser kein Ergebnis
<dt>Toner Cyan (C)**</dt><dd>60%</dd> <dt>Toner Magenta (M)**</dt><dd>60%</dd> <dt>Toner Yellow (Y)**</dt><dd>50%</dd> <dt>Toner Black (BK)**</dt><dd>60%</dd>
auch mit % am Ende nicht
\(BK\)\*\*<\/dt><dd>\(([0-9.]*)\% \(C\)\*\*<\/dt><dd>\(([0-9.]*)\% \(M\)\*\*<\/dt><dd>\(([0-9.]*)\% \(Y\)\*\*<\/dt><dd>\(([0-9.]*)\%
ich habe es jetzt so gelöst