iSpindel - lokaler Server (erste Überlegungen)

Benutzeravatar
Seed7
Posting Freak
Posting Freak
Beiträge: 3304
Registriert: Dienstag 2. April 2013, 18:28
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#101

Beitrag von Seed7 »

Tozzi hat geschrieben: Was mir vorschwebt, ist ein wirklich kleines Python Skript, welches auf dem TCP Socket lauscht, ohne http oder ähnlichen Ballast, und die Daten in eine Tabelle schreibt (SQLite oder MySQL).
Das kann man dann auf dem Raspberry installieren, oder auf einem gemieteten Server, oder wo auch immer.
Dazu dann ein .NET Excel Add-In, zur Visualisierung auf dem Desktop. Ich stelle das dann zur Verfügung, und jeder der will kann sich dran austoben. :Wink
Koenntest auch gleich eine .csv datei mit Python schreiben fuer excel,

ingo
"Wabi-Sabi" braucht das Bier.
tommy020
Posting Junior
Posting Junior
Beiträge: 55
Registriert: Freitag 24. Mai 2013, 08:43

Re: iSpindel - lokaler Server (erste Überlegungen)

#102

Beitrag von tommy020 »

Hi,

ich würde, wenn das https://github.com/universam1/iSpindel/issues/15 durch ist, eine App für Splunk bauen.
Splunk hat den Vorteil das es universell einsetzbar ist und auch andere Daten verarbeiten kann. (bei mir bspweise: heizung, Fritzbox, Anwesenheit, Leistung PV..)
Weiter könnte man auch per predict den Zeitpunkt der Abfüllung versuchen "vorherzusagen".
Allerdings sind die Hardwareanforderungen etwas höher (bei mir läuft es auf: Intel(R) Atom(TM) CPU 330 @ 1.60GHz mit 2GB)

grüße,
-tommy020
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#103

Beitrag von Tozzi »

Seed7 hat geschrieben:Koenntest auch gleich eine .csv datei mit Python schreiben fuer excel
Genau so hab ich das vor. :Smile
Viele Grüße aus Fasano
Stephan
Benutzeravatar
Seed7
Posting Freak
Posting Freak
Beiträge: 3304
Registriert: Dienstag 2. April 2013, 18:28
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#104

Beitrag von Seed7 »

Stimmt unterstehendes noch um eine iSpindel mit curl zu simulieren fuer universal HTTP?

Code: Alles auswählen

curl -X POST -H "Content-Type: application/json" -d '{"name": "iSpindel01", "temperature": 20.5, "angle": 89.5, "battery": 84}' http://YOURSERVER:PORT/api/v1/json
Ingo
"Wabi-Sabi" braucht das Bier.
Benutzeravatar
universam
Posting Freak
Posting Freak
Beiträge: 518
Registriert: Dienstag 20. September 2016, 16:43
Wohnort: Selters
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#105

Beitrag von universam »

Ja das könnte so aussehen.
iSpindel - die DIY elektronische Spindel
Brauhelferlein - die mini Brausteuerung
Benutzeravatar
Seed7
Posting Freak
Posting Freak
Beiträge: 3304
Registriert: Dienstag 2. April 2013, 18:28
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#106

Beitrag von Seed7 »

ok, danke
"Wabi-Sabi" braucht das Bier.
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#107

Beitrag von Tozzi »

So, eine erste funktionierende Version des Skriptes habe ich jetzt fertig.
Vielen Dank an Sam, der die Firmware der Spindel entsprechend erweitert hat.

Die Testversion der Firmware ist hier zu finden:
https://github.com/universam1/iSpindel/ ... .3.6.0.bin

Das Python Skript ist sehr einfach gehalten und kann leicht auf eigene Bedürfnisse angepasst werden.
Es "lauscht" auf einem TCP Port und schreibt die Daten dann in eine CSV Datei, die z.B. in Excel eingelesen werden kann.
Für meine Zwecke reicht das erst mal. Meine Devise war erst mal "keep it simple".
Weitere Sachen wie Datenbank Anbindung etc. kann man ja immer noch einbauen.
Jeder der mag ist herzlich eingeladen das Skript zu verbessern.

Zur Konfiguration muss man das Skript in einem Editor öffnen und dann die folgenden Zeilen anpassen:

Code: Alles auswählen

