GPS/Exif geht wieder

Hier hatte ich festgestellt, dass ja die GPS-Daten aus meinen Bildern nicht mehr angezeigt werden. Nach ziemlich langem Debugging bin ich drauf gekommen, dass es am PHP selbst liegen könnte, weil nämlich die Exif-Header gar nicht mehr korrekt ausgelesen wurden. Damit waren dann gar keine GPS-Daten zum Anzeigen da. Stackoverflow meinte was von einem Bug in PHP-Version 7.2 und ulkigerweise ist das natürlich die, auf die Hosteurope zuletzt alles umgestellt hat. Nachdem ich auf 7.1 zurückgestellt hatte, ging alles wieder. Dafür sucht man dann ewig nach dem Fehler und lernt eigentlich gar nichts Neues.

Erstklassige Uhrenprobleme und ein Wasserschaden

Aussicht, wie jedes Jahr

Am Freitag vor dem abendlichen Abflug bemerke ich noch, dass das Abflussrohr in der Küche verstopft ist. Also den Siphon abgeschraubt, mal ein übriges Stück Kettenschutz vom Liegevelo bis zum Anschlag reingeschoben und vermutet, dass das nur mein Anschluss ist; somit den Siphon offengelassen und Abflussreiniger eingefüllt, in der Hoffnung, dass es übers Wochenende wieder frei wird. Dem war allerdings nicht so. Am Sonntagabend erreicht mich von den Nachbarn untendrunter die Info, dass die Nachbarn über mir die Waschmaschine angeworfen hätten und das Wasser bei mir in der Küche rausgekommen wäre und dann zu ihnen runtergelaufen sei. Ja schick, ich konnte nicht viel machen. Ich hab nur aus der Ferne ausprobiert, ob ich mein Warmwasser noch an-/abschalten kann und war erleichtert, dass das noch funktionierte.

Wieder vor Ort, gab’s in meiner Wohnung so gut wie gar keinen Schaden (nicht mal die Warmwassersteuerung, die 15cm neben dem offenen Abwasserrohr klebt), das Wasser ist einfach gleich nach unten durch die Decke gelaufen. Wenn ich nicht offen gelassen hätte, hätte es bei mir einfach das Waschbecken gefüllt und hätte dann langsam meine Küche ruiniert, ohne dass es jemand gemerkt hätte, also war das wohl Glück im Unglück.

Der SanitäRter am Montag war dann voll nett, hat mal bei mir im Abfluss die Spirale eingeführt, dann von oben, ich hab mitgeholfen und zugeschaut und viel gelernt über die Rohrverlegung bei uns im Gebäude. Das Geräusch, wenn plötzlich wieder das Wasser durchfliesst, ist schon erleichternd.

Sanitärfachmann mit der Spirale

Ein bisschen unterhalten haben wir uns auch und ich hatte zwar gelesen, dass ein gewisser Herr Koller den Weihnachtsbaum vor meinem Fenster gesponsort hatte, aber ich wusste nicht, dass es mein Sanitärfachmann war. Der fand’s auch gut, seinen Baum mal von oben zu sehen.

Der Blick in die Altstadt, auch wie jedes Jahr.

Nach einer Weile mit dem 1.Klass-GA stelle ich mal ernüchternd fest, dass in der zweiten Klasse die cooleren Leute sitzen, aber in der ersten einfach mehr Platz ist. Neulich haben sich in der 1. Klasse der Zürcher S-Bahn drei gesetzte/sitzende ältere Herren tatsächlich darüber mokiert, dass es die SBB einfach nicht schaffen, endlich mal diesen Minutenschlag abzuschaffen bzw. zu korrigieren. Es ging ihnen aber nicht um die Bahnhofsuhren draussen, sondern um die Anzeige unten rechts auf dem Monitor in der S-Bahn 🙂

Die Bahnhofsuhr unten rechts.

Da hätte ihnen eigentlich selbst auffallen müssen, dass das ein feature und kein bug ist, also Absicht. Nicht umsonst wollte ja auch Apple dieses Uhrendesign einfach klauen. Ich hab ihnen dann einfach meine geschenkt bekommene stop2go unter die Nase gehalten mit dem Minutenschlag und gemeint, dass das heute sogar extra kostet.

Meine neue gebrauchte Kamera Lumix TZ60 hat auch einige nette Merkmale. 30x optischer Zoom, RAW-Bilder und einen Objektiv-Drehring für die manuellen Programme. Und ganz wichtig: kein Dreck auf dem Sensor. Ich hatte die Wahl, ob ich die alte TZ41 für 130 Fr. zum Reinigungsservice schicke oder ob ich die Nachfolgekamera für denselben Preis als Occasion bekomme. Die Stundenlöhne hierzulande halt, da war die Entscheidung recht einfach, zumal ich auch die zusätzlichen Akkus und Speicherkarten der alten Kamera weiter benutzen kann. Jetzt muss ich nur noch schauen, wie ich die GPS-Daten hier im Blog wieder ausgelesen und angezeigt bekomme.

Zürich, Limmat, 04.12.2018

Datenaggregatoren bei Google

Dow Jones bei Google

Gestern war ich bei einem von Google gehosteten Event auf dem Hürlimann-Areal in Zürich. Der Hersteller von DNA (Data, News, Analytics) hatte zu drei Sessions eingeladen (nicht zu verwechseln mit der deutsch ausgesprochenen Wintersession im Bundeshaus). Was Dow Jones macht: Daten aus weltweit zugänglichen und verfügbaren News-Quellen sammeln, aggregieren, aufbereiten, und das in vielen Sprachen. Das läuft natürlich auf der Google Cloud Platform, sonst wäre ja jemand anderes der Host dieser Veranstaltung gewesen.
Continue reading “Datenaggregatoren bei Google”

Aktuelle Kulturveranstaltungen

Morgenstimmung zwischen Gähwil und Mühlrüti

Früher und bis Ende 2016 war es Giacobbo/Müller, neuerdings geh ich häufiger zu Deville Late Night. Es ist dahingehend anders, dass es weniger politisch ist als G/M und dass vor allem die Aufzeichnung viel lustiger ist als die Sendung am Ende, weil sehr viel geschnitten wird und auch viele nicht voll durchgeplante Dinge passieren. Fernsehen halt, ich reserviere immer Tickets und suche dann Leute, die mitkommen.

Am Dienstag (20.11.) hatten wir die erste Ausgabe unseres neuen Reinforcement Learning Meetups, das ich mit Claus und Mark von der SwissRe organisiere. Es fand bei uns in der Mobiliar in Oerlikon statt und den Auf-/Abbau sowie die ganze Logistik hab ich übernommen. Unser eingeladener Referent war Christian Hidber von bsquare, der uns erzählt hat, wie sie das Problem der Regenwasserableitung bei Flachdächern für Geberit mit Hilfe von Reinforcement Learning gelöst haben. Sehr spannend und auch sehr anschaulich. Man denkt gar nicht, was da an Aufwand dahintersteckt, aber Wasser hat natürlich viel Gewicht und es kann nicht ewig viel auf dem Dach bleiben. Ich würd ja einfach ein Schrägdach bauen, aber das wäre vielleicht zu einfach und dann hätte Geberit ja nichts mehr zu tun.

Für die neueste Show des Bernhard-Theaters Cabaret hatte ich (fast wie üblich) Tickets gewonnen und so ging es gestern mit unerwartet nerdiger Begleitung zur Premiere. Sehr gute Show, sehr unterhaltsam und ein paar Schauspieler aus meinem Lieblingsdialektmusical Ost Side Story (gesehen zum zweiten Mal am 23.09.2016) waren auch wieder dabei. Zuletzt war ich 2017 im Bernhard-Theater, weil ich fünf Tickets für The Show Must Go Wrong gewonnen hatte, was dermassen lustig war, dass ich hinterher noch länger Bauchweh hatte vom Lachen.

Massimo Rocchi live

Massimo Rocchi, Stadtsaal Wil, 2018-11-03

