NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Super, damit habe ich schon mal ein Update gemacht.
Da ich iobroker erst seit ca. 2 Monaten nutze reicht das. Aber vielleicht muss ich in 1 bis 2 Jahren mal ein komplettes Update duchführen. Wie macht man das? Ich würde es geren einmal testen um ein funktionierendes Vorgehen zu haben.
Muss man eigentlich immer beim gleichen iobrocker Container bleiben oder kann man die auch wechseln,für den Fall, dass dieser irgendwann nicht mehr gepflegt wird? -
Kann mir jemand eventuell kurz einen Ablaufplan geben, wie ich vom Bridge-Modus in den MacVLAN-Modus wechsle, ohne immensen Aufwand?
Hintergrund ist die Tatsache, dass ich den UPNP-Adapter nicht nutzen kann, da der freizugebende Port schon von der Audiostation der Diskstation belegt ist
-
@Snapergy
Ein, zwei gute Anleitungen findest Du hier und bei Stuebi (http://www.stueben.de/iobroker-im-docker-auf-der-synology-diskstation-im-gleichen-subnet/).
Ich bin dann allerdings den Weg via Portainer gegangen, weil GUI. Das Video ist zwar für Docker Swarm, also mehrere Docker, aber gibt trotzdem einen guten Einblick: https://www.youtube.com/watch?v=1HCHkMV-IccHabe meinen (Leidens-)Weg hier im Forum auch halbwegs dokumentiert.
Schau doch mal bei meinen letzten Threads und meld Dich gern mit Rückfragen. Eventuell ist das aber in einem eigenen Thread auch besser aufgehoben. ,)LG,
P -
Wenn du von Leidensweg sprichst, war der Weg recht steinig? Also nicht einfach mal kurz runterfahren, Einstellungen anpassen und wieder hochfahren?
-
Die Steine waren eher die Vorabeit, das Einlesen, etc.
Am Ende lief's aber, wie von dir beschrieben ,)
Denke aber auch nur, weil mich recht gut vorbereitet hatte. -
Bei mir war heute Patch-Day
Ich habe zuerst an die 20 Adaper updates gemacht.
Dann den Docker Container mit Re-Create auf ich glaube 5.0 gebracht.
So weit läuft alles.Jetzt wollte ich noch den js-controller 2.2.9 updaten.
in der console stop iobrocker kommt:
"iobroker controller daemon is not running"Läuft aber.
Alternativ sollte es ja auch mit pkill io funktionieren. Dann wird aber der komplette Container gestoppt.Ich habe jetzt nicht alle Beiträge gelesen. Hat sich beim js-controller update was geändert?
Für Tipps wöre ich dankbar.Gruß
Bongo -
@Bongo sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Alternativ sollte es ja auch mit pkill io funktionieren. Dann wird aber der komplette Container gestoppt.
Schau mal hier
-
@fastfoot sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Schau mal hier
Danke für den Support
-
Wäre es nicht an der Zeit auch den Startthread mit den neusten ToDo´s zu aktualisieren bzw. ein paar kleine Tipps zu hinterlegen ?
.... denn welcher Newbie ließt sich hier über >2100 Beiträge durch , was sich verändert hat .
wie z.b.
-
@Glasfaser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Wäre es nicht an der Zeit auch den Startthread mit den neusten ToDo´s zu aktualisieren bzw. ein paar Tipps zu hinterlegen ?
Das würde ich begrüßen.
Es fehlt mir auch welches der aktuelle Container ist und welche Versionen er beinhaltet.
Es steht sicher irgendwo aber dieser Thread ist für viele die erste Anlaufstelle. -
@Bongo sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Das würde ich begrüßen.
Wenn man sich hier alles durchließ über >2100 Beiträge
wiederholen
sich alle Anfragen mit den immer wiederkehrenden Problemen ,
......aber ich denke mal das liegt daran das der Thread schon zu groß geworden ist .Es ist aber @andre Entscheidung und deshalb wir es schwer es jedem recht zu machen , denn nicht jeder User springt auf eine Offizelle Seite und bespricht dann das Problem hier im Thread ..
Denn laut Hauptinfo :
[EDIT 28.09.2017] Achtung! Die Anleitung aus diesem Post wird nicht mehr gepflegt. Ich habe aus der gesamten Diskussion ein offizielles Tutorial erstellt und veröffentlicht, welches ich natürlich auch entsprechend pflegen und aktualisieren werde. Natürlich werde ich hier wie gewohnt weiter auf Fragen und Probleme antworten und ggf. weitere Punkte aus der Diskussion in das Tutorial einfließen lassen.
Die offizielle Anleitung liegt ab sofort hier: https://buanet.de/2017/09/iobroker-unte … skstation/
-
@Glasfaser @Bongo und alle Anderen...
SORRY für meine temporäre Abwesenheit und die aktuelle Nicht-Erreichbarkeit meiner Tutorials! Wie ich ja bereits berichtet habe bin ich gerade dabei die Seite umzubauen und zu erweitern. Dazu müssen meine Tutorials umgezogen und komplett überarbeitet/ teilweise aufgeteilt werden. Der Schritt war notwendig, weil ich mein Angebot für euch deutlich erweitern möchte... Auch was Support und den Einstieg zu Docker betrifft... Dazu aber zu gegebener Zeit mehr.
Leider ist meine Zeit aktuell relativ knapp. U. A. aufgrund von Corona bin ich beruflich gerade sehr stark eingebunden. Und dann sind da ja auch noch die privaten Verpflichtungen. Da ist Abends der Akku ziemlich leer und der Kopf brummt...
Trotzdem gibt es einen Lichtblick! Da die Familie in den Ferien außer Haus ist, werde ich in den nächsten Tagen genug Zeit haben den letzten Feinschliff an der neuen Site an zu setzen und sie wieder online zu schalten!!! Das Ende der Abstinenz ist also in Sicht!!!
Ein weiteres SORRY an Klaus, Sören, Maximilian, Norbert, Axel, Holger, Sandra und alle die ein Github Issue erstellt haben (sofern Sie hier mit lesen). Ich habe eure Nachrichten erhalten und werde sie (so wie ich das bei eigentlich jeder Nachricht tue) nach dem Release der neuen Website auch beantworten! Versprochen!
@Glasfaser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Wäre es nicht an der Zeit auch den Startthread mit den neusten ToDo´s zu aktualisieren bzw. ein paar kleine Tipps zu hinterlegen ?
Nein, das macht aus meiner Sicht keinen Sinn. Das Thema ist schlicht zu komplex. Das kann ich nicht in einem Post niederschreiben. Ich pflege die readme auf Github, mit der jeder, der mit Docker vertraut ist, auskommen müsste, sowie meine Website mit dem passenden Tutorial sowie (in Zukunft) weiteren Tutorials z.B. zum Thema MACVLAN oder Container Update/ Upgrade (und noch viel mehr!).
Sobald die neue Website online ist, werde ich aber den Startpost hier einmal überarbeiten, damit da zumindest keine falsche/ veraltete Infos mehr drin stehen...@Glasfaser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
denn nicht jeder User springt auf eine Offizelle Seite und bespricht dann das Problem hier im Thread
Wer nicht bereit ist sich auch in extern verlinkten Content ein zu arbeiten, dem kann ich dann leider auch nicht helfen. Ich kann nur den entsprechenden Content anbieten...
@Glasfaser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
.... denn welcher Newbie ließt sich hier über >2100 Beiträge durch , was sich verändert hat .
@Glasfaser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Wenn man sich hier alles durchließ über >2100 Beiträge wiederholensich alle Anfragen mit den immer wiederkehrenden Problemen ,
......aber ich denke mal das liegt daran das der Thread schon zu groß geworden ist .Das kann man sicher nicht erwarten! Was ich aber beobachte ist, dass offenbar nur die Wenigsten wissen, dass man auch einen Thread durchsuchen kann. Denn dann werden aus 2100 Beiträgen plötzlich nur 20 oder 30 Posts zu einem bestimmten Thema... Immer noch mühsam, aber das ist eben so!
Leider ist es für viele User eben einfacher die Fragen nochmal zu stellen und sich von einem "aktiven Mitleser" den Link zum gleichen Thema innerhalb des Threads präsentieren zu lassen.Letztendlich bleibe ich aber bei meiner bisherigen Meinung: Das Forum dient leider eher zur Kommunikation und nicht zur Dokumentation. Das ist der Grund warum ich auf der alten Seite die Knowledgebase eingeführt hatte und auf der neuen Site auf "Mini-Tutorials" setzen werde. Dort werde ich die hier immer wieder auftretenden FAQ verarbeiten, sodass bei wiederkehrender Fragestellung in Zukunft das Posten eines einfachen Links reichen sollte...
MfG,
André -
Danke andre , für deine kurze Stellungnahme
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Das kann man sicher nicht erwarten! Was ich aber beobachte ist, dass offenbar nur die Wenigsten wissen, dass man auch einen Thread durchsuchen kann. Denn dann werden aus 2100 Beiträgen plötzlich nur 20 oder 30 Posts zu einem bestimmten Thema... Immer noch
mühsam, aber das ist eben so!Damit andere wissen was du meinst :
In User Einstellung aktivieren :
STRG + F
-
@andre
Sehr cool da bin ich ja mal gespannt. -
Ich mache mal ein Push ... da ich nur die Benachrichtigung bekommen habe .
@all
siehe Startbeitrag
-
@Glasfaser Ich war halt noch nicht so weit
Habe jetzt die Tutorials wieder online und den ersten Post hier im Thread entsprechend angepasst.
Wie man an meiner Signatur auch erkennen kann, sind meine Tutorials jetzt umgezogen. Dabei habe ich so gut wie alles gleich einmal überarbeitet, ergänzt und teilweise aufgeteilt (deshalb hat es auch so lange gedauert).
Hoffe die Arbeit hat sich gelohnt und ich habe nichts übersehen.
Wer sich selbst davon überzeugen will:MfG,
André -
Ich wechsel aktuell mein iobroker System von einem OrangePi auf denen neuen Helios64 und dort soll dann auch iobroker nur noch im Docker laufen.
Ich versuche verzweifelt meinen Bluetooth Stick in den Container zu integrieren um ihn mit dem BLE Adapter verwenden zu können.
Laut der Doku vom BLE Adapter soll man ja folgende Packages zusätzlich installieren...This adapter needs additional libraries to compile. See https://github.com/sandeepmistry/noble#prerequisites for detailed instructions. On Raspberry Pi and similar, this should do it: sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin
das habe ich in meinem Stack (docker-compose) auch so implementiert...
version: '2' services: iobroker: image: buanet/iobroker:latest container_name: iobroker hostname: iobroker network_mode: bridge ports: - "8081:8081" environment: - PACKAGES=bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin volumes: - /opt/docker/iobroker:/opt/iobroker restart: unless-stopped
und es wird auch in der Container console als installiert angezeigt...
root@iobroker:/opt/iobroker# apt list | grep bluez WARNING: apt does not have a stable CLI interface. Use with caution in scripts. bluez/now 5.50-1.2~deb10u1 arm64 [installed,local] root@iobroker:/opt/iobroker#
nur leider ist die Ausgabe auf hciconfig keine positive...
root@iobroker:/opt/iobroker# hciconfig Can't open HCI socket.: Address family not supported by protocol root@iobroker:/opt/iobroker#
auf meinem alten nativen iobroker System (OrangePi) sieht die Ausgabe wie folgt aus...
[root@OrangePi:~]$ hciconfig hci0: Type: Primary Bus: USB BD Address: 00:1A:7D:DA:71:13 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING RX bytes:640 acl:0 sco:0 events:41 errors:0 TX bytes:2169 acl:0 sco:0 commands:41 errors:0 [root@OrangePi:~]$
und lsusb gibt mir folgendes dazu...
[root@OrangePi:~]$ lsusb Bus 008 Device 002: ID 0451:16a8 Texas Instruments, Inc. Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub [root@OrangePi:~]$
wie kann ich denn den Bluetooth Stick an meinen Container weiter reichen?
Über einen Tipp dazu wäre ich sehr dankbar!edit:
ok, mit der Option devices konnte ich schon einmal meinen ZigBee Stick einbinden und der zigbee Adapter wird grün...devices: - "/dev/ttyACM0:/dev/ttyACM0"
der Stick wird auf ttyACM0 gelinkt...
root@helios64:/opt/docker# ll /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Oct 16 20:09 usb-Texas_Instruments_CC2538_USB_CDC-if00 -> ../../ttyACM0 root@helios64:/opt/docker#
jetzt fehlt lediglich nur noch der Bluetooth Stick, damit dieser im Container ankommt und der BLE Adapter ihn verwenden kann.
edit2:
und auch für den Bluetooth Stick habe ich eine Lösung, auch wenn sie mir eigentlich nicht so gut bekommt.
Wenn man den network_mode auf host setzt funktioniert es auch mit dem Bluetooth Stick...version: '2' services: iobroker: image: buanet/iobroker:latest container_name: iobroker hostname: iobroker #network_mode: bridge #ports: # - "8081:8081" network_mode: host environment: - AVAHI="true" - PACKAGES=bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin volumes: - /opt/docker/iobroker:/opt/iobroker devices: - "/dev/ttyACM0:/dev/ttyACM0" restart: unless-stopped
auch in der Container console ist es jetzt über hciconfig zu finden...
root@iobroker:/opt/iobroker# hciconfig hci0: Type: Primary Bus: USB BD Address: 00:1A:7D:DA:71:13 ACL MTU: 310:10 SCO MTU: 64:8 DOWN RX bytes:588 acl:0 sco:0 events:31 errors:0 TX bytes:371 acl:0 sco:0 commands:31 errors:0 root@iobroker:/opt/iobroker#
Bluetooth Stick Lösung gefunden hier...
https://github.com/moby/moby/issues/16208 -
@TDCroPower Soweit ich das ergründen konnte ist Bluetooth kein USB Device sondern gilt als Netzwerk Device. Demzufolge lässt es sich nicht wie ein USB Device einfach in den Container durchreichen. Ich konnte bezüglich Docker da keine Möglichkeit finden. Mag sein, dass man aus dem Container Zugriff bekommt wenn man den Container mit erweiterten Rechten und im Netzwerkmodus Host laufen lässt... Das ist aber nur Theorie...
Wenn du eine Lösung finden solltest, lass es mich wissen...
MfG,
André -
@andre die Lösung habe ich im Edit oben eingefügt.
Wie du schon erwähnt hast ist der Bluetooth Stick kein typisches USB Gerät und somit nicht mit den üblichen Einbindmöglichkeiten nutzbar.
Kurz und knapp funktioniert es mit dem network_mode -> host anstatt bridge.
Mein Problem dabei ist halt nur das ich somit die Ports nicht direkt im Griff habe ausser ich setze in diesem Docker Beispiel die env Variablen.ByTheWay:
Wie verhält es sich denn mit den Ports im Vergleich zwischen host bzw. bridge mode?Im Bridge mode sehe ich auf dem host direkt welcher Port aus einem docker kommt...
root@helios64:/opt/docker# netstat -nltup | grep docker-proxy tcp6 0 0 :::5514 :::* LISTEN 3287/docker-proxy tcp6 0 0 :::9099 :::* LISTEN 16683/docker-proxy tcp6 0 0 :::8843 :::* LISTEN 3139/docker-proxy tcp6 0 0 :::8080 :::* LISTEN 3231/docker-proxy tcp6 0 0 :::8880 :::* LISTEN 3092/docker-proxy tcp6 0 0 :::80 :::* LISTEN 3066/docker-proxy tcp6 0 0 :::53 :::* LISTEN 3159/docker-proxy tcp6 0 0 :::8088 :::* LISTEN 16697/docker-proxy tcp6 0 0 :::8920 :::* LISTEN 19041/docker-proxy tcp6 0 0 :::8443 :::* LISTEN 3180/docker-proxy tcp6 0 0 :::443 :::* LISTEN 3014/docker-proxy tcp6 0 0 :::8096 :::* LISTEN 19055/docker-proxy tcp6 0 0 :::6789 :::* LISTEN 3254/docker-proxy udp6 0 0 :::3478 :::* 3314/docker-proxy udp6 0 0 :::10001 :::* 3043/docker-proxy udp6 0 0 :::1900 :::* 3340/docker-proxy udp6 0 0 :::53 :::* 3199/docker-proxy udp6 0 0 :::67 :::* 3114/docker-proxy root@helios64:/opt/docker#
im host mode sehe ich halt lediglich den Dienst...
root@helios64:/opt/docker# netstat -nltup | grep admin tcp6 0 0 :::8081 :::* LISTEN 29997/io.admin.0 root@helios64:/opt/docker#
auch im Portainer ist es ein Unterschied zwischen host/bridge optisch zu sehen, denn nur im bridge Mode sieht man im Container Tab die genutzten Ports und bei host steht dort nur ein "-".
-
Hallo @andre
ich habe das Problem, dass ich kein Telegram-Adapter im Docker (buanet-Image im macvlan-Modus) zum laufen bekomme. Adapter lässt sich ohne Probleme installieren, jedoch bekomme ich den Adapter nicht gestartet -> mit folgender Fehlermeldung:
host.iobroker-docker 2020-10-19 20:33:16.326 error instance system.adapter.telegram.1 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: } host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: ] host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: '/opt/iobroker/node_modules/iobroker.telegram/main.js' host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: '/opt/iobroker/node_modules/iobroker.telegram/node_modules/socksv5/index.js', host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: requireStack: [ host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: code: 'MODULE_NOT_FOUND', host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at internal/main/run_main_module.js:17:47 { host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at Function.Module._load (internal/modules/cjs/loader.js:878:14) host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at Module.load (internal/modules/cjs/loader.js:985:32) host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10) host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at Module._compile (internal/modules/cjs/loader.js:1137:30) host.iobroker-docker 2020-10-19 20:33:16.326 error Caught by controller[1]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.telegram/main.js:23:15) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at require (internal/modules/cjs/helpers.js:72:18) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Module.require (internal/modules/cjs/loader.js:1025:19) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Function.Module._load (internal/modules/cjs/loader.js:878:14) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Module.load (internal/modules/cjs/loader.js:985:32) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Module._compile (internal/modules/cjs/loader.js:1137:30) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.telegram/node_modules/socksv5/index.js:13:41) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Array.forEach (<anonymous>) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at /opt/iobroker/node_modules/iobroker.telegram/node_modules/socksv5/index.js:14:43 host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at require (internal/modules/cjs/helpers.js:72:18) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Module.require (internal/modules/cjs/loader.js:1025:19) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Function.Module._load (internal/modules/cjs/loader.js:841:27) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15) host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: - /opt/iobroker/node_modules/iobroker.telegram/main.js host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: - /opt/iobroker/node_modules/iobroker.telegram/node_modules/socksv5/index.js host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: Require stack: host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.telegram/node_modules/socksv5/lib/auth/@eaDir' host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: ^ host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: throw err; host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[1]: internal/modules/cjs/loader.js:968 host.iobroker-docker 2020-10-19 20:33:16.325 error Caught by controller[0]: See https://github.com/yagop/node-telegram-bot-api/issues/319. at internal/modules/cjs/loader.js:1137:30 host.iobroker-docker 2020-10-19 20:33:16.324 error Caught by controller[0]: In the future, you will have to enable it yourself. host.iobroker-docker 2020-10-19 20:33:16.324 error Caught by controller[0]: Mon, 19 Oct 2020 18:33:16 GMT node-telegram-bot-api deprecated Automatic enabling of cancellation of promises is deprecated.
Eine Idee dazu?
Danke im voraus!