PHP Modul zum Einbinden einer Go-eCharger Wallbox

Hi,
der Ping geht doch in der Regel direkt auf die IP, nicht auf einen Port, oder? Wenn ich die IP des Chargers anpinge bekomme ich mal eine Antwort und mal nicht (von 4 gesendeten Pings bekam ich eben 3 Rückmeldungen, einer ging verloren). Kann das sein, dass das WLAN Modul im Charger nicht durchgehend aktiv ist? Bzw. wie könnte ich in meinem Fall die Meldung im Log umgehen? Die Steuerung scheint ja zu funktionieren…

Gruß

Hallo Coyote,

vielen Dank Dir für das Modul zum Go-eCharger. Ich setzte es bereits seit einigen Monaten bei mir ein. Bin selbst leider absoluter PHP-Laie und habe folgendes Problem.
Mein WLAN ist im Zeitraum zwischen 0.00Uhr und 6.00Uhr deaktiviert. Daher erhalte ich für diesen Zeitraum eine ähnliche Fehlermeldung wie Luca („fsockopen{}: unable to connect …“).
An welche Stelle müsste ich den Code erweitern/anpassen, damit die Abfragen/Verbindungsversuche nur im Zeitraum 6.01 bis 23.59Uhr erfolgen?
Oder stelle ich dies besser direkt über IPSymcon ein (z.B. Skriptausführung nur in diesem Zeitraum, müsste mich dazu aber auch erstmal wieder einarbeiten). Danke Dir/Euch für jedlichen Hinweis.

Viele Grüße,
chhub

In dem Fall die automatische Aktualisierung in Modul abschalten und selbst über ein Skript mit dem Update-Kommando aktualisieren. Das Skript dann mit entsprechend konfiguriertem Timer-Event laufen lassen.

Ein Skript, welches aber alle z.B. alle 15Sek. läuft finde ich allerdings schon ungewöhnlich. Ich frage mich eher, warum man das WLAN nachts deaktiviert (wenn darüber eben auch Hausautomation läuft). Hoffentlich ist dann erst recht das Handy und Dect-Telefon auch aus. :wink:

Danke Dir für die Rückmeldung. Habe ich nun entsprechend deinem Vorschlag umgesetzt.

Zum Thema WLAN stimme ich Dir zu. Habe ich „intern“ auch schon mehrfach diskutiert und Handy ist im genannten Zeitraum wirklich ebenfalls aus (kein DECT). Nunja, da alle anderen Gerätschaften per LAN eingebunden sind, nehme ich es so hin. Dann zurück zum Thema: Danke Dir nochmals und ein schönes restliches Osterwochenende.

Hallo, erst einmal vielen Dank für das tolle Modul. Allerdings bekomme ich einen Fehler, wenn ich die aktuelle Ladeleistung abfrage:
$ladeleistung=GOeCharger_GetPowerToCar( 52269 );

Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /var/lib/symcon/modules/.store/coyote.goecharger/go-eCharger/module.php:252
Stack trace:
#0 /var/lib/symcon/scripts/__generated.inc.php(443): go_eCharger->getPowerToCar()
#1 /var/lib/symcon/scripts/55393.ips.php(3): GOeCharger_getPowerToCar(52269)
#2 {main}
thrown in /var/lib/symcon/modules/.store/coyote.goecharger/go-eCharger/module.php on line 252

@HD123 Fehler gefunden - ich bin dran

[Update]
Fehler ist in Beta behoben, Stable mit Korrektur ist eingereicht.

Boa -das ist ja schneller, als die Polizei erlaubt!

Hier mal mein amateurhafter Code, weil ich das neu erfinden musste, kann das vielleicht jemand als Anregung nutzen.
Ich hab einen discovergy-Zähler (Awattar) und will meinen eigenen Solarstrom in den Akku bekommen. Bei negativer Leistung des discovergy-Zählers wird Solarstrom eingespeist. Den will ich „bis zur schwarzen Null“ nutzen.
Im Winter nützt der Solarertrag nichts, die paar Wh gehen dann komplett in der Akku-Heizung drauf. Man lädt dann am Besten, wenn man gerade kommt oder bevor man fährt.
Diese Awattar-Nutzung muss ich noch Umsetzen…
Der Script läuft aller 30 s. Darauf achten, dass die Abfrage des go-e einen kürzeren Intervall als der Ladescript hat.

<?php

$aktuelleSolarLeistung=intval(GetValueFloat(46019))*(-1);

$aktuelleSpannung=intval(GetValueFloat(44781));

$aktuellerLadestrom=intval(GOeCharger_GetCurrentChargingAmperage( 52269));

$Ladestatus=GOeCharger_GetStatus( 52269 );

$Ladenaktiv=GOeCharger_IsActive( 52269 );

$Phasen=GetValueInteger(24425);

$SollLadeStrom=0;

//Bei einphasigem Laden geht es bei 1400 W los