Dummerweise hatte ich gestern beim Tagblatt für heute zwei Tickets für Steff la Cheffe gewonnen, das hat nun einen Konflikt gegeben mit dem Auftritt von Massimo Rocchi in Wil. Es ist schon fünfeinhalb Jahre her, dass ich hier einen kurzen Beitrag über sein französisches Programm rocCHipedia (hier auf Deutsch) geschrieben hatte. Diese Woche hatte ich mir noch sein älteres italienisches Programm angeschaut und so gut wie alles verstanden 😀 Das war vor fünf Jahren noch lange nicht der Fall, so war es heute viel lustiger, wenn er permanent die Sprachen gewechselt hat. Viele Nummern kannte ich schon, auch die Pantomimen-Nummer mit dem Torwart, hier ab 05:30: Massimo Rocchi — Fußball.

Noch ein älteres (hauptsächlich deutsches) Programm von 2007 ist ebenfalls bei SRF verfügbar: Circo Massimo.

SASOL2018, Geschwindigkeiten/Fahrer

Eine weitere Auswertung: wann wurden welche Geschwindigkeiten gefahren? Welcher Fahrer ist wie weit und wie lange gefahren?

Was nicht geht: Fahrstile der Fahrer zu vergleichen. Dafür haben die Fahrer zu wenig Einflussmöglichkeiten und die gefahrenen Streckenabschnitte sind zu unterschiedlich. Dazu kommt noch massiver Wind. Wenn ich ein Gyro und einen Windmesser hätte und auch noch eine GPS-Aufzeichnung im Solarauto selbst, könnte ich Fahrstile unserer vier Fahrer in Bezug auf den Verbrauch auseinanderhalten. Aber mangels dieser zwei wesentlichen Einflussfaktoren (Wind/Steigung) geht das nicht.

Aber hier zu den Geschwindigkeiten ein paar Kurven:

Man sieht Kontrollstops, man sieht ungeplante Stops, man sieht Ladestops (wenn man weiss, wo man schauen muss). Was aber interessanter ist, sind eigentlich die Zustandsänderungen, d.h. wann wird weitergefahren, wann wird gestoppt und daraus abgeleitet wann sind Fahrerwechsel bzw. wer fährt wann. Man hätte das natürlich konsequent mitschreiben können und eigentlich wäre jetzt das Protokoll des jeweiligen Observers hilfreich — Stichwort open data, das sollte uns der Veranstalter zur Verfügung stellen, genauso wie den aufgezeichneten GPS-Track des Solarautos.

Ich mach mal bisschen stop-go-Erkennung:

Wenn ich alle Wechsel von stop auf go und umgekehrt markiere, sind das um die 3300. Das sind ein bisschen viele, um sie manuell zu annotieren. Aber man kann ja filtern: innerhalb von zwei Minuten sollten maximal zwei solche Wechsel sein, das reicht noch für echtes stop&go im Verkehr, was ich dann manuell erkennen kann.

Da bleiben noch 156 Zustandswechsel übrig, die ich jetzt von Hand (mit Aufzeichnungen, Fotos mit EXIF, Hintergrundwissen etc.) kennzeichnen kann. Ich weiss lange nicht alle, aber vielleicht kann mir ja jemand helfen. Momentan sieht die Grafik so aus:

Wenn ich da irgendwann mal alles komplett gekennzeichnet habe, kann ich auch Fahrerstatistiken berechnen. Ich hoffe, meine farbige Legende hat ungefähr die Lieblingsfarben der Fahrer erwischt, sonst bitte melden 🙂

Und als (wie immer geniales) Detail von tidyr: ich hab eine Funktion gesucht, die alle Datenpunkte zwischen zwei gesetzten Zustandsänderungen auf den ersten Zustand setzt, also z.B. alles zwischen Tobias um 09:37 bis Selina um 10:45 auf Tobias. Das ist also eine Funktion zum Füllen. Und natürlich heisst sie auch “fill”…

SASOL2018, Nachbereitung, Tagesstatistiken

Oder auch: die ultimative Statistik (siehe ASC2016)

