Seite 1 von 18

iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 28. Februar 2017, 20:49
von Tozzi
Servus zusammen,

meine Version eines (lokalen) Servers für die iSpindel ist jetzt so weit fortgeschritten, dass sie für mich alles abdeckt, was ich haben wollte.
Deshalb mache ich mal einen neuen Faden auf.

Natürlich kann man noch vieles verbessern, und natürlich ist das alles aus Sicht des reinen Anwenders noch keine 100% komplette Lösung.
Die Installation ist auch noch etwas komplizierter als ein Doppelklick auf Setup.exe.
Ich habe eine Schritt-für-Schritt Anleitung erstellt, mit der hoffentlich jeder klarkommt.
Ein paar Linux Grundkenntnisse schaden aber ganz sicher nicht...

Die Anleitung bezieht sich momentan auf Raspbian, da das wahrscheinlich die verbreitetste Plattform sein dürfte.
Laufen tut das Ganze aber grundsätzlich unabhängig von Plattform und Betriebssystem.

Voraussetzungen: Python 2.7, optional MySQL, Apache2, php, phpMyAdmin

Die Grundfunktionalität steht:
  • Server Skript nimmt Daten der iSpindel entgegen und speichert sie in einer SQL Datenbank und/oder als CSV Datei
  • Das verwendete Protokoll ist so simpel wie möglich und schont somit die Batterie der Spindel
  • Die Daten werden weiterhin auf Wunsch an Ubidots gesendet, man muss also auf Ubidots nicht verzichten
  • Im lokalen Netzwerk sind alle Funktionen auch ohne Internetzugang gewährleistet
  • Aktuelle Spindel Daten können als Diagramme im Browser visualisiert werden, Zeitrahmen in Stunden wählbar
  • Die Diagramme sind geeignet für die Darstellung auf einem Raspi Touch Display
Damit sollte ein solides Gerüst entstanden sein, welches sich recht leicht weiter ausbauen lässt.
Ich hoffe, der eine oder andere von Euch wird mit dazu beitragen und bin gespannt, was da am Ende draus wird.

Hier noch ein kleiner "Teaser", noch nicht mit realen Gärdaten...
Extrakt und Temperatur
Extrakt und Temperatur
Status
Status
Die aktuelle "Release" Version und die Dokus findet Ihr in Sam's Repository unter tools/genericTCP.
Meine Testversionen sind in meinem Fork zu finden.
So, jetzt kann ich mich wieder dem Brauen widmen. :Drink

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 28. Februar 2017, 21:16
von alexbrand
Dottore Tozzi,

die Sache wird immer besser! Ich bin wahnsinnig beeindruckt! :-)

Gruß

Alex

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 28. Februar 2017, 21:35
von Terlon
Hallo Stephan,

ich bin begeistert. Ganau das was ich haben wollte.
Die bis dahin letzte Version hatte ich am WE mal auf RPI3 mit RASPIAN und Pixel installiert und siehe da: Trotz stark eingeschränkter LINUX Kenntnisse konnte ich nach "ps -ax | grep iSpindle" einen laufenden Prozess sehen.
Ein/zwei kleine Unstimmigkeiten muss ich mir noch mal ansehen, aber das passt schon super.
Leider habe ich noch keine iSpindel, daher wollte ich mir mit einem WEMOS ersteinmal einen Dummy basteln, der nur einen Datensatz überträgt.
Zu viele tolle Projekte bei denen man nur das Wochenende zur Verfügung hat.
Nebenbei will man ja auch noch mal was brauen.
Auf jeden Fall weiter so!!!! :thumbsup

Edit#1 Stephan mit "ph" :Ahh

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 28. Februar 2017, 22:47
von Tozzi
Danke! Hör ich gerne. :Greets
Terlon hat geschrieben:Genau das was ich haben wollte
Das freut mich sehr!
Inzwischen erfüllt es auch für mich eigentlich alles, was ich mir zu Beginn vorgestellt hatte.
Ging dann schneller voran als erwartet.
Terlon hat geschrieben:Die bis dahin letzte Version hatte ich am WE mal auf RPI3 mit RASPIAN und Pixel installiert
:thumbup ... dann hast Du die wichtigsten Hürden schon genommen! Der Rest ist easy.

Was ich mir für die Zukunft noch vorstellen könnte (als nice-to-have):
  • Ein Setup Skript mit Konfiguration (leider eher komplex aber sicherlich machbar)
  • Eine Art Portalseite , Touch Screen freundlich, um an die einzelnen Diagramme zu kommen (simpel)
  • Fertig "eingepackte" Skripts zum Exportieren der Datenreihe eines Sudes, Datenbank leer machen, usw...
  • Darstellung historischer Daten
  • Langfristig: Ubidots überflüssig machen :Cool
Aber schaun wir erst mal, wieviel Interesse an dieser Geschichte überhaupt besteht...
Feedback ist sehr willkommen.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 1. März 2017, 07:06
von Knallex
Hallo Stephan,
vielleicht wäre als Alternative für ein setup script auch ein .img denkbar (für den Anfang zumindest), welches Raspbian + Pixel + alle Notwendigen Pakete beinhaltet.
Somit hätte man relativ schnell eine lauffähige Version.

