{"id":175,"date":"2018-09-12T15:22:39","date_gmt":"2018-09-12T15:22:39","guid":{"rendered":"http:\/\/test1.schartel-web.de\/?page_id=175"},"modified":"2018-09-16T12:46:08","modified_gmt":"2018-09-16T12:46:08","slug":"energie-2","status":"publish","type":"page","link":"http:\/\/test1.schartel-web.de\/?page_id=175","title":{"rendered":"Energie"},"content":{"rendered":"<h1><span id=\"Smartmeter_mit_Pollin-Board_Ethersex_und_RasperryPi\">Smartmeter mit Pollin-Board, Ethersex und RasperryPi<br \/>\n<a name=\"anfang\"><\/a><\/span><\/h1><div id=\"toc_container\" class=\"toc_wrap_right toc_light_blue no_bullets\"><p class=\"toc_title\">Inhalt<\/p><ul class=\"toc_list\"><li><ul><li><\/li><li><\/li><li><\/li><li><\/li><li><ul><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><\/ul><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><li><\/li><\/ul><\/li><\/ul><\/div>\n\n<p>&nbsp;<\/p>\n<h2 id=\"Einleitung\"><span id=\"1_Einleitung\">1. Einleitung<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><br \/>\nDie Stromimpulse werden von einem Drei-Phasen-S0-Stromz\u00e4hler geliefert. Der S0-Z\u00e4hler erzeugt 1000 Impulse pro kWh.<br \/>\nDie Gasimpulse liefert ein IN-Z61, das ist ein nachr\u00fcstbarer Niederfrequenz-Impulsgeber von Elster<\/p>\n<p>Die Strom- und Gasimpulse werden mit Hilfe des Net-IO-Pollinboard und der <a href=\"http:\/\/www.ethersex.de\/\" target=\"_blank\" rel=\"noopener\">Ethersex-Software<\/a> mittels eines control6-Skripts erfasst und gez\u00e4hlt. \u00dcber ein Shellskript, das auf einem mit Debian modfizierten Seagate Goflex Net mit USB Festplatte(Stromverbrauch 8W) 24 Stunden l\u00e4uft werden die Werte des Strom- und Gasimpulse alle 5 min in eine Mysql Datenbank geschrieben.<br \/>\nDie Darstellung der Verbrauchswerte Gas und Strom erfolgt mit Hilfe eines Xampp Apache Server auf einem Windows PC. Per PHP-Skript werden die Strom-und Gasverbrauchswerte tabellarisch und graphisch mit Hilfe von jpgraph dargestellt.<\/p>\n<div id=\"attachment_179\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/startenergie_pc.jpg\"><img aria-describedby=\"caption-attachment-179\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-179 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/startenergie_pc-300x37.jpg\" alt=\"\" width=\"300\" height=\"37\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/startenergie_pc-300x37.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/startenergie_pc-768x95.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/startenergie_pc.jpg 781w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-179\" class=\"wp-caption-text\">Tabellarische Darstellung der Gas und Strom-Verbrauchswerte<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_191\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_5min.jpg\"><img aria-describedby=\"caption-attachment-191\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-191 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_5min-300x68.jpg\" alt=\"\" width=\"300\" height=\"68\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_5min-300x68.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_5min-768x173.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_5min-1024x231.jpg 1024w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_5min.jpg 1035w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-191\" class=\"wp-caption-text\">Stromverbrauch Tage 5 min<\/p><\/div>\n<div id=\"attachment_192\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_stunden.jpg\"><img aria-describedby=\"caption-attachment-192\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-192 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_stunden-300x111.jpg\" alt=\"\" width=\"300\" height=\"111\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_stunden-300x111.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/stromverbrauch-tage_stunden.jpg 623w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-192\" class=\"wp-caption-text\">Graphische Darstellung Stromverbrauch Tage Stunden<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2 id=\"kapitel_02\"><span id=\"2_Zaehlen_der_Stromimpulse_des_3-Phasen-S0-Strom-Zaehlers_mit_dem_Net-I0-Board_von_Pollin_und_Ethersex\">2. Z\u00e4hlen der Stromimpulse des 3-Phasen-S0-Strom-Z\u00e4hlers mit dem Net-I0-Board von Pollin und Ethersex<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Das Net-IO-Pollin Board wird mit einem Atmega 644 best\u00fcckt. (fuses atmega 644: ef: FF ,hf 99 oder D9, lf:FF). Der Atmega 32 ist zu klein f\u00fcr das Ethersex mit Control6 Skript. Damit das Net-IO-Board von Pollin mit der Ethersex Software geflasht werden kann ist ein ISP Programmer erforderlich (z.Bsp <a href=\"http:\/\/www.conrad.de\/ce\/ProductDetail.html?hk=SEM&amp;insert=NA&amp;WT.srch=1&amp;utm_source=google&amp;utm_medium=deeplink&amp;utm_content=dl_article&amp;utm_campaign=g_adwords&amp;productcode=191406&amp;gclid=CI--mKPAsLICFYHwzAodsWUASA\">der mySmart USB light.<\/a> Die Ethersexsoftware kann auf einem Linux-Rechner gem\u00e4\u00df der folgenden Anleitung <a href=\"http:\/\/dokucode.de\/index.php\/Live_CD\">Installation der Ethersexsoftware<\/a> installiert werden. Bei mir hat es mit der unter dem Link angegegenen Live CD nicht geklappt. Deshalb habe ich mir ein Ubuntu 10.4 als virtuelle Maschine unter VMWare auf einem Windows PC eingerichtet.<\/p>\n<h2 id=\"kapitel_03\"><span id=\"3_Ethersex_konfigurieren\">3. Ethersex konfigurieren<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Nach Installation der Ethersexsoftware in das Ethersexverzeichnis wechseln umd make menuconfig aufrufen:<br \/>\n<b> Load a Default Configuration<\/b> \u2192 Pollin AVR Net IO<br \/>\n<b>General Setup:<\/b> Prompt for Experimental Code markieren, Target Architecture: AVR, TARGET MCU: Atmega 644, MCU Frequency:16000000, Hardware\/periphery Class: NetIO VFS(Virtual File System Support): markieren, Control6 Skripts: markieren<br \/>\n<b>Network: <\/b> [*] Ethernet (ENC28J60) support \u2192 Etherrape IP address: &#8222;xxx.xxx.xxx&#8220;, Netmask: &#8222;255.255.255.0&#8220;<br \/>\n<b>Network: <\/b>[*]Default gateway: Das eigene Gateway, d.h. die IP Adresse des Routers eintragen.<br \/>\n<b>Network: <\/b>[*] TCP support<br \/>\n<b>Network: <\/b>[*] UDP support<br \/>\n<b>IO: <\/b>[*] Named and logic state I\/O \u2502 \u2502 \u2502 \u2502 (default) Named pin configuration<br \/>\n<b>IO: <\/b> [*] TTY Layer (EXPERIMENTAL) \u2192 (X) Simple<br \/>\n<b>IO: <\/b> [*] ADC input \u2192 (ARef) ADC Reference<br \/>\n<b>IO: <\/b> [*] Onewire support \u2192 [*] Onewire device detection support<br \/>\n<b>Protocols:<\/b>[*] ECMD (Ethersex Command) support \u2192 [*] TCP\/Telnet, [*] UDP<br \/>\n<b>Protocols:<\/b> [*] System clock support \u2192 [*] Date and Time support , [*] Use 32 kHz crystal to tick the clock, [*] Synchronize using NTP protocol, [*] Uptime (whm in unix format like: d days, hh:mm)<br \/>\n<b>Protocols:<\/b> [*] http Server<\/p>\n<p><b>Wenn unter Protocols [*] Use 32 kHz crystal to tick the clock aktiviert wird, muss an den PINs TOSC1(PC6) resp. TOSC2(PC7) ein 32 kHz Uhrenquarz angeschlossen werden.<\/b><br \/>\nJetzt fehlt nur noch das control6 Skript f\u00fcr Ethersex.<\/p>\n<h2 id=\"kapitel_04\"><span id=\"4_Control6-Skript_zum_Zaehlen_der_Strom-_und_Gasimpulse\">4. Control6-Skript zum Z\u00e4hlen der Strom- und Gasimpulse<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Ins Ethersexverzeichnis\/control6 wechseln. Von dem Muster f\u00fcr das control6-skript: control6.src eine Kopie erzeugen und dann die Datei control6.src mit dem Inhalt meiner pdf-Datei &#8222;control6-Skript-Ethersex-Strom-Gasz\u00e4hler.pdf&#8220; bef\u00fcllen. Mein control6-Skript sorgt daf\u00fcr, da\u00df alle 5min, 15 min, Volle Stunden und am Ende des Tages die Strom und Gasimpulse gez\u00e4hlt werden:<br \/>\n<a href=\"http:\/\/test1.schartel-web.de\/\/wp-content\/uploads\/2018\/09\/grafik\/grafik_pdf\/control6-Skript-Ethersex-Strom-Gaszaehler.pdf\">control6-Skript-Ethersex-Strom-Gasz\u00e4hler.pdf<\/a><\/p>\n<p>Hier der Link zum Download der Datei control6.src: <a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/control6.src\">control6.src<\/a><\/p>\n<h2><span id=\"5_Erlaeuterung_des_Control6-Skriptes\">5. Erl\u00e4uterung des Control6-Skriptes<\/span><\/h2>\n<h3 id=\"kapitel_05_1\"><span id=\"51_Definition_der_Variablen_CLOCK_USED_ist_fuer_die_Benutzung_der_Uhr\">5.1 Definition der Variablen (CLOCK_USED() ist f\u00fcr die Benutzung der Uhr)<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><br \/>\nCLOCK_USED() uint32_t tag; static int gasflag=0; static int stromflag=0; CONTROL_START ECMD_GLOBAL(gas_h, 1000,uint16_t); ECMD_GLOBAL(gas_l, 100,uint16_t); ECMD_GLOBAL(strom_h, 1000,uint16_t); ECMD_GLOBAL(strom_l, 900,uint16_t); ECMD_GLOBAL(wert, 0, uint16_t); ECMD_GLOBAL(stromwert, 0, uint16_t); ECMD_GLOBAL(stromz, 0,uint16_t); ECMD_GLOBAL(zaehler_5,0, uint16_t); ECMD_GLOBAL(zaehler_15, 0,uint16_t); ECMD_GLOBAL(zaehler_15_l, 0,uint16_t); ECMD_GLOBAL(zaehler_h, 0,uint16_t); ECMD_GLOBAL(zaehler_h_log, 0,uint16_t); GLOBAL(temp,int16_t,0); GLOBAL(temp_str[5],char); ECMD_GLOBAL(flag, 0,uint8_t); GLOBAL(strom_str[5],char); ECMD_GLOBAL(stromzw, 0,uint16_t); ECMD_GLOBAL(zaehler_tag, 0,uint16_t); ECMD_GLOBAL(zaehler_tagl, 0,uint16_t); \/\/GASvar ECMD_GLOBAL(gasz, 0,uint16_t); ECMD_GLOBAL(gas_zaehler_5,0, uint16_t); ECMD_GLOBAL(gas_zaehler_15, 0,uint16_t); ECMD_GLOBAL(gas_zaehler_15_l, 0,uint16_t); ECMD_GLOBAL(gas_zaehler_h, 0,uint16_t); ECMD_GLOBAL(gas_zaehler_h_log, 0,uint16_t); ECMD_GLOBAL(gas_zaehler_tag, 0,uint16_t); ECMD_GLOBAL(gas_zaehler_tagl, 0,uint16_t); ECMD_GLOBAL(zaehler_uptime, 0,uint32_t); ECMD_GLOBAL(gas_zaehler_uptime, 0,uint32_t); ECMD_GLOBAL(z_stand_strom, 0,uint32_t); ECMD_GLOBAL(z_stand_strom_analog, 0,uint32_t); ECMD_GLOBAL(z_stand_gas, 0,uint32_t); ECMD_GLOBAL(n, 0,uint32_t); ECMD_GLOBAL(m, 50000,uint32_t); ECMD_GLOBAL(zstand1008,0,uint16_t); \/\/ende gasvar<br \/>\nHierbei ist zu beachten, da\u00df z.B. die Variable &#8222;ECMD_GLOBAL(z_stand_strom, 0,uint32_t)&#8220; nicht standardm\u00e4\u00dfig definiert ist. Eine ECMD-Variable uint32_t ist standardm\u00e4\u00dfig nicht vorgesehen. Dazu sp\u00e4ter mehr.<\/p>\n<p>Die Variablen strom_h und strom_l stammen noch aus einem Versuch die S0-Impulse auch \u00fcber einen Analog-Eingang zu erfassen. Das hat mit dem s0-Z\u00e4hler nicht geklappt.<\/p>\n<h3 id=\"kapitel_05_2\"><span id=\"52_Tabellarische_Auflistung_der_Variablen_im_Control6-Skript\">5.2 Tabellarische Auflistung der Variablen im Control6-Skript<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n\n<table id=\"tablepress-1\" class=\"tablepress tablepress-id-1\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Variable<\/th><th class=\"column-2\">Erl\u00e4uterung Variable<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_h, 610,uint16_t);<\/td><td class=\"column-2\">Schwellwert hoch gas<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_l, 500,uint16_t);<\/td><td class=\"column-2\">Schwellwert niedrig gas<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">ECMD_GLOBAL(strom_h, 560,uint16_t);<\/td><td class=\"column-2\">Schwellwert hoch strom<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">ECMD_GLOBAL(strom_l, 520,uint16_t);<\/td><td class=\"column-2\">Schwellwert niedrig strom<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">ECMD_GLOBAL(wert, 0, uint16_t);<\/td><td class=\"column-2\">gemessener Digitalwert Gas am Net IO<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">ECMD_GLOBAL(stromz, 0,uint16_t);<\/td><td class=\"column-2\">stromimpuls<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_5,0, uint16_t);<\/td><td class=\"column-2\">stromimpuls 5 min<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_15, 0, uint16_t);<\/td><td class=\"column-2\">stromimpuls 15 min<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_15_l, 0, uint16_t);<\/td><td class=\"column-2\">stromimpuls 15 min log<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_h, 0,uint16_t);<\/td><td class=\"column-2\">stromimpuls stunde<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_h_log, 0,uint16_t);<\/td><td class=\"column-2\">stromimpuls stunde log<\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-1\">ECMD_GLOBAL(z_stand_strom, 0,uint32_t););<\/td><td class=\"column-2\">S0-Z\u00e4hlerstand Strom<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td class=\"column-1\">ECMD_GLOBAL(z_stand_strom_analog, 0,uint32_t);<\/td><td class=\"column-2\">Z\u00e4hlerstand Stromz\u00e4hler analog<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-1\">ECMD_GLOBAL(strom_zaehler_uptime, 0,uint32_t);<\/td><td class=\"column-2\">Stromimpulse seit Start des Pollin-NetI0<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-1\">GLOBAL(temp,int16_t,0);<\/td><td class=\"column-2\"><\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-1\">GLOBAL(temp_str[5],char);<\/td><td class=\"column-2\"><\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-1\">ECMD_GLOBAL(flag, 0,uint8_t);<\/td><td class=\"column-2\"><\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-1\">GLOBAL(strom_str[5],char);<\/td><td class=\"column-2\"><\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td class=\"column-1\">ECMD_GLOBAL(stromzw, 0,uint16_t);<\/td><td class=\"column-2\"><\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_tag, 0,uint16_t);<\/td><td class=\"column-2\">stromimpuls tag<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-1\">ECMD_GLOBAL(zaehler_tagl, 0,uint16_t);<\/td><td class=\"column-2\">stromimpuls tag log<\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td class=\"column-1\">\/\/GASvar<\/td><td class=\"column-2\"><\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gasz, 0,uint16_t);<\/td><td class=\"column-2\">gasimpuls<\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_5, 0, uint16_t);<\/td><td class=\"column-2\">gasimpuls 5 min<\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_15, 0, uint16_t);<\/td><td class=\"column-2\">gasimpuls 15 min<\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_15_l, 0, uint16_t);<\/td><td class=\"column-2\">gasimpuls 15 min log<\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_h, 0,uint16_t);<\/td><td class=\"column-2\">gasimpuls stunde<\/td>\n<\/tr>\n<tr class=\"row-29\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_h_log, 0,uint16_t);<\/td><td class=\"column-2\">gasimpuls stunde log<\/td>\n<\/tr>\n<tr class=\"row-30\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_tag, 0,uint16_t);<\/td><td class=\"column-2\">gasimpuls tag<\/td>\n<\/tr>\n<tr class=\"row-31\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_tagl, 0,uint16_t);<\/td><td class=\"column-2\">gasimpuls tag log<\/td>\n<\/tr>\n<tr class=\"row-32\">\n\t<td class=\"column-1\">ECMD_GLOBAL(z_stand_gas, 0,uint32_t);<\/td><td class=\"column-2\">Z\u00e4hlerstand Gasz\u00e4hler<\/td>\n<\/tr>\n<tr class=\"row-33\">\n\t<td class=\"column-1\">ECMD_GLOBAL(gas_zaehler_uptime, 0,uint32_t);<\/td><td class=\"column-2\">Stromimpulse seit Start des Pollin-NetI0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-1 from cache -->\n<h3 id=\"kapitel_05_3\"><span id=\"53_Definition_der_PortsAktivieren_des_externen_Interrupts_an_Int0_zum_Zaehlen_der_Stromimpulse\">5.3 Definition der Ports,Aktivieren des externen Interrupts an Int0 zum Z\u00e4hlen der Stromimpulse<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Die o.g. Definitionen wurden in einen sog. Thread gepackt, der Thread Strom wird weiter unten im Skript einmal gestartet.<br \/>\nTHREAD(strom)<br \/>\n\/\/ Pullup-Widerstaende aktivieren<br \/>\nPORTD |= _BV(PORTD2); \/\/ activate pullup on D2<br \/>\nDDRD &amp;= ~_BV(DDD2); \/\/ set D2 to input<br \/>\nDDRD &amp;= ~_BV(DDD3); \/\/ set D3 to input (PIN16 des Atmega 644 bzw. PIN 1 Ext, hier wird S0+ ausgang des 3-Phasen-S0-Stromz\u00e4hlers angeschlossen)<br \/>\nPORTD |= (1&lt;&lt;PORTD3); dnl Pull-UpWiderstand PD 3 zuschalten _EIMSK |= _BV(INT0); \/\/ external interrupt request 0 enable<br \/>\n_EICRA |= (1 &lt;&lt; ISC01) | (0&lt;&lt; ISC00);\/\/ interrupt request the falling edge of INT0 generates an interrupt request.<br \/>\nTHREAD_END(strom)<\/p>\n<div id=\"attachment_197\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-board-S0-Stromzaehler-900x434.jpg\"><img aria-describedby=\"caption-attachment-197\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-197 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-board-S0-Stromzaehler-900x434-300x145.jpg\" alt=\"\" width=\"300\" height=\"145\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-board-S0-Stromzaehler-900x434-300x145.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-board-S0-Stromzaehler-900x434-768x370.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-board-S0-Stromzaehler-900x434.jpg 900w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-197\" class=\"wp-caption-text\">Blockschaltbild Pollinboard S0-Z\u00e4hler<\/p><\/div>\n<p>&nbsp;<\/p>\n<p><b>Thread Strom beim Start einmal, Thread adc0 endlos ausf\u00fchren<\/b><\/p>\n<p>ON STARTUP DO<br \/>\ndnl THREAD_START(temploop)<br \/>\nTHREAD_START(strom)<br \/>\nTHREAD_RESTART(adc0)<br \/>\nEND<\/p>\n<p><a name=\"f\u00fcnfvier\"><\/a><\/p>\n<h3><span id=\"54_Thread_adc0_Erfassung_des_Gasimpulses\">5.4 Thread adc0, Erfassung des Gasimpulses<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<h3><span id=\"i\"><\/span><\/h3>\n<div id=\"attachment_196\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-Board-Gaszaehler.jpg\"><img aria-describedby=\"caption-attachment-196\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-196 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-Board-Gaszaehler-300x154.jpg\" alt=\"\" width=\"300\" height=\"154\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-Board-Gaszaehler-300x154.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-Board-Gaszaehler-768x395.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Pollin-Board-Gaszaehler.jpg 900w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-196\" class=\"wp-caption-text\">Blockschaltbild Pollinboard-Gasz\u00e4hler<\/p><\/div>\n<p><strong>THREAD(adc0)<\/strong><\/p>\n<p>wert = ADC_GET(0);<br \/>\nif ((wert &gt; gas_h) &amp;&amp; (gasflag==0)) {gasz++;gas_zaehler_15 ++;gas_zaehler_h ++;<br \/>\ngas_zaehler_tag ++;z_stand_gas++;gas_zaehler_uptime++;gasflag=1;}<br \/>\nelse<br \/>\nif ((wert &lt; gas_l&#8220;) &amp;&amp; (gasflag==1)) {gasflag=0;}<br \/>\nTHREAD_END(adc0)<\/p>\n<p>In der Variablen &#8222;wert&#8220; wird der aktuelle Wert am Analog\/digital-Eingang adc0=PA0=PIN 40 erfasst. Sobald der Schalter im Gasimpulsz\u00e4hler geschlossen wird, das ist der Fall wenn ein Gasimpuls gegeben wird, liegt an ADC0 5V an. Theoretisch hat die Variable &#8222;wert&#8220; dann den Wert 1023. Wird kein Gasimpuls gegeben ist der Schalter offen, die Variable &#8222;wert&#8220;hat dann den Wert 0.Die beiden Zust\u00e4nde werden mit den Variablen gas_h=1000 und gas_l=100 verglichen.<br \/>\nIst die Variable &#8222;wert&#8220; gr\u00f6\u00dfer als gas_h und die Variable gas_flag=0, dann werden die Variablen gasz;gas_zaehler_15;gas_zaehler_h gas_zaehler_tag;z_stand_gas;gas_zaehler_uptime um 1 hochgez\u00e4hlt, dar\u00fcber hinaus wird die Variable gasflag auf 1 gesetzt. Sobald die Variable &#8222;wert&#8220; den Wert der Variablen gas_l unterschreitet und die Variable gasflag=1 ist, wird die Variable gasflag auf 0 gesetzt. Beim ersten Start des Skripts wird die Variable gasflag mit static int gasflag=0 auf 0 gesetzt.<\/p>\n<h3><span id=\"55_Erfassung_der_Gas-_und_Stromimpulse_alle_5_min_15_min_Volle_Stunde_Mitternacht\">5.5 Erfassung der Gas- und Stromimpulse alle 5 min, 15 min, Volle Stunde, Mitternacht<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>ON ONCE (CLOCK_MIN == 0) DO<br \/>\nif (CLOCK_HOUR == 0) {<br \/>\nzaehler_tagl=zaehler_tag;<br \/>\nzaehler_tag = 0;<br \/>\ngas_zaehler_tagl=gas_zaehler_tag;<br \/>\ngas_zaehler_tag = 0;<br \/>\n}<br \/>\nzaehler_5 = stromz;<br \/>\nstromz = 0;<br \/>\nzaehler_15_l=zaehler_15;<br \/>\nzaehler_15=0;<br \/>\nzaehler_h_log=zaehler_h;<br \/>\nzaehler_h=0;<br \/>\ngas_zaehler_5 = gasz;<br \/>\ngasz = 0;<br \/>\ngas_zaehler_15_l=gas_zaehler_15;<br \/>\ngas_zaehler_15=0;<br \/>\ngas_zaehler_h_log=gas_zaehler_h;<br \/>\ngas_zaehler_h = 0;<br \/>\nEND<\/p>\n<p>Hier als Beispiel das Wegschreiben der Werte zur vollen Stunde und um Mitternacht. Hat die interne Uhr z.B. den Wert 14.00, dann wird:<br \/>\nStrom:<br \/>\ndie Variable stromz auf 0 gesetzt und in der Variablen zaehler_5 gespeichert \/\/ 5min wert stromz\u00e4hler<br \/>\ndie Variable zaehler_15 auf 0 gesetzt und in der Variablen zaehler_15_l gespeichert\/\/15min wert stromz\u00e4hler<br \/>\ndie Variable zaehler_h auf 0 gesetzt und in der Variablen zaehler_h_log gespeichert\/\/Stundenwert wert stromz\u00e4hler<br \/>\nGas:<br \/>\ndie Variable gasz auf 0 gesetzt und in der Variablen gas_zaehler_5 gespeichert \/\/ 5min wert gasz\u00e4hler<br \/>\ndie Variable gas_zaehler_15 auf 0 gesetzt und in der Variablen gas_zaehler_15_l gespeichert\/\/15min wert gasz\u00e4hler<br \/>\ndie Variable gas_zaehler_h auf 0 gesetzt und in der Variablen gas_zaehler_h_log gespeichert\/\/Stundenwert wert gasz\u00e4hler<br \/>\num Mitternacht wird zus\u00e4tzlich diese Schleife aktiv:<br \/>\nif (CLOCK_HOUR == 0) {<br \/>\nzaehler_tagl=zaehler_tag;<br \/>\nzaehler_tag = 0;<br \/>\ngas_zaehler_tagl=gas_zaehler_tag;<br \/>\ngas_zaehler_tag = 0;<br \/>\n}<\/p>\n<p>Jetzt wird:<br \/>\ndie Variable zaehler_tag auf 0 gesetzt und in der Variablen zaehler_tagl gespeichert \/\/ wert gasz\u00e4hler Mitternacht<br \/>\nGas die Variable gas_zaehler_tag auf 0 gesetzt und in der Variablen gas_zaehler_tagl gespeichert \/\/ wert gasz\u00e4hler Mitternacht<br \/>\nAnaloges passiert alle 5 min bzw. 15 min mit den Zeilen ON ONCE CLOCK_MIN(== 05),ON ONCE CLOCK_MIN(== 10), ON ONCE CLOCK_MIN(== 15) DO usw&#8230;..<\/p>\n<h3><span id=\"56_Interrupt_fuer_Stromzaehler\">5.6 Interrupt f\u00fcr Stromz\u00e4hler<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>ISR(INT0_vect)<br \/>\n{<br \/>\nstromz++;<br \/>\nzaehler_15++;<br \/>\nzaehler_h++;<br \/>\nzaehler_uptime++;<br \/>\nzaehler_tag++;<br \/>\nz_stand_strom++;<br \/>\nz_stand_strom_analog++;<br \/>\nzstand1008++;<br \/>\nif (zstand1008 == 252) {<br \/>\nz_stand_strom=z_stand_strom-2;<br \/>\nz_stand_strom_analog=z_stand_strom_analog-2;<br \/>\nzstand1008 = 0;<br \/>\n}<br \/>\nwhile (n &lt;= m)<br \/>\n{<br \/>\nn++;<br \/>\n}<br \/>\nn=0;<\/p>\n<p>Sobald der s0-Z\u00e4hler einen Impuls (Impulsl\u00e4nge= 90 ms) liefert, genauer gesagt die fallende Flanke des Impulses erreicht wird (siehe _EICRA |= (1 &lt;&lt; ISC01) | (0&lt;&lt; ISC00)), springt das Programm in die Interruptroutine ISR(INT0_vect) und z\u00e4hlt die Variablen dort um jeweils 1 hoch.<\/p>\n<h3><span id=\"57_Ausgleich_der_Diskrepanz_zwischen_gezaehlten_Impulsen_und_Zaehlerstaenden_AnalogStromzaehler_und_S0-Stromzaehler\">5.7 Ausgleich der Diskrepanz zwischen gez\u00e4hlten Impulsen und Z\u00e4hlerst\u00e4nden AnalogStromz\u00e4hler und S0-Stromz\u00e4hler<\/span><\/h3>\n<p>A<a href=\"http:\/\/schartel-web.de\/energie.html#anfang\">n den Anfang der Seite<\/a><\/p>\n<p>zstand1008++;<br \/>\nif (zstand1008 == 252) {<br \/>\nz_stand_strom=z_stand_strom-2;<br \/>\nz_stand_strom_analog=z_stand_strom_analog-2;<br \/>\nDa es eine Diskrepanz zwischen den gez\u00e4hlten Impulsen und den Z\u00e4hlerst\u00e4nden auf dem analogen Stromz\u00e4hler und dem s0-Z\u00e4hler gibt, die Genauigkeitsklass ist 1, das hei\u00dft es kann eine Ungenauigkeit von 1% entstehen,wurde das obige Codeschnipsel eingef\u00fcgt.Immer dann wenn die Anzahl der Stromimpulse 252 erreicht, werden von den Z\u00e4hlerst\u00e4nden 2 Impulse abgezogen. Anders herum gesagt eine Anzahl von 1008 Stromimpulsen entspricht einem Verbrauch von 1kWh auf dem anaolgen Stromz\u00e4\u00f6hler und dem S0-Stromz\u00e4hler.<\/p>\n<p><a name=\"f\u00fcnfacht\"><\/a><\/p>\n<h3><span id=\"58_8222Bremsen8220_der_Geschwindigkeit_des_Interrupts\">5.8 &#8222;Bremsen&#8220; der Geschwindigkeit des Interrupts<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>while (n &lt;= m)<br \/>\n{<br \/>\nn++;<br \/>\n}<br \/>\nDas obige Codeschnipsel wurde eingef\u00fcgt, weil der Interrupt zu schnell ist. Der Interrupt bleibt solange in der Schleife bis der Wert von n den Wert von m erreicht hat, das hei\u00dft 50.000.<\/p>\n<p><a name=\"f\u00fcnfneun\"><\/a><\/p>\n<h3><span id=\"59_Codeschnipsel_fuer_die_Anzeige_von_Strom-_und_Gasimpulsen_auf_einem_vierzeiligen_mit_Ethersex_kompatiblen_20-Zeichen-Display\">5.9 Codeschnipsel f\u00fcr die Anzeige von Strom- und Gasimpulsen auf einem vierzeiligen mit Ethersex kompatiblen 20-Zeichen-Display<\/span><\/h3>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>THREAD(disp) TTY_CLEAR() TTY_GOTO(0,0) TTY_WRITE_TIME() TTY_GOTO(0,10) dnl TTY_WRITE(`&#8220;%5sC&#8220;&#8218;, temp_str) TTY_GOTO(1,0) TTY_WRITE(&#8222;Stromzaehler:%3d&#8220;,stromz) TTY_GOTO(2,0) TTY_WRITE(&#8222;Strom 5min=%d&#8220;,zaehler_5) stromzw=zaehler_5*100\/15; itoa_fixedpoint(stromzw, 0, strom_str); TTY_GOTO(3,0) TTY_WRITE(&#8222;Watth 5min=%s&#8220;,strom_str) THREAD_END(disp) THREAD(dispr) TTY_CLEAR() TTY_GOTO(0,0) TTY_WRITE(&#8222;%04d-%02d-%02d&#8220;, CLOCK_YEAR(), CLOCK_MONTH(), CLOCK_DAY()) TTY_GOTO(1,0) TTY_WRITE_TIME() TTY_GOTO(1,10) TTY_GOTO(2,0) TTY_WRITE(&#8222;Strom 5min=%d&#8220;,zaehler_5) TTY_GOTO(3,0) TTY_WRITE(&#8222;Strom Stunde=%d&#8220;,zaehler_h) THREAD_END(dispr) THREAD(disptag) TTY_CLEAR() TTY_GOTO(0,0) TTY_WRITE(&#8222;%04d-%02d-%02d&#8220;, CLOCK_YEAR(), CLOCK_MONTH(), CLOCK_DAY()) TTY_GOTO(0,11) TTY_WRITE_TIME() TTY_GOTO(1,0) TTY_WRITE(&#8222;Strom Tag=%5d&#8220;,zaehler_tag) TTY_GOTO(2,0) TTY_WRITE(&#8222;Strom Stunde=%d&#8220;,zaehler_h) THREAD_END(disptag) ON (PIN_RISING(KEY)) DO flag=flag+1; END<\/p>\n<p>Wenn an PIN PD5=named PIN &#8222;Key&#8220; ein Taster angeschlossen wird kann das Display umgeschaltet werden. Hier wird der als Ausgang definierte PIN PA3=named PIN p4 als Hilfspin benutzt(siehe auch Datei: &#8222;\/ethersexverzeichnis\/pinning\/named_pin\/default&#8220;).Auf die Displayvariante m\u00f6chte ich momentan nicht weiter eingehen.<\/p>\n<p>ON (PIN_RISING(KEY) &amp;&amp; flag==1) DO PIN_SET(p4); END ON ((PIN_RISING(KEY)) &amp;&amp; flag==2) DO PIN_CLEAR(p4); END ON ((PIN_RISING(KEY)) &amp;&amp; flag==3) DO PIN_CLEAR(p4); flag=0; END ON ((PIN_HIGH(p4)) &amp;&amp; flag==1) DO THREAD_STOP(disptag) THREAD_STOP(disp) THREAD_START(dispr) END ON ((PIN_LOW(p4)) &amp;&amp; flag==2) DO THREAD_STOP(disptag) THREAD_STOP(dispr) THREAD_START(disp) END ON ((PIN_LOW(p4)) &amp;&amp; (flag==3) || flag==0) DO THREAD_START(disptag) THREAD_STOP(dispr) THREAD_STOP(disp) END<\/p>\n<p><a name=\"sechs\"><\/a><\/p>\n<h2><span id=\"6_Weitere_in_Ethersex_notwendig_anzupassende_Dateien\">6. Weitere in Ethersex notwendig anzupassende Dateien<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/default\">\/ethersexverzeichnis\/pinning\/named_pin\/default<\/a><\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/netio.m4\">\/ethersexverzeichnis\/pinning\/hardware\/netio.m4<\/a><\/p>\n<p><a href=\"http:\/\/schartel-web.de\/dateien\/control6-header.m4\">\/ethersexverzeichnis\/control6\/control6-header.m4<\/a><\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/ecmd.c\">\/ethersexverzeichnis\/control6\/ecmd.c<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Die Dateien &#8222;control6-header.m4&#8220; und &#8222;ecmd.c&#8220; sind so modifiziert, da\u00df auch u_int32-Variablen im control6-Skript akzeptiert werden.<\/p>\n<h2><span id=\"7_Anzeige_der_gezaehlten_Impulse_ueber_die_Ethersex-Web-Oberflaeche\">7. Anzeige der gez\u00e4hlten Impulse \u00fcber die Ethersex-Web-Oberfl\u00e4che<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Mit Hilfe der Datei <a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/xy.ht.m4\">\/ethersexverzeichnis\/embed\/xy.ht.m4<\/a> k\u00f6nnen die gez\u00e4hlten Impulse auf der Weboberflache angezeigt werden. Damit die st\u00e4ndige automatische Aktualiserung der Websetie funktioniert<\/p>\n<p>Mit dem Austausch der Startseite von Ethersex &#8222;&#8220; <a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/idx.ht.m4\">ethersexverzeichnis\/embed\/idx.ht.m4<\/a> kann die Webseite mit &#8222;IP-Adresse Pollin Board\/xy.ht&#8220; direkt aufgerufen werden.<\/p>\n<div id=\"attachment_194\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/werte_energiezaehler.jpg\"><img aria-describedby=\"caption-attachment-194\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-194 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/werte_energiezaehler-300x131.jpg\" alt=\"\" width=\"300\" height=\"131\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/werte_energiezaehler-300x131.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/werte_energiezaehler-768x335.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/werte_energiezaehler.jpg 900w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-194\" class=\"wp-caption-text\">Webseite Werte Energiez\u00e4hler<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2><span id=\"8_Kompilieren_der_so_angepassten_Ethersex_Software_und_flashen_des_Net-IO-PollinBoard\">8. Kompilieren der so angepassten Ethersex Software und flashen des Net-IO-PollinBoard<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Nachdem nun alle Vorbereitungen abgeschlossen sind, kann kompiliert werden. Dazu ins Ethersex-Verzeichnis wechseln und &#8222;make&#8220; eingeben. Am Ende entsteht eine Hex-Datei &#8222;ethersex.hex&#8220; die nur noch in das Pollin Board geflasht werden mu\u00df.<br \/>\nDen ISP-Programmer mySmart USB light oder USBasp mit dem ISP-Wannenstecker am Pollinboard verbinden (Achtung f\u00fcr den mySmart USB mus\u00df noch ein Adapter 6polig auf 10 Polig gebaut werden).<br \/>\nMit dem Befehl<\/p>\n<p>f\u00fcr den USBasp: sudo avrdude -p m644 -P lpt1 -c usbasp -U flash:w:ethersex.hex<br \/>\nf\u00fcr den mySmart USB light: sudo avrdude -p m644P -P \/dev\/ttyUSB0 -c stk500v2 -U flash:w:ethersex.hex<\/p>\n<p>das Pollin Board flashen.<\/p>\n<p>Wenn nun die Signale angeschlossen sind, werden die Impulse bereits gez\u00e4hlt. Wer mit nur mit Tageswerten zufrieden ist, ist hier bereits fertig. F\u00fcr die Aufzeichnung der Daten in einer Datenbank wird weitere Hardware ben\u00f6tigt.<\/p>\n<h2><span id=\"9_Das_NAS-System_Goflex-Net_von_Seagate_modifiziert_mit_Debian_als_Datenlogger\">9. Das NAS-System Goflex-Net von Seagate modifiziert mit Debian als Datenlogger<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Das NAS-System Goflex-Net von Seagate modifiziert mit Debian als Datenlogger<\/p>\n<p>Das NAS System <a href=\"http:\/\/www.amazon.de\/s\/ref=nb_sb_noss_1?__mk_de_DE=%C5M%C5Z%D5%D1&amp;url=search-alias%3Daps&amp;field-keywords=goflex+net&amp;x=0&amp;y=0\">Goflex Net (Preis &lt; 40 \u20ac) <\/a> l\u00e4sst sich hervorragend als vollwertiges Debian-System modifizien.Der Prozessor ist im Vergleich zu zB. dem NSLU2 ungef\u00e4hr 10 x schneller getaktet. Der Stromverbrauch liegt in der gleichen Gr\u00f6\u00dfenordnung wie beim NSLU2 (ca (5-10 W).Es mu\u00df lediglich ein USB-Stick oder eine kleine USB-Festplatte an das Goflex Net angeschlossen werden. Eine Anleitung wie das Seagate Goflex Net mit Debian modifiziert werden kann findet man unter folgendem link <a href=\"http:\/\/projects.doozan.com\/debian\/\">Goflex Net mit Debian modifizieren<\/a><br \/>\nIst das Debian aufgespielt, so sollte man ein Update machen,das MySql-Serverpaket, das bc-Paket und das netcat Paket installieren.<\/p>\n<p>Sind die oben gennanten Pakete installiert, so mu\u00df eine Datenbank auf dem Debian-MySql-Server angelegt werden. Ich habe die Datenbank &#8222;test&#8220; genannt und die Tabelle &#8222;energie_nslu&#8220;.Der link enth\u00e4lt die Struktur der MySql-Tabelle <a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/energie_nslu.sql\">MySQL-Tabelle energie_nslu-Struktur<\/a><\/p>\n<h2><span id=\"09a_Raspberry_Pi_mit_Raspbian_Wheezy_bzw_Raspian_Jessi_als_Datenlogger\">09a. Raspberry Pi mit Raspbian Wheezy bzw. Raspian Jessi als Datenlogger<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Der Raspberry Pi kann genauso als Datenlogger verwendet werden. Nach Vorbereitung des Raspi mit Raspian sollten nach<\/p>\n<p>apt-get update und<br \/>\napt-get upgrade<\/p>\n<p>noch folgende Pakete installiert werden:<\/p>\n<p>apt-get install bc<br \/>\napt-get install netcat<br \/>\naptitude install ntpdate ntp tzdata<br \/>\napt-get install exim4<br \/>\napt-get install gawk<br \/>\napt-get install samba<br \/>\napt-get install msttcorefonts<br \/>\napt-get install apache2 apache2.2-common mysql-server phpmyadmin php5 php5-mysql php5-common libapache2-mod-php5 php-pear<\/p>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<h2><span id=\"10_Erfassen_der_Daten_in_der_MySql-Datenbank_mit_Hilfe_eines_Shellskriptes\">10. Erfassen der Daten in der MySql-Datenbank mit Hilfe eines Shellskriptes<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p>Das in einer Endlosschleife laufende Shellskript sorgt daf\u00fcr, da\u00df alle 5min, 15min, Volle Stunden und Mitternacht die vom Net-IO-Pollin Board gez\u00e4hlten Impulse Gas und Strom mit Datum und Uhrzeit in die MySql-Datenbank geschrieben werden.<br \/>\nZus\u00e4tzlich werden in dem Shellskript alle 5min, 15min, Volle Stunden und Mitternacht die Temperaturwerte eines Dallas 1820 Temperatursensors abgefragt und in der MySql-Datenbank abgespeichert.<\/p>\n<h2><span id=\"11_Temperaturerfassung_mit_dem_Temperatursensor_Dallas_DS_1820\">11. Temperaturerfassung mit dem Temperatursensor Dallas DS 1820<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<div id=\"attachment_193\" style=\"width: 271px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Temperatursensor-Dallas-1820.jpg\"><img aria-describedby=\"caption-attachment-193\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-193 size-full\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Temperatursensor-Dallas-1820.jpg\" alt=\"\" width=\"261\" height=\"245\" \/><\/a><p id=\"caption-attachment-193\" class=\"wp-caption-text\">Pinbelegung Anschlussvarianten des Temperatursensors Dallas DS18B20<\/p><\/div>\n<div id=\"attachment_198\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Temperatursensor-an-Pollinboard900x488.jpg\"><img aria-describedby=\"caption-attachment-198\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-198 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Temperatursensor-an-Pollinboard900x488-300x163.jpg\" alt=\"\" width=\"300\" height=\"163\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Temperatursensor-an-Pollinboard900x488-300x163.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Temperatursensor-an-Pollinboard900x488-768x416.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Blockschaltbild-Temperatursensor-an-Pollinboard900x488.jpg 900w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-198\" class=\"wp-caption-text\">Blockschaltbild Temperatursensor an Pollinboard<\/p><\/div>\n<p>Pin 2 des Temperatursensors wird an Pin 5 des Ext-Wannensteckers (=PD6 Atmega 644), an Pin2 und Pin 3 des Tempsensors kommt ein 4,7kOhm Widerstand,Pin 1 geht an Masse, Pin 3 an +5V.<br \/>\nIm Shellskript wird \u00fcber diese Zeilen:<\/p>\n<p>`echo 1w convert $TEMP_ID | nc -v -u -n -w 6 $AVRNETIO_IP $AVRNETIO_PORT -q 1 | grep -v OK || exit 1`<br \/>\ntemp_buero=`echo &#8222;1w get $TEMP_ID&#8220; | nc -v -u -v -n -w 6 $AVRNETIO_IP $AVRNETIO_PORT -q 1`<\/p>\n<p>der temperaturwert abgeholt. Wichtig ist, da\u00df nachdem der Temperatursensor entsprechend dem Blockschaltbild angeschlossen wurde, die ID des Temperatursensors abgefragt wird. Dazu in einen Linux-Terminal &#8222;netcat IP-Adresse des Pollinboards 2701&#8220; oder &#8222;telnet IP-Adresse des Pollinboards 2701&#8220; eingeben. Dann das Kommando &#8222;1w list&#8220; eingeben. Die angezeigte Temperatursensor-ID notieren und im Shellskript \u00e4ndern.Selbstverst\u00e4ndlich m\u00fcssen im Shellskript die IP-Adressen, die Datenbankdaten usw. angepasst werden. Weiterhin mu\u00df, damit die Temperatur auf der Webseite xy.ht angezeigt wird, in der Datei xy.ht.m4 in der Zeile<\/p>\n<p>ArrAjax.ecmd(&#8218;1w get 283e5dde03000069&#8216;, ecmd_temp_req_handler);<\/p>\n<p>die ID des Temperatursensors, die mit 1w list ausgelesen wurde, angepa\u00dft werden.<\/p>\n<h2><span id=\"12_Shellskript_Datenlogger_MySql\">12. Shellskript Datenlogger MySql<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Hier der Link zum Shellskript <a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/zaehler_sql_37.sh\">Shellskript Datenlogger MySql<\/a>.<br \/>\nDas Skript kann unter Debian folgendermassen dauerhaft im Hintergrund gestartet werden (Voraussetzung man steht im Verzeichnis des Skriptes): nohup .\/zaehler_sql_37.sh &amp;<\/p>\n<h2><span id=\"13_Eingabe_der_Zaehlerstaende_Gas_und_Strom\">13. Eingabe der Z\u00e4hlerst\u00e4nde Gas und Strom<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Alle ecmd-Variablen des control6-Skripts k\u00f6nnen \u00fcber die Weboberfl\u00e4che von Ethersex abgefragt und gesetzt werden. Im Browser gibt man dazu<\/p>\n<p>f\u00fcr die Abfrage: &#8222;ecmd?c6+get+variablenname&#8220; ein.<br \/>\nf\u00fcr das Setzen der Variabelen: &#8222;ecmd?c6+set+variablenname&#8220; ein.<\/p>\n<p>Damit die Z\u00e4hlerst\u00e4nde Gas und Strom auf der Webseite &#8222;xy.ht&#8220; richtig angezeigt werden, m\u00fcssen nat\u00fcrlich die Z\u00e4hlerst\u00e4nde zun\u00e4chst eingegeben werden. Beim Start des Pollin Boards sind diese Variablen nat\u00fcrlich Null.<br \/>\nDen Gasz\u00e4hlerstand muss man mit 2 Kommastellen, allerdings ohne Komma, eingeben (Bsp.: Z\u00e4hlerstand = 75435,5 &#8211;&gt; Eingabe:7543550).<br \/>\nAlso mit der Variablen z_stand_gas: &#8222;ecmd?c6+set+z_stand_gas 7543550&#8220;.<br \/>\nDen Stromz\u00e4hlerstand muss man mit 3 Kommastellen, allerdings ohne Komma, eingeben (Bsp.: Z\u00e4hlerstand = 87350,2 &#8211;&gt; Eingabe:87350200).<br \/>\nAlso mit der Variablen z_stand_strom: &#8222;ecmd?c6+set+z_stand_strom 7543550&#8220; (s0-Stromz\u00e4hler) bzw. mit der Variablen &#8222;z_stand_strom_analog&#8220; &#8222;ecmd?c6+set+z_stand_strom_analog 754350200&#8220; (Stromz\u00e4hler der E-Werke).<\/p>\n<p><a name=\"vierzehn\"><\/a><\/p>\n<h2><span id=\"14_php-Dateien_zur_tabellarischen_und_graphischen_Darstellung_der_erfassten_Werte\">14. php-Dateien zur tabellarischen und graphischen Darstellung der erfassten Werte<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Unter htdocs im xampp Apache-Server mu\u00df ein Unterverzeichnis energie erzeugt werden und die php-Dateien dort abgelegt werden. Die index-Datei ist die Datei &#8222;startenergie_pc1.php&#8220;. Die php-Dateien f\u00fcr die tabellarische und graphische Darstellung in der Datei &#8222;energie.zip&#8220; k\u00f6nnen<br \/>\n<a href=\"http:\/\/schartel-web.de\/dateien\/energie.zip\"> hier<\/a><br \/>\nheruntergeladen werden. Zumindest die beiden ersten Men\u00fcpunkte Startformular und Stromverbrauch Tage sind bisher in der Datei <a href=\"http:\/\/schartel-web.de\/grafik\/grafik_pdf\/Energie-Net-IO-Webseite-Erlaeuterung.pdf\"> Energie-Net-IO-Website-Erlaeuterung.pdf<\/a><br \/>\nerl\u00e4utert. Au\u00dferdem wird dort beschrieben, welche Dateien im Hinblick auf die MySQL-Datenbanken bzw. IP-Adressen ge\u00e4ndert werden m\u00fcssen.<br \/>\nEinen \u00dcberblick \u00fcber die Verzeichnisstruktur der Dateien bekommt man <a href=\"http:\/\/test1.schartel-web.de\/grafik\/grafik_pdf\/verzeichnisbaum_energie.pdf\">hier.<\/a><\/p>\n<p>Was bisher noch fehlt sind die Sourcen von jpgraph. Die zip-Datei <a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/jpgraph.zip\">jpgraph.zip<\/a> enth\u00e4lt die notwendigen Dateien. Die zip Datei entpacken und ein Verzeichnis htdocs\/energie\/jpgraph erzeugen. Die Dateien dorthin entpacken.<br \/>\nSo sieht die Startseite aus:<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/start_energie_pc1_bild1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-189 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/start_energie_pc1_bild1-300x161.jpg\" alt=\"\" width=\"300\" height=\"161\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/start_energie_pc1_bild1-300x161.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/start_energie_pc1_bild1-768x412.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/start_energie_pc1_bild1-1024x550.jpg 1024w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/start_energie_pc1_bild1.jpg 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a name=\"f\u00fcnfzehn\"><\/a><\/p>\n<h2><span id=\"15_Kosten\">15. Kosten<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Im folgenden die Auflistung der wichtigsten Bauteile:<\/p>\n<p>Stand 9.12<\/p>\n<table border=\"1\" cellpadding=\"10px\">\n<tbody>\n<tr>\n<th>Bauteil<\/th>\n<th>Lieferant<\/th>\n<th>Preis<\/th>\n<\/tr>\n<tr>\n<td>Seagate FreeAgent GoFlex Net Media-Sharing-L\u00f6sung<\/td>\n<td><a href=\"http:\/\/www.amazon.de\/Seagate-FreeAgent-GoFlex-Net-Media-Sharing-L%C3%B6sung\/dp\/B003R02R2O\/ref=sr_1_1?ie=UTF8&amp;qid=1348041379&amp;sr=8-1\">Amazon<\/a><\/td>\n<td>37,90 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>Pollin Board Net-IO-Fertigmodul<\/td>\n<td><a href=\"http:\/\/www.pollin.de\/shop\/dt\/NjI5OTgxOTk-\/Bausaetze_Module\/Bausaetze\/AVR_NET_IO_Fertigmodul.html\">Pollin<\/a><\/td>\n<td>27,95 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>3-Phasen S0-Z\u00e4hler f\u00fcr Hutschiene<\/td>\n<td><a href=\"http:\/\/www.elektroladen24.eu\/artikeldet.php?proid=483\">B+G Etech.<\/a><\/td>\n<td>44,00 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>Atmega 644<\/td>\n<td><a href=\"http:\/\/www.pollin.de\/shop\/dt\/MzAwOTk4OTk-\/Bauelemente_Bauteile\/Aktive_Bauelemente\/Microcontroller\/Microcontroller_ATMEL_ATmega644_20PU.html\">Pollin<\/a><\/td>\n<td>6,24 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>Temperatursensor Ds1820<\/td>\n<td><a href=\"http:\/\/www.pollin.de\/shop\/dt\/NTg5OTE4OTk-\/Bauelemente_Bauteile\/Aktive_Bauelemente\/Sensoren_Peltier_Elemente\/ Temperatursensor_DS18S20.html\">Pollin<\/a><\/td>\n<td>2,40 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>Bausatz SUB-D Anschlussplatine f\u00fcr Pollin Board<\/td>\n<td><a href=\"http:\/\/www.pollin.de\/shop\/dt\/NDQ5OTgxOTk-\/ Bausaetze_Module\/Bausaetze\/Bausatz_SUB_D_Anschlussplatine.html\">Pollin<\/a><\/td>\n<td>3,95 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>Summe<\/td>\n<td><\/td>\n<td>122,44 \u20ac<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a name=\"sechszehn\"><\/a><\/p>\n<h2><span id=\"16_Kostenreduzierung\">16. Kostenreduzierung<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p>Wem das alles zu teuer ist, der kann als Alternative zum S0-Stromz\u00e4hler und zum Niederfrequenz-Impulsz\u00e4hler Gas, selbstgebaute Optokoppler verwenden.<br \/>\nHier der Schaltplan f\u00fcr den Optokoppler Stromz\u00e4hler:<\/p>\n<div id=\"attachment_187\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schaltung_Optokoppler_Stromzaehler.jpg\"><img aria-describedby=\"caption-attachment-187\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-187 size-medium\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schaltung_Optokoppler_Stromzaehler-300x244.jpg\" alt=\"\" width=\"300\" height=\"244\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schaltung_Optokoppler_Stromzaehler-300x244.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schaltung_Optokoppler_Stromzaehler.jpg 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-187\" class=\"wp-caption-text\">Schaltplan Optokoppler Stromz\u00e4hler<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Der Aufbau des Optokopplers Stromz\u00e4hler sieht so aus:<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Optokoppler_Stromzaehler_mit_Holzleiste_DSCF2184.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-203\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Optokoppler_Stromzaehler_mit_Holzleiste_DSCF2184-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Optokoppler_Stromzaehler_mit_Holzleiste_DSCF2184-300x225.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Optokoppler_Stromzaehler_mit_Holzleiste_DSCF2184-768x576.jpg 768w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Optokoppler_Stromzaehler_mit_Holzleiste_DSCF2184.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Die Holzleiste wird so vor dem Stromz\u00e4hler positioniert, da\u00df der rote Strich der Ferrarischeibe erkannt wird. L\u00e4uft der rote Strich der Ferrarischeibe an dem InfrarotStrahl der Infrarotdiode vorbei, so wird weniger Infrarotlicht reflektiert, was eine Verringerung der Ausgangsspannung des Fototransistors bewirkt. Diese Spannung an einen Analog\/Digitaleingang des Pollin Boardes gegeben, erm\u00f6glicht das Z\u00e4hlen der Impulse \u00fcber das control6 Skript:<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schema_Optokoppler-_stromzaehler.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-188\" src=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schema_Optokoppler-_stromzaehler-300x240.jpg\" alt=\"\" width=\"300\" height=\"240\" srcset=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schema_Optokoppler-_stromzaehler-300x240.jpg 300w, http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/Schema_Optokoppler-_stromzaehler.jpg 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>THREAD(adc1)<\/strong><br \/>\nstromwert = ADC_GET(1);<br \/>\nif ((stromwert &lt; strom_l) &amp;&amp; (stromflag==0)) {stromz++;stromflag=1;}<br \/>\nelse<br \/>\nif ((stromwert &gt; strom_h) &amp;&amp; (stromflag==1)) {stromflag=0;}<br \/>\nTHREAD_END(adc1)<\/p>\n<p>Die Schwellwerte strom_h und strom_l m\u00fcssen entsprechend den Ausgangsspannungen am Fototransistor angepasst werden. Der Schwellwert beim Durchgang des roten Striches ist strom_l, sonst ist der Schwellwert strom_h.<br \/>\nBei meinem Stromz\u00e4hler entsprechen 150 Umdrehungen der Ferrarischeibe 1 kWh, d.h. ein Durchgang des roten Striches= 1 Impuls entspricht 1\/150 kWh.<br \/>\nBei mir war der Wert f\u00fcr strom_h=511 (entspricht 511\/1023x5V=2,5 V), f\u00fcr strom_l=409 (entspricht 409\/1023x5V=2 V)<br \/>\nDer Vorteil dieser L\u00f6sung ist nat\u00fcrlich, da\u00df man sich den teueren S0-Stromz\u00e4hler spart, der Nachteil ist, da\u00df die Messung erheblich ungenauer sein k\u00f6nnte (1000 Impulse\/kWh vs. 150 Impulse\/kWh). Au\u00dferdem kostet das Justieren des Optokoppler vor der Ferrarischeibe einige M\u00fche.<br \/>\nDer selbstgebaute Optokoppler l\u00e4sst sich genauso f\u00fcr die Z\u00e4hlung der Gasimpulse verwenden, die meisten Gasz\u00e4hler haben in der 6 der letzen Stelle des Z\u00e4hlwerkes eines silbernen Punkt. Den Optokoppler auf diesen Punkt ausgerichtet, ergibt hervorragende Impulse. Das Ausgangssignal des Fototransistors kann genauso wie das Signal des Niederfrequenz-Gasimpulsz\u00e4hlers auf den Analog\/Digitaleingang des Pollin Boardes gegeben werden.<\/p>\n<p><strong>THREAD(adc0)<\/strong><br \/>\nwert = ADC_GET(0);<br \/>\nif ((wert &gt; gas_h) &amp;&amp; (gasflag==0)) {gasz++;gas_zaehler_15 ++;gas_zaehler_h ++;<br \/>\ngas_zaehler_tag ++;z_stand_gas++;gas_zaehler_uptime++;gasflag=1;}<br \/>\nelse<br \/>\nif ((wert &lt; gas_l&#8220;) &amp;&amp; (gasflag==1)) {gasflag=0;}<br \/>\nTHREAD_END(adc0)<\/p>\n<h2><span id=\"17_Alle_benoetigten_Dateien_zum_Download\">17. Alle ben\u00f6tigten Dateien zum Download<\/span><\/h2>\n<p><a href=\"#anfang\">An den Anfang der Seite<\/a><\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/ethersex.hex\">\/ethersexverzeichnis\/ethersex.hex<\/a><\/p>\n<p>diese Datei mit folgendermassen verwenden: Kopieren in das Verzeichnis \/ethersexverzeichnis\/ dann &#8222;sudo avrdude -p m644 -P lpt1 -c usbasp -U flash:w:ethersex.hex&#8220; ausf\u00fchren<br \/>\nVoraussetzung ist , da\u00df \u00fcber einen usbasp-programmer programmiert wird<br \/>\ncontrol6.src und ethersex.hex sind aktualisiert am 10.5.15<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/dateien\/control6.src\">\/ethersexverzeichnis\/control6\/control6.src<\/a><\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/default\" target=\"_self\">\/ethersexverzeichnis\/pinning\/named_pin\/default<\/a> (download mit: rechte Maustaste \u2192 Ziel speichern unter:abspeichern mit Dateiname &#8222;default&#8220; ohne suffix)<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/netio.m4\">\/ethersexverzeichnis\/pinning\/hardware\/netio.m4<\/a> (Definition der Anschl\u00fcsse f\u00fcr Temperatursensor, download mit: rechte Maustaste \u2192 Ziel speichern unter)<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/control6-header.m4\">\/ethersexverzeichnis\/control6\/control6-header.m4<\/a>download mit: rechte Maustaste \u2192 Ziel speichern unter<\/p>\n<p><a href=\"http:\/\/schartel-web.de\/dateien\/ecmd.c\">\/ethersexverzeichnis\/control6\/ecmd.c<\/a><\/p>\n<p>Die Dateien &#8222;control6-header.m4&#8220; und &#8222;ecmd.c&#8220; sind so modifiziert, da\u00df auch u_int32-Variablen im control6-Skript akzeptiert werden.<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/xy.ht.m4\">\/ethersexverzeichnis\/embed\/xy.ht.m4<\/a> (Anzeige der gez\u00e4hlten Impulse \u00fcber die Ethersex Weboberfl\u00e4che, Aufruf im Browser mit &#8222;IP-Adresse Pollinboard\/xy.ht&#8220;)<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/zaehler_sql_37.sh\">Shellskript Datenlogger MySql<\/a><\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/energie_nslu.sql\">MySQL-Tabelle energie_nslu-Struktur<\/a><\/p>\n<p><a href=\"http:\/\/schartel-web.de\/dateien\/energie.zip\">energie.zip<\/a> (energie.zip:Unter htdocs im xampp Apache-Server mu\u00df ein Unterverzeichnis energie erzeugt werden und dort die php-Dateien abgelegt werden. Die index-Datei ist die Datei &#8222;startenergie_pc1.php&#8220;)<\/p>\n<p><a href=\"http:\/\/test1.schartel-web.de\/wp-content\/uploads\/2018\/09\/dateien\/jpgraph.zip\">jpgraph.zip<\/a> (Die zip Datei in das Verzeichnis htdocs\/energie\/jpgraph entpacken. Vorischt bei Verwendung von php7, dann die entsprechenden jpgraph-Dateien f\u00fcr php 7 herunterladen.)<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Smartmeter mit Pollin-Board, Ethersex und RasperryPi Inhalt &nbsp; 1. Einleitung An den Anfang der Seite Die Stromimpulse werden von einem Drei-Phasen-S0-Stromz\u00e4hler geliefert. Der S0-Z\u00e4hler erzeugt 1000 Impulse pro kWh. Die Gasimpulse liefert ein IN-Z61, das ist ein nachr\u00fcstbarer Niederfrequenz-Impulsgeber von Elster Die Strom- und Gasimpulse werden mit Hilfe des Net-IO-Pollinboard und der Ethersex-Software mittels eines [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=\/wp\/v2\/pages\/175"}],"collection":[{"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=175"}],"version-history":[{"count":64,"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=\/wp\/v2\/pages\/175\/revisions"}],"predecessor-version":[{"id":464,"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=\/wp\/v2\/pages\/175\/revisions\/464"}],"wp:attachment":[{"href":"http:\/\/test1.schartel-web.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}