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

      Genau sowas wollt ich haben, im Moment hab ich nur den Homematic Zähler dran. Der gibt nur alle 3 min was raus.

      Alle 10s wäre da schöner. So zwischenzähler 3 phasig, was kosten die wohl, und welche Hardware wir noch benötigt.

      Intel nuc liegt auf dem schaltschrank.

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

        Hallo ple,

        ich verwende einen Carlo Gavazzi EM24-DIN AV93 X IS P (Hutschiene mit Modbus Schnittstelle)

        Ist aber nicht ganz "billig"…
        3419_em24.gif

        Einen "normalen" Zähler (z.B. EasyMeter Q3D) mit optischer D0 Schnittstelle bekommt man schon ab ca. 100 EUR.

        Der benötigt dann aber deutlich mehr Platz.

        Tschau

        Uwe

        1 Reply Last reply Reply Quote 0
        • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            777
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            13
                                            39
                                            7461
                                            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