iSpindel - Lokaler Server - iSpindle.py

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#751

Beitrag von mrhyde » Mittwoch 13. Mai 2020, 17:22

panpat hat geschrieben:
Dienstag 12. Mai 2020, 23:01
@mrhyde: krieg ich das als absoluter Programmier-Nobody hin deine neuen Funktionen und GUI auf meinen raspby zu spielen?
Ich hab schon mit der Version vo tozzi geübt. Schlussendlich hat mir ja JackFrost geholfen.
War ein steiniger Weg...
Ich würde erst einmal warten. Ich habe derziet keine Raspberry und kann somit leider nicht helfen. Mellow hatte auch versucht das zu installieren und hat gerade noch Probleme, bei denen ich leider auch noicht helfen kann. Aber wie kann der Pfad zum Ablegen des CSV files in den Settings über das Webinterface angepasst werden.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Benutzeravatar
McMelloW
Posting Junior
Posting Junior
Beiträge: 60
Registriert: Montag 30. Dezember 2019, 20:36
Wohnort: Harderwijk, Nederland

Re: iSpindel - Lokaler Server - iSpindle.py

#752

Beitrag von McMelloW » Donnerstag 14. Mai 2020, 12:24

Hello all,

RPi 3B+ and Buster. Anybody know how to make iSpindle.py3 run as a service? See my previous posting, is does not work any more?

All tips & Tricks re welcome
Regards McMelloW

Benutzeravatar
Tozzi
Moderator
Moderator
Beiträge: 4726
Registriert: Montag 22. Februar 2016, 23:17
Wohnort: München

Re: iSpindel - Lokaler Server - iSpindle.py

#753

Beitrag von Tozzi » Freitag 15. Mai 2020, 21:45

There is an example systemd config file called ispindle-srv.service.
Of course you'll need to edit User and ExecStart to reflect your system. So User will usually be pi, ExecStart should be /usr/bin/python [path to iSpindle.py].
You should then be able to enable it with systemctl enable and invoke it with systemctl start.
I have not tried this myself (yet) but it should work.
Viele Grüße aus Selva di Fasano
Stephan

Benutzeravatar
McMelloW
Posting Junior
Posting Junior
Beiträge: 60
Registriert: Montag 30. Dezember 2019, 20:36
Wohnort: Harderwijk, Nederland

Re: iSpindel - Lokaler Server - iSpindle.py

#754

Beitrag von McMelloW » Freitag 15. Mai 2020, 22:46

Hello Stephan,

Thanks for your help
Tozzi hat geschrieben:
Freitag 15. Mai 2020, 21:45
There is an example systemd config file called ispindle-srv.service.
Of course you'll need to edit User and ExecStart to reflect your system. So User will usually be pi, ExecStart should be /usr/bin/python [path to iSpindle.py].
You should then be able to enable it with systemctl enable and invoke it with systemctl start.
I have not tried this myself (yet) but it should work.
I have changed the ispindle-srv.service file to my needs to a python3 version of iSpindle.py of Alex. It all works OK now
This is the final solution

Code: Alles auswählen

# This is an example systemd configuration file for using in an systemd environment
# its was written for the archlinux-arm os
# modify User and ExecStart for your needs

[Unit]
Description=iSpindle-genericTCP server and relay
After=multi-user.target

[Service]
Type=simple
User=pi
ExecStart=/usr/bin/python3 /usr/local/bin/iSpindle.py
Restart=always
TimeoutStartSec=10
RestartSec=10

[Install]
WantedBy=multi-user.target

Code: Alles auswählen

1 Copy your ispindle-srv.service to /etc/systemd/system
2 sudo chmod +x etc/systemd/system/ispindle-srv.service
3 sudo systemctl enable ispindle-srv.service
4 sudo systemctl start ispindle-srv.service
Regards McMelloW

Benutzeravatar
panpat
Posting Junior
Posting Junior
Beiträge: 36
Registriert: Samstag 7. März 2020, 13:55
Wohnort: Spreitenbach
Kontaktdaten:

Re: iSpindel - Lokaler Server - iSpindle.py

#755

Beitrag von panpat » Sonntag 17. Mai 2020, 20:37

Hallo Zusammen,
ich brauche mal wieder eure Hilfe. Es hat sich gezeigt, dass die Kingston SD Karte Müll ist.
Nun habe ich das ganze mit einer neuen SD aufgesetzt.
Mit meinen Asbach Uralt Rechner mit Ubuntu kann ich die alte Müll SD noch lesen.
Wo befinden sich meine Daten? Einstellungen etc. damit ich nicht wieder alle vie Spindeln anlernen muss.
Auch die letzten Messungen würde ich gerne rüberkopieren
Wer kein Bier hat, hat nichts zu trinken. Martin Luther

JackFrost
HBCon Supporter
HBCon Supporter
Beiträge: 2021
Registriert: Dienstag 15. Mai 2018, 18:10

Re: iSpindel - Lokaler Server - iSpindle.py

#756

Beitrag von JackFrost » Sonntag 17. Mai 2020, 21:21

panpat hat geschrieben:
Sonntag 17. Mai 2020, 20:37
Hallo Zusammen,
ich brauche mal wieder eure Hilfe. Es hat sich gezeigt, dass die Kingston SD Karte Müll ist.
Nun habe ich das ganze mit einer neuen SD aufgesetzt.
Mit meinen Asbach Uralt Rechner mit Ubuntu kann ich die alte Müll SD noch lesen.
Wo befinden sich meine Daten? Einstellungen etc. damit ich nicht wieder alle vie Spindeln anlernen muss.
Auch die letzten Messungen würde ich gerne rüberkopieren
DIe Mysqldatein für die Datenbank sollten unter
/var/lib/mysql liegen

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte

Benutzeravatar
panpat
Posting Junior
Posting Junior
Beiträge: 36
Registriert: Samstag 7. März 2020, 13:55
Wohnort: Spreitenbach
Kontaktdaten:

Re: iSpindel - Lokaler Server - iSpindle.py

#757

Beitrag von panpat » Montag 18. Mai 2020, 18:29

Danke für den Tipp, leider sagt mir ubuntu dass ich keine Berechtigung habe und somit auch nicht kopieren kann.
Wie gesagt, linux ist für mich ein Buch mit 7 Siegeln. Das letzte mal in einer Shell Befehle eingeben, war vor dem Umstig zu Win 3.11 :Shocked
Wer kein Bier hat, hat nichts zu trinken. Martin Luther

ak59
Posting Freak
Posting Freak
Beiträge: 519
Registriert: Sonntag 20. Oktober 2019, 12:36
Wohnort: Emskirchen

Re: iSpindel - Lokaler Server - iSpindle.py

#758

Beitrag von ak59 » Montag 18. Mai 2020, 19:00

Hi,

hast Du mal ein “ls -al /var/lib/mysql“ probiert (falls die Daten dort liegen)? Wenn Du mit dem Account keine Berechtigung hast vielleicht am Anfang noch mit einem “sudo ls ...”? Evtl. wirst Du nochmal nach Deinem Passwort gefragt. Wenn das nicht klappt, brauchst Du evtl. das Root-Passwort. Dann z.B. “su”, gefolgt von dem Passwort. Wenn das auch nicht klappt mags schwieriger werden.

Gruß,

Andreas

Benutzeravatar
VolT Bräu
HBCon Supporter
HBCon Supporter
Beiträge: 1017
Registriert: Montag 25. Juni 2018, 23:43

Re: iSpindel - Lokaler Server - iSpindle.py

#759

Beitrag von VolT Bräu » Dienstag 23. Juni 2020, 23:31

Mal eine ganz dumme Frage...
Ist es sehr kompliziert das auf einem Linux Rechner (testweise) ans laufen zu bringen?
Ich möchte eigentlich nur die Import Funktion des kleinen Brauhelfers testen und benutze sonst Ubidots.
Ich habe noch ein altes Laptop mit Ubuntu 12.04 drauf.
Jetzt mal Bier bei die Fische!

JackFrost
HBCon Supporter
HBCon Supporter
Beiträge: 2021
Registriert: Dienstag 15. Mai 2018, 18:10

Re: iSpindel - Lokaler Server - iSpindle.py

#760

Beitrag von JackFrost » Mittwoch 24. Juni 2020, 05:15

Ich hab den auf Gentoo Linux Systemen drauf.

