PHP-Skript (wahlweise mit Datenspeicherung)

Renault ZOE Themen, zu denen es kein eigenes Unterforum gibt
AntwortenAntworten Options Options Arrow

PHP-Skript (wahlweise mit Datenspeicherung)

USER_AVATAR
read
Hej!

Ich habe das Skript, das ich schon an anderer Stelle im Forum bereit gestellt habe, komplett überarbeitet. Das Skript speichert nun diverse Daten zwischen und wird dadurch deutlich schneller ausgeführt. Des Weiteren kann man alle abgerufenen Daten auf Wunsch in einer einfachen textbasierten Datenbank (.csv) speichern.

Wichtig: Grundlegende Kenntnisse im Bereich Webserver, PHP usw. sollten vorhanden sein, damit man das Skript zum laufen bekommt und sicher betreiben kann.

Das Skript funktioniert sowohl mit Ph1- als auch Ph2-Zoes sowie dem MeganE, die Ausgabe unterscheidet sich allerdings etwas.

Screenshot Ph1:
screenshot_ph1.png
Screenshot Ph2:
screenshot_ph2.png
Voraussetzungen:
  • Webserver mit PHP 5.3 (oder neuer) und cURL
  • Schreibrechte für das Skript im gleichen Ordner
Benutzungshinweise:
  • Die config.php vor dem ersten Aufruf entsprechend anpassen.
  • Während des ersten Aufrufs legt das Skript die Datei "session" an. In dieser Datei werden u.a. Account ID, Token sowie Fahrdaten zwischen gespeichert. Nach einem Update des Skripts diese Datei bitte löschen.
  • Ist die Datenbank-Funktion aktiviert, wird die Datei database.csv angelegt, in der alle abgerufenen Daten gespeichert werden. Die Datei kann z.B. in Excel importiert werden. Zur regelmässigen Speicherung kann das Skript z.B. mit Cron aufgerufen werden.
  • Konnten keine neuen Daten abgerufen werden, wird ein Hinweis zusammen mit den zuletzt abgerufenen Daten angezeigt.
  • Man kann zwei einfache Mailbenachrichtigungen in Verbindung mit z.B. Cron einrichten: Ist beim Aufruf des Skriptes ein vorher eingestellter Akkustand während eines aktiven Ladevorgangs erreicht und/oder eine Benachrichtigung bei beendetem Ladevorgang erwünscht, wird eine Mail versendet. Es können auch Befehle per shell_exec ausgeführt werden.
  • Auf Wunsch wird bei Erreichen des eingestellten Akkustandes auch der Ladeplaner aktiviert, um den Ladevorgang zu beenden. Für diese Funktion muss ein Ladezeitplan im Auto außerhalb der üblichen Ladezeiten eingerrichtet sein.
  • Wenn das Skript über "index.php?cron" bzw. "php index.php cron" aufgerufen wird, kann man konfigurieren in welchen Abständen die API abgefragt werden soll (während des Ladens, kein Ladevorgang), unabhängig davon wie oft das Skript selbst aufgerufen wird.
  • Wenn das Skript periodisch aufgerufen wird, können auch "Live Daten" an ABRP übermittelt werden. Dazu einfach das ABRP Generic Token und das Fahrzeugmodell in der config.php eintragen.
  • Danke an @ToKen für die Wetter-API Integration für Ph2-Zoes! Wenn man diese Integration nutzen möchte, braucht man einen API-Schlüssel für openweathermap.org.
  • Vielen Dank auch an Muscat's OxBlog für das Entschlüsseln der API.
  • Zur Sicherheit empfehle ich die Absicherung mit einem Verzeichnis-Passwort oder ähnlichen Zugriffsbeschränkungen.
  • Ich übernehme keinerlei Garantie, Gewähr oder sonstige Verantwortung für dieses Skript. Die Benutzung geschieht auf eigene Gefahr.
Übersetzungen:
Das Skript ist in unterschiedlichen Sprachen verfügbar. Folgende sind zur Zeit enthalten:
  • Deutsch
  • English
  • Svenska
  • Italiano
Download:
ZoePHP auf GitHub

/Daniel
Zuletzt geändert von -db- am Mo 1. Jan 2024, 10:35, insgesamt 37-mal geändert.
Renault Zoe R90 Z.E. 40 Intense seit 02/2018 | Renault Megane E-Tech Electric EV60 Equilibre seit 12/2022
Wallbox: Easee Home | PHP-Skript für Renault Zoe/MeganE: ZoePHP | Tipp Kartendienst: ChargeFinder
Anzeige

Re: PHP-Skript (wahlweise mit Datenspeicherung)

n3o611
  • Beiträge: 178
  • Registriert: Do 20. Feb 2020, 21:47
  • Hat sich bedankt: 26 Mal
  • Danke erhalten: 70 Mal
read
Danke für das Script, läuft bei mir nach wenigen Startschwierigkeiten!

Bekomme aber folgenden Fehler, den ich selber noch nicht gelöst bekommen habe, hat jemand eine Idee?

Code: Alles auswählen

Warning: date_interval_create_from_date_string(): Unknown or bad format (PT10M) at position 0 (P): The timezone could not be found in the database in /var/www/clients/client3/web5/web/index.php on line 107

Warning: date_add() expects parameter 2 to be DateInterval, bool given in /var/www/clients/client3/web5/web/index.php on line 107

Warning: date_timezone_set() expects parameter 1 to be DateTime, bool given in /var/www/clients/client3/web5/web/index.php on line 108

Warning: date_format() expects parameter 1 to be DateTimeInterface, bool given in /var/www/clients/client3/web5/web/index.php on line 109

