NEWS
Parser Adapter
-
@goetschhofer Was willst du mir damit sagen?
Die Seite lässt sich nicht mit dem Parser auslesen, da die Werte dynamisch ausserhalb des Quelltextes geholt werden.
und nur der Quelltext kann geparst werden.Das hatten wir alles schon einmal und ändert sich nicht
du arbeitest nicht mit dem Quelltext sondern mit der HTML-Seite, die der Browaser aufbaut.
Darauf hat der Parser keinen Zugriff -
Vielen Dank nochmals für die Klarstellung und Erläuterung.
-
@goetschhofer sagte in Parser Adapter:
Vielen Dank nochmals für die Klarstellung und Erläuterung.
wo ist denn der Quelltext?
@homoran sagte in Parser Adapter:
dazu brauche ich den echten Seitenquelltext (rechte Maustaste in die Seite wo die Werte stehen und Seitenquelltext anzeigen anklicken)
@goetschhofer sagte in Parser Adapter:
Die Regex stimmt soweit,
selbst das stimmt nicht, außer du willst den RegEx in php verwenden.
iobroker nutzt aber Javascript. -
@homoran said in Parser Adapter:
wo ist denn der Quelltext?
@homoran sagte in Parser Adapter:
dazu brauche ich den echten Seitenquelltext (rechte Maustaste in die Seite wo die Werte stehen und Seitenquelltext anzeigen anklicken)
@goetschhofer sagte in Parser Adapter:
Die Regex stimmt soweit,
selbst das stimmt nicht, außer du willst den RegEx in php verwenden.
iobroker nutzt aber Javascript.Seitenquelltext anzeigen mit rechter Maustaste:
<!doctype html> <html lang="de"> <head> <!--<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval';">--> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ESP-Device</title> <link rel="stylesheet" href="custom.css"> <link rel="icon" type="image/png" href="data:image/png;base64,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"> <script src="jquery351.js"></script> </head> <body> <div id="layout"> <!--This is the parent `<div>` that contains the menu and the content area :: side-menu.css--> <!-- Menu toggle --> <!--<a href="#menu" id="menuLink" class="menu-link">--> <a id="menuLink" class="menu-link"> <!-- Hamburger icon --> <span></span> </a> <div id="menu"> <div class="pure-menu"> <!--<a class="pure-menu-heading" href="#">Device</a>--> <span class="pure-menu-heading" name="devicetype">DeviceType</span> <ul class="pure-menu-list"> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-home">Zähler</a></li> <li class="pure-menu-item menu-graf"><a class="pure-menu-link" data="panel-graf">Grafik</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-log">Log</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-status">Status</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-general">Allgemein</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-wifi">WiFi</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-mqtt">MQTT</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-update">Update</a></li> <li class="pure-menu-item"><a class="pure-menu-link" data="panel-hist">Versionsinfo</a></li> </ul> </div> </div> <div class="content"> <!--The content `<div>` is where all your content goes. :: side-menu.css--> <div class="panel" id="panel-graf"> <div id="chart-container" class="chart"> <br>Daten von Thingspeak werden geladen...<br> </div> <div class="chart-below"> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"> <button class="pure-button button-load" onclick="loadOneChannel();" style="margin-left: 10px;width:160px;">Daten nachladen:</button> </div> <select class="pure-u-1 pure-u-sm-1-5" style="margin-left: 10px;" id="Loads"> <option selected="selected" value="1">1 Tag</option> <option value="2">2 Tage</option> <option value="3">3 Tage</option> <option value="4">4 Tage</option> <option value="5">5 Tage</option> <option value="6">6 Tage</option> <option value="7">7 Tage</option> <option value="8">8 Tage</option> <option value="9">9 Tage</option> <option value="10">10 Tage</option> </select> <select id="ChannelSelect" class="pure-u-1 pure-u-sm-1-5" style="margin-left: 10px;"></select> <div class="pure-u-1 pure-u-sm-1-5"> <button class="pure-button button-graf" style="margin-left:10px;width:160px;">Chart neu laden</button> </div> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Grafikdaten autom. aktualisieren</label> <div class="pure-u-1 pure-u-sm-1-5 on_off"> <input id="Update" name="Update" type="checkbox" class=""> </div> <div class="pure-u-1 pure-u-sm-2-5"></div> </div> </div> </div> <div class="panel" id="panel-home"> <div class="header"> <h1>AMIS-Zähler</h1> <br> </div><br> <div class="amis"> <div class="pure-u-11-24">Uhrzeit (Zähler)</div> <div class="pure-u-11-24" name="now"></div> <div class="pure-u-11-24">1.8.0 (Energie A+)</div> <strong><div class="pure-u-11-24" name="1_8_0" post=" kWh" div="1000"></div></strong> <div class="pure-u-11-24">2.8.0 (Energie A-)</div> <strong><div class="pure-u-11-24" name="2_8_0" post=" kWh" div="1000"></div></strong> <div class="pure-u-11-24">3.8.1 (Energie R+)</div> <div class="pure-u-11-24" name="3_8_1" post=" kVarh" div="1000"></div> <div class="pure-u-11-24">4.8.1 (Energie R-)</div> <div class="pure-u-11-24" name="4_8_1" post=" kVarh" div="1000"></div> <div class="pure-u-11-24">1.7.0 (Wirk. P+)</div> <strong><div class="pure-u-11-24" name="1_7_0" post=" kW" div="1000"></div></strong> <div class="pure-u-11-24">2.7.0 (Wirk. P-)</div> <strong><div class="pure-u-11-24" name="2_7_0" post=" kW" div="1000"></div></strong> <div class="pure-u-11-24">Saldo 1.7.0-2.7.0</div> <strong><div class="pure-u-11-24" id="saldo"></div></strong> <div class="pure-u-11-24">3.7.0 (Blind. Q+)</div> <div class="pure-u-11-24" name="3_7_0" post=" kVar" div="1000"></div> <div class="pure-u-11-24">4.7.0 (Blind. Q-)</div> <div class="pure-u-11-24" name="4_7_0" post=" kVar" div="1000"></div> <div class="pure-u-11-24">1.128.0 (Inkasso)</div> <div class="pure-u-11-24" name="1_128_0"></div> <br><hr> <div class="pure-u-11-24">Uptime</div> <div class="pure-u-11-24" name="uptime"></div> <div class="pure-u-11-24">Upload Thingspeak</div> <div class="pure-u-11-24" name="things_up"></div> <br><hr> <h3>Energie [kWh]</h3> <div class="pure-u-1"> <table class="pure-table pure-table-striped" width="100%"> <thead><tr><th>Tag</th><th align="right">Bezug</th><th align="right">Lfrg.</th><th align="right">Diff.</th></tr></thead> <Tbody> <tr><td>Heute</td> <td align="right" id="tdy_in"></td><td align="right" id="tdy_out"></td><td align="right" id="tdy_diff"></td></tr> <tr><td id="wd0"></td><td align="right" id="wd_in0"></td><td align="right" id="wd_out0"></td><td align="right" id="wd_diff0"></td></tr> <tr><td id="wd1"></td><td align="right" id="wd_in1"></td><td align="right" id="wd_out1"></td><td align="right" id="wd_diff1"></td></tr> <tr><td id="wd2"></td><td align="right" id="wd_in2"></td><td align="right" id="wd_out2"></td><td align="right" id="wd_diff2"></td></tr> <tr><td id="wd3"></td><td align="right" id="wd_in3"></td><td align="right" id="wd_out3"></td><td align="right" id="wd_diff3"></td></tr> <tr><td id="wd4"></td><td align="right" id="wd_in4"></td><td align="right" id="wd_out4"></td><td align="right" id="wd_diff4"></td></tr> <tr><td id="wd5"></td><td align="right" id="wd_in5"></td><td align="right" id="wd_out5"></td><td align="right" id="wd_diff5"></td></tr> <tr><td id="wd6"></td><td align="right" id="wd_in6"></td><td align="right" id="wd_out6"></td><td align="right" id="wd_diff6"></td></tr> </Tbody> </table> </div> </div> </div> <div class="panel pure-form" id="panel-status"> <div class="header"> <h1>STATUS 🛈</h1> <br> </div> <div class="pure-u-1 pure-u-lg-1-2 state"> <div class="pure-u-1-2">Chip ID</div> <div class="pure-u-11-24"><span class="right" name="chipid"></span></div> <div class="pure-u-1-2">Wifi MAC</div> <div class="pure-u-11-24"><span class="right" name="mac"></span></div> <div class="pure-u-1-2">SDK version</div> <div class="pure-u-11-24"><span class="right" name="sdk"></span></div> <div class="pure-u-1-2">Core version</div> <div class="pure-u-11-24"><span class="right" name="core"></span></div> <div class="pure-u-1-2">App version</div> <div class="pure-u-11-24"><span class="right" name="version"></span></div> <div class="pure-u-1-2">App name</div> <div class="pure-u-11-24"><span class="right" name="app_name"></span></div> <div class="pure-u-1-2">Firmware size</div> <div class="pure-u-11-24"><span class="right" name="sketchsize" post=" bytes"></span></div> <div class="pure-u-1-2">Free space</div> <div class="pure-u-11-24"><span class="right" name="freesize" post=" bytes"></span></div> <div class="pure-u-1-2">LITTLE-FS size</div> <div class="pure-u-11-24"><span class="right" name="littlefs_size" post=" bytes"></span></div> <div class="pure-u-1-2">LITTLE-FS used</div> <div class="pure-u-11-24"><span class="right" name="littlefs_used" post=" bytes"></span></div> <div class="pure-u-1-2">Max. free block size</div> <div class="pure-u-11-24"><span class="right" name="max_free_blocksz" post=" bytes"></span></div> <div class="pure-u-1-2">Free heap</div> <div class="pure-u-11-24"><span class="right" name="heap_free" post=" bytes"></span></div> <div class="pure-u-1-2">Heap fragmentation</div> <div class="pure-u-11-24"><span class="right" name="heap_fragment" post=" %"></span></div> <div class="pure-u-1-2">Flash speed</div> <div class="pure-u-11-24"><span class="right" name="flashspeed" post=" Hz"></span></div> <div class="pure-u-1-2">Flash size</div> <div class="pure-u-11-24"><span class="right" name="flashsize" post=" bytes"></span></div> <div class="pure-u-1-2">Flash mode</div> <div class="pure-u-11-24"><span class="right" name="flashmode"></span></div> <div class="pure-u-1-2">CPU Frequ.</div> <div class="pure-u-11-24"><span class="right" name="cpu" post=" MHz"></span></div> </div> <div class="pure-u-1 pure-u-lg-11-24 state"> <div class="pure-u-1-2">Network</div> <div class="pure-u-11-24" name="ssid"></div> <div class="pure-u-1-2">Channel</div> <div class="pure-u-11-24" name="channel"></div> <div class="pure-u-1-2">RSSI</div> <div class="pure-u-11-24" name="rssi" post=" dB"></div> <div class="pure-u-1-2">IP</div> <div class="pure-u-11-24" name="deviceip"></div> <div class="pure-u-1-2">DNS</div> <div class="pure-u-11-24" name="dns"></div> <div class="pure-u-1-2">Gateway</div> <div class="pure-u-11-24" name="gateway"></div> <div class="pure-u-1-2">Netmask</div> <div class="pure-u-11-24" name="netmask"></div> <div class="pure-u-1-2">VCC</div> <div class="pure-u-11-24"><span class="right" name="vcc">? </span><span>mV</span></div> <div class="pure-u-1-2 module-mqtt">MQTT Status</div> <div class="pure-u-11-24 module-mqtt" name="mqttStatus"></div> <div class="pure-u-1-2 module-ntp">NTP Status</div> <div class="pure-u-11-24 module-ntp" name="ntpSynced"></div> <div class="pure-u-1-2 module-ntp">Current time</div> <div class="pure-u-11-24 module-ntp" name="now"></div> <div class="pure-u-1-2">Uptime</div> <div class="pure-u-11-24" name="uptime"></div> </div> </div> <div class="panel pure-form" id="panel-general"> <div class="header"> <h1>Allgemein</h1> <!--<h3>Current configuration</h3>--> <br> </div> <br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Name Gerät:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="devicename" placeholder="ESP-Device" /> </div> <br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Authentifizierung:</label> <div class="pure-u-1 pure-u-sm-2-5"><input type="checkbox" name="use_auth" id="use_auth" class="general"/></div> </div> <div class="auth_details"> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Benutzer:</label> <input class="pure-u-1 pure-u-sm-2-5 general" name="auth_user" value="Admin"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Passwort:</label> <input class="pure-u-1 pure-u-sm-2-5 general" name="auth_passwd" type="password" spellcheck="false" /> <span class="no-select password-reveal"></span> </div> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">System-Log:</label> <div class="pure-u-1 pure-u-sm-2-5"><input type="checkbox" name="log_sys" id="log_sys" class="general"/></div> </div> <br> <div style="display:block;"> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Amis-Key:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="amis_key"/> </div> <br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">ThingSpeak/Highcharts aktiv:</label> <div class="pure-u-1 pure-u-sm-1-5"><input type="checkbox" name="thingspeak_aktiv" id="thingspeak_aktiv" class="general"/></div> </div> <div class="things_details"> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Channel ID:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="channel_id"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Write API Key:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="write_api_key"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Read API Key:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="read_api_key"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Intervall (sec):</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="number" min="30" name="thingspeak_iv"/> </div> <hr> <br> Daten für einen zweiten Zähler abrufen: <br><br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Channel ID:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="channel_id2"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Read API Key:</label> <input class="pure-u-1 pure-u-sm-2-5 general" type="text" name="read_api_key2"/> </div> </div> </div> <hr> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"><progress id="prgbar_general"></progress></div> <div style="min-height: 40px"></div> </div> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-3-5"> <button class="pure-button button-update-general">Übernehmen</button> <button class="pure-button button-reboot">Neustart</button> </div> </div> </div> <div class="panel pure-form" id="panel-wifi"> <div class="header"> <h1>WiFi 📶</h1> <h2>Gerätebezeichnung (Hostname) bei "Allgemein" festlegen</h2> </div> <br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">SSID:</label> <input class="pure-u-1 pure-u-sm-2-5 wifi" name="ssid" type="text"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Passwort:</label> <input class="pure-u-1 pure-u-sm-2-5 wifi" name="wifipassword" type="password"/> <span class="no-select password-reveal"></span> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">DHCP</label> <div class="pure-u-1 pure-u-sm-2-5 on_off"><input type="checkbox" name="dhcp" id="dhcp" class="wifi" /></div> </div> <div class="wifi_details"> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Static IP:</label> <input class="pure-u-1 pure-u-sm-2-5 wifi" name="ip_static" type="text"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Netmask:</label> <input class="pure-u-1 pure-u-sm-2-5 wifi" name="ip_netmask" type="text"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Gateway:</label> <input class="pure-u-1 pure-u-sm-2-5 wifi" name="ip_gateway" type="text"/> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Nameserver:</label> <input class="pure-u-1 pure-u-sm-2-5 wifi" name="ip_nameserver" type="text"/> </div> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">RF-Power:</label> <input class="pure-u-1 pure-u-sm-1-5 wifi" name="rfpower" type="number" min="0" max="25" placeholder="0..25dBm"/> <span class="pure-u-1 pure-u-sm-1-5"> dBm</span> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MDNS</label> <div class="pure-u-1 pure-u-sm-2-5 on_off"><input type="checkbox" name="mdns" class="wifi" /></div> <div class="pure-u-1 pure-u-sm-3-5"></div> <div class="pure-u-1 pure-u-sm-1-5"></div> <div class="pure-u-1 pure-u-sm-4-5 hint"> Wenn der Browser / das BS MDNS unterstützen, kann dieses Gerät unter "<span name="devicename" class="wifi"></span>.local" erreicht werden. Das Verfahren ist auch als Bonjour bekannt. </div> </div> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"><progress id="prgbar_wifi"></progress></div> <div style="min-height:40px"></div> </div> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-3-5"> <button class="pure-button button-update-wifi">Übernehmen</button> <button class="pure-button button-reboot">Neustart</button> </div> </div> <hr> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">WiFi-Scan</label> <div class="pure-u-1 pure-u-sm-4-5"><span name="stations"></span></div> </div> </div> <div class="panel pure-form" id="panel-mqtt"> <div class="header"> <h1>MQTT</h1> <h2>Einen MQTT broker im lokalen Netzwerk definieren.</h2> </div> <br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT aktiv:</label> <div class="pure-u-1 pure-u-sm-2-5"><input type="checkbox" name="mqtt_enabled" id="mqtt_enabled" class="mqtt"/></div> </div> <div class="mqtt_details"> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Broker</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_broker" type="text" placeholder="IP or address of your broker" /> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Port</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_port" type="number" value="1883" /> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT User</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_user" type="text" placeholder="Frei lassen wenn kein Benutzer definiert ist" autocomplete="off" /> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Passwort</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_password" type="password" placeholder="Frei lassen wenn kein Passwort definiert ist" autocomplete="new-password" spellcheck="false" /> <span class="no-select password-reveal"></span> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Client ID</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_clientid" type="text"/> <div class="pure-u-0 pure-u-sm-2-5"></div> <div class="pure-u-0 pure-u-sm-1-5"></div> <div class="pure-u-1 pure-u-sm-2-5 hint"> Wenn nicht definiert, wird automatisch eine ID generiert </div> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT QoS</label> <select class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_qos"> <option value="0">0: At most once</option> <option value="1">1: At least once</option> <option value="2">2: Exactly once</option> </select> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Retain</label> <div class="pure-u-1 pure-u-sm-2-5"><input type="checkbox" name="mqtt_retain" class="mqtt"/></div> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Keep Alive</label> <input class="pure-u-1 pure-u-sm-1-5 mqtt" type="number" name="mqtt_keep" min="0" max="3600" value="30"/> <span class="pure-u-1 pure-u-sm-1-5"> sec</span> </div> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"></div> <div class="pure-u-1 pure-u-sm-2-5 hint"> Die publish-message wird im definierten Intervall gesendet. </div> </div> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT publish:</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_pub" type="text"/> </div> <!--<div class="pure-g">--> <!--<label class="pure-u-1 pure-u-sm-1-5">MQTT subscribe:</label>--> <!--<input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_sub" type="text"/>--> <!--</div>--> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">MQTT Last Will:</label> <input class="pure-u-1 pure-u-sm-2-5 mqtt" name="mqtt_will" type="text"/> </div> </div> <hr> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"><progress id="prgbar_mqtt"></progress></div> <div style="min-height:40px"></div> </div> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-3-5"> <button class="pure-button button-update-mqtt">Übernehmen</button> <button class="pure-button button-reboot">Neustart</button> </div> </div> </div> <div class="panel pure-form" id="panel-update"> <div class="header"> <h1>Software-Update ♺</h1> <!--<h4>Configure your NTP (Network Time Protocol) servers and local configuration to keep your device time up to the second for your location.</h4>--> <br> </div> <br><br><br> <div class="pure-g"> <label class="pure-u-1 pure-u-sm-1-5">Datei:</label> <input class="pure-u-1 pure-u-sm-2-5" name="filename" type="text" readonly /> </div> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"><progress id="prgbar_update"></progress></div> <div style="min-height:40px"></div> </div> <div class="main-buttons pure-g"> <button class="pure-button button-upgrade-browse pure-u-1 pure-u-sm-2-24">Auswahl</button> <div class="pure-u-1 pure-u-sm-1-24"></div> <button class="pure-button button-upgrade pure-u-1 pure-u-sm-2-24">Update</button> <div class="pure-u-1 pure-u-sm-1-24"></div> <button class="pure-button button-reboot pure-u-1 pure-u-sm-2-24">Neustart</button> </div> <input name="upgrade" type="file" style="display:none;"/> </div> <div class="panel" id="panel-log"> <div class="header"> <h1>LOG 🗊</h1> <!--<h2> style="color:#555;">--> <h2> Ereignisse anzeigen </h2> </div> <br> <div class="pure-g"> <div class="pure-u-2-5 "><span name="page"></span></div> </div> <div class="pure-g"> <div class="pure-u-1 log"><span class="terminal" name="list"></span></div> <!--<div class=""><span class="terminal" name="list"></span></div>--> </div> <br> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5"><button class="pure-button button-log-prev">Seite -</button></div> <div class="pure-u-1 pure-u-sm-1-5"><button class="pure-button button-log-next">Seite +</button></div> <div class="pure-u-1 pure-u-sm-1-5"><button class="pure-button button-log-clear">Log löschen</button></div> </div> <br> <div class="pure-g"> <div class="pure-u-1 pure-u-sm-1-5">Tagesverbrauch</div> <div class="pure-u-1 pure-u-sm-1-5"><button class="pure-button button-hist_clear">Löschen</button></div> </div> </div> <div class="panel" id="panel-hist"> <div class="header"> <h1>Versionsinfo</h1> </div> <br> <div class="pure-g hist"> <div class="pure-u-1"> <h3>Version 1.2.0</h3> Neues Filesystem LittleFs eingeführt. Leider gehen dadurch alle Konfigurations- und Logdateien verloren. Kleine Bugs behoben. <br> <h3>Version 1.1.5</h3> Antwort auf rest-Anfrage ist gesperrt, so lange Zähler nicht synchron ist. <br> <h3>Version 1.1.4</h3> Alle Web-Dateien werden vom lokalen Server bereitgestellt, d.h. kein Nachladen aus externen Quellen ist notwendig. Ausnahme: Chart-Grafik, aber dazu ist grundsätzlich eine Internetverbindung notwendig. <br> Logdatei und Log-Anzeige: übersteigt die Größe der Logdatei ca. 1000 Zeilen, dann wird sie gelöscht und neu erzeugt. Der Seitenabruf wurde verbessert wegen Timeout-Problemen. <br> <h3>Version 1.1.3</h3> Leerzeichen in SSID erlaubt. Einige HTML-Bugs bereinigt. <br> <h3>Version 1.1.2</h3> Saldo 1.7.0 - 2.7.0 wird angezeigt.<br> Die Energie-History wurde ergänzt und zeigt jetzt auch die Lieferung und den Saldo per Tag an. <br> <h3>Version 1.1.1</h3> Einführung Versionsinfo.<br> Bugfix MQTT.<br> Die blaue LED leuchtet jetzt dauernd, sobald eine Verbindung zu einem Router (Access-Point) aufgebaut ist.<br> Wenn das Modul selbst als Access-Point auftritt (Jumper gesetzt), blinkt die LED. Die Netzwerkkennung (SSID) ist dann "ESP8266_AP", die Verbindung kann unter 192.168.4.1 aufgebaut werden.<br> <h3>Version 1.1.0</h3> Der Datenabruf von Thingspeak musste geändert werden, weil die bisherige Methhode mit jsonp nicht mehr unterstützt wird. Durch die Änderung des API können sehr restriktive Webbrowser u.U. keine Daten mehr abrufen.<br> Die gesamte Oberfläche wurde neu gestaltet, im Hintergrund laufen jetzt alle Vorgänge asynchron ab. Die Betriebssicherheit sollte dadurch noch besser werden. </div> </div> </div> </div> </div> <!--<script src="chart.js"></script>--> <script src="cust.js"></script> </body> </html>
-
@homoran said in Parser Adapter:
@goetschhofer sagte in Parser Adapter:
Die Regex stimmt soweit,
selbst das stimmt nicht, außer du willst den RegEx in php verwenden.
iobroker nutzt aber Javascript.Ja, dies kann ich nachvollziehen.
Beim Test mir Regex war ich offenbar zu schnell, bei Java zeigt er einen Fehler an. -
Hi Leute,
ich hätte eine Frage bzgl. Regex:
Meine Abfrage lautet: "Drive Warning"[^}]+\D\s(\d+)
Auf regex101.com bekomme ich mit meiner Abfrage den richtigen Wert:
https://regex101.com/r/NxzobQ/1wenn ich dieselbe Abfrage im Parser Adapter verwende bekomme ich den falschen Wert retour:
Wo habe ich hier einen Fehler drin, bzw. wieso bekomme ich unterschiedliche Ergebnisse ?
Beste Grüße
-
@goetschhofer sagte in Parser Adapter:
Seitenquelltext anzeigen mit rechter Maustaste:
da stehen, wie bereits vermutet, nur Variable und js-Befehle drin:
<tr><td>Heute</td> <td align="right" id="tdy_in"></td><td align="right" id="tdy_out"></td><td align="right" id="tdy_diff"></td></tr> <tr><td id="wd0"></td><td align="right" id="wd_in0"></td><td align="right" id="wd_out0"></td><td align="right" id="wd_diff0"></td></tr> <tr><td id="wd1"></td><td align="right" id="wd_in1"></td><td align="right" id="wd_out1"></td><td align="right" id="wd_diff1"></td></tr> <tr><td id="wd2"></td><td align="right" id="wd_in2"></td><td align="right" id="wd_out2"></td><td align="right" id="wd_diff2"></td></tr> <tr><td id="wd3"></td><td align="right" id="wd_in3"></td><td align="right" id="wd_out3"></td><td align="right" id="wd_diff3"></td></tr> <tr><td id="wd4"></td><td align="right" id="wd_in4"></td><td align="right" id="wd_out4"></td><td align="right" id="wd_diff4"></td></tr> <tr><td id="wd5"></td><td align="right" id="wd_in5"></td><td align="right" id="wd_out5"></td><td align="right" id="wd_diff5"></td></tr> <tr><td id="wd6"></td><td align="right" id="wd_in6"></td><td align="right" id="wd_out6"></td><td align="right" id="wd_diff6"></td></tr> </Tbody>
Dein Wert kommt nicht im Quelltext vor
-
@qlink wo ist der richtige Quelltext als code?
-
@goetschhofer ich habe für dich noch mal bei meinem WR nachgesehen, der lädt die Daten auch dynamisch.
DAs siehst du im Tab "Netzwerk"
Da musst du suchen wie der Pfad zu den Daten ist und diesen Pfad dann abgreifen.
-
@homoran said in Parser Adapter:
@goetschhofer ich habe für dich noch mal bei meinem WR nachgesehen, der lädt die Daten auch dynamisch.
DAs siehst du im Tab "Netzwerk"
Da musst du suchen wie der Pfad zu den Daten ist und diesen Pfad dann abgreifen.
Vielen Dank mal einstweilen für die Hilfe, da werde ich dann weitersuchen.
-
@homoran said in Parser Adapter:
@qlink wo ist der richtige Quelltext als code?
Wenn ich Rechtsklick und Seitenquelltext anzeigen klicke kommt Folgendes:
-
@qlink sagte in Parser Adapter:
Wenn ich Rechtsklick und Seitenquelltext anzeigen klicke kommt Folgendes:
Spoilerund welchen Wert willst du haben?
EDIT:
3 Platten von NUM 0-2\"Drive Warning\"[^\}]+[^\d]+(\d+)
Typnumber
! nicht Zahl mit Komma -
@homoran said in Parser Adapter:
"Drive Warning"[^}]+[^\d]+(\d+)
Ich will den Wert im grünen Kreis, bekomme aber den Wert im roten Kreis:
Also die Zahl am Ende dieser Zeile:
hwi_drive_warning_yesno{unit="Yes/No",sensor_type="SENSOR_TYPE_OTHER",sensor="Drive Warning",source="S.M.A.R.T.: INTEL SSDSA2CW120G3 (CVPR344400F1120LGN)",host="ASROCK"} 0
ob ich bei Typ number(,) oder number(.) im Parser Adapter auswähle macht scheinbar keinen Unterschied...
-
@qlink hast du mein Regex versucht?
Wenn es damit auch nicht klappt musst du die Regel löschen! und mit Number neu anlegen.Eine Änderung des Typs kann zu einem Hänger führen
-
@qlink Wenn das hier nicht hilft:
\"Drive Warning\"[^\}]+[^\d]+(\d+)$
kopier mal bitte den Quelltext aus dem Parser Editor hier rein.
ggf. ist der anders formatiert als im Browser -
@homoran said in Parser Adapter:
@qlink hast du mein Regex versucht?
Wenn es damit auch nicht klappt musst du die Regel löschen! und mit Number neu anlegen.Eine Änderung des Typs kann zu einem Hänger führen
Ja, der Screenshot aus meinem letzten Post ist mit deinem Regex.
Hätte jetzt auch nochmal probiert die komplette Regel zu löschen und neu anzulegen.Bekomme immer dasselbe Ergebnis bzw. den falschen Wert wie oben gepostet zurück ...
-
@homoran said in Parser Adapter:
@qlink Wenn das hier nicht hilft:
\"Drive Warning\"[^\}]+[^\d]+(\d+)$
kopier mal bitte den Quelltext aus dem Parser Editor hier rein.
ggf. ist der anders formatiert als im Browsermit diesem Regex nimmt er die Zahl zwei Stellen vorher:
seltsamerweise zeigt er aber bei Ergebnis nichts an....Hier der Code direkt aus dem Parser Editor:
-
@qlink sagte in Parser Adapter:
Ja, der Screenshot aus meinem letzten Post ist mit deinem Regex.
so was kann man auf dem Handy schlecht entziffern, der zitierte sieht anders aus
-
@qlink sagte in Parser Adapter:
mit diesem Regex nimmt er die Zahl zwei Stellen vorher:
und was steht im Datenpunkt?
@qlink sagte in Parser Adapter:
Hier der Code direkt aus dem Parser Editor:
Das sehe ich mir mal an
-
@qlink klappt bei mir einwandfrei.
Habe auch mal mit anderen Parametern probiert, bei denen ich Nachkommastellen brauche:\"Drive Warning\"[^\}]+[^\d]+([\d\.]+)