Du brauchst eine MySQL Datenbank, Python 3.6.x für die letze Version von MrHyde und Apache 2 mit PHP.

Alles ins Home clonen und einen Symlink auf das Web Verzeichnis zu dem Ordner wo die Webseiten des Apache 2 liegen.

Die fehlenden Python Pakete installieren. Bein starten meckert der Server wenn welche fehlen.

Gtuß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#761

Beitrag von mrhyde » Mittwoch 24. Juni 2020, 07:18

JackFrost hat geschrieben:
Mittwoch 24. Juni 2020, 05:15
Du brauchst eine MySQL Datenbank, Python 3.6.x für die letze Version von MrHyde und Apache 2 mit PHP.
Wichtig ist noch, dass mysql oder mariadb einen recht aktuellen Stand haben, damit alle Funktionen laufen. Ich habe es unter Ubuntu laufen. Aber auch auf Debian habe ich es getestet. Bei mir läuft das halt alles in Containern auf meiner NAS und so kann ich auch Systeme parallel mal testen.
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Benutzeravatar
VolT Bräu
HBCon Supporter
HBCon Supporter
Beiträge: 1017
Registriert: Montag 25. Juni 2018, 23:43

Re: iSpindel - Lokaler Server - iSpindle.py

#762

Beitrag von VolT Bräu » Donnerstag 25. Juni 2020, 22:38

Danke für die Tipps. Habe es versucht, aber ich habe allerhand Probleme. Die Anleitung scheint auch nicht so ganz aktuell zu sein. Manches konnte ich lösen, aber ich bekomme den Service nicht installiert und gestartet. Bis zu den Python Paketen bin ich gar nicht gekommen.
Leider kann ich jetzt auch nicht mehr genau sagen was ich alles gemacht habe... Muss ich wohl noch ein Mal von vorne starten.
Falls jemand mit laufendem Server Lust hat die Import Funktion des KBH zu testen, meldet euch. Am besten bei Frédéric.. . Er kann euch die Entwicklungsversion schicken. Das ist sehr einfach... Nur wenn die Verbindung zur Datenbank oder irgendwas nicht klappt, dann wird es spannend. Ich wollte das eigentlich testen, aber ich wusste nicht, dass der Import auf dem Server basiert und wie kompliziert das ist den aufzusetzen.
Jetzt mal Bier bei die Fische!

JackFrost
HBCon Supporter
HBCon Supporter
Beiträge: 2021
Registriert: Dienstag 15. Mai 2018, 18:10

Re: iSpindel - Lokaler Server - iSpindle.py

#763

Beitrag von JackFrost » Freitag 26. Juni 2020, 05:10

Du kannst den Server mit der Hand starten. In das Verzeichnis gehen und dann mit

Code: Alles auswählen

python iSpindle
den Server direkt starten.

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte

Benutzeravatar
VolT Bräu
HBCon Supporter
HBCon Supporter
Beiträge: 1017
Registriert: Montag 25. Juni 2018, 23:43

Re: iSpindel - Lokaler Server - iSpindle.py

#764

Beitrag von VolT Bräu » Donnerstag 9. Juli 2020, 20:13

JackFrost hat geschrieben:
Freitag 26. Juni 2020, 05:10
Du kannst den Server mit der Hand starten. In das Verzeichnis gehen und dann mit

Code: Alles auswählen

python iSpindle
den Server direkt starten.
Danke für den Support!
Fehlermeldung:

Code: Alles auswählen

File "iSpindle.py", line 68, in <module>
	import _thread
ImportError: No module named _thread
Jetzt mal Bier bei die Fische!

JackFrost
HBCon Supporter
HBCon Supporter
Beiträge: 2021
Registriert: Dienstag 15. Mai 2018, 18:10

Re: iSpindel - Lokaler Server - iSpindle.py

#765

Beitrag von JackFrost » Donnerstag 9. Juli 2020, 21:39

Welche Version hast du ?
Die aktuelle von MrHyde setzt Python 3.6.x voraus.
Hier wurde unter anderem am Thread modul was geändert.

Du kannst es mal mit

Code: Alles auswählen

python3 iSpindle
probieren wenn es dann läuft, kannst du mit der Anleitung die default Version von Python auf eine 3.x legen

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte

Turbotroll
Neuling
Neuling
Beiträge: 2
Registriert: Samstag 21. November 2020, 23:43

Re: iSpindel - Lokaler Server - iSpindle.py

#766

Beitrag von Turbotroll » Sonntag 22. November 2020, 10:10

Hallo liebe Hobbybrauergemeinde,

wie ihr seht, bin ich brandneu im Forum angemeldet. Ich brächte mal euere Unterstützung, daher bitte etwas Nachsicht mit mir, falls ich Fragen stelle, die schon irgendwo im Forum beantwortet sind. Ich finde nur halt gerade keine Antwort im Forum, bzw. verliere in der Vielzahl der Antworten den Überblick.

Ich habe folgende Brauautomation am Laufen:
- iSpindel mit Firmware 6.3.1 lauffähig mit Ubidots
- Raspberry Pi mit der Brausteuerung von ZABOBIER (www.zabobier.de)

Ich möchte jetzt auf einer neuen SD-Karte mir mal den TCP-Server für die iSpindle aufsetzten. Dazu habe ich eine Raspberry Pi SD-Karte mit dem aktuellen Betriebssystem (Buster) aufgesetzt. Eine MariaDB, PHPMYAdmin, Apache2 installiert und am Laufen.

Jetzt suche ich gerade die aktuellen Sourcen für den TCP-Server (iSpindle.py). Hat da jemand einen Link für mich oder gerne auch ein aktuelle HOWTO, damit ich den TCP-Server ans laufen bekommen?
Ich finde zwar immer wieder was im Forum. Das ist aber scheinbar älteren Datums und passt dann wieder nicht zu meiner vorbereiteten SD-Karte.

Ich danke euch!!!!

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#767

Beitrag von mrhyde » Sonntag 22. November 2020, 13:46

Turbotroll hat geschrieben:
Sonntag 22. November 2020, 10:10
Jetzt suche ich gerade die aktuellen Sourcen für den TCP-Server (iSpindle.py). Hat da jemand einen Link für mich oder gerne auch ein aktuelle HOWTO, damit ich den TCP-Server ans laufen bekommen?
Ich finde zwar immer wieder was im Forum. Das ist aber scheinbar älteren Datums und passt dann wieder nicht zu meiner vorbereiteten SD-Karte.

Ich danke euch!!!!
Hallo,

ich habe gerade heute die Installationsanleitungen in meinem Repo aktualisiert:

https://github.com/avollkopf/iSpindel-TCP-Server

Da prinzipiell die Datenbank bei dir bereits installiert zu sein scheint, kannst du dir die entsprechenden Schritte sparen.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Benutzeravatar
ralfsteck
Posting Junior
Posting Junior
Beiträge: 90
Registriert: Mittwoch 20. März 2019, 09:50

Re: iSpindel - Lokaler Server - iSpindle.py

#768

Beitrag von ralfsteck » Sonntag 22. November 2020, 16:17

mrhyde hat geschrieben:
Sonntag 22. November 2020, 13:46

ich habe gerade heute die Installationsanleitungen in meinem Repo aktualisiert:

https://github.com/avollkopf/iSpindel-TCP-Server
Hallo Alex, in dem Zusammenhang die Frage, wie ich die Version meiner aktuellen iSpindel.py rausbekomme :-)
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

JackFrost
HBCon Supporter
HBCon Supporter
Beiträge: 2021
Registriert: Dienstag 15. Mai 2018, 18:10

Re: iSpindel - Lokaler Server - iSpindle.py

#769

Beitrag von JackFrost » Sonntag 22. November 2020, 16:19

Mit nano oder cat die Datei anschauen, die Version steht oben im Kopf.

Also :

Code: Alles auswählen

nano -w iSpindel.py
oder

Code: Alles auswählen

cat iSpindel.py
Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte

Benutzeravatar
ralfsteck
Posting Junior
Posting Junior
Beiträge: 90
Registriert: Mittwoch 20. März 2019, 09:50

Re: iSpindel - Lokaler Server - iSpindle.py

#770

Beitrag von ralfsteck » Sonntag 22. November 2020, 16:20

Danke!
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

JackFrost
HBCon Supporter
HBCon Supporter
Beiträge: 2021
Registriert: Dienstag 15. Mai 2018, 18:10

Re: iSpindel - Lokaler Server - iSpindle.py

