NEWS
Erste Schritte mit Blockly
-
Hallo, könnt Ihr da noch mal drüber schauen.
Warum geht er nicht in die falls Schleife ? Schalter 1,2,3 sind falsch und Überschuss ist > 2000
-
@williklein so ein Ausschnitt nutzt gar nichts.
z.B. ist die Frage: Triggert das Blockly überhaupt?
Außerdem haben wir keinerlei Informationen was passiert und was nicht
-
Das Blockly läuft bei mir ohne die Schalterabfrage. Ich habe dort in falls einen Debug Block und in sonst auch, daher kann ich sehen was passiert, sieh unten
Blockly geht erst garnicht nicht in die Schleife rein. Nix schleife heisst 1. Schleife ist zu Ende , dann folgt Debug Anzeige, dann Schleife 2 geht Blockly auch nicht rein.
Gleiches Blockly nur ohne die Abfrage ob Schalter 1 false ebenso 2 und 3.
Daher sehe ich den Fehler in der Abfrage wenn 1,2,3 false und Überschuss > 2000.2022-12-15 info script.js.Test: Nix Schleife 3-870.1 Schalter 1 false 2022-12-15 info script.js.Test: Nix Schleife 2-870.1 Schalter 1 false 2022-12-15 info script.js.Test: Nix Schleife 1-870.1 Schalter 1 false
-
leider kann ich nur testen wenn noch Sonne,
aber ich glaube man kann nicht sagen: wenn Schalter1 und Schalter2 und Schalter3 = falsch und Überschuss >2000
Es muss heissen: Wenn Schalter1=falsch und Schalter2=falsch und Schalter3=falsch und Überschuss >2000.Ich werde es morgen testen und berichten.
-
@williklein sagte: Warum geht er nicht in die falls Schleife ?
Weil die Abfrage auf "alle Schalter falsch" falsch ist. Richtig:
@williklein sagte in Erste Schritte mit Blockly:
Es muss heissen: Wenn Schalter1=falsch und Schalter2=falsch und Schalter3=falsch und Überschuss >2000.
Ja, so passt es auch.
-
Also ich habe jetzt festgestellt, das scheinbar folgendes nicht geht
Wenn
Schalter1 und Schalter2 und Schalter3 =falsch und Überschuss > 2000
dannIch habe es jetzt so aufgeteilt
Wenn
Schalter1= falsch und Schalter2=falsch und Schalter3=falsch
Wenn
Überschuss >2000
dann
EndeKönnt ihr das bestätigen oder müßte die erste Sache auch funktionieren
-
@williklein zeige bitte mal das komplette Blockly. So wie es geschrieben ist, sollte es funktionieren.
Sind die Schalter wirklich „false“ und der Wert über 2000?
Dazu kannst du vor dem Falls ein Debug einsetzen, welcher dir die aktuellen Werte anzeigt. -
ich habe das komplette Blockly nicht gesendet, weil ich bei der Größe Probleme mit der Auflösung habe. #Hormoran hat mir da schon mal geschrieben, das er es nicht lesen kann bei der Auflösung.
Ich habe erst mal die Schalter weggelassen, dann funktioniert es auch so.
Wenn jemand interessiert daran ist poste ich das. Kann ich den Code nicht als Datei schicken. Dann kann man den doch importieren.
-
@williklein sagte: müßte die erste Sache auch funktionieren
Nein, es sollen alle Schalter falsch sein.
Bei dem gezeigten Blockly müssen Schalter1 und Schalter2 wahr sein, Schalter3 muss falsch sein und Überschuss wird nicht ausgewertet: Klammersetzung und Prioritäten beachten! -
so wie Paul53 es schon gezeigt hat stimmt es. Du solltest dich nicht wunder, er hat die Logik umgekehrt von den Schaltern. Das Ergebnis ist das Gleiche. Die drei Schalter sind "oder" verknüpft, das heisst wenn alle "0" bzw "false" sind, kommt vor den "nicht" auch eine "0". Das Nicht wandelt diese um in "1". Jetzt kommt das "Und" dort muss der Wert größer 2000 sein und die 1 von den Schaltern dasein, damit dein "mache" ausgeführt wird.
-
@tt-tom sagte: Das Nicht wandelt diese um in "1".
"Nicht" wandelt diese in true. "Nicht" konvertiert in "boolean" inklusive Negation.
-
Also die Logik verstehe ich nicht.
Meine Heizstäbe sind alle aus, wenn die Schalter "false" sind. Wenn also der Solarüberschuss > 2000 ist, soll der erste Schalter auf "wahr" schalten.
Dann trifft doch die Zeile
Wenn S1 falsch und S2 falsch und S3 falsch ist schon zu.
Wenn dann der Überschuss > 2000, dann ist doch alles richtig und es müßte mache ausgeführt werden.
Bei mache wird dann S1 auf wahr gesetzt und das Relais zieht an und schaltet den Heizstab ein. -
@williklein sagte in Erste Schritte mit Blockly:
Also die Logik verstehe ich nicht.
Meine Heizstäbe sind alle aus, wenn die Schalter "false" sind. Wenn also der Solarüberschuss > 2000 ist, soll der erste Schalter auf "wahr" schalten.ich glaub wir sind hier aneinander vorbei gelaufen.
Wenn Schalter 1 bei größer 2000 einschalten soll, sieht das ganze Konstrukt anders aus. Was genau möchtest du mit dem Blockly anstellen. -
Blockly Zeitplan Problem
Hallo, könnt Ihr mal rüber schauen, was da falsch ist Der Switch springt nur von false auf wahr, wenn ich alle Minuten anklicke. Ich möchte gerne Wochentags zu bestimmten Stunden die Pumpe ein und wieder ausschalten. Siehe Skript. Gruss Willi Klein
-
Kurze Rückfrage. Soll die Pumpe alle x Stunden starten, also in einem Intervall? Oder zu verschiedenen Uhrzeit?
Du musst auch für das Ausschalten ein Blockly bauen mit den Ausschaltzeiten.
-
@williklein sagte in Erste Schritte mit Blockly:
Der Switch springt nur von false auf wahr, wenn ich alle Minuten anklicke.
was soll das bedeuten?
natürlich springt er nur auf wahr. Falsch kommt in dem Blockly nicht vor.
oder meinst du, dass genau dieses nur funktioniert wenn jede Minute statt des Cron eingetragen ist?
wie lange hast du gewartet? wie ist die Systemzeit/Zeitzone?Bitte immer alle Informationen selbstständig geben.
-
@williklein
Der CRON ist völlig OK - gerade getestet ... funzt einwandfrei
Aber wie @TT-Tom und @Homoran schon schrieben: Da wird nie etwas ausgeschaltet.
-
@codierknecht sagte in Erste Schritte mit Blockly:
Der CRON ist völlig OK - gerade getestet ... funzt einwandfrei
deswegen ja die Frage nach der Systemzeit, oder wie lange das Skript schon läuft.
-
@homoran sagte in Erste Schritte mit Blockly:
deswegen ja die Frage nach der Systemzeit, oder wie lange das Skript schon läuft.
Die ja durchaus berechtigt ist.
@WilliKlein Ich gehe ja mal davon aus, dass Du das hoffentlich längst überprüft hast
-
Ja, das ist mir klar, schaltet beides nicht.
Es ist meine Zirkulationspumpe für das warme Wasser. Ich möchte es morgens um 6 Uhr einschalten und um 8 Uhr wieder aus.
Für das Ausschalten habe ich ein anderes Blockly. Funktionieren beide so nicht.