Die OM1.2 hat einen paar Funktionen, die man per mehr oder weniger direkt per WLAN abrufen kann. Diese Funktionen kann man verwenden, um Applikationen zu programmieren, sie sind also APIs (Application Programming Interfaces). Ich zeige Dir hier, wie man das machen kann (wie man es am Mac machen kann, in Windows geht sehr ähnlich).
Zunächst startest Du das WLAN auf der Kamera und wählst dann „Geräteverbindung“.
Dann verbindest Du Deinen Computer mit diesem WLAN, siehe hier (dort steht, wie Du zu WiFi SSID und Passwort kommst).
Weiter in Safari
Im Safari-Browser (nicht Chrome, weil da konnte ich mich nicht mit der Kamera verbinden) gibts Du folgendes ein:
http://192.168.0.1/get_commandlist.cgi
Du bekommst dann eine XML-Datei, die in etwa so aussehen wird, wie im Bild 1 dargestellt ist.
Du kannst Dir diese XML-Datei auch absichern, sie listet einige wesentlichen Befehle auf, um die Kamera zumindest grundlegend fernzusteuern. Üblicherweise wird diese XML-Datei abgespeichert aber dann so aussehen:
<?xml version="1.0"?><oishare><version>5.00</version><oitrackversion>3.10</oitrackversion><support func="web"/><support func="remote"/><support func="gps"/><support func="moviestream"/><support func="firmup"/><support func="mysetbackup"/><support func="cameralog"/><cgi name="get_connectmode"><http_method type="get"/></cgi><cgi name="switch_cammode"><http_method type="get"><cmd1 name="mode"><param1 name="rec"><cmd2 name="lvqty"><param2 name="0320x0240"/><param2 name="0640x0480"/><param2 name="0800x0600"/><param2 name="1024x0768"/><param2 name="1280x0960"/></cmd2></param1><param1 name="play"/><param1 name="shutter"></param1><param1 name="maintenance"/><param1 name="cameralog"/></cmd1></http_method></cgi><cgi name="get_caminfo"><http_method type="get"/></cgi><cgi name="exec_pwoff"><http_method type="get"><cmd1 name="mode"><param1 name="withble"/></cmd1></http_method></cgi><cgi name="set_timeout"><http_method type="get"><cmd1 name="timeoutsec"></cmd1></http_method></cgi><cgi name="get_resizeimg"><http_method type="get"><cmd1 name="DIR"><param1><cmd2 name="size"><param2 name="1024"/><param2 name="1600"/><param2 name="1920"/><param2 name="2048"/></cmd2></param1></cmd1></http_method></cgi><cgi name="get_movplaytime"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="clear_resvflg"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="get_rsvimglist"><http_method type="get"/></cgi><cgi name="get_imglist"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="get_thumbnail"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="get_screennail"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="get_movfileinfo"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="exec_movietrimresize"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="get_trimresizeprocstatus"><http_method type="get"/></cgi><cgi name="exec_erase"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="cancel_trimresize"></cgi><cgi name="get_exif"><http_method type="get"><cmd1 name="DIR"/></http_method></cgi><cgi name="set_playtargetslot"><http_method type="get"><cmd1 name="targetslot"><param1 name="1"/><param1 name="2"/></cmd1></http_method></cgi><cgi name="get_playtargetslot"><http_method type="get"></http_method></cgi><cgi name="OLYSetConnectPCInfo"><http_method type="post"></http_method></cgi><cgi name="OLYGetConnectPCInfo"><http_method type="get"></http_method></cgi><cgi name="OLYClearConnectPCInfo"><http_method type="get"></http_method></cgi><cgi name="get_resizeimg_witherr"><http_method type="get"><cmd1 name="DIR"><param1><cmd2 name="size"><param2 name="1024"/><param2 name="1600"/><param2 name="1920"/><param2 name="2048"/></cmd2></param1></cmd1></http_method></cgi><cgi name="exec_takemotion"><http_method type="get"><cmd1 name="com"><param1 name="assignafframe"><cmd2 name="point"/></param1><param1 name="releaseafframe"/><param1 name="takeready"><cmd2 name="point"/></param1><param1 name="starttake"><cmd2 name="point"><cmd3 name="exposuremin"/><cmd3 name="upperlimit"/></cmd2></param1><param1 name="stoptake"/><param1 name="startmovietake"><cmd2 name="limitter"/><cmd3 name="liveview"><param3 name="on"/></cmd3></param1><param1 name="stopmovietake"/></cmd1></http_method></cgi><cgi name="exec_takemisc"><http_method type="get"><cmd1 name="com"><param1 name="startliveview"><cmd2 name="port"/></param1><param1 name="stopliveview"/><param1 name="getrecview"/><param1 name="getlastjpg"/><param1 name="ctrlzoom"><cmd2 name="move"><param2 name="widemove"/><param2 name="telemove"/><param2 name="off"/><param2 name="wideterm"/><param2 name="teleterm"/></cmd2></param1><param1 name="supermacromfinaflock"><cmd2 name="move"><param2 name="nearstep"/><param2 name="farstep"/><param2 name="near"/><param2 name="far"/><param2 name="stop"/></cmd2><cmd3 name="movement"></cmd3></param1><param1 name="MovieThroughStart"/><param1 name="MovieThroughStop"/><param1 name="GetMovieSetting"/></cmd1></http_method></cgi><cgi name="get_camprop"><http_method type="get"><cmd1 name="com"><param1 name="desc"><cmd2 name="propname"><param2 name="touchactiveframe"/><param2 name="takemode"/><param2 name="drivemode"/><param2 name="focalvalue"/><param2 name="expcomp"/><param2 name="shutspeedvalue"/><param2 name="isospeedvalue"/><param2 name="wbvalue"/><param2 name="noisereduction"/><param2 name="lowvibtime"/><param2 name="bulbtimelimit"/><param2 name="digitaltelecon"/><param2 name="supermacrozoom"/><param2 name="exposemovie"/><param2 name="cameradrivemode"/><param2 name="QualityMovie2"/><param2 name="NoiseReductionExposureTime"/><param2 name="SilentNoiseReduction"/><param2 name="SilentTime"/><param2 name="ValidMediaSlot"/><param2 name="desclist"/></cmd2></param1><param1 name="get"><cmd2 name="propname"><param2 name="touchactiveframe"/><param2 name="takemode"/><param2 name="drivemode"/><param2 name="focalvalue"/><param2 name="expcomp"/><param2 name="shutspeedvalue"/><param2 name="isospeedvalue"/><param2 name="wbvalue"/><param2 name="noisereduction"/><param2 name="lowvibtime"/><param2 name="bulbtimelimit"/><param2 name="digitaltelecon"/><param2 name="exposemovie"/><param2 name="cameradrivemode"/><param2 name="SilentNoiseReduction"/><param2 name="SilentTime"/><param2 name="ValidMediaSlot"/></cmd2></param1><param1 name="check"><cmd2 name="propname"><param2 name="ValidMediaSlot"/></cmd2></param1></cmd1></http_method></cgi><cgi name="set_camprop"><http_method type="post"><cmd1 name="com"><param1 name="set"><cmd2 name="propname"><param2 name="takemode"/><param2 name="drivemode"/><param2 name="focalvalue"/><param2 name="expcomp"/><param2 name="shutspeedvalue"/><param2 name="isospeedvalue"/><param2 name="wbvalue"/><param2 name="exposemovie"/></cmd2></param1></cmd1></http_method></cgi><cgi name="get_activate"><http_method type="get"/></cgi><cgi name="set_utctimediff"><http_method type="get"><cmd1 name="utctime"><cmd2 name="diff"/></cmd1></http_method></cgi><cgi name="get_gpsdivunit"><http_method type="get"/></cgi><cgi name="get_unusedcapacity"><http_method type="get"/></cgi><cgi name="get_dcffilenum"><http_method type="get"/></cgi><cgi name="req_attachexifgps"><http_method type="post"/></cgi><cgi name="req_storegpsinfo"><http_method type="post"><cmd1 name="mode"><param1 name="new"/><param1 name="append"/><cmd2 name="date"/></cmd1></http_method></cgi><cgi name="get_moviestreaminfo"><http_method type="get"/></cgi><cgi name="ready_moviestream"><http_method type="get"/></cgi><cgi name="start_moviestream"><http_method type="get"/></cgi><cgi name="stop_moviestream"><http_method type="get"/></cgi><cgi name="exit_moviestream"><http_method type="get"/></cgi><cgi name="start_moviestreamts"><http_method type="get"/></cgi><cgi name="fwup_updatemode"><http_method type="get"/></cgi><cgi name="fwup_getversions"><http_method type="get"/></cgi><cgi name="fwup_sendinfo"><http_method type="get"/><cmd1 name="ObjectCompressSize"></cmd1></cgi><cgi name="fwup_sendsplit"><http_method type="post"/><cmd1 name="OffsetPos"></cmd1><cmd2 name="Byte"></cmd2></cgi><cgi name="fwup_check"><http_method type="get"/></cgi><cgi name="fwup_getfirmstatus"><http_method type="get"/></cgi><cgi name="fwup_update"><http_method type="get"/></cgi><cgi name="request_getmysetdata"><http_method type="get"/><cmd1 name="mode"><param1 name="current"/><param1 name="myset1"/><param1 name="myset2"/><param1 name="myset3"/><param1 name="myset4"/></cmd1><cmd2 name="kind"><param2 name="current"/><param2 name="factory"/></cmd2></cgi><cgi name="get_mysetbackupstate"><http_method type="get"/></cgi><cgi name="get_partialmysetdata"><http_method type="get"/><cmd1 name="kind"><param1 name="current"/><param1 name="errorinfo"/></cmd1><cmd2 name="offset"></cmd2><cmd3 name="size"></cmd3></cgi><cgi name="request_restoremysetdata"><http_method type="get"/><cmd1 name="action"><param1 name="restore"/><param1 name="errorcheck"/></cmd1></cgi><cgi name="get_mysetrestorestate"><http_method type="get"/></cgi><cgi name="get_mysetdatamodekind"><http_method type="get"/></cgi><cgi name="get_mysetdatasize"><http_method type="get"/><cmd1 name="kind"><param1 name="current"/><param1 name="errorinfo"/></cmd1></cgi><cgi name="set_mysetdatasize"><http_method type="get"/><cmd1 name="size"></cmd1></cgi><cgi name="send_partialmysetdata"><http_method type="post"/><cmd1 name="offset"></cmd1><cmd2 name="size"></cmd2></cgi><cgi name="get_extmysetmode"><http_method type="get"/></cgi><cgi name="exec_reboot"><http_method type="get"/></cgi><cgi name="get_cameraloginfo"></cgi><cgi name="get_partialcameralogdata"><cmd1 name="offset"></cmd1><cmd2 name="size"></cmd2></cgi><cgi name="clear_cameralogdata"></cgi></oishare>
Du kannst Dir z.B. testweise folgenden Befehl in den Safari-Browser eingeben:
http://192.168.0.1/get_caminfo.cgi
Safari wird Dir dann u.a. die Seriennummer und das Modell Deiner angeschlossenen Kamera anzeigen und die Seriennummer des Objektives, das an der Kamera hängt.
Bilder runterladen über den Browser
Durch eine Reihe Anweisungen, die Du im Browser eingibst, kannst Du Dir auch direkt Bilder runterladen (für den Notfall, die Standardprogramme sind sicher komfortabler):
Wir nehmen an, die Bilder liegen auf der SD-Card im Slot 1 der Kamera. Du gibst ein:
http://192.168.0.10/set_playtargetslot.cgi?targetslot=1
Wären die Bilder auf einer Karte im Slot 2 dann wäre der entsprechende 1. Befehl:
http://192.168.0.10/set_playtargetslot.cgi?targetslot=2
Nachdem Du den Slot festgelegt ( Enter nicht vergessen) hast gibst Du ein (und danach wieder Enter):
http://192.168.0.10/get_imglist.cgi?DIR=/DCIM
Du siehst dann die Ordner, die Du in diesem Verzeichnis hast. Nehmen wir an, Du möchtest die Bilder anzeigen, die Du im Verzeichnis 103OMSYS hast, dann gibst Du ein (und danach wieder Enter):
http://192.168.0.10/get_imglist.cgi?DIR=/DCIM/103OMSYS
Jetzt werden Dir die dort vorhandenen Bilder angezeigt, z.B. so:
VER_100
/DCIM/103OMSYS,P1167047.JPG,3155242,0,23600,28857
/DCIM/103OMSYS,P1167047.ORF,20596287,0,23600,28857
Wenn Du jetzt ein Bild runterladen möchtest, dann gibst Du z.B. ein:
http://192.168.0.10/DCIM/103OMSYS/P1167047.JPG
Dann wird das entsprechende JPEG gleich im Browser angezeigt, oder Du rufst die RAW-Datei auf:
http://192.168.0.10/DCIM/103OMSYS/P1167047.ORF
Hier wirst Du dann gleich direkt gefragt, ob Du das Bild runterladen möchtest. Beim JPEG lädst Du dann runter in dem Du dir rechte Maustaste drückst und dann das Bild sicherst.