#771

Beitrag von JackFrost » Sonntag 22. November 2020, 16:21

ralfsteck hat geschrieben:
Sonntag 22. November 2020, 16:20
Danke!
Die Datei müsste ja in

Code: Alles auswählen

/usr/local/bin 
liegen

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte

Turbotroll
Neuling
Neuling
Beiträge: 2
Registriert: Samstag 21. November 2020, 23:43

Re: iSpindel - Lokaler Server - iSpindle.py

#772

Beitrag von Turbotroll » Montag 23. November 2020, 14:49

mrhyde hat geschrieben:
Sonntag 22. November 2020, 13:46
Turbotroll hat geschrieben:
Sonntag 22. November 2020, 10:10
Jetzt suche ich gerade die aktuellen Sourcen für den TCP-Server (iSpindle.py). Hat da jemand einen Link für mich oder gerne auch ein aktuelle HOWTO, damit ich den TCP-Server ans laufen bekommen?
Ich finde zwar immer wieder was im Forum. Das ist aber scheinbar älteren Datums und passt dann wieder nicht zu meiner vorbereiteten SD-Karte.

Ich danke euch!!!!
Hallo,

ich habe gerade heute die Installationsanleitungen in meinem Repo aktualisiert:

https://github.com/avollkopf/iSpindel-TCP-Server

Da prinzipiell die Datenbank bei dir bereits installiert zu sein scheint, kannst du dir die entsprechenden Schritte sparen.

Gruß,
Alex
Hallo MrHyde,
danke dir. Ich bin jetzt gut weiter gekommen.
Ich kann jetzt das SETUP-Starten. Bekomme aber jetzt noch diese 3 Fehlermeldungen:

Warning: include_once(../config/common_db_config.php): failed to open stream: No such file or directory in /home/pi/iSpindel-Srv/web/setup.php on line 29

Warning: include_once(): Failed opening '../config/common_db_config.php' for inclusion (include_path='.:/usr/share/php') in /home/pi/iSpindel-Srv/web/setup.php on line 29

Warning: mysqli_connect(): (HY000/1049): Unknown database 'iSpindle' in /home/pi/iSpindel-Srv/config/common_db_default.php on line 11

Hast du noch einen Tipp, was ich jetzt tun muss?

Danke sehr!!!

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#773

Beitrag von mrhyde » Montag 23. November 2020, 16:39

Turbotroll hat geschrieben:
Montag 23. November 2020, 14:49
Hallo MrHyde,
danke dir. Ich bin jetzt gut weiter gekommen.
Ich kann jetzt das SETUP-Starten. Bekomme aber jetzt noch diese 3 Fehlermeldungen:

Warning: include_once(../config/common_db_config.php): failed to open stream: No such file or directory in /home/pi/iSpindel-Srv/web/setup.php on line 29

Warning: include_once(): Failed opening '../config/common_db_config.php' for inclusion (include_path='.:/usr/share/php') in /home/pi/iSpindel-Srv/web/setup.php on line 29

Warning: mysqli_connect(): (HY000/1049): Unknown database 'iSpindle' in /home/pi/iSpindel-Srv/config/common_db_default.php on line 11

Hast du noch einen Tipp, was ich jetzt tun muss?

Danke sehr!!!
Idealerweise ignorieren. Diese Meldungen kommen, weil derzeit noch die Anzeige aller Meldungen aktiviert ist. Einfach mal weitermachen, wie beschrieben und mit dem entsprehenden Root Passwort deiner Datenbank die Datenbank fiür die SPindel erstellen lassen.

Das sollte eigentlich dann klappen.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

hobipivo
Posting Junior
Posting Junior
Beiträge: 63
Registriert: Dienstag 5. November 2019, 17:37
Wohnort: Ludmannsdorf (Kärnten)

Re: iSpindel - Lokaler Server - iSpindle.py

#774

Beitrag von hobipivo » Dienstag 1. Dezember 2020, 21:15

Hallo MrHyde,

ich nutze noch das RasPySpindel Server Image Version 2.0 für die Erfassung und Anzeige der iSpindel Daten.
Da ich für die Gärung die "Grainfather Conical Fermenter Pro" verwende, ist es mit der "Grainfather Connect Mobile App" möglich, den Temperaturverlauf zu verfolgen und den Soll-Wert einzustellen. Mit der "Grainfather Connect Mobile App" ist es auch möglich iSpindeln einzubinden. Die App ist kostenlos und kann mehrere Devices (iSpindeln) verwalten.

Konfiguration für direkte Einbindung der iSpindel:

Code: Alles auswählen

Service Type:    HTTP
Server Address:	 community.grainfather.com
Port:            80
Server URL:	 /iot/aaa-bbb/ispindel
Update intervall: 900
Token: 		 leer
Die Server-URL wird für jede iSpindel individuell (nach Erstellung in der App ersichtlich) eingetragen.

Für die Weiterleitung von zwei iSpindel-Daten am RasPySpindel-Server nutze ich aktuell noch die Fermentrack Datenbankfelder.

Die Gesamtlösung für die Weiterleitung von vier iSpindel-Daten könnte so aussehen:

Einträge unter iSpindel.py:

Code: Alles auswählen

# GrainfatherConnect
GRAINCONNECT =  int(get_config_from_sql('GRAINCONNECT', 'ENABLE_ GRAINCONNECT'))
GC_ISPINDELNAME_1 = get_config_from_sql('GRAINCONNECT', 'GC_ISPINDELNAME_1')
GC_ISPINDELNAME_2 = get_config_from_sql('GRAINCONNECT', 'GC_ISPINDELNAME_2')
GC_ISPINDELNAME_3 = get_config_from_sql('GRAINCONNECT', 'GC_ISPINDELNAME_3')
GC_ISPINDELNAME_4 = get_config_from_sql('GRAINCONNECT', 'GC_ISPINDELNAME_4')
GC_URL_1 = get_config_from_sql('GRAINCONNECT', 'GRAINCONNECT_URL_1')
GC_URL_2 = get_config_from_sql('GRAINCONNECT', 'GRAINCONNECT_URL_2')
GC_URL_3 = get_config_from_sql('GRAINCONNECT', 'GRAINCONNECT_URL_3')
GC_URL_4 = get_config_from_sql('GRAINCONNECT', 'GRAINCONNECT_URL_4')

if GRAINCONNECT:
           try:
               GC_URL = {}
                import urllib2
                if spindle_name == GC_ISPINDELNAME_1:
                    GC_URL = GC_URL_1
                elif spindle_name == GC_ISPINDELNAME_2:
                    GC_URL = GC_URL_2
                elif spindle_name == GC_ISPINDELNAME_3:
                    GC_URL = GC_URL_3
                elif spindle_name == GC_ISPINDELNAME_4:
                    GC_URL = GC_URL_4
                if len (GC_URL) != 0:
                    dbgprint(repr(addr) + ' - forwarding to Grainfather Connect at http://community.grainfather.com:80' + GC_URL)
                    out = inpstr
                    dbgprint(repr(addr) + ' - sending: ' + out)
                    url = 'http://community.grainfather.com:80' + GC_URL
                    dbgprint(repr(addr) + ' to : ' + url)
                    req = urllib2.Request(url)
                    req.add_header('Content-Type', 'application/json')
                    #req.add_header('User-Agent', spindle_name)
                    response = urllib2.urlopen(req, out)
                    dbgprint(repr(addr) + ' - received: ' + response.read())
                else:
                    dbgprint(repr(addr) + ' - forwarding to GC - No usable iSpindel name found: "' + spindle_name + '"')
            except Exception as e:
                dbgprint(repr(addr) + ' - forwarding to Grainfather Connect Error: ' + str(e))[/size]
Einträge unter Settings.sql:

Code: Alles auswählen

