fun:energie-funk-mess-system_em_1000

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
fun:energie-funk-mess-system_em_1000 [07.10.2020 20:11. ] – [Stationswerte abfragen] djangofun: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 /dev/ttyUSB0   crw-rw----. 1 root dialout 188, 0 Oct  7 21:15 /dev/ttyUSB0
- 
- 
-==== 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: 
-<code>Jul 26 16:49:45 vml000020 kernel: usb 1-2: new full speed USB device number 3 using uhci_hcd 
-Jul 26 16:49:45 vml000020 kernel: usb 1-2: New USB device found, idVendor=0000, idProduct=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: QEMU 0.12.1 
-Jul 26 16:49:45 vml000020 kernel: usb 1-2: SerialNumber: 314159 
-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, idProduct=e0ef 
-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: ELV AG 
-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 
-</code> 
-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 //**/dev/ttyUSB0**// wie nachfolgend gezeigt ansprechen. 
- 
-==== CentOS 5.x ==== 
-Stecken wir die Station an einen CentOS 5.x Rechner an, so wird uns dies im Syslog entsprechend dokumentiert: 
-   Jan  7 19:20:35 nss kernel: usb 3-2: new full speed USB device using ohci_hcd and address 8 
-   Jan  7 19:20:35 nss kernel: usb 3-2: configuration #1 chosen from 1 choic 
-Wie auch schon meine alte Wetterstation [[wetter:ws500:start]] wird dieses Gerät auch via dem **FTDI-Kernelmodul** angesprochen. 
-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, Ltd 
-Alternativ können wir diese auch wie folgt ermitteln: 
-<code># cat /proc/bus/usb/devices 
- 
-... 
-T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  8 Spd=12  MxCh= 0 
-D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1 
-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</code> 
-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: 
-<code>Jan  7 20:43:17 nss kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device 
-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/usb/serial/ftdi_sio.c: Detected FT8U232AM 
-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/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver</code> 
-Damit nun beim Systemstart dieses Kernel-Modul automatisch geladen wird, legen wir uns eine individuelle **udev-Regel** an: 
-   # vim /etc/udev/rules.d/99-custom.rules 
-   SYSFS{idProduct}=="e0ef", SYSFS{idVendor}=="0403", RUN+="/sbin/modprobe -q ftdi_sio product=0xe0ef vendor=0x0403" 
- 
  
 ===== Software ===== ===== Software =====
Zeile 200: Zeile 125:
 */ */
 === 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''**; dieses befindet sich unter //**/usr/local/src/fhem/contrib/em1010.pl**//. Einen ersten Testabruf der Stationsdaten erfolgt mittels **''em1010.pl''**; dieses befindet sich unter //**/usr/local/src/fhem/contrib/em1010.pl**//.
Zeile 229: Zeile 154:
 </code> </code>
  
-====== FHEM - GPL'server for house automation ====== +====== FHEM - GPL'Server für die Haus Automation ====== 
-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 239: 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 /usr/local/src/fhem/fhem.cfg /etc/fhem.cfg
    # vim /etc/fhem.cfg     # vim /etc/fhem.cfg 
  
-<file bash /etc/fhem.cfg># +<file bash /etc/fhem.cfg># Logdatei mit vollständigem Pfad
-# pgm2 / autocreate configfile. Take a look at the other examples for more. +
-#+
 attr global logfile /var/log/fhem/fhem-%Y-%m.log attr global logfile /var/log/fhem/fhem-%Y-%m.log
-attr global modpath /usr/share/fhem                   where our FHEM directory is +# FHEM Arbeits-Verzeichnis 
-attr global port 7072 global            our TCP/IP port +attr global modpath /usr/local/src/fhem
-attr global statefile /var/log/fhem/fhem.save   where to save the state of the devices +"normal" verbosity (min 1, max 5) 
-attr global verbose 3                  # "normal" verbosity (min 1, max 5)+attr global verbose 3 
 +statefile in dem die Stati der Geräte gesichert werden 
 +attr global statefile /var/log/fhem/fhem.save 
 + 
 +FHEM-MOTD deaktiviert 
 +attr global motd none
  
 +# Globaler Port der WEB-GUI
 define WEB FHEMWEB 8083 global define WEB FHEMWEB 8083 global
  
