Forum: PC-Programmierung Kann mir jemand einen kleinen Javascript Abfrage / Code aufdröseln?


von Thomas (kosmos)


Lesenswert?

Hallo, ich habe einen Router in dem ich 2 Dateien bezüglich 
Hardwaremonitoring gefunden habe (möchte nen Lüfter nachrüsten), in der 
Weboberfläche kann man die beiden Werte
=> 65°C = Lüfter ein
 < 60°C = Lüfter aus
einstellen, diese habe ich in einer Datei namens hwmon.nvramconfig 
wiedergefunden
1
 "hwmon_temp_max"   "HWMon Maximum"   "NULL" "FALSE" "0"
2
 "hwmon_temp_hyst"  "HWMon Hysteresis"  "NULL" "FALSE" "0"

in einer weiteren Datei hwmon.webservices steht folgendes
1
<fieldset>
2
        <legend><script type="text/javascript">Capture(service.hwmon_legend)</script></legend>
3
                <div class="setting">
4
                        <div class="label"><script type="text/javascript">Capture(service.hwmon_critemp)</script></div>
5
                        <input class="num" maxlength="3" size="3" name="hwmon_temp_max" value="<% nvram_get("hwmon_temp_max"); %>" />
6
                        <span class="default"><script type="text/javascript">document.write("(" + share.deflt + ": 65 &#176;C)")</script></span>
7
                </div>
8
                <div class="setting">
9
                        <div class="label"><script type="text/javascript">Capture(service.hwmon_hystemp)</script></div>
10
                        <input class="num" maxlength="3" size="3" name="hwmon_temp_hyst" value="<% nvram_get("hwmon_temp_hyst"); %>" />
11
                        <span class="default"><script type="text/javascript">document.write("(" + share.deflt + ": 60 &#176;C)")</script></span>
12
                </div>
13
</fieldset><br />

versteht jemand ob sich dieses javascript nur die Temperaturschwelle aus 
Datei 1 holt oder wertet es auch dieses "NULL" "FALSE" und "0" aus. Was 
wird wofür stehen "0" für die Temperatur und "FALSE"=deaktiviert?

Der Transistor auf dem Board wird nämlich nicht angesteuert und egal 
welche Werte ich in der Weboberfläche einstelle die Werte werden nicht 
in die Datei 1 übernommen. Ich würde es gerne per Hand reinschreiben 
aber ich verstehe den Zusammenhang bzw. die Reihenfolge mit dem "NULL" 
"FALSE" "0" nicht.

Vielleicht gibts ja jemanden der mit JS arbeitet und mir etwas zum Code 
sagen kann.

von Experte (Gast)


Lesenswert?

Aus den paar Zeilen kann man nichts schließen.

Wie soll jemand wissen, was "Capture()" und "nvram_get()" genau machen 
und was hinter den Kulissen passiert.

Wie beim Auto: Egal wie aufwendig Du das Lenkrad untersuchst, wie der 
Motor funktioniert, wirst Du so niemals heraus bekommen.

von Andre (Gast)


Lesenswert?

Thomas O. schrieb:
> hwmon.webservices

Das ist kein reines Javascript. Für mich sieht das nach einem Template 
aus, in dem noch einige Texte (z.B. "Capture(service.hwmon_legend)") 
ersetzt werden und dann daraus die HTML Ausgabe der Benutzeroberfläche 
entsteht.

Die zusätzlichen Spalten werden da auch irgendwie nicht direkt 
ausgewertet. Es gibt einen Funktionsaufruf, der nur eine Zahl zurück 
gibt. Was mit den anderen Spalten passiert kann man da so nicht heraus 
lesen.

Schau dir den HTML Quelltext im Browser an. Interessant ist diese Zeile:
> <input class="num" maxlength="3" size="3" name="hwmon_temp_max" value="<% 
nvram_get("hwmon_temp_max"); %>" />

Da muss in der HTML Ausgabe bei "value=" irgendein Zahlenwert aus der 
hwmon.nvramconfig stehen. Trage in die Config manuell Werte ein und 
schau was wo landet. Damit könntest du dann Rückschlüsse treffen, welche 
Spalte da letzten Endes ausgewertet wird.
Denkbar wäre z.B. der °C Wert (60) im Feld "NULL", Eingabe aktiv ja/nein 
im Feld "FALSE" und Standardwert bei "0". Order irgendwas komplett 
anderes, das weiß nur der Programmierer des Routers.

von Thomas (kosmos)


Lesenswert?

als die beiden oben genannten Dateien sind zumindestens komplett und 
keine Auszüge davon. Ich werde das mal per Hand wie vorgeschlagen 
ändern, wenn ich den Router nochmal öffne und den Lüfter an den 
Transistor setze da ich ihn jetzt einfach auf die 12V Stromversorgung 
des Routers geklemmt habe.

NVRAM ist Speicherbaustein in dem die ganze Konfiguration gespeichert 
wird.
1
nvram show
2
telnet_wanport=23
3
usb_mntpoint=mnt
4
wlan1_nas=
5
refresh_time=3
6
skip_amd_check=0
7
wlan1_nat=1
8
upnp_clear=1
9
tcp_congestion_control=westwood
10
pppoeserver_enabled=0
11
wlan2_mubf=0
12
lan_gateway=192.168.2.1
13
wol_enable=0
14
wlan5_akm=disabled
15
wl1_wme_txp_be=7 3 4 2 0
16
wl_phytypes=
17
router_style_dark=1
18
wlan1_gmode=1
19
clean_jffs2=0
20
radius_enabled=0
21
ses_event=2
22
dhcp6s_enable=0
23
wlan2_fc=0
24
wl1_rateset=default
25
svqos_ips=
26
wl1_wme_txp_bk=7 3 4 2 0
27
os_date=Nov 11 2020
28
pptpd_radius=0
29
pptpd_client_srvip=
30
wlan0_wep=disabled
31
wlan4_radius_port=1812
32
net.ipv4.tcp_keepalive_time=1800
33
upnp_internet_dis=0
34
pppoeserver_idle=0
35
wlan1_rateset=default
36
zabbix_enable=0
37
wlan0_frameburst=on
38
wl0_frag=2346
39
wl0_wme_ap_vi=7 15 1 6016 3008 off off
40
dr_wan_tx=0
41
wlan2_overlap=0
42
wan_ipaddr=0.0.0.0
43
pptpd_conn=64
44
openvpn_proto=udp
45
dist_type=std
46
wlan2_dtim=2

von Thomas (kosmos)


Lesenswert?

im Seitenquelltext habe ich folgendes gefunden
1
<fieldset>
2
  <legend><script type="text/javascript">Capture(service.hwmon_legend)</script></legend>
3
    <div class="setting">
4
      <div class="label"><script type="text/javascript">Capture(service.hwmon_critemp)</script></div>
5
      <input class="num" maxlength="3" size="3" name="hwmon_temp_max" value="65" />
6
      <span class="default"><script type="text/javascript">document.write("(" + share.deflt + ": 65 &#176;C)")</script></span>
7
    </div>
8
    <div class="setting">
9
      <div class="label"><script type="text/javascript">Capture(service.hwmon_hystemp)</script></div>
10
      <input class="num" maxlength="3" size="3" name="hwmon_temp_hyst" value="60" />
11
      <span class="default"><script type="text/javascript">document.write("(" + share.deflt + ": 60 &#176;C)")</script></span>
12
    </div>
13
</fieldset><br />

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.