NEWS
Blockly
-
Ist das so korrekt, oder zu umständlich?
![](</s><URL url=)<link_text text="http://uploads.tapatalk-cdn.com/2016092 ... 283815.jpg">http://uploads.tapatalk-cdn.com/20160920/7965789db5e49271fe6bffa315283815.jpg</link_text>" /> -
Willst du nicht so was einbauen wie: "ich schalte das Radio in 2 Minuten aus, druck Knopf um weiter zu hören" ?
und bei "Radio aus", solltest du noch den Timer stoppen.
-
Hallo,
ich bekomme es immer noch nicht am laufen, ich habe glaube ich so ziemlich fast alles ausprobiert.
Kann es sein, dass dein _EG.Flur.Licht.State immer nur "true" ist?
Dann solltest du auf "wurde aktualisiert" ändern.
Und bitte im zweiten Fall versuchst du auf ein Wert zu triggern… Du musst Objekt ID nehmen.
Und natürlich "Javascript" Adapter muss laufen und Skript muss gespeichert sein und auch laufen. `
EG Flur Licht ist nicht immer "true", ich spiele damit rum.
2. Fall habe ich auch geändert, ohne Erfolg.
Javascript Adapter läuft, selbstverständlich speichere ich und aktualisiere nochmals.
Unter den Adapter Einstellungen habe ich den Haken bei "Erlaube das Kommando "setObject": " gesetzt, aber das hatte wohl auch nichts damit zu tun.
Benötige ich noch irgendetwas wo ich vielleicht nicht dran denke, oder was mir so nicht bewusst ist (z.B. Cron oder ID Einfügen)?
Bin irgendwie am verzweifeln.
blockly.JPG
Im Log ist nichts zu sehen, weder im Script Log unterhalb der Programmierung, noch in iOBroker.
Das ist der Auszug aus dem Log "info" von iobroker.
! hm-rpc-0 2016-09-12 20:20:19.311 info setValue ["MEQ0276480:1","STATE",false] BOOL
! hm-rpc-0 2016-09-12 20:20:15.972 info setValue ["MEQ0276480:1","STATE",true] BOOL
! hm-rpc-0 2016-09-12 20:19:47.767 info setValue ["MEQ0276480:1","STATE",false] BOOLLg Mike `
Folgende Warnungen bekomme ich, kann es damit etwas zu tun haben, weiß leider nicht was das bedeutet.
! Home-ioBroker 2016-09-20 19:02:54.094 warn host.Home-ioBroker instance system.adapter.javascript.0 already running with pid 2724
! host-Home-ioBroker 2016-09-20 19:02:24.080 warn instance system.adapter.javascript.0 terminated due to SIGTERM
! host-Home-ioBroker 2016-09-20 19:02:03.237 warn instance system.adapter.javascript.0 already running with pid 1672
! host-Home-ioBroker 2016-09-20 19:01:53.019 warn instance system.adapter.javascript.0 already running with pid 1672
! host-Home-ioBroker 2016-09-20 19:01:33.223 warn instance system.adapter.javascript.0 terminated due to SIGTERM
! host-Home-ioBroker 2016-09-20 19:01:23.005 warn instance system.adapter.javascript.0 terminated due to SIGTERM
! host-Home-ioBroker 2016-09-20 19:00:44.098 warn instance system.adapter.javascript.0 already running with pid 1020
! host-Home-ioBroker 2016-09-20 19:00:14.084 warn instance system.adapter.javascript.0 terminated due to SIGTERMGruß Mike
-
Hallo,
egal was und wie ich es mache, ich bekomme mit Blockly kein Licht gesteuert.
Habe mir die Hilfe auf "https://github.com/ioBroker/ioBroker.ja … ckly_en.md" angeschaut, meiner Meinung nach alles gemacht wie es dort steht. Mache ich irgendetwas grundsätzliches noch falsch ?
blockly.JPG
Sollte nicht theoretisch beides funktionieren ? Wenn EG Flur Licht sich ändert, OG 1 Flur Licht einschalten, im ersten teil mit wert von EG Flur, oder im 2. ein?
Habe auch etliche andere Sachen versucht, möchte zunächst einfach nur ein Licht schalten können, wie ist erst einmal egal.
Lg Mike `
Kannst du da debug Ausgaben einbauen? Ob trigger überhaupt funktioniert? -
Vielen danke für den Tip Bluefox, frage ist nur wie?
Wird der timeout beim erneuten drücken des Taster nicht so oder so zurückgesetzt?
-
Vielen danke für den Tip Bluefox, frage ist nur wie?
Wird der timeout beim erneuten drücken des Taster nicht so oder so zurückgesetzt? `
Direkt unter dem "timeout"-block (heisst bei die "ausführen" ist ein "clearTimeout" (weiss grad nicht wie der in deutsch heisst … den musst Du nehmen und einbauen wenn Du ausschaltest
-
Puhhhh,
also
1. mit Time out stop bekomme ich es leider nicht hin, mir ist leider nicht klar wo ich ihn platzieren muss
2. bekomme ich leider keine richtige Rückmeldung vom Receiver welcher Eingang gerade ausgewählt ist. Bereutet im Klartext:
Ich schalte das Radio an und meine Frau schaltet danach auf TV um Timer schaltet leider aus
-
"Time out stop" nutzt du um das automatische ausschalten nach ner Stunde zu "stoppen" (also zu verhindern). Also muss es an alle Stellen wo du es stoppen willst … AM einfachsteh muss das in den Block wo du explizit ausschaltest weil Du sollst doppelt ausschaltest - einmal sofort und einmal der Timer später.
Das Problem mit der Fehlenden Rückmeldung und damit zu frühem ausschalten löst das freilich nicht ;(
-
Die Sache mit dem autom. abschalten werde ich jetzt löschen, da ich ja keine Rückmeldung bekomme.
Ist aber auch nicht schlimm, vergessen kann man das ja eigentlich nicht
Wichtiger ist die Frage wie ich ein Web-Radiosender weiter schalten kann. Aber das kann mir max. hier der Entwickler des Adapters sagen (auch an dieser Stelle vielen Dank und meinen großen Respekt dafür), oder?
Ich habe leider auch keine aktuelle Liste mit Befehlen von YAMAHA gefunden, die ich als "Command" einfügen könnte
Noch Jemand eine Idee ?
-
Hallo,
Kannst du da debug Ausgaben einbauen? Ob trigger überhaupt funktioniert? `
ja das habe ich nochmals in vielen Varianten versucht, hatte ich auch schon mal hier gepostet "Beitragvon mike2712 » 12.09.2016, 19:11"
Kann das etwas mit den Warnungen zu tun haben? Ich denke auch das der Trigger nicht funktioniert, aber warum?
Lg Mike
-
Hallo,
egal was und wie ich es mache, ich bekomme mit Blockly kein Licht gesteuert.
Habe mir die Hilfe auf "https://github.com/ioBroker/ioBroker.ja … ckly_en.md" angeschaut, meiner Meinung nach alles gemacht wie es dort steht. Mache ich irgendetwas grundsätzliches noch falsch ?
blockly.JPG
Sollte nicht theoretisch beides funktionieren ? Wenn EG Flur Licht sich ändert, OG 1 Flur Licht einschalten, im ersten teil mit wert von EG Flur, oder im 2. ein?
Habe auch etliche andere Sachen versucht, möchte zunächst einfach nur ein Licht schalten können, wie ist erst einmal egal.
Lg Mike `
Hallo mike2712
Dies wird Dir nicht wirklich weiterhelfen.
Aber ich habe Dein Blockly mal nach gebaut.
Beide Versionen funktionieren einwandfrei.Das erzeugte Script sieht so aus.
! on({id: "hm-rpc.0.KEQ0881320.1.STATE"/WZ-TA-LErker:1.STATE/, change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
! });
! on({id: 'hm-rpc.0.KEQ0881320.1.STATE', change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
! });Die Trigger sind in Ordnung. Das Problem muss woanders sein.
Grüße
-
Hallo
@rantanplan:Hallo mike2712
Dies wird Dir nicht wirklich weiterhelfen.
Aber ich habe Dein Blockly mal nach gebaut.
LampeSchaltetLampe.png
Beide Versionen funktionieren einwandfrei.
Das erzeugte Script sieht so aus.
! on({id: "hm-rpc.0.KEQ0881320.1.STATE"/WZ-TA-LErker:1.STATE/, change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
! });
! on({id: 'hm-rpc.0.KEQ0881320.1.STATE', change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
! });Die Trigger sind in Ordnung. Das Problem muss woanders sein.
Grüße `
ich habe meins jetzt mal exakt so gemacht wie Dein, natürlich mit meinem Licht.Der Code ist unterschiedlich in der ersten Zeile:
! on({id: 'hm-rpc\.0\.MEQ0276480\.1\.STATE', change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! setState("hm-rpc.0.MEQ0276492.1.STATE"/_OG1 Flur Licht.STATE/, getState("hm-rpc.0.MEQ0276539.1.STATE").val);
! });Ich schau mal, jetzt habe ich ja einen Ansatz, aber verstehe tue ich das nicht.
Auch das bringt mich nicht weiter, folgendes script habe ich mit java, ohne Blockly erstellt, geht auch nicht.
! on({id: 'hm-rpc.0.MEQ0276480.1.STATE', change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! setState("hm-rpc.0.MEQ0276492.1.STATE"/_OG1 Flur Licht.STATE/, getState("hm-rpc.0.MEQ0276539.1.STATE").val);
! });Gruß Mike
-
Hallo,
vielen Dank für die Hilfe, ich hab es jetzt am laufen **** freu ****.
Es lag daran das Script unter global und nicht unter common war.
Weiß zwar noch nicht wo der Unterschied ist, aber jetzt kann ich loslegen mit dem testen und spielen.
Lg Mike
-
Hallo,
vielen Dank für die Hilfe, ich hab es jetzt am laufen **** freu ****.
Es lag daran das Script unter global und nicht unter common war.
Weiß zwar noch nicht wo der Unterschied ist, aber jetzt kann ich loslegen mit dem testen und spielen.
Lg Mike `
Na dann viel Spaß!
Meine Scripte liegen alle oberhalb von "global" und "common".
Die Bedeutung von "global" und "common" ist mir noch ganz klar.Grüße
-
Hallo
Ich bin gerade dabei meine Heizungsscripte von ScriptGUI nach Blockly zu bringen.
Wenn ich das durch habe, kann ich CCU.IO ausschalten
Jetzt vermisse ich aber einen Baustein in Blockly
Bei ScriptGUI hieß der "Timespan".
Damit konnte man herausfinden ob die aktuelle Zeit innerhalb einen Zeitbereiches ist oder nicht.
Ein erzeugtes Script von dem Baustein sieht so aus.
! function codebox_21(data) {
! var inputlocal_131_out = Start_Zeit_Bereich;
! var inputlocal_132_out = Ende_Zeit_Bereich;
! var now = new Date();
! var time1 = new Date();
! var time2 = new Date();
! var in1 = inputlocal_131_out;
! var in2 = inputlocal_132_out;
! var double1 = in1.split(" ");
! var double2 = in2.split(" ");
! var time;
! var date1;
! var date2;
! if (double1[1]) {
! time = double1[1].split(":");
! date1 = double1[0].split(".");
! date2 = double1[0].split("-");
! } else {
! time = in1.split(":");
! date1 = in1.split(".");
! date2 = in1.split("-");
! }
! if (time.length == 2) {
! time1.setHours(time[0]);
! time1.setMinutes(time[1]);
! }
! if (time.length == 3) {
! time1.setHours(time[0]);
! time1.setMinutes(time[1]);
! time1.setSeconds(time[2]);
! }
! if (date2.length == 3) {
! if (date2[0].length == 4) {
! time1.setFullYear(date2[0]);
! } else {
! time1.setFullYear("20" + date2[0]);
! }
! time1.setMonth(date2[1] - 1);
! time1.setDate(date2[2]);
! }
! if (date1.length == 3) {
! if (date1[0].length == 4) {
! time1.setFullYear(date1[2]);
! } else {
! time1.setFullYear("20" + date1[2]);
! }
! time1.setMonth(date1[1] - 1);
! time1.setDate(date1[0]);
! }
! if (double2[1]) {
! time = double2[1].split(":");
! date1 = double2[0].split(".");
! date2 = double2[0].split("-");
! } else {
! time = in2.split(":");
! date1 = in2.split(".");
! date2 = in2.split("-");
! }
! if (time.length == 2) {
! time2.setHours(time[0]);
! time2.setMinutes(time[1]);
! }
! if (time.length == 3) {
! time2.setHours(time[0]);
! time2.setMinutes(time[1]);
! time2.setSeconds(time[2]);
! }
! if (date2.length == 3) {
! if (date2[0].length == 4) {
! time1.setFullYear(date2[0]);
! } else {
! time1.setFullYear("20" + date2[0]);
! }
! time2.setMonth(date2[1] - 1);
! time2.setDate(date2[2]);
! }
! if (date1.length == 3) {
! if (date1[0].length == 4) {
! time2.setFullYear(date1[2]);
! } else {
! time2.setFullYear("20" + date1[2]);
! }
! time2.setMonth(date1[1] - 1);
! time2.setDate(date1[0]);
! }
! process.send(time1);
! process.send(time2);
! if (time1.valueOf() < now.valueOf() && time2.valueOf() > now.valueOf()) {
! var timespan_57_out = true;
! } else {
! var timespan_57_out = false;
! }
! if (timespan_57_out != false && timespan_57_out != undefined && timespan_57_out != 0) {
! codebox_43(data);
! }
! if (timespan_57_out == false || timespan_57_out == undefined || timespan_57_out == '') {
! codebox_48(data);
! }
! };@Bluefox - Ist es möglich so einen Baustein in Blockly einzubauen?
Grüße
-
Ein "schedule"-Blockly wo man eine Variable als "Zeit" übergeben kann wäre super. `
+1 `
Hallo, Danke für die Antwort (sorry das ich jetzt erst antworte).Also ich hab schon mit einer richtigen URL probiert. Aber das Problem ist doch vor dem Bildschirm. Ich hab das Ergebnis (den Rückgabewert) im Parameter result erwartet, dieser ist aber im objekt response.
der Blockly
erzeugt den code
require("request")('http://192.168.178.205/addons/xmlapi/rssilist.cgi', function (error, response, result) { LogObject('error', error); LogObject('result', result); LogObject('response', response); });
in response ist jetzt ein objekt
response={"statusCode":200,"body":"ergebniss"}
Wie greife ich jetzt unter Blockly auf das body zu? Muss ich dazu auf eine Javascript Funktion zurückgreifen, die mir das wieder auseinander nimmt oder gibt es da eine einfache Möglichkeit?
Danke & Gruß
(LogObject ist folgende Funktion (zum importieren in Blockly):
! ````
<block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomnoreturn" id="=m_sG#h6Qfd+Q`;Q/+-k" x="13" y="-87"><mutation statements="false"><arg name="text"></arg>
<arg name="data"></arg></mutation>
<field name="NAME">LogObject</field>
<field name="SCRIPT">CmNvbnNvbGUubG9nKFN0cmluZyh0ZXh0KSArICc9JyArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsK</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment></block> -
Ein "schedule"-Blockly wo man eine Variable als "Zeit" übergeben kann wäre super. `
+1 `
Hallo, Danke für die Antwort (sorry das ich jetzt erst antworte).Also ich hab schon mit einer richtigen URL probiert. Aber das Problem ist doch vor dem Bildschirm. Ich hab das Ergebnis (den Rückgabewert) im Parameter result erwartet, dieser ist aber im objekt response.
der Blockly
Blockly_request.PNG
erzeugt den code
require("request")('http://192.168.178.205/addons/xmlapi/rssilist.cgi', function (error, response, result) { LogObject('error', error); LogObject('result', result); LogObject('response', response); });
in response ist jetzt ein objekt
response={"statusCode":200,"body":"ergebniss"}
Wie greife ich jetzt unter Blockly auf das body zu? Muss ich dazu auf eine Javascript Funktion zurückgreifen, die mir das wieder auseinander nimmt oder gibt es da eine einfache Möglichkeit?
Danke & Gruß
(LogObject ist folgende Funktion (zum importieren in Blockly):
!
<block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomnoreturn" id="=m_sG#h6Qfd+Q`;Q/+-k" x="13" y="-87"><mutation statements="false"><arg name="text"></arg> <arg name="data"></arg></mutation> <field name="NAME">LogObject</field> <field name="SCRIPT">CmNvbnNvbGUubG9nKFN0cmluZyh0ZXh0KSArICc9JyArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsK</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment></block>
`
Es ist komisch, dass result nichts drin hat.Laut request doku https://www.npmjs.com/package/request :
var request = require('request'); request('http://www.google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // Show the HTML for the Google homepage. } })
muss body in deinem result drin stecken.
Warum dass nicht so ist, weiß ich nicht, aber ich habe bei mir getestet und es geht mit "result".
Du kannst mit dem block nicht auf ein Objekt zugreifen. Dafür muss du mit Funktionen arbeiten.
-
Hallo
Ich bin gerade dabei meine Heizungsscripte von ScriptGUI nach Blockly zu bringen.
Wenn ich das durch habe, kann ich CCU.IO ausschalten
Jetzt vermisse ich aber einen Baustein in Blockly
Bei ScriptGUI hieß der "Timespan".
Damit konnte man herausfinden ob die aktuelle Zeit innerhalb einen Zeitbereiches ist oder nicht.
Timespan.png
Ein erzeugtes Script von dem Baustein sieht so aus.
! function codebox_21(data) {
! var inputlocal_131_out = Start_Zeit_Bereich;
! var inputlocal_132_out = Ende_Zeit_Bereich;
! var now = new Date();
! var time1 = new Date();
! var time2 = new Date();
! var in1 = inputlocal_131_out;
! var in2 = inputlocal_132_out;
! var double1 = in1.split(" ");
! var double2 = in2.split(" ");
! var time;
! var date1;
! var date2;
! if (double1[1]) {
! time = double1[1].split(":");
! date1 = double1[0].split(".");
! date2 = double1[0].split("-");
! } else {
! time = in1.split(":");
! date1 = in1.split(".");
! date2 = in1.split("-");
! }
! if (time.length == 2) {
! time1.setHours(time[0]);
! time1.setMinutes(time[1]);
! }
! if (time.length == 3) {
! time1.setHours(time[0]);
! time1.setMinutes(time[1]);
! time1.setSeconds(time[2]);
! }
! if (date2.length == 3) {
! if (date2[0].length == 4) {
! time1.setFullYear(date2[0]);
! } else {
! time1.setFullYear("20" + date2[0]);
! }
! time1.setMonth(date2[1] - 1);
! time1.setDate(date2[2]);
! }
! if (date1.length == 3) {
! if (date1[0].length == 4) {
! time1.setFullYear(date1[2]);
! } else {
! time1.setFullYear("20" + date1[2]);
! }
! time1.setMonth(date1[1] - 1);
! time1.setDate(date1[0]);
! }
! if (double2[1]) {
! time = double2[1].split(":");
! date1 = double2[0].split(".");
! date2 = double2[0].split("-");
! } else {
! time = in2.split(":");
! date1 = in2.split(".");
! date2 = in2.split("-");
! }
! if (time.length == 2) {
! time2.setHours(time[0]);
! time2.setMinutes(time[1]);
! }
! if (time.length == 3) {
! time2.setHours(time[0]);
! time2.setMinutes(time[1]);
! time2.setSeconds(time[2]);
! }
! if (date2.length == 3) {
! if (date2[0].length == 4) {
! time1.setFullYear(date2[0]);
! } else {
! time1.setFullYear("20" + date2[0]);
! }
! time2.setMonth(date2[1] - 1);
! time2.setDate(date2[2]);
! }
! if (date1.length == 3) {
! if (date1[0].length == 4) {
! time2.setFullYear(date1[2]);
! } else {
! time2.setFullYear("20" + date1[2]);
! }
! time2.setMonth(date1[1] - 1);
! time2.setDate(date1[0]);
! }
! process.send(time1);
! process.send(time2);
! if (time1.valueOf() < now.valueOf() && time2.valueOf() > now.valueOf()) {
! var timespan_57_out = true;
! } else {
! var timespan_57_out = false;
! }
! if (timespan_57_out != false && timespan_57_out != undefined && timespan_57_out != 0) {
! codebox_43(data);
! }
! if (timespan_57_out == false || timespan_57_out == undefined || timespan_57_out == '') {
! codebox_48(data);
! }
! };@Bluefox - Ist es möglich so einen Baustein in Blockly einzubauen?
Grüße `
Brauchst du wirklich mit Datum oder nur Tageszeit? Weil Tageszeit ist schon implementiert. -
Brauchst du wirklich mit Datum oder nur Tageszeit? Weil Tageszeit ist schon implementiert. `
Hallo Bluefox
Danke für Deine Antwort.
Du meinst wahrscheinlich den Baustein "Aktuelle Zeit ist "{}" "Uhrzeit"".
Der währe gut, wenn "Uhrzeit" über eine Variable gesteuert werden könnte.
So "festverdrahtete" Parameter mag ich nicht, weil man für Änderungen IMMER an das Programm muss.
Das regel ich lieber über Systemvariablen.
Und "Frau" will auch mal was ändern können. (Und die lasse ich besser nicht ans Programm
)
Ähnlich "Aktuelle Zeit von "Sonnenaufgang usw." Offset (Minuten).
Der "Offset" sollte variabel sein.
Ich habe es Momentan mit einer Funktion gelöst, die true/false zurückgibt.
{aktuelle Zeit als SS:mm} >= {Zeit_Anfang} UND {aktuelle Zeit als SS:mm} <= {Zeit_Ende}
Wobei "Zeit_Anfang" und "Zeit_Ende" Systemvariablen sind.
Dies funktioniert leider nicht tagesübergreifend. Also zwischen "22:00" und "05:00".
Ein Vergleich mit Zeit/Datum wäre auch nicht schlecht.
Z.B. von 03.03.2017 bis 20.03.2017 ist Urlaub.
(Zeitangaben natürlich variabel
)
Grüße
-
- 1 auch ich würde mich freuen wen man diese werte (zeit/timer etc) hard Coded UND als Variable setzen könnte, das macht alles flexibler/dynsmischer
Sent from my iPhone using Tapatalk