(Stand: 2018-10-07, Änderungen vorbehalten)

day W_Motor_Wh W_PV_Wh km vmax_km_h h Wh_km km_h
1 5460.7 3944.6 427.7 107.3 7.34 12.77 58.27
2 4030.1 4392.9 362.6 92.4 6.69 11.11 54.2
3 3666.3 2521.6 358.2 85.3 7.67 10.24 46.7
4 2403.2 4057.1 255.2 102.8 5.46 9.42 46.74
5 3393.6 3047.4 243 92.1 4.41 13.97 55.1
6 4496.5 4763.1 370.1 82.7 7.24 12.15 51.12
7 3976.9 3971.4 286.8 78.2 6.43 13.87 44.6
8 4671.3 4345.4 365.5 103.5 7.17 12.78 50.98

(Achtung: dezimale Nachkommastellen bei den Uhrzeiten; Stillstandzeiten wie Ampelstops zählen nicht zur Fahrzeit, Fahrzeit = Zeit in Bewegung)

SER3, Nebenverbräuche und Verluste

Ja, wenn man natürlich im Gruppenchat fragt, ob noch jemand was ausgewertet haben möchte, ist man selbst schuld. Mein folgendes Angebot wurde gleich angenommen.

Zum Glück sind die beiden I-Werte (Resultierende vom ZMC und der direkte Wert vom BMS) zu 0.98 korreliert, da könnte ich jetzt sogar die Verlustleistung der Steuerelektronik draus berechnen.

Jänu. What goes around comes around, *seufz*.

Die erste Annahme dazu: die Verlustleistung bzw. die benötigte Leistung der Regelelektronik ist in allen Fahrzuständen (auch ohne Oberdeck :D) konstant. Wenn wir gar keine Verluste hätten, wäre P_pv + P_mot = P_bat. Es gibt aber eine Differenz zwischen P_pv+P_mot und P_bat und genau die sollte in der Annahme der Verlustleistung entsprechen.

Schauen wir uns also dazu mal die Dichteverteilung an. Die sagt recht klar aus, dass die Verlustleistung der Elektronik nicht konstant ist. Noch dazu sieht sie (aus meiner Perspektive) spannend aus — Hügel und Berge sind nicht nur in natura cool 🙂

Alle Daten, Verteilung der Differenz zwischen P_pv+P_mot und P_bat — nicht konstant 🙂

Die zweite Annahme: die Verlustleistung ist abhängig davon, ob das Auto steht oder fährt. Okay, also teilen wir die Daten mal soweit auf und machen die Dichteverteilung nochmal:

Alle Daten, Verteilung der Differenz zwischen P_pv+P_mot und P_bat — aufgeteilt nach Fahrt und Stillstand.

Jedenfalls sollte ich mir das mal anders anschauen, und zwar in den Dimensionen (Motorleistung x PV-Leistung). Ich gehe davon aus, dass ich von allfälligen Regelverlusten der PV (wenn mehr Leistung über die Panels kommt, gibt’s eigentlich auch mehr Verluste) nichts bemerke, weil der Strom von den Panels erst nach den MPPTs gemessen wird und die Verluste vorher entstehen. Das sollte man dann in einer Dimension sehen (oder eben grad nicht). In der anderen Dimension Motorleistung würde ich aber schon davon ausgehen, dass bei höherer Leistung auch höhere Verluste anfallen.

Also los, 524’000 Datenpunkte mal schnell gruppieren, aggregieren und in eine Heatmap verklappen:

Mittelwert pro Kombination — je mehr Motorleistung, desto mehr Regelverluste, kein Einfluss PV.
Medianwert pro Kombination — je mehr Motorleistung, desto mehr Regelverluste, kein Einfluss PV.

In beiden Heatmaps sieht man eigentlich dasselbe, es ist nur einmal der Mittelwert und dann der Medianwert. Links der roten Linie sind alle Fahrzustände, in denen der Motor rekuperiert hat (dementsprechend viele Lücken, in Australien kommt da fast nichts). Rechts der Linie sind die Zustände, in denen der Motor Energie verblasen hat. Pro Datenpunkt von den 524’000 hab ich die Differenz berechnet, die der Elektronik-Verlustleistung entsprechen sollte, negative Werte weggeworfen und den Rest entsprechend in einen Wert pro Kästchen zusammengefasst.