DEBUG = 1                               # Set to 1 to enable debug output on console
PORT = 9501                             # TCP Port to listen to
OUTPATH = '/media/usb0/iSpindel/csv/'   # CSV output file path
DELIMITER = ';'                         # CSV delimiter (use ; for Excel)
NEWLINE='\r\n'                          # newline (\r\n for windows clients)
DATETIME = 1                            # Set to 1 to enable appending of Excel compatible timestamp to CSV file
Außer dem Pfad zur CSV Datei braucht man da eigentlich nichts zu ändern, normalerweise.
Wenn das Verzeichnis im Netzwerk freigegeben ist, kann man die Daten direkt in Excel etc. importieren.
Der Name der CSV Datei ist SpindelName_SpindelID.csv, d.h. jede Spindel schreibt in eine eigene Datei.

Danach kann man das Skript einfach starten.
Unter Linux am besten einfach ausführbar machen (chmod 755 iSpindle.py).
Ansonsten halt "python iSpindle.py".

In der Konfiguration der Spindel Firmware gibt es jetzt einen Punkt "TCP".
Dort den Port (9501) und die IP Adresse des Servers eintragen und wie gehabt Update-Intervall etc.

Über Rückmeldungen (PN) würde ich mich freuen; vor allem würde ich gerne einschätzen, wie viel Interesse daran eigentlich besteht und in welche Richtung wir das ggf. weiter ausbauen sollten.
iSpindle.py.zip
Python Skript iSpindle
(1.69 KiB) 54-mal heruntergeladen
//Nachtrag:
Das Ganze ist natürlich momentan noch ausschließlich zum Testen gedacht.
Es kann sich jederzeit noch was ändern. Aber meine ersten Tests haben geklappt.
Viele Grüße aus Fasano
Stephan
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#108

Beitrag von Tozzi »

Wow, 2 Downloads. RIesen Feedback. :P
Kann's Euch nicht verdenken, denn momentan ist das ja alles noch weniger als unvollständig.

Aber es ist dennoch Zeit für ein kleines Update:
Ich habe nochmal eine Nachtschicht eingelegt und das Skript erweitert.

Es schreibt jetzt wahlweise auch in eine MySQL Datenbank.
Im nächsten Schritt implementiere ich dann noch eine ubidots Schnittstelle; dann muss man keine entweder-oder Entscheidung mehr treffen.
Geht dann alles über eine einzige Verbindung.
Danach gibt's erst mal eine Lösung für Excel zum Visualisieren, und irgendwann vllt. sogar eine iOS App.

Da der Zeitraum, in dem die iSpindel aktiv Daten sendet, so doch deutlich reduziert wird, sollte sich eine eventuell sogar drastisch verlängerte Akku Laufzeit ergeben (gegenüber ubidots zumindest).
Dann können kürzere Intervalle eingestellt werden. Oder man überwacht ein Lambic. :Smile

Nächste Woche braue ich nochmal ein Doppelnelson, mit gestrippter Dupont Hefe (die sich gerade großartig entwickelt) und der Leihspindel, die Herbert mir dankenswerterweise zur Verfügung gestellt hat.
Wird dann der Praxis Test.
Schaun'g mer mal dann seh'mer's schon.
Viele Grüße aus Fasano
Stephan
Benutzeravatar
Seed7
Posting Freak
Posting Freak
Beiträge: 3304
Registriert: Dienstag 2. April 2013, 18:28
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#109

Beitrag von Seed7 »

Hatte es mir schon angesehen, da aber noch keine Spindel ... Habe mir gefragt ob select nicht hilfreich waere und warum du nicht die standard logging von Python nuetzt.

Hebe selber eine kleine loesung mit CherryPy gebasteld, eine POST methode empfaengt die daten und schickt die zum PostgreSQL database. Ueber das Listen/Notify von PG kommt ein signal mit den letzten daten als JSON auf dem bus von CherryPy und die schickt es wieder ueber SSE zu eine webpage. Alles push.
Ich kann es auch mit zwei webserver machen und eine fuer nur empfangen von daten einrichten und einen nur zum publizieren, PostgreSQL ist dann das bindeglied.

Ingo
"Wabi-Sabi" braucht das Bier.
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#110

Beitrag von Tozzi »

Hmm... Ich sehe nicht ganz wo der Vorteil von "select" wäre(?).
Damit würde auch die Kompatibilität zu Windows flöten gehen, wenn ich das richtig verstehe (auch wenn das wahrscheinlich wirklich niemand braucht).
Das mit dem Logging ist quick and dirty, das wird noch verbessert, klar.
Ich nutze aber auch die Gelegenheit, um endlich Python zu lernen. Meiner einer ist noch mit Perl aufgewachsen.
Und ich bin begeistert, wie schnell und einfach sich damit sowas umsetzen lässt.

Meine Zielsetzung war, eben ohne POST oder sowas auszukommen. Wirklich reines low-level TCP, keine zusätzlichen Application Protocol Schichten wie http o.ä....
Die Spindel halt so gut wie's eben geht entlasten.
Erste Tests bestätigen, das funktioniert ganz gut. Was ich unterschätzt hatte, ist die Zeit, die die Spindel benötigt, sich überhaupt erst mal wieder mit dem WLAN zu verbinden.
Das kann man leider nicht ändern. Aber zumindest spart man sich die Zeit, bis ein Remote Server antwortet. Das macht schon deutlich was aus.
Ich hatte die iSpindel jetzt mal 48 Stunden am Laufen, mit 1 Minute Update Intervall, und das Ergebnis ist zwar nicht überragend toll, aber doch ermutigend, weiter zu machen.

Kommende Woche wird sie mal im Chronical versenkt und dann mache ich mich mal an ein Excel .NET Add-In, um die Daten zu visualisieren.
Wenn alles passt, erweitere ich die Doku und lade die Sachen ins Repo hoch. Sollte klappen, bevor die Platinen da sind (und der PETling wieder erhältlich ist... :Grübel).
MySQL, PostgreSQL oder auch SQLite sollte ziemlich egal sein. Auf dem Pi3 läuft MySQL super gut, von daher konzentriere ich mich erst mal darauf, denn das kenne ich gut, auch wenn's für diesen Anwendungsfall Overkill ist.

Wer sich's schon mal anschauen mag, hier wäre der aktuelle Stand:
iSpindle-0.1.py.zip
iSpindle.py
(2.31 KiB) 48-mal heruntergeladen
In MySQL ist dazu eine Tabelle nach folgendem Schema zu erzeugen; auch dazu werde ich natürlich beizeiten ein Script nachliefern, momentan ist das noch händisch zu machen:

Code: Alles auswählen

CREATE TABLE `Data` (
 `Timestamp` datetime NOT NULL,
 `Name` varchar(64) COLLATE ascii_bin NOT NULL,
 `ID` varchar(64) COLLATE ascii_bin NOT NULL,
 `Angle` double NOT NULL,
 `Temperature` double NOT NULL,
 `Battery` double NOT NULL,
 PRIMARY KEY (`Timestamp`,`Name`,`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=ascii COLLATE=ascii_bin COMMENT='iSpindle Data'
Die Datenbank heißt "iSpindle", die Tabelle "Data".
Wie gesagt, ich schnüre da natürlich beizeiten ein benutzerfreundliches Paket draus. :Drink
Viele Grüße aus Fasano
Stephan
Miicha
Posting Senior
Posting Senior
Beiträge: 378
Registriert: Donnerstag 4. Juli 2013, 23:17

Re: iSpindel - lokaler Server (erste Überlegungen)

#111

Beitrag von Miicha »

Hallo Stephan,

Du warst etwas enttäuscht über wenig Feedback: Wir sind sehr interessiert an dem Projekt und dankbar für die Power, die Ihr alle da hineinsteckt. Wir haben aber Know-how-mäßig "den Asch soweit unten", dass Klappe halten zum jetzigen Zeitpunkt der beste Beitrag ist. Ich könnte mir vorstellen, daß einige, wie wir, in der zweiten Reihe warten.

Also nichts für ungut,

LG Micha.
Präzision ist genau genommen völlig daneben.
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#112

Beitrag von Tozzi »

Hallo Micha,

danke für das Feedback, ich war nicht wirklich enttäuscht, denn mir ist schon klar, dass das momentan für Anwender nicht so richtig interessant ist.
Viel zu viele Stellschrauben und alles noch in der Testphase. Wenn man schon eine iSpindel betreibt, möchte man auch dass sie zuverlässig Daten liefert.
Und allzu viele iSpindeln gibt es ja noch gar nicht.

Sooo viel Arbeit habe ich da übrigens auch noch nicht reingesteckt, waren im Endeffekt nur 2 lange Nächte. Mit Python ist sowas schnell realisiert.
Keineswegs auch nur im Geringsten vergleichbar mit der Arbeit, die Sam und Herbert da aufgewendet haben.
Und in meinem Fall ist es auch egoistisch motiviert, ich will selber so eine Lösung haben.
Aber es klappt wirklich gut und ich denke, wer einen Raspi oder sonst irgendwo irgendeinen Server herumstehen hat, wird das sinnvoll einsetzen können.

Wenn Sam die Geschichte mit dem Wemos Relais durchzieht, tun sich nochmal gänzlich andere Möglichkeiten auf.
Als Fan von belgischen Bieren schwebt mir ja eine intelligente Brausteuerung vor, die bei Nachlassen der Gäraktivität automatisch die Temperatur anhebt.
Da steckt insgesamt so viel Potential drin, wir sehen gerade erst die Spitze des Eisbergs, so mein Eindruck.
Ich hatte das alles anfangs völlig unterschätzt.

Erst mal werde ich was zusammenschnüren, was sich schnell installieren lässt, ohne tiefere technische Kenntnisse.
Mit einem Install Skript, wo man nur noch die eigenen Daten (IP Adressen, Passwörter) einträgt.
Ist hoffentlich fertig, bevor die Platinen kommen.
Aber vorher muss ich noch brauen. :Drink
Viele Grüße aus Fasano
Stephan
Benutzeravatar
universam
Posting Freak
Posting Freak
Beiträge: 518
Registriert: Dienstag 20. September 2016, 16:43
Wohnort: Selters
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#113

Beitrag von universam »

Tozzi hat geschrieben: Wenn Sam die Geschichte mit dem Wemos Relais durchzieht, tun sich nochmal gänzlich andere Möglichkeiten auf.
Als Fan von belgischen Bieren schwebt mir ja eine intelligente Brausteuerung vor, die bei Nachlassen der Gäraktivität automatisch die Temperatur anhebt.
Da steckt insgesamt so viel Potential drin, wir sehen gerade erst die Spitze des Eisbergs, so mein Eindruck.
Ich hatte das alles anfangs völlig unterschätzt.
Ich denke wenn es uns wieder langweiliger wird kommt die Lust was verrücktes zu realisieren bestimmt ganz von allein :Bigsmile
Hast du mal die Erweiterung von CBP für die iSpindel in Betracht gezogen? Evlt. könnte man dort das noch ausbauen, der Eckstein ist von Manuel ja bezüglich Gärsteuerung schon gelegt worden.

Was ich auf jeden Fall sagen wollte ist dass ich dein Skript sehr gut brauchen kann da ich mich jetzt intensiv mit Temperaturkompensation der iSpindel beschäftige und dazu ne Menge Referenzdaten auswerten muss. Mühsamer Job, aber dein Skript hilft! :thumbup
Vielleicht findet sich ja noch jemand der hier mathematisch etwas helfen könnte?
iSpindel - die DIY elektronische Spindel
Brauhelferlein - die mini Brausteuerung
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#114

Beitrag von Tozzi »

Ja klar, CBP habe ich auf jeden Fall auf dem Radar!
universam hat geschrieben:dein Skript hilft!
Das freut mich riesig!
Leider hab ich momentan viel zu tun mit einem Server Umzug (vermaledeite Spambot Hacker, mögen tausend Kamelflöhe...usw...).
Das Skript will ich am Ende so weit haben, dass es umfassend als Relay benutzt werden kann und die Daten wahlweise dahin schickt, wo sie gebraucht und ausgewertet werden, incl. Ubidots und CBP.
Der Grundstein ist ja gelegt. Muss "nur" noch erweitert und dokumentiert werden...
Viele Grüße aus Fasano
Stephan
Benutzeravatar
Seed7
Posting Freak
Posting Freak
Beiträge: 3304
Registriert: Dienstag 2. April 2013, 18:28
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#115

Beitrag von Seed7 »

Von den bisherigen erfahrungen, wie zuverlässig ist der datenuebertrag? Wenn ich ein interval von 10 min einstelle, ist dann alle 10 min auch was da, oder faellt schon mal ein pakket aus? Hintergrund, wenn es 100% funktioniert brauche ich nur den zeitpunkt der letzten 'sendung' zu speichern.

('proof of concept', noch etwas grob und ohne datenspeicher: https://gist.github.com/ingoogni/a7f7c0 ... c6139d80b0 )

Ingo
"Wabi-Sabi" braucht das Bier.
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#116

Beitrag von Tozzi »

Hallo Ingo,

ich habe eine Prototyp Spindel von Herbert mal 48 Stunden laufen lassen, Intervall 1 Minute.
Keine Ausfälle, ist alles sauber in der Datenbank drin.
Du bastelst da einen Webserver? Cool! Muss ich mir heute Abend mal in Ruhe ansehen. :thumbup
Viele Grüße aus Fasano
Stephan
Benutzeravatar
Seed7
Posting Freak
Posting Freak
Beiträge: 3304
Registriert: Dienstag 2. April 2013, 18:28
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#117

Beitrag von Seed7 »

Tozzi hat geschrieben: ich habe eine Prototyp Spindel von Herbert mal 48 Stunden laufen lassen, Intervall 1 Minute.
Keine Ausfälle, ist alles sauber in der Datenbank drin.
Schoen. Danke.

Zum webserver, ja, das schoene an CherryPy ist das es auf eine Bus basiert ist der nicht nur die interne prozesse steuert aber auch die moeglichkeit gibt sich zwischen prozesse ein zu haken oder daten ueber den bus zu schicken. Mit eine kleine interface klasse schreibt Postgresql seinen letzten eintrag direkt auf dem bus zur weiter verarbeitung. https://gist.github.com/ingoogni/169a2b ... a2da2a65f0

Ingo
"Wabi-Sabi" braucht das Bier.
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#118

Beitrag von Tozzi »

Servus zusammen,

ich habe dann was den lokalen Server betrifft quasi fertig. :Pulpfiction
Das Python Skript schickt jetzt wahlweise die Daten auch an Ubidots, d.h. man kann auf das Skript "umschalten", ohne die gewohnte Ubidots Anbindung zu trennen.
Praktisch, um eigene Versuche mit den Daten anzustellen, ohne auf die Auswertungen der laufenden Gärung verzichten zu müssen.
Da die Verbindungszeit kürzer ist, sollte sich auch Batterie sparen lassen auf diese Weise, wenn auch wohl nur marginal.

Herberts Prototyp-Leihspindel funkt gerade aus meinem Kühlschrank vom 2. in den 1. Stock ohne Paketverluste; die Daten sind zuverlässig sowohl in der Datenbank als auch auf Ubidots.
Damit kann das Skript jetzt eigentlich alles, was nötig ist, um verschiedenste Front-Ends basteln zu können.
Manches lässt sich sicherlich eleganter lösen, aber es funktioniert stabil so.

Excel gehe ich als nächstes an, da werde ich ein Add-In bauen, welches die Daten aus der Datenbank holt.
So kann man dann SG oder %w/w bzw. ˚P kalibrieren und Diagramme erstellen nach Herzenslust und Laune.

Also, wer bis hierhin gelesen hat, interessiert ist und eine iSpindel sein Eigen nennt, des weiteren einen Raspberry oder anderen Server (Linux, Windows, Mac, sollte alles gehen) am Laufen hat (und nicht bereits CBPi nutzt) sollte sich das hier mal anschauen.
Ich leiste auch gern Hilfestellung, die fließt dann in die Doku mit ein, die ich natürlich noch erstellen bzw. stark erweitern muss.
(Also eine Schritt-für-Schritt Anleitung, die auch beinhaltet, welche Pakete auf einem "nackten" Raspi nachinstalliert werden müssen, da habe ich nämlich nur unzureichende Aufzeichnungen geführt :redhead ).

Dazu bitte gerne PN schreiben. Dann machen wir das über TeamViewer und Skype (oder so ähnlich).

Hier ist erst mal die aktuelle Version vom Skript (landet dann baldigst auch im Repo]:
iSpindle-0.2.py.zip
iSpindel lokaler Server (Python)
(2.53 KiB) 63-mal heruntergeladen
Die Konfiguration sieht jetzt so aus (direkt im Skript zu editieren):

Code: Alles auswählen

# General
DEBUG = 0                               # Set to 1 to enable debug output on console
PORT = 9501                             # TCP Port to listen to
HOST = '0.0.0.0'                        # Allowed IP range. Leave at 0.0.0.0 to allow connections from anywhere

# CSV
CSV = 0                                 # Set to 1 if you want CSV (text file) output
OUTPATH = '/home/xbian/iSpindel/csv/'   # CSV output file path; filename will be name_id.csv
DELIMITER = ';'                         # CSV delimiter (normally use ; for Excel)
NEWLINE='\r\n'                          # newline (\r\n for windows clients)
DATETIME = 1                            # Leave this at 1 to include Excel compatible timestamp in CSV

# MySQL
SQL = 1                                 # 1 to enable output to MySQL database
SQL_DB = 'iSpindle'                     # Database name
SQL_USER = 'iSpindle'                   # DB user
SQL_PASSWORD = 'xxxxxx'                 # DB user's password (change this)

# Ubidots (using existing account)
UBIDOTS = 1                                     # 1 to enable output to ubidots
UBI_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'    # ubidots token, see manual
Die MySQL (oder andere DB) Tabelle hat nach wie vor dieses Schema:

Code: Alles auswählen

CREATE TABLE `Data` (
 `Timestamp` datetime NOT NULL,
 `Name` varchar(64) COLLATE ascii_bin NOT NULL,
 `ID` varchar(64) COLLATE ascii_bin NOT NULL,
 `Angle` double NOT NULL,
 `Temperature` double NOT NULL,
 `Battery` double NOT NULL,
 PRIMARY KEY (`Timestamp`,`Name`,`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=ascii COLLATE=ascii_bin COMMENT='iSpindle Data'
Ich freue mich auf Eure Rückmeldungen.
Viele Grüße aus Fasano
Stephan
Benutzeravatar
universam
Posting Freak
Posting Freak
Beiträge: 518
Registriert: Dienstag 20. September 2016, 16:43
Wohnort: Selters
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#119

Beitrag von universam »

Tolle Sache Stefan! :thumbsup

Sehr schön gefällt mir sehr gut und habe auch einige Verwendungsmöglichkeiten dafür.

Danke für die Mühe, find ich super dass du dich hierfür reingehängt hast!

Sobald ich Erfahrungen habe gebe ich Rückmeldung


Gruß
Sam
iSpindel - die DIY elektronische Spindel
Brauhelferlein - die mini Brausteuerung
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#120

Beitrag von Tozzi »

Servus zusammen,

da ja nun meine erste eigene iSpindel auch endlich funktioniert, habe ich zu meiner Freude festgestellt, dass mein Skript auch ohne Erweiterungen das Ubidots Device bereits fehlerfrei anlegt.
Die Spindel hat auch brav aus meinem Kühlschrank heraus zum Router (Fritz Box) ein Stockwerk tiefer gefunkt, ohne Repeater und ohne Paketverlust, bei 1˚C, eine ganze Nacht lang.
Der Akku ist auch immer noch voll geladen.
Die Reichweite vom Wemos ist wirklich alles andere als schlecht.

So, on topic, ich hab zum Spielen für Interessierte noch was gebastelt, und zwar ein Excel Sheet mit VBA Makro, welches die vom Skript generierten MySQL Daten vom Server (Raspi) holt.
Wichtig ist, dass man zum einen in MySQL den Remote Zugriff erlaubt, also /etc/mysql/my.cnf editieren und bei "bind-adress" statt 127.0.0.1 eintragen: 0.0.0.0.

Dann braucht man natürlich noch ODBC Treiber für MySQL (was inzwischen leider offenbar von Oracle übernommen wurde), Download hier:
https://dev.mysql.com/downloads/connector/odbc/
(Mit dem ganzen ODBC Sch... verbindet mich seit 30 Jahren eine Hassliebe, mehr Hass als Liebe, aber ich will keine Grundsatzdiskussion drüber lostreten, ist halt so wie es ist. Microsoft halt. Hat mir schon viele graue Haare beschert.)

Ist nur ein "Proof-Of-Concept", aber Excel Kundige werden sich sicherlich dran austoben können.
Dürfte eine gute Basis sein, um die Kalibrierung zu optimieren, und auch um Visualisierungen (Diagramme) zu testen.
Würde mich freuen, wenn da was weitergeht.

Die jetzige Version ist mit Office 2010 unter Windows 7 getestet.
Mac Version (Office for Mac 2011) reiche ich noch nach, da sind (leider) umfangreiche Änderungen nötig, aber machbar ist das auch.

Doku für's Skript und Excel Sheet kommt noch.
Brauche noch freiwillige Tester, um eine Schritt-für-Schritt Anleitung schreiben zu können.
iSpindle-Excel-0.1.zip
Excel Proof-of-Concept
(23.01 KiB) 50-mal heruntergeladen
Viele Grüße aus Fasano
Stephan
Chris1990
Posting Senior
Posting Senior
Beiträge: 473
Registriert: Montag 17. Juni 2013, 22:32

Re: iSpindel - lokaler Server (erste Überlegungen)

#121

Beitrag von Chris1990 »

Hallo zusammen,

ich habe gestern meine erste Spindel zusammengelötet und sie funktioniert super! Auch das Übertragen an Ubidots funktioniert zuverlässig. :thumbup

Da ich jedoch im Gärkeller kein Internet habe, wollte ich auch eine lokale Lösung haben. Eventuell noch eine Lösung wie Sam sie vorgeschlagen hat, wo mehrere Wemos als Repeater dienen, um die Daten eventuell doch zu Ubidots zu bekommen. Also eine lokale Anzeige neben dem Gärschrank und die Daten zusätzlich einsehbar (um sich unterwegs seinen Gärverlauf anschauen zu können :Smile).

Hier der Beitrag von Sam, den ich meine: viewtopic.php?p=185546#p185546

Hat jemand einen ähnlichen Aufbau und/oder eine Anleitung für mich, um dieses Projekt mit einem Raspberry Pi der ersten Generation umsetzen zu können?

Vielen Dank für Eure Antworten!

Viele Grüße

Christopher
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#122

Beitrag von Tozzi »

Die Dokumentation und neueste Version des Skripts sind jetzt im Repo:
https://github.com/universam1/iSpindel/ ... eneric-TCP
Viele Grüße aus Fasano
Stephan
Benutzeravatar
flensdorfer
Posting Freak
Posting Freak
Beiträge: 694
Registriert: Freitag 5. Februar 2016, 09:26
Wohnort: Flensburg

Re: iSpindel - lokaler Server (erste Überlegungen)

#123

Beitrag von flensdorfer »

Moin,

muss den Faden mal aus der Versenkung emporholen :)
Hat schon mal jemand ThingSpeak ausprobiert? Was muss man dazu in der Spindel einstellen und was in ThingSpeak?

Das Image von oben läuft wunderbar aus dem alten Raspi2.

Oder geht der Trend mittlerweile in eine andere Richtung? Das Skript von Tozzi steht auch noch auf der ToDo, da reicht ja ein Standard-Raspian-Image.
Gruß, Arne

Anfänger in der 20l-Klasse
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#124

Beitrag von Tozzi »

Inzwischen ist mein Server Skript nebst umfangreicher Dokumentation und Schritt-für-Schritt Installationsanleitung (für Raspbian) in Sams Repo zu finden:
https://github.com/universam1/iSpindel/ ... eneric-TCP
Ich habe extra nochmal einen Raspi mit Raspbian "frisch" neu aufgesetzt, um keine Paketabhängigkeiten zu übersehen.

Ein SysVinit Skript ist auch dazugekommen, um den Server bei Neustart des Raspi gleich wieder aktiv zu haben.

Die Hauptvorteile:
  • Kürzestmögliche Verbindungszeit mit geringstmöglicher Prozessorlast und Netzwerkkommunikation -> Höhere Batterielaufzeit
  • Funktioniert auch wenn man offline ist (Internetverbindung weg oder Ubidots sonstwie nicht erreichbar)
  • Man muss deshalb nicht auf Ubidots verzichten; die Daten werden auf Wunsch dorthin weitergeleitet
Ich arbeite momentan noch an einer Lösung, die Daten über den Browser, auch als Diagramm, zu visualisieren (bzw., wenn der Raspi ein Display hat, ebendort).
Das klappt dann auch Remote, wenn man den Router entsprechend konfiguriert.
Sollte in ein paar Tagen (bzw. sehr bald) stehen.
Dann werde ich einen eigenen Faden dafür anfangen, denn dann ist das eine komplette, schlanke Lösung, die sich in viele Richtungen weiterentwickeln und anpassen lässt und halt speziell für die iSpindel entwickelt wurde. Installiert und konfiguriert ist das dann auch in wenigen Minuten.
Ist also für all diejenigen gedacht, die eine iSpindel haben, einen Raspberry oder sonstwie 24/7 erreichbaren Computer (bzw. Virtual Server), und nicht eh schon CBPi einsetzen.
Das Ganze ist immer noch komplett plattformunabhängig, läuft also sowohl unter Linux, als auch Windows oder Mac OS X.
Über "erste Überlegungen" ist das schon lange hinaus... :Pulpfiction
Viele Grüße aus Fasano
Stephan
Knallex
Posting Junior
Posting Junior
Beiträge: 21
Registriert: Donnerstag 4. Februar 2016, 19:36

Re: iSpindel - lokaler Server (erste Überlegungen)

#125

Beitrag von Knallex »

Hallo Tozzi,
das hört sich wirklich sehr gut an.
Lokaler Server, Anzeige der lokalen Daten im Browser, Möglichkeit die Daten in die Cloud zu pushen .... Optimal!

Ich bin schon sehr gespannt und freue mich schon darauf, das Ganze mal live ausprobieren zu dürfen.

Gruß,
Alex
Benutzeravatar
flensdorfer
Posting Freak
Posting Freak
Beiträge: 694
Registriert: Freitag 5. Februar 2016, 09:26
Wohnort: Flensburg

Re: iSpindel - lokaler Server (erste Überlegungen)

#126

Beitrag von flensdorfer »

Tozzi, das klingt richtig genial!
Dann bin nich mal gespannt, was du uns zusamenbaust :)
Gruß, Arne

