NEWS
Blockly
-
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
-
Hallo,
das ist ein super Tool, es macht richtig Spaß, aber ich fände es auch gut wenn ein Vergleich von Wochentagen möglich wäre, .B. sollen meine Jalousien am Wochenende mit anderen Zeiten wie in der Woche gesteuert werden, oder gibt es da was und ich habs nur nicht gefunden?
Lg Mike
-
Hallo,
das ist ein super Tool, es macht richtig Spaß, aber ich fände es auch gut wenn ein Vergleich von Wochentagen möglich wäre, .B. sollen meine Jalousien am Wochenende mit anderen Zeiten wie in der Woche gesteuert werden, oder gibt es da was und ich habs nur nicht gefunden?
Lg Mike `
HalloSchau Dir mal den Baustein "Aktuelle Zeit als xxx" unter "Datum und Zeit".
Da kannst Du z.B. Wochentag als Nummer auswählen.
Wochentag 1 = Montag …. Wochentag 7 = Sonntag.
Grüße
-
Hallo Zusammen
Es ist vollbracht
Alles von CCU.io nach ioBroker portiert und CCU.io ausgeschaltet!
Bis jetzt läuft alles sehr stabil!
Eine Kleinigkeit ist mir noch aufgefallen.
Ich habe auf der CCU Systemvariablen umbenannt.
ioBroker hat das nach 2 Std. immer noch nicht mitbekommen.
Erst nach rega-Adapter Neustart stimmte wieder alles.
Blockly hat davon nichts mitbekommen.
In den Scripten standen die alten Bezeichnungen.
Das ist auch OK so.
Die Scripte liefen sauber, weil die ID ja gleichgeblieben ist.
Aber der alte Variablenname blieb auch im Baustein sichtbar, wenn ich die Variable mit dem neuen Namen ausgewählt habe.
Erst Baustein neu anlegen bzw. kopieren übernahm den neuen Variablennamen.
Alles in allem bin ich sehr zufrieden!
Danke Bluefox. Sehr gute Arbeit!
Grüße
-
Ich habe auf der CCU Systemvariablen umbenannt.
ioBroker hat das nach 2 Std. immer noch nicht mitbekommen.
Erst nach rega-Adapter Neustart stimmte wieder alles. `
Das ist normal.
Bei Änderungen an sysvar oder Programmen oder Namen überhaupt muss der Rega Adapter neu gestartet werden.
Ob das auch für den JavaScript Adapter gilt weiss ich nicht.
Gruß
Rainer
-
Das ist normal.
Bei Änderungen an sysvar oder Programmen oder Namen überhaupt muss der Rega Adapter neu gestartet werden. `
Wusste ich noch nicht.
Danke für den Hinweis.
Grüße
-
Ich finde Blockly total klasse! Gerade für kleinere Sachen zwischendurch, zB schalte Außenlicht ein für 2 Minuten wenn es geklingelt hat. Klappt wunderbar.
Nur kriege ich es nicht hin, die Lichteinschaltzeiten nur zwischen Sonnenuntergang Anfang bis Sonnenaufgang Ende einzustellen.
Im Javascript Adapter ist Längen/Breitengrad eingestellt.
Ich habe folgenden Logikblock versucht (Screenshot zu breit, deshalb als Text):
FALLS Aktuelle Zeit SS:MM >= aktuelle Zeit von Sonnenuntergang Anfang ODER Aktuelle Zeit SS:MM <= aktuelle Zeit von Sonnenaufgang Ende DANN...
Ich nehme an, die SS:MM kommt nicht der Astrozeit nicht klar, was muss ich stattdessen eingeben?
Vielen Dank!!
-
Ich finde Blockly total klasse! Gerade für kleinere Sachen zwischendurch, zB schalte Außenlicht ein für 2 Minuten wenn es geklingelt hat. Klappt wunderbar.
Nur kriege ich es nicht hin, die Lichteinschaltzeiten nur zwischen Sonnenuntergang Anfang bis Sonnenaufgang Ende einzustellen.
Im Javascript Adapter ist Längen/Breitengrad eingestellt.
Ich habe folgenden Logikblock versucht (Screenshot zu breit, deshalb als Text):
FALLS Aktuelle Zeit SS:MM >= aktuelle Zeit von Sonnenuntergang Anfang ODER Aktuelle Zeit SS:MM <= aktuelle Zeit von Sonnenaufgang Ende DANN...
Ich nehme an, die SS:MM kommt nicht der Astrozeit nicht klar, was muss ich stattdessen eingeben?
Vielen Dank!! `
Es muss UND sein.Auf dem git liegt eine Version, wo so was möglich ist:
48_2016-09-25_22_34_01-iobroker.admin.png -
Jetzt habe ich mich endlich auch an Javascript getraut und mit Blockly angefangen rumzuspielen.
Wenn ich mir dann den Code ansehe steht dort :
on({id: "hm-rpc.1.MEQ1848733.1.PRESS_SHORT"/*BWM_Bad:1.PRESS_SHORT*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; }); setState("sayit.0.tts.text", "de;100;" + 'Jetzt ist wieder Ruhe'); console.debug("telegram[de][Volume - 100]: " + 'Jetzt ist wieder Ruhe');
es ist sayit ausgewählt, aber im debug steht telegram.
ist das ok?
Gruß
Rainer
-
es ist sayit ausgewählt, aber im debug steht telegram.
ist das ok? `
Hallo Homoran
Habe gerade bei mir nachgeschaut.
Wenn ich die Debug-Ausgabe aktiviere, steht auch bei mir "Telegram".
Wird wohl ein "copy/paste" Fehler sein.
Grüße
-
BTW: Alle blocke die je gefragt wurden,sind implementiert.
-
Yeha!
Zeit "zwischen xxx und xxx" funktioniert!
Hier mein Klingelblockly, welches das Carportlicht bei Klingeldruck zwischen Sonnenunter- und -aufgang einschaltet. Klappt hervorragend!
Danke Bluefox!! :ugeek:
1145_klingellicht.jpg -
Hi Leute!
kleine frage ist es mit ioBrocker und Blockly möglich die Gipos des Raspberrys anzusteuern?
Gruß Sral
-
Moin
Ich habe auch eine kleine Frage [emoji12]
Wie kann ich unter Blockly einen URL Post absetzen damit home24 player angesprochen wird ?
-
Habe es schon geschafft [emoji851]
-
Ich versuchte gerade nach der Anleitung den Blockly zu installieren. Das IOBroker läuft bei mir auf einem RPI3 mit Rasbian Jessie Light.
cd /opt/iobroker
iobroker stop javascript
npm install https://github.com/ioBroker/ioBroker.ja … all/master --production
ioborker upload javascript
iobroker start javascript
Bei der zweiten Zeile sieht man doch, dass dort kein javascript zu findet ist ?
Die nächste Zeile ist durchgelaufen, es wurde etwas installiert, leider kann ich wieder die letzte Zeile mit iobroker start jyvascript nicht ausführen...
Kann es sein, dass ich noch ein java nachinstallieren muß?
Bitte um Hilfe.
Last login: Tue Oct 11 23:14:55 2016 from lenovo-pc
root@iobroker:~# cd /opt/iobroker
root@iobroker:/opt/iobroker# iobroker stop javascript
Cannot find any instances of "javascript"
root@iobroker:/opt/iobroker#
EDIT: in der Beschreibung für die Installation ist auch noch ein Buchstabendreher
ioborker upload javascript
iobroker start javascript
könnte man ggf. ändern….
-
Bitte keine doppelten Postings.
Dann kommen ggf. unterschiedliche Antworten in beiden Threads und die Übersicht geht vollständig verloren.
Typo in der Anleitung habe ich verbessert, Rest habe ich im anderen Thread geantwortet, obwohl es hier besser gepasst hätte.
Werde ich wenn es geht zusammenlegen, wenn ich am PC sitze.
Gruß
Rainer
-
Danke,
in der Beschreibung auf der Seite steht:
http://www.iobroker.net/docu/?page_id=1 … figuration
Die eigentliche Konfiguration besteht aus der Eingabe von zusätzlichen zu ladenden npm-Module (durch Komma getrennt), sowie der Geo-Koordinaten, die für diverse Berechnungen benutzt werden sollen. Um die Koordinaten zu erhalten, kann man z.B. google maps ziemlich weit aufzoomen und an der gewünschten Stelle anklicken. Die Koordinaten werden dann angezeigt.
Nach dem Speichern muss der Adapter noch über die rote Play-Taste aktiviert werden aktiviert werden.
Wie bekomme ich es raus, welche npm-Module einzutragen sind?
1526_unbenannt.png