Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| fun:energie-funk-mess-system_em_1000 [07.10.2020 20:01. ] – django | fun:energie-funk-mess-system_em_1000 [08.10.2020 07:14. ] (aktuell) – [Apache V-Host mit Authentifizierung] django | ||
|---|---|---|---|
| Zeile 48: | Zeile 48: | ||
| crw-rw----. 1 root dialout 188, 0 Oct 7 21:15 / | crw-rw----. 1 root dialout 188, 0 Oct 7 21:15 / | ||
| - | |||
| - | |||
| - | ==== CentOS 6.x ==== | ||
| - | Verbinden wir die Station mit einem Rechner, auf dem CentOS 6.x installiert ist, wird im syslog wesentlich mehr als bei CentOS 5.x ausgegeben: | ||
| - | < | ||
| - | Jul 26 16:49:45 vml000020 kernel: usb 1-2: New USB device found, idVendor=0000, | ||
| - | Jul 26 16:49:45 vml000020 kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | ||
| - | Jul 26 16:49:45 vml000020 kernel: usb 1-2: Product: QEMU USB Hub | ||
| - | Jul 26 16:49:45 vml000020 kernel: usb 1-2: Manufacturer: | ||
| - | Jul 26 16:49:45 vml000020 kernel: usb 1-2: SerialNumber: | ||
| - | Jul 26 16:49:45 vml000020 kernel: usb 1-2: configuration #1 chosen from 1 choice | ||
| - | Jul 26 16:49:45 vml000020 kernel: hub 1-2:1.0: USB hub found | ||
| - | Jul 26 16:49:45 vml000020 kernel: hub 1-2:1.0: 8 ports detected | ||
| - | Jul 26 16:49:46 vml000020 kernel: usb 1-2.1: new full speed USB device number 4 using uhci_hcd | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: New USB device found, idVendor=0403, | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Product: ELV EM 1010 PC | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Manufacturer: | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: configuration #1 chosen from 1 choice | ||
| - | Jul 26 16:49:47 vml000020 kernel: usbcore: registered new interface driver usbserial | ||
| - | Jul 26 16:49:47 vml000020 kernel: USB Serial support registered for generic | ||
| - | Jul 26 16:49:47 vml000020 kernel: usbcore: registered new interface driver usbserial_generic | ||
| - | Jul 26 16:49:47 vml000020 kernel: usbserial: USB Serial Driver core | ||
| - | Jul 26 16:49:47 vml000020 kernel: USB Serial support registered for FTDI USB Serial Device | ||
| - | Jul 26 16:49:47 vml000020 kernel: ftdi_sio 1-2.1:1.0: FTDI USB Serial Device converter detected | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Detected FT8U232AM | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Number of endpoints 2 | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Endpoint 1 MaxPacketSize 64 | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Endpoint 2 MaxPacketSize 64 | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: Setting MaxPacketSize 64 | ||
| - | Jul 26 16:49:47 vml000020 kernel: usb 1-2.1: FTDI USB Serial Device converter now attached to ttyUSB0 | ||
| - | Jul 26 16:49:47 vml000020 kernel: usbcore: registered new interface driver ftdi_sio | ||
| - | Jul 26 16:49:47 vml000020 kernel: ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver | ||
| - | </ | ||
| - | Da hier bereits der notwendige //FTDI Serial Converters Driver// automatisch geladen wurde, brauchen wir hier nichts weiter mehr händisch konfigurieren. | ||
| - | Wir können direkt die Station über die automatisch angelegten Gerätetreiberdatei // | ||
| - | |||
| - | ==== CentOS 5.x ==== | ||
| - | Stecken wir die Station an einen CentOS 5.x Rechner an, so wird uns dies im Syslog entsprechend dokumentiert: | ||
| - | | ||
| - | | ||
| - | Wie auch schon meine alte Wetterstation [[wetter: | ||
| - | Da das benötigte Kernel-Modul jedoch __nicht__ von Haus aus geladen worden ist, müssen wir ein klein wenig nachhelfen. | ||
| - | |||
| - | Als erstes ermitteln wir die **Product-** und **Vendor-ID** unseres Gerätes: | ||
| - | # lsusb | ||
| - | Bus 003 Device 008: ID 0403:e0ef Future Technology Devices International, | ||
| - | Alternativ können wir diese auch wie folgt ermitteln: | ||
| - | < | ||
| - | |||
| - | ... | ||
| - | T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 8 Spd=12 | ||
| - | D: Ver= 1.10 Cls=00(> | ||
| - | P: Vendor=0403 ProdID=e0ef Rev= 2.00 | ||
| - | S: Manufacturer=ELV AG | ||
| - | S: Product=ELV EM 1010 PC | ||
| - | C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA | ||
| - | I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio | ||
| - | E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
| - | E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms</ | ||
| - | Diese beiden Werte **Vendor=0403** und **ProdID=e0ef** benötigen wir nun für die weitere Konfiguration. | ||
| - | |||
| - | Einen ersten Start ermöglichen wir via: | ||
| - | # modprobe ftdi_sio vendor=0x0403 product=0xe0ef | ||
| - | Im Syslog wird dies nun erfolgreich vermerkt: | ||
| - | < | ||
| - | Jan 7 20:43:17 nss kernel: ftdi_sio 3-2:1.0: FTDI USB Serial Device converter detected | ||
| - | Jan 7 20:43:17 nss kernel: drivers/ | ||
| - | Jan 7 20:43:17 nss kernel: usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB2 | ||
| - | Jan 7 20:43:17 nss kernel: usbcore: registered new driver ftdi_sio | ||
| - | Jan 7 20:43:17 nss kernel: drivers/ | ||
| - | Damit nun beim Systemstart dieses Kernel-Modul automatisch geladen wird, legen wir uns eine individuelle **udev-Regel** an: | ||
| - | # vim / | ||
| - | | ||
| - | |||
| ===== Software ===== | ===== Software ===== | ||
| Zeile 150: | Zeile 75: | ||
| # ln -s / | # ln -s / | ||
| - | === Konfiguration === | + | === System-Konfiguration === |
| Zunächst legen wir uns einen Systemuser an, unter dem später der Daemon mit den passenden Rechten laufen wird. Die **'' | Zunächst legen wir uns einen Systemuser an, unter dem später der Daemon mit den passenden Rechten laufen wird. Die **'' | ||
| Zeile 163: | Zeile 88: | ||
| # chown fhem: | # chown fhem: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | /* | ||
| === Installation === | === Installation === | ||
| Die Installation beschließen wir nun nur noch mit folgendem Aufruf: | Die Installation beschließen wir nun nur noch mit folgendem Aufruf: | ||
| Zeile 192: | Zeile 123: | ||
| cp examples_changed/ | cp examples_changed/ | ||
| </ | </ | ||
| + | */ | ||
| === Stationswerte abfragen === | === Stationswerte abfragen === | ||
| - | Für die ersten Schritte scheint das Paket [[http://www.koeniglich.de/fhem/fhem.html|FEHM]] recht geeignet. Zumindest können wir schon mal damit die ersten (Meß-)Werte auslesen. | + | Für die ersten Schritte scheint das Paket [[https://fhem.de/fhem_DE.html|FHEM]] recht geeignet. Zumindest können wir schon mal damit die ersten (Meß-)Werte auslesen. |
| - | Einen ersten Testabruf der Stationsdaten erfolgt mittels **em1010.pl**; | + | Einen ersten Testabruf der Stationsdaten erfolgt mittels **'' |
| # / | # / | ||
| Zeile 201: | Zeile 133: | ||
| Unseren ersten Stromzähler - der mit der ID 1 - fragen wir also wie folgt ab: | Unseren ersten Stromzähler - der mit der ID 1 - fragen wir also wie folgt ab: | ||
| - | # / | + | # / |
| - | < | + | < |
| Nr devs (off 6): 1 | Nr devs (off 6): 1 | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| | | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | total energy | + | total energy |
| Alarm PA (off 45): 0 W | Alarm PA (off 45): 0 W | ||
| Price CF (off 47): 0.15 EUR/kWh | Price CF (off 47): 0.15 EUR/kWh | ||
| | | ||
| - | RAW 0300 77f2 8900 014b b417 00f3 0406 00bb | + | RAW 0300 3702 0000 0143 0d00 0035 2307 00a0 |
| - | RAW 0180 f3b7 26ab 2697 1f17 eab6 2680 268d | + | RAW 0180 aeb7 b9ab b997 b300 00ae b98b b98b |
| - | RAW | + | RAW |
| - | RAW 05dc 05</ | + | RAW 05dc 05 |
| + | </ | ||
| - | ====== FHEM - GPL' | + | ====== FHEM - GPL' |
| - | Im weiteren Verlauf betrachten wie nun das Softwareprojekt [[http://www.koeniglich.de/fhem/fhem.html|FHEM]] etwas genauer. Schließlich wollen wir ja unsere Meßpunkte | + | Im weiteren Verlauf betrachten wie nun das Softwareprojekt [[https://fhem.de/fhem_DE.html|FHEM]] etwas genauer. Schließlich wollen wir ja unsere Meßpunkte |
| - Haus-Stromzähler | - Haus-Stromzähler | ||
| - EDV-Schrank-Stromzähler | - EDV-Schrank-Stromzähler | ||
| Zeile 231: | Zeile 164: | ||
| ==== erste Konfiguration ==== | ==== erste Konfiguration ==== | ||
| Als erstes passen wir die mitgelieferte Konfigurationsdatei unseren individuellen Gegebenheiten an: | Als erstes passen wir die mitgelieferte Konfigurationsdatei unseren individuellen Gegebenheiten an: | ||
| + | # cp / | ||
| # vim / | # vim / | ||
| - | <file bash / | + | <file bash / |
| - | # pgm2 / autocreate configfile. Take a look at the other examples for more. | + | |
| - | # | + | |
| attr global logfile / | attr global logfile / | ||
| - | attr global modpath /usr/share/fhem # where our FHEM directory is | + | # FHEM Arbeits-Verzeichnis |
| - | attr global | + | attr global modpath /usr/local/src/fhem/ |
| - | attr global statefile / | + | # " |
| - | attr global verbose 3 # " | + | attr global |
| + | # statefile in dem die Stati der Geräte gesichert werden | ||
| + | attr global statefile / | ||
| + | # FHEM-MOTD deaktiviert | ||
| + | attr global motd none | ||
| + | |||
| + | # Globaler Port der WEB-GUI | ||
| define WEB FHEMWEB 8083 global | define WEB FHEMWEB 8083 global | ||
| - | define | + | # WEB-GUI absichern |
| - | attr WEBphone | + | define |
| + | attr allowedWEB validFor WEB,WEBphone, | ||
| + | attr allowedWEB basicAuth { " | ||
| + | attr allowedWEB allowedCommands set,get | ||
| - | define WEBtablet FHEMWEB 8085 global | + | # Fake FileLog |
| - | attr WEBtablet touchpad | + | define Logfile FileLog |
| - | + | ||
| - | # Fake FileLog | + | |
| - | define Logfile FileLog | + | |
| define autocreate autocreate | define autocreate autocreate | ||
| - | attr autocreate autosave | + | attr autocreate filelog |
| - | attr autocreate device_room %TYPE | + | |
| - | attr autocreate filelog | + | |
| - | attr autocreate weblink | + | |
| - | attr autocreate weblink_room Plots | + | |
| - | # Disable this to avoid looking for new USB devices on startup | + | |
| - | # Django : 2012-07-27 | + | |
| - | # initialUsbCheck disabled | + | |
| - | # define initialUsbCheck notify global: | + | |
| + | define eventTypes eventTypes ./ | ||
| - | # If the above notify did not helped, then you probably have to enable some of | + | # Disable this to avoid looking for new USB devices on startup |
| - | # the following lines. | + | define |
| - | + | ||
| - | #define | + | |
| - | #define CUL CUL / | + | |
| - | #attr CUL rfmode HomeMatic | + | |
| - | #define EUL TCM 310 / | + | # Definitionen der Messpunkte |
| - | #define BscBor TCM 120 / | + | define EM EM / |
| - | #define BscSmartConnect TCM 310 / | + | |
| - | + | ||
| - | # Django : 2012-07-27 | + | |
| - | define EM EM / | + | |
| define Hauptzaehler EMWZ 1 | define Hauptzaehler EMWZ 1 | ||
| define Gaszaehler EMGZ 9 | define Gaszaehler EMGZ 9 | ||
| Zeile 283: | Zeile 206: | ||
| </ | </ | ||
| - | ==== Paketfilter | + | ==== Paketfilter/ |
| - | Damit Wir mit unserem | + | Damit wir später von den berechtigten Hosts Verbindungen zu unserem |
| - | # vim / | + | |
| - | < | + | |
| - | # Django : 2012-07-27 Port 8083 für FHEM freigeschaltet | + | Unter **CentOS 7** wird als Standard-Firewall die dynamische **firewalld** verwendet. Ein großer Vorteil der dynamischen Paketfilterregeln ist unter anderem, dass zur Aktivierung der neuen Firewall-Regel(n) nicht der Daemon durchgestartet werden muss und somit alle aktiven Verbindungen kurz getrennt werden. Sondern unsere Änderungen können **//on-the-fly//** aktiviert oder auch wieder deaktiviert werden. |
| - | -A INPUT -m state --state NEW -m tcp -p tcp --dport 8083 -j ACCEPT | + | |
| - | -A INPUT -m state --state NEW -m tcp -p tcp --dport 8084 -j ACCEPT | + | |
| - | -A INPUT -m state --state NEW -m tcp -p tcp --dport 8085 -j ACCEPT | + | |
| - | # | + | |
| - | ... | + | In unserem Konfigurationsbeispiel hat unser Server, an dem der Energie-Monitor via USB-Kabel angeschlossen ist die IP-Adresse **'' |
| + | Mit Hilfe des Programms **firewall-cmd** legen wir nun eine **permanente** Regel in der Zone **public**, dies entspricht in unserem Beispiel das Netzwerk-Interface **eth0** mit der IP **10.0.0.27** an. Als Source-IP geben wir die IP-Adresse unseres WEB-/ | ||
| + | # firewall-cmd --permanent --zone=external --add-rich-rule=" | ||
| + | |||
| + | Zum Aktivieren brauchen wir nun nur einen reload des Firewall-Daemon vornehmen. | ||
| + | # firewall-cmd --reload | ||
| + | |||
| + | Fragen wir nun den Regelsatz unserer **iptables**-basieten Firewall ab, finden wir in der Chain **IN_public_allow** unsere aktive Regel. | ||
| + | # iptables -nvL IN_external_allow | ||
| + | |||
| + | < | ||
| + | pkts bytes target | ||
| + | 0 0 ACCEPT | ||
| + | | ||
| </ | </ | ||
| - | Zum Aktivieren der neuenRegeln führn wir nun noch einen Restart des Daemons durch. | + | |
| - | # service iptables restart | + | |
| ===== Programmstart ===== | ===== Programmstart ===== | ||
| Wir starten nunmehr zum ersten mal **FHEM**. | Wir starten nunmehr zum ersten mal **FHEM**. | ||
| - | # fhem.pl / | + | # |
| - | Im Logfile **/ | + | Im Logfile **/ |
| - | < | + | <file / |
| - | 2012.07.27 14:20:26 2: Telnet port 7072 opened | + | 2020.10.07 22:37:18 3: WEB: port 8083 opened |
| - | 2012.07.27 14:20:26 2: FHEMWEB | + | 2020.10.07 22:37:18 1: define Logfile FileLog ./ |
| - | 2012.07.27 14:20:26 2: FHEMWEB port 8084 opened | + | 2020.10.07 22:37:18 2: eventTypes: loaded 0 events from ./ |
| - | 2012.07.27 14:20:26 2: FHEMWEB port 8085 opened | + | 2020.10.07 22:37:18 3: EM opening device / |
| - | 2012.07.27 14:20:26 3: EM opening device / | + | 2020.10.07 22:37:18 3: EM opened device / |
| - | 2012.07.27 14:20:26 3: EM opened device / | + | |
| </ | </ | ||
| Zeile 316: | Zeile 244: | ||
| # ps aux | grep fhem | # ps aux | grep fhem | ||
| - | | + | fhem |
| Mit dem Befehl **netstat -tulpen** können wir auch noch überprüfen, | Mit dem Befehl **netstat -tulpen** können wir auch noch überprüfen, | ||
| # netstat -tulpen | grep 808 | # netstat -tulpen | grep 808 | ||
| - | | + | |
| - | | + | |
| - | | + | |
| Nun rufen wir die Statusseite von **// | Nun rufen wir die Statusseite von **// | ||
| - | $ firefox http:// | + | $ firefox http:// |
| {{ : | {{ : | ||
| Zeile 339: | Zeile 265: | ||
| Im Logfile wird uns dies entsprechend quittiert: | Im Logfile wird uns dies entsprechend quittiert: | ||
| - | 2012.07.27 14:31:44 0: Server shutdown | + | 2020.10.07 22:47:46 0: Server shutdown |
| Der status unseres FHEM-Gerätes wurde in der Logdatei // | Der status unseres FHEM-Gerätes wurde in der Logdatei // | ||
| # cat / | # cat / | ||
| - | < | + | <file / |
| - | setstate EDV_Schrank 0.37 kW | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate Gaszaehler 0 m3ph |
| - | setstate Gaszaehler 0.12 m3ph | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Hauptzaehler 0.56 kW |
| - | setstate Hauptzaehler 0.48 kW | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | |
| setstate Logfile active | setstate Logfile active | ||
| + | setstate WEB 2020-10-07 22:44:07 state Initialized | ||
| + | setstate allowedWEB validFor: | ||
| + | setstate allowedWEB 2020-10-07 22:44:07 state validFor: | ||
| setstate autocreate active | setstate autocreate active | ||
| - | setstate global | + | setstate eventTypes active |
| + | setstate global no definition | ||
| + | setstate initialUsbCheck 2020-10-07 22:44:10 | ||
| + | setstate initialUsbCheck 2020-10-07 22:44:07 state active | ||
| </ | </ | ||
| ===== erweiterte Konfiguration ===== | ===== erweiterte Konfiguration ===== | ||
| ==== Startscript ==== | ==== Startscript ==== | ||
| - | Damit unser FHEM-Daemon automatisch beim Hochfahren | + | === systemd-Startscript === |
| - | # vim /etc/init.d/fhem | + | Zum (automatischen) Starten |
| + | # vim /etc/systemd/ | ||
| + | <file bash / | ||
| + | Description=FHEM service | ||
| + | After=network.target | ||
| - | <file bash /etc/init.d/fhem>#!/bin/sh | + | [Service] |
| + | Type=forking | ||
| + | User=fhem | ||
| + | Group=dialout | ||
| + | WorkingDirectory=/usr/local/src/fhem | ||
| + | ExecStart=/ | ||
| - | # $Id: fhem 19 2012-07-27 21:33:44Z dws $ | + | [Install] |
| - | # example init script for fhem | + | WantedBy=multi-user.target</ |
| - | # | + | |
| - | # chkconfig: 2345 82 28 | + | |
| - | # description: | + | |
| - | # | + | |
| - | # processname: | + | |
| - | # | + | |
| - | # Written by Django | + | |
| - | DAEMON=/usr/bin/fhem.pl | + | Nun machen wir das Script noch dem System bekannt. |
| - | PIDFILE=/var/run/fhem.pid | + | # systemctl daemon-reload |
| - | OPTION="/ | + | |
| - | PROG="FHEM" | + | Den **FHEM-Daemon** starten wir nun ganz einfach. |
| - | test -x $DAEMON | + | # systemctl start fhem.service |
| + | |||
| + | Der Start wird im Logfile des Datenbankservers | ||
| + | # less /var/log/fhem/ | ||
| + | < | ||
| + | 2020.10.08 08:49:23 3: WEB: port 8083 opened | ||
| + | 2020.10.08 08:49:23 2: eventTypes: loaded 25 events from ./ | ||
| + | 2020.10.08 08:49:23 3: EM opening device / | ||
| + | 2020.10.08 08:49:23 3: EM opened device / | ||
| + | 2020.10.08 08:49:49 1: Including / | ||
| + | 2020.10.08 08:49:49 1: usb create starting | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 1: PERL WARNING: can't getattr: Input/ | ||
| + | 2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS1: Input/ | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS2: Input/ | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS3: Input/ | ||
| + | 2020.10.08 08:49:49 1: usb create end | ||
| + | 2020.10.08 08:49:49 0: Featurelevel: | ||
| + | 2020.10.08 08:49:49 0: Server started with 11 defined entities (fhem.pl: | ||
| + | </ | ||
| + | |||
| + | Möchten wir überprüfen, | ||
| + | - **systemctl** \\ < | ||
| + | <font style=" | ||
| + | | ||
| + | Active: <font style="color: rgb(0, 255, 0)">< | ||
| + | | ||
| + | Main PID: 29810 (perl) | ||
| + | | ||
| + | | ||
| + | |||
| + | Oct 08 08:49:23 vml000027.dmz.nausch.org systemd[1]: Starting FHEM service... | ||
| + | Oct 08 08:49:23 vml000027.dmz.nausch.org systemd[1]: Started FHEM service.</ | ||
| + | </ | ||
| + | | ||
| + | root | ||
| + | </ | ||
| + | - **netstat** \\ < | ||
| + | Proto Recv-Q Send-Q Local Address | ||
| + | Proto Recv-Q Send-Q Local Address | ||
| + | tcp 0 0 0.0.0.0: | ||
| + | tcp 0 0 0.0.0.0: | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | ==== automatisches Starten des Dienste beim Systemstart ==== | ||
| + | Damit nun unser MariaDBL-Server beim Booten automatisch gestartet wird, nehmen wir noch folgenden Konfigurationsschritt vor. | ||
| + | # systemctl enable fhem.service | ||
| + | |||
| + | | ||
| + | |||
| + | Wollen wir überprüfen, | ||
| + | # systemctl is-enabled fhem.service | ||
| + | |||
| + | | ||
| + | |||
| + | Startet der FHEM-Daemon nicht automatisch, | ||
| - | . / | ||
| - | case " | ||
| - | start) | ||
| - | echo -n $" | ||
| - | $DAEMON $OPTION | ||
| - | echo " | ||
| - | ;; | ||
| - | stop) | ||
| - | pid=`ps -ef | grep " | ||
| - | echo -n $" | ||
| - | kill $pid | ||
| - | echo " | ||
| - | ;; | ||
| - | status) | ||
| - | cnt=`ps -ef | grep " | ||
| - | if [ " | ||
| - | echo "$0 is not running" | ||
| - | else | ||
| - | echo "$0 is running" | ||
| - | fi | ||
| - | ;; | ||
| - | *) | ||
| - | echo " | ||
| - | exit 1 | ||
| - | esac | ||
| - | exit 0 | ||
| - | </ | ||
| Nun können wir bequem den **FHEM-Daemon** starten und Stoppen. | Nun können wir bequem den **FHEM-Daemon** starten und Stoppen. | ||
| Zeile 469: | Zeile 434: | ||
| Deny from all | Deny from all | ||
| Allow from 127.0.0.1 | Allow from 127.0.0.1 | ||
| - | Allow from 10.0.0.20/32 | + | Allow from 10.0.0.27/32 |
| - | Allow from 10.0.10.0/26 | + | Allow from 10.0.0.0/26 |
| </ | </ | ||
| Zeile 503: | Zeile 468: | ||
| ProxyRequests Off | ProxyRequests Off | ||
| ProxyPreserveHost On | ProxyPreserveHost On | ||
| - | ProxyPass /fhem http:// | + | ProxyPass /fhem http:// |
| - | ProxyPassReverse /fhem http:// | + | ProxyPassReverse /fhem http:// |
| ErrorLog logs/ | ErrorLog logs/ | ||
| Zeile 511: | Zeile 476: | ||
| </ | </ | ||
| Bevor wir den Apache-Webserver durchstarten überprüfen wir noch die Konfigurationsdatei auf schreib und Tipp-Fehler. | Bevor wir den Apache-Webserver durchstarten überprüfen wir noch die Konfigurationsdatei auf schreib und Tipp-Fehler. | ||
| - | # | + | # |
| - | Syntax OK | + | |
| Da kein Fehler enthalten ist, starten wir nun zur Aktivierung den Webserver einmal durch. | Da kein Fehler enthalten ist, starten wir nun zur Aktivierung den Webserver einmal durch. | ||
| - | # | + | # |
| - | | + | Wir erreichen nun unseren vHost für FHEM ganz einfach via fhem.nausch.org. Geben wir beim Verbindungsprotokoll " |
| - | | + | |
| - | + | ||
| - | Wir erreichen nun unseren vHost für FHEM ganz einfach via www.fhem.nausch.org. Geben wir beim Verbindungsprotokoll " | + | |
| $ firefox http:// | $ firefox http:// | ||
| {{ : | {{ : | ||
| - | ==== erweiterte iptables Paketfilterregel ==== | ||
| - | Wir haben zwar im vorgenannten Beispiel bereits über die Apache-eigenen Regeln den Zugriff auf bestimmte Hosts beschränkt. Zur Sicherheit werden wir aber nun die Paketfilterregeln noch etwas strenger auslegen. | ||
| - | # vim / | ||
| - | < | ||
| - | |||
| - | # Django : 2012-07-27 Port 8083 von IP-Adresse 10.0.0.90 für FHEM freigeschaltet | ||
| - | -A INPUT -s 10.0.0.90 -i eth1 -m tcp -p tcp --dport 8083 -j ACCEPT | ||
| - | # | ||
| - | |||
| - | ... | ||
| - | </ | ||
| - | Zum Aktivieren der neuenRegeln führn wir nun noch einen Restart des Daemons durch. | ||
| - | # service iptables restart | ||
| ==== Datenbank-Konfiguration ==== | ==== Datenbank-Konfiguration ==== | ||