NEWS
Sonos-HTTP-API Installation für Newbies, Dummies und mich
-
@IOMax : An welcher stelle bist du genau?
Habe zwar kein Synologie Docker, aber evtl. kann ich dir trotzdem helfen.... -
@Pepsi1183 said in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
@IOMax : An welcher stelle bist du genau?
Wäre toll. Ich bin bei npm install --production
Beim ausführen des Befehls kommen die Fehlermeldungen -
Servus,
vielen lieben Dank für diesen Thread
Habe jetzt meine Philips Hue Dimmer Fernbedienung als Sonos Fernbedienung hergenommen und bin wirklich sehr glücklich! Jedoch habe ich ein Problem das
http://192.168.1.253:5005/KUECHE/groupVolume/20
bei mir nicht richtig funktioniert ;( Es wird leiser jedoch haben alle verschiedene Werte.
Hat jemand eine Bessere Lösung?
Kann ich ein externes Script ( PartyModus, Lautstärke für alle Player, ...) in Blockly einbinden ?Danke
Hier noch ein paar Infos:
- Taste - kurz gedrückt - playpause
- Tste - lange gedrückt -shuffle on
- Taste - kurz gedrückt - Volume +5
- Taste - lang gedrückt - groupVolume 20
- Taste - kurz gedrückt - Volume - 5
- Taste - lang gedrückt - groupVolume 5
- Taste - kurz gedrückt - next Song
- Taste - lang gedrückt - PartyMode
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id="T)L7WoMF-)j{K%=k-9(T" x="-537" y="-863"> <field name="COMMENT">PHILIPS HUE DIMMER SWITCH - CONTROL SONOS</field> </block> <block type="on_ext" id="efjV9ZRu|sU2}*LiK`dD" x="-563" y="-713"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="H*^H`{#Ysj?y=(T=%LCc"> <field name="oid">deconz.0.Sensors.5.buttonpressed</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="t!@v.fU5j%yGbW./Rf9|"> <field name="COMMENT">TASTE 1 kurz GEDRÜCKT - SONOS PLAY / PAUSE</field> <next> <block type="controls_if" id="^K0K]o02h8q8%-YWcGJ6"> <value name="IF0"> <block type="logic_compare" id="2tbdG5={(,;]a^;sbK$4"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="W;gHg$pYO5s`i1pY#HjX"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="mjL$n%q3_7OA(VGOsQW#"> <field name="NUM">1002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="1P_fH78Kf)O5?6,|sK4o"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="wI:qn|^kKvRY,-{1fj~Q"> <field name="TEXT">http://192.168.1.253:5005/kueche/playpause </field> </shadow> </value> </block> </statement> <next> <block type="comment" id="$U(.V#8Va_(5QgAb}Z=K"> <field name="COMMENT">TASTE 1 lang gedrückt - SONOS shuffle on </field> <next> <block type="controls_if" id="S92^E6Un(~F*WQ+859+Q"> <value name="IF0"> <block type="logic_compare" id="=iMiWM}n$$P!FoSFGBuI"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ea@W`SM*46HKwU/wq_gA"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="I6Wjao[EvnB,[XPs@u+^"> <field name="NUM">1003</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="`h}|X;-Rv`r~{_0;^Ceo"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="#HXFZYb`G/.W2m_c{Vm7"> <field name="TEXT">http://192.168.1.253:5005/kueche/shuffle/on</field> </shadow> </value> </block> </statement> <next> <block type="comment" id="XymL.+^hYP+13AbKYivv"> <field name="COMMENT">TASTE 2 kurz gedrückt - Sonos Volume +5</field> <next> <block type="controls_if" id="vh{j(d_gD|R~Hh5J{Xf`"> <value name="IF0"> <block type="logic_compare" id="{C{H(P1lUl}QbNl2NnrM"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="SbukImeG2oP7-u7*RLXq"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="RG+Zq[r?xd,~LO{NoXF("> <field name="NUM">2002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="J1NaZ)fI6$GbY-FT;2IO"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="[DX@e]WD,pc.gZ^U}Y$I"> <field name="TEXT">http://192.168.1.253:5005/kueche/volume/+5</field> </shadow> </value> <next> <block type="request" id="$eER!$A91@b}A{PIC/WY"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="%$(#d0-pH0P`L[@=A2_i"> <field name="TEXT">http://192.168.1.253:5005/COOKING/volume/+5</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="comment" id="]kb^Ei:J|3J9j.~BBfMh"> <field name="COMMENT">TASTE 2 lang gedrückt - sonos groupVolume 20</field> <next> <block type="controls_if" id="diNy26,[C4_9]u#t0pSA"> <value name="IF0"> <block type="logic_compare" id="ai/~~xn7V*g}F4zfj`tP"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="f+s:e,za~xRhy:z;ne%G"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="o`B]N[/$fi%%t)=AU/Xo"> <field name="NUM">2003</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="b`)f2gvgbyKdhHl=?/nt"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="jkAUO4knI-pOYc*i=EU_"> <field name="TEXT">http://192.168.1.253:5005/kueche/volume/30</field> </shadow> </value> <next> <block type="request" id="H3Sy/5^|3Bq7ml[h2*_p"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="|#jIn!nz^_D4a9FSsdm~"> <field name="TEXT">http://192.168.1.253:5005/COOKING/volume/30</field> </shadow> </value> <next> <block type="request" id="93h2FsBi(:IIk?cCETmx"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="ozWmuMS#es(JQrvxz6NI"> <field name="TEXT">http://192.168.1.253:5005/groupVolume/25</field> </shadow> </value> <next> <block type="request" id="HH5Q[r.K.AQ))Tly/T_N"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="Q^P#nX_vhLn)I`.^8+vB"> <field name="TEXT">http://192.168.1.253:5005/groupVolume/20</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="5Z*m2bzQk?SKFhqJk4lT"> <field name="COMMENT">TASTE 3 kurz gedrückt - Sonos Volume -5</field> <next> <block type="controls_if" id="Z4j|9AtIw0XOAFo@nfj9"> <value name="IF0"> <block type="logic_compare" id="*}Fnl@181qU3hMqVTr_~"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="V-f2j2()_A,pnfd2OAot"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="8|VT79HUzr2J-d,-*ESK"> <field name="NUM">3002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id=":m.^p7^!9)dp_vodDU}v"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="*)mMk0}xVy1!Mj+}RfTm"> <field name="TEXT">http://192.168.1.253:5005/kueche/volume/-5</field> </shadow> </value> <next> <block type="request" id="e?TVl?B0D:{?M?9Xs=jt"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="|+73Evwd/TF)*{L,(Qz$"> <field name="TEXT">http://192.168.1.253:5005/COOKING/volume/-5</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="comment" id="iB:/vQC)PjwukA,DXa1^"> <field name="COMMENT">TASTE 3 lang gedrückt - Sonos groupVolume 5</field> <next> <block type="controls_if" id="vFT0uD(Xg(e/FSM-t7!s"> <value name="IF0"> <block type="logic_compare" id="Cp/YJfGAKU{4!BV(!R%V"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9k_!-F!$iB1+U{jlz!pm"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id=":{4_YWEmf|0]#h1^2-w}"> <field name="NUM">3003</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="Zm*g{LWo]iz)sB0n9dEC"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="=2qKAt$z5x_/xOx6zZ(}"> <field name="TEXT">http://192.168.1.253:5005/kueche/volume/5</field> </shadow> </value> <next> <block type="request" id="cfQ]ety7SG}}/9Ji``pn"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="d+C-*.h:|IS|^DwJ!YJp"> <field name="TEXT">http://192.168.1.253:5005/COOKING/volume/5</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="comment" id="^.JX3GE#ngCUb)44HjlO"> <field name="COMMENT">TASTE 4 kurz gedrückt- NEXT SONG</field> <next> <block type="controls_if" id="?;5NjeE|[s_SGh$(;qtH"> <value name="IF0"> <block type="logic_compare" id="N{21/DFT1+!Bt3lKi^=f"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="MZQcedZS_h-3m#6W.PEL"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="^C.X,#GNvZEju:ismJ8C"> <field name="NUM">4002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="]20AiH:HMa-doc_i8Gs]"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="KDLF[$2}wnKSnc$QZXmp"> <field name="TEXT">http://192.168.1.253:5005/Kueche/next</field> </shadow> </value> </block> </statement> <next> <block type="comment" id="trHGrgljuEhF#`*B@`mS"> <field name="COMMENT">TASTE 4 lang GEDRÜCKT - PartyModus</field> <next> <block type="controls_if" id="8ij^T$I8]r`lk_bY;:/p"> <value name="IF0"> <block type="logic_compare" id="+sWP|%8CS*}#g,#c%$.x"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="]nL``++UQ*lSmN3H,1h^"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.buttonpressed</field> </block> </value> <value name="B"> <block type="math_number" id="{^KK6{CO?PfSVhABTnLB"> <field name="NUM">4003</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="D6X3`Ekh1TR5PK|h:w(P"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="(Bt-o@K:,))}6Z.Ym6H|"> <field name="TEXT">http://192.168.1.253:5005/BUERO/join/KUECHE</field> </shadow> </value> <next> <block type="request" id="u!4c?zL%z+6b@H,6gKm_"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="L~:B@Zv1bL%VV#M}?FOL"> <field name="TEXT">http://192.168.1.253:5005/COOKING/join/KUECHE</field> </shadow> </value> <next> <block type="request" id="T[jNg.O6Pn+.1_no/`.w"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="LeyZ7[J$Y|WPbpPH=k?M"> <field name="TEXT">http://192.168.1.253:5005/Bathroom/join/KUECHE</field> </shadow> </value> <next> <block type="request" id="{O8s.I+4PIbm6*)F:P7_"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id=":+CE!|7zw;cVwVKZ[az,"> <field name="TEXT">http://192.168.1.253:5005/Sessel/join/KUECHE</field> </shadow> </value> <next> <block type="request" id="KeH5X5}Bo=wa2:KMjBL{"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="bY3oJD.vL]b*.lxe1jkE"> <field name="TEXT">http://192.168.1.253:5005/Wohnzimmer/join/KUECHE</field> </shadow> </value> <next> <block type="request" id="HpQvI]9,{DdiA]k1E%XC"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="ujyOq(j20%YnSl$p]NQ@"> <field name="TEXT">http://192.168.1.253:5005/GANG/join/KUECHE</field> </shadow> </value> <next> <block type="request" id="Im]-U-=rJJ13*!JdXYH:"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="jVm_G`(~-_,j|xvjAl(8"> <field name="TEXT">http://192.168.1.253:5005/groupVolume/20</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@rehmosch sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
Habe jetzt meine Philips Hue Dimmer Fernbedienung als Sonos Fernbedienung hergenommen und bin wirklich sehr glücklich! Jedoch habe ich ein Problem das
http://192.168.1.253:5005/KUECHE/groupVolume/20
bei mir nicht richtig funktioniert ;( Es wird leiser jedoch haben alle verschiedene Werte.Servus, gerne für diesen Thread
Eins vorab, Group Volume funktioniert einwandfrei.
Kueche macht oft Theater, manche schreiben das ja auch mit ü,
Bist Du sicher dass alle in einer Gruppe sind ?
Woher weißt Du das alle unterschiedliche Lautstärken haben ?Teste mal im kleinen,
lass eine Box spielen, gruppiere eine zweite dazu, und dann ändere die Group Volume.
Das tolle an dieser Lösung ist, dass Du ja alle http Befehle direkt im Browser eingeben kannst,
zum testen brauchst Du also kein IOBroker.übrigens die 10 Euro Ikea Fernbedienung geht natürlich auch
-
@IOMax: hmm, ok...dann kann ich dir glaube ich nicht wirklich weiter helfen. Habe mir das nochmal bei mir angesehen und verstehe nicht warum bei npm install die Host Meldung kommen soll. Sorry
-
Ich bin tatsächlich weitergekommen, indem ich einfach nochmal das master.zip runtergeladen habe. Nach dem entpacken und erneutem Installationsversuch hat es geklappt.
Allerdings habe ich beim autostart Probleme. Die sonosapi.service habe ich angelegt, aber mein System (iobroker unter docker/synology) kennt systemctl nicht,
Ideen ? -
@IOMax Hey, ich glaube das Startscript müsstest über cron-jobs auf der Synology zum laufen bringen. Da war irgendwas .... Schreib doch einfach ins Synology Forum, die sind dort recht fix.
Viel Glück
Ich bräuchte mal die Hilfe der Community:
Servus,
hat jemand einen Tip wie man an die http Befehle für Sonos für
“Daumen runter” & “Daumen hoch” & “Thumb up” & “thumb down” lösen kann?
So ähnlich wie:
http://192.168.1.253:5005/kueche/shuffle/on
nur dann so:
http://192.168.1.253:5005/kueche/thumbdown
oder so:
http://192.168.1.253:5005/KUECHE/googleplaymusic/thumbsdown
dieses klappt bei mir:
http://192.168.1.253:5005/KUECHE/pandora/thumbsdown
Da es bei mir mit Pandora problemlos klappt, wie hier beschrieben:
PandoraPerform a search for one of your Pandora stations and begin playing. Give the currently playing song a thumbs up or thumbs down. Requires a valid Pandora account and credentials.
The following endpoints are available:
/RoomName/pandora/play/ Plays the closest match to the specified station name in your list of Pandora stations
/RoomName/pandora/thumbsup Gives the current playing Pandora song a thumbs up
/RoomName/pandora/thumbsdown Gives the current playing Pandora song a thumbs downYour Pandora credentials need to be added to the settings.json file
,
"pandora": {
"username": "your-pandora-account-email-address",
"password": "your-pandora-password"
} -
@skokarl Servus
Ja, bin mir sicher das alle in einer Gruppe sind und irgendwie muss der http-Befehl bei mir 3x mit unterschiedlichen Werten rausgeschickt werden. Ich habe mein pihole hier in Verdacht ;(
Danke für den Tip mit der Tradfri Fernbedienung (10€), jedoch benötigt Ikea ca. 14 Tage Lieferzeit nach München ;( Habe eigentlich erst vor ein 3 Tagen mit ioBroker angefangen und es hat so in den Fingern gejuckt.
Außerdem muss ich ein paar Hue Komponenten aus der Hue Bridge rausnehmen. Die hue-Bridge laggt, da ich zuviele Hue Komponenten (max. 12 / Bewegungsmelder, Dimmer-Switch, Tab-Switch ....) eingesetzt habe. Das war eigentlich der Grund, weshalb ich mich für ioBroker entschieden habe.
-
@IOMax sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
Allerdings habe ich beim autostart Probleme.
schau dir mal diese Doku an.
ggf. funktioniertsystemd
anstelle vonsystemctl
-
@rehmosch sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
@skokarl Servus
Ja, bin mir sicher das alle in einer Gruppe sind und irgendwie muss der http-Befehl bei mir 3x mit unterschiedlichen Werten rausgeschickt werden. Ich habe mein pihole hier in Verdacht ;(
muss mich korrigieren, Du hast recht.
Hab mir heute Nacht mal ein Testszenario gebaut. Da stimmt was nicht, ist mir noch nie so aufgefallen.
Vielleicht finde ich nen Workaround. -
-
Moin @BBTown,
Ich hab 4 Sonos, einen starte ich, die anderen drei hänge ich dran.
Dann verstelle ich alle 4 händisch auf verschiedene Lautstärken.
Dann gibts den Group Volume Befehl auf den ersten. Alle 4 ändern sich, aber teilweise unterschiedlich.
Das passiert aber nur dann, wenn alle vorher unterschiedlich laut waren. Waren alle gleich laut,
bleibt es auch nach dem Group gleich laut.Es gibt jetzt mehrere Ansätze,
1.) ändert er Prozentual ?, oder ändert er in Abhängigkeit davon dass einer lauter als die Gruppe und einer
leiser als die Gruppe war ?Workaround wäre, statt einem http, 4 http's abzusetzen.
Ich muss das mal in Ruhe alles testen. Ansonsten müsste ja im Netz ein Issue zu finden sein.
-
@skokarl vielleicht hilft eine "Gegenprobe" wie das Verhalten ist, wenn Du die Gruppenlautstärke über die Sonos-App änderst?!
Ist es da genauso? -
@BBTown sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
@skokarl vielleicht hilft eine "Gegenprobe" wie das Verhalten ist, wenn Du die Gruppenlautstärke über die Sonos-App änderst?!
geile Idee
-
@BBTown said in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
@IOMax sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
Allerdings habe ich beim autostart Probleme.
schau dir mal diese Doku an.
ggf. funktioniertsystemd
anstelle vonsystemctl
Leider ist systemd auch unbekannt in der Console
-
hey,
hat den irgendjemand eine Ahnung wie wir über http den Befehl für für Daumen runter bzw. hoch (dislike this song: thumbdown) absetzen können. Ich finde leider gar nichts dazu in der Sonos Api und Sonos reagiert nicht. Habe den ganzen Sonntag vergeblich recherchiert ;(
Danke!
-
@skokarl said in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:
Moin @BBTown,
Workaround wäre, statt einem http, 4 http's abzusetzen.
Ich muss das mal in Ruhe alles testen. Ansonsten müsste ja im Netz ein Issue zu finden sein.
Nur so gehts bei mir jetzt zu 100%. Muss jedes Lautsprecherpaar (7x Stereo) seperat die /volume/20 setzen.
Ist es möglich ein Skript zu bauen (volume_all_20) und dieses dann in einem neuen Script einzubauen.
Danke
-
Ich machs jetzt so......ein Group Volume Regler, und einmal einzelne Regler.
Der Group steuert alle einzeln, hier ein Blockly Script Beispiel.Links, einer für alle, Blockly dazu unten
Über State hole ich mir im Nachgang die Daten der Lautsprecher, damit sehe ich das eingestellte als Kontrolle.
-
@skokarl Klasse optisch umgesetzt
-
@BBTown
Danke, ich hab mal die Material Widgets getestet.
Machen echt Spaß.