NEWS
Erstes Blockly Script für Briefkasten Monitoring ... aber
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
ich versuche gerade etwas mit Blockly "Freund" zu werden
Etwas Lesestoff: https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps
-
Versuche gerade diese 3 Fehler- bzw. Warnings wegzubekommen, es sollte ja nicht "normal" sein, das man in einem (kleinen) Script die Warnings immer einfach ignoriert und beläßt.
Ursache für die zwei Warnings hintereinander ist wohl der Block mit (lösche ich diesen Block, sind diese zwei Warning weg):
"aktuallisiere 0_userdate..... mit: falsch ..."Die zwei Warnings hintereinander5:1, 23:3) erscheinen beim Script-Start,
das einzelne Warning (12:05) nur beim erstmaligen "befüllen" des Briefkastens.Aber was ist da im Script falsch, mit welchem anderen Block kann man einen DP bei Script-Start dann auf einen Startwert setzen?
(es laufen keine anderen Scripte, unter "Global" ist kein Script, und im js- Codeeditor hat dieses Script nur 17 Zeilen)
-
@topsurfer ich denke die rsten beiden Meldungen enstehen beim Scriptstart außerhalb des Triggers.
ein init Wert vonnicht wahr
kommt mir komisch vor.
Im Prinzip brauchst du den CreateState gar nicht (mehr)die dritte Meldung könnte daraus resultieren, dass
nicht wahr
geändert wirdEDIT:
Der Datenpunkt ist ja weder lesbar, noch beschreibbar angelegt!!
kein Wunder dass der sich nicht ändert -
@homoran
Der DP wurde ursprünglich les/schreibbar angelegt, die Haken hatte ich nur zum testen mal entfernt (man sieht ja auch, das der DP beschrieben wurde, erkennt ja, das BK einmal unbefüllt war und dann voll ist).Und ja, die Warning entstehen wohl ausserhalb des Triggers, beim DP erzeugen (hab gelesen, das man genutze DP im Script eintragen soll, damit man nach einer Neuinstallation auch wieder autom. vorhanden sind).
Habe den Create-State mal entfernt (beim DP erzeugen), ändert aber nichts, die zwei Warning bei Scriptstart sind unverändert.
-
@topsurfer
Also so ganz grundsätzlich gehe ich in der Regel hin und lege benötigte Datenpunkte "von Hand" im Objektbaum an.
Das muss ja nur ein einziges Mal passieren und dann nie wieder. Warum also ein Script damit beschäftigen?Wenn Fehler und/oder Warnungen gezeigt werden, steht auch immer die Zeilennummer dabei.
Die nützt einem aber nur etwas, wenn man sich den JS-Quellcode "unter der Haube" ansieht.
Aber damit hat man schon mal einen guten Anhaltspunkt, was ihn da stört.mit welchem anderen Block kann man einen DP bei Script-Start dann auf einen Startwert setzen?
Wie @Homoran schon schreibt: Einfach mit dem "Aktualisiere"-Block (bei eigenen DP).
Aber dazu muss der DP natürlich auch beschreibbar sein.
Und da kommt wieder mein erster Satz zum Tragen: Der DP wird - wenn er einmal existiert - nicht mehr geändert, wenn man im Nachhinein das "ist beschreibbar" anhakt. Da ist also Handarbeit eh besser -
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
das man genutze DP im Script eintragen soll, damit man nach einer Neuinstallation auch wieder autom. vorhanden sind
Die werden doch aus dem Backup wiederhergestellt.
-
@codierknecht sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Die nützt einem aber nur etwas, wenn man sich den JS-Quellcode "unter der Haube" ansieht.
so weit waren wir gestern schon
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Das hatte ich auch schon gemacht, aber was ist 24:3 ?
Das js hat nur 18 Zeilen ... -
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Und ja, die Warning entstehen wohl ausserhalb des Triggers, beim DP erzeugen (hab gelesen, das man genutze DP im Script eintragen soll, damit man nach einer Neuinstallation auch wieder autom. vorhanden sind
Hm wie auch @Codierknecht sagt: wenn du bei einer Neuinstallation noch deine "alten" skripte an Lager hast, dann wirst wohl sinnvollerweise auch ein IoBorker Backup haben. Diese Handhabung mit DP im Blockly erzeugen als "Guideline" kenn ich so auch nicht.
Ist denn dein DP nun les/schreibbar?
Wenn nein dies anpassen (nicht im Blockly) sondern beim DP unter userdata "händisch" und dann mal gucken ob der Fehler noch da ist... -
@mickemup sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Ist denn dein DP nun les/schreibbar?
ich grübele immer noch, ob diese Parameter nicht nur für die direkte Bearbeitung im Editor gelten, und Adapter trotzdem alles dürfen.
ist denn
nicht wahr
ein valider Wert zum beschreiben? -
@homoran sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
ist denn nicht wahr ein valider Wert zum beschreiben?
Sollte eigentlich. Ist ja im Ergebnis auch nur Bool.
-
@codierknecht aber
nicht schwarz
ist nicht =weiß
-
@homoran
Da kenne ich mich nicht aus.
Aber für den aktuellen Fall würde ich im Editor den DP sicher mal schreib- und lesbar machen und die DP Erzeugung im Blockly weglassen -
@homoran
Jetzt wirds philosophisch
Vor allem bei Bool wo es eigentlich ja nur schwarz und weiss geben sollte -
aber nicht schwarz ist nicht = weiß
Aber auch nur, weil es neben "schwarz" und "weiß" noch Millionen anderer Farben gibt.
Bool kennt aber nur zwei Zustände, darum:
"nicht wahr" = "false"
"nicht falsch" = "wahr"quod erat demonstrandum
-
Habe das erstellen des DP entfernt,
der Fehler kommt aber immer noch, beim setzen des Startwerts für den Briefkasten_Voll auf falsch (aber auch beim setzen auf wahr: gleicher Fehler)Im Prinzip funktioniert das Script so, auch kann ich den Status vom Briefkasten über die vis-2 wieder auf "leer" setzen.
Aber diese Warnings, die stören ja, macht ja kein "Sinn", wenn kein Fehler da ist das Blockly sich beschwert (und wie erkenne ich richtige Warnings dann?)
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
der Fehler kommt aber immer noch, beim setzen des Startwerts für den Briefkasten_Voll auf falsch
Hast Du den DP im Objektbaum auf "writeable" gesetzt?
-
@codierknecht
@mickemup
für die Logik passt das, aber als Eintrag im DP???@topsurfer
Zeig mal bitte die Objektdaten des DP.
(Expertenmodus->Bleistift rechts->Objektdaten)bin gespannt was da drin steht
-
Sorry, die DP hatte ich schon kontrolliert, die sind/waren immer: r/w
{ "common": { "type": "string", "read": true, "write": true, "name": "0_userdata.0.Hilfs-DP.Briefkasten_Voll", "role": "state" }, "native": {}, "type": "state", "_id": "0_userdata.0.Hilfs-DP.Briefkasten_Voll", "from": "system.adapter.admin.0", "user": "system.user.admin", "
Update: ich sehe "String" ...
-
@topsurfer sagte: DP hatte ich schon kontrolliert
Falscher Typ "string"! Ändere ihn in "boolean" und die Rolle in "switch".
Vorschlag zur Überprüfung:
-
Ja, mit "Boolean" ist der Fehler weg, k.A. warum da String drinnen stand .-(
Thx!