Man sollte mit steigender Motorleistung erkennen, dass sich die Farbe der Kästchen von dunkelgrün (Mitte) zu gelb/rot (rechts) verändert, und zwar ziemlich unabhängig von der PV-Leistung.

Grob in Zahlen (Motorleistung/Verlustleistung):

  • 0-250W / < 10W
  • 250-500W / 10-20W
  • 500-750W / 20-25W
  • 750-1000W / 25-30W
  • >1000-1500W / 30-40W

*

Das sind so als Anhaltspunkte ganz plausible Zahlen, wie ich finde. Auch hier: in Südafrika gab es wegen der massiven Steigungen ganz andere Daten als es in Australien geben dürfte. Wenn ich noch einen Neigungssensor hätte, könnte ich noch besser filtern. Meist fährt man auf flacher Strecke mit einer Leistung von 500-1000W, da sind es um die 3% Verluste. Und wie geschrieben: ich nehme an, dass die Verluste die Differenz zwischen gemessener Batterieleistung und der Summe aus P_mot und P_pv sind.

Was ich auch noch nebenbei festgestellt habe: die Spannungswerte vom BMS sind nur auf etwa 1V genau aufgelöst, die vom ZMC auf 0.01V. Die vom ZMC haben vielleicht auf der Strecke und im Display vom SER3 nicht gestimmt, aber in den Offline-Daten auf der SD-Karte sind sie vollständig, also nehm ich sie.

Dauer der Analyse: 2.5h und das war voll spannend 😀

* als Ergänzung eine Viertelstunde nach dem Posten: ja hallo, aus den Verbrauchswerten kann man ja sogar ganz schnell einen Grundstromverbrauch von 5W für die Elektronik und dann etwa 2% Verluste vom Motorcontroller ersehen, eine ganz normale lineare Interpolation. Jetzt kann mal bitte jemand messen gehn und mir das bestätigen.

Und für die Strategie bedeutet das: man sollte immer möglichst schnell fahren, damit die 5W Grundstromverbrauch prozentual nicht so ins Gewicht fallen und ausserdem ist man ja bei fixer Strecke auch schneller da und spart so auch wieder Energie! Wahnsinn, wir hatten Fahrer, die haben das intuitiv verstanden! 😛

Batterie-Stats SASOL2018

Meine nachträglichen Auswertungen zu SER3 sind angelaufen. Nach etlichen Datenbereinigungen und dem millisekundengenauen Einlesen der Timestamps gibt’s schonmal eine annotierte Übersichtsgrafik zum Batteriestand über die acht Tage. Man könnte noch Wirkungsgrade beim Laden/Entladen berücksichtigen bzw. zwischendurch mal mit Spannung/Strömen neu kalibrieren. Witzig ist ja, dass ich jetzt beim Auswerten gemerkt habe, dass ich doch den echten Batteriestrom habe und den nicht als Resultierende aus PV und Motor berechnen muss — einfach den I-Wert vom BMS nehmen. Zum Glück sind die beiden I-Werte (Resultierende vom ZMC und der direkte Wert vom BMS) zu 0.98 korreliert, da könnte ich jetzt sogar die Verlustleistung der Steuerelektronik draus berechnen.

Batterie-Statistik SER3@SASOL2018

Die Geschwindigkeiten hab ich noch nicht ausgewertet, die strategischen Überlegungen sieht man aber ganz gut; und man sieht auch, wo externe Einflüsse die optimale Strategie beeinflusst haben.

Tag 1: erstmal die Batterie von voll in einen Zustand bringen, wo man laden und entladen kann. Hat funktioniert.

Tag 2: früh/vormittags immer noch entladen, drum den 30-min-Kontrollstop erst am Mittag, weil sonst gar kein Platz für die Energie ist — Problem: lange Loops, entweder schneller für zwei oder langsam für einen (bzw. schnell drei zu langsam zwei). Wenn man die Energie eh nicht rausbringt, spielt die Lage des Kontrollstops keine Rolle (hier vor/bis 12 Uhr). Idealerweise liegt der Stop zeitlich da, wo man gegenüber den Panels in Fahrlage den meisten Anstellwinkel zum Senkrechtstellen braucht.

Tag 3: endlich etwas weniger Sonne und kein Nachladestop am Tagesende

Tag 4: morgens entladen, über Mittag halten und dann von unter 50% auf über 85% aufladen am Nachmittag

Tag 5: war bis zum Abfliegen des Oberdecks gut, aber im Prinzip auch zu langsam gefahren mit zu wenig Energieverbrauch

Tag 6: quasi ideale Kurve bis auf die fehlende morning charging session, vormittags entladen, mittags halten, nachmittags stoppen zum Aufladen

Tag 7: Auto auf Trailer bis 09 Uhr, danach Sicherheitsgeschwindigkeit, keine Chance zum Leerfahren

Tag 8: früh entladen und dann mangels Tempo beim Fahren laden bis zum Ende

I was in charge of the battery. Mein Spruch 😀

Geschwindigkeiten/Standzeiten/Verbräuche etc. folgen noch. Mit R/ggplot kann man super annotieren und wenn man die ggplot-Grammatik verstanden hat, kann man wenige Zeilen eleganten Code schreiben und er läuft einfach auf Anhieb.

Nachgedanken über die SASOL2018

Es gibt Leute, die stehen auf Rankings. Nach unserem Abschneiden auf dem dritten Platz der SASOL2018 sind wir im Welt-Ranking auf den achten Platz vorgestossen. Keine Ahnung, wie das berechnet wird, aber wir sind weit vor Stanford und weit weg von Nuon.

Interessanter ist aber der Beitrag über die SASOL2018. Das folgende Bild stammt auch von dort:

SASOL2018, final results (von scientificgems).

Wenn man sich die Ergebnisse der World Solar Challenge in Australien vor einem Jahr anschaut, würden wir uns da etwa auf dem sechsten Platz einsortieren, wenn das Auto keine Probleme hat und wir einen Schnitt von mehr als >65km/h durchhalten. Nach meinen Verbrauchsschätzungen und den Erfahrungen hier in Südafrika ist das durchaus machbar und es sollte auch noch mehr Energie reinkommen. Kann ich ja bei Gelegenheit mal durchrechnen.

WSC2017, stats von https://scientificgems.wordpress.com/2018/09/30/sasol-race-report-8/

Noch eine Statistik: der Wasserhahn mit der Sprühdüse hier im Hotel macht 150ml pro Minute. Aber sinnvoller fände ich Thermostatarmaturen an der Dusche, wenn schon das Warmwasser so stark im Druck schwankt. Ich will schliesslich nicht das Mischungsverhältnis regeln, mich interessiert die Temperatur.

Mein Upgrade ist auch schon durchgelaufen. Bin zwar wieder in Eco eingecheckt, aber diesmal spiel ich nicht dran rum, sondern lass die mir am Flughafen gleich beim Einchecken die neue Bordkarte geben.

Liegeflug 🙂

Von meinem Zelt gibt’s auch schon eine neuere Version, die noch ein paar nettere Merkmale hat, zum Beispiel kann man Kopf- oder Fussende oder beide bis hoch zum Gestänge aufrollen. Oder die Tür lässt sich anders öffnen, so dass man wirklich eine Apsis hat und nicht immer alles öffnen muss: Vela 1 Extreme (neu). Aber die Aufbauzeit von anderthalb Minuten stimmt recht gut, dann ist man schon ziemlich trocken und kann den Rest von innen weiter bauen.

Ansonsten überwiegt bereits zwei Tage nach dem Ende der Challenge nicht wie sonst das Nie-Wieder-Gefühl, sondern ich vermisse schon einige Leute, mit denen ich jetzt fast zwei Wochen gemeinsam unterwegs war. Das ist neu, das war sonst nicht so.