Closed loemic87 closed 2 months ago
kannst du mir mal das JSON schicken, das der Adapter bereitstellt? Dann kann ich es mir näher anschauen.
LG, Peter
Hi,
Hier das json von mir:
[{"name":"Restmüll","daysLeft":1,"nextDate":1723068000000,"_completed":false,"_description":"Leerungserinnerung","_color":"#e11414"},{"name":"Gelber Sack","daysLeft":7,"nextDate":1723586400000,"_completed":false,"_description":"Leerungserinnerung","_color":"#ffff00"},{"name":"Bio","daysLeft":12,"nextDate":1724018400000,"_completed":false,"_description":"Leerungserinnerung","_color":"#20c200"},{"name":"Papier","daysLeft":15,"nextDate":1724277600000,"_completed":false,"_description":"Leerungserinnerung","_color":"#010dbc"},{"name":"Grünschnitt","daysLeft":19,"nextDate":1724623200000,"_completed":false,"_description":"Leerungserinnerung","_color":"#721f03"}]
Super, danke! Eine Möglichkeit wäre, dass du dir per Script/Blockly in einem Userdata Datenpunkt ein Json Objekt ablegst und dieses dann mit dem Kachel Typ "JSON". Ein passendes Format dafür wäre zb:
{ "Restmüll": "12.08.2024", "Bio": "16.08.2024", usw. }
Vorteil wäre, dass du im Skript frei entscheiden kannst, welche Termine im JSON zur Anzeige landen, also zB. nur jene die in den nächsten 5 Tagen sind o.ä.
Wenn Zeit ist kann ich dafür mal einen eigenen Datenpunkt Typ ergänzen, der wird aber auf Grund der Einstellmöglichkeiten etwas aufwändiger, würde auf jeden Fall noch etwas dauern.
LG, Peter
@loemic87
hast du bereits weitergemacht mit der Trashschedule Integration über z.B. den vorgeschlagenen Weg von @peter9teufel ? Ich will auch demnächst mit der Integration beginnen.
Edit:
Ich habe soeben den Vorschlag von @peter9teufel getestet -> funktioniert wunderbar. Ich baue mir eine Text Datei aus den Datenpunkten und schreibe diese dann in einen Datenpunkt vom Typ JSON zurück.
Falls du dies nicht angehen willst, kannst du eigentlich auch direkt auf die Trashschedule Datenpunkte verweisen mit dem Typ "Mehrere Werte" in der App.
Kommt dann aufs gleiche raus und du kannst die gewünschten Datenpunkte einfach angeben.
Mega wäre jetzt natürlich, wenn man irgendwie die Werte oder irgendwann Symbole farbig anhand des Mülltyps einstellen könnte.
Kannst du mir dein Script oder den Weg den du genommen hast zeigen? Ich hatte noch keine Gelegenheit, mich damit zu befassen
Edit: ich wollte eigentlich gern eine Ausgabe, die immer die nächsten Termine anzeigt sortiert nach Datum. Da führt glaube ich ein weg um ein Script nicht drumherum
Ich habs jetzt ganz quick & dirty mit zusammenfügen von Text Dateien gemacht und dies dann eben zurückgeschrieben.
Aber in dem Adapter Treshschedule gibt es doch Datenpunkte welche immer sortiert nach dem nächsten Termin angezeigt werden:
Next und NextAfter ist genau das was du willst.
Next und next after passen, sofern man nur 2 kommende Abholungen anzeigen lassen möchte.
Ich hab hier 4 bzw 5 Typen. Und würde gerne jeweils die nächsten pro Typ (sortiert nach Datum) anzeigen lassen. Das geht dann glaube ich nicht, oder irre ich mich?
Hast du Recht. Mir Reicht das mit den zwei nächsten Abholungen aus.
In deinem Fall müsste man sich nochmals genauer überlegen, wie man das umsetzten könnte. hier müsste man sich die JSOn Werte ziehen und dann weiter verarbeiten.
@loemic87 kurzes Update.
Ich habe das ganze jetzt kurz getestet und dementsprechend wie du gewünscht hast umgesetzt. Wo ich mir nur nicht sicher bin, ob die JSON immer aktualisiert wird und das nächste aktuelle Datum dann nach oben rutscht, sobald ein Termin durchlaufen ist. Kannst du mir das zufällig sagen?
Ansonsten hier meine Umsetzung:
Wie gesagt, quick and dirty. Im Idealfall schreibst du dann die Objects zusammen und lässt dir daraus über Blockly wieder ein JSON erstellen, wozu ich jetzt gerade zu faul war.
Das ganze dann eben in einen Datenpunkt vom Typ JSON schreiben, wo das Ergebnis dann so aussieht:
Diesen DP kannst du dann in der APP als JSON einbinden :).
Wie gesagt, die Geschichte mit dem Formatieren/bauen des JSON Files kann man noch besser lösen (Konvertieren aus Objecten).
Hoffe konnte dir weiterhelfen.
Grüße Phil
@philg1234
deine "quick-and-dirty"-Lösung funktioniert einwandfrei. Morgen ist bei uns die nächste planmäßige Abholung, da wird sich zeigen, ob das dann auch so klappt, dass vernünftig aktualisiert wird. Leider fehlt mir das blockly know-how um das anders/besser zu lösen, so wie du es beschreibst. Aber mit der Lösung bin ich voll zufrieden! Vielen Dank!
Formatierung des Outputs wäre wieder eine andere Sache, aber mir reicht das so erstmal definitiv.
So sieht mein "Endergebnis" jetzt aus. Habe dein blockly noch um die Wochentage ergänzt. Wer Interesse an dem blockly hat:
Abfallkalender.iobmobile_abfallkalender.zip
Der jeweils eigene DP in userdata muss natürlich angepasst werden.
Top wie sich hier gegenseitig geholfen wird 🙂
Ich kann mir das Blockly mal ansehen und in ein Skript umwandeln das sich den benötigten Datenpunkt selbst anlegt und in dem über ein paar Variablen dann festgelegt werden kann, wie viele zukünftigen Termine angezeigt werden sollen.
LG, Peter
Hi nochmal, ich hab jetzt in Javascript nochmal ein Skript zum Aufbereiten der Daten für den DP Typ JSON in der App geschrieben und dieses als erstes Skript hier im Repo reingegeben. Der Aufbau ist so, dass am Beginn des Skripts einzelne Parameter an die eigenen Wünsche angepasst werden können (wie viele nächste Termine, Wochentag anzeigen ja/nein, Wochentag kurz/lang, etc.).
https://github.com/peter9teufel/iobmobile-issues/tree/main/scripts/trashschedule
Das Skript kann einfach direkt kopiert und in ein neues Javascript in ioBroker eingefügt werden.
Schaut mal ob das verständlich ist, ich hab versucht es möglichst gut zu kommentieren was angepasst werden kann.
LG, Peter
Getestet und für gut befunden 👌👌
Sehr gut find ich den Teil 😁:
Ich denke für die Zukunft ist das ganze sicher der richtige Weg, so die Scripts weiterzugeben. Die Frage ist, ob es vllt für manche Anwender auch sinnvoll ist Blockly Scripts bereitzustellen, welche nicht viel mit Javascript oder Programmierung am Hut haben (in Bezug auf Erweiterung).
Oder willst du das Repository nur mit Javascript befüllen?
Grüße Phil
Wenn gute Blockly Skripte kommen gerne, kann die selber halt schwer überprüfen weil ich mich damit so gar nicht beschäftige. Nehm aber Blocklys gerne ins Repo auf 👍
wenn das Skript funktioniert mach ich hier mal zu.
Lg, Peter
Hi,
ich Versuche die Informationen aus dem trashschedule-adapter einzubinden. Ideal wäre da denke ich das vom Adapter bereitgestellte json im Ordner "Types". Wenn ich den DP in der App einbinden erhalte ich als Ausgabe "Kein Wert gesetzt". Mache ich etwas falsch?
Kann man die Daten des trashschedule-Adapters evtl. Anders sinnvoll einbinden, gerne auch mit einem Script und dann über die Userdata-DPe.