NEWS
Blockly Selektor u. Aufzählungen Geräte zählen
-
@sigi234
da fehlt der wichtigste Punkt. (das was den Fehler verursacht) Da ist die Funktion zum Datenpunkt anlegen nicht drinn.
Poste mal den RAW vom angemeckerten Datenpunkt. Von dem...javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster
-
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
@sigi234
da fehlt der wichtigste Punkt. (das was den Fehler verursacht) Da ist die Funktion zum Datenpunkt anlegen nicht drinn.
Poste mal den RAW vom angemeckerten Datenpunkt. Von dem...javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1576780234612, "common": { "name": "04email.Fensterstatus.Anzahl_geoffnete_Fenster", "role": "state", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster", "type": "state" }
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
"type": "boolean",
das hast Du dann aber selbst gemacht.... ("desc": "Manuell erzeugt",)
mach da mal number draus
"type": "boolean",
also so
"type": "number",
-
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
das hast Du dann aber selbst gemacht...
Schaut so aus, erledigt.
So, in diesen Blockly funktioniert also der Selektor. Dann muss in deinen was nicht stimmen. (Drehkontakt)
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
690: if (stateText(idFenster, wert) == 'TILTED') {
lösche mal im Blockly diesen Teil (also in dem Blockly aus diesem Thread) und versuche es dann nochmal.
-
@sigi234 sagte:
12:14:09.166 error javascript.0 (9200) at stateText (script.js.Status.Fenster_zaehlen:29:39)
Mind. einer der Datenpunkte hat offenbar keine Zustandstexte (common.states).
Ob "TILTED" geliefert wird, spielt keine Rolle. -
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
690: if (stateText(idFenster, wert) == 'TILTED') {
lösche mal im Blockly diesen Teil (also in dem Blockly aus diesem Thread) und versuche es dann nochmal.
Wo finde ich den?
-
@dslraser
Ändere besser die Funktionreturn getObject(id).common.states[val];
in
if(getObject(id).common.states) return getObject(id).common.states[val]; return 'kein Zustandstext !';
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
So, in diesen Blockly funktioniert also der Selektor. Dann muss in deinen was nicht stimmen. (Drehkontakt)
Dieses Blockly arbeitet auch anders. Dieses Fenster Blockly "liest" in der Werteliste, so wie oben erklärt. Wenn Du z.B. das Licht Blockly für Deine Fenster nimmst und da mal Deinen Fenster Selektor nimmst, sollte das auch funktionieren.
Ich mach nochmal eins, nur für die einfachen Fenstersensoren. Dies von oben ist ja extra für die "gemischte" Konstellation mit Drehgriffen.
-
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Ich mach nochmal eins, nur für die einfachen Fenstersensoren. Dies von oben ist ja extra für die "gemischte" Konstellation mit Drehgriffen.
Cool
Geht das auch mit Türen?
Ich habe diese Sensoren auch an der Terrassentür und Haustür. Das ist eine eigene Aufzählung (Tür)
Habe versuch das Fenster Blockly mit Notepad++ zu bearbeiten und alle Fenster mit Tür ersetzt. Das geht leider nicht. -
@paul53 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Ändere besser die Funktion
Werden dann nicht vorhandene ignoriert (z.B. TILTED) und das Blockly nimmt dann nur die vorhandenen ?
-
@dslraser sagte:
Werden dann nicht vorhandene ignoriert (z.B. TILTED)
"TILTED" ist einer von 3 Zustandstexten. In der Funktion wird nur geprüft, ob überhaupt Zustandstexte vorhanden sind. Falls ja, wird der zum Wert passende Zustandstext zurück gegeben, andernfalls "kein Zustandstext !". So wird ein Error-Log bei fehlenden Zustandstexten vermieden.
-
@paul53
Danke Dir. Ich habe es im Export im Fenster Blockly im ersten Post geändert. -
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
@paul53
Danke Dir. Ich habe es im Export im Fenster Blockly im ersten Post geändert.Soll man die alten DP löschen? Ok.
Fenster gekippt gibt es bei mir nicht. -
@sigi234 sagte:
Fenster gekippt gibt es bei mir nicht.
Aber offenbar mind. einen Datenpunkt, der keine Zustandstexte hat.
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Soll man die alten DP löschen?
Für die Fenster ja. Ich mache gerade ein Fensterblockly das nicht über die Werteliste geht, so wie das für die Steckdosen und Licht. Das einfache hat dann einen Datenpunkt weniger, da es ja kein gekippt gibt. Ich versuche das gleich mal so zu machen, das es mit 0/1 oder mit true/false geht.
Aber das Blockly von oben wird Dir dann jetzt nicht viel helfen, da Du dann wahrscheinlich nur eine LogMeldung bekommst mit "kein Zustandstext !".
Aber es wäre schön, wenn Du das nochmal probierst, dann sehen wir ja ob die Meldung kommt.Du mußt nicht alles neu importieren, nur diese Funktion öffnen
und den vorhandenen Inhalt löschen und das da rein kopieren.
if(getObject(id).common.states) return getObject(id).common.states[val]; return 'kein Zustandstext !';
-
@dslraser sagte:
return 'kein Zustandstext !';
oder mit Rückgabe der ID:
if(getObject(id).common.states) return getObject(id).common.states[val]; return id + ' hat keinen Zustandstext !';
-
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Aber es wäre schön, wenn Du das nochmal probierst, dann sehen wir ja ob die Meldung kommt.
Keine Meldung.
So, getestet, Fenster geöffnet. Falsche Werte im DP. Aber es wird ein Fenster erkannt.
-
@dslraser sagte:
LogMeldung bekommst mit "kein Zustandstext !".
Erzeugt das Blockly ein Log, wenn nicht einer der 3 möglichen Zustandstexte zurück gegeben wird ?
-
@paul53 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Erzeugt das Blockly ein Log
habe ich gerade selbst auch überlegt und nachgesehen. Im Moment nicht. Ich werde das dann einbauen.