[size=85]('GRAINCONNECT', 'ENABLE_GRAINCONNECT', '0', 'Weiterleitung der Daten an Grainfather Connect', 'Forward data to Grainfather Connect'),
('GRAINCONNECT', 'GC_ISPINDELNAME_1', 'iSpindelName', 'Grainfather Connect iSpindel Name_1', 'Grainfather Connect iSpindel Name_1'),
('GRAINCONNECT', 'GC_ISPINDELNAME_2', 'iSpindelName', 'Grainfather Connect iSpindel Name_2', 'Grainfather Connect iSpindel Name_2'),
('GRAINCONNECT', 'GC_ISPINDELNAME_3', 'iSpindelName', 'Grainfather Connect iSpindel Name_3', 'Grainfather Connect iSpindel Name_3'),
('GRAINCONNECT', 'GC_ISPINDELNAME_4', 'iSpindelName', 'Grainfather Connect iSpindel Name_4', 'Grainfather Connect iSpindel Name_4'),
('GRAINCONNECT', 'GRAINCONNECT_URL_1', '/URL', 'Grainfather Connect URL_1', 'Grainfather Connect URL_1'),
('GRAINCONNECT', 'GRAINCONNECT_URL_2', '/URL', 'Grainfather Connect URL_2', 'Grainfather Connect URL_2'),
('GRAINCONNECT', 'GRAINCONNECT_URL_3', '/URL', 'Grainfather Connect URL_3', 'Grainfather Connect URL_3'),
('GRAINCONNECT', 'GRAINCONNECT_URL_4', '/URL', 'Grainfather Connect URL_4', 'Grainfather Connect URL_4'),[/size]
Wäre es möglich, dass diese Weiterleitung im laufenden Projekt integriert wird?

Ich würde dann meinen bestehenden lokalen Server aktualisieren.

Gruß
Christian
Ein Leben ohne Bier ist möglich, aber nicht sinnvoll!

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#775

Beitrag von mrhyde » Mittwoch 2. Dezember 2020, 06:39

hobipivo hat geschrieben:
Dienstag 1. Dezember 2020, 21:15
Hallo MrHyde,

ich nutze noch das RasPySpindel Server Image Version 2.0 für die Erfassung und Anzeige der iSpindel Daten.
Da ich für die Gärung die "Grainfather Conical Fermenter Pro" verwende, ist es mit der "Grainfather Connect Mobile App" möglich, den Temperaturverlauf zu verfolgen und den Soll-Wert einzustellen. Mit der "Grainfather Connect Mobile App" ist es auch möglich iSpindeln einzubinden. Die App ist kostenlos und kann mehrere Devices (iSpindeln) verwalten.

Wäre es möglich, dass diese Weiterleitung im laufenden Projekt integriert wird?

Ich würde dann meinen bestehenden lokalen Server aktualisieren.

Gruß
Christian
Hi Christian,

muss ich mir mal ansehen. Das sit sicherlich möglich. Allerdings wird es ein wenig dauern, bis ich mich damit beschäftigen kann.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#776

Beitrag von mrhyde » Mittwoch 2. Dezember 2020, 20:17

hobipivo hat geschrieben:
Dienstag 1. Dezember 2020, 21:15
Die Gesamtlösung für die Weiterleitung von vier iSpindel-Daten könnte so aussehen:
Da ich bei Grainfather keinen Account habe, kann ich das selber nicht testen. Aber wir müssen hier noch ein paar Details klären.

In meiner aktuellen Version kann man für jede Spindel individuelle Settings definieren.

- Somit kann ich z.B. für Spindel001 definieren, dass ich z.B. an Grainfather connect mit dem Namen Spindel ABC and die URL ABC senden möchte
- Für Spindel002 kann ich definieren, ob ich diese Werte auch an Grainfather senden möchte und dann z.B. den Namen Spindel XYZ mit der URL XYZ definieren.

Somit benötigt man dann z.B. nur diese Ergänzung in den Settings:

('GRAINCONNECT', 'ENABLE_GRAINCONNECT', '0', 'Weiterleitung der Daten an Grainfather Connect', 'Forward data to Grainfather Connect','','_DEFAULT'),
('GRAINCONNECT', 'GC_ISPINDELNAME', 'iSpindelName', 'Grainfather Connect iSpindel Name', 'Grainfather Connect iSpindel Name','','_DEFAULT'),
('GRAINCONNECT', 'GRAINCONNECT_URL', '/URL', 'Grainfather Connect URL', 'Grainfather Connect URL','','_DEFAULT'),

Und man kann sie sich für jede Spindel spezifisch definieren. Dabei ist man auch nicht auf 4 Spindeln limitiert

Sonst würde das System das für jede Spindel 4 mal anlegen. Was keinen Sinn macht.

Ich vermute mal, dass das das Ziel ist. (Hier gibt es noch einen kleinen Haken bei den Settings. --> Es darf hier kein Default Setting geben, sondern nur individuelle Settings für jede Spindel. Aber das sollte auch lösbar sein.)

Ist das in etwa das, was das Ziel ist? Gibt es irgendwo noch eine detailiertere Beschreibung zum Datentransfer zu Grainfather oder muss man sich dann anmelden?

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#777

Beitrag von mrhyde » Mittwoch 2. Dezember 2020, 22:28

ok,

noch eine schnelle Rückmeldung.

Ich habe mich mal auf der Seite angemeldet und eine Spindel angelegt.
Man benötigt mit meiner aktuellen Version nur die URL und sonst nichts. Man kann für jede Spindel die Individuellen Settings anlegen und dann für jede SPindel auch eine URL hinterlegen.

Ich habe aktuell einen Sud am Vergären und der Server leitet die Daten weiter an Grainfather.

Allerdings habe ich es jetzt mal nur in die Python 3 version vom Script eingefügt. Dazu waren ein paar kleinere Änderungen Notwendig. Ich muss mir das ganze noch einmal genuer ansehen und dann aktualisiere ich mein Repo.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

hobipivo
Posting Junior
Posting Junior
Beiträge: 63
Registriert: Dienstag 5. November 2019, 17:37
Wohnort: Ludmannsdorf (Kärnten)

Re: iSpindel - Lokaler Server - iSpindle.py

#778

Beitrag von hobipivo » Mittwoch 2. Dezember 2020, 22:37

mrhyde hat geschrieben:
Mittwoch 2. Dezember 2020, 20:17
In meiner aktuellen Version kann man für jede Spindel individuelle Settings definieren.
Hallo Alex,

wenn in der aktuellen Version zum iSpindel-Namen eine individuelle URL gespeichert werden kann, wäre dies ein gangbarer Weg.

Zum Datentransfer zu Grainfather:
Ich habe im Netz keine Beschreibung dazu gefunden. Bei der im iSpindel.py Script üblichen Variante der Datenweiterleitung

Code: Alles auswählen

		outdata = {
                    'name': spindle_name,
                    'ID': spindle_id,
                    'angle': angle,
                    'temperature': temperature,
                    'battery': battery,
                    'gravity': gravity,
                    'interval': interval,
                    'recipe': recipe,
                }
                out = json.dumps(outdata)

Gesendete Daten: 
{"angle": 32.8428, "name": "iSpindel-2", "battery": 4.151353, "interval": 900, "gravity": 3.90506, "ID": 8298158, "temperature": 20.0625}
Input Daten:
{"name":"iSpindel-2","ID":8298158,"angle":32.8428,"temperature":20.0625,"temp_units":"C","battery":4.151353,"gravity":3.90506,"interval":900,"RSSI":-77}
wurde diese mit "HTTP Error 422: Unprocessable Entity" verworfen.
Mehrere mögliche Ursachen:
a) nicht alle Settings können übertragen werden (temp_units fehlt)
b) unterschiedliche Reihenfolge der abgefragten zu gesendeten Settings
c) Leerräume zwischen den Settings
Ich habe dies nicht weitergetestet, da die Weiterleitung des originalen, kompletten Input-Strings "out = inpstr" funktioniert.
Wenn nichts dagegen spricht, könnte man dies beibehalten.

Gruß
Christian

Edit: Ich war zu langsam beim schreiben, hatte #777 noch nicht gelesen.
Ein Leben ohne Bier ist möglich, aber nicht sinnvoll!

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#779

Beitrag von mrhyde » Donnerstag 3. Dezember 2020, 07:28

hobipivo hat geschrieben:
Mittwoch 2. Dezember 2020, 22:37
wenn in der aktuellen Version zum iSpindel-Namen eine individuelle URL gespeichert werden kann, wäre dies ein gangbarer Weg.
Das sieht dann so aus:
Screenshot 2020-12-03 072044.png
Das kann für jede Spindel an bzw. ausgestellt werden und für jede Spindel muss eine eigene URL eingetragen werden.

Ich muss mir das noch einmal im Detail ansehen. Aber da eine meiner Spindeln gerade in einem Sud liegt, habe ich das mal über Nacht getestet und die Weiterleitung geht ohne Probleme.

