[Modul] Solaredge Wechselrichter

Der WR bleibt der Master.

Hallo,
also den Solaredge habe ich angebunden bekommen. Die Liste mit den Modbus Adressen habe ich auch. Aber ich denke man muss die Werte ja noch multiplizieren etc.
Ich habe nur den Wechselrichter und einen Meter.
Die Leistung wird auch dargestellt und ändert sich alle 5 sek., der Wert scheint aber viel zu wenig zu sein.
Wie kann ich die Werte multiplizieren (Value * Scalefactor)? in Symcon?
Könnte vielleicht einer seine Werte zur Verfügung stellen?
Geht das über Script oder muss tatsächlich jeder einzelne Wert als Modbus Device angelegt werden?

Danke.

Hallo Zusammen ,

wie hier schon mal beschrieben, habe ich das Problem mit 0 Werten. Dabei ist es unabhängig ob ich 300 mal am Tag abfrage, oder nur 1 ,2 mal. Werte werden immer dan richtig abgefragt, wenn man die abfragezeit verändert und dann speichert.

Liegt der Fehler im Modul oder bei Solaredge?

Beste Grüße

Gesendet von iPhone mit Tapatalk Pro

Hallo Dromik,
kannst du nochmal genauer beschreiben, was du meinst? Ich verstehe es gerade noch nicht.

EDIT:
Das Problem ist verstanden, scheint aber ein anderes Problem als das wie in Post #27 beschrieben zu sein.

@Dromik:
Könntest du vielleicht ein paar Screenshots dazu machen oder ein kleines Video?
Wir können uns auch gerne mal per Sprachchat irgendwo kurzschließen und du kannst es mir zeigen, wenn du möchtest.

Hat sonst noch jemand Erfahrung mit dem Modul und kann Feedback, gutes sowie schlechtes geben?

Hallo,
ich habe gerade meinen Solaredge frisch in Betrieb genommen und das Modul installiert. Ich habe aber den gleichen Effekt wie Dromik . Speichere ich im Modul den Aktualisierungswert erfolgt eine Abfrage mit richtigen Daten, ansonsten kommt Wert 0

Gibt es dazu schon etwas neues ?

VG

Frank

Hallo ?
Nutzt das Modul noch jemand oder gibt es etwas anderes ?

Über eine Antwort würde ich mich freuen

VG

Frank

Hallo zusammen,

seit geraumer Zeit funktioniert das Modul nicht mehr. Habe eine neuen API-Key erstellt und eingetragen. Als Fehlermeldung kommt


Warning: Error 403, {„String“:„Invalid token“} in C:\ProgramData\Symcon\modules\Solaredge\Auswertung\module.php on line 51



Notice: Trying to get property ‚overview‘ of non-object in

Token ist aber 100% richtig eingegeben. Gibt es ein Update oder etwas, damit wir das wieder ans laufen bekommen. Habe das bei einem Kunden und wie gesagt, hatte auch funktioniert.

Hallo Leute,
ich war leider länger Abwesend, besteht noch Interesse?

Dann werde ich das ganze mal Updaten und eventuell auch in ein Modul gießen.

Grüße
Daniel

ja, das Interesse besteht noch;
ich frage das Ganze gerade über Modbus ab und bekomme da auch einige Werte

würde mich auch interessieren.

Gruß Sven

Ja wäre auch interessiert

Okay super, gebt mir noch ein bisschen Zeit ich schau mir das ganze an.

Als erstes werde ich mir nochmal den Abruf über die API anschauen, wenn hier alles funktioniert, kann man sich das ganze über den Modus anschauen.

Aktuell gibt es mit dem API Abruf die folgenden Probleme:

  1. Wenn der Wert 0 übermittelt wird, dann verfälscht das die ganze Statistik / Darstellung eines Diagramms.

  2. Die Fehlermeldung genannt von schneider1 taucht auf:
    Warning : Error 403, {„String“:„Invalid token“} in C:\ProgramData\Symcon\modules\Solaredge\Auswertung\module.php on line 51

Gibt es aktuell noch andere Probleme die man überprüfen muss?

Ich habe mir das Modul gerade angeschaut bezüglich dem Fehler:
Warning : Error 403, {„String“:„Invalid token“} in C:\ProgramData\Symcon\modules\Solaredge\Auswertung\module.php on line 51

Mal schaun was der Hintergrund ist.

Der Fehler tritt aufgrund der folgenden Zeile im Code auf: (Zeile: 47)

$content = Sys_GetURLContent("https://monitoringapi.solaredge.com/site/$id/overview?api_key=$apikey"); 

Wenn der Link direkt eingegeben wird mit ohne Variable mit API-Key + ID direkt funktioniert der Abruf:

$content = Sys_GetURLContent("https://monitoringapi.solaredge.com/site/id12345/overview?api_key=apikey12345"); 

Die angegeben Variablen im Sys_GetURLContent verursachen das Problem, er sagt dann immer er erwarted einen String hat aber hat einen bool-Wert erkannt, wenn ich das richtig verstehe.

Was ist an der Syntax faslch, hat jemand einen tipp?

Code:

<?php

