NEWS
(gelöst) mein erstes Blockly... korrekt?
-
@paul53 Musst du das so deutlich wiederholen
Dann ist es jetzt auch mir klar!
ich hatte gehofft mit einbinden der Variable wäre das möglich. -
-
@paul53
es lässt mir keine Ruhe:@Homoran sagte in mein erstes Blockly... korrekt?:
ich hatte gehofft mit einbinden der Variable wäre das möglich.
@paul53 sagte in mein erstes Blockly... korrekt?:
Timer werden nicht runtergezählt.
Selbst wenn sie nicht heruntergezählt werden, sollte da doch etwas anderes in der Variable stehen als
[object][object]
, oder?Habe es jetzt mit einem counter gelöst.
ist aber nichts um "mal eben" sich den Wert anzeigen lassen zu können, so wie es @Humidor gerne hätte
der negative Wert für reduzieren stammt noch aus dem Versuch den "erhöhe"-Baustein zu nutzen, was mir nicht gelungen ist
-
@Homoran sagte:
sollte da doch etwas anderes in der Variable stehen als [object][object], oder?
Das Timer-Objekt ist eben zu speziell, als dass es per Log ausgegeben werden kann. Es kann nicht per JSON.stringify() in einen String gewandelt werden.
-
Puhh, bis ich da durchsteige was ihr sagt, wir noch Wasser den Bach runter laufen....
Ich hätte gerne (wie nennt man eine Block-Verschaltung) mehrer unabhängige Blöcke.
Wie macht das Blocky, jeder Block nach einander abarbeiten bis alle fertig sind in zufälliger Reihenfolge, oder werden Blöcke parallel verarbeitet?
Eine Variable in einem Block ist für das ganze Projekt (file) sichtbar oder nur für den Block?Also, mehrere unabhängige Sachen. Temperatur, Feuchtigkeit, Licht, Türkontakt usw.
Unabhängig von der Änderung eines Wertes jede Stunde ein Telegram mit entsprechender Info.
Eine Debugausgabe, um nicht Try&Error über Tage zu machen, sondern zu sehen ob das Script auch funktioniert.Puhhh??
-
@Humidor sagte in mein erstes Blockly... korrekt?:
jeder Block nach einander abarbeiten bis alle fertig sind in zufälliger Reihenfolge
Nacheinander von oben nach unten, wenn sie direkt untereinander angeordnet sind - außer Trigger und Timer: Trigger werden abgearbeitet, wenn das Trigger-Ereignis eintrifft, Timer nach Ablauf der Verzögerungszeit bzw. der Zykluszeit.
@Humidor sagte in mein erstes Blockly... korrekt?:
Eine Variable in einem Block ist für das ganze Projekt (file) sichtbar oder nur für den Block?
Selbst erstellte Variablen und Timer-Variablen gelten im gesamten Skript, lokale Variablen nur innerhalb der Funktion. Lokale Variablen sind die unter "Trigger", Übergabeparameter an Funktionen und die vordefinierten Variablen value und oldValue.
@Humidor sagte in mein erstes Blockly... korrekt?:
Eine Debugausgabe, um nicht Try&Error über Tage zu machen, sondern zu sehen ob das Script auch funktioniert.
Debug-Ausgaben sind gerade für den Anfang sehr zu empfehlen.
-
machen wirs in Schritten bitte, sonst steig ich nicht durch
zuerst wird ein Trigger geschaffen, d.h. eine Abfrage definiert, ob die Feuchtigkeit außerhalb der Norm ist.
passt?
dann gibts unabhängig eine zeitliche Routine die überprüft, ob eine Message gesendet werden soll
-
@Humidor sagte:
dann gibts unabhängig eine zeitliche Routine die überprüft, ob eine Message gesendet werden soll
Es funktioniert prinzipiell so, da die beiden Variablen global (im gesamten Skript gültig) sind.
-
@paul53 sagte in mein erstes Blockly... korrekt?:
@Humidor sagte:
dann gibts unabhängig eine zeitliche Routine die überprüft, ob eine Message gesendet werden soll
Es funktioniert prinzipiell so, da die beiden Variablen global (im gesamten Skript gültig) sind.
d.h. es ist eine legitimer Code !? kann ma so lassen?
-
@Humidor sagte:
kann ma so lassen?
Na ja, den Umweg über den Trigger und die Variablen kann man sich sparen, wenn man die Variablen nicht noch anderweitig verwenden möchte: Die Messwerte können auch im Zeitplan eingelesen werden.
-
@paul53 sagte in mein erstes Blockly... korrekt?:
@Humidor sagte:
kann ma so lassen?
Na ja, den Umweg über den Trigger und die Variablen kann man sich sparen, wenn man die Variablen nicht noch anderweitig verwenden möchte: Die Messwerte können auch im Zeitplan eingelesen werden.
Jain, meine nächste Frage betrifft genau dass, wenn eine Variable gesetzt wird, soll beim 1.x nicht die Zeit verstreichen, sondern gleich eine Message gesendet werden. Also ein einmaliger Trigger, wie macht man diesen? Aber ohne in der standard Abfrage eine Message einzubauen.
-
@Humidor sagte:
Also ein einmaliger Trigger, wie macht man diesen?
Was verstehst Du unter "einmaliger Trigger".
@Humidor sagte in mein erstes Blockly... korrekt?:
ohne in der standard Abfrage eine Message einzubauen.
Wie soll das gehen ?
-
Im linken Block, parallel zur Zeit, ein Trigger-Event
-
@Humidor sagte in mein erstes Blockly... korrekt?:
Also ein einmaliger Trigger, wie macht man diesen?
Dann musst du mit einer "Sperrvariablen" arbeiten.
Diese setzt du nach der ersten Nachricht auf true und nach einer gewissen Zeit, nach einer gewissen Anzahl von übersprungenen Events,.... wieder auf false.Nach dem Trigger musst du dann auch noch auf diese Variable prüfen, und den Versand der Nachricht nur ausführen, wenn die Sperrvariable auf false ist.
@Humidor sagte in mein erstes Blockly... korrekt?:
zuerst wird ein Trigger geschaffen, d.h. eine Abfrage definiert, ob die Feuchtigkeit außerhalb der Norm ist.
Dein Trigger prüft das nicht sondern jagt das Skript bei JEDER AKTUALISIERUNG des Datenpunktes los.
Das ist aber so ok.
Anschließend prüfst du ja im FALLS was Sache ist. -
@Humidor sagte:
parallel zur Zeit, ein Trigger-Event
Du möchtest, wenn die Bedingung erfüllt ist, sofort senden und danach periodisch, solange die Bedingung erfüllt ist ?
-
@paul53 sagte in mein erstes Blockly... korrekt?:
@Humidor sagte:
parallel zur Zeit, ein Trigger-Event
Du möchtest, wenn die Bedingung erfüllt ist, sofort senden und danach periodisch, solange die Bedingung erfüllt ist ?
Ja richtig.
aktuell meine ich, dass Blocky nicht läuft?
die ganz rechte müsste mir eine Debuganzeige ausgeben alle 10s, es passiert nichts?
habs schon, ein nicht laufendes Script hatte einen Fehler und das blockiert alles... ?
-
@Humidor sagte:
Ja richtig.
Wenn gleiche Aktionen aus verschiedenen Triggern (Zeitplan ist auch ein Trigger) erfolgen sollen, verwendet man Funktionen.
-
@Humidor sagte:
ganz rechte müsste mir eine Debuganzeige ausgeben alle 10s
Debug-Ausgaben macht man dort, wo sich beobachtete Zustände ändern.
-
@Humidor
Einfachere Variante mit nur einer Variablen msgHum: -
@paul53
Cool! Danke Jungs! das ist jetzt ein guter Code