Dazu benötige ich aber noch ein paar Tage.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

hobipivo
Posting Junior
Posting Junior
Beiträge: 63
Registriert: Dienstag 5. November 2019, 17:37
Wohnort: Ludmannsdorf (Kärnten)

Re: iSpindel - Lokaler Server - iSpindle.py

#780

Beitrag von hobipivo » Donnerstag 3. Dezember 2020, 08:12

mrhyde hat geschrieben:
Donnerstag 3. Dezember 2020, 07:28
hobipivo hat geschrieben:
Mittwoch 2. Dezember 2020, 22:37
wenn in der aktuellen Version zum iSpindel-Namen eine individuelle URL gespeichert werden kann, wäre dies ein gangbarer Weg.
Das kann für jede Spindel an bzw. ausgestellt werden und für jede Spindel muss eine eigene URL eingetragen werden.
Das sieht ja hervorragend aus.
Es höchste Zeit, dass ich auf den neuesten Versionsstand aktualisiere.
Danke für deine Bemühungen.

Gruß
Christian
Ein Leben ohne Bier ist möglich, aber nicht sinnvoll!

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#781

Beitrag von mrhyde » Donnerstag 3. Dezember 2020, 08:18

hobipivo hat geschrieben:
Donnerstag 3. Dezember 2020, 08:12
Das sieht ja hervorragend aus.
Es höchste Zeit, dass ich auf den neuesten Versionsstand aktualisiere.
Danke für deine Bemühungen.

Gruß
Christian
Die Grainfather Funktionalität ist allerdings noch nicht auf GIThub. Das kommt vermutlich am Wochenende.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Benutzeravatar
ralfsteck
Posting Junior
Posting Junior
Beiträge: 90
Registriert: Mittwoch 20. März 2019, 09:50

Re: iSpindel - Lokaler Server - iSpindle.py

#782

Beitrag von ralfsteck » Donnerstag 3. Dezember 2020, 13:23

JackFrost hat geschrieben:
Sonntag 22. November 2020, 16:21
ralfsteck hat geschrieben:
Sonntag 22. November 2020, 16:20
Danke!
Die Datei müsste ja in

Code: Alles auswählen

/usr/local/bin 
liegen

Gruß JackFrost
Hallo JackFrost,

ich bin auf Version 2 und will nach 3. Dazu finde ich aber keine Upgrade-Infos. Ich bin ja auch noch auf mySQL statt MariaDB, denke ich?!?

oder bügle ich einfach mit Git pull die neue Version drüber? Ich will meine Daten nicht verlieren.
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

Benutzeravatar
ralfsteck
Posting Junior
Posting Junior
Beiträge: 90
Registriert: Mittwoch 20. März 2019, 09:50

Re: iSpindel - Lokaler Server - iSpindle.py

#783

Beitrag von ralfsteck » Dienstag 8. Dezember 2020, 16:49

Hallo zusammen,

ich hab's jetzt mal mit drüberbügeln bzw. Umbenennen von iSpindle-Srv und neu installieren vohn git probiert. Ich bekomme jetzt allerdings die Fehlermeldung "Table 'iSpindle.Archive' doesn't exist" wenn ich die Website aufrufe. Was muss ich ändern, um die Version 3 zum Laufen zu bekommen? Mir fehlt ja offensichtlich eine Tabelle inder Datenbank, ich brauche aber mehr Infos, um die anzulegen. Oder gibt es dafür ein Script?
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#784

Beitrag von mrhyde » Dienstag 8. Dezember 2020, 17:24

ralfsteck hat geschrieben:
Dienstag 8. Dezember 2020, 16:49
Hallo zusammen,

ich hab's jetzt mal mit drüberbügeln bzw. Umbenennen von iSpindle-Srv und neu installieren vohn git probiert. Ich bekomme jetzt allerdings die Fehlermeldung "Table 'iSpindle.Archive' doesn't exist" wenn ich die Website aufrufe. Was muss ich ändern, um die Version 3 zum Laufen zu bekommen? Mir fehlt ja offensichtlich eine Tabelle inder Datenbank, ich brauche aber mehr Infos, um die anzulegen. Oder gibt es dafür ein Script?
Ich habe die Tage auch ein Image für eine Raspberry erstellt. Das könntest du auch mal runterladen. Der link zum Image ist in der README.

Eigentlich sollte das script sonst die Tabelle Archive erstellen und die alten Sude entsprechend in der Tabelle anlegen. Das muss ich mir sonst noch einmal ansehen.

Allerdings würde ich dafür mal einen Export deiner gesamten aktuellen iSpindle Datenbank benötigen, um das zu simulieren.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Benutzeravatar
ralfsteck
Posting Junior
Posting Junior
Beiträge: 90
Registriert: Mittwoch 20. März 2019, 09:50

Re: iSpindel - Lokaler Server - iSpindle.py

#785

Beitrag von ralfsteck » Dienstag 8. Dezember 2020, 17:32

Ist Dir per PN zugegangen.
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

Benutzeravatar
ralfsteck
Posting Junior
Posting Junior
Beiträge: 90
Registriert: Mittwoch 20. März 2019, 09:50

Re: iSpindel - Lokaler Server - iSpindle.py

#786

Beitrag von ralfsteck » Mittwoch 9. Dezember 2020, 12:33

Hallo zusammen,

mir ist es jetzt gelungen, Daten aus der iSpindel bzw. aus RaspPiSpindel 3 in den kleinen Brauhelfer 2 zu exportieren. Das ist etwas mühsam, aber es geht. Mein Vorgehen:

- Export der Daten in der Archivansicht, es entsteht eine txt-Datei.
- Excel starten, über den Öffnen-Dialog diese Datei öffnen.
- Es startet der Text-Importer. Im ersten Schritt angeben, dass die Werte in Zeile 5 starten und dass Überschriften vorhannden sind. Weiter klicken
- Als Trennzeichen "," eingeben, dann erkennt Excel die Spalten. Alle Spalten markieren und auf Formatierung "Text" umstellen. Unter "Erweitert als Dezimaltrennzeichen "." definieren, als Hundertertrenner ",". Fertigstellen klicken.
- Alle Spalten löschen außer Timestamp, Temperature und Calculated Gravity. Dann die beiden letzteren kopieren/Einfügen, dass die Reihenfolge Timestamp, Temperature, Calculated Gravity ist.
- Bei mir sind am Anfang iund Ende immer einige seltsame Werte, diese Zeilen löschen.
- Alles markieren, kopieren und in KBH unter Gärverlauf - Hauptgärung einfügen.
kbh iSpindel_1.jpg
kbh iSpindel.jpg
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#787

Beitrag von mrhyde » Donnerstag 10. Dezember 2020, 06:32

ralfsteck hat geschrieben:
Mittwoch 9. Dezember 2020, 12:33
Hallo zusammen,

mir ist es jetzt gelungen, Daten aus der iSpindel bzw. aus RaspPiSpindel 3 in den kleinen Brauhelfer 2 zu exportieren. Das ist etwas mühsam, aber es geht. Mein Vorgehen:

- Export der Daten in der Archivansicht, es entsteht eine txt-Datei.
- Excel starten, über den Öffnen-Dialog diese Datei öffnen.
Hallo,

ich habe ein passendes Format zum export aus dem Archiv ergänzt. Es wird ein Datenpunkt alle 4 Stunden ins CSV File geschrieben, um die Datenmenge zu begrenzen. Date können dann aus dem Textfile einfach per copy&paste in den kbh2 reinkopiert werden.

Das ist auch bereits im Repo eingepflegt:
Screenshot 2020-12-10 063109.png
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

hobipivo
Posting Junior
Posting Junior
Beiträge: 63
Registriert: Dienstag 5. November 2019, 17:37
Wohnort: Ludmannsdorf (Kärnten)

Re: iSpindel - Lokaler Server - iSpindle.py

#788

Beitrag von hobipivo » Montag 14. Dezember 2020, 10:46

mrhyde hat geschrieben: Ich habe es nun mal geschafft, das System auf meiner Pi4 B von Grund auf zu installieren und ein Image herzustellen.

Ja, ich werde auch noch die Weiterleitung an Grainfather mit auf GITHUB mit hochladen. Das muss ich aber noch einmal testen.
Hallo MrHyde,

nach dem Kauf einer neuen microSDHC Karte habe ich das neue Image (rev2) und die Weiterleitung an „Grainfather Connect“ getestet. Als erstes habe ich die „Samba“ Unterstützung installiert und konfiguriert.

