NEWS
Konvertierung mit Blockly
-
Ich brauch' mal wieder Nachhilfe.
Warum funktioniert das nicht?:
Das aktuelle Datum alleine wird sauber angesagt.
-
Keiner eine Idee? :roll:
-
Hi,
ich würde mal versuchen nicht auf wahr sondern auf aktualisieren zu triggern.
-
Ist der Taster ein Batterietaster?
Da wird der Datenpunkt dann "nur" aktualisiert, er bleibt immer auf true stehen. Also, so wie es Linedancer schon geschrieben hat, sollte es funktionieren.
Enrico
-
Sorry, habe ich vielleicht nicht eindeutig genug gesagt:
Das Triggern ist nicht das Problem. Die Konvertierung geht nicht. Der violette Teil im Screenshot.
Stelle ich da statt der Konvertierung nur das aktuelle Datum rein, wird es sauber angesagt.
So wie gezeigt kommt eine Latte an Fehlermeldungen ins Log:
! ````
2019-01-24 09:16:29.650 - error: javascript.0 Error in callback: TypeError: date.getDay is not a function
2019-01-24 09:16:29.653 - error: javascript.0 at formatDate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2071:32)
2019-01-24 09:16:29.654 - error: javascript.0 at Object. (script.js.common.Test:4:73)
2019-01-24 09:16:29.654 - error: javascript.0 at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:756:38)
2019-01-24 09:16:29.654 - error: javascript.0 at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:358:25)
2019-01-24 09:16:29.654 - error: javascript.0 at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37)
2019-01-24 09:16:29.655 - error: javascript.0 at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
2019-01-24 09:16:29.655 - error: javascript.0 at Socket.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
2019-01-24 09:16:29.655 - error: javascript.0 at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10)
2019-01-24 09:16:29.655 - error: javascript.0 at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
2019-01-24 09:16:29.655 - error: javascript.0 at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
2019-01-24 09:16:29.655 - error: javascript.0 at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
2019-01-24 09:16:29.655 - error: javascript.0 at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
2019-01-24 09:16:29.655 - error: javascript.0 at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
2019-01-24 09:16:29.655 - error: javascript.0 at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
2019-01-24 09:16:29.655 - error: javascript.0 at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-parser/index.js:251:12)
2019-01-24 09:16:29.656 - error: javascript.0 at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:335:16)
2019-01-24 09:16:29.656 - error: javascript.0 at Socket. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
2019-01-24 09:16:29.656 - error: javascript.0 at Socket.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
2019-01-24 09:16:29.656 - error: javascript.0 at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:456:14)
2019-01-24 09:16:29.656 - error: javascript.0 at WS. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:273:10)
2019-01-24 09:16:29.656 - error: javascript.0 at WS.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
2019-01-24 09:16:29.656 - error: javascript.0 at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:145:8)
2019-01-24 09:16:29.656 - error: javascript.0 at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:137:8)
2019-01-24 09:16:29.656 - error: javascript.0 at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:147:10)
2019-01-24 09:16:29.656 - error: javascript.0 at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:99:16)
2019-01-24 09:16:29.656 - error: javascript.0 at emitOne (events.js:116:13)
2019-01-24 09:16:29.657 - error: javascript.0 at WebSocket.emit (events.js:211:7)
2019-01-24 09:16:29.657 - error: javascript.0 at Receiver._receiver.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:141:47)
2019-01-24 09:16:29.657 - error: javascript.0 at Receiver.dataMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:389:14)
2019-01-24 09:16:29.657 - error: javascript.0 at Receiver.getData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:330:12)
2019-01-24 09:16:29.657 - error: javascript.0 at Receiver.startLoop (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:165:16)
2019-01-24 09:16:29.657 - error: javascript.0 at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:139:10)
2019-01-24 09:16:29.657 - error: javascript.0 at Socket._ultron.on (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:138:22)
2019-01-24 09:16:29.657 - error: javascript.0 at emitOne (events.js:116:13)
2019-01-24 09:16:29.657 - error: javascript.0 at Socket.emit (events.js:211:7)
2019-01-24 09:16:29.658 - error: javascript.0 at addChunk (_stream_readable.js:263:12)
2019-01-24 09:16:29.658 - error: javascript.0 at readableAddChunk (_stream_readable.js:250:11)
2019-01-24 09:16:29.658 - error: javascript.0 at Socket.Readable.push (_stream_readable.js:208:10)
2019-01-24 09:16:29.658 - error: javascript.0 at TCP.onread (net.js:601:20) -
Du brauchst doch gar nicht zu konvertieren, du kannst doch direkt das Datumobjekt als Wochentag verwenden!
Enrico
-
Ist der Taster ein Batterietaster?
Da wird der Datenpunkt dann "nur" aktualisiert, er bleibt immer auf true stehen. Also, so wie es Linedancer schon geschrieben hat, sollte es funktionieren.
Enrico ` Wie wäre es wenn du einfach auf aktualisieren stellst und das Problem mit true löst indem du einfach einen Block mit einbaust der dir den Zustand auf false setzt? Nur eine Idee [emoji4]
Gesendet von meinem SM-G950F mit Tapatalk
-
Hast du gelesen, was hmmanfred geschrieben hat?
Sorry, habe ich vielleicht nicht eindeutig genug gesagt:
Das Triggern ist nicht das Problem. Die Konvertierung geht nicht. Der violette Teil im Screenshot. `
Enrico
-
Du brauchst doch gar nicht zu konvertieren, du kannst doch direkt das Datumobjekt als Wochentag verwenden! `
Ist klar. Das Problem sollte hier ja nur beispielhaft dargestellt werden.
Jetzt muss ich doch etwas weiter ausholen:
Es gibt ein Objekt, das ein bestimmtes (veränderbares) Datum mit Uhrzeit enthält. Konkret ist es der Beginn einer Wetterwarnung. Inhalt (Beispiel): "26.01.2019 18:00".
Das soll zu "Sam" (oder meinetwegen "Sat") werden.
Damit keiner sagt "Wer weiss, welches Format dieses komische Objekt hat. Vielleicht liegt dein Problem daran." habe ich die Funktion "Aktuelles Datum" aus dem Baukasten für meinen Eingangspost genommen.
Also noch mal:
warum geht weder das eine noch das andere?:
Und damit hier nun nicht jemand sagt: "Warum um Himmels Willen willst du "Sam" auf einem Sprachausgabegerät ausgeben?":
Nein, das will ich nicht wirklich. Ich will "Sam" in ein neues Objekt schreiben. Zum Testen ist es aber ganz praktisch, Ergebnisse auf dem Google Home Mini auf meinem Schreibtisch auszugeben. Das erspart einige Kontroll-Mausklicks.
-
Ich befürchte, dass das mit Blockly nicht funktioniert. Vielleicht kann dir @paul53 weiterhelfen, der kann sehr gut mit javascript!
Enrico
-
Woher soll das Programm den wissen das der 22.01 ein Sam oder anderer Tag ist ?
-
Woher soll das Programm den wissen das der 22.01 ein Sam oder anderer Tag ist ? `
Es ist gut möglich, dass javascript "nur" den aktuellen Wochentag weiß und alle anderen (früheren) Tage berechnet werden müssen.
Enrico
-
Eigentlich muß ein Vergleich her.
Wenn Wetterdatum ist gleich Datum RPI dann nehme Tag RPI.
Wenn nicht rechne Tag zurück / vor.
-
Woher soll das Programm den wissen das der 22.01 ein Sam oder anderer Tag ist ? `
Es ist gut möglich, dass javascript "nur" den aktuellen Wochentag weiß und alle anderen (früheren) Tage berechnet werden müssen. `
Genau das ist es ja, was ich eigentlich möchte.
Und dieses Element - dachte ich - macht das:
Das leere Puzzleteil darin suggeriert, dass ich da ein beliebiges Datum als Input definieren kann.
Reduzieren wird mal das Thema auf die Frage:
Wie kann ich dieses Objekt einsetzen? (Funktionierendes Beispiel)
-
Also da dürfte ein Fehler in JS oder Blocky sein. Mit Monat usw funktioniert es. Auch mit Wochentag als Zahl.
-
Datum/Zeit ist bei mir Monat.Tag.Jahr.
Wochentag als Text geht nicht.
Funktionierendes Beispiel kannste doch selber wenn du weißt das Donnerstag 4 und Montag 1 ist.
5230_wochentag_1.jpg -
Okay, hab's jetzt auch mal so getestet.
Input muss im Format "MM DD YYY" sein.
Output als Text geht gar nicht. Nur DD, MM, YY und YYYY als Zahl.
Müsste also den Input erst mal umformatieren und die Zahl als Output dann nochmal explizit in Text umwandeln. Puh…
Jetzt wäre es mal interessant, zu erfahren, ob das nur in Blockly so ist.