Re: PHP-Skript (wahlweise mit Datenspeicherung)

USER_AVATAR
read
Das ist ein Fehler im Skript. Ich habe dies und noch eine andere Sache bereits geändert und teste das Skript zur Zeit. Vermutlich morgen werde ich ein neues Skript zur Verfügung stellen.

/Daniel
Renault Zoe R90 Z.E. 40 Intense seit 02/2018 | Renault Megane E-Tech Electric EV60 Equilibre seit 12/2022
Wallbox: Easee Home | PHP-Skript für Renault Zoe/MeganE: ZoePHP | Tipp Kartendienst: ChargeFinder

Re: PHP-Skript (wahlweise mit Datenspeicherung)

USER_AVATAR
read
Ich habe eine neue Version im ersten Beitrag bereit gestellt. Diese sollte das oben genannte Problem beheben.
Ausserdem wird nun eine Fehlermeldung angezeigt und keine fehlerhaften Daten (zwischen)gespeichert, falls der Renault-Server unvollständige Daten zurück gibt.

/Daniel
Renault Zoe R90 Z.E. 40 Intense seit 02/2018 | Renault Megane E-Tech Electric EV60 Equilibre seit 12/2022
Wallbox: Easee Home | PHP-Skript für Renault Zoe/MeganE: ZoePHP | Tipp Kartendienst: ChargeFinder

Re: PHP-Skript (wahlweise mit Datenspeicherung)

n3o611
  • Beiträge: 178
  • Registriert: Do 20. Feb 2020, 21:47
  • Hat sich bedankt: 26 Mal
  • Danke erhalten: 70 Mal
read
Läuft bei mir super, danke! :)

Re: PHP-Skript (wahlweise mit Datenspeicherung)

USER_AVATAR
read
Ich habe eine neue Version im ersten Beitrag bereit gestellt. Wenn ihr von einer früheren Version updatet, bitte die #session.php vor der ersten Ausführung löschen.

Was ist neu?
- Bessere Erkennung von geänderten Daten, statt Datum/Zeit wird jetzt ein MD5-Hash der Daten zwischen gespeichert
- Neue Funktion, wenn das Skript regelmässig per z.B. cron ausgeführt wird: Einfache Mailbenachrichtung, wenn ein bestimmter Ladestand (in config.php einzutragen) beim Aufrufen des Skriptes erreicht ist.

/Daniel
Renault Zoe R90 Z.E. 40 Intense seit 02/2018 | Renault Megane E-Tech Electric EV60 Equilibre seit 12/2022
Wallbox: Easee Home | PHP-Skript für Renault Zoe/MeganE: ZoePHP | Tipp Kartendienst: ChargeFinder

Re: PHP-Skript (wahlweise mit Datenspeicherung)

Oscar175
  • Beiträge: 8
  • Registriert: Do 18. Jun 2020, 21:47
  • Hat sich bedankt: 6 Mal
read
Vielen Dank, nutze ich mittlerweile lieber als die App :)

LG

Re: PHP-Skript (wahlweise mit Datenspeicherung)

mifra
  • Beiträge: 520
  • Registriert: Sa 30. Mai 2015, 14:43
  • Hat sich bedankt: 33 Mal
  • Danke erhalten: 122 Mal
read
Mail bei Ladestand, klasse! dazu passend wäre auch eine Mail bei Ladeende/abbruch (insb. Letzteres) super! Sollte machbar sein über Erkennung des Wechsels des Zustands 'Ladezustand'. Es gibt dort außer 0 und 1 auch -1 und 3, die beiden hatte ich kürzlich bei einem Ladeversuch, der fehlgeschlagen ist.
Twizy 02/2014-06/18
BMW 225e 11/17-11/20
Smart 44 EQ 6/18-6/20
Zoe R110/ZE50 CCS 6/20- GJR
Bild reell inkl. Ladeverluste, überwiegend 3.6kW

Re: PHP-Skript (wahlweise mit Datenspeicherung)

USER_AVATAR
read
Hallo,
hat jemand einen Tip für mich? Ich bekomme das Script nicht ans fliegen.
Im Browser immer nur http error 500.

In der session.php steht immer nur:

<?php die('Access denied!');?>
id|date|idtoken|accountid|md5|mail|mileage|temperature
1|||||N||

Die Rechte aller scripte sind auf 777 gesetzt.
Für mich sieht es so aus als hätte das script keine Rechte curl auszuführen.

Aber da komme ich nicht weiter.

Ein Test mit einem php script um die Version abzufragen funktioniert.
Auto: Renault Zoe R135 Intense 10/2020
Go-E Charger 22KW
Motorrad: BMW 1200GS Adventure 2014
Lieblingsgitarre: Fender Stratocaster Black Mystik "10 of 15" Limited Edition

Re: PHP-Skript (wahlweise mit Datenspeicherung)

USER_AVATAR
read
Da braucht es schon eine genaue Fehlermeldung.
Hast du irgendwo eine php_errors.log auf deinem Server?
Alternativ kannst du probieren, folgenden Code direkt unter "<?php" in der index.php zu platzieren.

Code: Alles auswählen

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
/Daniel
Renault Zoe R90 Z.E. 40 Intense seit 02/2018 | Renault Megane E-Tech Electric EV60 Equilibre seit 12/2022
Wallbox: Easee Home | PHP-Skript für Renault Zoe/MeganE: ZoePHP | Tipp Kartendienst: ChargeFinder
Anzeige
AntwortenAntworten

Zurück zu „ZOE - Allgemeine Themen“

Gehe zu Profile