Anfänger in der 20l-Klasse
Benutzeravatar
universam
Posting Freak
Posting Freak
Beiträge: 518
Registriert: Dienstag 20. September 2016, 16:43
Wohnort: Selters
Kontaktdaten:

Re: iSpindel - lokaler Server (erste Überlegungen)

#127

Beitrag von universam »

Tolle Arbeit Stephan,

gefällt mir, schön schlank und auf's wichtigste orientiert! :thumbup
iSpindel - die DIY elektronische Spindel
Brauhelferlein - die mini Brausteuerung
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#128

Beitrag von Tozzi »

Es fehlt nicht mehr viel... :Greets
Erstes Diagramm
Erstes Diagramm
Zeitrahmen (hier 12 Stunden) und Spindelname werden über die URL im Browser aufgerufen, kann man also Lesezeichen draus machen. :Smile
Der Code ist immer noch simpelst, man kann sich da drin austoben, wenn man entsprechend veranlagt ist... :Wink
Ich bastel noch ein wenig dran rum.
Batterieanzeige muss noch rein, und das Polynom für die %w/w (˚P)...
Und dann noch eine Index Seite, von wo aus man alles im Blick hat, und die man mittels Raspi Touch Display mit dem Finger steuern kann.
Viele Grüße aus Fasano
Stephan
Benutzeravatar
flensdorfer
Posting Freak
Posting Freak
Beiträge: 694
Registriert: Freitag 5. Februar 2016, 09:26
Wohnort: Flensburg

