ILC 150 ETH Webserver

Zuviel Werbung?
-> Hier kostenlos registrieren
Ah schön. Bei mir läuft die ILC schon seit längeren über meinen Router, damit ich über DynDns von woanders drauf komme. Nur ich habe den Port 5000 von dem Router auf den Port 80 weitergeleitet von der ILC. Damit ich noch ganz normal auf das Webinterface vom Router komme. Ich hab übriegens eine Fritzbox 7270.
 
Router ist bestellt - Welche dd-wrt Firmware?

Hallo,
bei der Visualisierung (Flowchief) meiner Hobbybrauerei kann ich auch über DynDns auf die Bedienoberfläche übers Internet (Internet Explorer) zugreifen, ich verwende hier ebenfalls eine FritzBox 7270. Da diese aber auf Java basiert, kann ich mit meinen Android Geräten bzw. Iphone hier nix damit anfangen...

@Portisch
Hab mir heute den gleichen Rouer bestellt, wird aller Vorraussicht am Freitag geliefert. Welche Firmware Version von dd-wrt hast du benutzt?

Danke und schöne Grüße
Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf dem WNR3500L habe ich aktuell dieses Image drauf:
ftp://dd-wrt.com/others/eko/BrainSl...dcom_K26/dd-wrt.v24-18777_NEWD-2_K2.6_big.bin

Neuere lassen sich leider nicht einspielen.
Aber auf jeden Fall schön nach Anleitung von der original Firmware auf DD-WRT umsteigen!!

Damit man über den WAN Port (Internet) auf einen internen Webserver zugreifen kann muss man das in das Firwall Script in der Webgui einspeichern:
Code:
/usr/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j logaccept

Für Builds <19969 muss man dies wegen einen Bug reinschreiben:
Code:
insmod ipt_mark
insmod xt_mark
/usr/sbin/iptables -t mangle -A PREROUTING -i ! `get_wanface` -d `nvram get wan_ipaddr` -j MARK --set-mark 0xd001
/usr/sbin/iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE
/usr/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j logaccept

Somit kann man über Port 80 dann vom Internet ins Netzwerk rein.
Dann noch den WebGui Port von 80 auf z.B. 81 ändern, JFFS2 einschalten mit USB-Stick, Optware installieren, lighttpd installieren, config einstellen, usw...
 
Hallo Daniel,

FlowChief funktioniert durchaus auf mobilen Geräten. Hierzu benötigst du serverseitig scadaApp. Dieses FlowChief Modul ermöglicht einen Zugriff auf das vollständige System, auch ohne Java. Prozessbilder oder Leitsystemkonfiguration muss dazu nicht angepasst werden. Einzig eine Lizenzerweiterung ist nötig.
Als Test kannst Du Dir gerne mal die Demoapplikation unter http://www.flowchief.de/demo/ über Dein IOs/Android Gerät ansehen.

Viele Grüße
Das FlowChief Support Team
 
Flowchief ScadaApp

Liebes Flowchief Team,
mal wieder vielen Dank für die Antwort und den Hinweis zur neuen ScadaApp. Habe diese auch schon auf euerer Webseite ausprobiert, funktioniert tadellos.
Im Übrigen bin ich auch sehr mit meiner Visualisierung von Flowchief zufrieden und auch der Support bei der Erstinstallation und sonstigen Fragen und Problemen war hervorragend. Großes Lob meinerseits, weiter so!

Schöne Grüße
Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Übrigens: Ich habe noch folgende Probleme bei der Realisierung per Jquery Mobile:

1.: Ich möchte die Bibliotheken gerne aus dem Flash vom ILC laden (damit der ILC nicht immer eine Internet-Verbindung braucht) Allerdings wird dann die CSS-Datei nicht richtig geladen. Es ist scheinbar NICHT möglich, irgendeine CSS-Datei, welche im Flash des ILC liegt, in eine HTML-Seite auf dem ILC einzubinden.
Ich vermute, es liegt an dem Webserver des ILC. Andere Dateien (Bilder, *.js, *.html, ...) funktionieren.

2.: Wenn die Webseiten auf dem ILC liegen, funktioniert der Zugriff auf die Variablen einwandfrei. Liegen die Seiten jedoch entfernt, auf einem PC, geht es nicht mehr. Außer mit dem Internet-Explorer, damit gehts.
Meine Vermutung ist, das Firefox den Zugriff absichtlich blockiert, wegen Sicherheitsbeschränkungen (cross domain request).

Etwas spät aber doch! Habe nun auch dafür eine Lösung um die CSS Datei lokal zu verwenden.
Und zwar lädt man sich diese ZIP Datei runter:
http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.zip

