Jump to content

openhab Integration


[[Template core/global/global/poll is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

Recommended Posts

  • Replies 526
  • Created
  • Letzte Antwort

Top Posters In This Topic

  • 1 month later...

Hallo,

 

Vor dem Release hab ich mich noch mal richtig reingehängt und weitere Bricklets eingebunden. Neu gibt es Unterstützung für Bricklet Segment Display 4x7, Bricklet Digital Out 4, Bricklet Hall Effect, Bricklet IO-4 und was das allerbeste ist: Bricklet LED Strip.

 

Die vorläufige Beschreibung der Konfiguration findet ihr wieder hier:

https://github.com/theoweiss/openhab/wiki

 

weder auf https://github.com/theoweiss/openhab/wiki noch auf

https://github.com/openhab/openhab/wiki/Tinkerforge-Binding

habe ich etwas zum Hall Effect Bricklet finden können - zumindest wenn ich nach "hall" suche.

(Von OpenHAB Version 1.5 nach 1.7.1 ist das entsprechende Binding doch hoffentlich nicht wieder entfernt worden...)

 

Wie heisst denn das Hall Effect Bricklet (https://www.tinkerforge.com/de/shop/bricklets/hall-effect-bricklet.html) in OpenHAB?

 

@Tinkerforge:

Es wäre übrigens schön, wenn unter den "Programmierschnittstellen", wie z.B.

http://www.tinkerforge.com/de/doc/Hardware/Bricklets/Hall_Effect.html#programmierschnittstelle

auch das OpenHAB Binding mit Link auf die spezifische Dokumentation aufgelistet wäre

(auch wenn OpenHAB keine Programmiersprache ist).

 

Schönen Abend und Danke,

Martin

Link zu diesem Kommentar
Share on other sites

Hi Martin,

 

ja die Doku ist leider nicht mehr vollständig, da es mir an Zeit fehlt. Es wäre super, wenn sich hier jemand finden ließe, der die Dokumentation aktualisiert. Ich würde entsprechenden Input liefern. Hat jemand Lust und Zeit und am Besten auch noch etwas Erfahrung die Doku auf Englisch zu pflegen?

 

Für das Hall Effekt Bricklet werde ich vorerst eine Beispielskonfiguration erstellen und den Link hier posten.

 

Grüße,

Theo

 

Link zu diesem Kommentar
Share on other sites

Ich hijacke mal diesen Thread für ein kleines Problem mit dem Remote Switch Bricklet in Verbindung mit dem Tinkerforge Binding (1.8.0-snapshot) in Openhab 1.7.1, vielleicht hat ja jemand eine Lösung dafür oder kann das Problem bestätigen:

 

Wenn ich einen Schaltbefehl ausführe wird dieser korrekt umgesetzt, aber der Status des Schalters setzt sich nach ca. 20 Sekunden zurück auf OFF .... wie gesagt, nur der "state" nicht das "command".

 

In diesem Fall geht es um die Funkschaltsteckdose "wp_it_itr1500_3", das Problem tritt aber nicht nur mit dieser Funksteckdose auf sondern auch mit anderen.

 

openhab.cfg:

tinkerforge:hosts=192.168.2.241:4222 192.168.2.240:4223

tinkerforge:rs1.uid=ooc
tinkerforge:rs1.type=bricklet_remote_switch
tinkerforge:rs1.typeADevices=wp_elro_ab440wd_1 wp_elro_ab440wd_2
tinkerforge:rs1.typeBDevices=wp_it_itr1500_2 wp_it_itr1500_3 wp_it_itr1500_4

tinkerforge:rs_wpititr15003.uid=ooc
tinkerforge:rs_wpititr15003.subid=wp_it_itr1500_3
tinkerforge:rs_wpititr15003.type=remote_switch_b
tinkerforge:rs_wpititr15003.address=xxxxxx
tinkerforge:rs_wpititr15003.unit=3

 

items:

Switch    Timer_1    "Timer 1" (gTest) { tinkerforge="uid=ooc, subid=wp_it_itr1500_3" }

rule:

rule "Zeitschaltuhr 1 Ein"
when 
//Item Twilight_Proxy received update ON  
Item Test_Timer_1 received update ON
then   
Timer_1.sendCommand(ON)
end

rule "Zeitschaltuhr 1 Aus"
when   
Time cron "0 30 22 ? * *"
then
Timer_1.sendCommand(OFF)
end

 

sitemap:

Frame    {
        Text label="Test" icon="wss3_test"
            {
            Switch item=Timer_1
            ...
            }
        }

 

events.log:

2015-11-09 11:07:01 - Timer_1 received command ON
2015-11-09 11:07:01 - phone3 state updated to OFF
2015-11-09 11:07:04 - phone4 state updated to OFF
2015-11-09 11:07:05 - phone1 state updated to ON
2015-11-09 11:07:24 - Garage_OP state updated to CLOSED
2015-11-09 11:07:24 - Timer_1 state updated to OFF

 

Der zu diesem Zeitrahmen passende openhab.log:

2015-11-09 11:07:01.171 [DEBUG] [.t.internal.TinkerforgeBinding] - received command ON for item Timer_1
2015-11-09 11:07:01.175 [DEBUG] [.t.internal.TinkerforgeBinding] - TinkerforgeNotifier was notified
2015-11-09 11:07:01.238 [DEBUG] [o.u.i.items.ItemUIRegistryImpl] - Cannot retrieve item null for widget org.openhab.model.sitemap.Text
2015-11-09 11:07:01.407 [DEBUG] [.io.net.http.SecureHttpContext] - checking ip is in range took 0ms
2015-11-09 11:07:01.408 [DEBUG] [.io.net.http.SecureHttpContext] - security is disabled - processing aborted!
2015-11-09 11:07:01.409 [DEBUG] [.o.u.w.i.servlet.WebAppServlet] - Servlet request received!
2015-11-09 11:07:01.410 [DEBUG] [.o.u.w.i.servlet.WebAppServlet] - reading sitemap wss3
2015-11-09 11:07:01.866 [DEBUG] [o.o.b.n.i.NetworkHealthBinding] - established connection [host '192.168.2.42' port '0' timeout '5000']
2015-11-09 11:07:03.018 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'sitemaps' folderRefreshMap=30
2015-11-09 11:07:03.021 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'persistence' folderRefreshMap=30
2015-11-09 11:07:03.023 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'rules' folderRefreshMap=30
2015-11-09 11:07:03.023 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'scripts' folderRefreshMap=25
2015-11-09 11:07:03.023 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'items'
2015-11-09 11:07:04.866 [DEBUG] [o.o.b.n.i.NetworkHealthBinding] - established connection [host '192.168.2.48' port '0' timeout '5000']
2015-11-09 11:07:05.103 [DEBUG] [o.o.b.n.i.NetworkHealthBinding] - established connection [host '192.168.2.40' port '0' timeout '5000']
2015-11-09 11:07:07.815 [DEBUG] [.myopenhab.internal.MyOHClient] - Transport.EVENT_REQUEST_HEADERS
2015-11-09 11:07:08.025 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'sitemaps' folderRefreshMap=30
2015-11-09 11:07:08.025 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'persistence' folderRefreshMap=30
2015-11-09 11:07:08.025 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'rules' folderRefreshMap=30
2015-11-09 11:07:08.026 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'scripts' folderRefreshMap=25
2015-11-09 11:07:08.026 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'items' folderRefreshMap=10
2015-11-09 11:07:08.052 [DEBUG] [.myopenhab.internal.MyOHClient] - Transport.EVENT_REQUEST_HEADERS
2015-11-09 11:07:11.939 [DEBUG] [.io.net.http.SecureHttpContext] - checking ip is in range took 0ms
2015-11-09 11:07:11.940 [DEBUG] [.io.net.http.SecureHttpContext] - security is disabled - processing aborted!
2015-11-09 11:07:11.940 [DEBUG] [.o.u.w.i.servlet.WebAppServlet] - Servlet request received!
2015-11-09 11:07:11.941 [DEBUG] [.o.u.w.i.servlet.WebAppServlet] - reading sitemap wss3
2015-11-09 11:07:13.027 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'sitemaps' folderRefreshMap=30
2015-11-09 11:07:13.028 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'persistence' folderRefreshMap=30
2015-11-09 11:07:13.028 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'rules' folderRefreshMap=30
2015-11-09 11:07:13.028 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'scripts' folderRefreshMap=25
2015-11-09 11:07:13.028 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'items'
2015-11-09 11:07:18.029 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'sitemaps' folderRefreshMap=30
2015-11-09 11:07:18.030 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'persistence' folderRefreshMap=30
2015-11-09 11:07:18.031 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'rules' folderRefreshMap=30
2015-11-09 11:07:18.031 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'scripts' folderRefreshMap=25
2015-11-09 11:07:18.031 [DEBUG] [.o.m.c.i.folder.FolderObserver] - skipping refresh of folder 'items' folderRefreshMap=10
2015-11-09 11:07:22.464 [DEBUG] [.io.net.http.SecureHttpContext] - checking ip is in range took 1ms
2015-11-09 11:07:22.465 [DEBUG] [.io.net.http.SecureHttpContext] - security is disabled - processing aborted!
2015-11-09 11:07:22.465 [DEBUG] [.o.u.w.i.servlet.WebAppServlet] - Servlet request received!
2015-11-09 11:07:22.466 [DEBUG] [.o.u.w.i.servlet.WebAppServlet] - reading sitemap wss3
2015-11-09 11:07:23.032 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'sitemaps'
2015-11-09 11:07:23.034 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'persistence'
2015-11-09 11:07:23.035 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'rules'
2015-11-09 11:07:23.038 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'scripts'
2015-11-09 11:07:23.039 [DEBUG] [.o.m.c.i.folder.FolderObserver] - Refreshing folder 'items'
2015-11-09 11:07:24.576 [DEBUG] [.t.internal.TinkerforgeBinding] - TinkerforgeNotifier was notified
2015-11-09 11:07:24.578 [DEBUG] [.t.internal.TinkerforgeBinding] - TinkerforgeNotifier was notified
2015-11-09 11:07:24.579 [DEBUG] [.t.internal.TinkerforgeBinding] - TFMODELUPDATE postupdate: found sensorValue: 0 for item Licht_OG_Arne_Schlafzimmer
2015-11-09 11:07:24.582 [DEBUG] [.t.internal.TinkerforgeBinding] - TinkerforgeNotifier was notified
2015-11-09 11:07:24.583 [DEBUG] [.t.internal.TinkerforgeBinding] - TFMODELUPDATE postupdate: found sensorValue: LOW for item Garage_OP
2015-11-09 11:07:24.584 [DEBUG] [.t.internal.TinkerforgeBinding] - TinkerforgeNotifier was notified
2015-11-09 11:07:24.585 [DEBUG] [.t.internal.TinkerforgeBinding] - TFMODELUPDATE postupdate: found sensorValue: 0 for item Timer_1

 

Ich finde in der events.log z.B. nirgendwo ein "Timer_1 state updated to ON", obwohl der Switch in der GUI für die ca. 20 Sekunden auf ON geschaltet wird ... und dann wieder ohne weiteres Zutun auf OFF.

 

Hat jemand eine Idee?

 

Edit: das Problem besteht sowohl wenn der Schaltvorgang durch die rule ausgelöst wird als auch dann wenn man den Schalter über die GUI direkt auf ON schaltet ...

 

Besten Dank, Gruß, Sigi

 

 

 

Link zu diesem Kommentar
Share on other sites

Wenn ich einen Schaltbefehl ausführe wird dieser korrekt umgesetzt, aber der Status des Schalters setzt sich nach ca. 20 Sekunden zurück auf OFF .... wie gesagt, nur der "state" nicht das "command".

 

Ergänzung: weitere Tests haben ergeben dass dieses Problem nur bei den Type B Devices auftritt, bei Type A bleibt der state korrekterweise analog zum gesendeten Kommando.

 

 

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Gut beobachtet ...

 

Ist aus einer Not heraus geboren: da ich normalerweise mit den Type B meine Xmas Beleuchtung steuere und das jetzt per rules nicht mehr funktionierte musste ich jetzt die Type A aus der Schublade holen damit ich Licht ums Haus herum bekomme  8) Dabei fiel mir dann die unterschiedliche Funktion auf ...

 

Greets, Sigi

Link zu diesem Kommentar
Share on other sites

Neue Bricklets!

 

Auf Wunsch gibt es jetzt Unterstützung für:

Piezo Speaker Bricklet (@ChristianRiedl)

Rotary Encoder Bricklet (@tatzemax)

 

Ausserdem für:

Ambient Light V2 Bricklet

Dust Detector Bricklet

Load Cell Bricklet (Preview: hier kann sich die Konfiguration noch ändern)

 

Einen Binding Snapshot zum Testen gibt es hier:

https://bintray.com/artifact/download/theoweiss/generic/nd1/org.openhab.binding.tinkerforge-1.8.0-SNAPSHOT.jar

Es sind auch neue Actions dabei.

https://bintray.com/artifact/download/theoweiss/generic/nd1/org.openhab.action.tinkerforge-1.8.0-SNAPSHOT.jar

 

Beispielkonfigurationen gibt es hier: https://github.com/theoweiss/openhab-tinkerforge-configuration-examples

Ausführlichere Doku dazu wird folgen. Für das Piezo Speaker Bricklet habe ich hier https://github.com/theoweiss/openhab-tinkerforge-configuration-examples/blob/master/piezospeaker/README-DE.md schon ein bisschen was aufgeschrieben.

 

Wie immer Rückmeldung erbeten!

Gibt es Wünsche für die nächsten Bricks/Bricklets?

 

Gruß,

Theo

 

Link zu diesem Kommentar
Share on other sites

Hallo benoit,

 

vielen Dank für den Vorschlag!

NFC wäre sicher cool. Ich habe mich da schon ein bisschen umgesehen, aber leider habe ich keine brauchbare Java NDEF Bibliothek gefunden. Einzig im Android SDK, diese müsste man aber umschreiben. Das wird mich einiges an Zeit kosten. Deshalb möchte ich zuerst "einfachere" Bricks / Bricklets einbinden.

 

Gruß,

Theo

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Hier gibt es ein aktuelles Binding mit einem Fix für den von Sigi berichteten Bug im Remote Switch Bricklet Support:

https://bintray.com/artifact/download/theoweiss/generic/remoteswitch/2/org.openhab.binding.tinkerforge-1.8.0-SNAPSHOT.jar

 

Sigi hat Type A und Type B bereits getestet und für gut befunden.

 

Gruß,

Theo

 

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Vor Weihnachten noch einmal ein Schwung neuer Bricklets:

  • Laser Range Finder Bricklet
  • Color Bricklet
  • Accelerometer Bricklet
  • Industrial Dual Analog In Bricklet
  • Analog In Bricklet
  • Analog In V2 Bricklet
  • Load Cell (mit kleinen Aenderungen zur Preview)

Den Download gibt es hier:

https://bintray.com/artifact/download/theoweiss/generic/nd2/org.openhab.binding.tinkerforge-1.8.0-SNAPSHOT.jar

https://bintray.com/artifact/download/theoweiss/generic/nd2/org.openhab.action.tinkerforge-1.8.0-SNAPSHOT.jar

 

Beispielkonfigurationen gibt es hier: https://github.com/theoweiss/openhab-tinkerforge-configuration-examples

in den Verzeichnissen:

  • laserRangeFinder
  • color
  • accelerometer
  • industrialDualAnalogIn
  • analogIn
  • analogInV2
  • loadcell

 

Schöne Weihnachten und frohes Basteln,

Theo

 

Link zu diesem Kommentar
Share on other sites

  • 3 weeks later...

Eine vollständig überarbeitete und aktualisierte Dokumentation des Tinkerforge Bindings ist online!

 

Sie ist hier zu finden:

https://github.com/openhab/openhab/wiki/Tinkerforge-Binding

Ebenso für die Tinkerforge Action:

https://github.com/openhab/openhab/wiki/Actions#tinkerforge-actions

 

Die Dokumentation hat über 3400 Zeilen Markdown und würde gedruckt mehr als 50 Seiten umfassen (https://gitprint.com/openhab/openhab/wiki/Tinkerforge-Binding)! Sie enthält Beschreibungen und Beispiele für alle mit openHAB 1.8.0 unterstützen Bricks und Bricklets. Um nur einige weitere Verbesserungen zu nennen: es gibt jetzt ein verlinktes Inhaltsverzeichnis, verlinkte Verweise im Dokument und Links auf die Tinkerforge Dokumentation. Bugs sowohl in der bestehenden Dokumentation, als auch in den Konfigurationsbeispielen wurden aufgespürt und gefixt. Alle bisher undokumentierten Bricklets wurden hinzugefügt.

 

Und für mich ist das Beste daran: ich musste dafür so gut wie nichts tun! Die Überarbeitung, Aktualisierung und die vielen Verbesserungen hat Sigi (hier im Forum sihui) in den letzten Wochen auf Basis der Beipielkonfigurationen (https://github.com/theoweiss/openhab-tinkerforge-configuration-examples) gemacht.

Dafür möchte ich mich an dieser Stelle nochmals herzlich bei Sigi bedanken.

 

Und jetzt allen viel Spaß beim Lesen, Tinkerforgen und openHABen.

 

Gruß,

Theo

 

PS:

Der openHAB 1.8.0 Release ist für morgen 11.1.2016 geplant und wird alles enthalten, was ich hier als Snapshots gepostet habe.

 

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Moin,

erstmal danke für die tolle Arbeit.

 

Gibt es die Möglichkeit mit deinen Bindings ein Industrial-Quad-Relay "komplett" anzusprechen. Sprich sowas wie "setValue(valueMask)" aus der TF-Doku? Link

 

Ich habe mir für den Anfang eine Binärkodierung zu meiner LOGO aufgebaut (weil ich noch keine Softwareverbindung zustande gebracht habe) und benutze dort das IQ-Relay.

Nun habe ich aber das Problem das meisst ein Relay "nach hängt".

Mein Code bei OpenHAB sieht so aus:

Items:

Switch hmF_QR1					"hmF_QR1" 					(TF_hidden) 			{tinkerforge="uid=hmF, subid=relay0"}
Switch hmF_QR2					"hmF_QR2" 					(TF_hidden) 			{tinkerforge="uid=hmF, subid=relay1"}
Switch hmF_QR3					"hmF_QR3" 					(TF_hidden) 			{tinkerforge="uid=hmF, subid=relay2"}
Switch hmF_QR4					"hmF_QR4" 					(TF_hidden) 			{tinkerforge="uid=hmF, subid=relay3"}
Switch B10_Switch				"Reset all"		 			(TF_Hauptverteiler)

 

Rules:

rule "Change B5"
when
Item B5_Switch changed
then
if (B5_Switch.state == ON && B5_ON_timer == null && B10_Switch.state == OFF) {
	sendCommand(hmF_QR1, ON)
	sendCommand(hmF_QR2, OFF)
	sendCommand(hmF_QR3, OFF)
	sendCommand(hmF_QR4, ON)
	B5_ON_timer = createTimer(now.plusSeconds(1)) [|
		sendCommand(hmF_QR1, OFF)
		sendCommand(hmF_QR2, OFF)
		sendCommand(hmF_QR3, OFF)
		sendCommand(hmF_QR4, OFF)
		B5_ON_timer = null
		]
	}
else if (B5_Switch.state == OFF && B5_OFF_timer == null && B10_Switch.state == OFF) {
	sendCommand(hmF_QR1, ON)
	sendCommand(hmF_QR2, OFF)
	sendCommand(hmF_QR3, OFF)
	sendCommand(hmF_QR4, ON)
	B5_OFF_timer = createTimer(now.plusSeconds(1)) [|
		sendCommand(hmF_QR1, OFF)
		sendCommand(hmF_QR2, OFF)
		sendCommand(hmF_QR3, OFF)
		sendCommand(hmF_QR4, OFF)
		B5_OFF_timer = null
		]
	}
end

rule "Change B10"
when
Item B10_Switch changed
then
if (B10_Switch.state == ON && B10_ON_timer == null) {
	sendCommand(hmF_QR1, ON)
	sendCommand(hmF_QR2, ON)
	sendCommand(hmF_QR3, ON)
	sendCommand(hmF_QR4, ON)
	B10_ON_timer = createTimer(now.plusSeconds(1)) [|
		sendCommand(hmF_QR1, OFF)
		sendCommand(hmF_QR2, OFF)
		sendCommand(hmF_QR3, OFF)
		sendCommand(hmF_QR4, OFF)
		B10_ON_timer = null
		B1_Switch.state = OFF
		B2_Switch.state = OFF
		B3_Switch.state = OFF
		B4_Switch.state = OFF
		B5_Switch.state = OFF
		B6_Switch.state = OFF
		B7_Switch.state = OFF
		B8_Switch.state = OFF
		B9_Switch.state = OFF
		B10_Switch.state = OFF
		]
	}
end

 

Wenn nun B10 ausgeführt wird kommt es öfters vor das "sendCommand(hmF_QR4, OFF)" hinterher hinkt und damit dann wieder Bin_4 aktiviert wird.

Daher meine Frage ob ich die vier "sendCommand(Relay, Status)" irgendwie zusammen fassen kann damit alle 4 auf einmal abgehandelt werden.

Link zu diesem Kommentar
Share on other sites

Servus,

 

das "komplett" ansprechen wird derzeit nicht unterstützt.

Du könntest versuchen ob es hilft, wenn du die Relay Switches mit openHAB-Konfigurations-Mitteln gruppierst und dann die Gruppe schaltest. Ein Beispiel für das Gruppieren gibt es hier: https://github.com/theoweiss/openhab-tinkerforge-configuration-examples/tree/master/remoteswitch

Mit Gruppen habe ich auch nicht wirklich viel Erfahrung, soweit ich das verstehe wird die Gruppe durch "(Lights)" in der items Konfiguration angelegt. Damit hast du dann ein Gruppen-Item "Lights", dass du in den Rules verwenden kannst.

 

Gruß,

Theo

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...