Re: iSpindel - lokaler Server (erste Überlegungen)

#129

Beitrag von flensdorfer »

Geil Geil Geil :)
Gruß, Arne

Anfänger in der 20l-Klasse
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#130

Beitrag von Tozzi »

Die Diagrammgröße passt sich jetzt dem Browser Fenster an und füllt es aus.
Die beiden Y-Achsen passen jetzt entkoppelt zu den Graphen.
Ich glaub, mir taugt das jetzt so, erst mal.

Jetzt noch eine mit Polynom kalibrierte ˚P Version, und eine Statusseite mit Batteriezustand und aktuellen Messwerten, dann kann man da schon mal was anfangen damit.
Für alles, was halt noch nicht geht, kann man ja weiterhin einfach auf Ubidots nachschauen.
Aktueller Stand
Aktueller Stand
Meinen Zwischenstand werd ich dann recht bald mal hochladen, ein paar Kleinigkeiten fehlen noch.
Die Diagramme basieren auf Highcharts, damit kann man sehr viele schöne Sachen machen.
Viele Grüße aus Fasano
Stephan
Benutzeravatar
flensdorfer
Posting Freak
Posting Freak
Beiträge: 694
Registriert: Freitag 5. Februar 2016, 09:26
Wohnort: Flensburg

Re: iSpindel - lokaler Server (erste Überlegungen)