-define WEBphone FHEMWEB 8084 global +# WEB-GUI absichern 
-attr WEBphone smallscreen+define allowedWEB allowed 
 +attr allowedWEB validFor WEB,WEBphone,WEBtablet 
 +attr allowedWEB basicAuth { "$user:$password" eq "admin:streng-geheimes-Passwort"
 +attr allowedWEB allowedCommands set,get
  
-define WEBtablet FHEMWEB 8085 global +# Fake FileLog Eintragfür denm Zugriff über die WEB-GUI FHEMWEB  
-attr WEBtablet touchpad +define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
- +
-# Fake FileLog entryto access the fhem log from FHEMWEB  +
-define Logfile FileLog /var/log/fhem/fhem-%Y-%m.log fakelog+
  
 define autocreate autocreate define autocreate autocreate
-attr autocreate autosave +attr autocreate filelog ./log/%NAME-%Y.log
-attr autocreate device_room %TYPE +
-attr autocreate filelog /var/log/fhem/%NAME-%Y.log +
-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:INITIALIZED usb create +
  
 +define eventTypes eventTypes ./log/eventTypes.txt
  
-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.  Verify first that /dev/xxx ist correct.+define initialUsbCheck notify global:INITIALIZED usb create
  
-#define FHZ FHZ /dev/USB0 +Definitionen der Messpunkte 
-#define CUL CUL /dev/ttyACM0@9600 1234 +define EM EM /dev/ttyUSB0 # Serieller (ttyUSB)-Port des FHZ 1000 PC
-#attr CUL rfmode HomeMatic +
- +
-#define EUL TCM 310 /dev/ttyACM0@57600 +
-#define BscBor TCM 120 /dev/ttyUSB0@9600 +
-#define BscSmartConnect TCM 310 /dev/ttyUSB0@57600 +
- +
-# Django : 2012-07-27 +
-define EM EM /dev/ttyUSB0 # the serial port of an FHZ 1000 PC+
 define Hauptzaehler EMWZ 1 define Hauptzaehler EMWZ 1
 define Gaszaehler EMGZ 9 define Gaszaehler EMGZ 9
Zeile 291: Zeile 206:
 </file> </file>
  
-==== Paketfilter iptables ==== +==== Paketfilter/Firewall ==== 
-Damit Wir mit unserem bevorzugten Webbrowser auf die Webseiten von FHEM zugreifen können, erweitern wir noch bei Bedarf unseren Paketfilter+Damit wir später von den berechtigten Hosts Verbindungen zu unserem **FHEM-Daemon** aufbauen können, müssen wir für diese noch Änderungen am Paketfilter **firewalld** vornehmen.
-   # vim /etc/sysconfig/iptables +
-<code>...+
  
-# 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 +In unserem Konfigurationsbeispiel hat unser Server, an dem der Energie-Monitor via USB-Kabel angeschlossen ist die IP-Adresse **''10.0.0.27''** und der WEB-Server die **''10.0.0.107''**. Wir brauchen also eine Firewall-Definition, die ausschließlich Verbindungen von der **Source-IP** 10.0.0.107 auf die **Destination-IP** 10.0.0.27 auf Port **8083** gestattet. 
--A INPUT -m state --state NEW -m tcp -tcp --dport 8085 -j ACCEPT +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-/Proxy-Servers also die **10.0.0.107** an. Genug der Vorrede, mit nachfolgendem Befehl wird diese restriktive Regel angelegt. 
-#+   # firewall-cmd --permanent --zone=external --add-rich-rule="rule family="ipv4" source address="10.0.0.107/32" port protocol="tcp" port="8083" destination address="10.0.0.27/32" accept" 
 + 
 +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 
 + 
 +<code>Chain IN_external_allow (1 references) 
 + pkts bytes target     prot opt in     out     source               destination          
 +    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/           tcp dpt:22 ctstate NEW,UNTRACKED 
 +   12   720 ACCEPT     tcp  --  *      *       10.0.0.107           10.0.0.27            tcp dpt:8083 ctstate NEW,UNTRACKED
 </code> </code>
-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 /etc/fhem.cfg+   # perl /usr/local/src/fhem/fhem.pl /etc/fhem.cfg
  
-Im Logfile **/var/log/fhem/fhem-2009-01.log** wird uns der Start entsprechend quittiert: +Im Logfile **/var/log/fhem/fhem-2020-10.log** wird uns der Start entsprechend quittiert: 
-<file bash /var/log/fhem/fhem-2009-01.log> +<file /var/log/fhem/fhem-2020-10.log>2020.10.07 22:37:17 1Including /etc/fhem.cfg 
-2012.07.27 14:20:26 2Telnet port 7072 opened +2020.10.07 22:37:18 3: WEB: port 8083 opened 
-2012.07.27 14:20:26 2FHEMWEB port 8083 opened +2020.10.07 22:37:18 1define Logfile FileLog ./log/fhem-%Y-%m.log fakelog: Can't open ./log/fhem-2020-10.log: Permission denied 
-2012.07.27 14:20:26 2FHEMWEB port 8084 opened +2020.10.07 22:37:18 2: eventTypes: loaded 0 events from ./log/eventTypes.txt 
-2012.07.27 14:20:26 2: FHEMWEB port 8085 opened +2020.10.07 22:37:18 3: EM opening device /dev/ttyUSB0 
-2012.07.27 14:20:26 3: EM opening device /dev/ttyUSB0 +2020.10.07 22:37:18 3: EM opened device /dev/ttyUSB0
-2012.07.27 14:20:26 3: EM opened device /dev/ttyUSB0+
 </file> </file>
  
Zeile 324: Zeile 244:
    # ps aux | grep fhem    # ps aux | grep fhem
  
-   root      4463  0. 1.1 150568 11716 pts/1    S    14:20   0:00 /usr/bin/perl /usr/bin/fhem.pl /etc/fhem.cfg+  fhem     12347  0. 1.1 180008 21296 pts/1    S    22:37   0:00 perl /usr/local/src/fhem/fhem.pl /etc/fhem.cfg
  
 Mit dem Befehl **netstat -tulpen** können wir auch noch überprüfen, ob die Ports 8083, 8084 und 8085 auch geöffnet wurden. Mit dem Befehl **netstat -tulpen** können wir auch noch überprüfen, ob die Ports 8083, 8084 und 8085 auch geöffnet wurden.
    # netstat -tulpen | grep 808    # netstat -tulpen | grep 808
  
-   tcp        0      0 0.0.0.0:8083                0.0.0.0:                  LISTEN      0          410542     4463/perl            +   tcp        0      0 0.0.0.0:8083            0.0.0.0:              LISTEN      977        161400     12347/perl63/perl
-   tcp        0      0 0.0.0.0:8084                0.0.0.0:                  LISTEN      0          410543     4463/perl            +
-   tcp        0      0 0.0.0.0:8085                0.0.0.0:                  LISTEN      0          410544     4463/perl+
  
 Nun rufen wir die Statusseite von **//FHEM//** in unserem bevorzugten Browser auf. Nun rufen wir die Statusseite von **//FHEM//** in unserem bevorzugten Browser auf.
-   $ firefox http://10.0.0.20:8083/fhem+   $ firefox http://10.0.0.27:8083/fhem
  
 {{ :fun:fhem-1.png?direct&500 |FHEM Statusanzeige}} {{ :fun:fhem-1.png?direct&500 |FHEM Statusanzeige}}
Zeile 347: 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 //**/var/log/fhem/fhem.save**// gesichert. Der status unseres FHEM-Gerätes wurde in der Logdatei //**/var/log/fhem/fhem.save**// gesichert.
    # cat /var/log/fhem/fhem.save    # cat /var/log/fhem/fhem.save
  
-<file bash /var/log/fhem/fhem.save>#Fri Jul 27 14:31:44 2012 +<file /var/log/fhem/fhem.save>setstate EDV_Schrank 0.29 kW 
-setstate EDV_Schrank 0.37 kW +setstate EDV_Schrank 2020-10-07 22:44:10 5min_pulses 29 
-setstate EDV_Schrank 2012-07-27 14:26:44 5min_pulses 37 +setstate EDV_Schrank 2020-10-07 22:44:10 5min_pulses_max 32 
-setstate EDV_Schrank 2012-07-27 14:26:44 5min_pulses_max 43 +setstate EDV_Schrank 2020-10-07 22:44:10 alarm_PA_W 0 
-setstate EDV_Schrank 2012-07-27 14:26:44 alarm_PA_W 0 +setstate EDV_Schrank 2020-10-07 22:44:10 energy_kWh 429.247 
-setstate EDV_Schrank 2012-07-27 14:26:44 energy_kWh 154.483 +setstate EDV_Schrank 2020-10-07 22:44:10 energy_kWh_d 7.140 
-setstate EDV_Schrank 2012-07-27 14:26:44 energy_kWh_d 9.055 +setstate EDV_Schrank 2020-10-07 22:44:10 energy_kWh_h 0.296 
-setstate EDV_Schrank 2012-07-27 14:26:44 energy_kWh_h 0.376 +setstate EDV_Schrank 2020-10-07 22:44:10 energy_kWh_w 49.657 
-setstate EDV_Schrank 2012-07-27 14:26:44 energy_kWh_w 64.873 +setstate EDV_Schrank 2020-10-07 22:44:10 power_kW 0.290 
-setstate EDV_Schrank 2012-07-27 14:26:44 power_kW 0.370 +setstate EDV_Schrank 2020-10-07 22:44:10 power_kW_max 0.320 
-setstate EDV_Schrank 2012-07-27 14:26:44 power_kW_max 0.430 +setstate EDV_Schrank 2020-10-07 22:44:10 price_CF 0.150 
-setstate EDV_Schrank 2012-07-27 14:26:44 price_CF 0.150 +setstate Gaszaehler 0 m3ph 
-setstate Gaszaehler 0.12 m3ph +setstate Gaszaehler 2020-10-07 22:44:10 5min_pulses 0 
-setstate Gaszaehler 2012-07-27 14:26:44 5min_pulses 1 +setstate Gaszaehler 2020-10-07 22:44:10 Rperm3_EC 100 
-setstate Gaszaehler 2012-07-27 14:26:44 Rperm3_EC 100 +setstate Gaszaehler 2020-10-07 22:44:10 act_flow_m3 0.000 
-setstate Gaszaehler 2012-07-27 14:26:44 act_flow_m3 0.010 +setstate Gaszaehler 2020-10-07 22:44:10 alarm_PA 0 Watt 
-setstate Gaszaehler 2012-07-27 14:26:44 alarm_PA 0 Watt +setstate Gaszaehler 2020-10-07 22:44:10 cum_m3 0.000 
-setstate Gaszaehler 2012-07-27 14:26:44 cum_m3 0.010 +setstate Gaszaehler 2020-10-07 22:44:10 m3ph 0.000 
-setstate Gaszaehler 2012-07-27 14:26:44 m3ph 0.120 +setstate Gaszaehler 2020-10-07 22:44:10 price_CF 0.630 
-setstate Gaszaehler 2012-07-27 14:26:44 price_CF 0.630 +setstate Hauptzaehler 0.56 kW 
-setstate Hauptzaehler 0.48 kW +setstate Hauptzaehler 2020-10-07 22:44:10 5min_pulses 7 
-setstate Hauptzaehler 2012-07-27 14:31:44 5min_pulses 6 +setstate Hauptzaehler 2020-10-07 22:44:10 RperKW_EC 150 
-setstate Hauptzaehler 2012-07-27 14:31:44 RperKW_EC 150 +setstate Hauptzaehler 2020-10-07 22:44:10 alarm_PA 0 Watt 
-setstate Hauptzaehler 2012-07-27 14:31:44 alarm_PA 0 Watt +setstate Hauptzaehler 2020-10-07 22:44:10 cum_kWh 0.047 
-setstate Hauptzaehler 2012-07-27 14:31:44 cum_kWh 0.206 +setstate Hauptzaehler 2020-10-07 22:44:10 energy 0.047 
-setstate Hauptzaehler 2012-07-27 14:31:44 energy 0.040 +setstate Hauptzaehler 2020-10-07 22:44:10 power 0.560 
-setstate Hauptzaehler 2012-07-27 14:31:44 power 0.480 +setstate Hauptzaehler 2020-10-07 22:44:10 price_CF 0.150 
-setstate Hauptzaehler 2012-07-27 14:31:44 price_CF 0.150 +setstate Hauptzaehler 2020-10-07 22:44:10 summary Pulses: Energy: 0.047 Power: 0.560 Cum: 0.047
-setstate Hauptzaehler 2012-07-27 14:31:44 summary Pulses: Energy: 0.040 Power: 0.480 Cum: 0.206+
 setstate Logfile active setstate Logfile active
 +setstate WEB 2020-10-07 22:44:07 state Initialized
 +setstate allowedWEB validFor:WEB,WEBphone,WEBtablet
 +setstate allowedWEB 2020-10-07 22:44:07 state validFor:WEB,WEBphone,WEBtablet
 setstate autocreate active setstate autocreate active
-setstate global <no definition>+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
 </file> </file>
 ===== erweiterte Konfiguration ===== ===== erweiterte Konfiguration =====
Zeile 407: Zeile 330:
    # systemctl daemon-reload    # systemctl daemon-reload
  
-Damit unser FHEM-Daemon automatisch beim Hochfahren des Rechners gestartet werden kann, legen wir uns noch ein entsprechendes Startscript an+Den **FHEM-Daemon** starten wir nun ganz einfach
-   # vim /etc/init.d/fhem+   # systemctl start fhem.service
  
-<file bash /etc/init.d/fhem>#!/bin/sh+Der Start wird im Logfile des Datenbankservers //**/var/log/fhem/fhem-2020-10.log**// entsprechend dokumentiert. 
 +   # less /var/log/fhem/fhem-2020-10.log 
 +<code>2020.10.08 08:49:23 1: Including /etc/fhem.cfg 
 +2020.10.08 08:49:23 3: WEB: port 8083 opened 
 +2020.10.08 08:49:23 2: eventTypes: loaded 25 events from ./log/eventTypes.txt 
 +2020.10.08 08:49:23 3: EM opening device /dev/ttyUSB0 
 +2020.10.08 08:49:23 3: EM opened device /dev/ttyUSB0 
 +2020.10.08 08:49:49 1: Including /var/log/fhem/fhem.save 
 +2020.10.08 08:49:49 1: usb create starting 
 +2020.10.08 08:49:49 3: Probing CUL device /dev/ttyS0 
 +2020.10.08 08:49:49 3: Probing CUL device /dev/ttyS1 
 +2020.10.08 08:49:49 1: PERL WARNING: can't getattr: Input/output error at /usr/local/src/fhem//FHEM/DevIo.pm line 426. 
 +2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS1: Input/output error 
 +2020.10.08 08:49:49 3: Probing CUL device /dev/ttyS2 
 +2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS2: Input/output error 
 +2020.10.08 08:49:49 3: Probing CUL device /dev/ttyS3 
 +2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS3: Input/output error 
 +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:21056/2020-01-26 perl:5.016003 os:linux user:fhem pid:29810) 
 +</code>
  