Gruß,
Alex

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 1. März 2017, 09:01
von flensdorfer
Hi,

fürs Wochenende vorgemerkt, den Raspi fertigzumachen.

Ist unbedingt das Image mit Pixel notwendig? Hatte mir dafür gestern Abend das Lite-Image gezogen.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 1. März 2017, 09:45
von ggansde
Moin,
ich habe festgestellt, dass das Jessie + Pixel Image meinen adafruit Touchscreen nicht unterstützt. Kennt ihr da irgendetwas oder muss ich mir das Image von der adafruit-Seite runterladen?
VG, Markus

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 1. März 2017, 17:30
von Tozzi
flensdorfer hat geschrieben:Hatte mir dafür gestern Abend das Lite-Image gezogen.
Das Lite Image reicht, wenn kein Display betrieben werden soll.

@Markus: Mit dem Adafruit Image geht's sicher auch. Keine Ahnung, ob man das Display mit dem normalen Raspbian zum Laufen kriegt.

@Alex: Ja, das wäre natürlich eine Möglichkeit. Ist aber dann ein recht großer Download.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 1. März 2017, 22:49
von flensdorfer
Tozzi hat geschrieben:
flensdorfer hat geschrieben:Hatte mir dafür gestern Abend das Lite-Image gezogen.
Das Lite Image reicht, wenn kein Display betrieben werden soll.
Alles klar. Display brauche ich nicht, der apache2 reicht völlig aus. Werde auch gleich host-ap mit einbauen, damit ich über einen 2. WLAN-Stöpsel eine Verbindung in mein WLAN herstellen kann. Der erste Stöpsel wird dann der AP für die Spindel (ich schalte mein WLAN nachts aus und so denke ich, geht mir keine Messung flöten).

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Sonntag 12. März 2017, 15:34
von flensdorfer
Umsetzung erfolgreich :Pulpfiction

iSpindel.py mit WLAN2WLAN-Bridge und hostapd läuft.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Sonntag 12. März 2017, 16:32
von Tozzi
Freut mich! :thumbup

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Sonntag 12. März 2017, 16:33
von uli74
Hat eigentlich irgendwer seine iSpindel unter Windows am laufen? Ich würde gerne mein CF19-Toughbook zum Brauen und Überwachen einsetzen.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Sonntag 12. März 2017, 17:50
von universam
Yepp habe das Script unter windows am laufen, mit Python 2.7
Du musst die pfadangabe natürlich ändern für das Csv. Allerdings habe ich nicht MySQL unter windows probiert.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 16. März 2017, 22:34
von Chris1990
@Stephan: Würde eigentlich zur Realisierung des Servers ein Raspberry Pi der ersten Generation reichen? Ich hätte hier nämlich noch einen herumliegen.

Was für ein Touchdisplay stellst Du Dir dafür vor, Stephan? Soll das Projekt in Verbindung mit der von Sam vorgestellten iRelay verbunden werden?
Ich bin schon sehr gespannt, dieses Projekt deckt immer neue Möglichkeiten auf! :Smile
Wenn Du Deine Vorschläge in Post #4 umsetzt, wäre das der Wahnsinn! Das ließe dann glaube ich in Kombination mit der iRelay kaum noch Wünsche offen! :Smile

Gibt es später eventuell die Möglichkeit, ein Image von dem gesamten Paket zu machen? Als eine Art "Plug&Play-Lösung" für diejenigen, die sich nicht so gut in der Linux-Umgebung auskennen? :redhead

Weiter so und viele Grüße!

Christopher

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 16. März 2017, 23:36
von Tozzi
Hallo Christopher,

ein alter Raspi tut genauso. Würd ich halt eventuell auf die X Oberfläche (PIXEL) verzichten.
Man kann auch einen schlankeren Datenbankserver (SQLite z.B.) verwenden, und statt Apache einen leichteren Webserver einsetzen.
Dürften alles recht minimale Änderungen am Skript sein.
Ich habe MySQL und Apache gewählt, weil ich mich damit bereits ganz gut auskenne und es auf einem PI3 super läuft.

Probieren geht über studieren. Sind ja jetzt keine zeitkritischen Echtzeit-Applikationen.
Das Skript nimmt die Daten von der Spindel entgegen, und erst dann (wenn die Verbindung bereits beendet ist) erfolgt der Datenbankzugriff.
Ist also wurscht wie lange das dauert.

Welches Touch Display man verwendet ist eigentlich auch egal. Ist auch völlig optional. Man kann ja die Diagramme auch auf dem Smartphone oder Tablet anschauen.
Ich hab halt das "Originale" für den Raspi 3, welches auch von Raspbian unterstützt wird.
Momentan hab ich mir einfach nur Lesezeichen auf den Desktop gelegt, ein "Doppel-Tap" öffnet dann das Diagramm in Mozilla bzw. Chrome.

Und sobald Sam was zum iRelay verlauten lässt, werde ich natürlich dafür sorgen dass sich das optimal integriert.
Wahrscheinlich passt es eh schon "out-of-the-box" zusammen.
Die Änderungen für die neue Firmware (5) habe ich heute implementiert, sieht gut aus.

