NEWS
Datenpunkte spiegel - wie?
-
Guten Morgen
Wie kann ich Datenpunkte aus einem Adapter nach UserData "spiegel". Also mit welchen Blöcken (Blockly) und wie genau?
Datenpunkt aus Adapter mit einem Trigger schreiben scheidet aus.
Hintegrund: Ich habe vergangene Woche mein Haus mit Tado x Thermostaten weitestgehend ausgestattet und mit dem Tado Adapter einige Automationen und Events gebaut. Nur mal als Beispiel, Thermostat schaltet ab, wenn Fenster geöffnet wird oder Telegramnachricht, wenn Luftfeuchtigkeit zu hoch... usw.Das Problem ist nun, das Tado die API calls auf 100 Stück am Tag limitiert. Durch diverse Trigger wird ja bei jeder Änderung der Datenpunkte 1 Call gebunden. Da kommt man, unter Umständen je nach Umfang der Automationen, ruckzuck auf die 100 Abfragen am Tag.
Nun war meine Idee, die Datenpunkte, die ich in den Skripten abfrage, nach Userdata zu "spiegeln", aber eben ohne sie mit einem Trigger zu "lesen" und zu "schreiben". Die userdata DP kommen dann in die jeweiligen Abfragen in Blockly und laufen demnach lokal und binden damit garkeine Calls über die Tado Cloud. So mein Gedanke. Sollte doch korrekt sein?!?!
Vielleicht hat einer die Lösung für mich?
-
Guten Morgen
Wie kann ich Datenpunkte aus einem Adapter nach UserData "spiegel". Also mit welchen Blöcken (Blockly) und wie genau?
Datenpunkt aus Adapter mit einem Trigger schreiben scheidet aus.
Hintegrund: Ich habe vergangene Woche mein Haus mit Tado x Thermostaten weitestgehend ausgestattet und mit dem Tado Adapter einige Automationen und Events gebaut. Nur mal als Beispiel, Thermostat schaltet ab, wenn Fenster geöffnet wird oder Telegramnachricht, wenn Luftfeuchtigkeit zu hoch... usw.Das Problem ist nun, das Tado die API calls auf 100 Stück am Tag limitiert. Durch diverse Trigger wird ja bei jeder Änderung der Datenpunkte 1 Call gebunden. Da kommt man, unter Umständen je nach Umfang der Automationen, ruckzuck auf die 100 Abfragen am Tag.
Nun war meine Idee, die Datenpunkte, die ich in den Skripten abfrage, nach Userdata zu "spiegeln", aber eben ohne sie mit einem Trigger zu "lesen" und zu "schreiben". Die userdata DP kommen dann in die jeweiligen Abfragen in Blockly und laufen demnach lokal und binden damit garkeine Calls über die Tado Cloud. So mein Gedanke. Sollte doch korrekt sein?!?!
Vielleicht hat einer die Lösung für mich?
@IceD112 sagte in Datenpunkte spiegel - wie?:
Sollte doch korrekt sein?!?!
nö..
Datenpunkte spiegel - wie?
weil geht nicht.. ohne dass du diese manuell "wie auch immer" da hin schreibst.
wobei ich noch nicht verstanden habe was du mit
Die userdata DP kommen dann in die jeweiligen Abfragen in Blockly und laufen demnach lokal und binden damit garkeine Calls über die Tado Cloud.
meinst
-
Guten Morgen
Wie kann ich Datenpunkte aus einem Adapter nach UserData "spiegel". Also mit welchen Blöcken (Blockly) und wie genau?
Datenpunkt aus Adapter mit einem Trigger schreiben scheidet aus.
Hintegrund: Ich habe vergangene Woche mein Haus mit Tado x Thermostaten weitestgehend ausgestattet und mit dem Tado Adapter einige Automationen und Events gebaut. Nur mal als Beispiel, Thermostat schaltet ab, wenn Fenster geöffnet wird oder Telegramnachricht, wenn Luftfeuchtigkeit zu hoch... usw.Das Problem ist nun, das Tado die API calls auf 100 Stück am Tag limitiert. Durch diverse Trigger wird ja bei jeder Änderung der Datenpunkte 1 Call gebunden. Da kommt man, unter Umständen je nach Umfang der Automationen, ruckzuck auf die 100 Abfragen am Tag.
Nun war meine Idee, die Datenpunkte, die ich in den Skripten abfrage, nach Userdata zu "spiegeln", aber eben ohne sie mit einem Trigger zu "lesen" und zu "schreiben". Die userdata DP kommen dann in die jeweiligen Abfragen in Blockly und laufen demnach lokal und binden damit garkeine Calls über die Tado Cloud. So mein Gedanke. Sollte doch korrekt sein?!?!
Vielleicht hat einer die Lösung für mich?
@IceD112 sagte in Datenpunkte spiegel - wie?:
Vielleicht hat einer die Lösung für mich?
Spiegeln kannst du die DP's problemlos - mit einem oder mehreren Trigger.
Es gibt dafür ein paar Optionen:
- den 'binde' Baustein

Damit werden alle Änderungen an Objekt 1 auf Objekt 2 übertragen, aber nicht umgekehrt. - eigene Trigger, ggf. mit Regex - damit kannst du sogar den gesamten Tado Baum spiegeln

Natürlich musst du in beiden Fällen die DP's unter 0_userdata.0 manuell anlegen
- manuelle trigger, und so weiter.
- Wahrscheinlich kann man es auch mit einem geschickt angelegten Alias machen, welcher nicht zu Tado zurück schreibt. Das müsste ich mir aber im Detail anschauen.
A.
- den 'binde' Baustein
-
Guten Morgen
Wie kann ich Datenpunkte aus einem Adapter nach UserData "spiegel". Also mit welchen Blöcken (Blockly) und wie genau?
Datenpunkt aus Adapter mit einem Trigger schreiben scheidet aus.
Hintegrund: Ich habe vergangene Woche mein Haus mit Tado x Thermostaten weitestgehend ausgestattet und mit dem Tado Adapter einige Automationen und Events gebaut. Nur mal als Beispiel, Thermostat schaltet ab, wenn Fenster geöffnet wird oder Telegramnachricht, wenn Luftfeuchtigkeit zu hoch... usw.Das Problem ist nun, das Tado die API calls auf 100 Stück am Tag limitiert. Durch diverse Trigger wird ja bei jeder Änderung der Datenpunkte 1 Call gebunden. Da kommt man, unter Umständen je nach Umfang der Automationen, ruckzuck auf die 100 Abfragen am Tag.
Nun war meine Idee, die Datenpunkte, die ich in den Skripten abfrage, nach Userdata zu "spiegeln", aber eben ohne sie mit einem Trigger zu "lesen" und zu "schreiben". Die userdata DP kommen dann in die jeweiligen Abfragen in Blockly und laufen demnach lokal und binden damit garkeine Calls über die Tado Cloud. So mein Gedanke. Sollte doch korrekt sein?!?!
Vielleicht hat einer die Lösung für mich?
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
Sollte doch korrekt sein?!?!
nö..
Datenpunkte spiegel - wie?
weil geht nicht.. ohne dass du diese manuell "wie auch immer" da hin schreibst.
wobei ich noch nicht verstanden habe was du mit
Die userdata DP kommen dann in die jeweiligen Abfragen in Blockly und laufen demnach lokal und binden damit garkeine Calls über die Tado Cloud.
meinst
@arteck Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
Die Abfragezeit ganz hoch zu setzen ist natürlich auch ein Thema, allerdings könnten dabei dann Werte verloren gehen, wenn ein Event angetriggert wird. Beispiel: Wie eingangs schon kurz erwähnt läuft ein Skript, welches beim Öffnen des Fensters (im Bad zum Beispiel) das Thermostat ausschalten soll. Beim Trigger liest er den Zustand des Thermostats (On oder Off) und speichert es, Wenn On dann speichert es auch die Temperatur und liest und speichert den manualControlTyp um den evtl laufenden Zeitplan nach dem Schließen des Fensterns wieder zu aktivieren bzw um auf den Next_Time_Block zu warten. Wird das Fenster wieder geschlossen stellt er den Ursprungszustand wieder her.
Auch wenn das nun eher relativ praxisfern klingen mag, denn man will oder soll seinen Automationen ja vertrauen, aber die analoge Frau von heute ist ja oft eher skeptisch dem gegenüber, was der digital Mann Sonntags auf der Couch so gebastelt hat :-) Aber, wenn aus irgend einem Grund das Thermostat jetzt "off" gestellt wird (z.B. in der Tado App oder am Thermostat manuell) bevor die Frau duschen geht, die Abfrage Intervall auf 10 Minuten steht, ist die Frau mit duschen vielleicht schon fertig, bevor der ioBroker den "Off-State" übernommen hat. Ok in dem Fall hat er "on" gespeichert und das soll er vielleicht auch tun, aber vielleicht soll es auch off bleiben... oder anders, die Frau war länger duschen, ioBroker hat jetzt den Off Wert gespeichert und dann wird das Fenster geöffnet, dann bleibt die Heizung nach dem Schließen wieder aus, obwohl eigentlich gewollt war, dass sie wieder angehen soll... naja egal wie, ich hoffe man versteht mein Problem, wenns um die Intervall Zeit geht. Könnte hier und da zu Problemen führen@arteck wenn ich also nun hingehen würde und würde den Datenpunkt von tado zu userdata "spiegeln" und ich ersetze im Blockly im Trigger den DP von Tado gegen den gespiegelten aus userdata, dann würde das lesen des DP nur lokal laufen und bindet keine Ressourcen in der Tado Cloud.
Danke @asgothian ich werde es mal mit dem "binde Objekt" Baustein testen. Klar, die Datenpunkte, die ich spiegeln möchte müssen einmalig angelegt sein. Zurück schreiben möchte ich eigentlich nicht. Das würde wieder über tado direkt erfolgen, da das wie gesagt wohl keinen Call verbraucht. Und selbst wenn das auch einen Call bindet, wären die API Abfragen ja quasi halbiert, wenn ich nur noch schreibe und nicht noch zusätzlich lese...
-
@arteck Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
Die Abfragezeit ganz hoch zu setzen ist natürlich auch ein Thema, allerdings könnten dabei dann Werte verloren gehen, wenn ein Event angetriggert wird. Beispiel: Wie eingangs schon kurz erwähnt läuft ein Skript, welches beim Öffnen des Fensters (im Bad zum Beispiel) das Thermostat ausschalten soll. Beim Trigger liest er den Zustand des Thermostats (On oder Off) und speichert es, Wenn On dann speichert es auch die Temperatur und liest und speichert den manualControlTyp um den evtl laufenden Zeitplan nach dem Schließen des Fensterns wieder zu aktivieren bzw um auf den Next_Time_Block zu warten. Wird das Fenster wieder geschlossen stellt er den Ursprungszustand wieder her.
Auch wenn das nun eher relativ praxisfern klingen mag, denn man will oder soll seinen Automationen ja vertrauen, aber die analoge Frau von heute ist ja oft eher skeptisch dem gegenüber, was der digital Mann Sonntags auf der Couch so gebastelt hat :-) Aber, wenn aus irgend einem Grund das Thermostat jetzt "off" gestellt wird (z.B. in der Tado App oder am Thermostat manuell) bevor die Frau duschen geht, die Abfrage Intervall auf 10 Minuten steht, ist die Frau mit duschen vielleicht schon fertig, bevor der ioBroker den "Off-State" übernommen hat. Ok in dem Fall hat er "on" gespeichert und das soll er vielleicht auch tun, aber vielleicht soll es auch off bleiben... oder anders, die Frau war länger duschen, ioBroker hat jetzt den Off Wert gespeichert und dann wird das Fenster geöffnet, dann bleibt die Heizung nach dem Schließen wieder aus, obwohl eigentlich gewollt war, dass sie wieder angehen soll... naja egal wie, ich hoffe man versteht mein Problem, wenns um die Intervall Zeit geht. Könnte hier und da zu Problemen führen@arteck wenn ich also nun hingehen würde und würde den Datenpunkt von tado zu userdata "spiegeln" und ich ersetze im Blockly im Trigger den DP von Tado gegen den gespiegelten aus userdata, dann würde das lesen des DP nur lokal laufen und bindet keine Ressourcen in der Tado Cloud.
Danke @asgothian ich werde es mal mit dem "binde Objekt" Baustein testen. Klar, die Datenpunkte, die ich spiegeln möchte müssen einmalig angelegt sein. Zurück schreiben möchte ich eigentlich nicht. Das würde wieder über tado direkt erfolgen, da das wie gesagt wohl keinen Call verbraucht. Und selbst wenn das auch einen Call bindet, wären die API Abfragen ja quasi halbiert, wenn ich nur noch schreibe und nicht noch zusätzlich lese...
@IceD112 sagte in Datenpunkte spiegel - wie?:
@arteck Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
@arteck wenn ich also nun hingehen würde und würde den Datenpunkt von tado zu userdata "spiegeln" und ich ersetze im Blockly im Trigger den DP von Tado gegen den gespiegelten aus userdata, dann würde das lesen des DP nur lokal laufen und bindet keine Ressourcen in der Tado Cloud.
Bist du dir da sicher?
Das "Binde" muss ja den Datenpunkt auch "beobachten" und bei Änderung wird dann dein user DP ein Update erhalten.Die Abfrage entsteht ja durch den Tado-Adapter.
Ein Trigger auf den DP alleine kann doch eigentlich gar keine Abfrage auslösen. (Der schaut ja auch nur "lokal" ob sich der DP in der TADO Instanz geändert hat.)
Oder von wo hast du diese Info? -
@arteck Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
Die Abfragezeit ganz hoch zu setzen ist natürlich auch ein Thema, allerdings könnten dabei dann Werte verloren gehen, wenn ein Event angetriggert wird. Beispiel: Wie eingangs schon kurz erwähnt läuft ein Skript, welches beim Öffnen des Fensters (im Bad zum Beispiel) das Thermostat ausschalten soll. Beim Trigger liest er den Zustand des Thermostats (On oder Off) und speichert es, Wenn On dann speichert es auch die Temperatur und liest und speichert den manualControlTyp um den evtl laufenden Zeitplan nach dem Schließen des Fensterns wieder zu aktivieren bzw um auf den Next_Time_Block zu warten. Wird das Fenster wieder geschlossen stellt er den Ursprungszustand wieder her.
Auch wenn das nun eher relativ praxisfern klingen mag, denn man will oder soll seinen Automationen ja vertrauen, aber die analoge Frau von heute ist ja oft eher skeptisch dem gegenüber, was der digital Mann Sonntags auf der Couch so gebastelt hat :-) Aber, wenn aus irgend einem Grund das Thermostat jetzt "off" gestellt wird (z.B. in der Tado App oder am Thermostat manuell) bevor die Frau duschen geht, die Abfrage Intervall auf 10 Minuten steht, ist die Frau mit duschen vielleicht schon fertig, bevor der ioBroker den "Off-State" übernommen hat. Ok in dem Fall hat er "on" gespeichert und das soll er vielleicht auch tun, aber vielleicht soll es auch off bleiben... oder anders, die Frau war länger duschen, ioBroker hat jetzt den Off Wert gespeichert und dann wird das Fenster geöffnet, dann bleibt die Heizung nach dem Schließen wieder aus, obwohl eigentlich gewollt war, dass sie wieder angehen soll... naja egal wie, ich hoffe man versteht mein Problem, wenns um die Intervall Zeit geht. Könnte hier und da zu Problemen führen@arteck wenn ich also nun hingehen würde und würde den Datenpunkt von tado zu userdata "spiegeln" und ich ersetze im Blockly im Trigger den DP von Tado gegen den gespiegelten aus userdata, dann würde das lesen des DP nur lokal laufen und bindet keine Ressourcen in der Tado Cloud.
Danke @asgothian ich werde es mal mit dem "binde Objekt" Baustein testen. Klar, die Datenpunkte, die ich spiegeln möchte müssen einmalig angelegt sein. Zurück schreiben möchte ich eigentlich nicht. Das würde wieder über tado direkt erfolgen, da das wie gesagt wohl keinen Call verbraucht. Und selbst wenn das auch einen Call bindet, wären die API Abfragen ja quasi halbiert, wenn ich nur noch schreibe und nicht noch zusätzlich lese...
@IceD112 ein lesen des DP aus einem blockly oder Javascript verursacht BESTIMMT KEIN API Zugrif.
warum auch..nur der Tado adapter verurscht ein Call.. wenn er die Daten abholt.. mehr nicht
also kannst du rumjuckeln auf den DP's wie du willst.. wo hast du die Info her ??
-
@arteck Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
Die Abfragezeit ganz hoch zu setzen ist natürlich auch ein Thema, allerdings könnten dabei dann Werte verloren gehen, wenn ein Event angetriggert wird. Beispiel: Wie eingangs schon kurz erwähnt läuft ein Skript, welches beim Öffnen des Fensters (im Bad zum Beispiel) das Thermostat ausschalten soll. Beim Trigger liest er den Zustand des Thermostats (On oder Off) und speichert es, Wenn On dann speichert es auch die Temperatur und liest und speichert den manualControlTyp um den evtl laufenden Zeitplan nach dem Schließen des Fensterns wieder zu aktivieren bzw um auf den Next_Time_Block zu warten. Wird das Fenster wieder geschlossen stellt er den Ursprungszustand wieder her.
Auch wenn das nun eher relativ praxisfern klingen mag, denn man will oder soll seinen Automationen ja vertrauen, aber die analoge Frau von heute ist ja oft eher skeptisch dem gegenüber, was der digital Mann Sonntags auf der Couch so gebastelt hat :-) Aber, wenn aus irgend einem Grund das Thermostat jetzt "off" gestellt wird (z.B. in der Tado App oder am Thermostat manuell) bevor die Frau duschen geht, die Abfrage Intervall auf 10 Minuten steht, ist die Frau mit duschen vielleicht schon fertig, bevor der ioBroker den "Off-State" übernommen hat. Ok in dem Fall hat er "on" gespeichert und das soll er vielleicht auch tun, aber vielleicht soll es auch off bleiben... oder anders, die Frau war länger duschen, ioBroker hat jetzt den Off Wert gespeichert und dann wird das Fenster geöffnet, dann bleibt die Heizung nach dem Schließen wieder aus, obwohl eigentlich gewollt war, dass sie wieder angehen soll... naja egal wie, ich hoffe man versteht mein Problem, wenns um die Intervall Zeit geht. Könnte hier und da zu Problemen führen@arteck wenn ich also nun hingehen würde und würde den Datenpunkt von tado zu userdata "spiegeln" und ich ersetze im Blockly im Trigger den DP von Tado gegen den gespiegelten aus userdata, dann würde das lesen des DP nur lokal laufen und bindet keine Ressourcen in der Tado Cloud.
Danke @asgothian ich werde es mal mit dem "binde Objekt" Baustein testen. Klar, die Datenpunkte, die ich spiegeln möchte müssen einmalig angelegt sein. Zurück schreiben möchte ich eigentlich nicht. Das würde wieder über tado direkt erfolgen, da das wie gesagt wohl keinen Call verbraucht. Und selbst wenn das auch einen Call bindet, wären die API Abfragen ja quasi halbiert, wenn ich nur noch schreibe und nicht noch zusätzlich lese...
@IceD112 sagte in Datenpunkte spiegel - wie?:
Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
Da geht etwas durcheinander:
- wenn TADO 1% Feuchte-Änderungen im ioBroker anzeigen soll (von einem bei TADO integrierten sensor), dann muss das Abfrageintervall das auch hergeben. Damit bekommst du entsprechenden Traffic und ggf. API Calls.
- Wenn du wegen 1% Feuchte-Änderungen eines nicht-Tado Sensors bei TADO etwas abfragen willst (temperatur, status, etc), dann bekommst du entsprechenden Traffic und API Calls.
- Wenn du sicherstellen willst das sich ein Wert bei TADO nicht geändert hat seit das letzte Abfrage-Intervall durchgelaufen ist (egal wodurch getriggert)., dann bekommst du einen Call bei TADO.
aber
Der Tado Adapter bekommt es nicht mit, wenn ein Skript auf eine vom Adapter in den DP geschriebene Änderung / Aktualisierung des Wertes reagiert.
A.
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
Damit meine ich: Aktuell lese ich ja gewisse DP im Tado Adapter bei Änderungen aus. Sprich, geht die Luftfeuchtigkeit 1% hoch oder runter, so habe ich jedes mal eine Abfrage des DP in Tado. und doch @oliverio, offenbar ist das lesen eines States ein Call bei Tado. das schreiben wiederum nicht. So hab ich es zumindest gelesen.
Da geht etwas durcheinander:
- wenn TADO 1% Feuchte-Änderungen im ioBroker anzeigen soll (von einem bei TADO integrierten sensor), dann muss das Abfrageintervall das auch hergeben. Damit bekommst du entsprechenden Traffic und ggf. API Calls.
- Wenn du wegen 1% Feuchte-Änderungen eines nicht-Tado Sensors bei TADO etwas abfragen willst (temperatur, status, etc), dann bekommst du entsprechenden Traffic und API Calls.
- Wenn du sicherstellen willst das sich ein Wert bei TADO nicht geändert hat seit das letzte Abfrage-Intervall durchgelaufen ist (egal wodurch getriggert)., dann bekommst du einen Call bei TADO.
aber
Der Tado Adapter bekommt es nicht mit, wenn ein Skript auf eine vom Adapter in den DP geschriebene Änderung / Aktualisierung des Wertes reagiert.
A.
@Asgothian Also ist meine Denkensweise korrekt?
@arteck Wenn ich die Adaptereinstellung lese verstehe ich das so. Er bezieht die Calls auf die Abfrageintervall


Also meine Vermutung, dass nicht nur das Lesen sondern auch das Schreiben unter eine API Abfrage fällt verhärtet sich beim erneuten lesen
Eine weitere Idee wäre den Tado Adapter komplett zu umgehen um mit einem Thread Dongle das ganze über Matter zu machen? Das dürfte dann doch eigentlich völlig lokal passieren.
Matter habe ich in meinem ioBroker jedoch noch nicht eingerichtet. Hab zwar schon den SONOFF MG24 Dongle da liegen aber noch nichts eingerichtet oder so. Ich wollte es zunächst mal so testen wie anfangs erwähnt -
@Asgothian Also ist meine Denkensweise korrekt?
@arteck Wenn ich die Adaptereinstellung lese verstehe ich das so. Er bezieht die Calls auf die Abfrageintervall


Also meine Vermutung, dass nicht nur das Lesen sondern auch das Schreiben unter eine API Abfrage fällt verhärtet sich beim erneuten lesen
Eine weitere Idee wäre den Tado Adapter komplett zu umgehen um mit einem Thread Dongle das ganze über Matter zu machen? Das dürfte dann doch eigentlich völlig lokal passieren.
Matter habe ich in meinem ioBroker jedoch noch nicht eingerichtet. Hab zwar schon den SONOFF MG24 Dongle da liegen aber noch nichts eingerichtet oder so. Ich wollte es zunächst mal so testen wie anfangs erwähnt@IceD112 sagte in Datenpunkte spiegel - wie?:
@Asgothian Also ist meine Denkensweise korrekt?
Welcher Teil ?
Das du gespiegelte Datenpunkte brauchst damit du mit den von Tado gelieferten Daten arbeiten kannst ohne API Calls auszulösen ? nein
Das jede einzelne Kommunikation mit den Tado Servern via API ein API Call ist ? ja
@arteck Wenn ich die Adaptereinstellung lese verstehe ich das so. Er bezieht die Calls auf die Abfrageintervall
Also meine Vermutung, dass nicht nur das Lesen sondern auch das Schreiben unter eine API Abfrage fällt verhärtet sich beim erneuten lesen
Wie oben beschrieben gilt das nur für Daten die von der Tado Cloud gelesen / geliefertn oder in die Tado Cloud geschrieben werden.
Einmal von der Tado Cloud gelesene Daten die im ioBroker in DP's gespeichert sind kannst du innerhalb es ioBroker beliebig oft / gerne auslesen ohne das ein API Call benutzt wird.
A.
-
@Asgothian Also ist meine Denkensweise korrekt?
@arteck Wenn ich die Adaptereinstellung lese verstehe ich das so. Er bezieht die Calls auf die Abfrageintervall


