Ankündigung

Einklappen
Keine Ankündigung bisher.

Webmin-Interface für die LinKNX Konfiguration (XML)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    KNX/EIB Webmin-Interface für die LinKNX Konfiguration (XML)

    Hi!

    Da ich nicht jedesmal Visual Studio und WinSCP bemühen mag um eine Kleinigkeit an der Konfiguration zu ändern habe ich ähnlich dem Plugin-Editor des Wiregate (edit_plugin.cgi) eine vereinfachte Form für LinKNX "geschrieben". Obwohl ich alle Abhängigkeiten zum Wiregate versucht habe zu lösen muss die Datei derzeit noch zusammen mit dem wiregate-webmin installiert werden. Einfach in /usr/share/webmin/wiregate/ kopieren und mit "http://<server>:10000/wiregate/edit_linknx.cgi" aufrufen. Die Konfiguration kann wahlweise gespeichert oder gespeichert und LinKNX neu gestartet werden. Die einzige Abhängigkeit zum WG ist derzeit noch die Ausgabe der Logdateien.

    Mögliche Erweiterungen die ich schick fände:
    - Eigenständiges Webmin-Modul (module.info verfassen etc. und "editarea" von http://www.cdolivet.com/editarea/ mitliefern)
    - angelegte "Objects" analog den GAs im Plugin-Editor als Dropdown anzeigen
    - irgendwie die xsd von mumpf für einen Syntax-Check verwenden - wäre die Krönung!

    PHP-Code:
    #!/usr/bin/perl

    do '../web-lib.pl';
    init_config();
    do 
    '../ui-lib.pl';
    &
    ReadParse();

    sub restart_linknx
    {
    local $out;
        
    $out = &backquote_logged("/etc/init.d/linknx restart 2>&1 </dev/null");
    return $? ? 
    "<pre>$out</pre>" undef;
    }

    if (
    $in{'save'} && $in{'data'}) { 
        
    # CRLF 
        
    $in{'data'} =~ s/\r//g;
        
    open XML_FILE"> /var/lib/linknx/linknx.xml";
        print 
    XML_FILE $in{'data'};
        
    close XML_FILE;
        if (
    $err2) {
            &
    error($err2);
        } else {
            
    $head "<META HTTP-EQUIV=REFRESH CONTENT=10>\n";
            &
    header("LinKNX Editor",undef,undef,0,0,0,"<a href=javascript:location.reload()>Neu laden</a>",$head);
            print 
    "<h2>XML erfolgreich gespeichert</h2>";
            if (
    $in{'restart'}) {
              
    $out = &backquote_logged("/etc/init.d/linknx restart 2>&1 </dev/null");
              print 
    "zurueck:".$out;
            }
        }
    } else { 

      
    $head .= "<script language=javascript type=text/javascript src=editarea/edit_area_full.js></script>\n";
      
    $head .= "<script language=javascript type=text/javascript>";
      
    $head .= "editAreaLoader.init({ \n";
      
    $head .= "      id : \"data\"        // textarea id \n";
      
    $head .= "       ,syntax: \"xml\"            // syntax to be uses for highgliting \n";
      
    $head .= "       ,start_highlight: true        // to display with highlight mode on start-up\n";
      
    $head .= "       ,language: \"de\" \n";
      
    $head .= "});\n";
      
    $head .= "</script>\n";
      
      &
    header("LinKNX Editor",undef,undef,0,0,0,"<a href=javascript:location.reload()>Neu laden</a>",$head);
      
      
    # Editor window
      
    $w $config{'width'} || 80;
      
    $h $config{'height'} || 20;
      print &
    ui_form_start("edit_linknx.cgi""post");
      print &
    ui_hidden("save""1");
      print &
    ui_table_start("LinKNX Konfiguration"undef2);
      
    $data = &read_file_contents("/var/lib/linknx/linknx.xml");
      print &
    ui_table_row(undef"<textarea id=data name=data rows=30 cols=140 wrap=off>".$data."</textarea>",2);
      print &
    ui_table_end();
      print &
    ui_form_end([ [undef,"Speichern" ], ['restart',"Speichern & LinKNX neu starten"] ]);
      print &
    ui_hr();
      
      if (-
    "/var/log/linknx.log") {
          print 
    "<br><a href=/wiregate/view_log.cgi?view=1&file=/var/log/linknx.log target=_new>LinKNX-Logdatei anzeigen</a>";
      }
      print 
    "<br><a href=/wiregate/view_log.cgi?view=1&file=/var/log/messages&filter=linknx target=_new>Daemon-Logdatei anzeigen</a>";
    }
      
    ui_print_footer(undef$text{'index'}); 
    Grüße
    Robert
Lädt...
X