NEWS
Frage, was ist besser viele Kleine ein Großes Script?
-
Hallo Zusammen,
da ich grad einiges umstelle im ioBroker musste ich auch etliche Scripte anpassen.
Dabei ist mir erst so richtig aufgefallen, wie viele Scripte ich eigentlich am laufen habe.
Daher mal die allgemeien Frage, was ist besser viele Kleine Scripte oder besser vieles in einem
großen Script vereinen?Als Beispiel für die Rollladensteuerung habe ich für das senden der Befehle für jeden Rollladen
einen Script erstellt....
Oder wäre es besser alle Rollläden in einen Script unter zu bringen?Danke
Gruß Jens -
Ich denke das ist geschmackssache.
Ich persönlich mag lieber kleine Scripte.
Große, verschachtelte werde schnell unübersichtlich.
Mache es so, wie du am besten zurecht kommst.
mfg
-
@AingTii Bei einem großen Script ist die Gefahr groß, das auf einen Schlag vieles nicht mehr funktioniert wenn sich ein kleiner Fehler einschleicht.
Ich persönlich, aber wie Bahnuhr schon schreibt ist es sicherlich Geschmackssache, halte meine Scripte Themenbezoben zusammen.
So gibt es ein Script für die Rolladensteuerung. Ein Script pro Raum für die Heizung.
2 Scripte (gerade in Arbeit) für die Bewässerung (eines für die eigentliche Ausführung und eines für das Regelwerk).
Und im Javascript Adapter habe ich mit für Themenbereiche eigene Ordner gemacht. (Rolladen, Heizung, System, periodische Aktivitäten, VIS, etc.)
So hat man zumindest etwas Übersicht -
Zu Themen zusammengefasste mehrere kleine Scripte sind sinnvoll, da man diese separat starten/stoppen kann. Die Rollladensteuerung würde ich in einem Script unterbringen, nicht je Fenster - macht eine Konfiguration/Anpassung leichter.
Zusätzlich solltest du auch nicht alle Scripte in einer Javascript Instanz laufen lassen, da ein Script eine Instanz blockieren kann, sondern du solltest mit (mindestens) drei Instanzen arbeiten:- Instanz.0 : Lebensnotwendige Scripte, die 100% funktionieren (müssen). Bsp: Wasserwarnungen
- Instanz.1 : Komfort-Scripte, wie Rollläden öffnen/schließen
- Instanz.2 : Test-Scripte
Nachteil der mehreren Instanzen ist lediglich der RAM Verbrauch, was auf einem Raspi zu bedenken ist, auf einem NUC eher nicht.
-
ich favorisiere auch kleine Themen bezogene Skripte. Ich hab meine Struktur der Skripte so aufgebaut, dass Sie zu den Datenpunkten passen. Z.b. habe ich einen Channel Licht, wo alle Datenpunkte für meine Lichter drin sind. Unter Skripte hab ich dann einen Ordner Licht angelegt, wo alle Skripte drin sind, die irgendwas mit den Lichtern machen. So findet man recht schnell die entsprechenden Skripte wieder bzw. hat eine saubere Struktur. Zusätzlich nutze ich noch den linkeddevices adapter mit dem man per IDE wunderbar auf die Datenpunkte (Struktur) zugreifen kann.
@Uhula sagte in Frage, was ist besser viele Kleine ein Großes Script?:
- Instanz.0 : Lebensnotwendige Scripte, die 100% funktionieren (müssen). Bsp: Wasserwarnungen
- Instanz.1 : Komfort-Scripte, wie Rollläden öffnen/schließen
- Instanz.2 : Test-Scripte
Nachteil der mehreren Instanzen ist lediglich der RAM Verbrauch, was auf einem Raspi zu bedenken ist, auf einem NUC eher nicht.
Ich verwende nur eine Instanz, hab aber bei all meinen Skripte immer ein Error Handling eingebaut, so dass im Fehlerfall mir nicht gleich die Instanz abschmiert. Das kann man damit erreichen in dem man immer alles in
try{} catch(error){}
blöcke packt. -
@Scrounger sagte in Frage, was ist besser viele Kleine ein Großes Script?:
Das kann man damit erreichen in dem man immer alles in try{} catch(error){} blöcke packt
kann man so etwas auch in Blockly verwenden?
-
@BBTown sagte in Frage, was ist besser viele Kleine ein Großes Script?:
kann man so etwas auch in Blockly verwenden?
Kann ich dir nicht beantworten, weil ich mich mit Blockly nicht auskenne - diese grafischen Programmiersprachen sind mir einfach zu hoch
-
@Scrounger sagte in Frage, was ist besser viele Kleine ein Großes Script?:
Ich verwende nur eine Instanz, hab aber bei all meinen Skripte immer ein Error Handling eingebaut, so dass im Fehlerfall mir nicht gleich die Instanz abschmiert. Das kann man damit erreichen in dem man immer alles in try{} catch(error){} blöcke packt.
Absolut richtig - für eigene Scripte. Allerdings musst du dann auch alle fremden Scripte anpassen, die du nutzt und die nicht so aufgebaut sind.
Btw: Super Arbeit mit deinen MD Widgets!
-
Danke für die Zahlreichen Antworten,
Ich denke von jedem kann ich etwas mitnehmen.
Bin auch angefangen ein bisschen in Ordner zu sortieren.
OK, dann scheint es zumindest seitens ioBroker egal zu sein ob ein großes oder viele kleine, halt mit den Vor und Nachteilen...Ich glaube dann bin ich auf einen guten Weg, einige habe ich zusammengefasst in etwas größeren,
und habe aber auch einiges einzeln gehalten.
Das mit den mehreren Instanzen muss ich mal schauen ob es bei mir sinn macht.Danke Euch