NEWS
[Frage] Erfahrungen mit Discovergy-Zählern
-
dann wäre ich wieder bei m-bus.
Ich halt mal nach einem m-bus Zähler Ausschau.
-
@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.
-
100 Taler sind wirklich ne Ansage…
-
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
-
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
-
Hallo nochmal,
Sorry war ein paar Tage unterwegs.
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.
-
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?
-
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. -
@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 -
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
-
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:
(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) -
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.
-
Als Basis z.B so etwas nehmen:
-
Interessant - danke! Ist halt nur nicht für ioBroker und zum "umpfriemeln" fehlen mir die Kenntnisse.
-
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
-
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; }
-
Ich hätte da mal einige Zähler:
Heißt das jetzt, ich brauche 4 intelligente Zähler und damit 4x ca. 100€=400€ Messstellenbetrieb pro Jahr?