Der Ordner "images" wird benötigt um bei den Buttons und Listviews die Pfeile anzuzeigen.

Zusätzlich kann ich lighttpd nur empfehlen!
Habe den Webserver nun auch so eingerichtet, dass wenn ich von extern über die DYNS Adresse darauf zugreife ein Login Dialog kommt.
Intern im eigenen Netzwerk braucht man kein Login.
 
Guten Abend,
gut zu wissen, dass das so funktioniert.
Warte immer noch auf meinen Router, nachdem ich bereits zwei Netgear WNR3500L bestellt habe und diese leider immer in v2 Ausführung bekommen habe, werde ich jetzt wohl einen Asus RT-n16 verwenden.
Bin mal gespannt, ob das alles funktioniert :)

Schöne Grüße
Daniel
 
Installation Optware - Formatierung Stick

Hallo Portisch,
habe gestern meinen Router bekommen und bereits mit dd-wrt (svn 19519 mega) geflasht.
Die Installation von Optware hat soweit eigentlich auch funktioniert, jetzt habe ich aber doch noch eine Frage diesbezüglich an dich.
Wie hast du deinen Speicherstick formatiert (Dateiformat, Partitionen). Hast du eine Partition mit JFFS erstellt?

Vielleicht kannst du mir bei der Einrichtung von Lighttpd noch ein paar Hinweise geben...

Schon mal danke für die bisherige Hilfestellung!

Schöne Grüße
Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich habe einen 16GB Stick mit NTFS am Router drann.
Dieser wird als JFFS gemounted.

Das ist meine lighttpd Config mit nur den Änderungen die ich gemacht habe.
'your.dyns.address.com' muss natürlich noch durch deine Webadresse geändert werden. Auch die IPs werden nicht zu 100% stimmen.
Code:
server.modules              = (
 #                               "mod_rewrite",
 #                               "mod_redirect",
 #                               "mod_alias",
 #                               "mod_access",
 #                               "mod_cml",
 #                               "mod_trigger_b4_dl",
                                 "mod_auth",
 #                               "mod_status",
 #                               "mod_setenv",
 #                               "mod_fastcgi",
                                 "mod_proxy",
 #                               "mod_simple_vhost",
 #                               "mod_evhost",
 #                               "mod_userdir",
 #                               "mod_cgi",
 #                               "mod_compress",
 #                               "mod_ssi",
 #                               "mod_usertrack",
 #                               "mod_expire",
 #                               "mod_secdownload",
 #                               "mod_rrdtool",
 #                               "mod_accesslog"
                                 )
 ## a static document-root, for virtual-hosting take look at the
 ## server.virtual-* options
 server.document-root        = "/jffs/www/"
 ## where to send error-messages to
 server.errorlog             = "/jffs/Data/lighttperror.log"
 # files to check for if .../ is requested
 index-file.names            = ( "index.html" )
 ## set the event-handler (read the performance section in the manual)
 # server.event-handler = "freebsd-kqueue" # needed on OS X
 server.event-handler = "poll" # needed on OS X
 proxy.debug         = 0
 #### accesslog module
 accesslog.filename          = "/jffs/Data/lighttpdaccess.log"
 ######### Options that are good to be but not neccesary to be changed #######
 ## bind to port (default: 80)
 server.port                = 80
 
 auth.debug = 0
 #auth.backend = "plain"
 #auth.backend.plain.userfile = "/jffs/opt/etc/lighttpd/pass.TXT"
 auth.backend = "htpasswd"
 auth.backend.htpasswd.userfile = "/jffs/opt/etc/lighttpd/lighttpd-htpasswd.user"
 
$HTTP["host"] =~ "(your.dyns.address.com)" {
   $HTTP["url"] =~ "" {   
    auth.require = ( "" =>
         (
         "method"  => "basic",
         "realm"   => "Bitte geben Sie Benutzername und Passwort für den geheimen Bereich ein. ",
         "require" => "user=sps"
         ),
     )
   }
     $HTTP["url"] =~ "^/cgi-bin(.*)$" {
         proxy.server  = ("" => (
             ("host" => "192.168.0.20", "port" => 80)
         ))
     }
 }
 $HTTP["host"] =~ "192.168.0.1" {
     $HTTP["url"] =~ "^/cgi-bin(.*)$" {
         proxy.server  = ("" => (
             ("host" => "192.168.0.20", "port" => 80)
         ))
     }   
}
 $HTTP["host"] =~ "(router)" {
     $HTTP["url"] =~ "^/cgi-bin(.*)$" {
         proxy.server  = ("" => (
             ("host" => "192.168.0.20", "port" => 80)
         ))
     }    
 }