Ein Image ist in Arbeit. Ich setze gerade einen neuen Raspi für einen Freund auf.
Da wird man nur noch das WLAN Passwort eintragen müssen und kann loslegen.
Bei verkabeltem Ethernet Anschluss kann dann der Raspi3 (oder ein älterer mit WiFi USB Stick) auch als Access Point für die Spindeln herhalten.
Das rettet gerade meine erste Spindel Session. Mit Edelstahltank sollte der AP nicht weit weg sein.

Zu den Sachen aus Post 4:
Da fehlt eigentlich nicht viel.
Man müsste mal Anforderungen aufnehmen und ich würde mich halt auch sehr freuen, wenn sich jemand fände, der mithilft (z.B. bei den Webseiten für Config, historische Daten, Portal).
Die Hauptarbeit ist eigentlich getan, von der Logik her. HTML Frontends sind aber nicht so mein Ding. Bin ein lausiger Designer und hab auch nicht viel Spaß dran.
Die Diagramme, die ich da zusammengeschustert habe, sollten auch ganz gut als Schablone herhalten können für eigene Visualisierungen.
Also, wer sich mit php, javascript und html auskennt, ist jederzeit eingeladen da mitzuwirken. :Greets

Momentan weiß ich nicht mal, wie viele Spindelbesitzer eigentlich vorhaben, diese Lösung einzusetzen.
Und Brauen will ich ja auch noch. :Drink


Nachtrag:
So schaut's gerade bei mir aus:
Winkel Diagramm (Spindel ist noch nicht kalibriert)
Winkel Diagramm (Spindel ist noch nicht kalibriert)
Die Scotch Ale (WY1728) legt bei der Gärung einfach eine Gerade hin. Irgendwie sympathisch, wenn auch etwas langweilig.
Ist jetzt seit ca. 80 Stunden (angesetzt vor 90 Stunden) dasselbe Bild. Kontinuierlicher Gärverlauf.
Das deckt sich auch mit meinen Erfahrungen vor der iSpindel Ära...

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Sonntag 2. April 2017, 12:31
von not
Hallo Gemeinde, hallo Tozzi!

Auch ich bin begeistert, habe das Script heute endlich ans Laufen gebracht, hatte vorher leider keine Gelegenheit. Funktoiniert einwandfrei.
Die Darstellung der Daten habe ich noch nicht hinbekommen, aber solange die Datenbank gefüttert wird / das CSV sich füllt ist der Rest weniger dramatisch.

Wie stellt Ihr Eure Daten dar? Server? In Office ?

Tozzi: Danke auch hier noch einmal - super Arbeit.

viele Grüße,
Sönke :Drink

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Sonntag 2. April 2017, 20:13
von Tozzi
Hi Sönke,
not hat geschrieben:Die Darstellung der Daten habe ich noch nicht hinbekommen
Apache hast Du installiert? Welchen Fehler bekommst Du?
Wenn es der 404 ist, dann stimmt was mit dem Link nicht.
Datenbank User und Passwort müssen in der Datei common_db.php eingetragen werden.
not hat geschrieben:Danke auch hier noch einmal
Gerne! Freut mich!

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Montag 3. April 2017, 10:29
von not
:Ahh

... ich glaube ich habe jetzt eine Idee.
Manchmal ist das Brett vorm Kopf erst mit Hilfe zu erkennen (Dann doppelt schmerzhaft.).

Danke Stephan, werde es testen, sobald möglich und berichten!

Ahoi - Sönke

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Montag 3. April 2017, 20:55
von not
So, es war genau so, wie vermutet: RTFM, lieber User not. Gesagt, getan, funktioniert.
Schmach und Schande -

Ich schreibe 100 mal:
"Ich will die README lesen...."
Vielen Dank - Sönke

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Montag 3. April 2017, 21:07
von Tozzi
:thumbup
Yippie! Und nicht vergessen: Wenn Ihr Fehler oder Ungenauigkeiten in den READMEs findet, bitte gleich sagen!
Ich habe eigentlich ein fertiges Image hier, strauchele aber noch bei dem Versuch, es auf minimale Größe zu schrumpfen.
16 GB ist ein bisserl viel, wenn's eigentlich nur 3,5 sind.
Leider streikt resize2fs aus mir (noch) unbekannten Gründen.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 4. April 2017, 10:01
von Ringwalt
Hallo,

was haltet Ihr von der Idee, einer "bidirektionalen Kommunikation" des Servers mit der iSpindel?

Ich könnte mir vorstellen, das bei jedem Sende-Request von der Spindel an den lokalen Server der Server die Möglichkeit hat, eine neue Konfiguration zurück an die Spindel zu schicken. So könnte man z.B. bequem vom lokalen Server aus die Sleep-Time setzten. Beim generic HTTP Protokoll könnte man dies in einen X-Header der HTTP-Response schreiben, beim generic TCP könnte man nach dem ACK ja noch eine weitere Nachricht senden.

nur so als Idee :-)

Servus,
Walter

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 4. April 2017, 18:14
von Tozzi
Hallo Walter,

diese Idee hatte ich auch schon, aber das ginge zu sehr auf Kosten der Batterielaufzeit.
Momentan verbindet die Spindel, schickt ihre Daten und geht sofort wieder in den Deep-Sleep, ohne auf eine Antwort zu warten.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 4. April 2017, 18:24
von stefan9113
Hallo Stephan,

