NEWS
Gesamtwert zweier Datenpunkten
-
Hallo!
Ich habe zwei Datenpunkte angelegt (Anwesenheit und Automatik) welche beide den Wert True oder False annehmen können. Aus der Softwareentwicklung kenne ich folgende Werte:
Anwesenheit = True
Automatik = True
Gesamtwert ist True
Wenn einer der beiden Datenpunkte False ist, dann ist der Gesamtwert ebenfalls False.
Im Blockly scheint das nicht der Fall zu sein, denn gegeben ist:
Automatik = False und Anwesenheit = True
Das Ergebnis der Auswertung schreibe ich in einen anderen Datenpunkt mittels
und dort ist das Ergebnis True.
Der Hintergrund ist, dass Jalousien nur geöffnet werden sollen wenn beide Datenpunkte True haben.
Wie kann ich in Blockly es erreichen dass die Aktion nur ausgeführt wird, wenn beide Variablen True sind? Verschachtelung
finde ich ungünstig.
Danke für Feedback!
Schöne Grüße
Mercy@mercyful-0 Zunächst sieht das alles richtig und logisch aus, was Du schreibst. Der Fehler muss also woanders liegen. Z.B. würde ich vorschlagen, von den Datenpunkten b_Automatik, b_Anwesend und Variable_fuer_... den "RAW" der Definition zu zeigen, um zu sehen, ob hier z.B. falsche Datentypen hinterlegt sind.
-
Hallo!
Ich habe zwei Datenpunkte angelegt (Anwesenheit und Automatik) welche beide den Wert True oder False annehmen können. Aus der Softwareentwicklung kenne ich folgende Werte:
Anwesenheit = True
Automatik = True
Gesamtwert ist True
Wenn einer der beiden Datenpunkte False ist, dann ist der Gesamtwert ebenfalls False.
Im Blockly scheint das nicht der Fall zu sein, denn gegeben ist:
Automatik = False und Anwesenheit = True
Das Ergebnis der Auswertung schreibe ich in einen anderen Datenpunkt mittels
und dort ist das Ergebnis True.
Der Hintergrund ist, dass Jalousien nur geöffnet werden sollen wenn beide Datenpunkte True haben.
Wie kann ich in Blockly es erreichen dass die Aktion nur ausgeführt wird, wenn beide Variablen True sind? Verschachtelung
finde ich ungünstig.
Danke für Feedback!
Schöne Grüße
Mercy@mercyful-0
am besten das ganze Blockly zeigen.
Die Codeschnipsel sind nur so "halb richtig" -
Hallo!
Ich habe zwei Datenpunkte angelegt (Anwesenheit und Automatik) welche beide den Wert True oder False annehmen können. Aus der Softwareentwicklung kenne ich folgende Werte:
Anwesenheit = True
Automatik = True
Gesamtwert ist True
Wenn einer der beiden Datenpunkte False ist, dann ist der Gesamtwert ebenfalls False.
Im Blockly scheint das nicht der Fall zu sein, denn gegeben ist:
Automatik = False und Anwesenheit = True
Das Ergebnis der Auswertung schreibe ich in einen anderen Datenpunkt mittels
und dort ist das Ergebnis True.
Der Hintergrund ist, dass Jalousien nur geöffnet werden sollen wenn beide Datenpunkte True haben.
Wie kann ich in Blockly es erreichen dass die Aktion nur ausgeführt wird, wenn beide Variablen True sind? Verschachtelung
finde ich ungünstig.
Danke für Feedback!
Schöne Grüße
Mercy@mercyful-0 sagte: dort ist das Ergebnis True.
Das ist so, wenn "Automatik" nicht false/true (boolean) enthält, sondern "false"/"true" (string) oder gar "False"/"True".
-
@mercyful-0 sagte: dort ist das Ergebnis True.
Das ist so, wenn "Automatik" nicht false/true (boolean) enthält, sondern "false"/"true" (string) oder gar "False"/"True".
Hallo!
Der Datenpunkt Variable_fuer_Automatik_und Abwesenheit{ "_id": "0_userdata.0.Variable_fuer_Autoamtik_und_Anwesenheit", "type": "state", "common": { "name": "Variable_fuer_Autoamtik_und_Anwesenheit", "role": "", "type": "boolean", "read": true, "write": true, "desc": "Manuell erzeugt", "def": false }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1626620522637, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }und die Datenpunkte Anwesend und Automatik sehen so aus:
{ "_id": "javascript.0.variables.b_Automatik", "type": "state", "common": { "name": "b_Automatik", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1609102214333, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 } }und
{ "_id": "javascript.0.variables.b_Anwesend", "type": "state", "common": { "name": "b_Anwesend", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": true, "custom": { "material": { "admin": { "enabled": true, "useCustom": false, "name": "Useful variables" } } } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1609596014250, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 } }alle drei Datenpunkte sind vom Typ Boolean.
Was ich spannend finde, setze ich den Datenpunkt Anwesend_und_Automatik auf einen ungültigen Wert (z.B. 22) wird bei der nächsten Auswertung dort True eingetragen, obwohl eine der beiden Datenpunkte den Wert False beinhaltet. Selbst wenn ich dort False eintrage, wird nach der nächsten Auswertung der Wert auf True gesetzt.
Ich bin da grad echt ratlos.
-
@mercyful-0
am besten das ganze Blockly zeigen.
Die Codeschnipsel sind nur so "halb richtig"@dslraser
Öhm...die Blockly Codes habe ich oben eingefügt.
Was fehlt da noch? -
@dslraser
Öhm...die Blockly Codes habe ich oben eingefügt.
Was fehlt da noch?@mercyful-0 Zeig doch bitte mal einen Screenshot vom kompletten Blockly, das den Fehler macht. Ich denke das meint @dslraser.
-
Hallo!
Der Datenpunkt Variable_fuer_Automatik_und Abwesenheit{ "_id": "0_userdata.0.Variable_fuer_Autoamtik_und_Anwesenheit", "type": "state", "common": { "name": "Variable_fuer_Autoamtik_und_Anwesenheit", "role": "", "type": "boolean", "read": true, "write": true, "desc": "Manuell erzeugt", "def": false }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1626620522637, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }und die Datenpunkte Anwesend und Automatik sehen so aus:
{ "_id": "javascript.0.variables.b_Automatik", "type": "state", "common": { "name": "b_Automatik", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1609102214333, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 } }und
{ "_id": "javascript.0.variables.b_Anwesend", "type": "state", "common": { "name": "b_Anwesend", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": true, "custom": { "material": { "admin": { "enabled": true, "useCustom": false, "name": "Useful variables" } } } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1609596014250, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 } }alle drei Datenpunkte sind vom Typ Boolean.
Was ich spannend finde, setze ich den Datenpunkt Anwesend_und_Automatik auf einen ungültigen Wert (z.B. 22) wird bei der nächsten Auswertung dort True eingetragen, obwohl eine der beiden Datenpunkte den Wert False beinhaltet. Selbst wenn ich dort False eintrage, wird nach der nächsten Auswertung der Wert auf True gesetzt.
Ich bin da grad echt ratlos.
@mercyful-0 sagte: alle drei Datenpunkte sind vom Typ Boolean.
Trage mal noch die Rolle ein:
"role": "switch",Ergänze mal vor oder nach dem "steuere"-Block eine Log-Ausgabe:

-
@mercyful-0 Zeig doch bitte mal einen Screenshot vom kompletten Blockly, das den Fehler macht. Ich denke das meint @dslraser.
@ahnungsbefreit said in Gesamtwert zweier Datenpunkten:
@mercyful-0 Zeig doch bitte mal einen Screenshot vom kompletten Blockly, das den Fehler macht. Ich denke das meint @dslraser.
Und hier der Eintrag aus dem Logfile

roter Rahmen ist für den DP Automatik an und der ist False
lila Rahmen ist für den DP Anwesenheit und der der ist True
grüner Rahmen ist für den Wert beider verknüpften Variablen und der ist TrueSorry für die schlechte Formatierung aus dem Logfile, ich habe da eben ein paar Spaces eingefügt, morgen früh sieht es dann besser aus, wenn gewünscht.
-
@ahnungsbefreit said in Gesamtwert zweier Datenpunkten:
@mercyful-0 Zeig doch bitte mal einen Screenshot vom kompletten Blockly, das den Fehler macht. Ich denke das meint @dslraser.
Und hier der Eintrag aus dem Logfile

roter Rahmen ist für den DP Automatik an und der ist False
lila Rahmen ist für den DP Anwesenheit und der der ist True
grüner Rahmen ist für den Wert beider verknüpften Variablen und der ist TrueSorry für die schlechte Formatierung aus dem Logfile, ich habe da eben ein paar Spaces eingefügt, morgen früh sieht es dann besser aus, wenn gewünscht.
@mercyful-0 "False" sieht nach string, nicht nach Boolean aus (sonst wäre es "false"), oder?
-
@ahnungsbefreit said in Gesamtwert zweier Datenpunkten:
@mercyful-0 Zeig doch bitte mal einen Screenshot vom kompletten Blockly, das den Fehler macht. Ich denke das meint @dslraser.
Und hier der Eintrag aus dem Logfile

roter Rahmen ist für den DP Automatik an und der ist False
lila Rahmen ist für den DP Anwesenheit und der der ist True
grüner Rahmen ist für den Wert beider verknüpften Variablen und der ist TrueSorry für die schlechte Formatierung aus dem Logfile, ich habe da eben ein paar Spaces eingefügt, morgen früh sieht es dann besser aus, wenn gewünscht.
@mercyful-0 sagte: hier der Eintrag aus dem Logfile
Siehe hier. "False" ist ein String.
-
@mercyful-0 sagte: hier der Eintrag aus dem Logfile
Siehe hier. "False" ist ein String.
@paul53 said in Gesamtwert zweier Datenpunkten:
@mercyful-0 sagte: hier der Eintrag aus dem Logfile
Siehe hier. "False" ist ein String.
Ich habe in B_Abwesenheit "False" manuell eingetragen, somit wird der Typ des Datenpunktes beim setzen dieses Wertes während der Laufzeit oder bei (falschen) Änderungen auf String geändert. Ich dachte False ist im Boolschen Type das Gleiche wie false, dem ist aber wohl nicht so :-(
Wenn das der Fehler war (ich werde das morgen früh sehen wenn das Script wieder anläuft) bin ich happy. Ich berichte morgen früh.Vielen Dank schon einmal für das Augen öffnen.
Gruß Mercy
-
@paul53 said in Gesamtwert zweier Datenpunkten:
@mercyful-0 sagte: hier der Eintrag aus dem Logfile
Siehe hier. "False" ist ein String.
Ich habe in B_Abwesenheit "False" manuell eingetragen, somit wird der Typ des Datenpunktes beim setzen dieses Wertes während der Laufzeit oder bei (falschen) Änderungen auf String geändert. Ich dachte False ist im Boolschen Type das Gleiche wie false, dem ist aber wohl nicht so :-(
Wenn das der Fehler war (ich werde das morgen früh sehen wenn das Script wieder anläuft) bin ich happy. Ich berichte morgen früh.Vielen Dank schon einmal für das Augen öffnen.
Gruß Mercy
@mercyful-0 Wenn der Datentyp richtig gesetzt ist, kannst Du manuell von false auf true und zurück ändern, indem den Wert anklickst. Dann erscheint eine Checkbox, also keine Texteingabe
-
@mercyful-0 Wenn der Datentyp richtig gesetzt ist, kannst Du manuell von false auf true und zurück ändern, indem den Wert anklickst. Dann erscheint eine Checkbox, also keine Texteingabe
@ahnungsbefreit sagte: Wenn der Datentyp richtig gesetzt ist

-
@ahnungsbefreit sagte: Wenn der Datentyp richtig gesetzt ist

Moin zusammen!
Ich möchte mich bei allen für die Hilfe bedanken!
Der entscheidende Tipp war dass False nicht gleich false ist.
Ich hatte manuell den Wert eines DP auf False geändert und damit ungewollt/unbeabsichtigt eine Typenumwandlung des DP als String zur Laufzeit erzwungen.
Nachdem ich den DP mit dem Wert false gesetzt habe, sind die Typen alle als boolean gesetzt worden/geblieben und damit läuft das Script wieder!Herzlichen Dank an Eure Hilfe!
Schöne Grüße
Mercy
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