Hier noch ein kleiner Geheimtipp:
DD-WRT hat ja auch Samba3 drinnen. Damit kann man sich Netzlaufwerke für Windows machen. Somit kann man auf die Dateien auf dem Router ganz einfach per Windows Explorer zugreifen. Das erleichtert die Bearbeitung der WWW Sachen echt um vieles!

Das als Startup Script im Router eintragen:
Code:
mount -o bind /jffs/opt /opt
sleep 10
rm /tmp/smb.conf
echo '[global]
netbios name = ROUTER
server string = ROUTER
syslog = 10
encrypt passwords = true
obey pam restrictions = yes
preferred master = yes
os level = 20
security = user
mangled names = no
max stat cache size = 64
workgroup = MSHEIMNETZ
bind interfaces only = Yes
guest account = nobody
map to guest = Bad User
smb passwd file = /var/samba/smbpasswd
private dir = /var/samba
passdb backend = smbpasswd
log file = /var/smbd.log
max log size = 1000
socket options = TCP_NODELAY
printing = none
load printers = No
usershare allow guests = Yes
[USB-Stick]
comment = USB-Stick
path = /jffs/Data
read only = No
guest ok = Yes
force user = root
[jffs]
comment = USB-Stick-Root
path = /jffs
read only = No
guest ok = Yes
force user = root
[www]
comment = WWW
path = /jffs/www
read only = No
guest ok = Yes
force user = root' >> /tmp/smb.conf

Im Windows Explorer greife ich dann per '\\router\www' auf den Ordner zu.
 
Hallo Portisch,
vielen dank für die zusätzlichen Infos. Wie hast du deinen Stick partitioniert oder hast du hier nur eine Partition in NTFS.
Gemäß dem Wiki von dd-wrt braucht man eine Partition Optware in ext3, eine Linuxswap und eine Data bzw mount...
Hast du das auch so gemacht? In die Optware wird dann entsprechend Optware installiert.

Gruß
Daniel
 
Genau, nur eine Partition in NTFS. Das ext3 habe ich auch gelesen, hat aber ohne Probleme funktioniert.
Ich habe auf dem Stick einen Ordner 'opt' angelegt.
Der Stick wird dann beim Starten des Routers alls 'jffs' gemounted.

Dazu diese Zeile im Startupscript:
Code:
mount -o bind /jffs/opt /opt
Dann hat man das benötigte 'opt' Verzeichnis.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
okay, dann mach ich das auch mal so. Der Name der Partition ist dann egal, oder? Könnte man dann ja auch noch in Windows ändern...
HAbe jetzt die ganze Zeit entsprechend dem Wiki mit GParted gearbeitet, damit ich auch eine ext3 PArtition erstellen kann.

Schon mal vielen Dank, werde mal versuchen, deine Infos umzusetzen!

Schöne Grüße
Daniel
 
Bisherige Einstellungen

Hallo Portisch,

anbei ein paar Fotos von meiner bisherigen Konfiguration. Vielleicht könntest du diese mal mit deinen vergleichen und mir sagen, was hier noch fehlt bzw. falsch ist...

Startupskript:

StartupScript.JPG

Administration:
Administration_Management.JPG

USB:
Einstellung_USB.JPG

Status:

NAS.JPG

Falls das so stimmt, kann ich dann mit dem ganz normalen Skript aus "Optware - the right way" Optware installieren, oder?

Danke und schöne Grüße
Daniel
 
Paswortabfrage lighttpd

Hallo Portisch,

entschuldige bitte, dass ich dich nochmals belästige, aber vielleicht kannst du mir hier nochmal einen kleinen Tipp geben. Nachdem ich nun endlich meinen Asus Router so konfiguriert habe, dass endlich auch Lighttpd und der WAN Zugriff funktionieren, wollte ich nun noch die von dir bereits getätigte Passwortabfrage unterbringen.
Leider steh ich etwas auf dem Schlauch, wie ich denn die Passwortdatei erstelle. Hast du hierzu einen Tipp?

Danke und schöne Grüße
Daniel

PS. Was macht deine Visualisierung? Läuft der Lighttpd Server noch problemlos?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei mir läuft noch alles ohne Probleme!

Ich habe aber schon um einiges Weitergearbeitet.
Wegen dem Login habe ich auch etwas Zeit gebraucht:


Config:
Code:
 auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/jffs/opt/etc/lighttpd/lighttpd-htpasswd.user"

$HTTP["host"] =~ "(your.dyns.address.com)" {
   $HTTP["url"] =~ "" {   
    auth.require = ( "" =>
         (
         "method"  => "basic",
         "realm"   => "Bitte geben Sie Benutzername und Passwort für den geheimen Bereich ein. ",
         "require" => "user=sps"
         ),
     )
   }
     $HTTP["url"] =~ "^/cgi-bin(.*)$" {
         proxy.server  = ("" => (
             ("host" => "192.168.0.20", "port" => 80)
         ))
     }
}