declare(strict_types=1);
	class Wechselrichter extends IPSModule
	{
		public function Create()
		{
			//Never delete this line!
			parent::Create();

            $this->RegisterVariableFloat("Actual", $this->Translate("Actual"),"",0);
            $this->RegisterVariableFloat("Today", $this->Translate("Today"),"",1);
            $this->RegisterVariableFloat("Month", $this->Translate("Month"),"",2);
            $this->RegisterVariableFloat("Year", $this->Translate("Year"),"",3);
            $this->RegisterVariableFloat("Total", $this->Translate("Total"),"",4); 

            $this->RegisterPropertyInteger("Aktualisierungsinvertall", 9000000);
            $this->RegisterPropertyString("ApiKey", "");
            $this->RegisterPropertyString("Id", "");

            //Create the timer for the updateintervall
            $this->RegisterTimer("Update", 9000000, 'A_UpdateAuswertung(' . $this->InstanceID . ', "Id","ApiKey");');
            
		}

		public function Destroy()
		{
			//Never delete this line!
			parent::Destroy();
		}

		public function ApplyChanges()
		{
			//Never delete this line!
			parent::ApplyChanges();

            $this->SetTimerInterval("Update", $this->ReadPropertyInteger("Aktualisierungsinvertall") * 1000);
            $this->UpdateAuswertung($this->ReadPropertyString("Id"),$this->ReadPropertyString("ApiKey"));

		}


		public function UpdateAuswertung (string $id, string $apikey) {
        
            if ($id != "")
            {   
                $content = Sys_GetURLContent("https://monitoringapi.solaredge.com/site/$id/overview?api_key=$apikey"); 
                //$content = Sys_GetURLContent("https://monitoringapi.solaredge.com/site/ID123/overview?api_key=APIkey12345"); 
                $json=json_decode($content);

                $cache = $json->overview->currentPower->power / 1000;
                $this->SetValue("Actual", $cache);

                # Generated day
                $cache = $json->overview->lastDayData->energy / 1000;
                $this->SetValue("Today", $cache);

                # Generated month
                $cache = $json->overview->lastMonthData->energy / 1000;
                $this->SetValue("Month", $cache);

                # Generated year
                $cache = $json->overview->lastYearData->energy / 1000;
                $this->SetValue("Year", $cache);

                # Generated all
                $cache = $json->overview->lifeTimeData->energy / 1000;
                $this->SetValue("Total", $cache);
            }

        }

	}

Fehlermeldung:

29.10.2021, 21:30:14 | TimerPool | Wechselrichter (Update):
Warning: Error 403, {„String“:„Invalid token“} in C:\ProgramData\Symcon\modules\Solaredge\Wechselrichter\module.php on line 47

Fatal error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in C:\ProgramData\Symcon\modules\Solaredge\Wechselrichter\module.php:49
Stack trace:
#0 C:\ProgramData\Symcon\modules\Solaredge\Wechselrichter\module.php(49): json_decode(false)
#1 C:\ProgramData\Symcon\scripts__generated.inc.php(7207): Wechselrichter->UpdateAuswertung(‚Id‘, ‚ApiKey‘)
#2 C:\Windows\System32-(1): A_UpdateAuswertung(28157, ‚Id‘, ‚ApiKey‘)
#3 {main}
thrown in C:\ProgramData\Symcon\modules\Solaredge\Wechselrichter\module.php on line 49

Update, der Fehler ist gelöst:

Warning : Error 403, {„String“:„Invalid token“} in C:\ProgramData\Symcon\modules\Solaredge\Auswertung\module.php on line 51

Danke geht an Nall-Chan, der mir im IP-Symcon Discord-Chat geholfen hat einen simplen, für mich unscheinbaren, Fehler zu beheben. Es wurden anstatt des hinterlegten API-Key und der ID, falsche undefinierte Variablen übergeben, wodurch der Fehler verursacht wurde.

Der ganze Anruf hat dadurch nur einmal initial beim Anlegen einer Instand des Moduls funktioniert.
Alle weiteren automatischen Abrufe sind dann Fehl geschlagen. Daher wundert es mich auch wie es bei euch funktionieren konnte, es hätte eigentlich gar nicht funktionieren dürfen.

Kurz gesagt:
Das Problem ist gelöst, das Update ist bereits auf Github hochgeladen.

@schneider1
Könntest du bei dir das Modul einmal updaten und Rückmeldung geben ob der Fehler bei dir jetzt behoben ist?

Grüße
Daniel

@Dromik @frankb
Tritt das „0er-Problem“ noch bei euch auf?

Ich kann es leider nicht nachvollziehen, dass es plötzlich 0 ist.
Wobei es zusammenhängen könnte mit dem in Problem das gelöst wurde, dass ich die Variablen nicht korrekt übergeben habe, wie in Beitrag 44 beschrieben.

Daher sollten aktuell alle Probleme gelöst sein.

Hallo Daniel,

bekomme beim aktualisieren diese Meldung

image002.png

Wollte es jetzt nicht löschen und neu installieren.

image001.png

Guten Morgen,
ich habe etwas nicht bedacht gehabt…

Ich habe das alte Github-Repository gelöscht und das Modul erneut hochgeladen.
Dadurch hat sich die Adresse geändert, du müsstest einmal den neuen Link zum Modul nutzen.

Hintergrund warum ich das Ursprüngliche Repository gelöscht habe:
Ich hatte beim ersten immmer „wild“ commitet ohne die Hintergründe zu verstehen.
Nachdem ich mir aber das Webinar von paresy und Dr. Nils angeschaut habe, habe ich so einiges gelernt. Ich wollte das ganze dann noch eimal sauber haben und habe das alte gelöscht und ein neues angelegt.

Sag bescheid ob es mit dem neuen Link klappt.
Das Modul ist jetzt auch über den Modul-Store verfügbar. :slight_smile:

Webinar:

1 „Gefällt mir“

@schneider1:
Funktioniert es jetzt wieder bei dir, nach meiner Info aus Post 47?