Habe mir eine WebApp für den Batterie-Status gebaut

AntwortenAntworten Options Options Arrow

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
sehr ähnlich zu meinem - darf ein php/json experte gerne verbessern...
2017-01-29_08h48_20.png
Hier noch ein Bild während der Ladung.

Anmerkung: Wenn jemand meint er hätte Probleme mit dem Browsercache weil sich Änerungen in index.html nicht Auswirken, bitte das Datum/version in appcache aktualisieren.
Technikblog & Shop: http://www.elektrifiziert.net
PV 18,2kWp - BHKW EcoPower 1.0, 30kWh LiON Sunny Island System
BMW i3 60Ah (Verbrauch ca. 13,8kWh/100km; SW: I001-16-07-506)
Anzeige

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
[quote="LocutusB"][/quote]

:danke:
BMW i3 - 60Ah - BEV (Baudatum 09-2013) Andesitsilber - I001-18-11-539 - 10/2015-04/2019
BMW i3 - 120Ah - BEV (Baudatum 03.05.2019) Jucarobeige - I001-20-03-530 - seit 16.05.2019

FAQ-Thread für den BMW i3
steuerliche Fragen rund um das Elektroauto

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
Weil es mich immer genervt hat die aktuelle Ladeleistung selber ausrechnen zu müssen:
2017-01-29_11h41_43.png
Ist nat nur einigermaßen genaue, wenn man genügend lange mit dem reload wartet, da der SOC im Portal und die aktuelle Zeit eben leider auch nicht so 100% genau sind.
Technikblog & Shop: http://www.elektrifiziert.net
PV 18,2kWp - BHKW EcoPower 1.0, 30kWh LiON Sunny Island System
BMW i3 60Ah (Verbrauch ca. 13,8kWh/100km; SW: I001-16-07-506)

Re: Habe mir eine WebApp für den Batterie-Status gebaut

Schaschlik
  • Beiträge: 1
  • Registriert: Mo 25. Apr 2016, 13:59
  • Wohnort: Huenfelden
read
Find ich super. Versuche das gerade für mich einzurichten. Nicht-Programmierer! Werde berichten. Danke für die tolle Initiative.

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
@endurance: Wie speicherst Du den "alten" Wert ab um ihn dann mit dem neuen zu vergleichen?

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
Das ist stricly confidential :)

naja hier mal mein messy hacked code snippet

Code: Alles auswählen

		$lastline = $this->read_last_line();
		$actline  = $updateTime.";\t".$updateTime_timestamp.";\t".$electricRange.";\t\t".$chargingLevel.";\t\t\t\t".$stateOfCharge.";\t".$stateOfChargeMax.";\t".$chargingTimeRemaining."\r\n";
		$chargingPower=0.0;
		$act_stateOfCharge=0.0;
		$last_stateOfCharge=0.0;
		if($lastline!=" ")
		{
			// extract the last and actual values
			list($last_updatetime,$last_updatetime_timestamp,$last_electricRange,$last_chargingLevel,$last_stateOfCharge,$last_stateOfChargeMax,$last_chargingTimeRemaining) 	= str_getcsv($lastline, ';');
			list($act_updatetime,$act_updatetime_timestamp,$act_electricRange,$act_chargingLevel,$act_stateOfCharge,$act_stateOfChargeMax,$act_chargingTimeRemaining) 			= str_getcsv($actline,  ';');
			// from german to english number format
			$last_stateOfCharge=str_replace(',','.',$last_stateOfCharge);
			$act_stateOfCharge=str_replace(',','.',$act_stateOfCharge);			
			// calc soc change
			$socchange=$act_stateOfCharge-$last_stateOfCharge;
			$elapsedtime=$act_updatetime_timestamp-$last_updatetime_timestamp;
			if($elapsedtime!=0)
			{
				// convert to hours
				$elapsedtime=($elapsedtime/1000)/3600; 
				$chargingPower=$socchange/$elapsedtime;
				// cut off after 2 digits
				$chargingPower=number_format($chargingPower,2);
			}
		}
		// log changes (only if SOC has really be changed)
		if($lastline!=$actline && $act_stateOfCharge!=$last_stateOfCharge)
		{
			$filehandle = fopen($this->stats_file,'a');
			if($filehandle)
			{
				fputs($filehandle,$actline);
				fclose($filehandle);
			}
		}
also nix anderes wie eine serverseitige CSV, kann man noch schöner machen aber für Sonntagsmorgens reichts ;)

Die Datei sieht in etwa so aus

Code: Alles auswählen

Datum;				timestamp;		Range;	Batteriestand;	SOC;	SOCMax;	Restladezeit
29.01.2017 10:29;	1485685753000;	86;		88;				15,96;	18,30;	01:54
29.01.2017 10:30;	1485685859000;	86;		88;				16,00;	18,30;	01:52
29.01.2017 10:33;	1485686034000;	87;		88;				16,06;	18,30;	01:49
29.01.2017 10:37;	1485686223000;	87;		89;				16,12;	18,30;	01:46
29.01.2017 10:38;	1485686333000;	87;		89;				16,15;	18,30;	01:44
29.01.2017 10:41;	1485686490000;	87;		89;				16,21;	18,30;	01:41
Zuletzt geändert von endurance am So 29. Jan 2017, 11:59, insgesamt 1-mal geändert.
Technikblog & Shop: http://www.elektrifiziert.net
PV 18,2kWp - BHKW EcoPower 1.0, 30kWh LiON Sunny Island System
BMW i3 60Ah (Verbrauch ca. 13,8kWh/100km; SW: I001-16-07-506)

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
Ok, danke. Ich geb's nicht weiter ;-).

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
ne Knobelaufgabe habe ich ja noch drin gelassen :) finde das Ei.
Technikblog & Shop: http://www.elektrifiziert.net
PV 18,2kWp - BHKW EcoPower 1.0, 30kWh LiON Sunny Island System
BMW i3 60Ah (Verbrauch ca. 13,8kWh/100km; SW: I001-16-07-506)

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
Sehr witzig. Muss erst mal verstehen und lernen wie das Dateihandling überhaupt funktioniert. Ich fange an $this zu hassen :-o.

Re: Habe mir eine WebApp für den Batterie-Status gebaut

USER_AVATAR
read
Och Du machst das schon - ich hab mich bis zu dieser app auch noch nie mit PHP beschäftigt (außer Serverinstallationsseitig).
Das ganze ist auf jedenfall ausbaufähig um statistiken automatisiert zu erfassen/erstellen. ich hoffe nur BMW läßt die Schnittstelle einigermaßen offen.

this? haha evtl. meine erste Knobelaufgabe? function und method als tipp ach und damit Du nicht noch mehr suchst:

Code: Alles auswählen

	function read_last_line() { 
		$fp = fopen($this->stats_file, "r"); 
		$pos = -2; 
		$t = " "; 
		if($fp)
		{
			while ($t != "\n") 
			{ 
				 fseek($fp, $pos, SEEK_END); 
				 $t = fgetc($fp); 
				 $pos = $pos - 1; 
			} 
			$t = fgets($fp); 
			fclose($fp); 
		}
		return $t; 
	}
Das geht sicherlich auch besser

und

Code: Alles auswählen

class Battery_API {
    private $token_file	= './access/token.json';
    private $auth_file	= './access/auth.json';
	private $stats_file	= './deinedatei.txt';
....
Technikblog & Shop: http://www.elektrifiziert.net
PV 18,2kWp - BHKW EcoPower 1.0, 30kWh LiON Sunny Island System
BMW i3 60Ah (Verbrauch ca. 13,8kWh/100km; SW: I001-16-07-506)
Anzeige
AntwortenAntworten

Zurück zu „i3 - Laden, Ladeequipment“

Gehe zu Profile
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag