NEWS
Blockly Selektor u. Aufzählungen Geräte zählen
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Soll ich jetzt wieder alles auf falsch stellen? Natürlich nur dort wo du es angemerkt hast.
nur da wo die Datenpunkte erstellt werden, das brauchst Du ja nur einmal, sonst kommen bei jedem Blockly Neustart Meldungen im Log das diese Datenpunkte schon existieren und nicht neu geschrieben werden.
-
Ok, Licht kommt jetzt. Steckdose und Fenster noch nicht.
Kann man mehrer Selektor und Funktionen nehmen? -
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Kann man mehrer Selektor und Funktionen nehmen?
Das habe ich noch nicht probiert, keine Ahnung...Ich glaube aber nicht.
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
Kann man mehrer Selektor und Funktionen nehmen?
Geht wohl wieder nur über eine zusätzliche JS Funktion...(ich hatte es doch schon mal probiert)
https://forum.iobroker.net/post/256456
Hier noch was zum Selektor.
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#---selector
-
Keine Ahnung warum Fenster nicht geht. Habe eh nur einen Sensor im Bad.
Jetzt bekomme ich Fehler:
12:14:09.166 error javascript.0 (9200) at stateText (script.js.Status.Fenster_zaehlen:29:39) 12:14:09.166 error javascript.0 (9200) at Object.<anonymous> (script.js.Status.Fenster_zaehlen:690:9)
29: return getObject(id).common.states[val];
690: if (stateText(idFenster, wert) == 'TILTED') {javascript.0 2019-12-28 12:14:09.166 error (9200) at processImmediate (timers.js:658:5) javascript.0 2019-12-28 12:14:09.166 error (9200) at tryOnImmediate (timers.js:676:5) javascript.0 2019-12-28 12:14:09.166 error (9200) at runCallback (timers.js:705:18) javascript.0 2019-12-28 12:14:09.166 error (9200) at Immediate.setImmediate (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\adapter.js:4828:37) javascript.0 2019-12-28 12:14:09.166 error (9200) at Object.stateChange (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:439:25) javascript.0 2019-12-28 12:14:09.166 error (9200) at Object.callback (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1101:38) javascript.0 2019-12-28 12:14:09.166 error (9200) at Object.<anonymous> (script.js.Status.Fenster_zaehlen:690:9) javascript.0 2019-12-28 12:14:09.166 error (9200) at stateText (script.js.Status.Fenster_zaehlen:29:39) javascript.0 2019-12-28 12:14:09.166 error (9200) Error in callback: TypeError: Cannot read property 'true' of undefined javascript.0 2019-12-28 12:14:09.163 warn (9200) at processImmediate (timers.js:658:5) javascript.0 2019-12-28 12:14:09.163 warn (9200) at tryOnImmediate (timers.js:676:5) javascript.0 2019-12-28 12:14:09.163 warn (9200) at runCallback (timers.js:705:18) javascript.0 2019-12-28 12:14:09.163 warn (9200) at Immediate.setImmediate (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\adapter.js:4828:37) javascript.0 2019-12-28 12:14:09.162 warn (9200) at Object.stateChange (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:439:25) javascript.0 2019-12-28 12:14:09.162 warn (9200) at Object.callback (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1101:38) javascript.0 2019-12-28 12:14:09.162 warn (9200) at Object.<anonymous> (script.js.Status.Fenster_dslraser:46:3) javascript.0 2019-12-28 12:14:09.162 warn (9200) at setState (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1404:20) javascript.0 2019-12-28 12:14:09.162 warn (9200) You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster" which expects a boolean. Please fix your code to use a boolean or chang
Glaube es hat was mit den Drehkontakt zu tun, habe so einen nicht. Darum der Fehler 'TILTED'
-
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
avascript.0 2019-12-28 12:14:09.162 warn (9200) You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster" which expects a boolean. Please fix your code to use a boolean or chang
wieso kommt das bei Dir ?
avascript.0 2019-12-28 12:14:09.162 warn (9200) You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster" which expects a boolean. Please fix your code to use a boolean or chang
Da legt das Blockly gar nichts an ? Die angelegten Datenpunkte sind unter 0_userdata.0
Wenn Du das verändert hast, dann mußt Du auch den Rest im Blockly anpassen. -
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
@sigi234 sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
avascript.0 2019-12-28 12:14:09.162 warn (9200) You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster" which expects a boolean. Please fix your code to use a boolean or chang
wieso kommt das bei Dir ?
avascript.0 2019-12-28 12:14:09.162 warn (9200) You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.04email.Fensterstatus.Anzahl_geoffnete_Fenster" which expects a boolean. Please fix your code to use a boolean or chang
Da legt das Blockly gar nichts an ? Die angelegten Datenpunkte sind unter 0_userdata.0
Wenn Du das verändert hast, dann mußt Du auch den Rest im Blockly anpassen.Kommt von eine Blockly Skript, ist von dir?
Versendet eine Mail.
-
@sigi234
das ist aber ein anderes Blockly. Da ist anscheinend ein Datenpunkt falsch.Poste mal den Export.
-
@dslraser sagte in Fenster zählen mit Blockly Selektor Aufzählungen:
@sigi234
das ist aber ein anderes Blockly. Da ist anscheinend ein Datenpunkt falsch.Poste mal den Export.
-
@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 ?