eine wirklich super Sache die Du da machst, eine bescheidene Frage. Bei mir läuft ein Qnap NAS wäre es denn da möglich eine solche Lösung zu basteln?

viele Grüße Stefan

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 5. April 2017, 22:15
von Tozzi
Hallo Stefan,

müsste eigentlich gehen. Ich kenne mich aber mit dieser Hardware nicht aus.
Läuft doch Linux drauf, oder?
Sollte also eigentlich genauso funktionieren wie mit dem Raspi.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 6. April 2017, 18:39
von stefan9113
ja da läuft auch Linux drauf, nur leider bin ich nicht besonders Linux konform, die benötigten Softwarepakete gibt es zumindest da auch

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 6. April 2017, 19:05
von Tozzi
stefan9113 hat geschrieben:ja da läuft auch Linux drauf, nur leider bin ich nicht besonders Linux konform, die benötigten Softwarepakete gibt es zumindest da auch
Dann trau Dich einfach! Kannst eigentlich nichts kaputtmachen.
Bei Schwierigkeiten helfe ich gerne auch per PN. Bin allerdings nächste Woche weitgehend offline.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 15:35
von Tozzi
Servus zusammen,

ich habe jetzt mal ein vorkonfiguriertes Raspbian Image erstellt.
Alle benötigten Pakete (inkl. host-apd) sind vorinstalliert und alles ist soweit möglich vorkonfiguriert.
Das Image wird wie gewohnt auf die SD Karte geflasht.
Nach dem ersten Start bitte unbedingt erstmal raspi-config aufrufen ("sudo raspi-config") und das Dateisystem expandieren ("expand root fs").
Passwörter sind default (pi, raspberry).

Download (1,34 GB):
http://sschreiber.de/download/Raspi-iSpindel-Latest.zip

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 16:30
von Charles
Super Sache, das!

Sowas möchte ich auch haben, also brauche ich zuerst einmal die Hardware.

Welche Bauteile brauche ich genau?


Neugieriger Charles

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 16:50
von Tozzi
Hallo Charles,

für das Image brauchst Du einen Raspberry PI, am besten Modell 3, eine schnelle (Class 10) Micro SD Karte (16 GB reicht dicke), und ein passendes Netzteil.
Nice to have: Gehäuse, Touch Display. Gibt es auch als Bundle.
Eventuell (falls der Raspi auch als WLAN "Relay" bzw. Repeater funktionieren soll und nicht per Ethernet verkabelt wird) noch einen USB WiFi Stick.

Die Software funktioniert aber auch auf anderen Systemen, in dem Fall muss halt wie bisher alles selber eingerichtet werden.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 17:13
von Chris1990
Ich habe das Image heruntergeladen, auf eine SD-Karte geflasht und in meinen Raspberry der ersten Generation gepackt. Nachdem am Anfang viele Zeilen mit dem Status "OK" angezeigt wurden, bleibt der Bildschirm schwarz. Was mache ich falsch?
Zwischendurch meine ich einmal eine Zeile gesehen zu haben, bei der "Load Kernel Module" mit "FAIL" gestanden hat.

Viele Grüße

Christopher

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 17:39
von Tozzi
Chris1990 hat geschrieben:Ich habe das Image heruntergeladen, auf eine SD-Karte geflasht und in meinen Raspberry der ersten Generation gepackt. Nachdem am Anfang viele Zeilen mit dem Status "OK" angezeigt wurden, bleibt der Bildschirm schwarz. Was mache ich falsch?
Zwischendurch meine ich einmal eine Zeile gesehen zu haben, bei der "Load Kernel Module" mit "FAIL" gestanden hat.
Hi Christopher,

das FAIL bezieht sich wahrscheinlich auf den (fehlenden?) WLAN Stick, kann also wahrscheinlich ignoriert werden.
Was für ein Display hast Du dran? HDMI?
Kannst Du via SSH (Putty) auf den Raspi zugreifen?
Erscheint er im Netzwerk?
Falls ja: Könntest Du mir bitte die Datei "messages" aus "system-logs" zukommen lassen?

Scheint so, als hätte ich noch was übersehen. :redhead

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 17:57
von Chris1990
Hallo Stephan,

vielen Dank für Deine Antwort! Ich benutze einen Mac, wie kann ich da auf den Raspberry zugreifen?
Ich habe wirklich noch keine WLAN-Stick dran, da ich davon ausgegangen bin, dass ich gar keinen brauche.
Ich habe einen Monitor mit DVI auf HDMI dranhängen.

Viele Grüße

Christopher

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Donnerstag 20. April 2017, 18:01
von Tozzi
Hallo Christopher,

den WLAN Stick brauchst Du auch nicht, wenn Du den Raspi nicht als Access Point verwenden willst und er via Ethernet angeschlossen wird.
Dann kommt halt die FAIL Meldung aber die sollte nichts ausmachen.
Beim Modell 3 ist ja bereits ein WLAN eingebaut.

