ScriptGUI early access

Wie man einen Adapter entwickelt, oder wie man debuggen kann.
Benutzeravatar
apollon77
guru
Beiträge: 6145
Registriert: 10.04.2015, 12:27

Re: ScriptGUI early access

Beitrag von apollon77 » 22.08.2017, 09:38

Poste doch mal die Objektproperties von einem funktionierenden Objekt und von einem wo es nicht tut. Kann mir vorstellen das vllt nur ein nicht gesetzter Name o.ä. zu dem undefined führt. Das liesse sich aber einfach fixen indem man den selbst angelegten Objekten die richtigen Properties setzt.
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

Benutzeravatar
smiling_Jack
Site Admin
Beiträge: 169
Registriert: 18.07.2014, 23:33

Re: ScriptGUI early access

Beitrag von smiling_Jack » 22.08.2017, 21:32

BigBer hat geschrieben:
Eine Baustelle die mich aber momentan am meisten stört ist das man selbst erstellte Objekte in iobroker nicht als Trigger verwenden kann, bekomme hier bei Live Test im rechten Fenster für das Objekt das als Trigger dienen soll undefined. Das Script wird auch nicht ausgeführt. Wenn ich aber ein Trigger eines durch einen Adapter erstellten Objektes (owfs oder z-wave) nehme geht alles wunderbar.

Ist das ein Bug? oder mache ich was beim anlegen eigener Objekte falsch?
Wenn das gefixt würde, wäre ich schon zufrieden :roll:

Habe das gerade mal probiert bei mir ist es kein Proble. Das selbst erstellte Objekt muss allerdings vom Typ ein state sein ;)

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 31.08.2017, 19:11

Habe das gerade mal probiert bei mir ist es kein Proble. Das selbst erstellte Objekt muss allerdings vom Typ ein state sein
Sorry für die späte Antwort :roll: War mal im Urlaub :roll:

Das mit dem state muss ich mal bei Gelegenheit checken, danke erst mal smiling_Jack

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 01.09.2017, 07:26

So Habe das mal überprüft
Habe das gerade mal probiert bei mir ist es kein Proble. Das selbst erstellte Objekt muss allerdings vom Typ ein state sein
ist bei mir der fall :(

Hier das Objekt wo es geht
Screenshot (5).png
Hier das Objekt wo es NICHT geht
Screenshot (4).png
Und hier noch mal im script
Screenshot (1).png

Benutzeravatar
apollon77
guru
Beiträge: 6145
Registriert: 10.04.2015, 12:27

Re: ScriptGUI early access

Beitrag von apollon77 » 01.09.2017, 07:42

Poste bitte mal die Objektdefinitonen (Tab "raw")
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 01.09.2017, 08:02

Ok! Bitteschön
Screenshot (6).png
Screenshot (7).png

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 01.09.2017, 08:07

Sorry, das 2te Bild noch mal
Screenshot (8).png

Benutzeravatar
AlCalzone
guru
Beiträge: 2485
Registriert: 01.03.2016, 15:16

Re: ScriptGUI early access

Beitrag von AlCalzone » 04.09.2017, 12:43

Zwei Ideen, rein ins Blaue:
1. Dein eigenes Objekt liegt nicht unter einer Adapterinstanz (z.b. javascript.0), das zwave-Objekt schon. Könnte eventuell Probleme machen, das gabs in ähnlicher Form schon mal.

2. Das Objekt muss nur type="state" haben, common.role kann passend gewählt sein. Mir ist hier keine Rolle "state" bekannt => https://github.com/ioBroker/ioBroker/bl ... ject-types
Kann mir aber nicht vorstellen, dass das problematisch ist.
Meine Adapter:
IKEA Trådfri: GitHub | Test & Hilfe
G-Homa: GitHub | Test & Hilfe

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 05.09.2017, 01:56

2. Das Objekt muss nur type="state" haben, common.role kann passend gewählt sein. Mir ist hier keine Rolle "state" bekannt => https://github.com/ioBroker/ioBroker/bl ... ject-types
Kann mir aber nicht vorstellen, dass das problematisch ist.
Denke auch nicht das es an der Rolle liegt, Habe noch andere Objekte mit anderen common.role da geht es auch nicht. Wie wichtig ist denn die common.role eigentlich? Hatte das bisher so verstanden das es eigentlich nur zum besseren auffinden eines Objektes zu gebrauchen ist. :?

Zwei Ideen, rein ins Blaue:
1. Dein eigenes Objekt liegt nicht unter einer Adapterinstanz (z.b. javascript.0), das zwave-Objekt schon. Könnte eventuell Probleme machen, das gabs in ähnlicher Form schon mal.
Ich denke hier könnte der Hase im Pfeffer liegen :shock: Sämtliche selbst erstellten Objekte liegen über einer Adapterinstanz, also in der Baumhierarchie ganz oben.
Wollte schon lange mal Ordnung da rein bringen, bisher habe ich immer eigene Objekte einfach mit dem +Button oben links angelegt und da landeten sie automatisch in der Obersten Baumhierarchie :? Wie lege ich denn einen Ordner, zb. "Eigene Objekte" unter der javascript.0 instanz an? In diesen Ordner könnte ich ja dann all meine selbst angelegten Objekte erstellen. Am besten noch mit mehreren Unterordnern, passend zum Script oder so.

Danke! für die Hilfe!

Benutzeravatar
AlCalzone
guru
Beiträge: 2485
Registriert: 01.03.2016, 15:16

Re: ScriptGUI early access

Beitrag von AlCalzone » 05.09.2017, 07:24

BigBer hat geschrieben:Wie lege ich denn einen Ordner, zb. "Eigene Objekte" unter der javascript.0 instanz an? In diesen Ordner könnte ich ja dann all meine selbst angelegten Objekte erstellen.
Du musst nur der ID des States beim Anlegen ein Präfix wie "javascript.0.ordnername." voranstellen. Also statt "MeinState" nennst du den "javascript.0.Ordner.MeinState". Oder direkt in einer Fake-Adapterstruktur, z.b. "EigeneObjekte.0.Ordner.MeinState". Die (optische) Struktur legt ioBroker für dich an.
Meine Adapter:
IKEA Trådfri: GitHub | Test & Hilfe
G-Homa: GitHub | Test & Hilfe

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 06.09.2017, 00:00

So Habe es probiert, es geht :D
Screenshot (9).png
Habe ich das so richtig gemacht?
Screenshot (10).png
@AlCalzone
Gibt es die Möglichkeit bereits erstellte Objekte in einen neuen Ordner zu verschieben? Ohne das ich meine Scripte bzw. Views die diese Objekte verwenden anpassen muss? Hier stimmt ja dann der Pfad zum Objekt nicht mehr. Oder?

Benutzeravatar
AlCalzone
guru
Beiträge: 2485
Registriert: 01.03.2016, 15:16

Re: ScriptGUI early access

Beitrag von AlCalzone » 06.09.2017, 13:12

BigBer hat geschrieben:Habe ich das so richtig gemacht?
Eigene_Objekte soll kein extra State sein. Du willst ja keinen Wert darin speichern, sondern nur in den Objekten darunter.
Es reicht, ein Objekt z.B. "javascript.0.Eigene_Objekte.Test" zu erstellen, ohne dass "javascript.0.Eigene_Objekte" vorher existiert. Der Ordner wird in der Baumstruktur trotzdem angezeigt.
BigBer hat geschrieben:Gibt es die Möglichkeit bereits erstellte Objekte in einen neuen Ordner zu verschieben?
Nicht dass ich wüsste, vielleicht weiß jemand anders mehr.
Meine Adapter:
IKEA Trådfri: GitHub | Test & Hilfe
G-Homa: GitHub | Test & Hilfe

Heikom
Beiträge: 1
Registriert: 24.02.2018, 12:32

Re: ScriptGUI early access

Beitrag von Heikom » 25.02.2018, 14:56

Moin....
nachdem ich durch Zufall gesehen habe, das mein Lieblingstool von CCU.IO nun in ioBroker existiert, habe ich dieses auch gleich installiert.
Laufen tut´s auf einer Virtuellen Maschine:

Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.9.0-4-amd64
Architecture: x86-64

Nach anfänglichen Problemen mit dem "Live Test" , habe ich den Adapter "Javascript" und "ScriptGui" neu installiert, was Abhilfe schuf.
Nun bin ich an einen Punkt angekommen, wo ich absolut keinen Anhaltspunkt mehr habe.

Ich benutze im ScriptGui aus der Logic den "Timespan". Nur leider bekomme ich aus dem Log des IO.Broker s eine Fehlermeldung

Javascipt:
Spoiler: Show hidden text
// Force Variablen

// Timeout Variablen

// Blocking Variablen

// CCU.IO Objekte
// Trigger
schedule(" */1 * * * * ", function (data){codebox_1(data); }); //Programm_1
function codebox_1(data){ var string_1_out = "05:00";var string_2_out = "22:00";var now = new Date(); var time1 = new Date(); var time2 = new Date(); var in1 = string_1_out; var in2 = string_2_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_4_out = true; }else{ var timespan_4_out = false; }log("Timespan01 -> Programm_1 -> " + timespan_4_out);};
Fehlermeldung:

javascript.0 2018-02-25 14:24:00.439 error at Object. (script.js.Test_Scripte.Timespan01:10:43)
javascript.0 2018-02-25 14:24:00.439 error at codebox_1 (script.js.Test_Scripte.Timespan01:11:3558)
javascript.0 2018-02-25 14:24:00.436 error Error in callback: ReferenceError: process is not defined
javascript.0 2018-02-25 14:23:00.435 error at Object. (script.js.Test_Scripte.Timespan01:10:43)
javascript.0 2018-02-25 14:23:00.435 error at codebox_1 (script.js.Test_Scripte.Timespan01:11:3558)
javascript.0 2018-02-25 14:23:00.434 error Error in callback: ReferenceError: process is not defined
javascript.0 2018-02-25 14:22:18.435 info script.js.Test_Scripte.Timespan01: registered 0 subscriptions and 1 schedule
javascript.0 2018-02-25 14:22:18.412 info Start javascript script.js.Test_Scripte.Timespan01

Evtl. kann mir jemand weiterhelfen

Heikom
Dateianhänge
Timespan Programm.JPG
Achtung.JPG
Achtung.JPG (21.38 KiB) 589 mal betrachtet

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 01.05.2018, 14:39

Hallo!

Habe gestern auf Node 8.11.1 und NPM 4.6.1 geupdatet, Seitdem will ScriptGui nicht mehr, ich drehe durch :twisted: mein wichtigstes Tool!!!

Habe auch schon Javascript, und web deinstalliert und wieder installiert da ich irgendwo gelesen hatte das Scriptgui auf diese Adapter angewiesen ist!

Keinen Erfolg siehe Screenshot

BITTE, BITTE HELFEN!!!!!
scriptgui_error.png

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 02.05.2018, 18:23

Sorry, muss das noch mal hoch holen

Aber weiß wirklich nicht mehr weiter, ehe ich weiter rumprobiere.

Kann es sein das ScriptGui mit Node 8 nicht funktioniert, das wäre wenigsten eine Aussage und ich müsste nicht weiter im dunklen stochern.

Würde dann lieber wieder auf mein System mit Node 4 zurückgehen und warten das ScriptGui angepasst wird. Da ist aber das Dilemma das ich mich nicht mehr traue Updates von iobroker, oder anderen Adaptern zu machen da sie manchmal schon Node größer 4 voraussetzen, siehe zb. email Adapter.

Da ScriptGui schon ziemlich lange, early access ist, beschleicht mich das Gefühl hier wird sich in naher Zukunft auch nichts tun?

Vielleicht kann smiling_Jack mal drüber schauen? Ich weiß der hat mit Sicherheit genug um die Ohren. Von ihm wollen währscheinlich all irgend wie was :cry:

Wäre wirklich nett!!!

Wenn Infos benötigt werden bin ich gerne bereit sie zu liefern!
Habe vorhin noch mal versucht trotz Fehlermeldung ein script in ScriptGui zu erstellen
da hatte ich das im log :
00_scriptgui_error_3.png
Vieleicht hilft das den Fehler einzugrenzen

Benutzeravatar
apollon77
guru
Beiträge: 6145
Registriert: 10.04.2015, 12:27

Re: ScriptGUI early access

Beitrag von apollon77 » 02.05.2018, 19:36

Ich fürchte scriptgui wird wohl ewig in dem Zustand bleiben und der Entwickler nicht weiter was tun. Finde lieber Alternativen!
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

BigBer
starter
Beiträge: 39
Registriert: 06.05.2017, 06:01

Re: ScriptGUI early access

Beitrag von BigBer » 02.05.2018, 19:54

@apollon77
Spoiler: Show hidden text
Ich fürchte scriptgui wird wohl ewig in dem Zustand bleiben und der Entwickler nicht weiter was tun. Finde lieber Alternativen!
:o :o :o :o :o :o :o

Das wäre jetzt aber echt ganz große sch...e!!!

Habe echt viele Sachen auf ScripGui gemacht, und ich finde es echt das Killer Tool schlechthin, wenn man nicht die Zeit und den Nerv hat sich in javascript einzuarbeiten.

Kann man den Entwickler, ich vermute mal es ist smiling_Jack nicht vielleicht doch mit Geld "zwingen" ;) sich der Sache doch noch mal anzunehmen?

Für so ein super Tool wäre ich echt bereit einen vernünftigen preis zu zahlen.

Benutzeravatar
Dutchman
guru
Beiträge: 3703
Registriert: 07.01.2016, 23:42

Re: ScriptGUI early access

Beitrag von Dutchman » 02.05.2018, 19:56

Blockly ist keine Alternative für dich ?


-------------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****

Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

Benutzeravatar
Homoran
guru
Beiträge: 13026
Registriert: 08.08.2014, 16:50

Re: ScriptGUI early access

Beitrag von Homoran » 02.05.2018, 19:57

Smiling Jack ist hier schon lange nicht mehr aktiv.
Sieh dir mal Blockly an.
Da kann man auch alles mögliche Programmieren ohne js zu können.


Gruß
Rainer
kein Support per PN!
Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

Benutzeravatar
apollon77
guru
Beiträge: 6145
Registriert: 10.04.2015, 12:27

Re: ScriptGUI early access

Beitrag von apollon77 » 02.05.2018, 21:04

Ich kam auch aus der CCU.io Welt und habe dort alles mit ScriptGui gemacht und war Happy als es hier den Adapter als "Alpha" gab ... aber inzwischen habe ich akzeptiert das es da nicht mehr weitergeht
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

Antworten