Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. [Frage] Erfahrungen mit Discovergy-Zählern

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Frage] Erfahrungen mit Discovergy-Zählern

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      ple last edited by

      Glaube das wäre auch der richtige Weg, dann lass ich halt einen Zähler hinter meinen setzen.

      Da ich gerade auch meine Wasserzähler tausche und die M-Bus haben, sollte der Zähler auch bereits M-Bus besitzen. Somit sollte ich genügend Daten in kurzer Zeit bekommen. Dann hätte ich auch alles im HWR Raum auf Mbus.

      leider sind die nicht gerade günstig und fangen bei 180€ an.

      Oder ich geh komplett auf S0, ist noch günstiger. Dann an einem Pi und die Daten irgendwie im Iobroker schieben. Hab da mal was von Volkszähler gelesen.

      Gruß

      1 Reply Last reply Reply Quote 0
      • uweklatt
        uweklatt last edited by

        Hallo,

        S0 würde ich nicht nehmen, da man damit nur die aktuelle Leistung (und diese nur ungenau) geliefert bekommt!

        Tschau

        Uwe

        1 Reply Last reply Reply Quote 0
        • P
          ple last edited by

          dann wäre ich wieder bei m-bus.

          Ich halt mal nach einem m-bus Zähler Ausschau.

          1 Reply Last reply Reply Quote 0
          • Lenny.CB
            Lenny.CB Most Active last edited by

            @ple:

            dann wäre ich wieder bei m-bus.

            Ich halt mal nach einem m-bus Zähler Ausschau. ` Vorhin hatte jemand den EasyMeter Q3D angesprochen. Für den gibt es einen Steckaufsatz für wM-Bus.

            1 Reply Last reply Reply Quote 0
            • H
              Heike1988 last edited by

              100 Taler sind wirklich ne Ansage…

              1 Reply Last reply Reply Quote 0
              • Webranger
                Webranger last edited by

                Ich warte dann mal auf den Zähler von fresh energy und werde dann berichten was da gekommen ist.

                Hoffe man da was machen bezüglich Adapter oder sonstwas

                1 Reply Last reply Reply Quote 0
                • F
                  Flossdorfer last edited by

                  Ich habe schon ein paar Jahre einen Zähler von Discovergy. Im letzten Jahr habe ich ein PV-Anlage bekommen und habe dann auch von Discovergy einen Zweirichtungszähler und einen Erzeugungszähler genommen. In der Tat ist es teurer, als wenn man auf die Zähler des Grundversorgers geht, allerdings finde ich die Transparenz über die Daten sehr gut. Und spätestens für die monatliche Umsatzsteuervorerklärung, die ich machen muss, helfen die Daten sehr gut weiter.

                  Ich hätte gerne noch weitere Daten, die das Portal von Discovergy nicht liefert. Dazu werden ich zukünftig ein Portal meiner Firma verwenden, das aber noch im Beta-Status ist. Das greift online auf meine Zählerdaten zu und berechnet und visualisiert die weiteren Daten.

                  Was den Support von Discovergy angeht, bin ich allerdings enttäuscht. Auf Anfragen werden gar nicht oder schleppend beantwortet und ein Fehler in der App führt dazu, dass die App für mich quasi wertlos ist. Ich habe das auch auf einer Messe Mitarbeitern persönlich gezeigt und sie wollten sich kümmern, das ist aber auch schon wieder 4 Monate her.

                  Der Flossdorfer

                  1 Reply Last reply Reply Quote 0
                  • W
                    wenk0815 last edited by

                    Hallo nochmal,

                    Sorry war ein paar Tage unterwegs.

                    @ple

                    Die Daten sind fast in Echtzeit verfügbar, ich hab es nicht genau aber ca. alle 10 bis 30 Sekunden werden die aktualisiert. Das kann man wunderbar mit der Handy APP neben dem E-Herd beobachten 😄

                    Das mit dem Support von Discovergy kann ich ein wenig bestätigen, anfragen dauern eine Weile bei mir zwei bis drei Wochen und selbst wenn man im Forum etwas fragt dauerts 😉 Die scheinen nach Ihrer Sinderpreis-Offensive ein wenig überlastet zu sein.

                    Natürlich kann man wie vor schon erklärt noch einen weiteren Zähler selber zusätzlich montieren, aber ein Standard Zählerschrank hat nunmal nur einen Zählerplatz (wie bei mir). Da muss der zweite Zähler dann zumindest irgendwie auf die Hutschiene passen. Ich denke 100 bis 200€ sollte man dafür auch einplanen, denn auch für eine Lösung mit einem PI brauche ich die Stromwandler für 63A. Und da kostet auch eine einfache Rogowskispule schon 40€ das Stück.

                    Ich selber habe noch gute Erfahrungen mit Zählern der Fa. Socomec gemacht. Z.B. das Diris A20 gibt es gebraucht bei Ebay ab 30€, da muss dann aber noch das Kommunikationsmodul dran.

                    1 Reply Last reply Reply Quote 0
                    • M
                      ManfredH last edited by

                      @wenk0815:

                      Da ich mir in meinem neuen Zuhause seit März den Discovergy-Zähler hab einbauen lassen wollte ich mal berichten was das Ding kann und wie es so läuft. `
                      Schöner Bericht - danke! Hab mir (ohne diesen Bericht zu kennen) jetzt auch den SmartMeter von Discovergy bestellt, nicht zuletzt weil die die Schwelle für den kostenlosen Einbau von 3000 kWh auf 1500 kWh gesenkt haben. So wie ich das sehe werden allerdings noch Kosten für einen neuen Zählerschrank (der alte ist 40 Jahr alt!) auf mich zukommen.

                      Hast Du schon einen Zugriff vom ioBroker auf die via Gateway bereitgestellten Daten realisiert (also nicht via Web/API) und wenn ja, wie?

                      1 Reply Last reply Reply Quote 0
                      • M
                        ManfredH last edited by

                        @uweklatt:

                        ich verwende einen Carlo Gavazzi EM24-DIN AV93 X IS P (Hutschiene mit Modbus Schnittstelle) `
                        Und mit welchen Mitteln bekommst Du die Daten in ioBroker? Bin nämlich grad auf der Suche nach Infos dazu.

                        1 Reply Last reply Reply Quote 0
                        • M
                          ManfredH last edited by

                          @ple:

                          Wegen lokalen Zugriff, der Zähler kann doch D0 wenn ich das richtig verstanden habe, dann sollte es vielleicht mit dem Smartmeter Adapter funktionieren.

                          D0-MSB (DIN EN 62056-61)

                          Ethernet (RJ 45) 10/100 LAN 802.3

                          RS485 / MODBUS (RJ 10) IEC 61158 `
                          So wie ich das sehe ist D0 vom Gateway belegt (das setzt direkt auf dem Easymeter auf und versorgt sich über die D0 offensichtlich selbst)) und RJ45 wird wohl für den Datentransfer zu Discovergy benötigt. Bleibt nur noch RS485 / MODBUS und damit - wie ich gelernt habe - der Modbus-Adapter (Smartmeter-Adapter geht nur mit D0). Leider hab ich keine Ahnung, wie das dann letztendlich funktioniert 😞

                          1 Reply Last reply Reply Quote 0
                          • uweklatt
                            uweklatt last edited by

                            Hallo Manfred,@ManfredH:

                            Und mit welchen Mitteln bekommst Du die Daten in ioBroker? Bin nämlich grad auf der Suche nach Infos dazu. ` der Zähler spricht Modbus über RS-485. Ich lese den mit meinem Photovoltaik Datenlogger Sun-Watch ein. Von dort holt sich IoBroker dann zusätzlich die Livewerte ab.

                            Tschau

                            Uwe

                            1 Reply Last reply Reply Quote 0
                            • M
                              ManfredH last edited by

                              @uweklatt:

                              der Zähler spricht Modbus über RS-485. `
                              Schon. Mir ist nur nicht klar, wie da die Konfiguration in ioBroker aussieht - da gibts ja ziemlich viel zu konfigurieren:
                              6967_modbus_iobroker.jpg
                              (plus die Tabs "Diskrete Ein-/Ausgäng", "Eingangsregister", "Holding Registers"). Leider hab ich dazu (wieder mal?) keine für mich verständliche Beschreibung gefunden (der Thread im Forum bringt ich leider auch nicht weiter) 😞

                              1 Reply Last reply Reply Quote 0
                              • M
                                ManfredH last edited by

                                Nachtrag: lt. Auskunft von Discovergy ist der einzige Wert, den der Zähler (bzw. das Gateway) über RS-485 liefert der aktuelle Verbrauch - sonst nix! Damit kann ich mir auch den Aufwand sparen, diesen Wert irgendwie auszulesen, weil ich den genausogut über den HomeMatic-Sensor bekomme (ES-LED), zumal ich den Sender selbst ja schon habe (lese im Moment noch über ES-Fer aus, was mir aber zu ungenau ist). An alle anderen Werte kommt man nur über die API, die https://api.discovergy.com/docs/ beschrieben ist.

                                1 Reply Last reply Reply Quote 0
                                • Stabilostick
                                  Stabilostick last edited by

                                  Als Basis z.B so etwas nehmen:

                                  https://github.com/CodeKing/de.codeking … discovergy

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    ManfredH last edited by

                                    Interessant - danke! Ist halt nur nicht für ioBroker und zum "umpfriemeln" fehlen mir die Kenntnisse.

                                    1 Reply Last reply Reply Quote 0
                                    • Webranger
                                      Webranger last edited by

                                      Ich beziehe meinen Strom jetzt von fresh energy und habe einen Discovergy Zähler seit mitte September im Zählerschrank verbaut.

                                      Seit heute hab ich einen API Zugang von Discovergy bekommen.

                                      Hat wer zufällig schon das auslesen der Daten hinbekommen oder umgesetzt?

                                      Hätte einfach nur gerne meinen Verbrauch in der VIS angezeigt.

                                      Am liebsten mit dem hier => viewtopic.php?f=21&t=2175

                                      Kann da wer helfen vieleicht?

                                      Gruss Danyel

                                      1 Reply Last reply Reply Quote 0
                                      • Webranger
                                        Webranger last edited by

                                        Ich habe da was bei ip-symcon gefunden vielleicht hilft es ja jemanden weiter:

                                        
                                         * @link        https://codeking.de
                                         * @link        https://github.com/CodeKing/de.codeking.symcon
                                         *
                                         *
                                         * @ToDo: short interval for current settings
                                         * @ToDo: get relevant data:
                                         * @ToDo: current consumption (kWh)
                                         * @ToDo: current solar (kWh)
                                         * @ToDo: current grid (kWh)
                                         * @ToDo: consumption yesterday (kWh)
                                         * @ToDo: consumption devices (kWh / €)
                                         */
                                        class GetFresh extends ModuleHelper
                                        {
                                            protected $prefix = 'GF';
                                            private $email;
                                            private $password;
                                            private $token;
                                            private $position_offset = 0;
                                            public $data = [];
                                            protected $archive_mappings = [ // archive: 0 = default, 1 = counter
                                                'Base Price' => 0,
                                                'Price per kWh' => 0,
                                                'Current Price' => 0,
                                                'Meter Reading' => 1,
                                                'Power' => 0
                                            ];
                                            protected $profile_mappings = [
                                                'Base Price' => 'Price',
                                                'Price per kWh' => 'Price',
                                                'Meter Reading' => 'kWh',
                                                'Power' => 'Watt',
                                                'Power L1' => 'Watt',
                                                'Power L2' => 'Watt',
                                                'Power L3' => 'Watt',
                                                'Provider' => '~String'
                                            ];
                                            /**
                                             * create instance
                                             */
                                            public function Create()
                                            {
                                                parent::Create();
                                                // register public properties
                                                $this->RegisterPropertyString('email', 'user@email.com');
                                                $this->RegisterPropertyString('password', '');
                                                $this->RegisterPropertyInteger('interval', 60); // in seconds
                                                // register timer
                                                $this->RegisterTimer('UpdateData', 0, $this->prefix . '_Update($_IPS[\'TARGET\']);');
                                                $this->RegisterTimer('UpdateTariffData', 60 * 1000, $this->prefix . '_UpdateTariff($_IPS[\'TARGET\']);');
                                            }
                                            /**
                                             * execute, when kernel is ready
                                             */
                                            protected function onKernelReady()
                                            {
                                                // update timer
                                                $this->SetTimerInterval('UpdateData', $this->ReadPropertyInteger('interval') * 1000);
                                                // Update tariff details
                                                $this->UpdateTariff();
                                                // Update data
                                                $this->Update();
                                            }
                                            /**
                                             * Read config
                                             */
                                            private function ReadConfig()
                                            {
                                                // get settings
                                                $this->email = $this->ReadPropertyString('email');
                                                $this->password = $this->ReadPropertyString('password');
                                                $this->token = $this->GetBuffer('token');
                                                // return if service or internet connection is not available
                                                if (!Sys_Ping('getfresh.energy', 1000)) {
                                                    $this->_log('GetFresh', 'Error: api or internet connection not available!');
                                                    exit(-1);
                                                }
                                                // check if email and password are provided
                                                if (!$this->email || !$this->password) {
                                                    return false;
                                                }
                                                // read access token
                                                if (!$this->token) {
                                                    $this->token = $this->GetBuffer('token');
                                                }
                                                // login if no valid token was provided
                                                if (!$this->token) {
                                                    $this->Login();
                                                }
                                                // simple error handling
                                                if (!$this->token) {
                                                    $this->SetStatus(201);
                                                    $this->_log('GetFresh', 'Error: The email address or password of your account is invalid!');
                                                    exit(-1);
                                                }
                                                // everything looks ok, start
                                                $this->SetStatus(102);
                                            }
                                            /**
                                             * read & update tariff data
                                             */
                                            public function UpdateTariff()
                                            {
                                                // read config
                                                $this->ReadConfig();
                                                // get tariff provider name
                                                if ($profile = $this->Api('profile')) {
                                                    $this->data['Provider'] = $profile['brandName'];
                                                }
                                                // get tariff
                                                if ($tariff = $this->Api('consumptionCurrentMonth')) {
                                                    $this->data['Base Price'] = $tariff['monthlyBasePrice']['value'];
                                                    $this->data['Price per kWh'] = $tariff['unitPrice']['value'];
                                                }
                                                // log data
                                                $this->_log('GetFresh Tariff Data', json_encode($this->data));
                                                // save data
                                                $this->position_offset = 0;
                                                $this->SaveData();
                                            }
                                            /**
                                             * read & update consumption data
                                             */
                                            public function Update()
                                            {
                                                // read config
                                                $this->ReadConfig();
                                                // get current readings
                                                if ($currentReadings = $this->Api('currentReadings')) {
                                                    $cnt = count($currentReadings['readings']) - 1;
                                                    $currentReading = $currentReadings['readings'][$cnt];
                                                    $this->data['Meter Reading'] = $currentReading['energyReading'];
                                                    $this->data['Power'] = $currentReading['power'];
                                                    $this->data['Power L1'] = $currentReading['powerPhase1'];
                                                    $this->data['Power L2'] = $currentReading['powerPhase2'];
                                                    $this->data['Power L3'] = $currentReading['powerPhase3'];
                                                }
                                                // log data
                                                $this->_log('GetFresh Data', json_encode($this->data));
                                                // save data
                                                $this->position_offset = 10;
                                                $this->SaveData();
                                            }
                                            /**
                                             * save data to variables
                                             */
                                            private function SaveData()
                                            {
                                                // loop data and save to variable
                                                $position = $this->position_offset;
                                                foreach ($this->data AS $key => $value) {
                                                    $this->CreateVariableByIdentifier([
                                                        'parent_id' => $this->InstanceID,
                                                        'name' => $key,
                                                        'value' => $value,
                                                        'position' => $position
                                                    ]);
                                                    $position++;
                                                }
                                                // reset data
                                                $this->data = [];
                                            }
                                            /**
                                             * basic api to getfresh (inofficial)
                                             * @param string $request
                                             * @return array
                                             */
                                            public function Api($request = 'currentReadings')
                                            {
                                                // build url
                                                $url = 'https://www.getfresh.energy/links';
                                                // default data
                                                $data = [];
                                                // curl options
                                                $curlOptions = [
                                                    CURLOPT_TIMEOUT => 10,
                                                    CURLOPT_RETURNTRANSFER => true,
                                                    CURLOPT_HTTPHEADER => [
                                                        'Authorization: Bearer ' . $this->token,
                                                        'Content-Type: application/json',
                                                        'Connection: keep-alive',
                                                        'Accept-Encoding: gzip',
                                                        'User-Agent: okhttp/3.2.0'
                                                    ]
                                                ];
                                                // call api
                                                $ch = curl_init($url);
                                                curl_setopt_array($ch, $curlOptions);
                                                $links = curl_exec($ch);
                                                // get links
                                                if ($links = json_decode($links, true)) {
                                                    #var_dump($links);
                                                    #exit;
                                                    $links = [
                                                        'currentReadings' => $links['_links']['currentReadings']['href'],
                                                        'consumption' => $links['_links']['consumption']['href'],
                                                        'profile' => $links['_links']['profile']['href'],
                                                        'consumptionCurrentMonth' => $links['_links']['consumptionCurrentMonth']['href']
                                                    ];
                                                    if (isset($links[$request])) {
                                                        curl_setopt($ch, CURLOPT_URL, $links[$request]);
                                                        $result = curl_exec($ch);
                                                        $data = json_decode($result, true);
                                                    }
                                                }
                                                // close curl
                                                curl_close($ch);
                                                // return data
                                                return $data;
                                            }
                                            /**
                                             * Login to getfresh
                                             */
                                            public function Login()
                                            {
                                                $this->_log('GetFresh', sprintf('Logging in to account of %s...', $this->email));
                                                // login url
                                                $url = 'https://www.getfresh.energy/oauth/token';
                                                // curl options
                                                $curlOptions = [
                                                    CURLOPT_TIMEOUT => 10,
                                                    CURLOPT_RETURNTRANSFER => true,
                                                    CURLOPT_POST => true,
                                                    CURLOPT_POSTFIELDS => http_build_query([
                                                        'grant_type' => 'password',
                                                        'username' => $this->email,
                                                        'password' => $this->password
                                                    ]),
                                                    CURLOPT_HTTPHEADER => [
                                                        'Content-Type: application/x-www-form-urlencoded',
                                                        'Accept-Encoding: gzip',
                                                        'Connection: keep-alive',
                                                        'User-Agent: okhttp/3.2.0'
                                                    ],
                                                    CURLOPT_USERPWD => 'fresh-webclient:'
                                                ];
                                                // login
                                                $ch = curl_init($url);
                                                curl_setopt_array($ch, $curlOptions);
                                                $result = curl_exec($ch);
                                                curl_close($ch);
                                                // extract token
                                                $json = json_decode($result, true);
                                                $this->token = isset($json['access_token']) ? $json['access_token'] : false;
                                                // save valid token
                                                if ($this->token) {
                                                    $this->SetStatus(102);
                                                    $this->SetBuffer('token', $this->token);
                                                } // simple error handling
                                                else {
                                                    $this->SetStatus(201);
                                                    $this->_log('GetFresh', 'Error: The email address or password of your account is invalid!');
                                                    exit(-1);
                                                }
                                                return true;
                                            }
                                            /**
                                             * create custom variable profile
                                             * @param string $profile_id
                                             * @param string $name
                                             */
                                            protected function CreateCustomVariableProfile(string $profile_id, string $name)
                                            {
                                                switch ($name):
                                                    case 'Watt':
                                                        IPS_CreateVariableProfile($profile_id, 2); // float
                                                        IPS_SetVariableProfileDigits($profile_id, 0); // 0 decimals
                                                        IPS_SetVariableProfileText($profile_id, '', ' W'); // Watt
                                                        IPS_SetVariableProfileIcon($profile_id, 'Electricity');
                                                        break;
                                                    case 'kWh':
                                                        IPS_CreateVariableProfile($profile_id, 2); // float
                                                        IPS_SetVariableProfileDigits($profile_id, 2); // 2 decimals
                                                        IPS_SetVariableProfileText($profile_id, '', ' kWh'); // Watt
                                                        IPS_SetVariableProfileIcon($profile_id, 'Electricity');
                                                        break;
                                                    case 'Price':
                                                        IPS_CreateVariableProfile($profile_id, 2); // float
                                                        IPS_SetVariableProfileDigits($profile_id, 4); // 4 decimals
                                                        IPS_SetVariableProfileText($profile_id, '', ' €'); // currency symbol
                                                        IPS_SetVariableProfileIcon($profile_id, 'Euro');
                                                        break;
                                                endswitch;
                                            }
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Stabilostick
                                          Stabilostick last edited by

                                          Ich hätte da mal einige Zähler:

                                          7446_dcceccca-0e1b-4711-834d-2f0f8e652447.jpeg

                                          Heißt das jetzt, ich brauche 4 intelligente Zähler und damit 4x ca. 100€=400€ Messstellenbetrieb pro Jahr?

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          635
                                          Online

                                          31.6k
                                          Users

                                          79.6k
                                          Topics

                                          1.3m
                                          Posts

                                          13
                                          39
                                          7390
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo