Ankündigung

Einklappen
Keine Ankündigung bisher.

Den Code verstehe ich nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Den Code verstehe ich nicht

    Sorry, wenn ich blöd nachfragen muss, diese Beispiele (aus den demo.rules) verstehe ich nicht:
    Code:
     [TABLE="class: highlight tab-size-8 js-file-line-container"]
     	 		[TR]
     			[TD="class: blob-code js-file-line"]rule "Initialize heating states"[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]when[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]System started[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]then[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]Heating?.members.forEach(heating|[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]postUpdate(heating, if(Math::random > 0.8) ON else OFF)[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"])[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]postUpdate(Temperature_Setpoint, 22)[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-code js-file-line"]end[/TD]
     		[/TR]
     	 [/TABLE]
    Was bewirkt diese Bedingung (Math::random > 0.8)? Werden damit zufällig, in diesem Fall Heizkreise o.ä., eingeschaltet oder hat das einen sinnvollen Hintergrund?
    Nachdem diese random Funktion in mehreren Rules vorkommt, ist die Funktion vielleicht ja ganz sinnvoll, aber ich verstehe das einfach nicht. Zufall ist für mich erstmal nicht sinnvoll, daher frage ich mal nach.

    Über eine Erhellung würde ich mich freuen :-) (Ach ja, ich bin kein Programmierer ...)

    Danke!

    #2
    Hi,

    in den Demo-Dateien wird ja eine Art SmartHome gezeigt, mit Temperatur Sensoren etc. Wenn du aber keine Geräte hast, von denen du Werte auslesen kannst, dann musst du die Werte generieren/simulieren/herzaubern,... :-)

    D.h. Damit das nicht zu langweilig wird und nicht jedes Item den gleichen Wert bekommt, hat der Autor dieses Initialisierungs-Skript geschrieben, welches nichts anderes macht, als alle Heizungs-Schalter entweder auf AN oder AUS zu schalten und zwar abhängig von Math:random > 0.8.

    Lange Rede kurzer Sinn:
    ​Math:random ist eine Funktion aus Java die Zufallszahlen generiert.

    Isses jetzt heller :-)?


    Grüße
    Michael

    Kommentar


      #3
      Viel heller, Danke!
      Dann ist es schon so, wie ich es vermutet hatte, hab nur nicht verstanden, warum hier ein Zufallszahlengenerator verwendet wird. Aber Deine Erklärung leuchtet ein :-)

      Kommentar

      Lädt...
      X