Die Debug Informationen der Weiterleitung an GRAINCONNECT von iSpindle.py laut aktuellem Repo:

Code: Alles auswählen

...connected from: ('192.168.1.3', 49656)
waiting for connection... listening on port: 9501
/usr/local/bin/iSpindle.py:281: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
  timestart = time.clock()
('192.168.1.3', 49656) received:'{'
('192.168.1.3', 49656) Input Str is now:{
('192.168.1.3', 49656) received:'"name":"iSpindel-2","ID":8298158,"angle":41.35387,"temperature":10.75,"temp_units":"C","battery":3.980537,"gravity":7.66524,"interval":900,"RSSI":-66}\r\n'
('192.168.1.3', 49656) Input Str is now:{"name":"iSpindel-2","ID":8298158,"angle":41.35387,"temperature":10.75,"temp_units":"C","battery":3.980537,"gravity":7.66524,"interval":900,"RSSI":-66}
detected iSpindel
('192.168.1.3', 49656) Sent ACK.
/usr/local/bin/iSpindle.py:368: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
  dbgprint(repr(addr) + ' Time elapsed: ' + str(time.clock() - timestart))
('192.168.1.3', 49656) Time elapsed: 0.004756000000000038
('192.168.1.3', 49656) iSpindel-2 (ID:8298158) : Data Transfer OK.
('192.168.1.3', 49656) - closed connection
('192.168.1.3', 49656) Reading last recipe name for corresponding Spindel iSpindel-2
('192.168.1.3', 49656) Recipe Name not found - Database Error: 'NoneType' object is not subscriptable
('192.168.1.3', 49656) Reading last recipe_id value for corresponding Spindel iSpindel-2
Recipe_ID: Done. None
('192.168.1.3', 49656) - writing to database
('192.168.1.3', 49656) - DB data written.
/usr/local/bin/sendmail.py:58: DeprecationWarning: This method will be removed in future versions.  Use 'parser.read_file()' instead.
  config.readfp(f)
('192.168.1.3', 49656) - forwarding to Grainfather Connect at http://community.grainfather.com:80/iot/aaaa-bbbb/ispindel
('192.168.1.3', 49656) - sending: {"name":"iSpindel-2","ID":8298158,"angle":41.35387,"temperature":10.75,"temp_units":"C","battery":3.980537,"gravity":7.66524,"interval":900,"RSSI":-66}
('192.168.1.3', 49656) to : http://community.grainfather.com:80/iot/aaaa-bbbb/ispindel
<class 'ValueError'> sendmail.py 600
Um das Debug ohne Warnungen etwas übersichtlicher zu machen, habe ich folgende Anpassungen durchgeführt:
/usr/local/bin/iSpindle.py in Zeile 281 und 368 „time.clock“ geändert auf „time.monotonic“
/usr/local/bin/sendmail.py in Zeile 58 „config.readfp“ geändert auf „config.read_file“

Den Phyton Code iSpindle.py für die Weiterleitung an “Grainfather Connect“ (GRAINCONNECT) habe ich angepasst und um die Debug-Information für den HTTP Status Code (response) erweitert:

Code: Alles auswählen

      if GRAINCONNECT and gauge == 0:
            try:
                import urllib3
                dbgprint(repr(addr) + ' - forwarding to Grainfather Connect at http://community.grainfather.com:80' + GC_URL)
                out = inpstr
                dbgprint(repr(addr) + ' - sending: ' + out)
                url = 'http://community.grainfather.com:80' + GC_URL
                dbgprint(repr(addr) + ' to : ' + url)
                http = urllib3.PoolManager()
                response = http.request('POST', url, body=out, headers={'Content-Type': 'application/json'})
                dbgprint(repr(addr) + ' - HTTP status code received: ' + str(response.status))
            except Exception as e:
                dbgprint(repr(addr) + ' - forwarding to Grainfather Connect Error: ' + str(e))

Die Debug Informationen der Weiterleitung an GRAINCONNECT nach den Änderungen:

Code: Alles auswählen

waiting for connection... listening on port: 9501
...connected from: ('192.168.1.6', 63766)
waiting for connection... listening on port: 9501
('192.168.1.6', 63766) received:'{'
('192.168.1.6', 63766) Input Str is now:{
('192.168.1.6', 63766) received:'"name":"iSpindel-1","ID":8299101,"angle":33.94013,"temperature":10.75,"temp_units":"C","battery":4.120228,"gravity":5.767748,"interval":900,"RSSI":-76}\r\n'
('192.168.1.6', 63766) Input Str is now:{"name":"iSpindel-1","ID":8299101,"angle":33.94013,"temperature":10.75,"temp_units":"C","battery":4.120228,"gravity":5.767748,"interval":900,"RSSI":-76}
detected iSpindel
('192.168.1.6', 63766) Sent ACK.
('192.168.1.6', 63766) Time elapsed: 0.013087565999740036
('192.168.1.6', 63766) iSpindel-1 (ID:8299101) : Data Transfer OK.
('192.168.1.6', 63766) - closed connection
('192.168.1.6', 63766) Reading last recipe name for corresponding Spindel iSpindel-1
('192.168.1.6', 63766) Recipe Name not found - Database Error: 'NoneType' object is not subscriptable
('192.168.1.6', 63766) Reading last recipe_id value for corresponding Spindel iSpindel-1
Recipe_ID: Done. None
('192.168.1.6', 63766) - writing to database
('192.168.1.6', 63766) - DB data written.
('192.168.1.6', 63766) - forwarding to Grainfather Connect at http://community.grainfather.com:80/iot/aaaa-bbbb/ispindel
('192.168.1.6', 63766) - sending: {"name":"iSpindel-1","ID":8299101,"angle":33.94013,"temperature":10.75,"temp_units":"C","battery":4.120228,"gravity":5.767748,"interval":900,"RSSI":-76}
('192.168.1.6', 63766) to : http://community.grainfather.com:80/iot/aaaa-bbbb/ispindel
<class 'ValueError'> sendmail.py 600
('192.168.1.6', 63766) - HTTP status code received: 201
Die Weiterleitung an "Grainfather Connect" und die "HTTP status code" Antwort funktioniert.

Da ich am RasPI ein 7“ Touchscreen installiert habe, muss ich erst schauen, ob ich das neue Image um die graphische Darstellung erweitere, oder dass „Tozzi“ Image (wo aktuell Daten für die Kalibrierung der iSpindel gesammelt werden) mit dem aktuellen Repo aktualisiere.


Gruß
Christian
Ein Leben ohne Bier ist möglich, aber nicht sinnvoll!

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#789

Beitrag von mrhyde » Montag 14. Dezember 2020, 12:17

hobipivo hat geschrieben:
Montag 14. Dezember 2020, 10:46
Hallo MrHyde,

nach dem Kauf einer neuen microSDHC Karte habe ich das neue Image (rev2) und die Weiterleitung an „Grainfather Connect“ getestet. Als erstes habe ich die „Samba“ Unterstützung installiert und konfiguriert.

Die Debug Informationen der Weiterleitung an GRAINCONNECT von iSpindle.py laut aktuellem Repo

Um das Debug ohne Warnungen etwas übersichtlicher zu machen, habe ich folgende Anpassungen durchgeführt:
/usr/local/bin/iSpindle.py in Zeile 281 und 368 „time.clock“ geändert auf „time.monotonic“
/usr/local/bin/sendmail.py in Zeile 58 „config.readfp“ geändert auf „config.read_file“
Hallo,

danke für die Info. Die Zeitfunktionen werde ich mir alle mal ansehen und entsprechend anpassen.

Ich werde mir auch noch einmal die sendmail.py ansehen, da es dort ja offensichtlich in Zeile 600 auch noch eine Fehlermeldung gibt.

Da bei mir alles gepasst hat, habe ich mir das Debug nicht weiter angesehen. Auch die Statusmeldungen Schaue ich mir an, da diese eigentlich bei allen Weiterleitungen seit der Umstellung auf python3 nicht wirklich aktiv sind.

Ein neues Image kann ich jetzt auch leichter erstellen, da ich mit einer 'Verlängerung' den SD Kartenslot der Pi nun zugänglicher habe. Außerdem habe ich auch noch einen LAN Anschluss nach Außen gelegt, um beim Erstellen des Images nicht auf WLAN angewiesen zu sein.

Allerdings habe ich kein Display. Deswegen kann ich halt nur sinnvoll ein image auf der Raspbian Lite Version erstellen.

EDIT:
Ich habe den code bi mir lokal entsprechend angepasst und auch noch für die meisten anderen weiterleitungen den Status wieder aktiviert. In iSpindle.py ist auch noch ein readfp.

Mein Testsystem läuft ja unter ubuntu in einme Container. Da läuft noch pytho 3.5.2 und die Meldungen bzgl. depracted methods kommen unter 3.5.2 noch nicht.

Ich werde das dmenächst ins repo hochladen.

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Benutzeravatar
panpat
Posting Junior
Posting Junior
Beiträge: 36
Registriert: Samstag 7. März 2020, 13:55
Wohnort: Spreitenbach
Kontaktdaten:

Re: iSpindel - Lokaler Server - iSpindle.py

#790

Beitrag von panpat » Montag 14. Dezember 2020, 20:34

Ich hab mir jetzt mal das Image von Alex geflasht (V3.0) und irgendwie hab ich das GUI nicht hingekriegt.
Im rapso config konnte ich es nicht einstellen.
Also habe ich wieder die Version 2.0 von Tozzi geflasht, das läuft.
Frage: wie kriege ich die neue Version von Alex drauf ohne irgendwelche Image zu flashen?
Wie gesagt ich bin da gar nicht der Crack in diesem Thema.
Muss ich Phyton, Mariadb etc mit dem sudo apt-get Befehl installieren und dann die ispindle.py von Github rüberkopieren resp clonen?
Wer kein Bier hat, hat nichts zu trinken. Martin Luther

Knallex
Posting Junior
Posting Junior
Beiträge: 19
Registriert: Donnerstag 4. Februar 2016, 19:36

Re: iSpindel - Lokaler Server - iSpindle.py

#791

Beitrag von Knallex » Dienstag 15. Dezember 2020, 09:10

Hallo,
dank dem Image von MrHyde habe ich endlich die neueste Version, mit der man die Daten problemlos in den KBH kopieren kann, auf dem Raspi am laufen. Danke nochmal dafür!
Dennoch juckt es mich, den lokalen Server auf meiner Synology NAS mittels Docker zum Laufen zu bekommen. Nach unzähligen Versuchen, komme ich trotz der guten Anleitung (https://github.com/avollkopf/iSpindel-T ... INSTALL.md) von MrHyde einfach nicht weiter, da spätestens bei der Installation/konfiguration von MariaDb die ersten Probleme auftreten.
Falls es jemand geschafft hat, den Server in dem oben genannten setup zum Laufen zu bekommen, wäre es cool wenn du mir hierzu eine PN mit folgenden Infos schicken könntest:
- welches Docker Image wurde verwendet (ubuntu 16.04 oder rastasheep/ubuntu_sshd, o.a.)?
- welche Schritte aus der Anleitung von MrHyde können hier ausgelassen werden?
- waren zusätzliche Schritte notwendig?
- läuft alles (iSpindle Server & Datenbank) in einem Container, oder wurde das auf 2 Container verteilt. Falls letzteres, wie wurde das konfiguriert?

Vielen Dank schonmal & Gruß
Alex

mrhyde
Posting Klettermax
Posting Klettermax
Beiträge: 211
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel - Lokaler Server - iSpindle.py

#792

Beitrag von mrhyde » Dienstag 15. Dezember 2020, 17:37

Knallex hat geschrieben:
Dienstag 15. Dezember 2020, 09:10
Hallo,
dank dem Image von MrHyde habe ich endlich die neueste Version, mit der man die Daten problemlos in den KBH kopieren kann, auf dem Raspi am laufen. Danke nochmal dafür!
Dennoch juckt es mich, den lokalen Server auf meiner Synology NAS mittels Docker zum Laufen zu bekommen. Nach unzähligen Versuchen, komme ich trotz der guten Anleitung (https://github.com/avollkopf/iSpindel-T ... INSTALL.md) von MrHyde einfach nicht weiter, da spätestens bei der Installation/konfiguration von MariaDb die ersten Probleme auftreten.
Falls es jemand geschafft hat, den Server in dem oben genannten setup zum Laufen zu bekommen, wäre es cool wenn du mir hierzu eine PN mit folgenden Infos schicken könntest:
- welches Docker Image wurde verwendet (ubuntu 16.04 oder rastasheep/ubuntu_sshd, o.a.)?
- welche Schritte aus der Anleitung von MrHyde können hier ausgelassen werden?
- waren zusätzliche Schritte notwendig?
- läuft alles (iSpindle Server & Datenbank) in einem Container, oder wurde das auf 2 Container verteilt. Falls letzteres, wie wurde das konfiguriert?

Vielen Dank schonmal & Gruß
Alex
Was treten denn für Probleme auf? Wie schon gesagt, kenne ich mich mit der Synology nicht aus. Bei meiner QNAP butze ich in der Tat die SQL Datenbank der QNAP und keine zweite im Container. Das funktioniert auch. Du musst halt die Datenbank so konfigurieren, bzw. die User, dass sie nicht nur vom localhost zugreifen können, sondern auch vom Container. Das könntest du bei hostname erst einmal mit einem % statt mit localhost testen.

Aber das hängt auch immer davon ab, wie du den Container erstellst. Bei QNAP gibt es da eben auch verschiedene Möglichkeiten (Bridge oder NAT).
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/avollkopf

Knallex
Posting Junior
Posting Junior
Beiträge: 19
Registriert: Donnerstag 4. Februar 2016, 19:36

Re: iSpindel - Lokaler Server - iSpindle.py

#793

Beitrag von Knallex » Mittwoch 16. Dezember 2020, 09:21

Mein bisheriges Vorgehen war wie folgt:
  • Docker image laden, hier konkret rastasheep/ubuntu_sshd in der Version 16.04
  • Container im Bridge Modus starten, wobei ich den externen Port 82 auf den container Port 80 mappe. Den ssh Port biege ich auch noch um
  • Via ssh verbinden und "sudo" sowie "locales" installieren, da diese in dem Image nicht enthalten sind
  • Dann führe ich 1:1 die Schritte aus, die du in deiner Anleitung beschreibst. Sprich, mein Ziel ist es, alles in dem Container zu haben was für den kompletten lokalen Server benötigt wird - also auch die Datenbank.
  • Dann kommt es beim Ausführen von von "mysql_secure_installation" zu dem folgenden Fehler

    Code: Alles auswählen

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
    Nach einigem Suchen im Netz, hat das Starten von Apache und mariadb in einer anderen Reihenfolge Abhilfe geschaffen

    Code: Alles auswählen

    sudo service apache2 stop
    sudo service mariadb stop 
    sudo service mariadb start
    sudo service apache2 start
  • Nachdem ich deine Anleitung komplett durch habe, starte ich den Server manuell

    Code: Alles auswählen

    python3 /usr/local/bin/iSpindle.py
    und bekomme den folgenden Fehler

    Code: Alles auswählen

    Traceback (most recent call last):
      File "/usr/lib/python3.5/configparser.py", line 1135, in _unify_values
        sectiondict = self._sections[section]
    KeyError: 'GENERAL'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/bin/iSpindle.py", line 91, in <module>
        DEBUG = config.get('GENERAL', 'DEBUG') # Set to 1 to enable debug output on console (usually devs only)
      File "/usr/lib/python3.5/configparser.py", line 778, in get
        d = self._unify_values(section, vars)
      File "/usr/lib/python3.5/configparser.py", line 1138, in _unify_values
        raise NoSectionError(section)
    configparser.NoSectionError: No section: 'GENERAL'
    • Daher habe ich wie von dir bereits angemerkt, die Datei "iSpindle_config.ini" mit dem gleichen Inhalt wie in deinem Image manuell erstellt. Ein erneutes Starten des Servers bringt nun den Fehler "ConnectionRefusedError: [Errno 111]"
      Ich gehe mal davon aus, das ich bei der Konfiguration von der Datenbank etwas falsch gemacht hab ....

    mrhyde
    Posting Klettermax
    Posting Klettermax
    Beiträge: 211
    Registriert: Mittwoch 7. Juni 2017, 14:16

    Re: iSpindel - Lokaler Server - iSpindle.py

    #794

    Beitrag von mrhyde » Mittwoch 16. Dezember 2020, 15:28

    Knallex hat geschrieben:
    Mittwoch 16. Dezember 2020, 09:21
    Mein bisheriges Vorgehen war wie folgt:
    • Docker image laden, hier konkret rastasheep/ubuntu_sshd in der Version 16.04
    • Container im Bridge Modus starten, wobei ich den externen Port 82 auf den container Port 80 mappe. Den ssh Port biege ich auch noch um
    • Via ssh verbinden und "sudo" sowie "locales" installieren, da diese in dem Image nicht enthalten sind
    • Dann führe ich 1:1 die Schritte aus, die du in deiner Anleitung beschreibst. Sprich, mein Ziel ist es, alles in dem Container zu haben was für den kompletten lokalen Server benötigt wird - also auch die Datenbank.
    • Dann kommt es beim Ausführen von von "mysql_secure_installation" zu dem folgenden Fehler

      Code: Alles auswählen

      ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
      Nach einigem Suchen im Netz, hat das Starten von Apache und mariadb in einer anderen Reihenfolge Abhilfe geschaffen

      Ein erneutes Starten des Servers bringt nun den Fehler "ConnectionRefusedError: [Errno 111]"
      Ich gehe mal davon aus, das ich bei der Konfiguration von der Datenbank etwas falsch gemacht hab ...
    Kann es sein, dass im Image bereits eine Datenbank enthalten ist?

    Falls nicht, sieht es für mich danach aus, als ob aus dem Container auch auf die Datenbank der Synology zugegriffen werden kann, die vermutlich auf dem selben Port läuft.

    Hast du auch phpmyadmin im Container laufen? Falls ja, kann phpmyadmin auf die Datenbnak des Containers zugreifen?

    GGf mal die Datenbank im Cotnainer so konfigurieren, dass sie auf port 3308 statt auf dem üblichen port 3306 läuft.

    Wenn sichergestellt ist, dass das funktioniert, dann können wir mal der python Thematik nachgehen. Wie hast du die files rüberkopiert? Könnte es sein, dass da Windows im SPiel war und andere Zeilenumbrüche reingebracht hat?

    Gruß,
    Alex
    Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
    https://github.com/avollkopf

    mrhyde
    Posting Klettermax
    Posting Klettermax
    Beiträge: 211
    Registriert: Mittwoch 7. Juni 2017, 14:16

    Re: iSpindel - Lokaler Server - iSpindle.py

    #795

    Beitrag von mrhyde » Freitag 15. Januar 2021, 18:31

    Hallo,

    ich habe mal das Excel sheet zur Kalibrierung etwas umgekrempelt. Dabei habe ich auch noch einen kleine bug im Server bei der Kalibrierung gefunden im aktuellen Repo. Das Repo werde ich noch heute oder morgen aktualisieren. Ist aber erst einmal nicht so gravierend.

    Hier ist ein screenshot der Excel Datei. Wie gewohnt gibt man seine Daten ein. Es wird ein Polynom 2ten und 3ten grades berechnet. Das ist noch nicht so viel neues.
    Screenshot 2021-01-15 181808.png
    Wenn man Daten ändert oder neu eingibt, muß der Button Formel update gedrückt werden.

    Man muß oben seine Spindel ID angeben und dann die aktuellen Kalibrierdaten dieser Spindel aus der Datenbank auslesen.
    Außerdem kann man dann eines der beiden Polynome für diese Spindel in die Datenbank schreiben.

    EDIT:
    Mit meiner Pi habe ich es jetzt auch mal getestet.
    Hier muss allerdings die Datenbnakkonfiguration noch angepasst werden, damit man auch von einem anderen Rechner aus zugreifen kann.
    Aktuell steht im file /etc/mysql/mariadb.conf.d/50-server.cnf noch folgendes:

    Code: Alles auswählen

    bind-address = 127.0.0.1
    
    Das muss unkommentiert werden:

    Code: Alles auswählen

    # bind-address = 127.0.0.1
    
    Wenn das nicht hilft, ggf noch diese Zeilen einfügen:

    Code: Alles auswählen

    skip-networking=0
    skip-bind-address
    
    Auf dem zweiten Sheet müssen die entsprechenden Daten für die Verbindung eingegeben werden.
    UID: iSpindle PWD: ohyeah PORT:3306

    Je nach verwendeter Datenbank muss halt ein ODBC treiber installiert werden. Auf dem Pi image ist ja die MariaDB. Somit muss dafür auch der ODBC Treiber der MariaDB installiert werden.

    Ich habe auf dem Datensheet alle Zellen bis auf die Zellen, wo man etwas eintragen muss gesperrt. Aber man kann den Dokumentenshutz auch ohne Passwort aufheben.

    Das Excel File ist als Zip hier im Anhang.
    Dateianhänge
    2021_01_Spindel_Kalibrierung_Databse transfer.zip
    (46.41 KiB) 8-mal heruntergeladen
    Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
    https://github.com/avollkopf

    Benutzeravatar
    ralfsteck
    Posting Junior
    Posting Junior
    Beiträge: 90
    Registriert: Mittwoch 20. März 2019, 09:50

    Re: iSpindel - Lokaler Server - iSpindle.py

    #796

    Beitrag von ralfsteck » Sonntag 17. Januar 2021, 21:35

    Hallo,

    wenn ich einen Gärbeginn eingeben will, bekomme ich die Fehlermeldung: "Column 'Recipe_ID' cannot be null" und nix passiert... Was tun?
    Gruß, Ralf
    Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

    mrhyde
    Posting Klettermax
    Posting Klettermax
    Beiträge: 211
    Registriert: Mittwoch 7. Juni 2017, 14:16

    Re: iSpindel - Lokaler Server - iSpindle.py

    #797

    Beitrag von mrhyde » Montag 18. Januar 2021, 18:09

    ralfsteck hat geschrieben:
    Sonntag 17. Januar 2021, 21:35
    Hallo,

    wenn ich einen Gärbeginn eingeben will, bekomme ich die Fehlermeldung: "Column 'Recipe_ID' cannot be null" und nix passiert... Was tun?
    Kann ich so nicht nachvollziehen. Ich habe gerade eben das neuste image noch einmal getestet.

    Eine Spindle hat einen Datensatz gesendet und ich konnte dann auch den Gärbeginn setzen.

    ggf musst du mal die Datenbank exportieren und mir senden. Dann kann ich mir das mal ansehen.

    Gruß,
    Alex
    Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
    https://github.com/avollkopf

    Benutzeravatar
    ralfsteck
    Posting Junior
    Posting Junior
    Beiträge: 90
    Registriert: Mittwoch 20. März 2019, 09:50

    Re: iSpindel - Lokaler Server - iSpindle.py

    #798

    Beitrag von ralfsteck » Montag 18. Januar 2021, 18:23

    Ich habe manuell einen Reset eingebaut, jetzt klappt die Anzeige. Gärbeginn kann ich leider immer noch nicht setzen. Datenbank kommt per PN.
    Gruß, Ralf
    Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

    Benutzeravatar
    ralfsteck
    Posting Junior
    Posting Junior
    Beiträge: 90
    Registriert: Mittwoch 20. März 2019, 09:50

    Re: iSpindel - Lokaler Server - iSpindle.py

    #799

    Beitrag von ralfsteck » Donnerstag 21. Januar 2021, 22:31

    Gibt es eigentlich eine Möglichkeit, die Hintergrundfarbe zu ändern? ICh bin kein hellblau-Fän.
    Gruß, Ralf
    Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.

    mrhyde
    Posting Klettermax
    Posting Klettermax
    Beiträge: 211
    Registriert: Mittwoch 7. Juni 2017, 14:16

    Re: iSpindel - Lokaler Server - iSpindle.py

    #800

    Beitrag von mrhyde » Freitag 22. Januar 2021, 16:10

    ralfsteck hat geschrieben:
    Donnerstag 21. Januar 2021, 22:31
    Gibt es eigentlich eine Möglichkeit, die Hintergrundfarbe zu ändern? ICh bin kein hellblau-Fän.
    Am besten einfach mal die Hilfe durchlesen. Das steht zumindest in der Hilfe der aktuellsten Version des Servers.

    --> sudo ./update.sh im Verzeichnis des servers durchführen.

    Es gibt Wasser, Hopfen, Malz und Raspberry

    Du kannst dir das aber auch über das CSS file andere Styles anlegen.

    Gruß,
    Alex
    Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
    https://github.com/avollkopf

    Antworten