-$Id: fhem 19 2012-07-27 21:33:44Z dws $ +Möchten wir überprüfen, ob der FHEM-Daemon läuft, haben wir mehrere Möglichkeiten. 
-# example init script for fhem +  - **systemctl** \\ <code> systemctl status fhem.service -l</code> <html><pre class="code"> 
-+<font style="colorrgb(0, 255, 0)"><b>● </b></font><font style="colorrgb(0, 0, 0)">fhem.service - FHEM service 
-# chkconfig2345 82 28 +   Loaded: loaded (/etc/systemd/system/fhem.service; disabled; vendor preset: disabled) 
-# descriptionFHEM Home automation+   Active: <font style="color: rgb(0, 255, 0)"><b>active (running) </b></font><font style="color: rgb(0, 0, 0)">since Thu 2020-10-08 08:49:23 CEST; 2min 19s ago 
-# +  Process29809 ExecStart=/usr/bin/perl /usr/local/src/fhem/fhem.pl /etc/fhem.cfg (code=exited, status=0/SUCCESS) 
-# processname: fhem.pl + Main PID: 29810 (perl) 
-+   CGroup/system.slice/fhem.service 
-# Written by Django+           └─29810 /usr/bin/perl /usr/local/src/fhem/fhem.pl /etc/fhem.cfg
  
