Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

Antworten
JackFrost
Posting Freak
Posting Freak
Beiträge: 2984
Registriert: Dienstag 15. Mai 2018, 18:10

Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#1

Beitrag von JackFrost »

Hallo,

ich hab die modifizierte Version von Tozzis Server für das eManometer fertig.
Da ich aber kein Raspberian nutzen sondern Gentoo und das in 32 Bit und 64 Bit will ich mit dem
Pull-Request noch warten bis es auf Raspberian auch geht.

Wer das eManometer mit dem Server von Tozzi nutzen will, muss ich die neuen Dateien von meinem Git holen
Die Bestehenden Dateien überschreiben und dann in PHPMyAdmin die MySQL_update_for_iGauge.sql ausführen so das die Tabelle für das eManometer angelegt wird. Und dann ggf wieder die config Dateien änern das es mit dem Passwort passt.
Die Tabelle für die IDS2 kann mit MySQL_update_for_IDS2.sql erstellt werden.

Bei den beiden untersten Punkten muss links das iGauge gewählt werden. Sonst werde keine Daten gefunden. Für die alten Diagramme die Spindel.
Neue Punkte.png
Neue Punkte.png (9.83 KiB) 1604 mal betrachtet
Das eManometer kann über die Indexseite dann angezeigt werden. Die Daten von der IDS2 können nur über einen direkten Aufruf der IDS2.php angezeigt werden.

Der Server zeigt nur die Daten an. Die Werte der IDS2 werden bei mir von einem anderen Programm in die DB eingetragen.

Wenn ihr Fragen habt zu meiner Version , dann bitte hier posten und nicht in Tozzis Thread.

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte
irrwisch
Posting Freak
Posting Freak
Beiträge: 1014
Registriert: Sonntag 21. Januar 2018, 08:33

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#2

Beitrag von irrwisch »

Mit deinem Repository ist irgendwas ganz schön schief gelaufen.

Du hast ALLE Dateien in CRLF konvertiert und das dann auch noch eingecheckt.
Das ist recht unschön. Vor allem wenn das jemand anderes (Tozzi in dem Fall) nochmal zurückmergen soll.
Außerdem läuft das Skript auf Linux nicht mit den DOS Line Endings.

Hast du den Server überhaupt getestet? Meiner Meinung sind da noch ein paar Bugs drin ;-)
Kriegst wahrscheinlich nachher nochmal ein Pull Request von mir.

edit: Das mit den Lineendings ist echt ein Chaos.
Wahrscheinlich wäre es am besten nochmal frisch anzufangen von Tozzis Branch und nur die Änderungen für den iGauge/eManometer einzubauen.

edit2: Also mit deinem Repo kann man eigentlich kaum weiterarbeiten.
Vor allem weil du alle deine Änderungen (inklusive der CRLF Änderungen) in zwei riesigen Commits drin hast. Das kann Tozzi ja kaum zurückmergen in seinen Branch. Wenn man so arbeitet, kann man sich ein Versionskontrollsystem auch gleich sparen ;-)

Den Bug den ich meinte: Du setzt oben eine Variable gauge = 1 wenn das Gauge gefunden wurde. Unten fragst du aber die nicht existente Variable igauge statt gauge ab.
Außerdem sollte das TCP Forwarding an eine zweite Instanz des TCP Servers auch funzen mit der iGauge.
Die beiden Änderungen wollte ich grad eigentlich machen aber mit deinem Repository macht das eigentlich gerade kaum Sinn weiterzumachen.
Die Änderungen sollte man erstmal sauber neu auf Tozzis Branch aufsetzen bevor man da weitermacht.
Willst du das machen? Ansonsten kann ich das am WE auch mal tun.
irrwisch
Posting Freak
Posting Freak
Beiträge: 1014
Registriert: Sonntag 21. Januar 2018, 08:33

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#3

Beitrag von irrwisch »

Ich habe jetzt deine Änderungen nochmal sauber auf Tozzis letzten Master Branch aufgesetzt
https://github.com/jlanger/iSpindel-TCP ... mits/tozzi

Das mit der falschen Variable habe ich gefixed.
Testen kann ich es nicht da ich noch kein eManometer habe

