NEWS
UNSOLVED vis editor object browser andere werte als werte in admin
-
Sorry für die späte Rückmeldung. Urlaub und Arbeit haben mich die letzten Wochen etwas ausgelastet.
Vielen Dank für deinen Input.
Weißt du auch wie ich mit den Metro Tile Toggle Widgets in Vis den aktuellen Status mit den 4 Werten entsprechend anzeigen/darstellen kann ?
Soweit ich das sehe kann das Metro Tile Toggle Widget ja "nur" true oder false auswerten, nicht aber die Werte 0 - 3 oder geht das auch ?
Beste Grüße -
-
Alles klar, ich denke ich habe eine Lösung gefunden.
Habe versucht dein Blockly nachzubauen.
Es reagiert auch, sobald z.B. Warmwasser auf true gesetzt wird, aber sobald Warmwasser wieder null hat, bleibt der Datenpunkt Betriebsstatus auf 2 (Warmwasser) und wird nicht auf 0 (Aus) gesetzt...Hier mein nachgebautes Script:
Hab ich wo was falsch verstanden oder übersehen ?
Beste Grüße
-
@Qlink sagte:
Hab ich wo was falsch verstanden oder übersehen ?
Du hast als Vergleichswert die Datenpunkt-ID, vergleichst aber mit Name. Nimm zum Vergleich die Objekt ID aus "Trigger".
@Qlink sagte in vis editor object browser andere werte als werte in admin:
sobald Warmwasser wieder null hat, bleibt der Datenpunkt Betriebsstatus auf 2 (Warmwasser) und wird nicht auf 0 (Aus) gesetzt...
Wenn keiner der 3 Datenpunkte mehr einen Zeitstempel hat, muss nach spätestens 15 s der Wert auf 0 ("Aus") schalten.
-
du meinst so ?
-
-
Leider klappt das Umschalten des Wertes nach 15s auf 0(Aus) leider nach wie vor nicht ...
Er bleibt auf 2(Warmwasser) ...Hast du noch eine Idee ?
Beste Grüße
-
@Qlink sagte:
Leider klappt das Umschalten des Wertes nach 15s auf 0(Aus) leider nach wie vor nicht
Haben alle 3 Datenpunkte keinen Zeitstempel mehr ? Wir hatten hier geprüft, dass exisitsState(id) false zurück liefert, wenn der Datenpunkt keinen Zustand hat. Folglich müssen alle 3 notExistsState(id) true zurück liefern, wenn keiner der Datenpunkte mehr einen Zustand hat. Bau mal zusätzlich einen Debug-Block in das Intervall ein:
-
das log spuckt folgendes aus:
javascript.0 2020-09-02 13:38:39.633 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:true javascript.0 2020-09-02 13:38:24.619 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:38:09.612 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:37:54.601 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:37:39.599 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:37:24.588 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:37:09.562 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:36:54.565 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:36:39.553 warn (2804) at process.topLevelDomainCallback (domain.js:126:23) javascript.0 2020-09-02 13:36:39.553 warn (2804) at processImmediate (timers.js:658:5) javascript.0 2020-09-02 13:36:39.553 warn (2804) at tryOnImmediate (timers.js:676:5) javascript.0 2020-09-02 13:36:39.553 warn (2804) at runCallback (timers.js:705:18) javascript.0 2020-09-02 13:36:39.553 warn (2804) at Immediate.setImmediate (C:\iobroker\iob01\node_modules\iobroker.js-controller\lib\adapter.js:5384:37) javascript.0 2020-09-02 13:36:39.553 warn (2804) at Object.stateChange (C:\iobroker\iob01\node_modules\iobroker.javascript\main.js:451:25) javascript.0 2020-09-02 13:36:39.553 warn (2804) at Object.callback (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1052:38) javascript.0 2020-09-02 13:36:39.553 warn (2804) at Object.<anonymous> (script.js.vis_Optik_Scripte.ISG_Betriebsstatus:11:7) javascript.0 2020-09-02 13:36:39.553 warn (2804) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN" not found (3) states[id]=null javascript.0 2020-09-02 13:36:24.570 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:36:09.556 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:35:54.543 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-02 13:35:39.527 warn (2804) at process.topLevelDomainCallback (domain.js:126:23) javascript.0 2020-09-02 13:35:39.527 warn (2804) at processImmediate (timers.js:658:5) javascript.0 2020-09-02 13:35:39.527 warn (2804) at tryOnImmediate (timers.js:676:5) javascript.0 2020-09-02 13:35:39.527 warn (2804) at runCallback (timers.js:705:18) javascript.0 2020-09-02 13:35:39.527 warn (2804) at Immediate.setImmediate (C:\iobroker\iob01\node_modules\iobroker.js-controller\lib\adapter.js:5384:37) javascript.0 2020-09-02 13:35:39.527 warn (2804) at Object.stateChange (C:\iobroker\iob01\node_modules\iobroker.javascript\main.js:451:25) javascript.0 2020-09-02 13:35:39.527 warn (2804) at Object.callback (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1052:38) javascript.0 2020-09-02 13:35:39.527 warn (2804) at Object.<anonymous> (script.js.vis_Optik_Scripte.ISG_Betriebsstatus:11:7) javascript.0 2020-09-02 13:35:39.527 warn (2804) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN" not found (3) states[id]=null
und in blockly kommt diese meldung:
13:36:39.553 warn javascript.0 (2804) at Object.<anonymous> (script.js.vis_Optik_Scripte.ISG_Betriebsstatus:11:7)
-
@Qlink
"Heizen" hat die ganze Zeit einen Zustand. Was wird im Tab "Objekte" in der Statusansicht gezeigt ?
Die Abfrage von "Wert von ..." erzeugt bei nicht vorhandenem Zustand die Warnung. Deshalb vergleiche besser die Objekt ID des Triggers. -
-
@Qlink sagte:
okay habs jetzt so abgeändert:
Das ist falsch ! Es darf nicht mit "wahr" verglichen werden, sondern mit der Objekt-ID von "KÜHLEN", "HEIZEN".
@Qlink sagte in vis editor object browser andere werte als werte in admin:
unter Objekte schauts so aus:
Bitte in die Statusansicht wechseln.
Wenn "HEIZEN" keine Zustandsdaten hat, muss notExistsState(id) true zurück liefern. Was ergibt im Log ?log(existsState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN"));
-
meinst du so?
Statusansicht schaut so aus:
Wie/Wo kann ich deinen log-Code eingeben für existsState? Hab ja ein Blockly Script ...
Beste Grüße
-
@Qlink sagte:
Wie/Wo kann ich deinen log-Code eingeben für existsState?
Ein Javascript zum Testen.
@Qlink sagte in vis editor object browser andere werte als werte in admin:
Statusansicht schaut so aus:
Auch bei "HEIZEN" ist kein Zustand zu sehen, also müsste notExistsState(id) auch für "HEIZEN" true zurück liefern.
EDIT: Das ist nicht die Statusansicht !! -
Ich hab ein javascript erstellt:
Ich sehe aber weder im Script Protokoll noch im iobroker log irgendwelche Einträge davon.
Das einzige was ich im log sehe ist der debug output vom Blockly Script:
javascript.0 2020-09-04 08:54:03.124 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-04 08:53:48.123 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-04 08:53:33.117 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false javascript.0 2020-09-04 08:53:18.114 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:false
-
@Qlink sagte:
noch im iobroker log irgendwelche Einträge davon.
Wurde das Script gestartet ? Ein Log wird nur einmal bei Scriptstart erzeugt. Da offenbar "HEIZEN" das Problem darstellt, logge bitte:
log('Heizen existiert: ' + existsState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN") + ', Wert: ' + getState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN").val);
@Qlink sagte in vis editor object browser andere werte als werte in admin:
Statusansicht schaut so aus:
Das ist bei "stiebel-isg.0" nicht die Statusansicht, aber genau die könnte Auskunft geben, was mit "HEIZEN" los ist.
-
@paul53 said in vis editor object browser andere werte als werte in admin:
log('Heizen existiert: ' + existsState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN") + ', Wert: ' + getState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN").val);
Alles klar.
Hier der Logoutput:javascript.0 2020-09-06 08:26:43.917 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:true javascript.0 2020-09-06 08:26:28.912 info (2804) script.js.vis_Optik_Scripte.ISG_Betriebsstatus: Heizen:falseKühlen:trueWW:true javascript.0 2020-09-06 08:26:20.005 info (2804) script.js.vis_Optik_Scripte.statuslog: registered 0 subscriptions and 0 schedules javascript.0 2020-09-06 08:26:20.005 info (2804) script.js.vis_Optik_Scripte.statuslog: Heizen existiert: true, Wert: javascript.0 2020-09-06 08:26:19.989 info (2804) Start javascript script.js.vis_Optik_Scripte.statuslog
sorry, dann weiß ich leider nicht was du meinst mit statusansicht von "stiebel-isg.0" und müsstest es mir genauer erklären...
Beste Grüße
-
@Qlink sagte:
Heizen existiert: true, Wert:
Offenbar existiert der Zustand von "HEIZEN", hat aber keinen Wert (bzw. Wert null). Dann ändere die Abfrage von
notExistsState id "HEIZEN" --> nicht Wert vom Objekt ID "HEIZEN" -
Bei einem heutigen Blick in die Objekte schauts plötzlich so aus:
Alles mit Zeitstempel usw. versehen ... Das war bisher noch nie und ich hab auch keine Änderungen durchgeführt.
Ändert das was an dem Skript Vorschlag von dir ?
Beste Grüße
-
@Qlink sagte:
Ändert das was an dem Skript Vorschlag von dir ?
Sieht so aus wie ich vermutet habe: "HEIZEN" hat zwar einen Zustand, aber keinen Wert. Deshalb prüfen mit nicht Wert vom Objekt ID "HEIZEN"
Von oben nach unten: KÜHLEN - HEIZEN - WARMWASSERBEREITUNG
Allerdings: Quelle ist nicht der Stiebel-Adapter, sondern web.0 (Vis ?). Du müsstest also prüfen, was passiert mit dem Datenpunkt nachdem "HEIZEN" aktiv war.