-DAEMON=/usr/bin/fhem.pl +Oct 08 08:49:23 vml000027.dmz.nausch.org systemd[1]: Starting FHEM service... 
-PIDFILE=/var/run/fhem.pid +Oct 08 08:49:23 vml000027.dmz.nausch.org systemd[1]: Started FHEM service.</font> 
-OPTION="/etc/fhem.conf" +</pre></html> 
-PROG="FHEM" +  - **ps** \\ <code> # ps aux | grep fhem</code><code>fhem     29810  0.0  1.1 180392 22032 ?        S    08:49   0:00 /usr/bin/perl /usr/local/src/fhem/fhem.pl /etc/fhem.cfg 
-test -x $DAEMON || exit 0+root     30096  0.0  0.0 112812   936 pts/0    S+   08:53   0:00 grep --color=auto fhem 
 +</code> 
 +  - **netstat** \\ <code> # netstat -tulpn</code><code>Active Internet connections (only servers) 
 +Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     
 +Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     
 +tcp        0      0 0.0.0.0:8083            0.0.0.0:              LISTEN      29810/perl 
 +tcp        0      0 0.0.0.0:22              0.0.0.0:              LISTEN      1152/sshd 
 +... 
 +</code> 
 + 
 +==== 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 
 + 
 +   Created symlink from /etc/systemd/system/multi-user.target.wants/fhem.service to /etc/systemd/system/fhem.service. 
 + 
 +Wollen wir überprüfen, ob der Datenbank-Daemon beim Serverstart automatisch gestartet wird, fragen wir dies mit folgendem Befehl ab. 
 +   # systemctl is-enabled fhem.service 
 + 
 +   enabled 
 + 
 +Startet der FHEM-Daemon nicht automatisch, wird ein **disabled** zurück gemeldet.
  