Wenn der Raspi läuft und sich nicht komplett aufgehängt hat, sollte er auf dem Mac links im Finder erscheinen.
Via SSH greifst Du vom Mac aus zu, indem Du ein Terminalfenster aufmachst und den Befehl "ssh pi@raspberrypi" eingibst. Passwort ist "raspberry".
Mit "sudo dmesg" kannst Du dann die Kernel Meldungen während des Bootvorgangs ansehen.
Mit "sudo raspi-config" kommst Du zur Konfiguration. Eventuell funktioniert es, nachdem das Filesystem expandiert ist (s.o.).

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Samstag 22. April 2017, 01:20
von Tozzi
Servus zusammen,

ich habe ein neues Image zusammengestellt, mit einigen hoffentlich interessanten Neuerungen: :Pulpfiction

http://sschreiber.de/download/Raspbian- ... -1.1.0.zip
(Download ca. 1,37 GB, entpackt ca. 4 GB)
  • Das "offizielle" 7" Raspberry Touch Display wird jetzt voll unterstützt, inklusive Rechtsklick mit 2 Fingern (tricky!)
  • 2 virtuelle Tastaturen für den Touchscreen Betrieb sind jetzt vorinstalliert
  • Die Log Dateien sind jetzt leer und entsprechen einer Neuinstallation
  • Raspbian ist tagesaktuell vom 21.04.2017
  • Anleitungen in Deutsch und Englisch sind jetzt mit dabei
  • Die sehr praktischen Erweiterungen von Markus (Forumname kiki) sind nun mit enthalten
Markus' Erweiterung erlaubt es, jederzeit über den Browser einen "Reset" Punkt in der Datenbank zu setzen, so dass in den Diagrammen die aktuelle Gärung ausgewählt werden kann.
Ist jetzt auch auf Sams und meinem GIT Repo zu finden, die Anleitungen hat Markus ergänzt.

@Markus, vielleicht magst Du dazu hier auch kurz was schreiben?

Noch ein paar Hinweise zur Installation und Konfiguration:

Bitte unbedingt nach dem ersten Start als erstes raspi-config aufrufen (auf der X-GUI Oberfläche Preferences -> Raspberry Pi Configuration), oder von der Kommandozeile (Terminal Fenster)

Code: Alles auswählen

sudo raspi-config
eingeben. Dann das Dateisystem expandieren (expand file system).

Getestet ist alles auf einem aktuellen Raspberry Pi Modell 3 mit dem offiziellen (und sehr empfehlenswerten, wenn auch nicht ganz billigen) Touch Display.
Es sollte aber auf allen Raspis funktionieren; eventuell sind Anpassungen in der config.txt nötig.
Diese kann man auch auf einem Mac oder Windows PC editieren, indem man die geflashte SD Karte nochmal einsteckt und die dann sichtbare (FAT32) Boot Partition öffnet.
Insbesondere Einstellungen, die das Display und den HDMI Anschluss betreffen, sind dort zu finden und recht gut dokumentiert.
(@Christopher, bitte schau mal, ob Du dort was anpassen kannst, um das auf dem Raspi der ersten Generation zum Laufen zu kriegen)

Ein eventuell zusätzlich eingesteckter USB WiFi Stick sollte automatisch erkannt werden; in dem Fall wird ein Access Point für die iSpindel eingerichtet (IP: 172.24.1.1, Netzwerk raspi-ap, Passwort 'raspberry').

Ist ein solcher nicht vorhanden, gibt es während des Startvorgangs eine entsprechende Fehlermeldung ("FAILED"), die kann aber ignoriert werden.
Falls der Raspi per Ethernet Kabel angeschlossen ist, und das eingebaute WLAN Modul als Access Point fungieren soll, muss natürlich die Konfiguration angepasst werden.
Verbindet man die iSpindel ganz normal mit dem Heimnetzwerk, ist nichts weiter zu beachten, außer dass man dem Raspi natürlich auf dem Router eine feste IP zuweisen sollte, und diese dann unter den Einstellungen für TCP eingibt (Port ist immer 9501, es sei denn, man ändert ihn in der /usr/local/bin/iSpindle.py Datei).

Der Raspi sollte von einem Mac oder Linux Rechner aus über das Terminal via SSH zu erreichen sein, Passwort 'raspberry':

Code: Alles auswählen

ssh pi@raspberrypi
Wer Windows einsetzt, kann hierzu auf putty zurückgreifen.
Außerdem sollte der funktionierende Raspi im Mac Finder und im Windows Explorer als Netzwerkgerät auftauchen und Zugriff auf das Heimverzeichnis des Benutzers pi bieten, sowie auf die system-logs.
In letzterem Verzeichnis ist vor allem die Datei "messages" für mich interessant, falls irgendwas schief läuft.

Konfiguration en Détail:

Dieses Image einfach wie gewohnt auf die SD Karte des Raspberry PI flashen.
Danach bitte raspi-config aufrufen (sudo raspi-config oder über die graphische Oberfläche) und als erstes das Dateisystem vergrößern, so dass es die gesamte SD Karte einnimmt (expand file system).

Benutzername und Passwort sind default, also 'pi' und 'raspberry'.

Das Default Passwort für den Benutzer 'iSpindle' der MySQL Datenbank lautet 'ohyeah'.