//Bei 3 phasigem Laden beginnt es bei 4140 W

if($Ladestatus==2 && $Ladenaktiv)

{

    $SollLadeStrom = ($aktuellerLadestrom * $Phasen) + ($aktuelleSolarLeistung / $aktuelleSpannung);

}

else

{

    $SollLadeStrom=$aktuelleSolarLeistung / $aktuelleSpannung;

}

$SollLadeStrom=intval(round($SollLadeStrom * $Phasen));

print("aktuelleSolarLeistung $aktuelleSolarLeistung \n");

print("aktuelleSpannung $aktuelleSpannung \n");

print("aktuellerLadestrom $aktuellerLadestrom \n");

print("Ladestatus $Ladestatus \n");

print("Solarstrom $SollLadeStrom \n");

print("Phasen $Phasen \n");

if($SollLadeStrom >= 6) 

{

    GOeCharger_SetCurrentChargingAmperage( 52269, $SollLadeStrom);

    GOeCharger_SetActive( 52269, true );

}

else 

{

    GOeCharger_SetCurrentChargingAmperage( 52269, 16);

    GOeCharger_SetActive( 52269, false );

    }

?>

Die print-Befehle sind zur Kontrolle, ob der Script auch das macht, was er soll. Ist noch nicht komplett erprobt.
Im Winterhalbjahr macht Solar keinen Sinn, die paar Wh Ertrag gehen dann komplett für die Akku-Heizung drauf. Da ist dann die Awattar-Nutzung sinnvoll. Die habe ich noch nicht umgesetzt…

Hallo Leute, ich habe die Konstellation: eGoCharger, Model 3, Solar-Edge PV - Anlage und awattar mit Hourly Tarif…
Zuerst habe ich mir die PV Laderei auch selbst gestrickt… habe dann openWB entdeckt, auf einen RASPI installiert und die PV geführte Ladung klappt einwandfrei.
Die geniale IPS Community steuert die feinen Module für Tesla, eGoCharger und openWB und awattar bei und, schwups, alles ist transparent in IPS!
Muss sagen, bin wirklich begeistert!!!

Gruß Michael

1 „Gefällt mir“

Hallo @micserver,

ich nutze auch einen go-eCharger und dachte ebenfalls an openWB als Software. Hast Du openWB auf dem gleichen RPi laufen wie IPS oder auf einem anderen? Falls getrennt, hättest Du Bedenken, beides auf einem laufen zu lassen?

Danke und Gruß
Mark

IPS 5.5 auf RPi 4

Ich dachte vor allem, OpenWB ist eine Software für eine Selbstbau-Wallbox. Nicht, dass man sie mit einer go-e zusammen benutzen kann…

Die Frage wäre für mich eher: Wozu btaucht man OpenWB, wenn man es in IPS auch machen kann? :thinking:

Ich kenne diverse Leute, die OpenWB zum PV-Laden nutzen. Nur haben die alle sonst keine Hausautomation am Laufen. Wozu also noch einen Server laufen lassen.

Ansonsten: Bitte hier weiter beim GO-eCharger IPS Modul bleiben und nicht zu weit abdriften :wink:

1 „Gefällt mir“

Aktuell habe ich openWB auf einen eigenen RASPi laufen… aber nur weil ich noch keine Zeit für den Versuch hatte es zusammen mit IPS auf einen laufen zu lassen.
Warum opbenWB … weil die gesamte Regelung der PV geführten Ladung da bereits existiert… warum sollte ich das neu erfinden, da fehlt mir einfach die Zeit.
Gruß Michael

Der Hinweis, dass man eigentlich bereits einen Server laufen hat, ist nicht unberechtigt. Man darf nicht vergessen, dass man jeden Server pflegen muss (Updates) und je mehr dran ist, desto mehr kann ausfallen oder es machen sich irgendwo unvorgesehen Sicherheitslücken breit.

Falls es also noch keiner gemacht hat, muss ich mir den Ladescript Stück für Stück selbst zusammenpusseln.

Was das Argument mit der Zeit betrifft: Auch das Einrichten des OpenWB-Servers kostet viel Zeit und Einarbeitung…
Damit man das nicht immer neu erfinden muss, teil ich ja meinen Script, wenn er auch nicht direkt einsetzbar ist, weil ich die IDs direkt angegeben habe und nicht auslese. Vielleicht hat ja einer Langeweile und stellt das so um, dass es grundsätzlich einsetzbar ist und/oder Coyote bastelt es in sein Modul.