-. /lib/lsb/init-functions 
  
-case "$1" in 
-  start) 
-    echo -n $"Starting $PROG: " 
-    $DAEMON $OPTION 
-    echo "                                            [  OK  ]" 
-    ;; 
-  stop) 
-    pid=`ps -ef | grep "fhem.pl" | grep -v grep | awk '{ print $2}'` 
-    echo -n $"Stopping $PROG: " 
-    kill $pid 
-    echo "                                            [  OK  ]" 
-    ;; 
-  status) 
-    cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l` 
-    if [ "$cnt" -eq "0" ] ; then 
-      echo "$0 is not running" 
-    else 
-      echo "$0 is running" 
-    fi 
-    ;; 
-  *) 
-    echo "Usage: $0 {start|stop|status}" 
-  exit 1 
-esac 
  
-exit 0 
-</file> 
  
 Nun können wir bequem den **FHEM-Daemon** starten und Stoppen. Nun können wir bequem den **FHEM-Daemon** starten und Stoppen.
Zeile 497: 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
         </Location>         </Location>
  
Zeile 531: Zeile 468:
         ProxyRequests Off         ProxyRequests Off
         ProxyPreserveHost On         ProxyPreserveHost On
-        ProxyPass /fhem http://10.0.0.20:8083/fhem +        ProxyPass /fhem http://10.0.0.27:8083/fhem 
-        ProxyPassReverse /fhem http://10.0.0.20:8083/fhem+        ProxyPassReverse /fhem http://10.0.0.27:8083/fhem
  
         ErrorLog logs/fhem_error.log         ErrorLog logs/fhem_error.log
Zeile 539: Zeile 476:
 </file> </file>
 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.
-   # service httpd configtest+   # apachectl -t
  
-   Syntax OK+  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.
-   # service httpd condrestart+   # systemctl restart httpd.service
  
-   Stopping httpd:                                            [  OK  ] +Wir erreichen nun unseren vHost für FHEM ganz einfach via fhem.nausch.org. Geben wir beim Verbindungsprotokoll "nur" **http** statt **https** ein, werden wir direkt zur verschlüsselten Seite weitergeleitet.
-   Starting httpd:                                            [  OK  ] +
- +
-Wir erreichen nun unseren vHost für FHEM ganz einfach via www.fhem.nausch.org. Geben wir beim Verbindungsprotokoll "nur" **http** statt **https** ein, werden wir direkt zur verschlüsselten Seite weitergeleitet.+
    $ firefox http://fhem.nausch.org    $ firefox http://fhem.nausch.org
  
 {{ :fun:fhem-4.png?direct&500 |FHEM Bildschirmhardcopy des abgesicherten vHOSTs}} {{ :fun:fhem-4.png?direct&500 |FHEM Bildschirmhardcopy des abgesicherten vHOSTs}}
  
-==== 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 /etc/sysconfig/iptables 
-<code>... 
- 
-# 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 
-# 
- 
-... 
-</code> 
-Zum Aktivieren der neuenRegeln führn wir nun noch einen Restart des Daemons durch. 
-   # service iptables restart 
  
 ==== Datenbank-Konfiguration ==== ==== Datenbank-Konfiguration ====
  • fun/energie-funk-mess-system_em_1000.1602101499.txt.gz
  • Zuletzt geändert: 07.10.2020 20:11.
  • von django