Daaateeeen!

Seit gut einer Woche lasse ich die Daten aus der Energieerfassung historisch in der Datenbank speichern. In der Datenbank sind dabei bis jetzt etwas über 500KiB aufgelaufen.

Heißt: ich muss mir demnächst ggf überlegen, die ganzen Daten etwas komprimierter zu speichern und gleichzeitig den Informationsgehalt annehmbar hoch zu halten.

Etwas in Richtung Stunden-, Tages- und Wochenstatistik wird es wohl werden, die neben dem Mittelwert auch statistische Parameter enthält wie  Quartile, Standardabweichung, Spannweite, etc.

Achja: Die nächsten Tage kommt ein neuer Artikel in die Wiki. Text ist schon fast fertig, Bilder müssen noch bearbeitet werden.

1000 Ideen, 1 Aufgabe.

Es ist mal wieder soweit.

Man hat 1000 bessere Ideen, in die man seine Zeit investieren könnte und wollte. Richtig: ich muss lernen.

Bei der Energieerfassung geht es natürlich nicht sonderlich voran. Heute habe ich immerhin die Leitungskanäle im Keller verlegt und die Hardware an die Wand gedübelt. So steigt der FAF (family acceptance factor) auf einen Wert nahe 1.

Eine der 1000 Ideen betraf auch die Erkennung des Tariffähnchen am Stromzähler (vorletzter Abschnitt im Bereich Stromzähler): Es tat sich ein alter Laserpointer auf, mit dem man das Fähnchen wahrscheinlich noch aus einigen Metern Entfernung perfekt identifizieren könnte. Die Trägerplatte für die „Ausleseeinheit“ ist zwar schon gebohrt und geklebt, die Schaltung dahinter wartet aber noch auf die Entstehung.

Außerdem gibt es noch ein kleines Wochenend-Projekt, das auf die Dokumentation wartet: Ein Modellbau“blinker“, der auf der Bahn meines Cousins seinen Platz finden wird. Am Sonntag wird er auf- und eingebaut und wird drei Türme mit Gefahrenfeuer, einen Bahnhof mit Leuchtstofflampen und eine Werkshalle mit einem Schweißgerät versorgen.

Wikieintrag gibt es sobald wie möglich, wahrscheinlich aber erst im Oktober. Bis dahin heißt es Mathe büffeln…

Preview auf die Doku

Es ist zwar schon ein bisschen später, aber irgendwann muss ich ja anfangen: Ein Teil der Dokumentation zur Energieerfassung ist in der Wiki.

Um die Wiki (und meine Nerven, wenn ich aus Versehen wieder auf den Zurück-Button im Browser komme) etwas zu schonen, habe ich die Doku vollständig in Word geschrieben und per C&P eingefügt. Auf den ersten Blick gibt es keine Darstellungsprobleme. Der zweite oder dritte Blick wird den Rest zeigen. Netter Nebeneffekt von Word: ich weiß, dass es ausgedruckt knapp 9 A4-Seiten sind – Tendenz: steigend.

Bilder und Downloads folgen die nächsten Tage/Wochen noch.

LM358 ungleich LM358

Eigentlich wollte ich schon vor ein paar Tagen die Solaranlage an die Energieerfassung hängen. Direkt am Solarregler funktionierte der Pegelwandler noch prima. Ein paar Meter weiter und mit ca. 8m Leitung dazwischen kam nur noch Bitbrei an.

Mein Verdacht ging natürlich gleich auf die Leitung, welche nicht besonders optimal ist: Telefonleitung, kein Twisted Pair, keine oder zumindest miese Schirmung und auf knapp 3m direkt nebenan eine Drehstromleitung, bei der doch ein paar Ampere (Wärmepumpe) durchgehen.

Der erste Gedanke war – anstatt mal mit dem Oszi ranzugehen – es muss an der Leitung liegen. Problem: Durch die Wand gehen nur dünne Leitungen, aufbohren ist nicht möglich. Ein normales Cat5-Kabel geht da schon nicht mehr durch. Zum Glück lag in der Firma noch eines der alten Patchkabel herum, die extrem dünn waren. Stecker ab, durchgezogen – funktioniert noch immer nicht.

Also doch das Oszi anklemmen. Die Signale auf der Leitung sehen nahezu perfekt aus, am Ausgang des Wandlers sah es schon anders aus: Fallenden Flanken waren deutlich verspätet. Zu stark verspätet, um noch etwas damit anzufangen. Dank des Gleichrichters ohne Shottky-Dioden gingen die Signale vor dem Komperator etwas in den negativen Bereich. Mit einer weiteren Shottky wollte ich die negative Spannung abschneiden, brachte allerdings nichts.

Nächster verdächtiger: der Operationsverstärker. Die Flanken am Ausgang waren nicht wirklich sauber.

Ist der Strom am Eingang zu gering? Den Spannungsteiler im Keller auf die Schnelle anpassen is nich. Möglichkeit zum Generieren der Signale ist momentan auch nicht vorhanden. Leitung nach oben legen: nää. Also etwas unkompliziertes probieren: Andere OpAmps einsetzen.

Schließlich klappte es mit einem anderen LM358 eines Markenherstellers. Da hat Angie anscheinend wieder billig eingekauft…

Wobei der LM358 nicht unbedingt der geeignetste Typ für diese Anwendung ist. Mal sehen, was im endgültigen Design landet. Vorerst wird wieder ein bisschen getestet.

Gedeckelt

Das ging mal richtig schnell!

Gestern hatte ich die Sandwich-Platine bereits in den Händen und konnte es natürlich nicht lassen, sie auch gleich zu bestücken!

Auch wenn die Leistung meines Lötkolbens für die Induktivitäten etwas knapp war, blieben sie doch ganz gut „kleben“. Nachdem die Schaltregler sehr gut und stabil funktionierten und die Platine zumindest bei den „Hauptbuchsen“ perfekt passte, kam auch gleich der Rest der Platine dran.

Beim Display bleib der Erfolg aber aus. Manche Designfehler merkt man halt erst, wenn es viel zu spät ist – im Board waren V0 (Kontrastspannung) und Vcc vertauscht. Ein Problem, das sich allerdings mit Fräse und ein bisschen Draht beseitigen lässt. Nach einem erneuten Funktionstest hat es dann auch prima geklappt.

Ein weiterer Dämpfer kam beim Aufbau der Stromzählerauswertung. Danach blieb das Leuchten der 5V-LED auf dem Board aus. Kurzschluss.

Praktischerweise habe ich das Design so gemacht, dass die Versorgung auch durch die Hauptplatine erfolgt. „Deckel“ heruntergenommen, Spannung wieder vorhanden, also muss bei der Zählerauswertung der Fehler sein. Durch taktisch geschickt aufgetrennte Leiterbahnen konnte ich den Fehler auf die Status-LEDs beschränken. Ich Dusel habe ausgerechnet die genommen, die extrem große Pads haben. Zu allem Überfluss habe ich bei der Schaltung (ausnahmsweise) die Vorwiderstände nicht an den Anoden, sondern den Kathoden angebracht. Ein Kurzschluss also, wie er im Buche steht…

Aber jetzt noch etwas für die Augen:

Blick von oben (ohne Display)

und vom „anderen oben“. Zwischen den unteren beiden Platinen sieht man die „Spezialanfertigung“ der Verbinder. Mittlerweile sind sie in Schrumpfschlauch verschwunden und sieht damit sehr edel aus 😉

Auh das fehlende Bauteil (LM358) ist mittlerweile bestückt, nachdem ich einen auf meiner alten Grafikkarte ausmachen konnte 😉

Zum Test habe ich das Teil nun in den Keller gestellt, wo es eine Nacht mal nur die Stromzähler erfassen soll. Nächster Schritt: Software!

Umgewöhnung/ein Schritt weiter

An meinem neuen Notebook merke ich, dass ich mich anscheinend doch recht gut an das etwas verschandelte Tastaturlayout von meinem Toshiba gewöhnt habe. Dort liegen einige Tasten woanders, als man eigentlich erwartet. ^ und ° liegen nicht oben neben der 1, sondern links neben der Leertaste. Das ist nicht besonders schlimm, da man im nicht-französischen Raum relativ selten auf das erste Zeichen (dessen Namen ich noch immer nicht weiß) zurückgreifen muss. Auch Temperaturen oder Winkel sind am Notebook eher Seltenheit.

Nerviger ist dagegen die <>|-Taste. Die lag beim Toshi rechts neben der Leertaste und ich habe mich am Thinkpad schon mehrfach erwischt, dass ich statt Shift+< (also „>“) auf Shift+AltGr gedrückt habe. Bloß gut, dass der Computer bei dieser Tastenkombination nicht herunterfährt, sonst würde ich bei der OOP in PHP nicht sonderlich weit kommen…

Ansonsten gefällt mir das Thinkpad sehr gut. Kein Schnickschnack, eigentlich fast nur Features ;-). Erstaunlicherweise ist die Verarbeitungsqualität, obwohl sie mittlerweile nicht nur in China gebaut, sondern sicherlich auch entwickelt werden, ziemlich gut geblieben. Einzig die mitgelieferte ThinkVantage-Software ist nach meinem Geschmack besser geworden. Waren die OSDs zu IBM-Zeiten noch sehr an die Farbgebung der AS/400 orientiert, ist jetzt alles im Thinkpad-Stil: überwiegend Schwarz und ein bisschen Weiß.

Bei der Energieerfassung gibt es auch ein kleines Update:

Nachdem ich lange darüber gegrübelt habe, wie ich die Sandwich-Platine am besten an der Hauptplatine befestien könnte, ist mir gestern eine Lösung eingefallen:

Ursprünglich wollte ich nach Buchsenleisten mit etwas längeren Kontakten, wie sie auch beim Arduino verwendet werden, ausschau halten. Diese scheinen hier überhaupt nicht erhältlich zu sein. Die zweite Idee war, die Buchsenleisten sehr knapp einzulöten, sodass sie nach unten reichen. Nachdem der Abstand doch sehr groß ist: lieber nicht.

Nachdem ich gestern noch nach Ulm musste und ich sowieso nicht mehr genügend doppelreihige Buchsenleisten hatte, machte ich einen kleinen Abstecher zum hiesigen Mükra. Beim Preis der 2x36er Buchsenleiste (3,95€ – Drei Euro Fünfundneunzig!) musste ich zwar sehr schlucken, aber was hilft’s?

Wie ich daheim feststellte, hat sich der Kauf doch gelohnt: Im Gegensatz zum deutlich preiswerteren Pendant bei Reichelt lassen sich die Buchsenleisten mit gedrehten Kontakten ohne Probleme aufeinander stecken. damit kann man den Platinenabstand von 1mm+8mm+1,5mm um weitere 8mm vergrößern. Wobei das schon fast zu viel des Guten ist. etwas weniger würde auch reichen.

Kurz darauf kam mir die Idee: Ich hatte noch kleine Buchsenleisten  (Höhe etwa 3-4mm) mit Präzisionskontakten  von Reichelt herumliegen. Draufgesteckt: passt!

Auf den AVR-NET-IO gesteckt und Lochrasterplatine aufliegen lassen: Die Platine schwebt vielleicht einen halben Millimeter über den Buchsen der Platine von Pollin: Perfekt!

Ich hoffe, dass die Platine Anfang nächster Woche schon fertig ist, bin sehr gespannt, ob und wie gut sie funktioniert – zumal dadurch auch die stromfressenden Linearregler durch Schaltregler ersetzt werden.

Achja: von der neulich erwähnten Launchpad-Bestellung habe ich bis jetzt leider noch nichts gesehen/gehört. TI hat auch auf meine Anfrage über den Liefertermin (und die Bitte, den Gutscheincode „HALFMSPTOOL“ hinzuzufügen) noch nicht reagiert.

Mühsam ernährt sich das Eichhörnchen

Mit kleinen Schritten geht es mit der Energieerfassung voran.

Nachdem die Klausuren nun vorerst erledigt sind, habe ich mich mit der Erweiterung des AVR-NET-IO beschäftigt. Die Zusatzplatine soll (ähnlich wie die Shields beim Arduino) auf das Originalboard gesteckt werden und die Spannungsregelung sowie Auswertung der Stromzähler übernehmen. Zusätzlich sitzt ein LC-Display auf der Zusatzplatine, das Statusinformationen bzw. aktuelle Messwerte anzeigen soll.

Da ein Teil der Hardware (Ermitteln des aktuellen Tarifs am Tarifzähler oder Wärmepumpenfreigabe) noch nicht entwickelt ist, ist in der Platine ein Loch, in das das entsprechende Modul später eingebaut werden kann.

Softwareseitig hat sich seit Anfang April nach wie vor nichts getan. Mal sehen, wie lange es dauert, bis ich mich wieder effizient im Quellcode bewegen kann…

Design-Bug & Stillstand

Seit meinem c’t-Probeabo (so viel Werbung darf sein) habe ich einen USB-Stick, der nur die Hälfte der USB-Buchse in Anspruch nimmt. So schön flach er auch ist, er hat einen absoluten Designfehler: Er passt in beide Richtungen in die Buchse und meistens erwischt man genau die falschen 50%.

Ok, es gibt welche der dünnen Klasse, die zusätzlich am Rand kleine Nasen haben, damit sie nur noch in einer Richtung passen. Das kostet aber fast wieder einen Millimeter Gehäusedicke. Warum haben die Teile nicht einfach auf beiden Seiten USB-Anschlüsse? Bei der Integrität der Controller dürften die paar zusätzlichen Elemente doch schon fast egal sein. Wären die USB-Buchsen außenrum isoliert, könnte man das schon fast komplett mechanisch lösen. Aber gut, ein bisschen Schirmung bei den eigentlich vollkommen HF-untauglichen Steckern sollte schon vorhanden sein.

Thema 2: Stillstand.

Momentan läuft fast nichts – und leider auch nicht so wie ich will. Die Energieerfassung liegt seit einem guten Monat auf Eis, bei einer Software für einen Bekannten komme ich (hauptsächlich zeitlich) auch nicht sonderlich weiter und in Sachen Hochschule: Mathe ist irgendwie das Lindenblatt auf dem Rücken…

Erfolg!

Nachdem ich schon am überlegen war, ob ich  nicht einfach „’ne Stange RAM“ an den AVR klemme (hat zumindest dieses hier ein kleines Stück nach vorne gebracht, Entdecken eines blöden Design-Fehlers inklusive) habe ich mir noch etwas Gedanken über die Verarbeitung der Daten gemacht.

Resultat: Geht, man muss nur asynchron denken 😉

Hintergrund ist der: Das Versenden der Daten ist nicht, wie ich anfangs annahm, dass man einfach nacheinander die Pakete „rausballern“ kann. Stattdessen fordert das Stack die einzelnen Pakete beim an. Man muss sich also danach richten, was der Controller von einem will.

Hier im LAN funktioniert es tadellos. Wie das Verhalten ist, wenn einzelne Pakete verloren gehen (und dadurch nochmal angefragt werden) habe ich noch nicht geprüft. Ebenso ist noch ein kleiner Glitch möglich: Da das Ganze mehr oder weniger asynchron ist (muss ich nochmal nachschauen, ob/wo Interrupts im Spiel sind) könnte es passieren, dass Daten während dem Schreiben in die Historie angefordert werden. Dadurch kann es (in Verbindung mit dem verwendeten Puffer) dazu kommen, dass durch die veränderten Werte Lücken entstehen oder die Strings länger werden, was zu einem korrupten String oder sogar Pufferüberlauf führen kann.

Nach meiner aktuellen Überlegung sollte es recht einfach sein, das in den Griff zu bekommen. Wenn ein Datensatz angefordert wurde, wird die Datenübernahme gesperrt. Problem dabei: Was, wenn die Abfrage fehlschlägt und nie zum Ende kommt? Lösung: Die Übernahme nur für eine gewisse Zeit sperren.

Wie auch immer: Zeit für die Horizontale!

Ein würdiger Taster

Ich weiß zwar nicht mehr genau, wo ich ihn ausgegraben habe, er passt aber sehr gut als Reset-Taster auf dem AVR-NET-IO:

Auf diesem arbeitet jetzt Fastboot von Peter Dannegger, da mir die Flasherei per ISP zu blöd geworden ist.

Die Entwicklung läuft momentan schleppend, ich hänge etwas mit der Übertragung per JSON. Kleine Dateien gehen, geht’s über die MTU hinaus, kommt Mist an. Ich weiß mittlerweile zwar, woran es liegt, suche aber noch an einer vernünftigen Lösung.