d.h. Anfragen was über http://your.dyns.address.com reinkommen brauchen einen Login.
Über 'auth.backend.htpasswd.userfile' kann man den Pfad der Passwortdatei wo user und pass drinnen stehen angeben.
Ich hänge mal eine Datei dazu an. Es ist wie bei Apache ein MD5 checksum File.
User: sps
Pass: ilc150eth

Was ich aber noch befürchte ist wenn man per IP von aussen auf den Server zugreift kommt man trotzdem auf den Server ohne ein Login zu brauchen.
 

Anhänge

  • lighttpd-htpasswd.zip
    184 Bytes · Aufrufe: 9
Aktueller Stand meiner Automatisierung

Ich lade hier nun mal mein aktuelles Projekt hoch.
Es hat sich einiges im Javascript verändert.

Das Projekt geht natürlich nur mit den richtigen Variabeln auf der SPS. Es soll nur eine Grundlage dafür sein um sich selber was zusammen basteln zu können.

Die 'luftbefeuchtung.html' ist ausgelagert, da sie später im echtem Einsatz wieder rausfliegen wird.
Somit bleibt die 'index.html' kleiner.

Die 'GlobalFunctions.js' ist nun auch schon etwas mehr ausgereift. Die Element Suche im HTML habe ich komplett umgearbeitet.

Auch sieht man eine Einbindung von AmCharts in das Projekt. Ich habe ja OneWire Sensoren an der SPS per RS232 dranhängen.
Diese werden ausgewertet und die Daten auf einem FTP mitgeloggt.

Viel Spass damit!
1.jpg

2.png


3.jpg
 

Anhänge

  • ILC_WWW.zip
    176,6 KB · Aufrufe: 141
Hallo Portisch,
vielen Dank für deine Mühen und deine Dateien, die Screenshots schauen ja hammermäßig aus!!!
Die Passwortabfrage auf meinem Router läuft nun dank dir auch, lediglich die Kommunikation mit der SPS muss ich noch machen/ausprobieren...

Schöne Grüße
Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mich lighttpd auch noch etwas rumgespielt:

Code:
auth.debug = 0
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/jffs/opt/etc/lighttpd/lighttpd-htpasswd.user"

$HTTP["remoteip"] !~ "192\.168\." {
 auth.require = ( "" =>
     (
     "method"  => "basic",
     "realm"   => "SPS Steuerung",
     "require" => "user=sps"
     ),
 )
}

$HTTP["url"] =~ "^/cgi-bin(.*)$" {
 proxy.server  = ("" => (
  ("host" => "192.168.0.20", "port" => 80)
 ))
}

Mit dieser Config wird von allen Zugriffen die nicht eine IP wie 192.168.x.x haben (also externe Zugriffe vom Internet) ein Login benötigt.
Im internen Netzwerk haben die PCs ja eine IP wie eben 192.168.0.10 usw. und diese brauchen kein Login.

Das zweite ist die Umleitung für die XMLHTTPRequests.

Somit ist man nicht mehr wie vorher auf einen DynDNS oder IP Adresse abhängig. Ansonsten konnte brauchte man ja bei einem Zugriff über die DynDNS ein Login, über Zugriff über die IP nicht und man konnte vom Internet ohne Login auf die Seite!
 
.... Ich habe ja OneWire Sensoren an der SPS per RS232 dranhängen.
Diese werden ausgewertet und die Daten auf einem FTP mitgeloggt.
Du hast die 1-Wire Sensoren an der ILC oder an einer WAGO?

Ich kann das nur das es an einer WAGO mit OSCAT-Bibliothek funktioniert?
Geht das auch mit ILC?
Wenn ja köntest du (eventuell in einem eigenen Thread) mal eine Stichpunktartiges HowTo dafür erstellen bitte?
Ich hatte mal angefangen Sensoren im ganzen Haus zu verkabeln und wollte ursprünglich mit einer FritzBox das ganze auswerten.
Aber eine SPS wäre mir lieber weil ich hier auch interaktionen mit den Werten dann unproblmatisch durchführen könnte?

Gruß.

PS:
Ein schönes WebFrontEnd hast du da gebaut!
 
In diesem Thread geht es ja um die ILC. Du kannst entweder die Schnittstelle direkt auf der ILC verwenden oder extra eine RS232-Klemme verwenden. Aber er hat noch einen Mikrocontroller dazwischen für die Kommunikation.
 
Zurück
Oben