Ankündigung

Einklappen
Keine Ankündigung bisher.

Landis & Gyr E35C

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Elektro] Landis & Gyr E35C

    Hallo!

    Ich habe zuhause einen Landis + Gyr E350 EDL21 Hauszähler.

    Kann ich mir da jetzt einfach ein E35C Kommunikationsmodul für Ethernet kaufen, reinstecken und dann den Verbrauch per LAN auslesen?

    Hat da jemand Erfahrung? Ich befürchte daß es nicht so einfach geht - abgesehen davon weiß ich noch nicht mal wo ich das E35C kaufen kann ...

    Viele Grüße

    Martin.

    #2
    Da hast du wohl recht.. ich wollte das auch schon.. aber 1. dein Zähler wird an betreffender Stelle verplombt sein.. und 2. bekommst du nur binäre Daten mit dem Modul.. Entweder basteln a la Volkszähler.org oder n Hager TE 360 oder ähnliche dahinter klemmen.
    www.knx-Hausblog.de

    Kommentar


      #3
      Wobei du mit Volkszähler die Daten auch noch nicht auf dem Bus hast..
      www.knx-Hausblog.de

      Kommentar


        #4
        Ich hatte letzte Woche diesen hier auf Amazon bestellt:
        http://www.youless.net/

        Ist heute gekommen, geht - alles super.
        Firmwareupdate, Konfiguration, Web-Interface - alles sehr sauber gemacht.

        Lädt die Daten hierher hoch (wenn man will):
        http://www.bidgely.com
        So kann man gut vergleichen und sieht den Verbrauch auch von unterwegs :-)

        Kann das Teil nur empfehlen!
        Zuletzt geändert von albusmw; 26.01.2016, 21:27.

        Kommentar


          #5
          Zitat von 2Fast4You78 Beitrag anzeigen
          Wobei du mit Volkszähler die Daten auch noch nicht auf dem Bus hast..
          Richtig. Aber so aufwendig ist es auch nicht. Habe einen Raspberry genommen, 2 Volkszähler per USB angeschlossen und mit einem simplen PHP script und cron lese ich den jede Minute aus und schicke das an smarthome.py zur Visualisierung.

          Ok, genau genommen ist das dann nicht auf dem KnX aber da wüsste ich jetzt auch nicht wofür...

          Das Script habe ich im entsprechenden Forum mal gepostet.
          ++ Der ultimative ETS Schnellkurs ++
          KNX und die ETS vom Profi lernen
          www.ets-schnellkurs.de

          Kommentar


            #6
            Zitat von hhhc Beitrag anzeigen
            Das Script habe ich im entsprechenden Forum mal gepostet.
            Wurde auf das PHP Script per PN angesprochen. Ich bezog mich auf diesen Thread: https://knx-user-forum.de/forum/supp...lumn-bar-chart

            Auf der Gegenseite hängt smarthome.py mit dem Netzwerk Plugin, welches die Werte entgegennimmt.
            Aber hier nochmal das Skript als Ganzes:
            PHP-Code:
            <?php
            // Install basic Ubuntu 14.04 image on Raspberry PI
            // Install php 5
            // Copy this script to the home folder and run in crontab
            // run with parameter "all" to send all parameters or call without any parameter to just send the current power (16.7)
            //
            //    */15 * * * * php read.php all
            //    * * * * * php read.php

            /*
            [ehz]
                [[haus]]
                    type = num
                    sqlite = yes
                    nw = yes
                [[wp_tag]]
                    type = num
                    sqlite = yes
                    nw = yes
                [[wp_nacht]]
                    type = num
                    nw = yes
                    sqlite = yes
            */

            $urlBase 'udp://192.168.2.7:51000';

            $devices = array(
                    
            '/dev/ttyUSB0' => array(
                            
            '1.8.1(' => 'ehz.haus',
                            
            '16.7(' => 'ehz.haus.leistung_aktuell'
                     
            ),
                    
            '/dev/ttyUSB1' => array(
                            
            '1.8.1(' => 'ehz.wp.tag',
                            
            '1.8.2(' => 'ehz.wp.nacht',
                            
            '16.7(' => 'ehz.wp.gesamt.leistung_aktuell'
                     
            )
                );

            error_reporting(E_ALL);

            function 
            setSerial($device,$bps) {
                echo 
            "setze Schnittstelle auf $bps bps\n";
                
            $output=array();
                
            $returnVar=0;
                
            $cmd="stty $bps -F $device";
                
            exec($cmd$output,$returnVar);    
                echo 
            "Ergebnis vom Setzen der seriellen Schnittstelle per stty (2):\n";
                
            print_r($output);
            // function initSerial

            function setSerialInitial($device,$bps) {
                echo 
            "setze Schnittstelle auf $bps bps\n";
                
            $output=array();
                
            $returnVar=0;
                
            $cmd="stty $bps -F $device 1:4:da7:a30:3:1c:7f:15:4:10:0:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0";
                
            exec($cmd$output,$returnVar);    
                echo 
            "Ergebnis vom Setzen der seriellen Schnittstelle per stty (1):\n";
                
            print_r($output);
            // function initSerial

            function checkLine($line$sn) {
                global 
            $channels;
                global 
            $urlBase;
                global 
            $argv;
              
                echo 
            "Line: '$line'\n";
                
            $line=trim($line);
                if (
            $line=='!') return("\n bin durchgelaufen\n");
                foreach(
            array_keys($channels) as $orbis) {                                                                                                                                                                                
                    if(
            substr($line,0,strlen($orbis))==$orbis && (count($argv) > || $orbis=="16.7(") ) {                                                                                                                                                                         
                        echo 
            "match für $orbis\n";                                                                                                                                                                                        
                        
            $part=(float)substr($line,6);                                                                                                                                                                                     
                        
            // 2.8.0(885.259*kWh)                                                                                                                                                                                             
                        
            $part=strstr(substr($line,6),'*',true);                                                                                                                                                                           
                        if ((
            '1.7.0(' == $orbis) or ('2.7.0(' == $orbis)) $part=$part*1000;                                                                                                                                               
                        echo 
            "ermittelter Wert: $part\n";
                        
                         
            // mode 
                        
            echo "rufe $urlBase auf.\n";   
                        
            $socket fsockopen($urlBase);
                        
            $value "item|" $channels[$orbis] . "|" . (float)$part;
                        print 
            "$value\n";
                        
            fputs($socket$value);

                        
            //$url=$urlBase.$channels[$orbis].'.json?operation=add&value='.$part;                                                                                                                                               
                        // save value
                        
            $h fopen("." $sn "." $orbis'w');
                        
            fwrite($hserialize($part));
                        
            fclose($h);


            //            $values[$orbis] = $part;
                        //$dummy=curl_file_get_contents($url);                                                                                                                                                                              
                    
            // if                                                                                                                                                                                                               
                
            // foreach
                
            // function checkLine

            function curl_file_get_contents($URL)
                {
                  
            $c = @curl_init();
                  
            curl_setopt($cCURLOPT_RETURNTRANSFER1);
                  
            curl_setopt($cCURLOPT_URL$URL);
                  
            $contents curl_exec($c);
                  
            curl_close($c);
                                                                                                    
                  if (
            $contents) return $contents;
                  else return 
            FALSE;
                } 
            // function curl_get_file_contents

            function getTimestamp() { 
                 
            $seconds microtime(true); // false = int, true = float 
                      
            return round( ($seconds 1000) ); 
            }

            /**
             *  Starte Script
             *  Iterate through all usb devices and lost information
             */


            foreach ($devices as $device => $channels)
            {
                print 
            "$device\n";
                
            print_r ($channels);

                
            setSerialInitial($device,300);

                
            $fp=fopen($device,'c+');
                if (!
            $fp) {
                    echo 
            "Konnte Port nicht öffnen (1)\n";
                    die;
                } else {
                  echo 
            "Port öffnen OK\n";
                } 
            // if

                
            echo "Request senden ...";
                
            $out "/?!\r\n";
                
            fwrite($fp$out);
                echo 
            "Request OK.\n";

                echo 
            "Lese eine Zeile\n";
                echo 
            $sn fgets($fp);
                
            $sn substr($sn017);
                echo 
            "gelesen\n";

                
            /*
                echo "Lese eine Zeile\n";
                echo fgets($fp);
                echo "gelesen\n";
                */

                
            echo "sicherheitshalber etwas warten\n";
                
            usleep(500 1000);

                echo 
            "bps-Rate-Request senden ...";
                
            //$out = "\x06\x30\x35\x31\x0D\x0A"; alt
                //$out = "\x06\x30\x30\x30\x0D\x0A"; //063030300d0a
                //$out = "\063030300d0a\r\n"; // 063030300d0a
                
            $out "\x06040\r\n"// 063030300d0a


                //$out = "\x06040\r\n";

                // fuer 19200:
                // $out = "\x06060\r\n";

                
            fwrite($fp$out);
                echo 
            "BPS Request OK.\n";

                echo 
            "warte bis Zeichen ausgegeben wurden...\n";
                
            usleep(500 1000);

                
            //setSerial($device,9600);

                
            echo "schließe Port\n";
                
            fclose($fp);
                
            setSerial($device,4800);
                
            // für 19200
                // setSerial($device,19200);

                
            echo "öffne Port\n";
                
            $fp=fopen($device,'c+');
                if (!
            $fp) {
                   echo 
            "Konnte Port nicht öffnen (2)\n";
                   die;
                } else {
                 echo 
            "Port 4800 OK\n";
                } 
            // if


                
            echo "lese Rest ein\n";
                while (!
            feof($fp)) {
                  echo 
            $line=fgets($fp256);
                  
            checkLine($line$sn);
                } 
            // while

                
            fclose($fp);

            }

            ?>
            ++ Der ultimative ETS Schnellkurs ++
            KNX und die ETS vom Profi lernen
            www.ets-schnellkurs.de

            Kommentar

            Lädt...
            X