Also meine Vermutung, dass nicht nur das Lesen sondern auch das Schreiben unter eine API Abfrage fällt verhärtet sich beim erneuten lesen
Eine weitere Idee wäre den Tado Adapter komplett zu umgehen um mit einem Thread Dongle das ganze über Matter zu machen? Das dürfte dann doch eigentlich völlig lokal passieren.
Matter habe ich in meinem ioBroker jedoch noch nicht eingerichtet. Hab zwar schon den SONOFF MG24 Dongle da liegen aber noch nichts eingerichtet oder so. Ich wollte es zunächst mal so testen wie anfangs erwähntWarum ich überhaupt darauf komme...?!
Ich habe am Wochenende einige Blocklys erstellt und dementsprechend rum probiert ob die Events korrekt lauf. Wie es dann so ist, hat hier mal ne Logik nicht so gegriffen wie gedacht also passt man es an bis es klappt. Zudem habe ich in VIS die Steuerung mit eingebnden und beim Testen auch von dort probiert und beobachtet und gemacht und getan. Also viele Quervesuche mit allen möglichen Szenarien.
Bei den letzten Versuchen ist der Tado Adapter dann ausgestiegen und hat sich nicht mehr mit dem Host verbunden: Im Log stand sinngemäß, API-Call Faild, too Manny Requests, Fehler 429. Also Sperre bis 0 Uhr.
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
@Asgothian Also ist meine Denkensweise korrekt?
Welcher Teil ?
Das du gespiegelte Datenpunkte brauchst damit du mit den von Tado gelieferten Daten arbeiten kannst ohne API Calls auszulösen ? nein
Das jede einzelne Kommunikation mit den Tado Servern via API ein API Call ist ? ja
@arteck Wenn ich die Adaptereinstellung lese verstehe ich das so. Er bezieht die Calls auf die Abfrageintervall
Also meine Vermutung, dass nicht nur das Lesen sondern auch das Schreiben unter eine API Abfrage fällt verhärtet sich beim erneuten lesen
Wie oben beschrieben gilt das nur für Daten die von der Tado Cloud gelesen / geliefertn oder in die Tado Cloud geschrieben werden.
Einmal von der Tado Cloud gelesene Daten die im ioBroker in DP's gespeichert sind kannst du innerhalb es ioBroker beliebig oft / gerne auslesen ohne das ein API Call benutzt wird.
A.
@Asgothian sagte in Datenpunkte spiegel - wie?:
Das du gespiegelte Datenpunkte brauchst damit du mit den von Tado gelieferten Daten arbeiten kannst ohne API Calls auszulösen ? nein
Hm... ok. Mein Gedanke war halt der, dass ein Datenpunkt der gespiegelt wird, einfach von userdata bei Tado "lokal" abgeguckt wird ohne eine API Abfrage zu machen.
Also kann ich mit meinem Vorhaben, anstellen den DP von Tado im Skript auszulesen, einen gespiegelten DP aus userdata zu nehmen keine Calls reduzieren?
-
@Asgothian sagte in Datenpunkte spiegel - wie?:
Das du gespiegelte Datenpunkte brauchst damit du mit den von Tado gelieferten Daten arbeiten kannst ohne API Calls auszulösen ? nein
Hm... ok. Mein Gedanke war halt der, dass ein Datenpunkt der gespiegelt wird, einfach von userdata bei Tado "lokal" abgeguckt wird ohne eine API Abfrage zu machen.
Also kann ich mit meinem Vorhaben, anstellen den DP von Tado im Skript auszulesen, einen gespiegelten DP aus userdata zu nehmen keine Calls reduzieren?
@IceD112 sagte in Datenpunkte spiegel - wie?:
Mein Gedanke war halt der, dass ein Datenpunkt der gespiegelt wird, einfach von userdata bei Tado "lokal" abgeguckt wird ohne eine API Abfrage zu machen
das ist ja auch korrekt!
Aber der Spiegel-DP sieht sich ebenfalls den Inhalt des lokalen Tado-DPs ab, dann kannst du das lesend auch ohne einen call machen.
nur schreiben darfst du nicht
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
Mein Gedanke war halt der, dass ein Datenpunkt der gespiegelt wird, einfach von userdata bei Tado "lokal" abgeguckt wird ohne eine API Abfrage zu machen
das ist ja auch korrekt!
Aber der Spiegel-DP sieht sich ebenfalls den Inhalt des lokalen Tado-DPs ab, dann kannst du das lesend auch ohne einen call machen.
nur schreiben darfst du nicht
-
@Homoran Ok, das Schreiben habe ich auch nicht vor, bzw geschrieben würde dann wieder über Tapo. Damit reduziere ich den Traffic ja. Ich will ja lediglich die API Calls so gering wie möglich halten.
@IceD112 sagte in Datenpunkte spiegel - wie?:
Ok, das Schreiben habe ich auch nicht vor, bzw geschrieben würde dann wieder über Tapo.
Und da generiert keiner deiner limitierten API Zugriffe?
Wenn dein Skript natürlich nach jeder DP Änderung wieder etwas aktiv schreibt, könnte das schon die Zugriffe erhöhen.
-
Warum ich überhaupt darauf komme...?!
Ich habe am Wochenende einige Blocklys erstellt und dementsprechend rum probiert ob die Events korrekt lauf. Wie es dann so ist, hat hier mal ne Logik nicht so gegriffen wie gedacht also passt man es an bis es klappt. Zudem habe ich in VIS die Steuerung mit eingebnden und beim Testen auch von dort probiert und beobachtet und gemacht und getan. Also viele Quervesuche mit allen möglichen Szenarien.
Bei den letzten Versuchen ist der Tado Adapter dann ausgestiegen und hat sich nicht mehr mit dem Host verbunden: Im Log stand sinngemäß, API-Call Faild, too Manny Requests, Fehler 429. Also Sperre bis 0 Uhr.
@IceD112 sagte in Datenpunkte spiegel - wie?:
Warum ich überhaupt darauf komme...?!
Ich habe am Wochenende einige Blocklys erstellt und dementsprechend rum probiert ob die Events korrekt lauf. Wie es dann so ist, hat hier mal ne Logik nicht so gegriffen wie gedacht also passt man es an bis es klappt. Zudem habe ich in VIS die Steuerung mit eingebnden und beim Testen auch von dort probiert und beobachtet und gemacht und getan. Also viele Quervesuche mit allen möglichen Szenarien.
Bei den letzten Versuchen ist der Tado Adapter dann ausgestiegen und hat sich nicht mehr mit dem Host verbunden: Im Log stand sinngemäß, API-Call Faild, too Manny Requests, Fehler 429. Also Sperre bis 0 Uhr.
Wir kreisen hier im Nebel.
Zeig doch mal die Test-Blocklies die angeblich die API calls gemacht haben.
A.
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
Warum ich überhaupt darauf komme...?!
Ich habe am Wochenende einige Blocklys erstellt und dementsprechend rum probiert ob die Events korrekt lauf. Wie es dann so ist, hat hier mal ne Logik nicht so gegriffen wie gedacht also passt man es an bis es klappt. Zudem habe ich in VIS die Steuerung mit eingebnden und beim Testen auch von dort probiert und beobachtet und gemacht und getan. Also viele Quervesuche mit allen möglichen Szenarien.
Bei den letzten Versuchen ist der Tado Adapter dann ausgestiegen und hat sich nicht mehr mit dem Host verbunden: Im Log stand sinngemäß, API-Call Faild, too Manny Requests, Fehler 429. Also Sperre bis 0 Uhr.
Wir kreisen hier im Nebel.
Zeig doch mal die Test-Blocklies die angeblich die API calls gemacht haben.
A.
Das ist mal das Fensterskript
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="windowActive">windowActiv_Bad</variable> <variable id="savedPower">SaveP_Bad</variable> <variable id="(2C@.?e.nF8%MiM:wn(+">saveControlTyp_Bad</variable> <variable id="savedTemp">SaveT_Bad</variable> <variable type="timeout" id="timer2">timer2</variable> <variable id="qH^M1WvK8MC3j{Qvx52g">SaveP_Wohn</variable> <variable type="timeout" id="timer">timer</variable> <variable id="heatingPaused">heatingPaused_Wohn</variable> <variable id=";T^ouC3KOKUy,lNNt(2q">SaveT_Wohn</variable> <variable id="savedControlType">saveControlType_Wohn</variable> <variable id="PuIGX^[JD/@{e$trHC:#">windowActiv_Schlaf</variable> <variable id=";~5Gl{BjDs^I{hAZAih~">SaveP_Schlaf</variable> <variable id="HYHg[}#y|)C+6t(YmCDo">saveControlTyp_Schlaf</variable> <variable id="9#EOHB=v92wQ~m!K*.@B">SaveT_Schlaf</variable> </variables> <block type="comment" id="Mf(%+hzmDWK^sp~du//l" x="-951" y="-972"> <field name="COMMENT">Badezimmer auf</field> <next> <block type="on_ext" id="/lq+F$LFt{+1ra!@+/A3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="sR!L,AcoCXC.%Qx%vLl?"> <field name="oid">shelly.0.SHDW-2#E8DB84D46122#1.sensor.door</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="0a.Cg%K,laTBhw/4H8S`"> <field name="VAR" id="windowActive">windowActiv_Bad</field> <value name="VALUE"> <block type="logic_boolean" id="~l.3!;i7?M;$?z6@;Jj9"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="jquJb#7O98?`zKNrcGi`"> <field name="VAR" id="savedPower">SaveP_Bad</field> <value name="VALUE"> <block type="get_value" id="w0Ye,?)77di/y,7-gWq7"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.setting.power</field> </block> </value> <next> <block type="variables_set" id="c_-s,orhm`E/}|Td[G{W"> <field name="VAR" id="(2C@.?e.nF8%MiM:wn(+">saveControlTyp_Bad</field> <value name="VALUE"> <block type="get_value" id="7SVsg+./63,x,Lo^5D]l"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.manualControlTermination.controlType</field> </block> </value> <next> <block type="controls_if" id="/I;}C4z3=]%]f]4c7Mn!"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="g5OGm{EP:bpiW{]1On`G"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="FJjs4~49bRj$36MmQ!/A"> <field name="VAR" id="savedPower">SaveP_Bad</field> </block> </value> <value name="B"> <block type="text" id="0esxCg8lPG~;Wyn5#=xx"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="K4A+)2mH/^/pl]`(=J!h"> <field name="VAR" id="savedTemp">SaveT_Bad</field> <value name="VALUE"> <block type="get_value" id="pG4iT)E#+UGdPVO6(sZM"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.setting.temperature.value</field> </block> </value> <next> <block type="control" id=")?~B?!CMm@CT)^1YH;0L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.7.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="qUpq^Z5U4E?c5(kXphs`"> <field name="TEXT">OFF</field> </block> </value> <next> <block type="timeouts_settimeout" id="[,E3Ci8.U^o2K;bIksJ/"> <field name="NAME">timer</field> <field name="DELAY">15</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="hbLr^VwVM!wv^YNW3u3c"> <value name="IF0"> <block type="logic_compare" id="-0Rloy;?m1fM0P,8BUuq"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="{}w4Reydp|9(T;1MD;ap"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHDW-2#E8DB84D46122#1.sensor.door</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";d3a%G`_?:MIE(8]j|NL"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="$@P-wK}qqG`gb`XWFXm!" collapsed="true"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="--RF{wnQQjFWi1LG]XzX"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="esV7m`v69ZY,^GeXufFh"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="SP+A+dI8/LS2wn552{,="> <field name="TEXT">Fenster im Bad seit 15 Minuten offen.</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="Wk[OUjm2aWJ;o6U%}MK8"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text_newline" id="sTg}s%@6!.:}A[%Arqs@"> <field name="Type">\n</field> </block> </value> <value name="ADD3"> <block type="text_join" id="]Q8sXi@7x2c}46W2JIR!"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="X]gU6eK0a[;,CFo|`nem"> <field name="TEXT">Luftfeuchtigkeit beträgt </field> </block> </value> <value name="ADD1"> <block type="get_value" id="?3t6S@qK;O;|4i~wON~@"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.sensorDataPoints.humidity.percentage</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text" id="$}Q}CTL~/dJtF{YL32Dk"> <field name="TEXT">%</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id="r8)zk#Z}ltS`z}sZUin."> <field name="TEXT">David</field> </block> </value> <next> <block type="telegram" id="SuikWIoY#^D}1e:^:]2c" collapsed="true"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="--RF{wnQQjFWi1LG]XzX"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="G7bm%:Y*d~BAi7j6uKra"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="e@H|8703wxK~!wh?6^uD"> <field name="TEXT">Fenster im Bad seit 15 Minuten offen.</field> </block> </value> <value name="ADD1"> <block type="text_newline" id=":gyOx^T!qSU3EWMe8t-U"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text_newline" id="hf{/tg0H8?*h8%*-JPcq"> <field name="Type">\n</field> </block> </value> <value name="ADD3"> <block type="text_join" id="|P$Rj1Q#anT2@MorWaGj"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="wzk#+fL}Bkyf(fP?YqBc"> <field name="TEXT">Luftfeuchtigkeit beträgt </field> </block> </value> <value name="ADD1"> <block type="get_value" id="~??dy]9p.(^_uY0WRK{="> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.sensorDataPoints.humidity.percentage</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text" id="RS~r(OAO{G_kCAw~hLEi"> <field name="TEXT">%</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id="wGEK)92f5_%5fk,aI.+c"> <field name="TEXT">Anne</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="T;4O,ycG$A8zwz0R`Klo"> <value name="IF0"> <block type="logic_compare" id="h#(;MT2;=o805-Z1jKiK"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="CuRV,A(@1apaFx|~?j)E"> <field name="VAR" id="savedPower">SaveP_Bad</field> </block> </value> <value name="B"> <block type="text" id="Ax4$=bTP?SR7THJ/;^~J"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="D9JZ(!)WM?1v@/4(a^1!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.7.setting.temperature.value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="4u^R?vMp|#VG-;L(U*H9"> <field name="VAR" id="savedTemp">SaveT_Bad</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="@^ng_*MG5E_F1P*KpJq="> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="%N(hNJwg+HQ`/9*(ry#q"> <field name="VAR" id="savedPower">SaveP_Bad</field> </block> </value> <value name="B"> <block type="text" id="W-~EJXj+RhGYUcuqn^_V"> <field name="TEXT">OFF</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="j:@xnyOYcM!+d]v1E@y-"> <field name="NAME">timer2</field> <field name="DELAY">15</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="W-Bwn^3iC|?Zc42dzIJ%"> <value name="IF0"> <block type="logic_compare" id="ye^%I*Wnv7?.m~K`CT-1"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="k@a)Lf^FcZS.wmIQ$:zV"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHDW-2#E8DB84D46122#1.sensor.door</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3y0eJ{?f[vl^-v|9mi-|"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="9Luoz9U~sdTqD-X[}6Qc" collapsed="true"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="--RF{wnQQjFWi1LG]XzX"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="ZdZ=uU9XXwf(^t$rkI`5"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="-XCP=NTD5,bbV^Z$vD:["> <field name="TEXT">Fenster im Bad seit 15 Minuten offen.</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="07J_nYc1H3kPmkM:7(!N"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text_newline" id="ogbIdJF]p=I2qTH!Y]aO"> <field name="Type">\n</field> </block> </value> <value name="ADD3"> <block type="text_join" id="U)RpPe9kS5Nb+K?Mw5KC"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="WAdXJBlqUJ+1C6@jL%o?"> <field name="TEXT">Luftfeuchtigkeit beträgt </field> </block> </value> <value name="ADD1"> <block type="get_value" id="Lzf}wbG%kpr|{s(Wl3A3"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.sensorDataPoints.humidity.percentage</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text" id="~$uJ-d5+k%O|T{QGwDJY"> <field name="TEXT">%</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id="p6Ug#dPbk@VyBA7yCm2!"> <field name="TEXT">David</field> </block> </value> <next> <block type="telegram" id=")3*[R]pUzMV_B{Q=izhh" collapsed="true"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="--RF{wnQQjFWi1LG]XzX"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="orHkB_RGVEZ4f}f`FGPu"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="4g/x*u2mLd}E*FEX8tvs"> <field name="TEXT">Fenster im Bad seit 15 Minuten offen.</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="bRza-ITAE6ELhQslx2_8"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text_newline" id="t9gcRF;opMT3~5Kn^#f~"> <field name="Type">\n</field> </block> </value> <value name="ADD3"> <block type="text_join" id="BVYFK%nZ_@?SxFU(,C.v"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="iNeg*#Jxa5iqZWSNcAj-"> <field name="TEXT">Luftfeuchtigkeit beträgt </field> </block> </value> <value name="ADD1"> <block type="get_value" id=",J2LYT0:t/O0lxLU((EF"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.7.sensorDataPoints.humidity.percentage</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text" id="RcfvrThvl^R8L)?I*G|0"> <field name="TEXT">%</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id=":T-OHue5Qlthm^tg2Fhd"> <field name="TEXT">Anne</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="fJ~|g8)Aj]]y[xPcN6,}"> <field name="COMMENT">Badezimmer zu</field> <next> <block type="on_ext" id="##~kZ89(5T0ksC:js{}I"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">false</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=".%o$K5/fl`LH+PG0aqnX"> <field name="oid">shelly.0.SHDW-2#E8DB84D46122#1.sensor.door</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="0tvzCGc=3o}=*5twpxr]"> <value name="IF0"> <block type="variables_get" id=".QJQ5~;/XIPEk#bjQk)K"> <field name="VAR" id="windowActive">windowActiv_Bad</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="PBV%{;EeOiSsii]M=i(S"> <field name="NAME">timer</field> <next> <block type="timeouts_cleartimeout" id="|I4];0WCaSh#WRwlHj(("> <field name="NAME">timer2</field> <next> <block type="controls_if" id="S17pLzg#e._}(M-L*7mT"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="x^d):CD;^b8bE[)I-,;}"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~dJEqS^so%lFF91eNZmr"> <field name="VAR" id="savedPower">SaveP_Bad</field> </block> </value> <value name="B"> <block type="text" id="?3Sd5FOn)D~-d48A78rg"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="]8CzRT;Hn0sa?.vt;C,j"> <value name="IF0"> <block type="logic_compare" id="RrX_o^%v:0Zvk)CaQ*Lo"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="oCB9]z`2@~9(J^/-CT+$"> <field name="VAR" id="(2C@.?e.nF8%MiM:wn(+">saveControlTyp_Bad</field> </block> </value> <value name="B"> <block type="text" id="X8Vw(Q{zya[GO~,lK[o)"> <field name="TEXT">MANUAL</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="+YuEV1q]vZ?)a_EsxPr,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.7.manualControlTermination.controlType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=":^ssLF@p^1O,r(|;s^[_"> <field name="TEXT">MANUAL</field> </block> </value> </block> </statement> <next> <block type="control" id="R`nicm0$PJPBRDK4VR/s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tado.0.2142128.Rooms.7.manualControlTermination.controlType</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="tBl5MBe,nydZlI48Jx@p"> <field name="TEXT">NEXT_TIME_BLOCK</field> </block> </value> <next> <block type="control" id="_Rh-En/kx^?)hwa8}_Gg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.7.setting.temperature.value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="}6tszabq^leI$UA/feXg"> <field name="VAR" id="savedTemp">SaveT_Bad</field> </block> </value> <next> <block type="variables_set" id="v@|6(^I|.F@c-Ikl`6V_"> <field name="VAR" id="windowActive">windowActiv_Bad</field> <value name="VALUE"> <block type="logic_boolean" id="x/Jv:C5QKslE~ES+=Var"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="7EI6?_=b+sF,v9ixoZ/P"> <value name="IF0"> <block type="logic_multi_and" id="asDaq@6ypPVALm[)R%dw"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="s0rkd!@JXGF!nJKZHEZW"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="D06*V)cGYv(1Wa53jA,p"> <field name="VAR" id="savedPower">SaveP_Bad</field> </block> </value> <value name="B"> <block type="text" id="L.aHURlg?z_5||,+$zck"> <field name="TEXT">Off</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_multi_or" id=")$g#CTCq{BO_G%6umbPT"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="OR0"> <block type="logic_compare" id="G:eaFU?`)B20bPLAPC/a"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="Fo/`Yq*.%Mzl@~|~-(AJ"> <field name="VAR" id="(2C@.?e.nF8%MiM:wn(+">saveControlTyp_Bad</field> </block> </value> <value name="B"> <block type="text" id="E$A(t8Qe!2rOp`TNQg$`"> <field name="TEXT">MANUAL</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="LsjtPlCiH;(-q0M}]!Zu"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="j#LN9v8*k7nx%r`I29hU"> <field name="VAR" id="(2C@.?e.nF8%MiM:wn(+">saveControlTyp_Bad</field> </block> </value> <value name="B"> <block type="text" id="GnN~3}.aDjY*q3$s,/Jw"> <field name="TEXT">NEXT_TIME_BLOCK</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="`]/Z*x09T__m?zM-.kzI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.7.manualControlTermination.controlType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="]_vAA.?nY$~]8R#I=aWM"> <field name="TEXT">MANUAL</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="o,M2be*QD,|[Qm;1C[R/"> <field name="VAR" id="windowActive">windowActiv_Bad</field> <value name="VALUE"> <block type="logic_boolean" id="++~|B7O(vlY]/+6_lAiz"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id=":I_a]G#:Qk/{AM`y6a;`"> <field name="COMMENT">Wohnzimmer auf</field> <next> <block type="on_ext" id="XElP:nxai(B8v(ad@U]A"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="W:{)1kc)tRi9YC(*9@o}"> <field name="oid">shelly.0.SHDW-2#483FDA81FF06#1.sensor.door</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="d=/IiMs1!u7M_qNdh)vn"> <field name="oid">shelly.0.SHDW-2#483FDA81FA81#1.sensor.door</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%uPDD1@Vrfg:Gl4gU~:C"> <value name="IF0"> <block type="logic_negate" id="mG=L1)zVG,#x!QJ(eOJ6"> <value name="BOOL"> <block type="variables_get" id="WZM*R)=VIv)|=p6s{DB#"> <field name="VAR" id="heatingPaused">heatingPaused_Wohn</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="2[ZGWtOeRwkEUE)i?YsO"> <field name="VAR" id="qH^M1WvK8MC3j{Qvx52g">SaveP_Wohn</field> <value name="VALUE"> <block type="get_value" id="z~Isq}1)eh-aodV%jhel"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.2.setting.power</field> </block> </value> <next> <block type="variables_set" id="0!#(o@Q_#Jy4YFr[a]Y{"> <field name="VAR" id=";T^ouC3KOKUy,lNNt(2q">SaveT_Wohn</field> <value name="VALUE"> <block type="get_value" id="m$GxtNfK9`xPF#M~f(@X"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.2.setting.temperature.value</field> </block> </value> <next> <block type="variables_set" id="3cIF#KO2M-hXzUu?;.ZG"> <field name="VAR" id="heatingPaused">heatingPaused_Wohn</field> <value name="VALUE"> <block type="logic_boolean" id="Tk`)O}Zl#iP8(wh?+O!d"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="9RS}6TSk+w|E|[zQ}s;U"> <field name="VAR" id="savedControlType">saveControlType_Wohn</field> <value name="VALUE"> <block type="get_value" id="B)D(gi4M_Lc2j`|{fp-@"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.2.manualControlTermination.controlType</field> </block> </value> <next> <block type="control" id="d?=[f,p8F@|+u[=;|WJ{"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.2.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="[{e*Y#0~ovLFd8dz.$Sm"> <field name="TEXT">OFF</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="#1r3i8n~8Da(R_m~RnG-"> <field name="COMMENT">Wohnzimmer zu</field> <next> <block type="on_ext" id="P}8gyyZEEL96|}s,m_w3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">false</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="a3U{^Q(WJ?P,QxoWHxV%"> <field name="oid">shelly.0.SHDW-2#483FDA81FF06#1.sensor.door</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="BN`._RYr?,Tlh^e{$2@)"> <field name="oid">shelly.0.SHDW-2#483FDA81FA81#1.sensor.door</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="yF45O@psqx]kuo0)aG+l"> <value name="IF0"> <block type="logic_operation" id="Nryc^j;w7:]0GQP|SUU-"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="eZb]g`;o]`i8$_1_jMht"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="f@7~Ts]w_w;G!),A`@W}"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHDW-2#483FDA81FF06#1.sensor.door</field> </block> </value> <value name="B"> <block type="logic_boolean" id="}qJ}Yb)rZ}0DTW`Mg3{]"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="1B7?agme#EhFzTp,1vYO"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4Kk[F:+|YL|h)0V/l7d+"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHDW-2#483FDA81FA81#1.sensor.door</field> </block> </value> <value name="B"> <block type="logic_boolean" id="cC}(S.#9*R:Dx1QOV$}s"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="mdRaom3xtfD]C~8[KmNM"> <value name="IF0"> <block type="variables_get" id="bkGpM*go==J^Y:wR@u*["> <field name="VAR" id="heatingPaused">heatingPaused_Wohn</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="6ovy9=d)):{4Y.TN0t}C"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="PkMH0+$E#opTjGe^p4~O"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="Wy8ax}1NIKo%n!I@@Es9"> <field name="VAR" id="qH^M1WvK8MC3j{Qvx52g">SaveP_Wohn</field> </block> </value> <value name="B"> <block type="text" id="3,VXaJK%,Ko[HVuGRH(q"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="a6R[V|zzpBo@NKX`a=m!"> <value name="IF0"> <block type="logic_compare" id="9{9T50MDJ$HM$^TeSjHC"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="ymFN6k!$mUH{I[]^)WXF"> <field name="VAR" id="savedControlType">saveControlType_Wohn</field> </block> </value> <value name="B"> <block type="text" id="nO~iNU9+=PqV_#2-PMoB"> <field name="TEXT">MANUAL</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="5UW[3:%gtA@qpa}XIp;L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.2.manualControlTermination.controlType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="CGuIuZbe0L;W-efrQTyF"> <field name="TEXT">MANUAL</field> </block> </value> </block> </statement> <next> <block type="control" id="P=}Ih2kWrH[KV=rVp1?l"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.2.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="AMC_(24cdv5t.hJJI4/F"> <field name="TEXT">On</field> </block> </value> <next> <block type="control" id="vgZo@^8[5^?2/|qu=%p!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tado.0.2142128.Rooms.2.manualControlTermination.controlType</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="e7hFU_Dxsm0W%p*MS.#Y"> <field name="TEXT">NEXT_TIME_BLOCK</field> </block> </value> <next> <block type="control" id="3lpa{uO5UhXWUwwUbtvP"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.2.setting.temperature.value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="NBGeg0CX7(v=/Q%hsXxN"> <field name="VAR" id=";T^ouC3KOKUy,lNNt(2q">SaveT_Wohn</field> </block> </value> <next> <block type="variables_set" id="LRe2HPT*f#Kx+R`4#RT,"> <field name="VAR" id="heatingPaused">heatingPaused_Wohn</field> <value name="VALUE"> <block type="logic_boolean" id="lQg4GB$FZVwe=tnHH/NA"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="],?{oy%uSa!TtMLd#1Fl"> <value name="IF0"> <block type="logic_multi_and" id="R;N^9WD^zmXhYy:V8;ua"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="+PcdVB{k]Ug_i1$48/D%"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="nTUSNL9:-T{V[_g^Lo[u"> <field name="VAR" id="qH^M1WvK8MC3j{Qvx52g">SaveP_Wohn</field> </block> </value> <value name="B"> <block type="text" id="~c.c_eP0B{,Y|uw!zbW?"> <field name="TEXT">Off</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_multi_or" id="uVw%Ek]I+Ax8Xlri!g/K"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="OR0"> <block type="logic_compare" id="=i5%h4LZq05rB%KY%nU;"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="AH|Sf9L!i@{E-;!,=+@t"> <field name="VAR" id="savedControlType">saveControlType_Wohn</field> </block> </value> <value name="B"> <block type="text" id="qASx+)Lzk-~`s}=5eb8F"> <field name="TEXT">MANUAL</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="OwD#egz7z/2ZB5a}U4nr"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="8~:67(QvhsFA)a7Af8;4"> <field name="VAR" id="savedControlType">saveControlType_Wohn</field> </block> </value> <value name="B"> <block type="text" id="XPuJ$ZMc/,g#$q:Yj.^]"> <field name="TEXT">NEXT_TIME_BLOCK</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_t!C9v8*cyJHXB?Zl9vE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.2.manualControlTermination.controlType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="CJ,=9s}19qb6w)PuTr@8"> <field name="TEXT">MANUAL</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="fzl{nKY%g%ftN84o|I{+"> <field name="VAR" id="heatingPaused">heatingPaused_Wohn</field> <value name="VALUE"> <block type="logic_boolean" id="4+{z]E^Vd2f-Xg(`ZS7s"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> <next> <block type="comment" id="g@Z~RtJ[[Hh1f7.!Y81O"> <field name="COMMENT">Schlafzimmer auf</field> <next> <block type="on_ext" id="0vK3`3]d?1@I5v0h*!T="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="E/3J}[{Eo67)d%B*Y%QN"> <field name="oid">shelly.0.SHDW-2#483FDA81FBAB#1.sensor.door</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="7?2wY$[K#?sqbf(M/3})"> <field name="VAR" id="PuIGX^[JD/@{e$trHC:#">windowActiv_Schlaf</field> <value name="VALUE"> <block type="logic_boolean" id="%~IyVnVkx,#UHVy)Y4ry"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="~To{vLbWo-S=Js2zQ8GO"> <field name="VAR" id=";~5Gl{BjDs^I{hAZAih~">SaveP_Schlaf</field> <value name="VALUE"> <block type="get_value" id="4F%QSC#xPxBosG2kVmrG"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.9.setting.power</field> </block> </value> <next> <block type="variables_set" id="9Q?,^L;ZS,H5c(-=_S7#"> <field name="VAR" id="HYHg[}#y|)C+6t(YmCDo">saveControlTyp_Schlaf</field> <value name="VALUE"> <block type="get_value" id=";ptQjZtqm7~:-VwCHA@o"> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.9.manualControlTermination.controlType</field> </block> </value> <next> <block type="controls_if" id="a?g=tnfmz:^Ft8SE{y;?"> <value name="IF0"> <block type="logic_compare" id="xI.UScu:FYyXDVD-z}MO"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="in%0GVOE9wW@.(G~[%?]"> <field name="VAR" id=";~5Gl{BjDs^I{hAZAih~">SaveP_Schlaf</field> </block> </value> <value name="B"> <block type="text" id="5zRa$.JB2ZJ]f#^/P`Rk"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id=";ab$9`0U^^o5$F%S=Z-%"> <field name="VAR" id="9#EOHB=v92wQ~m!K*.@B">SaveT_Schlaf</field> <value name="VALUE"> <block type="get_value" id="uEPf:d4tV*i[}Eb;bDO."> <field name="ATTR">val</field> <field name="OID">tado.0.2142128.Rooms.9.setting.temperature.value</field> </block> </value> <next> <block type="control" id="J]eg#^z+$Mmwgz?Z%Jj!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.9.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="`bQDti:prKCZR@Z2^{}e"> <field name="TEXT">OFF</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="$3s)Dk5XHQn]lul:Bq,["> <field name="COMMENT">Schlafzimmer zu</field> <next> <block type="on_ext" id="u_SK!B]n@J0W_O37YI@v"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">false</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="71!YZ}(cb`N~cstON*~l"> <field name="oid">shelly.0.SHDW-2#483FDA81FBAB#1.sensor.door</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="bge[@%8FJ#tZMUot/yA?"> <value name="IF0"> <block type="variables_get" id="Vp8sDDLks[w|fK18f-v?"> <field name="VAR" id="PuIGX^[JD/@{e$trHC:#">windowActiv_Schlaf</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="k=:E_1[|8%yjO_.:{#Yr"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="tl]SqONGGQ7ieGN[2!sV"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="zut#4lj;lMIKuhg5L*|N"> <field name="VAR" id=";~5Gl{BjDs^I{hAZAih~">SaveP_Schlaf</field> </block> </value> <value name="B"> <block type="text" id="DPKGkGHHt**)JaHZ{1P;"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="DO:64*L.cq{8Mk/=o,pr"> <value name="IF0"> <block type="logic_compare" id="8S#0vMry^,(a?S9=Y|CF"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="_xSlDSBE.w!CA4VDUYAF"> <field name="VAR" id="HYHg[}#y|)C+6t(YmCDo">saveControlTyp_Schlaf</field> </block> </value> <value name="B"> <block type="text" id="Wq7sD1CY$~~v]rXhVKo,"> <field name="TEXT">MANUAL</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="t~z=@d3]kZHUF)U*h[_f"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.9.manualControlTermination.controlType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="is-)|39XCC8fHD^q6`n["> <field name="TEXT">MANUAL</field> </block> </value> </block> </statement> <next> <block type="control" id="q9eUC+vG/ngC,k,LDD1y"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.9.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="N8X$iYr4iKAx1OU{$8V,"> <field name="TEXT">On</field> </block> </value> <next> <block type="control" id="y3!.-jgdwXR4zX0|)gJ7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tado.0.2142128.Rooms.9.manualControlTermination.controlType</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="yO.7WDw7BkD~!w{D,3wf"> <field name="TEXT">NEXT_TIME_BLOCK</field> </block> </value> <next> <block type="control" id="XmiRzZ3,|gfflv`TJ.t^"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.9.setting.temperature.value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="b)Oiy?)^8t{6(@PN;DQE"> <field name="VAR" id="9#EOHB=v92wQ~m!K*.@B">SaveT_Schlaf</field> </block> </value> <next> <block type="variables_set" id="fg#mMjFkkP]uCrmU6,9V"> <field name="VAR" id="PuIGX^[JD/@{e$trHC:#">windowActiv_Schlaf</field> <value name="VALUE"> <block type="logic_boolean" id=",66RSe4k||SJ|!V_E4*k"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="$r_07#PQS*W_+xJ5^N8w"> <value name="IF0"> <block type="logic_multi_and" id="(2z9CY[@p~k-{5wW-B:v"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="{2?xRA@YuhtZyFycGaMO"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="q,}1bdBo@CZzj]X0m]_N"> <field name="VAR" id=";~5Gl{BjDs^I{hAZAih~">SaveP_Schlaf</field> </block> </value> <value name="B"> <block type="text" id="98^l-(;%iXhCRa.qT9m`"> <field name="TEXT">Off</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_multi_or" id="vmpq-_6}(M;{gdI_B[sR"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="OR0"> <block type="logic_compare" id="NN!f_eh)_WtE[*e@es!p"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="03uS[r4:yDP#TvTr*AfQ"> <field name="VAR" id="HYHg[}#y|)C+6t(YmCDo">saveControlTyp_Schlaf</field> </block> </value> <value name="B"> <block type="text" id="SiN2zZ]uZDp9d.~P]20@"> <field name="TEXT">MANUAL</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="a?zbxG_s^69ojjIReNy,"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="udJ~dm@JxYmIEvnf_1|C"> <field name="VAR" id="HYHg[}#y|)C+6t(YmCDo">saveControlTyp_Schlaf</field> </block> </value> <value name="B"> <block type="text" id="B@s|[]o%}h.3NHiZX5VG"> <field name="TEXT">NEXT_TIME_BLOCK</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="D#n-aqp0F|mjt(fo?_DE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.2142128.Rooms.9.manualControlTermination.controlType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="]FbM)^$DuQHAG67+t?v;"> <field name="TEXT">MANUAL</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="xRrxRUO3.XPkgGDpui^N"> <field name="VAR" id="PuIGX^[JD/@{e$trHC:#">windowActiv_Schlaf</field> <value name="VALUE"> <block type="logic_boolean" id=":|Pg%;^I!.%;gApT9!n%"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>@mickemup sagte in Datenpunkte spiegel - wie?:
Wenn dein Skript natürlich nach jeder DP Änderung wieder etwas aktiv schreibt, könnte das schon die Zugriffe erhöhen.
Es wird eigentlich nicht viel geschrieben bei einer DP Änderung?! nur wenn bewusst was gändert wird oder der Trigger angestoßen wird
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
Das ist mal das Fensterskript
blocklys immer als Screenshot!
@arteck sagte in Datenpunkte spiegel - wie?:
ich bin raus hier...das ist mir zu mühsam
that"s life 😉
-
@IceD112 sagte in Datenpunkte spiegel - wie?:
Das ist mal das Fensterskript
blocklys immer als Screenshot!
@arteck sagte in Datenpunkte spiegel - wie?:
ich bin raus hier...das ist mir zu mühsam
that"s life 😉