edit: Ich finde es auch nicht so geschickt, die Unterscheidung ob es eine Spindel oder ein iGauge ist anhand des vorhandenseins von "iGauge" im Namen zu machen.
Besser wäre es in den JSON Daten ein Feld einzubauen "Type", das angibt welcher Typ Sensor es ist.
Wenn das Feld nicht da ist, ists halt ne iSpindel (Abwärtskompatbilität), ansonsten halt entsprechend dem Feld.

Dazu müsste aber dann die eManometer Firmware angepasst werden um das Feld auch zu übermitteln.
Wo ich grad bei dem Thema bin: Dein eManometer Repository hat noch nicht die letzten Änderungen drinnen oder?
Letztes Update vor 14 Tagen. Da wollte ich auch grad mal reinschauen :Smile
JackFrost
Posting Freak
Posting Freak
Beiträge: 2984
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#4

Beitrag von JackFrost »

Läuft bei mir unter Gentoo 64 auf dem Raspi4.
Das mit den Line endings schau ich mir mal an. Ich hab mim VS Community 19 die .py Bearbeitung und dann auf dem Raspi laufen lassen

Den eManometer Git hab ich aktuell noch Lokal bei mir liegen. Da ändert sich grad noch zu viel.
Das mit dem JSON werd ich mir anschauen und umsetzen.

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte
irrwisch
Posting Freak
Posting Freak
Beiträge: 1014
Registriert: Sonntag 21. Januar 2018, 08:33

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#5

Beitrag von irrwisch »

Bevor du dir die Arbeit machst, schau dir einfach meinen Branch an und nehm den. Müsste alles drin sein und laufen. Sauber aufgesetzt auf Tozzis letzten Master.

Nur solltest du gucken, dass du deinen Editor / git bändigst damit das mit den Linefeeds nicht nochmal passiert :Smile

edit: Außerdem sollte man die Benamung vielleicht mal einheitlich halten?
Wir haben jetzt iGauge vs eManometer vs e-Manometer :puzz

Hat mich damals schon genervt iSpindel vs iSpindle. Mal so mal so. Macht auch die Suche im Forum nach relevanten Themen nicht einfacher, und den Code auch nicht schöner!

Wollen wir uns auf einen Namen festlegen? :Bigsmile

Wegen dem JSON würd ich vorschlagen.
in der iSpindel.cpp Zeile 582ff.
sender.add("devicetype", "eManometer");

(in dem Ast der #ifdef API_GENERIC ist)

Oder auf welchen Namen wir uns dann einigen wollen.
im iSpindel Lokalen Server kann man das dann entsprechend auswerten.
JackFrost
Posting Freak
Posting Freak
Beiträge: 2984
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#6

Beitrag von JackFrost »

irrwisch hat geschrieben: Donnerstag 24. Oktober 2019, 09:53 Bevor du dir die Arbeit machst, schau dir einfach meinen Branch an und nehm den. Müsste alles drin sein und laufen. Sauber aufgesetzt auf Tozzis letzten Master.

Nur solltest du gucken, dass du deinen Editor / git bändigst damit das mit den Linefeeds nicht nochmal passiert :Smile
Werd ich machen. Wenn alles in trockenen Tüchern ist werd ich den Server für mich jedoch in C aufsetzen.

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte
JackFrost
Posting Freak
Posting Freak
Beiträge: 2984
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#7

Beitrag von JackFrost »

Ich hab es gerade noch mal geteste. Ich hab bei mir auf dem Raspi mit Gentoo64 CRLF.
Wird ohne Probleme ausgeführt. Vermutlich ist mir das daher nicht aufgefallen.

Werd mein Repository löschen und deines Forken. Danke schon mal.
Die IDE dann noch auf LF umstellen und dann sollte alles passen.

Gruß JackFrost
Meine Hardware:
eManometer
IDS2 ohne CBPi
Magnetrührer
Ss-Brewtech 10 Gal Topf
IDS2 Induktionsplatte
JackFrost
Posting Freak
Posting Freak
Beiträge: 2984
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Lokaler Server für iSpindel, eManometer und IDS2 - iSpindle.py

#8

Beitrag von JackFrost »

Das eManometer wird nun über ein Feld im JSOn identifiziert.

Neuer Fork : https://github.com/JackFrost80/iSpindel ... tree/tozzi

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