NEWS
Blockly
-
moin Bluefox
ich habe den Javascript Adapter heute morgen geupdatet.
Ich weiß nicht ob mein script falsch ist oder ein fehler vorliegt.
Hier die Logausgabe
ReferenceError: 2016-08-20 10:07:55.690 error at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20) ReferenceError: 2016-08-20 10:07:55.690 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) ReferenceError: 2016-08-20 10:07:55.690 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2113:37) ReferenceError: 2016-08-20 10:07:55.690 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:222:17) ReferenceError: 2016-08-20 10:07:55.690 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:544:17) ReferenceError: 2016-08-20 10:07:55.690 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2831:28) ReferenceError: 2016-08-20 10:07:55.690 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2812:17) ReferenceError: 2016-08-20 10:07:55.690 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:548:48 ReferenceError: 2016-08-20 10:07:55.690 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1228:48) ReferenceError: 2016-08-20 10:07:55.690 error at Object. (script.js.Diverses.BloklyAnwesend:3:7) ReferenceError: 2016-08-20 10:07:55.690 error getValue is not defined message 2016-08-20 10:07:55.689 error ping.0.Test.192_168_167_164 [object Object] getValue is not defined javascript-0 2016-08-20 10:06:56.134 info script.js.Diverses.BloklyAnwesend: registered 1 subscription and 0 schedules javascript-0 2016-08-20 10:06:56.120 info Start javascript script.js.Diverses.BloklyAnwesend javascript-0 2016-08-20 10:06:56.090 info Stop script script.js.Diverses.BloklyAnwesend
on({id: "ping.0.Test.192_168_167_164"/*SamsungS7*/, change: "ne"}, function (obj) { var value = obj.state.val; if (getValue("ping.0.Test.192_168_167_164").val == (function (){var val = true; if (val === 'true') return true; if (val === 'false') return false; return !!val;})()) { console.log('Ping ist true'); setState("hm-rega.0.950"/*Anwesenheit*/, (function (){var val = true; if (val === 'true') return true; if (val === 'false') return false; return !!val;})()); console.log('Variable Anwesend auf true'); sendTo("pushover", { message: 'Armin ist Anwesend', sound: "" }); } else { console.log('Ping ist false'); setState("hm-rega.0.950"/*Anwesenheit*/, (function (){var val = 0; if (val === 'true') return true; if (val === 'false') return false; return !!val;})()); console.log('Variable Anwesend auf false'); sendTo("pushover", { message: 'Armin ist Abwesend', sound: "" }); } });
wenn die lange Zeile von Blockly // mit kopiert wird lässt sich der Beitrag nicht hoch laden!
wo ist der Fehler?
Danke für die Hilfe!
mfg
Armin
P.s. was bedeutet über rechte Maustaste Baustein zusammenfalten? `
Du hast aber "iobroker upload javascript" nicht aufgerufen. -
Jetzt müssen Blockly-Scipte, bei mir nur noch laufen.
Bitte noch mal vom git updaten. Habe jetzt getValue=>getState gefixt.
Leider noch nicht. Immer noch der gleiche Fehler.
JS 2.3.3
"ioBroker update javascript" durchgeführt.
Den Triger mal gelöscht und wieder neu angelegt.
Leider kein Erfolg.
"getValue is not defined
error hm-rega.0.14256 [object Object] getValue is not defined"
Grüße
-
Beiu mir hats geplappt. Durchgeführt wie im ersten Post.
Macht vllt ne kleine Änder am Skript - ich weiss nicht mit welchem "Trigger" er den code neu generiert … ohne Änderung muss er das ja nicht
Und Bluefox hat ein comment-Blockly eingebaut was man überall einfügen kann. cool.
OT-Robomow: Gern Ich plane für den Herbst noch den Umbau mit Tastensteuerung per HM-Batterieaktoren :-))
-
Beiu mir hats geplappt. Durchgeführt wie im ersten Post.
Macht vllt ne kleine Änder am Skript - ich weiss nicht mit welchem "Trigger" er den code neu generiert … ohne Änderung muss er das ja nicht
Und Bluefox hat ein comment-Blockly eingebaut was man überall einfügen kann. cool.
OT-Robomow: Gern Ich plane für den Herbst noch den Umbau mit Tastensteuerung per HM-Batterieaktoren :-)) `
Alles gut!!!!!!!
Script neu angelegt und es funktioniert.
Kommentar-Baustein ist echt klasse.
(Was Bluefox so mal eben einbaut ist schon ein Hammer)
Jetzt kann die Portierung von CCU.IO nach ioBroker anfangen.
Wenn ich an meine Heizungssteuerung denke, wird das echt spannend.
@Bluefox. Wäre eine Rubrik "Blockly-Scripten" möglich? Dann wäre hier nur Testen.
Grüße
-
Hallo Zusammen
und schon habe ich eine Frage.
Ich möchte einen Trigger, der immer auf 06:00 Uhr reagiert.
Da habe ich mir gedacht, nimm den Cron-Baustein.
Stunden / Jede ausgewählte Stunde / 06
Cron-Ausdruck: 6**
Da drunter steht aber "Jede Minute von 6 Stunde(n)"
Ist das nur eine falsche Anzeige? Hat das schon jemand ausprobiert?
Grüße
-
Bei Cron ist das so korrekt.
Ein "*" steht immer für "jedes mal". Bei dir also "wenn Stunde=6 UND Minute=0 ODER 1 ODER 2 ODER 3..59"
Wenn Du also 6 Uhr haben willst musst du bei den Minuten noch die Minute "0" auswählen, damit gilt dann "wenn Stunde=6 UND Minute=0"
-
Aha, wieder was gelernt. Danke!
Grüße
-
@Bluefox: Mal wieder spontanes Feedback: In ScriptGUI war es einfach eine Textmeldung sowohl an Pushover zu senden als auch ins Log zu schreiben. Bei Blockly müsste man temporär Variablen nutzen oder alles doppelt bauen (also den Text-Blockly).
Wie wäre es damit das man bei den "Send-To"-Blocklys noch wäwhlen könnte ob die Meldung nach dem senden auch ins Log (mit entsprechender Severity) soll ?!
Und noch: Zugriff auf "oldValue" im Rahmen von Triggern wäre auch super
-
Ist es irgendwann geplant die Namen der Objekte in den Bausteinen anzuzeigen?
Das würde einiges vereinfachen.
Grüße
-
EIne Info noch zu den Timeouts (weil gerade drüber gestolpert). Hier gibts aktuell nen Unterschied zu ScriptGUI!!
Die aktuelle Umsetzung bei Blockly behandelt exakt EINEN Timeout/Delay und kann exakt "den letzten gestarteten" Timeout/Delay wieder löschen mit den "clear"-Kommandos.
Bei ScriptGUI war das etwas allgemeiner und hat immer alle pot. laufenden Timeouts gelöscht anstelle nur den letzten
ScriptGUI hat dabei den Code hier erzeugt:
}var brake_29 = [] ;function brake_29_in1 (data){brake_29.push(setTimeout(function(){codebox_5(data);},60000))}function brake_29_in2 (data){while (brake_29.length > 0 ) clearTimeout(brake_29.pop());}
brake_29_in1 ist "Start" und brake_29_in2 war "Stop".
Ich denke das die ScriptGUI-Lösung ggf etwas einfacher für Nicht-Programmierer zu verstehen ist…
@Bluefox: kannst ja überlegen ob Du was änderst oder nicht. Falls ja wäre ne Info cool weil ichjetzt an ersten Teststellen was umbauen musste
-
Ich überlege gerade, ob man die Tagen nicht von 1 bis 7 machen sollte. Aktuell kommen die 0 für Sonntag bis 6 für Samstag. Du wolltest aber sicher Wochentage erwischen. `
Hi, Bluefoxdarüber würde ich mich freuen.
Tage 1 bis 7 ist leicher zu verarbeiten.
Bekommen wir eine Info falls das umgestellt wird?
Grüße
-
Wenn ein Fehler im Script erkannt wird, läuft das Script weiter.
Wäre es nicht besser/sicherer, wenn es gleichzeitig gestoppt wird?
Grüße
-
Auch wenn ich läßtig werde :oops:
Das setzten einer boolschen HM-Systemvariable klappt bei mir nicht.
schedule("* * * * *", function () { console.log('Starte HF MF Feiertag'); // setzte Heute_Frei unwahr setState("hm-rega.0.8862"/*Heute_Frei*/, false, true); // chk Morgen_Frei // chk Wochenende? // chk Feiertag? });
Bug? Oder bin ich zu blöd? :?
Grüße
-
War da nicht was das Rega-Variablen nur bei "ack=false" gesendet werden. Dann wäre das blöd weil im Blockly nicht einstellbar
-
Ja… ich schon wieder.
(Bei uns regnet es )
Zwei weitere Logik-Bausteine wären klasse.
Jeweils für AND und OR, bei denen man mehrere Bedingungen hinzufügen kann.
Bei ScriptGUI sieht das so aus.
Bei "AND" diese Logik.
Ist sowas in Blockly möglich?
Grüße
-
War da nicht was das Rega-Variablen nur bei "ack=false" gesendet werden. Dann wäre das blöd weil im Blockly nicht einstellbar `
Hi Apollon77
Heißt das, ich kann mit ioBroker/Blockly keine HM-Systemvariablen ändern? :shock:
Das wäre für mich das Aus! :evil:
Grüße
-
Da hab ich gerade nur halbwissen bzw ein "da war doch mal was, weil ich selbst das so nicht nutze (ich hab alles was solche Variablen sind schon früher nach CCU.io umgezogen und in der CCU nur noch welche die ich dann woanders lese.
Schau mal hier http://forum.iobroker.net/viewtopic.php?f=22&t=3328 … wenn ich das richtig lese versuchs mal mit dem "command"-Baustein anstelle dem "setze Wert"-Baustein.
Zu Multi AND bzw OR gibt unter "Logik" den "... and ..." Baustein. Dort kannst Du jeweils wieder so einen "... and ..." Baustein reinsetzen und damit alle deine Sachen verketten. Gleiches gilt für "or".
Habe im COde geschaut - es wird scheinbar nicht geklammert, also sind die alle gleichwertig und damit gleichbedeutend mit deinem ScriptGUI-Baustein (nur um einiges schlechter lesbar weil eeeelend lang )
Versuchs mal damit
-
…und in der CCU nur noch welche die ich dann woanders lese. `
Genau darum geht es!HM-SV's lassen sich von JEDER xBeliebigen App anzeigen und steuern.
Ich wollte/will nie von einem Programm abhängig sein/werden.
CCU.io ist da ein gutes Beispiel. Starker Anfang und dann Ende.
Schau mal hier http://forum.iobroker.net/viewtopic.php?f=22&t=3328 … wenn ich das richtig lese versuchs mal mit dem "command"-Baustein anstelle dem "setze Wert"-Baustein. `
Ich habe versucht es zu lesen (etwas aufbebracht). Mein Eindruck…zu umständlich.Ist mir unbegreiflich das ioBroker nicht das auf die Reihe bekommt, was ALLE anderen können.
@Bluefox. Sorry, ich bin gerade etwas sauer. Habe aber noch die Hoffnung, das es ein Bug in Blockly ist.
…(nur um einiges schlechter lesbar weil eeeelend lang ) `
Ja, Möglichkeit ist da. Aber wie Du schön beschrieben hast …eeeelend lang.Grüße
-
Auch wenn ich läßtig werde :oops:
Das setzten einer boolschen HM-Systemvariable klappt bei mir nicht.
filename="Fehler 01.png" index="0">~~schedule("* * * * *", function () { console.log('Starte HF MF Feiertag'); // setzte Heute_Frei unwahr setState("hm-rega.0.8862"/*Heute_Frei*/, false, true); // chk Morgen_Frei // chk Wochenende? // chk Feiertag? });
Bug? Oder bin ich zu blöd? :?
Grüße `
Ihr zwei mit Appolon sied ziemlich fleissig, mit mich mit Wünschen zu bombamdieren.Wenn man wieder vom git updatet (und iobroker upload javascript), dann sollten die Objekte jetzt mit Namen statt OID sein.
Auch logs bei sendTo sind eingebaut. Wochentagen sind auch von 1 bis 7.
` > (bluefox) show state names and not IDs in blockly
(bluefox) add log outputs to sendTo blocks
(bluefox) add oldValue in on block `
Es gibt zwei Blöcke: eine heißt auktualisieren (z.b. Temperature) und andere heißt "steuern".
Du hast den falschen genommen.
-
Hast Du es mal mit dem "command"-Baustein versucht?