#131

Beitrag von flensdorfer »

Das schaut so verdammt genial aus, Stephan! Wahnsinn - kanns es kaum abwarten, den Raspi damit in Betrieb zu nehmen und den nächsten Sud anzusetzen :)
Gruß, Arne

Anfänger in der 20l-Klasse
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#132

Beitrag von Tozzi »

Freut mich! :Greets
Und so geht's weiter...die aktuell ausgelesenen Werte...
Aktuelle Werte
Aktuelle Werte
Die gelb/rot Bereiche werden konfigurierbar, zusammen mit dem Polynom.
Ist dann der nächste Schritt. Momentan ist alles noch am Winkel festgemacht.
Aber das ist jetzt keine große Aktion mehr....

Wer sich das schon mal anschauen mag:
https://github.com/DottoreTozzi/iSpinde ... ic-TCP/web

Über's Wochenende werde ich noch die Kalibrierungs Polynome einbauen, eine kleine Doku dazu schreiben, hier und da was optimieren, und dann Sam bitten, das in sein Repo zu übernehmen.
Schön langsam wird das was...
Viele Grüße aus Fasano
Stephan
Benutzeravatar
glassart
Posting Freak
Posting Freak
Beiträge: 1703
Registriert: Mittwoch 1. Juli 2015, 11:50
Wohnort: Gunskirchen OÖ

Re: iSpindel - lokaler Server (erste Überlegungen)

#133

Beitrag von glassart »

Stephan ,super Arbeit kann ich da nur sagen - in Bälde wird der Raspberry hochgefahren :thumbsup

Freue mich schon dann damit zu arbeiten :Greets

Vg Herbert :Drink

Ich denke du hast dir auch (so wie Sam und andere) eine ordentliche Bierspende verdient nach den vielen Nachtstunden die du damit verbracht hast :Pulpfiction
Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4768
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: Fasano (BR) - Puglia - IT

Re: iSpindel - lokaler Server (erste Überlegungen)

#134

Beitrag von Tozzi »

glassart hat geschrieben: eine ordentliche Bierspende verdient
Hätte ich zumindest nichts dagegen... :Drink
Aber ich würde mich schon freuen, wenn es dem einen oder anderen weiterhilft.

Was meine Lösung betrifft, geht's dann ab jetzt hier weiter:
viewtopic.php?f=58&t=12869
Viele Grüße aus Fasano
Stephan
Antworten