Am iPhone
Ich habe jetzt nicht alles ausprobiert, aber der Befehl mit get_caminfo hat auch am iPhone funktioniert. Wahrscheinlich klappt der Rest auch.
Python Skript zum Bilder importieren
Ein kleines Python-Skript habe ich auch zusammengeschustert, das Du gerne nutzen und erweitern kannst.
- Runterladen von hier:
- Am Mac
Terminalstarten und in das Verzeichnis gehen, in dem die runtergeladene (und entkomprimierte) Datei liegt (sie heißt dannom1-2-import.py). - Dort den Befehl eingeben
python om1-2-import.py - Es geht dann ein eigenes Programmfenster auf, die Nutzung ist dann wahrscheinlich recht selbsterklärend: Slot auswählen und verbinden, dann Ordner auswählen, dann Bilder. Dann entweder alle Bilder runterladen oder nur die markierten.

Ein Video das zeigt, wie das 9KB große (kleine) Python-Skript funktioniert, siehst Du hier.
Python Skript zum Auslesen der Kameraeinstellungen
Ein Python-Skript zum Auslesen wesentlicher Kameraeinstellungen habe ich bereits erstellt.
Hier ein kleines Video:
Das Skript gibt es hier (ich habe es om-1-values.py genannt)
Python Skript zum Verändern ausgewählter Kamerawerte
Das Auslesen der Kamerawerte ist natürlich gut, spannender ist aber das Verändern von Kamerawerten. Auch das geht. Das entsprechende Python Skript gibt es hier (ich habe es om-1-set-values.py genannt).
Hier rufe ich zunächst om-1-values.py auf um die aktuellen Werte anzuzeigen, dann verändere ich mit om-1-set-values.py die eingestellten Werte und zeige das Ergebnis danach mit om-1-values.py erneut an.

