Kassomat: Unterschied zwischen den Versionen

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche
(was bisher geschah...)
(Linkgrab)
 
(62 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{head_de}}
 
== WTF ==
 
== WTF ==
Eine selbstgebaute Kassa mit Touchinterface, die (parallel??/ersatz??) zur offenen Kassa im Einsatz sein soll, die verhindern soll dass nicht einfach so mehrere Geldscheine aus der Kassa verschwinden. Zusaetzlich eroeffnen sich angenehme Funktionalitaet wie zB: iButton Credits, automatische Buchhaltung, Lazzzor Jobs erfassen, Barcode Scanner,.. whatnot.
+
{{Projekt
 +
|image=No-Logo.png
 +
|involved=[[User:anlumo]]
 +
|startdate=XX.10.2012
 +
|status=in progress
 +
|wtf=box which manages money, you pay for stuff, crowdfund, etc.
 +
}}
 +
Eine selbstgebaute Kassa mit Touchinterface, die hauptsaechlich als Ersatz zur offenen Kassa im Einsatz sein soll, die verhindern soll dass nicht einfach so mehrere Geldscheine aus der Kassa verschwinden. Zusaetzlich eroeffnen sich angenehme Funktionalitaet wie zB: iButton Credits, automatische Buchhaltung, Lazzzor Jobs erfassen, Barcode Scanner,.. whatnot
 +
 
 +
<div style="background-color:#FFFFCC; border:2px #000000 dashed; padding:10px">
 +
'''IMPORTANT NOTE''':
 +
 
 +
'''Kassomat itself is not the metalab.'''
 +
 
 +
There are '''certain parties that will use the Kassomat''', where metalab shall be one. Kassomat uses the concept of a “project” in the software. Every project has an owner (such as the metalab, the photolab group, a single person, etc). This owner is responsible for handling all legal and tax implications. Kassomat is '''only a box where people put money in''', that records which project got what amount of money, so it can be split up again afterwards.
 +
 
 +
