NEWS
[gelöst] Update JS Adapter 5.7.0: Datenpunkte nicht gelesen
-
Hallo,
eigentlich läuft ioBroker so gut, dass ich das Update heute Morgen beim Frühstück schnell gemacht habe.
Fehler! ;-)Seit dem Update bekam ich dann bei jeder Ausführung die Meldungen, dass die Datenpunkte, die ich in 2 Skripten als Merker benutze, neu angelegt wurden.
Die Datenpunkte wurden wohl mit dem Update gelöscht. Macht das Sinn?
Trotzdem würde mein Script sie ja anlegen.
Im Adapter habe ich auch den Haken bei "Erlaube das Kommando setObject" gesetzt, aber das hat auch keine Änderung gebracht.Was kann ich da noch prüfen, dass die Merker wieder angelegt werden?
Oder muss ich da in meinen Scripten etwas ändern?
Nur so am Rande:
Beim Update wurden mehrere Sub-Versionen übersprungen. Ich habe mir das leider nicht gemerkt, aber ursprünglich war es so etwas wie 5.2.1.
Da frage ich mich, ob das so richtig läuft? -
Hallo,
eigentlich läuft ioBroker so gut, dass ich das Update heute Morgen beim Frühstück schnell gemacht habe.
Fehler! ;-)Seit dem Update bekam ich dann bei jeder Ausführung die Meldungen, dass die Datenpunkte, die ich in 2 Skripten als Merker benutze, neu angelegt wurden.
Die Datenpunkte wurden wohl mit dem Update gelöscht. Macht das Sinn?
Trotzdem würde mein Script sie ja anlegen.
Im Adapter habe ich auch den Haken bei "Erlaube das Kommando setObject" gesetzt, aber das hat auch keine Änderung gebracht.Was kann ich da noch prüfen, dass die Merker wieder angelegt werden?
Oder muss ich da in meinen Scripten etwas ändern?
Nur so am Rande:
Beim Update wurden mehrere Sub-Versionen übersprungen. Ich habe mir das leider nicht gemerkt, aber ursprünglich war es so etwas wie 5.2.1.
Da frage ich mich, ob das so richtig läuft?Inzwischen habe ich ein paar Sachen gemacht:
Das RaspiOS auf den neuesten Stand gebracht.
Den iob auf der Konsole geprüft, der war auf dem neuesten (stable) Stand.
Dabei natürlich den iob gestoppt und neu gestartet.Damit hat sich etwas geändert, die Datenpunkte wurden angelegt.
ABER:
Wäre ja zu schön gewesen, wenn es das war!
Offensichtlich kann der iob die Datenpunkte nicht lesen bzw. stellt deren Existenz nicht fest und tut dann jede Minute so, als würde er sie neu anlegen.Als nächste Aktion werde ich die Skripte jetzt wieder stoppen und die Datenpunkte entfernen. Dann starte ich die Skripte wieder und schaue, was passiert.
Aber vielleicht hat in der Zwsichenzeit ja noch jemand eine Idee?
Edit: Mir scheint, bei den Astro-Daten gibt es auch ein Problem.
Edit 2: Astro ist in Ordnung, habe ich falsch geguckt. ;-) -
Inzwischen habe ich ein paar Sachen gemacht:
Das RaspiOS auf den neuesten Stand gebracht.
Den iob auf der Konsole geprüft, der war auf dem neuesten (stable) Stand.
Dabei natürlich den iob gestoppt und neu gestartet.Damit hat sich etwas geändert, die Datenpunkte wurden angelegt.
ABER:
Wäre ja zu schön gewesen, wenn es das war!
Offensichtlich kann der iob die Datenpunkte nicht lesen bzw. stellt deren Existenz nicht fest und tut dann jede Minute so, als würde er sie neu anlegen.Als nächste Aktion werde ich die Skripte jetzt wieder stoppen und die Datenpunkte entfernen. Dann starte ich die Skripte wieder und schaue, was passiert.
Aber vielleicht hat in der Zwsichenzeit ja noch jemand eine Idee?
Edit: Mir scheint, bei den Astro-Daten gibt es auch ein Problem.
Edit 2: Astro ist in Ordnung, habe ich falsch geguckt. ;-)@andreas-5 die Frage ist doch wo werden/sollen Datenpunkte angelegt werden?
-
@andreas-5 die Frage ist doch wo werden/sollen Datenpunkte angelegt werden?
@crunchip Diese sind, auch gerade, nachdem ich sie noch einmal gelöscht habe, unter javascript.0 angelegt worden, mit komplettem Pfad (javascrip.0.Merker......).
Aber anscheinend ist aktuell nicht mehr das problem, dass sie nicht angelegt werden, sondern dass iob meint, dass sie nicht da sind und sie jede Minute wieder meint neu anlegen zu müssen.
Also
!existsState(datenpunkt + merkerpfad + pruefpunkt[i])
funktioniert nicht, aber
createState(datenpunkt + merkerpfad + pruefpunkt[i])
hat offensichtlich funktioniert.get State funktioniert auch, die Skripte an sich sollten also laufen.
Was passiert bei einem createState, wenn der Datenpunkt schon existiert?Und vor dem Update des Javascript-Adapter liefen die Skripte ja einwandfrei!
In den Skripten selber habe ich seit Wochen keine Änderungen gemacht. -
Ich habe jetzt erst einmal das automatische Anlegen der Datenpunkte ausgeklammert, damit die Meldungen nicht dauernd kommen.
Das kann natürlich keine Dauerlösung sein. -
Ich habe jetzt erst einmal das automatische Anlegen der Datenpunkte ausgeklammert, damit die Meldungen nicht dauernd kommen.
Das kann natürlich keine Dauerlösung sein.@andreas-5 schau mal da
https://forum.iobroker.net/post/659731 -
@andreas-5 schau mal da
https://forum.iobroker.net/post/659731 -
@crunchip Danke, aber das werde ich mir morgen erst durchlesen, die 466 oder so Posts. ;-)
Ich werde dann berichten.@andreas-5 das was du wissen musst, steht direkt im ersten Beitrag, da ist auch das Script verlinkt um die Folder einzurichten
-
@andreas-5 das was du wissen musst, steht direkt im ersten Beitrag, da ist auch das Script verlinkt um die Folder einzurichten
@crunchip Danke, habe ich noch schnell ausprobiert, hat aber auch den gewünschten Erfolg nicht gebracht.
Da muss ich dann doch einmal in Ruhe dran, aber heute nicht mehr. Bin zu müde und dann baue ich doch nur Mist. ;-) -
Nun habe ich die beiden angegebenen Skripte beide getestet, leider brachte das keine Änderung.
Dann habe ich Stichpunktartig die Ordner geprüft, diese sind vom Typ 'folder'.Die Frage ist jetzt, was sich in der neuen Javascript-Version sonst noch geändert hat, dass mein Skript nicht mehr richtig funktioniert.
Hier auch einmal der Teil des Skript, um den es gibt:
// Für jeden Datenpunkt zuerst prüfen, ob ein entsprechender Merkerpunkt existiert. // Wenn nicht, dann anlegen. var ueberschreiben = false; var datenpunkt = "Merker."; // Hauptdatenpunkt unterhalb javascript var merkerpfad = "DachlukeUndHeizung."; var pruefpunkt = [ "shelly.0.SHSW-25#E098068D407F#1.Shutter.Position" , "hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE" /*Hz Flur*/ , "hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE" /*Hz Eßzimmer*/ , "hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE" /*Hz Küche*/ ]; var typ = [ "number" , "number" , "number" , "number" ]; // 1 - Zustandsprüfung (0/1) // 2 - Wert prüfen var auswertung = [ 2 , 2 , 2 , 2 ]; var ausgabe = [ " Dachluke " , " Soll Flur " , "Soll Esszimmer " , " Soll Küche " ]; for (var i = 0; i < pruefpunkt.length; i++){ if (!existsState(datenpunkt + merkerpfad + pruefpunkt[i])){ createState(datenpunkt + merkerpfad + pruefpunkt[i], "", ueberschreiben, { name: pruefpunkt[i], desc: "Zustandspruefung", type: typ[i], role: "value", unit: "" }); var hilf = "Datenpunkt " + merkerpfad + pruefpunkt[i] + " erstellt!"; log(hilf); } }Und ein Ausschnitt aus dem Log:
22:14:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:14:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.056 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.shelly.0.SHSW-25#E098068D407F#1.Shutter.Position erstellt! 22:15:00.057 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.059 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.059 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.006 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.shelly.0.SHSW-25#E098068D407F#1.Shutter.Position erstellt! 22:16:00.007 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.007 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt!Und die Datenpunkte:
Die Grafikdatei hochladen ging nicht. Da kam eine Fehlermeldung "Fehler beim Auswerten der Serverantwort". Sagt mir so nichts.
-
Nun habe ich die beiden angegebenen Skripte beide getestet, leider brachte das keine Änderung.
Dann habe ich Stichpunktartig die Ordner geprüft, diese sind vom Typ 'folder'.Die Frage ist jetzt, was sich in der neuen Javascript-Version sonst noch geändert hat, dass mein Skript nicht mehr richtig funktioniert.
Hier auch einmal der Teil des Skript, um den es gibt:
// Für jeden Datenpunkt zuerst prüfen, ob ein entsprechender Merkerpunkt existiert. // Wenn nicht, dann anlegen. var ueberschreiben = false; var datenpunkt = "Merker."; // Hauptdatenpunkt unterhalb javascript var merkerpfad = "DachlukeUndHeizung."; var pruefpunkt = [ "shelly.0.SHSW-25#E098068D407F#1.Shutter.Position" , "hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE" /*Hz Flur*/ , "hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE" /*Hz Eßzimmer*/ , "hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE" /*Hz Küche*/ ]; var typ = [ "number" , "number" , "number" , "number" ]; // 1 - Zustandsprüfung (0/1) // 2 - Wert prüfen var auswertung = [ 2 , 2 , 2 , 2 ]; var ausgabe = [ " Dachluke " , " Soll Flur " , "Soll Esszimmer " , " Soll Küche " ]; for (var i = 0; i < pruefpunkt.length; i++){ if (!existsState(datenpunkt + merkerpfad + pruefpunkt[i])){ createState(datenpunkt + merkerpfad + pruefpunkt[i], "", ueberschreiben, { name: pruefpunkt[i], desc: "Zustandspruefung", type: typ[i], role: "value", unit: "" }); var hilf = "Datenpunkt " + merkerpfad + pruefpunkt[i] + " erstellt!"; log(hilf); } }Und ein Ausschnitt aus dem Log:
22:14:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:14:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.056 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.shelly.0.SHSW-25#E098068D407F#1.Shutter.Position erstellt! 22:15:00.057 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.059 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.059 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.006 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.shelly.0.SHSW-25#E098068D407F#1.Shutter.Position erstellt! 22:16:00.007 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.007 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt!Und die Datenpunkte:
Die Grafikdatei hochladen ging nicht. Da kam eine Fehlermeldung "Fehler beim Auswerten der Serverantwort". Sagt mir so nichts.
@andreas-5
existsState(id) benötigt eine vollständige ID:if (!existsState('javascript.0.' + datenpunkt + merkerpfad + pruefpunkt[i])){ -
Nun habe ich die beiden angegebenen Skripte beide getestet, leider brachte das keine Änderung.
Dann habe ich Stichpunktartig die Ordner geprüft, diese sind vom Typ 'folder'.Die Frage ist jetzt, was sich in der neuen Javascript-Version sonst noch geändert hat, dass mein Skript nicht mehr richtig funktioniert.
Hier auch einmal der Teil des Skript, um den es gibt:
// Für jeden Datenpunkt zuerst prüfen, ob ein entsprechender Merkerpunkt existiert. // Wenn nicht, dann anlegen. var ueberschreiben = false; var datenpunkt = "Merker."; // Hauptdatenpunkt unterhalb javascript var merkerpfad = "DachlukeUndHeizung."; var pruefpunkt = [ "shelly.0.SHSW-25#E098068D407F#1.Shutter.Position" , "hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE" /*Hz Flur*/ , "hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE" /*Hz Eßzimmer*/ , "hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE" /*Hz Küche*/ ]; var typ = [ "number" , "number" , "number" , "number" ]; // 1 - Zustandsprüfung (0/1) // 2 - Wert prüfen var auswertung = [ 2 , 2 , 2 , 2 ]; var ausgabe = [ " Dachluke " , " Soll Flur " , "Soll Esszimmer " , " Soll Küche " ]; for (var i = 0; i < pruefpunkt.length; i++){ if (!existsState(datenpunkt + merkerpfad + pruefpunkt[i])){ createState(datenpunkt + merkerpfad + pruefpunkt[i], "", ueberschreiben, { name: pruefpunkt[i], desc: "Zustandspruefung", type: typ[i], role: "value", unit: "" }); var hilf = "Datenpunkt " + merkerpfad + pruefpunkt[i] + " erstellt!"; log(hilf); } }Und ein Ausschnitt aus dem Log:
22:14:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:14:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.056 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.shelly.0.SHSW-25#E098068D407F#1.Shutter.Position erstellt! 22:15:00.057 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.059 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:15:00.059 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.006 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.shelly.0.SHSW-25#E098068D407F#1.Shutter.Position erstellt! 22:16:00.007 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D439.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.007 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D434.1.SET_POINT_TEMPERATURE erstellt! 22:16:00.008 info javascript.0 (19112) script.js.common.Steuerung.Dachluke_und_Heizung: Datenpunkt DachlukeUndHeizung.hm-rpc.0.000A1D8997D441.1.SET_POINT_TEMPERATURE erstellt!Und die Datenpunkte:
Die Grafikdatei hochladen ging nicht. Da kam eine Fehlermeldung "Fehler beim Auswerten der Serverantwort". Sagt mir so nichts.
@andreas-5 sagte in Update JS Adapter 5.7.0: Datenpunkte werden nicht gelesen:
Da kam eine Fehlermeldung "Fehler beim Auswerten der Serverantwort". Sagt mir so nichts.
einfach nochmal probieren
-
@andreas-5
existsState(id) benötigt eine vollständige ID:if (!existsState('javascript.0.' + datenpunkt + merkerpfad + pruefpunkt[i])){@paul53 sagte in Update JS Adapter 5.7.0: Datenpunkte werden nicht gelesen:
@andreas-5
existsState(id) benötigt eine vollständige ID:if (!existsState('javascript.0.' + datenpunkt + merkerpfad + pruefpunkt[i])){Ok, das war's. Danke!
Das hat sich dann aber mit dem Update geändert, weil das Skript habe ich nicht geändert.
createState und setState brauchen das anscheinend nicht, oder?
Ich gehe aber davon aus, dass man den kompletten Pfad da auch angeben kann. Das werde ich dann jetzt so umbauen, damit das durchgängig gleich ist. -
@andreas-5 sagte in Update JS Adapter 5.7.0: Datenpunkte werden nicht gelesen:
Da kam eine Fehlermeldung "Fehler beim Auswerten der Serverantwort". Sagt mir so nichts.
einfach nochmal probieren
@homoran sagte in Update JS Adapter 5.7.0: Datenpunkte werden nicht gelesen:
@andreas-5 sagte in Update JS Adapter 5.7.0: Datenpunkte werden nicht gelesen:
Da kam eine Fehlermeldung "Fehler beim Auswerten der Serverantwort". Sagt mir so nichts.
einfach nochmal probieren
Hatte es schon 3 mal probiert.
Hatte auch die Datei schon verkleinert.
Da es nicht mehr zur Problemlösung beiträgt, braucht es das ja jetzt nicht mehr. ;-) -
@paul53 sagte in Update JS Adapter 5.7.0: Datenpunkte werden nicht gelesen:
@andreas-5
existsState(id) benötigt eine vollständige ID:if (!existsState('javascript.0.' + datenpunkt + merkerpfad + pruefpunkt[i])){Ok, das war's. Danke!
Das hat sich dann aber mit dem Update geändert, weil das Skript habe ich nicht geändert.
createState und setState brauchen das anscheinend nicht, oder?
Ich gehe aber davon aus, dass man den kompletten Pfad da auch angeben kann. Das werde ich dann jetzt so umbauen, damit das durchgängig gleich ist.@andreas-5 sagte: Das hat sich dann aber mit dem Update geändert
Ich kann mich nicht erinnern, dass existsState(id) jemals mit der verkürzten ID funktioniert hätte. Vermutlich hast Du die Prüfung mit existsState(id) nachträglich eingefügt.
@andreas-5 sagte in [gelöst] Update JS Adapter 5.7.0: Datenpunkte nicht gelesen:
createState und setState brauchen das anscheinend nicht, oder?
Für Datenpunkte unter "javascript.N" (N = JS-Instanz) akzeptieren diese Funktionen die verkürzte Schreibweise.
@andreas-5 sagte in [gelöst] Update JS Adapter 5.7.0: Datenpunkte nicht gelesen:
Ich gehe aber davon aus, dass man den kompletten Pfad da auch angeben kann.
Ja.
-
@paul53 sagte in [gelöst] Update JS Adapter 5.7.0: Datenpunkte nicht gelesen:
@andreas-5 sagte: Das hat sich dann aber mit dem Update geändert
Ich kann mich nicht erinnern, dass existsState(id) jemals mit der verkürzten ID funktioniert hätte. Vermutlich hast Du die Prüfung mit existsState(id) nachträglich eingefügt.
Nein, das lief bis ich das Javascript-Update gemacht habe, am Skript habe ich nichts geändert.
Aber egal, ich werde mir angewöhnen, immer die komplette Id zu nutzen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden