NEWS
Ist Javascript eigentlich Javascript?
-
Ich muss mal eine Frage an die Profis in Sachen Programmierung hier stellen.
Ich bin vollkommen angefixt von den Möglichkeiten, die ein Skript, egal ob Blockly oder Javascript für ioBroker und die Objekte darin bedeutet. Ebenso für eine Visualisierung.Bei Blockly steieg ich so gaaaanz langsam dahinter, wie die Logik funktioniert und durch Beispiele hier aus dem Forum kriege ich dann auch immer besser die Kurve bei eigenen Projekten und Vorstellungen.
Jetzt stelle ich mir allerdings die Frage, ob Javascript immer gleich Javascript ist. Wird die Syntax innerhalb von ioBroker genauso verstanden, als wenn sie in HTML eingebettet ist?
Ich würde gerne hier im Selbststudium ein wenig mehr lernen und dann aus vorhandenen Skripten ableiten können. So habe ich das damals bei VBA auch gemacht, bis ich selbstständig Makros in Excel schreiben konnte.
Nun bin ich älter und es fällt mir zunehmend schwerer "schnell" zu verstehen, aber ioBroker ist hier mein Treiber. Ich habe für mich sooooo viele Ideen und denke nicht, dass man das alles mal eben so umsetzen lassen kann.
Aktuell interessiert mich ein Multi-EPG aus den XML Daten meines Linux Receivers in VIS. Hier werden im Hintergrund JS ausgeführt, die eine dynamische Tabelle aufbauen, wo alle meine Sender eines Bouquets drin sind und entsprechend der Uhrzeit dann die Sendungen angezeigt werden.
Ein Multi-EPG halt.Ich würde das gerne in VIS nachbauen und ohne Skripte komme ich da nicht weiter. Das weiß ich. Aber kann ich die Skripte aus dem Enigma holen und auch für ioBroker nutzen, wenn ich das Zusammenspiel erstmal kapiert habe?
Wäre die Syntax identisch, sprich: ist Javascript = Javascript, um mal wieder auf den Threadtitel zurück zu kommen?
-
Im Grundsatz ja. Warum "im Grundsatz"?
Du wirst z.B. in JS sonst keine Befehle wie bspw. getState, setState usw. finden, die sind ioBroker spezifisch. Dafür werden auch JS-Routienen die Browser spezifische (HTML-) Manipulationen ausführen im Broker keine Reaktion (außer ggf. einem Fehler) hervorrufen. -
@mehrwiedu sagte in Ist Javascript eigentlich Javascript?:
Jetzt stelle ich mir allerdings die Frage, ob Javascript immer gleich Javascript ist. Wird die Syntax innerhalb von ioBroker genauso verstanden, als wenn sie in HTML eingebettet ist?
Jein. Der "Dialekt" von JavaScript, den ioBroker verwendet, wird in der Runtime NodeJS ausgeführt. Da gibt es dann systemspezifische Module und Methoden (wie fürs Dateisystem), die im Browser nicht bekannt sind und wie @SBorg geschrieben hat, fehlen Methoden, die es nur im Browser gibt. Außerdem setzt ioBroker noch seine eigene Sandbox mit eigenen Methoden (siehe JS-Adapter-Doku) drumherum.
-
Danke für die Antworten.
Dann werde ich mir mal die JS-Adapter Doku einverleiben.
Wenn ich nun Javascript mehr so autodidaktisch lernen will, mache ich dann etwas falsch, oder geht es in eine falsche Richtung, wenn ich die gängige Literatur dazu heranziehe und mich mit dem "Standard-Lehrinhalten" beschäftige? Sprich, wenn man wie überall auf "Hello World" Niveau anfängt und sich dann einarbeitet?Ich gehe jetzt erst einmal davon aus, dass es kein Javascript Handbuch für ioBroker gibt, aber jemand, der Javascript beherrscht keine Probleme mit dem ioBroker "Dialekt" und den zusätzlichen Modulen hat, wenn er diese halt kennt und weiß, dass es sie gibt.
-
@mehrwiedu
Für den Start bei den absoluten Grundlagen bietet sich eigentlich jedes Lehrbuch zu modernem JavaScript an (ES6, NodeJS) - hierzu gibt es auch gute Kurse auf Udemy, die manchmal deutlich runtergesetzt sind.In ioBroker hilft eigentlich nur, die Doku und Beispiele zu lesen und gelerntes anzuwenden. Manche Dinge auch gerne mal kritisch hinterfragen - hier im Forum schwirrt doch einiges an Halbwissen herum. Schau dir Code von den einschlägigen Skriptern an (u.a. Paul53 oder meine Wenigkeit).
-
Das hört sich doch vielversprechend an. Danke für die Unterstützung.
Ich möchte gerne ein wenig unabhängiger werden in der Gestaltung meiner Hausautomation.
Wie gesagt, ich habe so viele Ideen und es gibt dazu quasi gar keine Vor- bzw. Grundlagen, worauf ich aufbauen könnte.
Ich muss auch erst einmal trennen und verstehen können, wie die Widgets in VIS funktionieren, welche Rolle die einzelnen Module und Adapter spielen und was sie können.Ich stehe oft wie ein Ochs vorm Berg. Praktische Beispiele dafür sind z. B. solche Adapter wie Upnp. Damit weiß ich überhaupt nichts anzufangen, weil eben nicht selbsterklärend, wie z. B. Dein Tradfri Adapter.
Parsen innerhalb von Skripten ebenfalls. Da bin ich aufgeschmissen. Ich weiß zwar theoretisch, was ich mit z. B. meiner XML Datei anfangen muss, damit ich sie irgendwie visualisieren kann, ich finde da nur den Einstieg oft nicht und dann fehlen mir eben die nötigen Suchbegriffe und dann verrenne ich mich oft in Informationen und das führt dann dazu, dass ich schlicht überfordert bin. Und selbst wenn ich es hinkriege, bleibt oft der fade Beigeschmack, ob ich da nicht eine Lösung kreiert habe, die durch den Rücken ins Knie geschossen ist und das nicht viel eleganter und einfacher gegangen wäre.Ich versuche schon immer so viel und so ausgiebig wie möglich, die Dinge selbst irgendwie zu verstehen, aber manchmal denke ich, dass selbst die am Ende einfachsten Sachen, wenn sie denn aus einer unglücklichen Perspektive, eben mangels Grundwissen, betrachtet wurden, eine Zielerreichung unmöglich machen. Ich denke da an meine ersten Versuche hier in ioBroker. Erinnerst Du Dich? Es ging um Szenen, die nicht liefen und am Ende war es ein nicht gestarteter Adapter. Hehe...;)
Naja, und da möchte ich eben mal für mich Struktur reinbringen. Denn auch, wenn man nicht skripten kann, sind die Zusammenhänge zwischen Adaptern, deren Objekten, der VIS und seinen Widgets, laufenden Skripten (kopiert und übernommen) sowie den Subsystemen, die ja auch noch etwas beisteuern, so wie Echos oder verschiedenste Gateways, doch schon sehr komplex.
-
@mehrwiedu sagte in Ist Javascript eigentlich Javascript?:
Parsen innerhalb von Skripten ebenfalls. Da bin ich aufgeschmissen. Ich weiß zwar theoretisch, was ich mit z. B. meiner XML Datei anfangen muss, damit ich sie irgendwie visualisieren kann, ich finde da nur den Einstieg oft nicht und dann fehlen mir eben die nötigen Suchbegriffe und dann verrenne ich mich oft in Informationen und das führt dann dazu, dass ich schlicht überfordert bin. [...] und das nicht viel eleganter und einfacher gegangen wäre.
Die Antwort wird dir nicht gefallen: Das braucht Zeit.
Ich mach das zwar auch nur als Hobby, hab aber ca. 15 Jahre Erfahrung und inzwischen mehrere 100.000 Zeilen Code auf dem Buckel.Es verstehen wollen ist schon die halbe Miete.
-
In meiner Bewerbung würde auch nur HTML, VBA und ein ganz bisschen PHP drinstehen können.
Ich empfinde es bereits als Vorteil für mich, dass ich vorhandene Code-Schnipsel so einigermaßen interpretieren kann.
Wobei mir das in einer Fremdsprache ähnlich geht. Ich kann es oft lesen und den Sinn verstehen, aber selbst sprechen und formulieren ist nicht drin.Ich werde mich jetzt da ran tasten und versuchen eine Grundlage zu schaffen, so dass man bei speziellen Sachen auch einfach gezielter und konkreter Nachfragen kann. Und das Forum hier ist ja wirklich toll in der Hinsicht.
-
Da ich so ein Halbwissender bin gerne die Bitte, dass falls du über was halbgares von mir stolperst, lass es mich gerne wissen. Man will ja lernen