NEWS
Hilfe für Dummy gesucht (gelöst)
-
Hallo liebes Forum, bin nicht auslachen - meine Frage/Fehler ist vermutlich "Peanuts" - bin aber noch Einsteiger.
Folgende Aufgabenstellung:
habe einen Datenpunkt - String angelegt UV-Index
Diesen will ich auslesen und in die Variable "UV-Wert" schreiben; dann in Abhängigkeit der Variablen "UV-Wert" eine 2.teVariable "UV-Text" mit Text befüllen.
Diese Variable will ich dann in den Datenpunkt - String UV-Text schreiben.Fehlermeldung: script.js.UV-Text: TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received undefined
Anbei das Blocky als Bild und Script:
Danke für Eure Hilfe vorab
-
@ps1304 Das "Exec" hat in dem Script nix zu suchen, das wäre zum Ausführen eines Befehls in der Shell. Das "schreibe Objekt ID" musst Du noch mit dem richtigen Wert (der Text-Variablen) beschreiben, dann sollte es gehen
-
@ps1304
So weit weg von dem was du willst bist du nicht.- der "exec" block scheint unnötig. Damit würdest Du einen Systembefehl ausführen. Das willst Du laut deiner Beschreibung nicht.
- der "Schreibe" Block kann also direkt unter den Falls Blöcken eingetragen werden.
- Deine Falls Schleife funktioniert so nicht, da immer der letzte Fall angenommen wird. Da müssten also noch sonst Bäume rein.
Damit sollte es dann gehen.
Eine Verbesserung noch: Ich würde statt des Zeitplans das ganze einmal bei skriptstart durchführen und danach immer dann wenn der UV-Index wert geändert wurde. Also Z.Bsp. so:
Wichtig dabei: der Baustein "state value" kommt aus dem "trigger" Bereich, und ist da mit "Objekt ID" vorbeuget, kann aber auf "Wert" umgestellt werden.
-
@asgothian cool danke dir - kannst du mir den Code noch zur Verfügung stellen?
-
Können schon. Selber nachbauen ist aber besser - dann findest Du die Sachen ggf. später auch mal selber. Und durch Fehler die Du dabei machst lernst Du dann vielleicht noch etwas.
Deswegen habe ich den absichtlich weg gelassen.
A.
-
@asgothian fairer Punkt, will ich ja auch. Frage: wie bekomme ich den ersten "Punkt" im Blocky generiert?
also: to UV Meldung with: UV-Index
die Funktion nach - etwas tun - gib zurück habe ich gefunden -
@ps1304 Ja, dann nimm den Baustein.
Umbenennen sollte einfach sein. Über das Zahnrad kannst du auch den "Übergabeparameter" UV Index definieren.
A.
-
@asgothian perfekt Danke für Deine Hilfe und "Motivation" :-)) - habe mal etwas gebastelt und getestet. Warte mal heute den Tag ab, ob das jetzt so funktioniert.
Das ist jetzt mein Bloky Script
Das Objekt "uv-index" beinhaltet die Zahl des UV-Wertes und wird per 2.tem Script gefüllt
Das Objekt "uv-text" wird mit dem Blocky berechnet und gefülltMal schauen ob das so läuft
-
@ps1304
wenn Du den Datenpunkt "UV-index" schreibfähig machst ("write" = "true") dann kannst Du das auch testen indem Du manuell Werte einträgst -
@bbtown hab ich gestern auch schon probiert - danke trotzdem. Das Script funktioniert :-))
-
@ps1304
Ich ab schon vor Tagen versucht etwas ähnliches zu machen<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="=^M8DHr?F3o8992onF=}">UV-Wert</variable> <variable id="Qk1eJXH})rn~U0!-L?a,">UV-Text</variable> </variables> <block type="on_ext" id="W(z,yg-Ow^f7t{8WQK(s" x="-88" y="-62"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="E?[HmCB=0[zmvV},7AEX"> <field name="oid">openuv.0.UV</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="]qaB]m_Yc-OjQ*Gk,ax]"> <field name="VAR" id="=^M8DHr?F3o8992onF=}">UV-Wert</field> <value name="VALUE"> <block type="field_oid" id="970QW1O:HdPiSIX-~SyE"> <field name="oid">openuv.0.UV</field> </block> </value> <next> <block type="controls_if" id="~j(!-iB/(W{x-w];CU%!" collapsed="true"> <value name="IF0"> <block type="logic_compare" id="w|,#7kYfgC{6)M-gf$Uk"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="+lIBZWO|,6^BK+Q?P.O"> <field name="VAR" id="=^M8DHr?F3o8992onF=}">UV-Wert</field> </block> </value> <value name="B"> <block type="math_number" id="LEx,%HhAw#ccBEPP(v1b"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="b-lOXQ^1?%h(b,E!x;3r"> <field name="VAR" id="Qk1eJXH})rn~U0!-L?a,">UV-Text</field> <value name="VALUE"> <block type="text" id="RS{m|vjt~Vm2y?CYh(."> <field name="TEXT"><tr> <td style="background:#C0FFA0; text-align:center;">0–2</td> <td>niedrig</td> <td>Kein Schutz erforderlich. </td></tr></field> </block> </value> </block> </statement> <next> <block type="controls_if" id="KoQO160P*4oN$4^@?nNp" collapsed="true"> <value name="IF0"> <block type="logic_compare" id="$eZ?.YAkm~bEp+h+w]gs"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id=".13r0{C67=xSeH,7x$Bu"> <field name="VAR" id="=^M8DHr?F3o8992onF=}">UV-Wert</field> </block> </value> <value name="B"> <block type="math_number" id="HJr,Ly?CF7cw2grc{HF_"> <field name="NUM">5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="rP~[TTmnAL*sGDKD3o@1"> <field name="VAR" id="Qk1eJXH})rn~U0!-L?a,">UV-Text</field> <value name="VALUE"> <block type="text" id="(d0%*O9JE}@mrr.-3[gv"> <field name="TEXT"><tr> <td style="background:#F8F040; text-align:center;">3–5</td> <td>mäßig</td> <td>Schutz erforderlich: Hut, T-Shirt, Sonnenbrille, Sonnencreme </td></tr></field> </block> </value> </block> </statement> <next> <block type="controls_if" id="P#IQTmD,zx*1Afe.N+@x" collapsed="true"> <value name="IF0"> <block type="logic_compare" id="Sz_cu})85D~1E,/MHaF1"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="ZjNx~U=Np42A6$$bvge="> <field name="VAR" id="=^M8DHr?F3o8992onF=}">UV-Wert</field> </block> </value> <value name="B"> <block type="math_number" id="3)8EF{g./R;q,sjm4h@O"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="#/,!3jwQbulyWS4J}H3("> <field name="VAR" id="Qk1eJXH})rn~U0!-L?a,">UV-Text</field> <value name="VALUE"> <block type="text" id="q~n/yM+Y/!LLH{1l?ap"> <field name="TEXT"><tr> <td style="background:#F87820; text-align:center;">6–7</td> <td>hoch</td> <td>Schutz erforderlich: Hut, T-Shirt, Sonnenbrille, Sonnencreme.<br> Mittagssonne meiden. </td></tr></field> </block> </value> </block> </statement> <next> <block type="controls_if" id="5aY6UDu1g(*_,~8y0)Z[" collapsed="true"> <value name="IF0"> <block type="logic_compare" id="JJm@T!hf4IfCa7YvZ/*w"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Mh}Hdf#:%VJ;P:TrFi%P"> <field name="VAR" id="=^M8DHr?F3o8992onF=}">UV-Wert</field> </block> </value> <value name="B"> <block type="math_number" id="MGFd}fUFz[D3x8TXGe3%"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="y-)%r2HB6!^GOIm2/40q"> <field name="VAR" id="Qk1eJXH})rn~U0!-L?a,">UV-Text</field> <value name="VALUE"> <block type="text" id="79M;KP(7:`,R1=iKOPdo"> <field name="TEXT"><tr> <td style="background:#D80020; text-align:center;">8–10</td> <td>sehr hoch</td> <td>zusätzlicher Schutz erforderlich: Aufenthalt im Freien möglichst vermeiden<br> <p>Den Aufenthalt im Freien zwischen 11 und 15 Uhr vermeiden; auch im Schatten gehören ein sonnendichtes Oberteil, lange Hosen, Sonnencreme, Sonnenbrille und ein breitkrempiger Hut zum sonnengerechten Verhalten. </p> </td></tr></field> </block> </value> </block> </statement> <next> <block type="controls_if" id="LMpBq7kdOi+%%6{3-0%m" collapsed="true"> <value name="IF0"> <block type="logic_compare" id="}_I?*{?[DIl_.@dPkYu)"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="zLI]@$|?ml3_wNKO)v8@"> <field name="VAR" id="=^M8DHr?F3o8992onF=}">UV-Wert</field> </block> </value> <value name="B"> <block type="math_number" id="#AbcvOG19]fPmt6Bt#?G"> <field name="NUM">11</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="y!2guum{^*z|e/^r]!lN"> <field name="VAR" id="Qk1eJXH})rn~U0!-L?a,">UV-Text</field> <value name="VALUE"> <block type="text" id=")%/Z3Z)tLv)C*wAL7Z%D"> <field name="TEXT"><tr> <td style="background:#A80080; text-align:center;">≥ 11</td> <td>extrem</td> <td>zusätzlicher Schutz erforderlich: Aufenthalt im Freien möglichst vermeiden<br> <p>Die WHO rät, zwischen 11 und 15 Uhr im Schutz eines Hauses zu bleiben und auch außerhalb dieser Zeit unbedingt Schatten zu suchen. Auch im Schatten gelten ein sonnendichtes Oberteil, lange Hosen, Sonnencreme, Sonnenbrille und ein breitkrempiger Hut als unerlässlich. </p> </td></tr></field> </block> </value> </block> </statement> <next> <block type="control_ex" id=".V|0VVOY)Pf$w!21)S+L"> <field name="TYPE">true</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="OID"> <shadow type="field_oid" id="lnv)UkZ70(0@KYW:f(Qj"> <field name="oid">0_userdata.0.Eigenescripte.uv</field> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean" id=";;ei{w51%hYrLQU6!~ZH"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id="3$%I1Ju.xh%}W#dn)-+0"> <field name="VAR" id="Qk1eJXH})rn~U0!-L?a,">UV-Text</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="(,_HlvXu1sk5?*OcLZ@"> <field name="NUM">100</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
in der objekten komme ich nur die meldung
-
@horst-böttcher sagte: versucht etwas ähnliches zu machen
UV-Wert muss den Wert (unter "Trigger") des Datenpunktes erhalten, nicht die ID. Die Prüfung muss in dieser Reihenfolge auf > erfolgen, nicht auf <=.
-
@ps1304 sagte in Hilfe für Dummy gesucht:
@bbtown hab ich gestern auch schon probiert - danke trotzdem. Das Script funktioniert :-))
Freut mich das es funktioniert. Ich hoffe das das selber Bauen Dir auch etwas gebracht hat. Wenn du deinem Post jetzt noch ein [gelöst] mitgeben kannst wäre das toll
A.
-
@asgothian gerne - wie macht man das ?
-
@horst-böttcher bei mir funktioniert das Blocky jetzt. Folgendes Setup:
2 Datenpunkte: uv-index und uv-text
Den DP uv-index befülle ich mit einem anderen Script
Das aktuelle UV-Text Blocky als Bild und Code:
-
bei mir jetzt auch
@paul53 sagte in Hilfe für Dummy gesucht (gelöst):@horst-böttcher sagte: versucht etwas ähnliches zu machen
UV-Wert muss den Wert (unter "Trigger") des Datenpunktes erhalten, nicht die ID. Die Prüfung muss in dieser Reihenfolge auf > erfolgen, nicht auf <=.