NEWS
Erstes Blockly Script für Briefkasten Monitoring ... aber
-
Hallo,
ich versuche gerade etwas mit Blockly "Freund" zu werden (komme eher aus der Shell-Programmierung).Habe einen Briefkastenschalter,
sobald die Klappe geöffnet wird soll eine Aktion gestartet werden (Schalter-Symbol in der vis2 geändert werden=Ist was im Briefkasten), später soll dann noch weitere Aktionen folgen...Hab in Blockly den DP "Briefkasten_Voll" erstellt, der wird zu beginn auf "false" gesetzt.
Und wenn was eingeworfen wurde soll er dann solange auf true bleiben, bis der DP über das virt. Briefkasten-Symbol in der vis2 als "geleert" markiert wird (so das nur einmal eine Meldung erzeugt wird).Aber es hängt schon daran, dass der DP "Briefkasten_Voll" nie auf True gesetzt wird
Kann man in einem Debug-Abschnitt auch den Wert von einem DP sich mit ausgeben lassen?
-
@topsurfer Das Ausrufezeichen hast du sicher bemerkt!
Niemals nie nicht einen Trigger in einem anderen Trigger verwenden
Der debug "Briefkasten wird auf voll gesetzt" zeigt aber an, dass der DP auf true gesetzt werden müsste.
-
@topsurfer sagte: der DP "Briefkasten_Voll" nie auf True gesetzt wird
Laut Log muss der DP auch auf true gesetzt werden. Prüfe es mal so:
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
inen Briefkastenschalter,
Du willst, dass bei Öffnen des Briefkastens deine Hilfsvariable auf "noch nicht voll" oder auf "ist voll" gesetzt wird.
Das Skript wird ausgelöst wenn der sensor door/wndow true ist, das ist ok.
Aber deine Prüfung ob ganz voll oder nicht hast du auch als Trigger programmiert, das ist falsch, siehe auch Kommntar von @Hormoran, du musst die If Abfrage mit dem If aus dem Logikblock von Blockly bauen, nicht mit einem Trigger:
-
Danke euch erst einmal für eure Hilfe!
Hab es etwas geändert, von meiner logik ist es so richtig, aber beim:
"Falls: 'Wert' vom Objekt: Objekt-ID 'Obj-ID Briefkasten_voll' " kann ich keinen Check auf true oder false rechts hinzufügen. Ist das nicht der richtige Blockly-Teil?
Dieser Zweig wird nie durchlaufen, es wird nur der "sonst" Zweig durchlaufen.Auch zeigt das Log zwei "warnings"an, die ich nicht zuordnen kann (Infos 5:1, 24:3; das sind ja keine Zeilen oder so...)
"Du willst, dass bei Öffnen des Briefkastens deine Hilfsvariable auf "noch nicht voll" oder auf "ist voll" gesetzt wird."
Hmmm, mein "Briefkasten_Voll" ist ja ein DP, das ist doch nicht das gleiche wie eine Variable (die man ja auch definieren kann) -
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
das sind ja keine Zeilen oder so...)
doch!
stell mal die Ansicht auf javascript um, dann siehst du sie auch -
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
von meiner logik ist es so richtig,
Die Logik ist eher negiert.
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
kann ich keinen Check auf true oder false rechts hinzufügen.
dazu bedarf es noch den Logikblock mit dem Komperator.
So wie es jetzt da steht heisst es=true
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
wird nur der "sonst" Zweig durchlaufen.
dann wäre der Wert tatsächlich false
-
Das hatte ich auch schon gemacht, aber was ist 24:3 ?
Das js hat nur 18 Zeilen ...Und in zeile 5: "Remove unused declaration for Console" ?
console.info('Start'); createState('0_userdata.0.Hilfs-DP.Briefkasten_Voll', !!(!true), { type: 'boolean', read: true, write: true }, async () => { }); setState('0_userdata.0.Hilfs-DP.Briefkasten_Voll' /* 0_userdata.0.Hilfs-DP.Briefkasten_Voll */, false, true); on({ id: 'zwave2.0.Node_008.Binary_Sensor.door_window' /* Sensor state (Door/Window) */, val: true }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; console.info('Klappe betätigt'); if (getState('0_userdata.0.Hilfs-DP.Briefkasten_Voll').val) { console.info('BK war noch nicht voll'); setState('0_userdata.0.Hilfs-DP.Briefkasten_Voll' /* 0_userdata.0.Hilfs-DP.Briefkasten_Voll */, true, true); console.info('BK wird auf voll gesetzt'); } else { console.info('War schon was drin, aber nochmal was eingeworfen'); } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2N....==
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Das js hat nur 18 Zeilen ...
hast du etwa Skripte unter global?
(Expertenmodus aktivieren!) -
@homoran said in Erstes Blockly Script für Briefkasten Monitoring ... aber:
dazu bedarf es noch den Logikblock mit dem Komperator.
Hmmm,
ist mein Ausgangsteil falsch? Da kann ich ja keinen Operator andocken
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
ist mein Ausgangsteil falsch? Da kann ich ja keinen Operator andocken
entweder das nicht vor den "Wert von", dann entspricht das
=false
oder noch zusätzlich einen operator Block verwenden
...=... wobei das = per pulldown geändert werden kann
diese beiden Ausdrücke
sind inhaltlich identisch -
Eher nicht, oder?
-
@homoran
Ich finde die Teile nicht, bzw. kann ich diese nicht mit "Überprüfung auf ..." ("= falsch") erweiternIst das unter "System"?
Da sehe ich:
Ich dachte Blockly wäre einfach
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Eher nicht,
sieht so aus
leider sind die Zeiten abgeschnitten, der Fehler könnte nachher nicht weiter aufgetreten sein.
ob das mit der Declaration zu tun haben könnte weiß ich nicht, bin kein js Spezialist. -
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Ist das unter "System"?
nein!
@homoran sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
den Logikblock mit dem Komparator.
ist ja Teil deiner Logik
-
@homoran said in Erstes Blockly Script für Briefkasten Monitoring ... aber:
den Logikblock mit dem Komparator.
Hmmm,
unter "Logik" finde ich nichts, womit ich den Baustein aus deinem Bsp "bauen" kann ... müsste doch "xxxx VOM OBJEKT ID xxxx" drin sein,
was mache ich falsch, oder doch nicht unter "Logik" ?
(unter "System" gibt es halt "VOM OBJEKT ID ..." daher hatte ich das genommen) -
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
müsste doch "xxxx VOM OBJEKT ID xxxx" drin sein,
nee, das schiebst du in die erste freie Stelle
man sieht dich dass da ein Baustein im anderen sitzthabs dir doch gezeigt
und dann beide Lücken füllen.
Bausatz à la Blockly -
@homoran said in Erstes Blockly Script für Briefkasten Monitoring ... aber:
und dann beide Lücken füllen.
Danke für deine / eure Geduld, jetzt hab ich's.
Muss mal nach Grundlagenvideo zu Blockly schauen, um zu sehen, was wie wo ineinander verschachtelbar ist ...Morgen mal schauen, wie ich den Datenpunkt "Briefkasten_Voll" per vis2 zurücksetze und das entsprechende Briefkastensymbol auf "leeren Briefkasten" zurück gesetzt werden kann ....
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
was wie wo ineinander verschachtelbar ist ...
alles!
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
Morgen mal schauen,
halt mich auf dem laufenden
-
@topsurfer sagte in Erstes Blockly Script für Briefkasten Monitoring ... aber:
ich versuche gerade etwas mit Blockly "Freund" zu werden
Etwas Lesestoff: https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps