NEWS
Blockly für Müllabfuhrtermine
-
Hallo zusammen
kann mir jemand eine Blockly basteln wo ich den Abfuhrtermin aktuell herausfinden kann, und wenn an dem Tag die Abfuhr ist dies in die jeweilige Variable Papier, Restmüll usw. per true und false schreibt.
Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
Hier gehts zur Hilfe. -
-
Ja kenn ich. Ich rufe die Termine direkt ab und bekomme den oberen Output. Hier muss ich dann kein Kalender pflegen.
-
@Elektronikwelt sagte in Blockly für Müllabfuhrtermine:
kann mir jemand eine Blockly basteln wo ich den Abfuhrtermin aktuell herausfinden kann
Mach mal selbst, wo ist das Problem, per ICal bindest du die Kalender ein und per trashschedule
wertest du das aus.
daysleft ist der nächste Abholtag, den verkasperste im Blockly.
Wenn daysleft Biotonne ist 0 dann mache... aktualisiere Datenpunkt xy mit true oder false. -
@Elektronikwelt
Warum? Ist doch auch im ICal Format. Also im Kalender importieren und fertig.
Der Kalender ist hier eigentlich als Standard - Ausgangsbasis gedacht. Irgendwie muss man ja auf einheitliche Werte kommen. Sonst müsste man für jeden User separat eigene Scripte anlegen. -
ICal ist nicht das richtige für mich. Ich habe kein ICal File. Dies sind Onlinedaten die ich direkt von der Gemeinde abrufe.
-
@Elektronikwelt Und was ist das für ein Datenformat?
Das sieht fast aus wie ein ICal Export. -
Ist ein JSON Format aus dem Web.
-
@Elektronikwelt
Ok, das habe ich dann falsch gedeutet.
In dem Fall wirst du wohl das JSON parsen müssen.
Wie du das in Blockly umsetzt kann ich dir dann leider nicht erklären.
Ich könnte dir mein Gasthermenscript anbieten ,it dem ich sowas mache. Das kannst du dir vielleicht mal anschauen um zu sehen wie das abläuft. Eventuell kannst du das ja dann für deine Zwecke nutzen.//Script zur Zerlegung der JSON Daten in einzelne Datenpunkte //Idee: Chaot // Umsetzung: paul53 var json = "mqtt.0.Heizung.boiler_data"/*BoilerDaten*/; var Vorl = "javascript.0.Heizung.Vorlauf"/*Vorlauf*/; var Rueckl = "javascript.0.Heizung.Ruecklauf"/*Ruecklauf*/; var WWist = "javascript.0.Heizung.WarmwasserIst"/*Warmwasser Ist*/; var WWsoll = "javascript.0.Heizung.WarmwasserSoll"/*Warmwasser Soll*/; var Druck = "javascript.0.Heizung.Systemdruck"/*Systemdruck*/; var WWAn = "javascript.0.Heizung.WarmwasserAn"/*Warmwasser aktiv*/; var WWFlow = "javascript.0.Heizung.WarmwasserDurchfluss"/*Warmwasser Durchfluss*/; var GasAn = "javascript.0.Heizung.GasAn"/*Gas aktiv*/; var Leistung = "javascript.0.Heizung.Leistung"/*Leistung*/; var OutTemp = "javascript.0.Heizung.OutTemp"/*Aussentemperatur*/; var BoilTemp = "javascript.0.Heizung.BoilTemp"/*Boilertemperatur*/; var BurnStarts = "javascript.0.Heizung.BurnStarts"/*Brennerstarts*/; var LaufzeitBrenner = "javascript.0.Heizung.LaufzeitBrenner"/*LaufzeitBrenner*/; var LaufzeitWW = "javascript.0.Heizung.LaufzeitWW"/*LaufzeitWW*/; var LaufzeitGesamt = "javascript.0.Heizung.LaufzeitGesamt"/*LaufzeitGesamt*/; var LaufzeitHeizung = "javascript.0.Heizung.LaufzeitHeizung"/*LaufzeitHeizung*/; on(json, function(dp) { var obj = JSON.parse(dp.state.val); setState(Vorl, parseFloat(obj.curFlowTemp)); setState(Rueckl, parseFloat(obj.retTemp)); setState(WWist, parseFloat(obj.wWCurTmp)); setState(WWsoll, parseFloat(obj.wWSelTemp)); setState(Druck, parseFloat(obj.sysPress)); setState(WWAn, obj.wWActivated); setState(WWFlow, obj.wWCurFlow); setState(GasAn, obj.burnGas); setState(Leistung, obj.curBurnPow); setState(OutTemp, obj.outdoorTemp); setState(BoilTemp, obj.boilTemp); setState(BurnStarts, obj.burnStarts); setState(LaufzeitBrenner, obj.burnWorkMin); setState(LaufzeitWW, obj.wWWorkM); setState(LaufzeitGesamt, obj.UBAuptime); setState(LaufzeitHeizung, obj.heatWorkMin); });
-
@Chaot ich bin nicht ganz fit in Javascript. Ich habe z.B. oben in dem Abruf mehrere cal_id usw. . Wie kann ich diese dementsprechend ablegen?
-
@Elektronikwelt
Ich habe jetzt maldeine Kalender etwas übersichtlicher formatiert.
Vielleicht ist dann etwas besser zu erkennen nach was man sortieren könnte:[{"Ack":"Success","id":"mm_termins","messages":[{"status":"OK","msg":"getTermins"}],"_data":[ {"cal_id":"85676095","cal_date":"2020-01-04","cal_date_normal":"04.01.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676124","cal_date":"2020-01-09","cal_date_normal":"09.01.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676140","cal_date":"2020-01-10","cal_date_normal":"10.01.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676096","cal_date":"2020-01-17","cal_date_normal":"17.01.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676097","cal_date":"2020-01-31","cal_date_normal":"31.01.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676125","cal_date":"2020-02-05","cal_date_normal":"05.02.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676141","cal_date":"2020-02-06","cal_date_normal":"06.02.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676098","cal_date":"2020-02-14","cal_date_normal":"14.02.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676087","cal_date":"2020-02-28","cal_date_normal":"28.02.2020","cal_garbage_type":"BIB_PROB","cal_comment":"beim Bauhof 09:30 - 10:15"}, {"cal_id":"85676099","cal_date":"2020-02-28","cal_date_normal":"28.02.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676126","cal_date":"2020-03-04","cal_date_normal":"04.03.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676142","cal_date":"2020-03-05","cal_date_normal":"05.03.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676100","cal_date":"2020-03-13","cal_date_normal":"13.03.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676101","cal_date":"2020-03-27","cal_date_normal":"27.03.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676127","cal_date":"2020-04-01","cal_date_normal":"01.04.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676143","cal_date":"2020-04-02","cal_date_normal":"02.04.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676154","cal_date":"2020-04-09","cal_date_normal":"09.04.2020","cal_garbage_type":"BIB_GRUEN","cal_comment":""}, {"cal_id":"85676102","cal_date":"2020-04-11","cal_date_normal":"11.04.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676103","cal_date":"2020-04-24","cal_date_normal":"24.04.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676128","cal_date":"2020-04-29","cal_date_normal":"29.04.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676144","cal_date":"2020-04-30","cal_date_normal":"30.04.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676104","cal_date":"2020-05-08","cal_date_normal":"08.05.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676105","cal_date":"2020-05-23","cal_date_normal":"23.05.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676129","cal_date":"2020-05-27","cal_date_normal":"27.05.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676145","cal_date":"2020-05-28","cal_date_normal":"28.05.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676106","cal_date":"2020-06-06","cal_date_normal":"06.06.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676107","cal_date":"2020-06-19","cal_date_normal":"19.06.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676130","cal_date":"2020-06-24","cal_date_normal":"24.06.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676146","cal_date":"2020-06-25","cal_date_normal":"25.06.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676108","cal_date":"2020-07-03","cal_date_normal":"03.07.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676109","cal_date":"2020-07-17","cal_date_normal":"17.07.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676131","cal_date":"2020-07-22","cal_date_normal":"22.07.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676147","cal_date":"2020-07-23","cal_date_normal":"23.07.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676110","cal_date":"2020-07-31","cal_date_normal":"31.07.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676111","cal_date":"2020-08-14","cal_date_normal":"14.08.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676132","cal_date":"2020-08-19","cal_date_normal":"19.08.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676148","cal_date":"2020-08-20","cal_date_normal":"20.08.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676112","cal_date":"2020-08-28","cal_date_normal":"28.08.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676113","cal_date":"2020-09-11","cal_date_normal":"11.09.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676133","cal_date":"2020-09-16","cal_date_normal":"16.09.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676149","cal_date":"2020-09-17","cal_date_normal":"17.09.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676114","cal_date":"2020-09-25","cal_date_normal":"25.09.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676088","cal_date":"2020-09-25","cal_date_normal":"25.09.2020","cal_garbage_type":"BIB_PROB","cal_comment":"beim Bauhof 09:30 - 10:15"}, {"cal_id":"85676115","cal_date":"2020-10-09","cal_date_normal":"09.10.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676134","cal_date":"2020-10-14","cal_date_normal":"14.10.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676150","cal_date":"2020-10-15","cal_date_normal":"15.10.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676116","cal_date":"2020-10-23","cal_date_normal":"23.10.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676117","cal_date":"2020-11-06","cal_date_normal":"06.11.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676135","cal_date":"2020-11-11","cal_date_normal":"11.11.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676151","cal_date":"2020-11-12","cal_date_normal":"12.11.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676155","cal_date":"2020-11-12","cal_date_normal":"12.11.2020","cal_garbage_type":"BIB_GRUEN","cal_comment":""}, {"cal_id":"85676118","cal_date":"2020-11-20","cal_date_normal":"20.11.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676119","cal_date":"2020-12-04","cal_date_normal":"04.12.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676136","cal_date":"2020-12-09","cal_date_normal":"09.12.2020","cal_garbage_type":"BIB_PAP","cal_comment":""}, {"cal_id":"85676152","cal_date":"2020-12-10","cal_date_normal":"10.12.2020","cal_garbage_type":"BIB_GELB","cal_comment":""}, {"cal_id":"85676120","cal_date":"2020-12-18","cal_date_normal":"18.12.2020","cal_garbage_type":"BIB_REST","cal_comment":""}, {"cal_id":"85676153","cal_date":"2020-12-30","cal_date_normal":"30.12.2020","cal_garbage_type":"BIB_GELB","cal_comment":""} ],"_extra":[]}]
Aktuell fällt mir da zwar noch nichts ein, aber vielleicht findet sich ja jemand der hier ein Muster erkennt das man umsetzen kann.
-
Ja ich hoffe es. Danke trotzdem für deine Mühe
-
@Elektronikwelt
Hast du mal Tante Google bemüht ob du JSON in Ical konvertiert bekommst?
Oder du nimmst die Datenblöcke und machst schnell ein CSV draus. Das kann der GoogleKalender auch lesen. -
Das geht "eigentlich" wahrscheinlich ganz einfach.
Selbst in Blockly gibt es Blöcke um json auszulesen.Wie das json strukturiert ist kann man sich unter http://jsonviewer.stack.hu/ ansehen
Dann muss mann "nur noch" die richtigen Parameter abfragen, dann klappt es.
Ich selber habe es noch nicht hinbekommen, aber wer sonst als @paul53 hat mir mal ein Skript in dem ich nach werten per Text-Suche parsen wollte in json-Analyse umgebogen.
Ich hatte sonst auch den json2ical Ansatz über google gesucht, finde aber nichts "mal eben" brauchbares
-
Wie das JSON aufgebaut ist, ist mir bekannt. Nur die Frage ist wie komme ich über Blockly an die richtigen Daten. Genau dieser Ansatz fehlt mir.
@paul53 kannst du mir behilflich sein.
-
@Elektronikwelt sagte in Blockly für Müllabfuhrtermine:
Wie das JSON aufgebaut ist, ist mir bekannt.
Dann ist ja gut, dann kennst du auch die Bezeichnungen.
In Blockly von Paul sah das Zerlegen des JSON etwa so aus:
-
@Homoran danke das werde ich mal die nächsten Tage ausprobieren