Falls Ubidots Weiterleitung gewünscht ist, bitte noch das Token eintragen und Ubidots aktivieren (auf 1 setzen).
Hierzu muss die Datei /usr/local/bin/iSpindle.py editiert werden:

Code: Alles auswählen

sudo nano /usr/local/bin/iSpindle.py
Soll der Raspi als Access Point für die Spindel betrieben werden (und nur dann, also alle anderen können das ignorieren), muss eventuell noch die Datei /etc/hostapd/hostapd.conf angepasst werden.
Insbesondere das zu verwendende Interface (voreingestellt ist wlan1, also ein USB Stick).
Soll das eingebaute Interface verwendet werden, ist hier wlan0 einzustellen.
Ebenso wird dort das WLAN Passwort für die Spindel eingestellt, und der Funkkanal, auf welchem der AP senden und empfangen soll.

Die restlichen Einstellungen (IP Adresse des Access Points, evtl. Passwort für das Heimnetzwerk etc.) werden in der Datei
/etc/network/interfaces
vorgenommen.

Voreinstellung ist 172.24.1.1 und Passwort 'raspberry'.
Auch hier bitte darauf achten, dass wlan0 und evtl. wlan1 korrekt zugewiesen sind.
Default ist, dass wlan0 (das eingebaute WLAN Modul) mit dem Heimnetzwerk verbunden wird und ein zusätzlicher USB WLAN Stick als Access Point für die iSpindel funktioniert.
Das hat den Grund, dass externe USB WiFi Adapter meist eine sehr viel bessere Antenne mitbringen.
Die iSpindel wird also auf das 'raspi-ap' Netz, Passwort 'raspberry' verbunden, unter Protokoll wird 'TCP' angegeben, IP Adresse 172.24.1.1, Port 9501.

Noch eine wichtige Bitte:
Solltet Ihr das zum Laufen bekommen, oder auch nicht, lasst es mich bitte wissen.
Wenn es nicht klappt, bitte ich um eine möglichst detaillierte Fehlerbeschreibung.
So behalte ich den Überblick und kann das Paket weiter verbessern.
Auch möchte ich gerne wissen, wieviele von Euch dies denn nun eigentlich einsetzen.
Es steckt inzwischen nämlich eine Menge Arbeit drin, nicht mehr nur von mir selbst.

Am besten aber nicht hier in diesem Faden, sondern per PN.
Nicht, dass diesen Thread dasselbe Schicksal ereilt, wie das des offiziellen iSpindel Themas. :Angel

Viel Spaß und Erfolg!

//Nachtrag:
Zum Schluß noch ein kleiner "Teaser".
Meine aktuell abgeschlossene Gärung. Noch nicht ganz vollständig kalibriert, aber man sieht, wohin die Reise hier geht:
Diagramm GenericTCP
Diagramm GenericTCP
//Noch ein Nachtrag:
An der Benutzerfreundlichkeit wird natürlich weiter gearbeitet.
Die nächsten 10 Tage bin ich in Frankreich bei meinem Bruder und einem seiner Freunde zu Besuch, welcher sowohl Hobbybraukollege als auch Webdesigner von Beruf ist.
Er und seine Verlobte haben mich vor gut einem Jahr "angefixt" und sie bekommen 2 kalibrierte Spindeln und einen Raspi von mir als Hochzeitsgeschenk.
Dieses Image basiert auf der Vorkonfiguration, die ich für die beiden erstellt habe.
Das könnte vielversprechend werden... :Angel

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Samstag 22. April 2017, 03:33
von stefan9113
viel Spaß in Frankreich Stephan

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Samstag 22. April 2017, 16:22
von kiki
Die Grafiken haben nun als optionale Parameter
name: Name der iSpindel, der über die iSpindel-Config eingeben wurde
hour: ganze Zahl,
reset: true oder false
Möchte man die aktuelle Gärung von Beginn an anzeigen, ruft man einmalig nach dem Anstellen im Browser reset_now.php mit dem Namen der iSpindel auf, damit ein Reset-Zeitstempel in der Datenbank eingetragen wird:

Code: Alles auswählen

http://meinraspi/iSpindle/reset_now.php?name=MeineSpindel2
Ruft man die Grafiken mit dem zusätzlichen Parameter reset=true auf, werden nur die Werte nach dem zuletzt eingetragenen Reset-Zeitstempel angezeigt und man sieht so nur die aktuelle Gärung:

Code: Alles auswählen

http://meinraspi/iSpindle/angle.php?name=MeineSpindel2&reset=true
Falls mir noch ein Fehler reingerutscht ist, bitte eine PN schicken.
Viele Grüße
Markus

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Samstag 22. April 2017, 21:40
von Tozzi
Kleiner Nachtrag:

Um alles auf den jeweils neuesten Stand zu bringen, mit SSH auf den Raspi zugreifen (Linux, Mac: Terminalfenster, Windows: putty).
Dann Folgendes machen:

Code: Alles auswählen

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get clean
cd iSpindle/iSpindel
git pull
Die ersten 4 Schritte sind momentan unnötig, denn das Image ist noch aktuell.
Aber so habt Ihr künftig immer die neuesten Updates, ohne ein neues Image runterladen zu müssen.

Falls GIT Probleme macht, einfach neu klonen (alles andere führt hier zu weit):

Code: Alles auswählen

cd ~/iSpindle
rm -rf iSpindel
git clone https://github.com/universam1/iSpindel
Es gab noch einen Last-Minute Fix, den ich leider ins Image noch nicht einbauen konnte (muss packen und noch meinen Chronical CIPpen).

//Nachtrag:
Ich bin gerade doch noch dabei, ein aktualisiertes Image hochzuladen.
Also im Zweifel einfach nochmal runterladen, dann sollte alles klappen, und Ihr müsst nichts weiter machen.
Künftige Updates aber bitte wie oben beschrieben durchführen.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Freitag 28. April 2017, 01:33
von Tozzi
Es gibt wohl immer noch ein Problem mit dem Image, das dazu führt, dass nur ein schwarzer Bildschirm angezeigt wird und der Bootvorgang abbricht.
Ich bin der Sache auf der Spur, eventuell habe ich morgen einen Fix parat.
Ansonsten dauert es leider noch bis nächste Woche, da ich momentan kein schnelles Internet habe...

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Freitag 5. Mai 2017, 19:30
von Tozzi
Servus zusammen,

hab den Fehler gefunden, es lag in der Tat daran, dass das Image zu stark geschrumpft war und nicht genügend Platz für die Log Dateien beim ersten Start zur Verfügung stand.
Ich konnte das hier nachvollziehen. Man soll halt nichts veröffentlichen, ohne es vorher getestet zu haben. Der Fehler hatte sich in letzter Minute eingeschlichen. :Ahh
Ich habe das Image ein wenig vergrößert (schlägt sich aber nicht im Download nieder) und analog zum originalen Raspbian Image eingebaut, dass beim ersten Bootvorgang automatisch das Dateisystem auf die maximale Größe (vorgegeben durch die Kapazität der SD Karte, mindestens 8 GB, empfohlen 16 GB) expandiert wird.
Bei mir klappt das jetzt.

Des Weiteren beinhaltet die neue Version die aktuellen Updates von Raspbian, sowie das neue Repo von Sam, ist also heute tagesaktuell.

Künftige Updates können bezogen werden wie weiter oben beschrieben (Terminal öffnen oder über SSH/putty zugreifen):

Code: Alles auswählen

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get clean
cd iSpindle/iSpindel
git pull
sudo shutdown -r now
Falls die Frage kommt, ob aktuelle Konfiguration überschrieben werden soll, bitte grundsätzlich mit Nein beantworten bzw. "Keep Original".

Als Ausblick:
Ich habe letzte Woche einen erfahrenen Braukollegen, Web Designer und PHP Entwickler mit ins Boot geholt.
Hab ihm und seiner Verlobten einen vorkonfigurierten Raspi mit Touch Display und 2 kalibrierten Spindeln (5er Firmware) geschenkt.
Wir dürfen uns demnächst also freuen auf Erweiterungen der Benutzeroberfläche.

Zum Download:
http://sschreiber.de/download/Raspbian- ... -1.1.3.zip

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Freitag 5. Mai 2017, 19:40
von stefan9113
wieder zurück in der Heimat?

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Freitag 5. Mai 2017, 19:50
von Tozzi
stefan9113 hat geschrieben:wieder zurück in der Heimat?
Yes. Back on-line. :Smile

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Freitag 5. Mai 2017, 19:54
von stefan9113
na dann auf bald :thumbup

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Montag 8. Mai 2017, 20:17
von Bunker72
Hallo Stephan!

Ich möchte meine iSpindel-Daten auch selbst aufzeichnen.
Windows-PC´s laufen bei mir eh rund um die Uhr.
Habe nun auf einem virtuellem Test-PC Python 2.7 installiert.
Die Datei "iSpindle.py" hab ich ausgeführt.
Allerdings bekomme ich keine Ergebnisse geschrieben.
Die Ausgabe sieht immer so aus:
python-Ausgabefenster.png
Kannst Du mir - oder jemand anderes hier weiterhelfen?

Weiterhin bin ich mir nicht sicher, ob ich die Angaben für die csv-Datei unter Windows richtig eingerichtet habe:
iSpindle.py.png
Vielen Dank im Voraus!
Thomas

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Montag 8. Mai 2017, 21:49
von kiki
Hallo Thomas,

die Meldung NOT JSON hatte ich auch. Das lag bei mir aber nicht am lokalen Server, sondern an der config der iSpindel. Dort hatte ich nicht TCP ausgewählt, daher passte das gesendete Format nicht.

Viele Grüße
Markus

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 9. Mai 2017, 01:13
von Tozzi
Hallo Thomas,
kiki hat geschrieben:die Meldung NOT JSON hatte ich auch. Das lag bei mir aber nicht am lokalen Server, sondern an der config der iSpindel. Dort hatte ich nicht TCP ausgewählt, daher passte das gesendete Format nicht.
Was Markus sagt. :thumbup
Das ankommende Format passt nicht. Du brauchst iSpindel Firmware >= 3.6.0 und musst TCP als Protokoll in der iSpindel Config auswählen.
In Deinem Fall kam HTTP an, damit kann mein Skript absichtlich nichts anfangen.
Der Rest sieht OK aus, vorausgesetzt der Pfad zum CSV existiert.

Ich würde aber empfehlen, MySQL zu installieren und das anstelle von CSV zu verwenden, ist wesentlich vielseitiger.
Oder mal die SQL Sachen durchgehen und gleich auf MS SQL portieren. Sollte auch kein großes Problem sein.
Falls da Bedarf besteht, mach ich das sogar. :Wink
Momentan zähle ich aber erst so circa 6-8 Benutzer meiner Lösung und freue mich sehr über Dein Interesse...

Offenbar muss Ubidots noch öfters ausfallen, damit da mehr Interesse entsteht.
Das mit dem "lokalen" Server ist auch irgendwie kein so guter Begriff. Aber so hat's halt angefangen...
Macht man nämlich einen Port auf dem Router auf (evtl. DynDNS), kann man auch von unterwegs zugreifen...
Und auf Ubidots muss man auch nicht verzichten...
Wer selber einen gemieteten Server hat (virtual host/dedicated), weiß eh was er/sie zu tun hat...

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 9. Mai 2017, 06:22
von Bunker72
Vielen Dank an Stephan und Markus!

Es war tatsächlich die falsche Einstellung im Config der Spindel.
Dies hätte ich eigentlich ausgeschlossen, da ich wusste, dass ich TCP ausgewählt habe.
Das Config-Menü hat aber auf meinem Handybrowser die Eigenart, dass ich zwar per Auswahlmenü die Services auswählen kann - dieses wird dann auch richtig angezeigt - aber es ist eben noch nicht angenommen. Erst eine weitere Bestätigung (Tastendruck) auf den Service lässt die Auswahl richtig ins Config einfließen und zeigt auch dann die weiteren (möglichen) Auswahlfelder an. Dies war auch der Grund, dass ich es endlich geschafft habe - denn mir ist aufgefallen, das sich z.B. bei der Auswahl von Ubidots nicht die Eingabemaske für den Token änderte.

Lange Rede kurzer Sinn....es funktioniert! :Smile

@Stephan:
Gerne würde ich natürlich auf eine Datenbank schreiben oder auch so schöne Auswertungen haben. Leider ist meine PC-Erfahrung aber nicht so weit fortgeschritten....
Bei mir läuft schon eine firebird-Datenbank auf einem virtuellem Server. Die habe ich vor Jahren angelegt. Evtl. lese ich mich da mal wieder rein.

....und noch eine Überlegung:
Meinst Du das Image für den Raspi läuft auch als VM (bei mir VirtualBox)?
Grüße
Thomas

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Dienstag 9. Mai 2017, 17:58
von Tozzi
Hallo Thomas,

ich fürchte, in einer VM wird das nicht laufen. Das geht schon damit los, dass der Code für ARM kompiliert ist.
Aber Du kannst eine aktuelle Debian (Jessie) Linux Distribution in der VM installieren und dann Schritt für Schritt vorgehen, wie in der Doku beschrieben.
Ich habe momentan recht viel zu tun, aber eventuell stelle ich sowas (bei Interesse) noch zur Verfügung.

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 10. Mai 2017, 12:29
von Bunker72
Hallo Stephan!

Deinem Ratschlag folgend habe ich eine VM mit Debian aufgebaut. Die Schritt für Schritt Anleitung konnte ich weitgehend nachvollziehen.
Ich bin bis zu einem laufenden und eingerichtetem Apache2 gekommen.

Was noch fehlt und wozu offensichtlich meine Kenntnisse nicht mehr reichen (das ist mein 1. Kontakt mit Linux):
- Samba konfigurieren
- dein Script aufbringen und konfigurieren
- die Diagramme installieren und konfigurieren.

Evtl. kannst du mir ja weiterhelfen - evtl. auch per Fernwartung.

Natürlich bin ich an einer fertigen VM interessiert - wenn du so etwas zur Verfügung stellen würdest!

Vielen Dank!
Thomas

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 10. Mai 2017, 21:43
von Bunker72
NACHTRAG:

Ich habe nochmals ein Debian in einer VM aufgebaut. Diesmal mit GUI.
Mit weiterer Hilfe durch Google hab ich nun alles zum Laufen gebracht!
Es werden die Werte in die Datenbank eingetragen und ein Abruf der Diagramme ist ebenfalls möglich.

Allerdings hatte ich noch nicht die Zeit alles auf Herz und Nieren zu prüfen.
Weiterhin muss sich nach Zusammenbau einer weiteren Spindel der Mehrspindelbetrieb ebenfalls bewähren.

Jedenfalls ein tolles Projekt!

Grüße
Thomas

Re: iSpindel - Lokaler Server - iSpindle.py

Verfasst: Mittwoch 10. Mai 2017, 21:46
von Tozzi
Hi Thomas,
Bunker72 hat geschrieben:nun alles zum Laufen gebracht!
Super, freut mich!
Bunker72 hat geschrieben:Allerdings hatte ich noch nicht die Zeit alles auf Herz und Nieren zu prüfen.
Weiterhin muss sich nach Zusammenbau einer weiteren Spindel der Mehrspindelbetrieb ebenfalls bewähren.
Wenn's läuft, dann läuft's. :thumbup
Mehrspindelbetrieb ist kein Problem, selbst wenn sie mal gleichzeitig senden.