Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
fun:energie-funk-mess-system_em_1000 [20.04.2018 09:06. ] – Externe Bearbeitung 127.0.0.1 | fun:energie-funk-mess-system_em_1000 [07.10.2020 20:41. ] – [Programmstart] django | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Energie-Funk-Mess-System EM 1000 ====== | ====== Energie-Funk-Mess-System EM 1000 ====== | ||
- | {{ : | + | {{ : |
Zum Überwachen des Gas- und Stromverbrauchs nutze ich seit Januar 2009 das [[http:// | Zum Überwachen des Gas- und Stromverbrauchs nutze ich seit Januar 2009 das [[http:// | ||
===== Hardware ===== | ===== Hardware ===== | ||
- | {{: | + | {{: |
Das **// | Das **// | ||
+ | ==== CentOS 7.x ==== | ||
- | ==== CentOS 5.x ==== | + | Informationen über den Energie-Monitor können |
- | Stecken | + | |
- | | + | |
- | | + | |
- | 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: | + | # usb-devices |
- | # lsusb | + | < |
- | Bus 003 Device 008: ID 0403:e0ef Future Technology Devices International, | + | |
- | Alternativ können wir diese auch wie folgt ermitteln: | + | |
- | < | + | |
- | ... | + | T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev# |
- | T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev# | + | |
D: Ver= 1.10 Cls=00(> | D: Ver= 1.10 Cls=00(> | ||
- | P: Vendor=0403 ProdID=e0ef Rev= 2.00 | + | P: Vendor=0403 ProdID=e0ef Rev=02.00 |
S: Manufacturer=ELV AG | S: Manufacturer=ELV AG | ||
S: Product=ELV EM 1010 PC | S: Product=ELV EM 1010 PC | ||
- | C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA | + | 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 | 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 / | + | |
- | | + | |
- | + | ||
- | ==== 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 // | ||
- | ===== Software ===== | ||
- | ==== Perl Bibliotheken ==== | ||
- | === perl-Device-SerialPort === | ||
- | Da wir zum Auslesen der Verbrauchswerte auf **Perl** zurückgreifen wollen, installieren wir uns als erstes das betreffende Programmpaket zum Ansprechen des seriellen Posts **perl-Device-SerialPort**. | ||
- | # yum install perl-Device-SerialPort | ||
- | Was uns dieses **perl-Device-SerialPort** bietet, entnehmen wir am einfachsten dem rpm. | ||
- | # rpm -qil perl-Device-SerialPort | + | Mit dem Befehl **'' |
- | < | + | |
- | Version | + | |
- | Release | + | |
- | Install Date: Thu 26 Jul 2012 04:51:09 PM CEST Build Host: lisse.hasselt.wieers.com | + | |
- | Group : Applications/ | + | |
- | Size : 245573 | + | |
- | Signature | + | |
- | Packager | + | |
- | URL : http:// | + | |
- | Summary | + | |
- | Description : | + | |
- | This is a POSIX-based version of the Win32:: | + | |
- | Joe Doss for the MisterHouse Home Automation Package from Version 0.08 | + | |
- | of the Win32 module. He replaced calls to the Win32 API with similar | + | |
- | functions implemented using POSIX calls. While most of the testing has | + | |
- | occurred on linux, the package should work on other POSIX-compliant | + | |
- | Operating Systems. | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | </ | + | |
- | === perl-Time-HiRes === | + | # lshw -C generic |
- | Weiter wird noch das Paket **perl-Time-HiRes** von dem Projekt **FHEM** benötigt, welches wir noch installieren. | + | < |
- | # yum install perl-Time-HiRes | + | |
+ | | ||
+ | | ||
+ | | ||
+ | bus info: usb@2:2 | ||
+ | | ||
+ | | ||
+ | | ||
+ | ...</ | ||
- | Was uns dieses | + | Mit Hilfe des Befehls '' |
- | # rpm -qil perl-Time-HiRes | + | # lsusb |
- | < | + | |
- | Version | + | |
- | Release | + | |
- | Install Date: Thu 26 Jul 2012 10:58:43 PM CEST Build Host: c6b7.bsys.dev.centos.org | + | |
- | Group : Development/ | + | |
- | Size : 57406 License: GPL+ or Artistic | + | |
- | Signature | + | |
- | Packager | + | |
- | URL : http:// | + | |
- | Summary | + | |
- | Description : | + | |
- | The Time::HiRes module implements a Perl interface to the usleep, nanosleep, | + | |
- | ualarm, gettimeofday, | + | |
- | high resolution time and timers. See the " | + | |
- | scripts for usage; see your system documentation for the description of the | + | |
- | underlying nanosleep or usleep, ualarm, gettimeofday, | + | |
- | calls. | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | </ | + | |
- | === perl-Compress-Zlib === | + | |
- | Schließlich wird noch das Paket **perl-Compress-Zlib** von dem Projekt **FHEM** benötigt, welches wir noch installieren. | + | |
- | | + | |
- | Was uns dieses | + | Zur Kommunikation mit dem Messadapter erfolgt über die zugehörig angelegte Geräte-Datei **''/ |
- | # | + | # |
- | < | + | |
- | Version | + | |
- | Release | + | |
- | Install Date: Fri 27 Jul 2012 02:46:02 PM CEST Build Host: c6b7.bsys.dev.centos.org | + | |
- | Group : Development/Libraries | + | |
- | Size : 52167 License: GPL+ or Artistic | + | |
- | Signature | + | |
- | Packager | + | |
- | URL : http:// | + | |
- | Summary | + | |
- | Description : | + | |
- | The Compress:: | + | |
- | compression library. Most of the functionality provided by zlib is | + | |
- | available in Compress:: | + | |
- | The module can be split into two general areas of functionality, | + | crw-rw----. 1 root dialout 188, 0 Oct 7 21:15 /dev/ttyUSB0 |
- | namely in-memory compression/ | + | |
- | gzip files. | + | |
- | /usr/ | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | </code> | + | |
- | === perl-DBI | + | ===== Software ===== |
- | Abschließend wird noch das Paket **perl-DBI** und **perl-DBD-MySQL** von dem Projekt | + | ==== Perl Bibliotheken ==== |
+ | Zum Kommunikation unseres Servers mit dem **Energie-Funk-Mess-System EM 1000** verwenden wir das Projekt | ||
+ | # yum install perl-Device-SerialPort perl-Time-HiRes perl-Compress-Zlib -y | ||
+ | |||
+ | Da wir später die Messergebnisse auch in unserer | ||
# yum install perl-DBI perl-DBD-MySQL -y | # yum install perl-DBI perl-DBD-MySQL -y | ||
- | |||
- | Was uns dieses **perl-DBI** bietet, entnehmen wir am einfachsten dem rpm. | ||
- | # rpm -qil perl-DBI | ||
- | < | ||
- | Version | ||
- | Release | ||
- | Install Date: Fri 27 Jul 2012 07:16:50 PM CEST Build Host: c6b1.bsys.dev.centos.org | ||
- | Group : Development/ | ||
- | Size : 1733598 | ||
- | Signature | ||
- | Packager | ||
- | URL : http:// | ||
- | Summary | ||
- | Description : | ||
- | DBI is a database access Application Programming Interface (API) for | ||
- | the Perl Language. The DBI API Specification defines a set of | ||
- | functions, variables and conventions that provide a consistent | ||
- | database interface independent of the actual database being used. | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | </ | ||
- | Was uns das Paket **perl-DBD-MySQL** bietet, entnehmen wir am einfachsten dem rpm. | ||
- | # rpm -qil perl-DBD-MySQL | ||
- | |||
- | < | ||
- | Version | ||
- | Release | ||
- | Install Date: Fri 27 Jul 2012 08:31:39 PM CEST Build Host: c6b3.bsys.dev.centos.org | ||
- | Group : Development/ | ||
- | Size : 345831 | ||
- | Signature | ||
- | Packager | ||
- | URL : http:// | ||
- | Summary | ||
- | Description : | ||
- | An implementation of DBI for MySQL for Perl. | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | </ | ||
==== FHEM ==== | ==== FHEM ==== | ||
=== Download === | === Download === | ||
- | Als erstes laden wir uns das aktuelle [[http:// | + | Als erstes laden wir uns das aktuelle |
Hierzu legen wir uns erst noch den entsprechenden Zielordner an, falls noch nicht erfolgt. | Hierzu legen wir uns erst noch den entsprechenden Zielordner an, falls noch nicht erfolgt. | ||
Zeile 394: | Zeile 68: | ||
Im nächsten Schritt holen wir uns nun mit Hilfe von **wget** das entsprechende Programmarchiv. | Im nächsten Schritt holen wir uns nun mit Hilfe von **wget** das entsprechende Programmarchiv. | ||
- | # wget http:// | + | # wget http:// |
Zu gute Letzt entpacken wir das Archiv, verschieben den Ordner an Ort und Stelle und verlinken diesen entsprechend noch. | Zu gute Letzt entpacken wir das Archiv, verschieben den Ordner an Ort und Stelle und verlinken diesen entsprechend noch. | ||
- | # tar zxvf fhem-5.2.tar.gz | + | # tar zxvf fhem-6.0.tar.gz |
+ | |||
+ | # ln -s / | ||
+ | |||
+ | === System-Konfiguration === | ||
+ | Zunächst legen wir uns einen Systemuser an, unter dem später der Daemon mit den passenden Rechten laufen wird. Die **'' | ||
+ | |||
+ | # adduser --no-create-home --gid dialout --uid 977 --shell / | ||
+ | |||
+ | # ls -alF / | ||
+ | |||
+ | crw-rw----. 1 root dialout 188, 0 Oct 7 21:15 / | ||
+ | |||
+ | Für die Logdateien legen wir ein zugehöriges Verzeichnis an und weisen die Rechte dem System-User **'' | ||
+ | # mkdir / | ||
+ | # chown fhem: | ||
+ | |||
+ | |||
- | # mv / | ||
- | # ln -s / | ||
+ | /* | ||
=== 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 432: | 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 441: | 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 471: | 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 modpath |
- | # | + | # " |
+ | attr global verbose 3 | ||
+ | # Logdatei mit vollständigem Pfad | ||
attr global logfile / | attr global logfile / | ||
- | attr global modpath / | + | # statefile in dem die Stati der Geräte gesichert werden |
- | attr global port 7072 global | + | attr global statefile / |
- | attr global statefile / | + | |
- | attr global verbose 3 # " | + | |
+ | # 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 initialUsbCheck notify global: |
- | #define FHZ FHZ /dev/USB0 | + | # Definitionen der Messpunkte |
- | #define CUL CUL / | + | define EM EM / |
- | #attr CUL rfmode HomeMatic | + | |
- | + | ||
- | #define EUL TCM 310 / | + | |
- | #define BscBor TCM 120 / | + | |
- | #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 523: | 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 bash / | + | <file bash / |
- | 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 556: | 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 619: | Zeile 305: | ||
===== erweiterte Konfiguration ===== | ===== erweiterte Konfiguration ===== | ||
==== Startscript ==== | ==== Startscript ==== | ||
+ | === systemd-Startscript === | ||
+ | Zum (automatischen) Starten des Daemon benötigen wir noch ein passendes **[[https:// | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | Description=FHEM service | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Type=forking | ||
+ | User=fhem | ||
+ | Group=dialout | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target</ | ||
+ | |||
+ | Nun machen wir das Script noch dem System bekannt. | ||
+ | # systemctl daemon-reload | ||
+ | |||
Damit unser FHEM-Daemon automatisch beim Hochfahren des Rechners gestartet werden kann, legen wir uns noch ein entsprechendes Startscript an. | Damit unser FHEM-Daemon automatisch beim Hochfahren des Rechners gestartet werden kann, legen wir uns noch ein entsprechendes Startscript an. | ||
# vim / | # vim / |