Projekte – Auslesen der Logikeinheit

Ansicht von 15 Beiträgen – 211 bis 225 (von insgesamt 235)
  • Autor
    Beiträge
  • #66446
    Anonym
    Inaktiv

    Ich überlege gerade … man könnte auch ein Programm auf dem Arduino schreiben, dass nach jeder Aktion automatisch 1. die Aktion erfasst wird und 2. das EEPROM komplett ausgelesen wird. Bräuchte man nur anschließen und dann alle Funktionen nacheinander durchgehen. Diese könnte man auch via Serial auf dem Notebook-Monitor anzeigen lassen, also z.B. „Entnehmen Sie bitte den Wassertank und drücken Sie “ oder „Ziehen Sie einen kleinen Kaffee und drücken Sie „. Ich glaube, der Arduino ist gar nicht mal so unnützlich, auch wenn der dann ein paar Euro extra kostet. Muss aber ja auch kein Original sein, da reicht ein Klon.

    Für das Arduino-Programm würde ich mich opfern, wenn wir hier einen entsprechenden Ablaufplan erarbeiten können. 🙂

    #66447
    Anonym
    Inaktiv

    Ich bevorzuge Leerzeichen, da man diese mal ebend schnell im Editor durch was anderes ersetzen kann. Bei Tabs ist man auf Editoren angewiesen, die RegEx, bzw. \t interpretieren können. Ansonsten Startadresse + 16 Word mit Leerzeichen dazwischen. Hab ich hier schon öfters gesehen und konnte gut damit arbeiten. Das wäre dann sogar analog dem RT: Kommando … bis auf die Lerrzeichen 🙂

    #69810
    Anonym
    Inaktiv

    Ich revidiere mal etwas 16 Word in einer Zeile, das wird schwer zu lesen, aber wir können uns gerne an Olivers Muster anlehnen:

    [code]
    0000 00E2 0134 2300 080C 0000 0000 0045 20DA
    0008 003D 0010 15E7 0000 0021 0286 0001 008E
    0010 8E82 0038 0071 01BA 01BA 0AF8 0000 0000
    0018 0000 0000 0000 0078 0150 0000 0031 0784
    0020 0000 0000 001C 0000 0028 4664 1E04 0C50
    0028 0100 0000 0A0E 1014 1406 0708 2D64 141E
    0030 4D62 0007 2158 214D 006B 04B0 0161 1E05
    0038 0032 507E 047E 5050 160F 0014 012C 0276
    0040 000C 00E6 010A 0208 0222 012C 01D1 0501
    0048 5A03 000A 0000 050A 0A12 00C8 145C 1E5C
    0050 6C6C 0000 00DC 0002 0A0D 1401 0071 0050
    0058 0404 0100 0004 3C14 3280 463C 5009 2522
    0060 21F4 BB20 257A 21F4 922A 2F49 21F4 666E
    0068 6004 A200 02A5 4982 140A 2802 0C02 0000
    0070 0000 0000 011E 0000 041D 0C1A 0000 1210
    0078 041E 3C05 020A 0228 B49D 141E 3400 0B00
    0080 05A0 0014 0014 1E0A 0F23 00F0 0100 0307
    0088 0A01 000A 1106 0000 0000 4132 5846 5028
    0090 5064 003C 1932 0A46 706C 3228 6460 706A
    0098 120A 7267 140F 7066 787D 8776 0091 0F16
    00A0 3228 6C64 140F 2828 0F28 463C 3750 3273
    00A8 1E50 010A 0000 5A03 0004 0501 0000 0032
    00B0 0600 0A14 4646 0000 0010 0020 3005 7803
    00B8 0C0C 3030 0000 2D14 140A 06C8 6401 A000
    00C0 1234 0042 0C00 0732 0817 0D05 AAC8 5D28
    00C8 5050 0000 04FF A014 028C 0000 B6AE 066E
    00D0 09A1 00E6 0000 0000 0028 0014 0002 0100
    00D8 0020 0010 0909 1414 2D14 0000 0000 0000
    00E0 0000 0000 0000 0000 0000 0000 0000 0000
    00E8 2522 0000 2A5A 2A42 2E00 0000 0000 0000
    00F0 090B 10D5 0003 7010 28D0 0000 0000 0000
    00F8 002C 3000 0003 7030 0002 AA28 D0CD 0000
    [/code]

    #69811
    Anonym
    Inaktiv

    Aber wie machen wir das mit dem Protokoll?

    Ein Teil wären die Funktionen, die man über die Maschine steuern kann. Also was sagt mir die Maschine, wenn ich die Taste „kleiner Kaffee“ drücke etc? Das wären bei mir 1. kleiner Kaffee, 2. zwei kleine Kaffee, 3. großer Kaffee, 4. zwei große Kaffee, 5. Dampf A, 6. Dampf B, 7. Portion Heißwasser.

    Die Aktion könnte man automatisch erfassen, dazwischen jeweils EEPROM auslesen. Dann weiß man auch, wo die jeweilige Zählervariable gespeichert wird.

    Ferner die Meldungen, die die Maschine möglicherweise ausspuckt (weiß ich gerade gar nicht genau), wenn der Wasserbehälter leer oder nicht eingesetzt ist, die Bohnen alle sind etc. Und was ich noch vergessen habe: solche Sachen, wie Reinigung, Entkalken.

    Insgesamt dürfte die komplette Abarbeitung von so einem Protokoll mit allen Funktionen aber doch einige Zeit in Anspruch nehmen. Dafür würden aber auch in absehbarer Zeit anständige Ergebnisse dabei herum kommen.

    #66448
    Anonym
    Inaktiv

    @Wiesel: Übernimmst du dann das später serverseitige? Also Hochlademöglichkeit und nach Möglichkeit eine serverseitige Weiterverarbeitung der Daten? Du kennst dich doch mit PHP und Datenbanken etc aus, nehme ich an. Nett wäre auch eine visuelle und tabellarische Darstellung der interessanten Sachen, z.B. Funktionen und Befehle nach Maschinentyp geordnet.

    #69812
    Anonym
    Inaktiv

    Da würde ich diue FA: Kommandos durchgehen und Antwort sowie Reaktion notieren.
    Beim EEPROM auswerten ist es wieder abhängig von der Maschiene und deren Einstell- und Funktionsmöglichkeiten.

    Einschalten lesen
    Ausschalten Einschalten lesen
    Produkt 1 beziehen lesen
    Produkt X beziehen lesen
    Sämtliche EInstellungen ändern und lesen 🙂

    Wasserbehälte Schale usw. kann ich per IC: anfragen. Bekomme hier dann 16 Bit die den Status der Sensoren darstellen.
    Hier flackern aber auch ein paar Bits wild umher, ohne das etwas an der maschiene getan wird.

    Was noch Interessant wäre: Display auslesen, scheint auf jeden Fall einen Weg zu geben

    Ich kenne bisher nur einen befehl zum löschen des Displays und 2 zum Beschreiben.

    #66451
    Anonym
    Inaktiv

    So ist der Plan Oliver 🙂 Ich brauche hier aber erst mal einen globalen Überblick über alle Maschienen und kann dann Strukturieren. Sonst Stoße ich mit der DB an irgendwelche Grenzen und kann dann irgendwelche nis dato unbekannste Funktionen nur mit viel Aufwand nachpflegen. Ich suche aktuell eine Möglichkeit das Modell eindeutig zu Identidizieren. Offenbar ist hier Artikelnummer und Softwareversion notwendig. Letzteres geht per TY: Wenn wir hier einen Identifier haben kann auch das App nachher recht simpel die Dumps auf den Server spielen. Bzw holt sich von da die Interpretationsanleitung. Mit dem visuellen Part tue ich mich immer etwas schwer, aber das bekommen wir schon hin.

    #69813
    Anonym
    Inaktiv

    Notfalls kann der hochladende Nutzer ja angeben, was für eine Maschine er hat, z.b. im Dateinamen. Aber wenn man es aus dem Datensatz lesen kann: umso besser!

    Mal blöd gefragt: Wie geht das mit dem Display löschen, auslesen und beschreiben? Geht bei meiner Impressa S 95 aber nicht, glaube ich. Trotzdem würden mich die Befehle interessieren.

    Theoretisch könnte man noch unbekannte Befehle per „Dictionary attack“ einfach ausprobieren und gucken, wo eine Reaktion oder Antwort kommt. Aber ob sich das lohnt?

    Gut, ich könnte dann im Grunde gleich (oder morgen) anfangen und das Arduino-Programm schreiben. Bin mir allerdings noch unsicher, ob man das besser über die FA-Befehle der Reihe nach macht oder doch über die Tasten. Wenn man die FA-Befehle durchgeht, wird man fragen müssen „Was hat die Maschine gemacht?“ und alle Funktionen zur Auswahl stellen und der User muss sich dann entscheiden. Wenn ich von vornherein sage „Drücke die Taste für kleinen Kaffee“, dann ist zumindest das schon mal klar und die Antwort kann ja geloggt werden. Das deckt natürlich dann nicht alle Befehle ab, wie z.B. direktes Ansteuern des Mahlwerks etc. Muss ich noch mal drüber grübeln, bevor ich anfange.

    Bezüglich des groben Überblicks kann dir Mathias bestimmt helfen.

    #66452
    Anonym
    Inaktiv

    Habe jetzt 4.5 Stunden mit Mathias telefoniert und bin um einieges Schlauer 🙂
    DR: löscht das Display
    DA:Wert und DT:Wert geben bei der J5 Wert im Display aus.

    Ich bin aktuell bei eBay auf der Jagt nach einer günstigen, defekten Jura um ihr mal alle möglichen Befehle an den Kopf zu werfen.

    #69814
    Anonym
    Inaktiv

    Und ich bin zu allen Schandtaten bereit! 🙂
    War ein sehr nettes und Informatives Gespräch vielen Dank dafür.

    Ich würde Sinnvoll finden, wenn man Funktionen aus einer Liste auswählen kann und diese Liste als Anwender selbst ergänzen kann. Man kann dann die gewonnen Informationen ja evtl. hochladen und in der Software nach pflegen. Auch eine Erfassung der Maschinenkennung wäre sehr Sinnvoll, beispielsweise Krups Orchestro, Jura GIGA X9c, AEG CaFamosa 784, Franke Saphira, Bremer Smart, Franke Flair und dergleichen mehr…
    Wenn man die Hardware sehr einfach zusammenbekommt, sie billig ist und die Software einfach zu bedienen ist, werden sicher einige Menschen mitmachen 🙂

    [url=http://www.coffeedential.de/unb/forum;info=1]Hier der Link zum Forum von Wiesel.[/url]

    #69822
    Anonym
    Inaktiv

    Ich hatte mir zum Auswerten meiner Jura Xs 9 ein Python Script geschrieben, dass initial den ganzen Speicher ausließt und dann nur noch die Unterschiede nach diversen Änderungen ausgibt. Die Änderungen wurden dann vom Script abgefragt. Das Script hat einmal eine menschenlesbare Ausgabe der Form: Adresse: alter Wert > neuer Wert als auch ein Format, dass ich direkt von Python exportieren und später wieder importieren kann. Hierbei hab ich alle Daten in einem Dictionary abgelegt.

    Ausgabe auf der Konsole:
    P2 frei
    00D0: 0A12 > 0856
    00D4: B142 > 3142
    P2 gesperrt
    00D4: 3142 > B142
    P2 frei
    00D4: B142 > 3142
    P1 gesperrt
    00D4: 3142 > 31C2
    P1 frei
    00D4: 31C2 > 3142
    P3 X
    00D6: 2111 > 2191
    P3 frei
    00D6: 2191 > 2111
    P4 X
    00D6: 2111 > A111
    P4 frei
    00D6: A111 > 2111
    P6 X
    00D8: 0011 > 0091
    P6 frei
    00D8: 0091 > 0011
    P7 X
    00D9: 0022 > 00A2

    Daten in Maschinenlesbarer Form:

    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P2 frei‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202B14200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P2 gesperrt‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P2 frei‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E70428020231C200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P1 gesperrt‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P1 frei‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222191000000110022140C00221A240000001E0020‘, ‚description‘: ‚P3 X‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P3 frei‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E70428020231420022A111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P4 X‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P4 frei‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000910022140C00221A240000001E0020‘, ‚description‘: ‚P6 X‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P6 frei‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E7042802023142002221110000001100A2140C00221A240000001E0020‘, ‚description‘: ‚P7 X‘, ‚Memory‘: ‚ROM‘}
    {208: ‚085600E704280202314200222111000000110022140C00221A240000001E0020‘, ‚description‘: ‚P7 frei‘, ‚Memory‘: ‚ROM‘}
    {160: ‚231967620000000000004628374B326E066C061124A15A05140605003C280F32‘, ‚description‘: ‚Wasser Port X‘, ‚Memory‘: ‚ROM‘}

    Ausgelesen werden immer 16 Wörter mit einmal. Das ‚Memory‘: ‚ROM‘ kann mal ignoriert werden. Ich dachte erst, dass ich auch irgendwie auch nocht den RAM auslesen könnte…

    #66453
    Anonym
    Inaktiv

    Das geht mit RR: und Adresse…

    #66454
    Anonym
    Inaktiv

    Das dachte ich mir ja eigentlich auch, bis ich das auf Arbeit ausprobiert hab… die Xs9 scheint das zumindest so (wie in der Excel Tabelle angegeben) nicht zu unterstützen…

    #66455
    Anonym
    Inaktiv

    Die J5 schweigt sich bei RR: auch aus. Egal ob ohne, mit 2 stelliger oder 4 stelliger Adresse.

    #66456
    Anonym
    Inaktiv

    Das ist nicht unmöglich, ich habe keine zum Testen.
    Meine X9 und X7 können das. An meine S90 komme ich erst nächste Woche.
    Eine zu Deiner im Grunde baugleichen S9 habe ich nicht. 🙁
    Wie identifiziert sie sich denn bei TY: ?

Ansicht von 15 Beiträgen – 211 bis 225 (von insgesamt 235)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.