In addition to that, we're planning to '''allow people to prepay''' small amounts of money, so we can do stuff like payment by iButton. '''No loans will be given.''' ''-- anlumo, internal mailinglist, 15:15, 4.4.13''</div>
  
 
== Kontakt ==
 
== Kontakt ==
[[User:Vierlex]] fuehlt sich verantwortlich.
 
 
Mailingliste gibt es auch! [https://lists.metalab.at/mailman/listinfo/kassomat kassomat@lists.metalab.at]
 
Mailingliste gibt es auch! [https://lists.metalab.at/mailman/listinfo/kassomat kassomat@lists.metalab.at]
 +
 +
== Schlachtplan (Softwarearchitektur) ==
 +
 +
Im Gegensatz zu vorherigen Ansätzen ist momentan der Plan, das ganze Modular zu gestalten. Das soll dazu beitragen, dass sich mehrere Leute an dem Projekt beteiligen, und nicht alles so wie früher an [[Benutzer:anlumo|anlumo]] hängen bleibt. Dazu soll es schlanke Schnittstellen zwischen den Modulen geben, und das ganze soll erweiterbar werden.
 +
 +
Folgende Module sind momentan eingeplant (siehe eigene Seiten für detaillierte Informationen):
 +
 +
* [[Kassomat/User_Interface|User Interface]]
 +
* [[Kassomat/Cash-Management|Cash-Management]]
 +
* [[Kassomat/SMART_Payout_Module|SMART Payout Module]]
 +
* [[Kassomat/Datenbank|Datenbank]]
 +
* [[Kassomat/Admin-Interface|Admin-Interface]]
 +
* [[Kassomat/Benutzerverwaltung|Benutzerverwaltung]]
 +
* [[Kassomat/Näherungssensor|Näherungssensor]]
 +
* [[Kassomat/Barcode-Scanner|Barcode-Scanner]]
 +
* [[Kassomat/iButton|iButton]]
 +
* [[Kassomat/metacash|metacash]]
 +
 +
Die Reihenfolge in dieser Liste definiert auch gleichzeitig die Priorität.
 +
 +
=== Hardware ===
 +
 +
[[Benutzer:anlumo|anlumo]] hat sich lange den Kopf zerbrochen, welcher Computer hier eingesetzt werden sollte. Hier ist zu beachten an Anforderungen:
 +
 +
* leicht einzubauen in ein Gehäuse
 +
* sehr leicht programmierbar
 +
* mindestens 2x USB 2.0
 +
* mindestens 1x RS232
 +
* Touchscreen 7"-10", mindestens 1024px in der Breite
 +
* interne Storage (bessere Ausfallssicherheit als SD-Karten)
 +
* SD-Karten-Anschluss für Datenbackups
 +
* Ethernet
 +
* Audiooutput
 +
* Kamera ein plus (für QR-Code)
 +
 +
Android-Tablets waren im Gespräch, aber da scheiterts an den USB-Interfaces. Billige China-Tablets haben zwar USB OTG, aber man kann sie nicht gleichzeitig aufladen und als USB Host verwenden. Ethernet ist da auch so eine Sache.
 +
 +
Nach langer Suche wurde ein Gerät gefunden, das allen Anforderungen entspricht. Dies nennt sich [http://www.wvshare.com/product/x210ii-Package-C.htm x210ii Package C]. Dabei handelt sich eigentlich um ein Demoboard um Tablets zu entwickelt, eignet sich aber ideal für diesen Anwendungsfall.
 +
 +
Es hat einen ARM Cortex A8 mit 1GHz und 512MB RAM. Es sind 4GB onboard Flash vorhanden. Das Gerät ist bereits im Metalab lagernd und wurde auch schon eingehend untersucht. Es unterstützt GNU/Linux, Android und Windows CE.
 +
 +
=== Betriebssystem ===
 +
 +
Auch hier gab es viele Überlegungen. Zuerst war lange vorgesehen, dass Qt5 mit QtQuick auf Linux zum Einsatz kommt. Das Problem damit ist, dass diese Library keiner im Lab wirklich kann, und es will sie auch keiner wirklich lernen. Es gibt ein paar, die Qt selber können, aber dann auch nicht mit QtQuick.
 +
 +
Webinterface war auch eine Überlegung, aber die Erfahrungen mit dem Hackersurprise-Interface haben das als sehr performancehungrig exponiert, und damit wurden diese Überlegungen wieder verworfen. Man könnte vermutlich mit viel Herumbasteln irgendetwas grausames zusammenschustern, das halbwegs schnell läuft (ohne Animationen oder sonst irgendwelche Spielereien), aber das macht dann auch keine Freude.
 +
 +
Nächste Idee war, von GNU/Linux wegzugehen, und ein alternatives Betriebssystem zu suchen, das mit der Zielhardware auch zusammenspielt. Hier sticht natürlich Windows CE heraus, das schon seit vielen Jahren erfolgreich in diversen Endkundengeräten wie Bankomaten oder Wärmebildkameras eingesetzt wird. Okok, ich hör schon auf ;)
 +
 +
Android ist generell ein Betriebssystem, das (inzwischen) speziell auf Touchscreen-Devices ausgelegt ist. Es hat auch Unterstützung für Kiosk-Applikationen (wo der Kassomat ein klassisches Beispiel ist). Es verwendet eine spezielle Java-Library, um UI darzustellen. Leider kann aber [[Benutzer:anlumo|anlumo]] (auf dem das ) das genau so gut wie QtQuick (nämlich gar nicht), und die Person im Lab, die das nötige Vorwissen dafür mitbringen würde, will leider mit dem Kassomaten nichts zu tun haben.
 +
 +
Vor kurzem ist [http://www.unity3d.com Unity3D] 4.6 mit dem neuen UI rausgekommen. Damit kennt sich [[Benutzer:anlumo|anlumo]] sehr gut aus, und das neue UI-System sollte nach ersten Recherchen her auch sehr gut dafür geeignet sein. Es klingt vielleicht absurd, eine Game Engine für ein POS-Interface zu verwenden, aber auf der anderen Seite sind dafür sehr viele Tools vorhanden, und Animationen sind auch kein Problem.
 +
 +
[http://www.unity3d.com Unity3D] läuft auf ARM-Prozessoren nur in iOS und Android, d.h. es muss Android eingesetzt werden dafür.
 +
 +
=== Software ===
 +
 +
[[Datei:X210ii.jpeg|miniatur|x210ii mit Unity3D-Programm drauf laufend. Der Moire-Effekt entsteht durch die Schutzfolie am Display, die kommt erst nach der Montage runter]]
 +
 +
Auf dem Tablet läuft ein gerootetes Android 4.0.4. Vielleicht wäre es möglich, ein neueres Android (4.4.4) drauf zum laufen bringen, allerdings müsste das jemand dann portieren, und [[Benutzer:anlumo|anlumo]] kennt sich damit nicht aus. Unity3D braucht mindestens Android 2.3, d.h. das ist kein Problem. [[Benutzer:anlumo|anlumo]] hat auch schon erfolgreich ein Programm auf dem x210ii zum Laufen gebracht.
 +
 +
Der Plan sieht jetzt so aus, das alle anderen Module als eigener Service auf dem Android-Gerät laufen, die dann über [https://developer.android.com/guide/components/intents-filters.html Intents] miteinander kommunizieren. Diese Intents sind genau auf so eine Art der Kommunikation ausgelegt, das sollte sich gut kombinieren. Diese Services können dann in wasauchimmer geschrieben sein, wobei das Intents-API leider Java ist (d.h. man muss zumindest dafür JNI verwenden, wenn die Umgebung keinen Wrapper bereitstellt).
 +
 +
Folgende Programmiersprachen sollten möglich sein:
 +
* [http://stackoverflow.com/questions/22326302/call-android-activity-from-jni-directly-from-c-process-without-java-side C/C++]
 +
* Java (sowieso)
 +
* [http://oferei.com/2013/07/sending-data-from-unity/ C# (in Unity3D)]
 +
* einige Scriptsprachen via [https://github.com/damonkohler/sl4a SL4A]: ruby, [https://code.google.com/p/python-for-android/ python], lua, perl, tcl, JavaScript, BeanShell
 +
 +
== Linkgrab ==
 +
 +
* [https://developer.android.com/guide/components/services.html Services]
 +
* [http://www.vogella.com/tutorials/AndroidLogging/article.html Android Logging]
 +
* [https://developer.android.com/training/basics/intents/sending.html Sending the User to Another App]
 +
* [https://developer.android.com/training/basics/intents/result.html Getting a Result from an Activity]
 +
* [https://developer.android.com/training/basics/intents/filters.html Allowing Other Apps to Start Your Activity]
 +
* [https://developer.android.com/guide/components/aidl.html Android Interface Definition Language (AIDL)]
 +
 +
== Zeitplan ==
 +
 +
* ''''All-in Alpacca' Alpha''', ''when its done''
 +
** Man kann Zeug bezahlen und bekommt Retour Geld!
 +
** Spenden.
 +
** Einkaeufe werden geloggt.
 +
** Gehaeuse
 +
 +
* ''''Bumble Bee' Beta''', ''when its done''
 +
** anlegen von Projekt/Community Töpfen
 +
** moneycodes zum ausbezahlen von spenden.
 +
** Bitcoin bezahlen und auszahlen lassen
 +
** Shiny final UX fuer Kassomat
 +
** Vinylcutter/Druckerjobs bezahlbar
 +
 +
* ''''Funny Ferret' Final''', ''when its done''
 +
** Einloggen mit MOS-Account moeglich
 +
** Strichcode-Erkennung
 +
** Laserjobs bezahlbar - LazzerAuth-Integration
 +
** Shiny final UX fuer Backend; Projekt/Community-Topfverwaltung
 +
** sonstige softwareseitige Features
 +
 +
== Bisher entstandene Kosten ==
 +
 +
* Geldcheckhardware von aus.at, '''1006€''' ''(abgerechnet)''
 +
** Smart Hopper
 +
** NV200 + Smart Payout
 +
** passendes Kabelzeug
 +
* 2 Netzteile ueber [[User:overflo]] bestellt, '''52€''' ''(abgerechnet)''
 +
** er hat eine Rechnung ans Metalab gestellen.
 +
* Rohmaterial fuer das Gehaeuse
 +
** Aluprofile, 52€ (abgerechnet)
 +
** Schnellverbinder fuer Eckverbindungen, 145€ (abgerechnet)
 +
** 100xNutsteine, 30€ (abgerechnet)
 +
** 200xSchrauben & Beilagscheiben, 7€ (abgerechnet)
 +
** 2x 1m Flacheisen, 8€ (abgerechnet)
 +
* Arbeitszeit fuer Software und Gehaeusebau: ahahahahahah
 +
 +
'''Insgesamt (zur Zeit): 1301€'''
  
 
== was gerade passiert (ieren wird) ==
 
== was gerade passiert (ieren wird) ==
* '''Hardware ist da! fehlt nur noch das Netzteil dann kanns losgehen!!! FUCK YEAH'''
+
* <s>'''Ende Jaenner/Anfang Februar Hobbes wegen Gehaeuse fragen.'''</s>
* Lieferung in Auftrag gegeben, ETA Mitte/Ende Jaenner
+
* <s>'''[https://www.yoctoproject.org/ Yocto-Image] fuers Netbook basteln'''</s>
* Arbeitsgruppentreffen mit Bitcoin Leuten
+
* <s>''' es wird fleissig gecodet. '''</s>
* finale Gehäuseplanung
+
** <s>feinheiten beim geldwechsel-screen</s>
* rudimentaeres GUI bauen (http://qt.digia.com/Global/Images/Qt/Files/EducationMaterial/L7%20-%20pdf.zip fuer alle die mitmachen wollen)
+
** <s>SSP commands implementieren</s>
 +
** <s>was gekauft wird muss vernünftig geloggt werden.</s>
 +
** <s>Klartextkommunikation mit Geldautomataton. Encryption implementiert.</s>
 +
*** <s>encrypte kommunikation setup fehlt noch.</s>
 +
* <s>alle Gehaeuseteile beisammen! yea.</s>
 +
* <s>25.6 Gehaeusezutaten bestellt. 1.7.13 verschickt worden</s>
 +
* <s>Datenbankkommunikation mit der UI.</s>
 +
* <s>Gehaeuseplan ist fertig, Stueckliste wird erstellt.</s>
 +
* <s>8.6 und 9.6 Kassomat Hackathon, lets do this.</s>
 +
* <s>2.6 Kassomat Pre-Hackathon.. vierlex kann einführung in Qt geben, anlumo einführung in c++, projektbezogen</s>
 +
* <s>es wurde viel in Richtung Bitcoin definiert/spezifiziert.</s>
 +
* <s>finale Gehäuseplanung</s> fertig! wohoo!
 +
[[Datei:Kassomat-Mockup.png|600px]]
 +
* <s>MendlMax Netzteile haben sich als passender temporaerer Ersatz herrausgestellt. eigene netzteile sind bestellt.</s>
 +
** mittlerweile sind eigene Netzeile eingetroffen. juhu!
 +
* <s>Hardware ist da! fehlt nur noch das Netzteil dann kanns losgehen!!!<s/>
 +
* <s>Lieferung in Auftrag gegeben, ETA Mitte/Ende Jaenner</s>
 +
* <s>Arbeitsgruppentreffen mit Bitcoin Leuten</s>
 +
* <s>rudimentaeres GUI bauen</s> (http://qt.digia.com/Global/Images/Qt/Files/EducationMaterial/L7%20-%20pdf.zip fuer alle die mitmachen wollen)
 
** https://github.com/Metalab/kassomat look here
 
** https://github.com/Metalab/kassomat look here
* Datenbank planen
+
* <s>Datenbank planen</s>
 
* in den Linux-Example Code einlesen (wer das "SDK" haben will kassomat-owner@lists.metalab.at anschreiben, nutzt nicht viel wenn man die Hardware hat aber nja..)
 
* in den Linux-Example Code einlesen (wer das "SDK" haben will kassomat-owner@lists.metalab.at anschreiben, nutzt nicht viel wenn man die Hardware hat aber nja..)
  
 
== was bisher geschah... ==
 
== was bisher geschah... ==
 +
* '''November 2014''' Schreie werden laut, dass endlich was weitergehen soll. [[Benutzer:anlumo|anlumo]] nimmt sich dem ganzen an, und baut Schlachtpläne.
 +
* '''3.4.2013''' Anlumo und Vierlex und viele Bitcoin-Leute haben darueber geplaudert wies jetzt genau rennen soll. ergebnis sieht man weiter unten. Das Feature wurde mal fuer die Beta angelegt.
 +
* '''15.2 - 17.2.2013''' waehrend des aeusserst erfolgreichen [[Hackathon 9]] wurde die Hardware mit buggy Testprogrammen unter Windows und Linux erfolgreich auf Funktionalitaet ueberprueft sowie weitere Vorgehensweise beschlossen. Checkout le git.
 
* '''7.2.13''', Geldscheinmanagment-Hardware wurde erfolgreich erworben.
 
* '''7.2.13''', Geldscheinmanagment-Hardware wurde erfolgreich erworben.
 
* '''7.1.13''', spontane, interessante Plauderei mit den Bitcoin-Leuten ueber die Moeglichkeit ihre bereits bestehende APP einzubinden. Kassomat braeuchte dann dementsprechend permanenten Internetzugang. Arbeitstreffen wird folgen.
 
* '''7.1.13''', spontane, interessante Plauderei mit den Bitcoin-Leuten ueber die Moeglichkeit ihre bereits bestehende APP einzubinden. Kassomat braeuchte dann dementsprechend permanenten Internetzugang. Arbeitstreffen wird folgen.
Zeile 32: Zeile 186:
  
 
* '''1.11.12''' [[User:Vierlex]] schaut sich die low-level API [http://www.innovative-technology.co.uk//images/pdocuments/sspdoc/GA138%202_0_0.pdf PDF] der Geraete an. NV200 (ohne Smart Payout Modul) um 160€ ersteigert. Hat auch um C Libraries bei [http://www.innovative-technology.co.uk inovative technology] angefragt
 
* '''1.11.12''' [[User:Vierlex]] schaut sich die low-level API [http://www.innovative-technology.co.uk//images/pdocuments/sspdoc/GA138%202_0_0.pdf PDF] der Geraete an. NV200 (ohne Smart Payout Modul) um 160€ ersteigert. Hat auch um C Libraries bei [http://www.innovative-technology.co.uk inovative technology] angefragt
 
== ..und was grad ur wichtig is (passt eigentlich eh schon wieder) ==
 
'''GEHÄUSE!'''<br>
 
Derzeit gibt es keinen konkreten Plan zum Gehäuse. Ein bisschen weiter unten findet man die 3 Hardwareteile die man unter ein Dach bringen muss. Ob Metall, Holz, Acryl, Beton, Vermauern oder in einen alten Automaten einbauen.. Wenn jemand eine KOSTENGÜNSTIGE Idee hat, wie und aus welchem Material so ein Gehäuse gestalten kann, immer nur her damit. Rahmenbedingungen:
 
* unter 100€
 
* möglichst schwer.
 
* Komponenten (ausser Laptop) sollten gut zugänglich sein. Komponeten muss man selten aber doch auch auseinander nehmen können.(siehe Datenblatt)
 
* soll nicht leicht/leise aufbrechbar sein.
 
* Platz der Komponenten(NV200+Smart Hopper) (Platz fürs Laptop-Motherboard ist '''NICHT''' einberechnet!): ~ 250x370x300 mm (siehe Datenblatt)
 
 
Datenblatt: [[Datei:Kassomat-GehaeuseSpecs.pdf‎|Datenblatt]]
 
 
'''[[User:ΠTΩ]] baut uns ein Gehaeuse! hoert sich vielversprechend an, siehe weiter unten.'''
 
 
Vorschlag von [[Benutzer:anlumo|anlumo]]: [http://www.ebay.at/itm/271105500395?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649#ht_1655wt_1097 Photoplay SPIRIT Standgerät Geldschein AKZ f.Bastler (eBay)]<br>
 
Leider ist der Versand mit €120 etwas teuer.
 
[http://www.willhaben.at/iad/kaufen-und-verkaufen/spielewelt/fun-world-photoplay-48144202?adId=48144202 Alternative aus Wien]
 
 
 
Noch eine Moeglichkeit: [http://www.banktechsafe.hu/index.php?page=shop.browse&category_id=18&option=com_virtuemart&Itemid=65&lang=en Safe] mit sehr guten Massen aber eben teuer, 140é ohne Versandkosten.
 
 
 
''Einen "Elektronischen Safe" gibts schon [http://www.conrad.de/ce/de/product/777733/Elektronischer-Safe-mit-LCD ab etwa 50 Euro]. Eine beliebig gewählte [http://www.conrad.de/ce/de/product/777734/Dokumenten-Safe-mit-elektronischem-Schloss/0801076&ref=list größere Variante für 109,-]<br /> Ein solcher Preis ist im Selbstbau schwer zu erreichen - und das Ding schließt dann auch richtig.'' --[[Benutzer:Pk|Pk]] 13:09, 5. Nov. 2012 (CET)
 
 
== Hardware ==
 
'''Geldscheinchecker'''
 
* <s>VEGA-RC ('''?é''') --> bereits angefragt</s> hat sich nicht gemeldet
 
** [http://www.jcmglobal.biz/en/products/productdetails.aspx?ProdID=VEGA Herstellerseite] ist eigentlich auch ein 2teiliges Teil, ist im ganzen kleiner als der NV200 und hat dafuer auch weniger Kapazitaet was aber wurscht is. Kann anscheinend nur EINE Art von Banknote zwischenlagern?! (verwirrende Beschreibung, muss nachfragen)
 
*  NV200 (<strike>hat [[User:Vierlex]] auf ebay um '''160€''' ersteigert! </strike>neu: '''450€''') + Smart Payout Modul (neu: '''200€''')
 
** [http://www.coinoperatorshop.com/Banknoten-pruefen-zaehlen-ausgeben/Banknotenleser/Leser/NV200-mit-Smart-Payout.html zum Shop] Diese Machinerie verwaltet Banknoten, hier wird ein zusaetzliches Modul benoetigt um Geldscheine wieder auszuspucken. Unterstuetzt mehrere Waehrungen auf einmal! Aber auf jedenfall alle möglichen Banknoten im Gegensatz zum VEGA.
 
'''Muenzchecker'''
 
*  Smart Hopper ('''190€''')
 
** [http://www.coinoperatorshop.com/Muenzen-zaehlen-pruefen-ausgeben/Muenzauszahlung/Hopper/Smart-Hopper/Smart-Hopper.htm zum Shop] Kann Muenzen '''<s>pruefen und</s>(!)''' retour geben. Auf ebay daweil nicht gesichtet. Gute und auf den ersten Blick auch kostenguenstige Alternative zu herkoemmlichen Hoppern von denen man mehrere braeucht fuer versch. Muenzen.
 
* RM5 ('''160€''')
 
** RM5 das ist der eigentliche Münzchecker der mit dem SmartHopper direkt verbunden wird.
 
'''Rechenpower'''
 
* <s>Raspberry Pi ('''35€''') & Touchscreen ('''0€''')</s>
 
** [[User:overflo]] wuerde einen Touchscreen mit fixen Touchpunkten spenden.
 
* Touchscreen Laptop ('''0€''')
 
** Convertible-Laptop (ohne Gehäuse, jedoch funktionsfähig) vom ebenfalls grosszügigen [[User:reox]].
 
'''GEHAEUSE!'''
 
* Selbstbau? ('''~100€''') --> [[User:ΠTΩ]] mag ein tolles Gehaeuse bauen!
 
hello freunde
 
das was ich machen würde und auch anbieten kann.
 
- rahmen aus systemprofilen aufbauen, damit kannst du die geräte dann auch schön befestigen.
 
- 3mm stahlplatten aus richtig hartem Super-Duplex CrNiMoTi Stahl (Nirosta)
 
+ diese wasserstrahlen oder laserschneiden lassen oder ganz simpel flexen.
 
+ verschweißen + 1 seite offen lassen
 
- rfid oder codeeingabe schloss mit dem eine der wände mit einem innenliegenden servo gelöst werden kann
 
+ wenn der code eingegeben wird oder der rfid an eine stelle gehalten wird (die villeicht keiner
 
          weiß, oder sich auch verändern könnte) wird ein servo geschalten der einen
 
          verriegelungsmechanismus öffnet.
 
+ hier gibt es bestimmt noch eine menge von lösungsansätzen -
 
          weiß nicht ob rfid durch 3mm CrNi noch funktioniert - kann man testen
 
so zum punkt
 
- ich glaube wenn man das design sehr reduziert kann man mit 100€ materialwert durch kommen.
 
- da muss man dann auch den richtigen stahl aussuchen -
 
  da gibts differenzen von 20 - 250 € / kg je nach dem wie gut er veredelt ist.
 
- das ding bekommst du dann auf jeden fall nur noch mit einer flex auf
 
  und da muss man sich ganz schön anstrengen
 
+ ich hab einige stücke 2mm CrNi herum liegen - kann ich mal mitnehmen zum testflexen - haha
 
* <s> bestehenden Automaten schlachten? --> ebay ('''?€''') </s> naja
 
* <s>MTC100 ('''?€''') --> bereits angefragt </s> meldet sich eh niemand
 
** Eine [http://www.ballywulff.de/master.php?var_1=15&var_2=42&var_3=14 All-in-One] Loesung mit viel Zeug(Interface,..) was wir eigenltich nicht brauchen. Inkludiert aber bereits einen VEGA+RC (sehr nice).
 
<br/>
 
'''* Gesamt (zur Zeit): 1000€ + ?€ (Gehaeuse)'''
 
<br/>
 
<gallery>
 
File:Kassomat-VegaRC.png‎|[http://www.jcmglobal.biz/en/products/productdetails.aspx?ProdID=VEGA Vega + Vega-RC]
 
File:Meta_kassa_Smartpayout.jpg|[http://www.coinoperatorshop.com/Banknoten-pruefen-zaehlen-ausgeben/Banknotenleser/Leser/NV200-mit-Smart-Payout.html NV200+Smart Payout]
 
File:Meta_kassa_Smarthopper.jpg|[http://www.coinoperatorshop.com/Muenzen-zaehlen-pruefen-ausgeben/Muenzauszahlung/Hopper/Smart-Hopper/Smart-Hopper.htm Smart Hopper]
 
File:Meta_kassa_M912V.jpg|Touchscreen Laptop (ohne Gehäuse) [http://en.wikipedia.org/wiki/Gigabyte_M912 Gigabyte M12V]
 
File:Kassomat-MCT100.jpg‎|[http://www.ballywulff.de/master.php?var_1=15&var_2=42&var_3=14 MCT100 die eierlegende Wollmilchsau]
 
</gallery>
 
  
 
== Was gibts zu tun? (und wer machts) ==
 
== Was gibts zu tun? (und wer machts) ==
 
* Gehaeuse? Aus was und wie bauen? Was soll es koennen? Tuer noetig?
 
* Gehaeuse? Aus was und wie bauen? Was soll es koennen? Tuer noetig?
** [[User:Zwax]], [[User:ΠTΩ]], [[User:Hobbes]]
+
** Gehaeuseplan (wer?), [[User:Hobbes]] (schweissen)
* Welche Linux Distro auf dem Laptop?
+
** Datenblatt: [[Datei:Kassomat-GehaeuseSpecs.pdf‎|Datenblatt]] (besser als svg Zeichnung)
 +
  [[Datei:Kassomat-abmessungen.svg|miniatur|Abmessungen in mm ]]
 +
  [[Datei:Kassomat-gehaeuse.svg|miniatur|Gehaeuseprovisorium ausgeführt]]
 +
* Frontend implementieren (siehe Schlachtplan)
 +
* Backened implementieren (siehe Schlachtplan)
 +
* AuthentifizierungsschnittstellenBLA zum MOS
 +
** [[User:Hop]]
 +
 
 +
=== done ===
 +
* Wie schaut die UIX aus?
 +
** [[User:redplanet|redplanet]]
 
* Wie verbindet man Geldcheckhardware mit Laptop?
 
* Wie verbindet man Geldcheckhardware mit Laptop?
** [[User:Vierlex]]
+
** [[User:anlumo|anlumo]]
 
* API von Herstellerfirma checken (haben fuer Linux/C++ auch was)
 
* API von Herstellerfirma checken (haben fuer Linux/C++ auch was)
** [[User:Vierlex]]
+
** [[User:anlumo|anlumo]]
* Welche Fehlerfaelle gibt es bei der Hardware?
+
* Wie lauft der Bezahlvorgang ab?
+
* Wie schaut die UIX aus?
+
** [[User:anlumo]]
+
 
* Wie soll die Datenbank ausschauen?
 
* Wie soll die Datenbank ausschauen?
* Datenbank Backup Moeglichkeit?
+
** [[User:metaz|metaz]]
* Frontend implementieren
+
** [[User:redplanet]], [[User:Vierlex]]
+
* Backened implementieren
+
** [[User:redplanet]], [[User:Vierlex]]
+
 
+
== wann fertig? ==
+
 
+
Wenn es von Core das OK gibt dann schaetze ich ([[User:Vierlex]]) wuerde das ganze ca 4 Monate dauern bis ein funktionierender Prototyp fertig ist. Dieser ist noch nicht fuer den regelmaessigen Betrieb gedacht, erst nach exzessivem Testen. '''ca. Mitte Februar '13'''
+
 
+
== und was kann der dann? ==
+
 
+
Der erste Prototyp inkludiert ein Touchinterface mit dem man ein Getraenk auswaehlen kann. Man kann mit Muenzen oder mit Geldscheinen zahlen und bekommt entsprechend wieder Muenzen und/oder Scheine als Retourgeld zurueck.
+
 
+
Zusaetzlich soll es eine grundlegende Dokumentation (geschriebener Code dokumentiert, wie ist er zu erweitern ) und Wartungsmanual (wie entleere ich das Ding, was tun wenns spinnt) geben.
+
  
 
== features, Features. FEATURES! ==
 
== features, Features. FEATURES! ==
Zeile 140: Zeile 212:
 
zeug was man noch tun kann.
 
zeug was man noch tun kann.
  
* Strichcodeerkennung ueber die Webcam. ''ist einfach zu machen, gibt open source libs dafür - [[Benutzer:anlumo|anlumo]]''
+
* Strichcodeerkennung über einen Barcodescanner ([[Benutzer:anlumo|anlumo]] — für eine Webcam ist es dort zu dunkel! habe ich ausprobiert)
 
* Logging der verschiedenen Einnahmen (fuer Buchhaltung interessant und Statistiken: Mate-konsum um welche Uhrzeiten am meisten verkauft?)
 
* Logging der verschiedenen Einnahmen (fuer Buchhaltung interessant und Statistiken: Mate-konsum um welche Uhrzeiten am meisten verkauft?)
 
* Lazzzor Jobs bezahlen
 
* Lazzzor Jobs bezahlen
 
* iButton mit Credits
 
* iButton mit Credits
 
* Vinyldrucker Jobs bezahlen
 
* Vinyldrucker Jobs bezahlen
* Druckerauftraege bezahlen
+
* 2D/3D-Druckeraufträge bezahlen
 +
* Scannersachen bezahlen
 
* Autonome Kassaverwaltung (für div. Kleingruppen zb Fotolab,Werkstatt die über den Kassomat Geld in ihre gemeinsame Kassa einzahlen und sich auszahlen lassen können)
 
* Autonome Kassaverwaltung (für div. Kleingruppen zb Fotolab,Werkstatt die über den Kassomat Geld in ihre gemeinsame Kassa einzahlen und sich auszahlen lassen können)
* Custom Bezahlauftrag (wieviel/wofuer, spende)
+
* Custom Bezahlauftrag (wieviel/wofuer, Spende)
 
* Verwaltung von Spendentöpfen ala kickstarter.com! immer sichtbar, immer einzahlbar. Automatische Bewerbung von aktuellen Projekten als Idle-Screen.
 
* Verwaltung von Spendentöpfen ala kickstarter.com! immer sichtbar, immer einzahlbar. Automatische Bewerbung von aktuellen Projekten als Idle-Screen.
 
* Eine weitere Red Alert-Anzeige
 
* Eine weitere Red Alert-Anzeige
 
* von hand eingetragene "its empty"-notification bei bezahlung von schrauben oder bauteilen aus dem sortiment (falls gwünscht)
 
* von hand eingetragene "its empty"-notification bei bezahlung von schrauben oder bauteilen aus dem sortiment (falls gwünscht)
 +
* Metacoins!
 
* Bitcoins!
 
* Bitcoins!
 +
 +
== Bitcoin/Kassomat-Protokoll ==
 +
 +
 +
Ablauf (K=Kassomat, S=BC-Server):
 +
 +
<pre>
 +
  1. K->S Jemand will €2 bezahlen
 +
quote:
 +
eurocent: 200
 +
  2. S->K
 +
quote:
 +
uri: bitcoin:16f5635f73f?amount=0.01465324
 +
  3. K: wandelt uri in einen QR-Code um und zeigt ihn an (->zxing)
 +
  4. warten… (sleep 10sec)
 +
  5. BT-Workflow:
 +
  6.
 +
    1. S->K €2 wurden bezahlt
 +
receivebtc:
 +
uri: bitcoin:16f5635f73f?amount=0.01465324
 +
eurocent: 5000
 +
txid: aosihduawiusdfhgsiufhewufbsidjlbfkdsbfdfksb
 +
    2. K: Dialog wird geschlossen (mit Danke-Hinweis oder sowas)
 +
    3. Wenn mehr als das gezahlt wurde: Guthaben in € wird aufgerechnet
 +
  7. normaler Workflow:
 +
  8.
 +
    1. Geld wird eingeworfen, als Kontostand wird €8 angezeigt.
 +
 +
Websocket-Protokoll:
 +
hinschicken nur cent-Beträge
 +
zurück kommen URIs, wenn sie angezeigt werden sollen als QR-Code, oder uri+betrag, wenn für diese URI etwas bezahlt wurde. Der Betrag kann unterschiedlich sein!
 +
 +
Nur mit TLS, mit cert-pinning + client-side cert! Auch checken, welche crypto verwendet wird, kein RC4 erlauben!
 +
TLS macht schon challenge/response, d.h. es ist replay-sicher
 +
 +
Geldfluss in anderer Richtung:
 +
 +
 +
  1. Automat erkennt QR-Code
 +
  2. K->S: erkannte uri und Betrag, der gerade in € eingezahlt wurde
 +
sendbtc:
 +
address: bitcoin://aoishjdsoaidhashd
 +
eurocent: 3000
 +
  3. S->K: Transaktions-ID
 +
sentbtc:
 +
txid: aosihduawiusdfhgsiufhewufbsidjlbfkdsbfdfksb
 +
4. Transaktions-ID im Kassomat loggen!
 +
 +
Fehlerfall zu Punkt 3:
 +
sentbtc:
 +
error: "message"
 +
</pre>
  
 
[[Kategorie:Projekte]]
 
[[Kategorie:Projekte]]

Aktuelle Version vom 9. Dezember 2014, 04:30 Uhr

Sprache: Deutsch
Subpages:

WTF

Kassomat
No-Logo.png

Gestartet:

XX.10.2012

Involvierte:

User:anlumo

Status:

in progress

Beschreibung:

box which manages money, you pay for stuff, crowdfund, etc.

Zuletzt aktualisiert:

09.12.2014

Eine selbstgebaute Kassa mit Touchinterface, die hauptsaechlich als Ersatz zur offenen Kassa im Einsatz sein soll, die verhindern soll dass nicht einfach so mehrere Geldscheine aus der Kassa verschwinden. Zusaetzlich eroeffnen sich angenehme Funktionalitaet wie zB: iButton Credits, automatische Buchhaltung, Lazzzor Jobs erfassen, Barcode Scanner,.. whatnot

IMPORTANT NOTE:

Kassomat itself is not the metalab.

There are certain parties that will use the Kassomat, where metalab shall be one. Kassomat uses the concept of a “project” in the software. Every project has an owner (such as the metalab, the photolab group, a single person, etc). This owner is responsible for handling all legal and tax implications. Kassomat is only a box where people put money in, that records which project got what amount of money, so it can be split up again afterwards.

In addition to that, we're planning to allow people to prepay small amounts of money, so we can do stuff like payment by iButton. No loans will be given. -- anlumo, internal mailinglist, 15:15, 4.4.13

Kontakt

Mailingliste gibt es auch! kassomat@lists.metalab.at

Schlachtplan (Softwarearchitektur)

Im Gegensatz zu vorherigen Ansätzen ist momentan der Plan, das ganze Modular zu gestalten. Das soll dazu beitragen, dass sich mehrere Leute an dem Projekt beteiligen, und nicht alles so wie früher an anlumo hängen bleibt. Dazu soll es schlanke Schnittstellen zwischen den Modulen geben, und das ganze soll erweiterbar werden.

Folgende Module sind momentan eingeplant (siehe eigene Seiten für detaillierte Informationen):

Die Reihenfolge in dieser Liste definiert auch gleichzeitig die Priorität.

Hardware

anlumo hat sich lange den Kopf zerbrochen, welcher Computer hier eingesetzt werden sollte. Hier ist zu beachten an Anforderungen:

  • leicht einzubauen in ein Gehäuse
  • sehr leicht programmierbar
  • mindestens 2x USB 2.0
  • mindestens 1x RS232
  • Touchscreen 7"-10", mindestens 1024px in der Breite
  • interne Storage (bessere Ausfallssicherheit als SD-Karten)
  • SD-Karten-Anschluss für Datenbackups
  • Ethernet
  • Audiooutput
  • Kamera ein plus (für QR-Code)

Android-Tablets waren im Gespräch, aber da scheiterts an den USB-Interfaces. Billige China-Tablets haben zwar USB OTG, aber man kann sie nicht gleichzeitig aufladen und als USB Host verwenden. Ethernet ist da auch so eine Sache.

Nach langer Suche wurde ein Gerät gefunden, das allen Anforderungen entspricht. Dies nennt sich x210ii Package C. Dabei handelt sich eigentlich um ein Demoboard um Tablets zu entwickelt, eignet sich aber ideal für diesen Anwendungsfall.

Es hat einen ARM Cortex A8 mit 1GHz und 512MB RAM. Es sind 4GB onboard Flash vorhanden. Das Gerät ist bereits im Metalab lagernd und wurde auch schon eingehend untersucht. Es unterstützt GNU/Linux, Android und Windows CE.

Betriebssystem

Auch hier gab es viele Überlegungen. Zuerst war lange vorgesehen, dass Qt5 mit QtQuick auf Linux zum Einsatz kommt. Das Problem damit ist, dass diese Library keiner im Lab wirklich kann, und es will sie auch keiner wirklich lernen. Es gibt ein paar, die Qt selber können, aber dann auch nicht mit QtQuick.

Webinterface war auch eine Überlegung, aber die Erfahrungen mit dem Hackersurprise-Interface haben das als sehr performancehungrig exponiert, und damit wurden diese Überlegungen wieder verworfen. Man könnte vermutlich mit viel Herumbasteln irgendetwas grausames zusammenschustern, das halbwegs schnell läuft (ohne Animationen oder sonst irgendwelche Spielereien), aber das macht dann auch keine Freude.

Nächste Idee war, von GNU/Linux wegzugehen, und ein alternatives Betriebssystem zu suchen, das mit der Zielhardware auch zusammenspielt. Hier sticht natürlich Windows CE heraus, das schon seit vielen Jahren erfolgreich in diversen Endkundengeräten wie Bankomaten oder Wärmebildkameras eingesetzt wird. Okok, ich hör schon auf ;)

Android ist generell ein Betriebssystem, das (inzwischen) speziell auf Touchscreen-Devices ausgelegt ist. Es hat auch Unterstützung für Kiosk-Applikationen (wo der Kassomat ein klassisches Beispiel ist). Es verwendet eine spezielle Java-Library, um UI darzustellen. Leider kann aber anlumo (auf dem das ) das genau so gut wie QtQuick (nämlich gar nicht), und die Person im Lab, die das nötige Vorwissen dafür mitbringen würde, will leider mit dem Kassomaten nichts zu tun haben.

Vor kurzem ist Unity3D 4.6 mit dem neuen UI rausgekommen. Damit kennt sich anlumo sehr gut aus, und das neue UI-System sollte nach ersten Recherchen her auch sehr gut dafür geeignet sein. Es klingt vielleicht absurd, eine Game Engine für ein POS-Interface zu verwenden, aber auf der anderen Seite sind dafür sehr viele Tools vorhanden, und Animationen sind auch kein Problem.

Unity3D läuft auf ARM-Prozessoren nur in iOS und Android, d.h. es muss Android eingesetzt werden dafür.

Software

x210ii mit Unity3D-Programm drauf laufend. Der Moire-Effekt entsteht durch die Schutzfolie am Display, die kommt erst nach der Montage runter

Auf dem Tablet läuft ein gerootetes Android 4.0.4. Vielleicht wäre es möglich, ein neueres Android (4.4.4) drauf zum laufen bringen, allerdings müsste das jemand dann portieren, und anlumo kennt sich damit nicht aus. Unity3D braucht mindestens Android 2.3, d.h. das ist kein Problem. anlumo hat auch schon erfolgreich ein Programm auf dem x210ii zum Laufen gebracht.

Der Plan sieht jetzt so aus, das alle anderen Module als eigener Service auf dem Android-Gerät laufen, die dann über Intents miteinander kommunizieren. Diese Intents sind genau auf so eine Art der Kommunikation ausgelegt, das sollte sich gut kombinieren. Diese Services können dann in wasauchimmer geschrieben sein, wobei das Intents-API leider Java ist (d.h. man muss zumindest dafür JNI verwenden, wenn die Umgebung keinen Wrapper bereitstellt).

Folgende Programmiersprachen sollten möglich sein:

Linkgrab

Zeitplan

  • 'All-in Alpacca' Alpha, when its done
    • Man kann Zeug bezahlen und bekommt Retour Geld!
    • Spenden.
    • Einkaeufe werden geloggt.
    • Gehaeuse
  • 'Bumble Bee' Beta, when its done
    • anlegen von Projekt/Community Töpfen
    • moneycodes zum ausbezahlen von spenden.
    • Bitcoin bezahlen und auszahlen lassen
    • Shiny final UX fuer Kassomat
    • Vinylcutter/Druckerjobs bezahlbar
  • 'Funny Ferret' Final, when its done
    • Einloggen mit MOS-Account moeglich
    • Strichcode-Erkennung
    • Laserjobs bezahlbar - LazzerAuth-Integration
    • Shiny final UX fuer Backend; Projekt/Community-Topfverwaltung
    • sonstige softwareseitige Features

Bisher entstandene Kosten

  • Geldcheckhardware von aus.at, 1006€ (abgerechnet)
    • Smart Hopper
    • NV200 + Smart Payout
    • passendes Kabelzeug
  • 2 Netzteile ueber User:overflo bestellt, 52€ (abgerechnet)
    • er hat eine Rechnung ans Metalab gestellen.
  • Rohmaterial fuer das Gehaeuse
    • Aluprofile, 52€ (abgerechnet)
    • Schnellverbinder fuer Eckverbindungen, 145€ (abgerechnet)
    • 100xNutsteine, 30€ (abgerechnet)
    • 200xSchrauben & Beilagscheiben, 7€ (abgerechnet)
    • 2x 1m Flacheisen, 8€ (abgerechnet)
  • Arbeitszeit fuer Software und Gehaeusebau: ahahahahahah

Insgesamt (zur Zeit): 1301€

was gerade passiert (ieren wird)

  • Ende Jaenner/Anfang Februar Hobbes wegen Gehaeuse fragen.
  • Yocto-Image fuers Netbook basteln
  • es wird fleissig gecodet.
    • feinheiten beim geldwechsel-screen
    • SSP commands implementieren
    • was gekauft wird muss vernünftig geloggt werden.
    • Klartextkommunikation mit Geldautomataton. Encryption implementiert.
      • encrypte kommunikation setup fehlt noch.
  • alle Gehaeuseteile beisammen! yea.
  • 25.6 Gehaeusezutaten bestellt. 1.7.13 verschickt worden
  • Datenbankkommunikation mit der UI.
  • Gehaeuseplan ist fertig, Stueckliste wird erstellt.
  • 8.6 und 9.6 Kassomat Hackathon, lets do this.
  • 2.6 Kassomat Pre-Hackathon.. vierlex kann einführung in Qt geben, anlumo einführung in c++, projektbezogen
  • es wurde viel in Richtung Bitcoin definiert/spezifiziert.
  • finale Gehäuseplanung fertig! wohoo!
Kassomat-Mockup.png
  • MendlMax Netzteile haben sich als passender temporaerer Ersatz herrausgestellt. eigene netzteile sind bestellt.
    • mittlerweile sind eigene Netzeile eingetroffen. juhu!
  • Hardware ist da! fehlt nur noch das Netzteil dann kanns losgehen!!!<s/>
  • <s>Lieferung in Auftrag gegeben, ETA Mitte/Ende Jaenner
  • Arbeitsgruppentreffen mit Bitcoin Leuten
  • rudimentaeres GUI bauen (http://qt.digia.com/Global/Images/Qt/Files/EducationMaterial/L7%20-%20pdf.zip fuer alle die mitmachen wollen)
  • Datenbank planen
  • in den Linux-Example Code einlesen (wer das "SDK" haben will kassomat-owner@lists.metalab.at anschreiben, nutzt nicht viel wenn man die Hardware hat aber nja..)

was bisher geschah...

  • November 2014 Schreie werden laut, dass endlich was weitergehen soll. anlumo nimmt sich dem ganzen an, und baut Schlachtpläne.
  • 3.4.2013 Anlumo und Vierlex und viele Bitcoin-Leute haben darueber geplaudert wies jetzt genau rennen soll. ergebnis sieht man weiter unten. Das Feature wurde mal fuer die Beta angelegt.
  • 15.2 - 17.2.2013 waehrend des aeusserst erfolgreichen Hackathon 9 wurde die Hardware mit buggy Testprogrammen unter Windows und Linux erfolgreich auf Funktionalitaet ueberprueft sowie weitere Vorgehensweise beschlossen. Checkout le git.
  • 7.2.13, Geldscheinmanagment-Hardware wurde erfolgreich erworben.
  • 7.1.13, spontane, interessante Plauderei mit den Bitcoin-Leuten ueber die Moeglichkeit ihre bereits bestehende APP einzubinden. Kassomat braeuchte dann dementsprechend permanenten Internetzugang. Arbeitstreffen wird folgen.
  • 19.12.12, 10:00, SBahn Station/Strebersdorf treffen mit User:ΠTΩ wegen dem Gehaeuse planen/Hardware besichtigen. War recht lustig, Vorführeffekt, Gerät hat nicht reagiert, aber es wurde angeboten wenn wir die Teile abholen kommen, sie Vorort auszupackenm zusammenzubauen und zu testen damits auch fix funktioniert.
  • 30.11.12, Angebot ist da, das ganze Zeug kostet 1016e. Wuerde gerne mit Zwax und Tom vorher das Zeug besichtigen und das Gehaeuse planen bevor wirs kaufen. moeglich erst ab 10ten Dezember weil Tom daweil in den US verweilt.
  • 24.11.12, Angebot von AuS.at wird eingeholt.
  • 22.11.12, ca. 20:00 treffen sich User:ΠTΩ und User:Vierlex und besprechen das Gehaeuse einer war krank, Ersatztermin folgt.
  • 20.11.12 Weitere GeldscheinEss- und -ausspuck Loesung Vega+RC von JCM. Sowie eine groessere All-in-One Loesung MCT 100(beinhaltet den Vega+RC) die man etwas customizen wuerde bzw vielleicht billiger kriegen koennt wenn man bestimmte Features nicht mitbestellt. Grosses Plus ist das bereits vorhandene (wenn auch sehr grosse) Gehaeuse! Fuer beide Items wurde bereits per-Mail angefragt. update User:ΠTΩ baut ein tolles Gehaeuse! voll super.
  • 18.11.12 erstes offizielles Orga Treffen eigentlich nur zum Thema Gehaeuse. Es ist schwerer als gedacht eine kostenguenstige und professionelle Lösung zu finden (zu dem das Budget sich verschmälert hat, siehe unten). Weitere Recherche nach geeignetem Material oder bereits fertigen Boxen nötig.
  • WICHTIG erstes Organisations treffen in Planung! am 18.11
  • 14.11.12 (nachtrag) ersteigerter NV200 ist NICHT erweiterbar mit einem Smartpayout Modul, daher muss alles neu angeschaft werden. dadurch erhöhen sich die Kosten auf 850€ OHNE Gehaeuse!
  • 13.11.12 Windows und Linux SDK get! (für Cash-Hardware)
  • 7.11.12 erstes UI Brainstorming. gar nicht so einfach. & Piratenpad Update.
  • 5.11.12 you can has http://piratepad.net/CUBI9uXphb (fuer Planung und Organisation) and https://github.com/Metalab/kassomat
  • 1.11.12 User:Vierlex schaut sich die low-level API PDF der Geraete an. NV200 (ohne Smart Payout Modul) um 160€ ersteigert. Hat auch um C Libraries bei inovative technology angefragt

Was gibts zu tun? (und wer machts)

Abmessungen in mm
Gehaeuseprovisorium ausgeführt
  • Frontend implementieren (siehe Schlachtplan)
  • Backened implementieren (siehe Schlachtplan)
  • AuthentifizierungsschnittstellenBLA zum MOS

done

  • Wie schaut die UIX aus?
  • Wie verbindet man Geldcheckhardware mit Laptop?
  • API von Herstellerfirma checken (haben fuer Linux/C++ auch was)
  • Wie soll die Datenbank ausschauen?

features, Features. FEATURES!

zeug was man noch tun kann.

  • Strichcodeerkennung über einen Barcodescanner (anlumo — für eine Webcam ist es dort zu dunkel! habe ich ausprobiert)
  • Logging der verschiedenen Einnahmen (fuer Buchhaltung interessant und Statistiken: Mate-konsum um welche Uhrzeiten am meisten verkauft?)
  • Lazzzor Jobs bezahlen
  • iButton mit Credits
  • Vinyldrucker Jobs bezahlen
  • 2D/3D-Druckeraufträge bezahlen
  • Scannersachen bezahlen
  • Autonome Kassaverwaltung (für div. Kleingruppen zb Fotolab,Werkstatt die über den Kassomat Geld in ihre gemeinsame Kassa einzahlen und sich auszahlen lassen können)
  • Custom Bezahlauftrag (wieviel/wofuer, Spende)
  • Verwaltung von Spendentöpfen ala kickstarter.com! immer sichtbar, immer einzahlbar. Automatische Bewerbung von aktuellen Projekten als Idle-Screen.
  • Eine weitere Red Alert-Anzeige
  • von hand eingetragene "its empty"-notification bei bezahlung von schrauben oder bauteilen aus dem sortiment (falls gwünscht)
  • Metacoins!
  • Bitcoins!

Bitcoin/Kassomat-Protokoll

Ablauf (K=Kassomat, S=BC-Server):

  1. K->S Jemand will €2 bezahlen
quote:
 eurocent: 200
  2. S->K
quote:
 uri: bitcoin:16f5635f73f?amount=0.01465324
  3. K: wandelt uri in einen QR-Code um und zeigt ihn an (->zxing)
  4. warten… (sleep 10sec)
  5. BT-Workflow:
  6. 
    1. S->K €2 wurden bezahlt
receivebtc:
 uri: bitcoin:16f5635f73f?amount=0.01465324
 eurocent: 5000
 txid: aosihduawiusdfhgsiufhewufbsidjlbfkdsbfdfksb
    2. K: Dialog wird geschlossen (mit Danke-Hinweis oder sowas)
    3. Wenn mehr als das gezahlt wurde: Guthaben in € wird aufgerechnet
  7. normaler Workflow:
  8. 
    1. Geld wird eingeworfen, als Kontostand wird €8 angezeigt.

Websocket-Protokoll:
hinschicken nur cent-Beträge
zurück kommen URIs, wenn sie angezeigt werden sollen als QR-Code, oder uri+betrag, wenn für diese URI etwas bezahlt wurde. Der Betrag kann unterschiedlich sein!

Nur mit TLS, mit cert-pinning + client-side cert! Auch checken, welche crypto verwendet wird, kein RC4 erlauben!
TLS macht schon challenge/response, d.h. es ist replay-sicher

Geldfluss in anderer Richtung:


  1. Automat erkennt QR-Code
  2. K->S: erkannte uri und Betrag, der gerade in € eingezahlt wurde
sendbtc:
 address: bitcoin://aoishjdsoaidhashd
 eurocent: 3000
  3. S->K: Transaktions-ID
sentbtc:
 txid: aosihduawiusdfhgsiufhewufbsidjlbfkdsbfdfksb
 4. Transaktions-ID im Kassomat loggen!

Fehlerfall zu Punkt 3:
sentbtc:
 error: "message"