So, hier jetzt die aktuelle Version des Scriptes. Sie unterstützt das Sofortladen, das Awattar-Laden und das Laden mit Solarüberschuss.
Die Auswahl trifft man mit der Zugangskontrolle: Sofortladen ist die 0, Solarladen die 1 und Awattar-Laden die 3.
Das Variablenprofil habe ich entsprechend angepasst und in Ladeart umbenannt.
Es gibt noch zwei Events, eines bei Änderung der Ladeart (Zugangskontrolle) und einen 15 s Timer, der im Script beim Solarladen aktiviert wird.
Das Solarladen hat eine Hysterese, damit nicht jeder winzige Sonnenstrahl zum Einschalten führt: Erst bei verfügbaren 10 A ein und bei unter 6 A aus.
Er sollte sowohl 3-phasig, als auch 1-phasig funktionieren. Das Umschalten werde ich an der Sicherung vornehmen müssen, der Go-e kann es ja nicht selbst.

<?php
$Ladeart=GetValueInteger(49732);

if($Ladeart==1)
{
    $aktuelleSolarLeistung=intval(GetValueFloat(46019))*(-1);
    $aktuelleSpannung=intval(GetValueFloat(44781));
    $aktuellerLadestrom=intval(GOeCharger_GetCurrentChargingAmperage( 52269));
    $Ladestatus=GOeCharger_GetStatus( 52269 );
    $Ladenaktiv=GOeCharger_IsActive( 52269 );
    $Phasen=GetValueInteger(24425);
    $SollLadeStrom=0;
    Print("Solarladen ein");
    //Bei einphasigem Laden geht es bei 1400 W los
    //Bei 3 phasigem Laden beginnt es bei 4140 W

    if($Ladestatus==2 && $Ladenaktiv)
    {
        $SollLadeStrom = ($aktuellerLadestrom * $Phasen) + ($aktuelleSolarLeistung / $aktuelleSpannung);
    }
    else
    {
        $SollLadeStrom=$aktuelleSolarLeistung / $aktuelleSpannung;
    }

    $SollLadeStrom=intval(round($SollLadeStrom * $Phasen));


    if($SollLadeStrom >= 6 && $Ladenaktiv ) 
    {
        GOeCharger_SetCurrentChargingAmperage( 52269, $SollLadeStrom);
        GOeCharger_SetActive( 52269, true );
        IPS_SetEventActive(12058, true); 
    }
    elseif($SollLadeStrom >= 10 ) 
    {
        GOeCharger_SetCurrentChargingAmperage( 52269, $SollLadeStrom);
        GOeCharger_SetActive( 52269, true );
        IPS_SetEventActive(12058, true); 
    }
    else 
    {
        GOeCharger_SetCurrentChargingAmperage( 52269, 16);
        GOeCharger_SetActive( 52269, false );
        IPS_SetEventActive(12058, true); 

    }
}
else
{
    GOeCharger_SetCurrentChargingAmperage( 52269, 16);
    //GOeCharger_SetActive( 52269, true );
    IPS_SetEventActive(12058, false); 
}
?>

Hi,

klasse, dass du einen eigenen Ansatz begonnen hast!

Vielen Dank!!!

Ich würde auch die komplette IPS Variante bevorzugen, bevor ich noch einen weiteren Raspi mit openWB an den Start bringe …

Da du die Variablen ja direkt zugeordnet hast fällt es mir an einigen Stellen etwas schwer dein Script zu verstehen bzw. es zu adaptieren. Hast du vielleicht die Möglichkeit einen Screenshot zu machen, sodass man die Zuordnung erkennen kann?

Ich vermute, dass du neben dem Go-eCharger Modul noch das Discovergy/Awattar Modul nutzt, richtig?

Hier meine Unklarheiten:

→ Du greift auf die 'Variable Zugangscontrolle vom Modul Go-eCharger zu? Warum nimmst du hier nicht GOeCharger_GetAccessControl( 52269 ) Wobei dann die „0“ wohl der richtige Wert wäre für Solarladen?

Greifst du aus der Discovergy/Awattar Modul die Gesamtleistung ab oder die einer Phase?

Die Spannung liegt hier ja nur für die einzelnen Phasen vor, nimmst du die von Phase 1?

Das ist die Variable „Verfügbare Phasen“, richtig?

Event 1 ruft bei Änderung vermutlich das Script noch einmal auf …
Event 2 verstehe ich nicht ganz. :slight_smile:

So, dass sollte zum ersten Verständnis reichen ggg

Danke !!!

Ich möchte nochmal darum bitten, für eine Diskussion über den GO-eCharger und PV Laden einen eigenen Beitrag aufzumachen. Ich benutze dieses Thema Rund um das PHP Modul des GO-eChargers (Features, Fehler, etc.). So würde ich es gerne auch belassen (der Übersichtlichkeit halber) und hier nicht alle Anwendungen mit dem GO-eCharger Modul diskutieren wollen.

OK hier geht es weiter:

1 „Gefällt mir“

Entschuldige bitte!

Ich hatte deinen Kommentar überlesen :frowning: Ich wollte ihn nicht ignorieren …

Es ist auch nachvollziehbar, wenn für die Weiterentwicklung (Features, Fehler … ) deines Modules (Hierfür auch mein herzlichsten Dank!!!) die Informationen besser zusammenbleiben sollen.

1 „Gefällt mir“