NEWS
Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft
-
Hallo an alle,
Habe da ein Problem.
Möchte weg vom scenen Adapter um meine Roborock zu schalten.Ich schalte per alexa einen alexa local Gerät, dies mir ein Datenpunkt auf true setzt.
Das geht soweit.
Jetzt habe ich ein Blockly script erstellt dies mir wenn der Daten punkt true ist ein Zone Clean an meinen Roborock sendet.Dies geht aber nett.
Mein Manueller datenpunkt schaltet aber script löst nicht aus.Wenn ich den Manuellen Daten punkt über Objekte manuell auf true setze löst das script aus.
Verstehe ich nicht.
Wer kann helfen?Anbei Bilder.
Wie gesagt geht alles wenn ich den Manuellen Datenpunkt per Objekte auf true setze.
Per Alexa setze ich true löst script nicht aus.Mein manuell erstellter Datenpunkt (wenn ich per Hand true setze geht es):
Mein Script:
Mein Alexa schalter per Node red:
So sieht das script als Javascript aus:
on({id: 'ManuelleDatenpunkte.0.roborock.Alisa_saugen', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("mihome-vacuum.0.control.fan_power"/*Suction power*/, 77); setStateDelayed("mihome-vacuum.0.control.X_send_command"/*send command*/, 'app_zoned_clean;[[31651,21958,36301,25308,1]]', 1000, false); setStateDelayed("ManuelleDatenpunkte.0.roborock.Alisa_saugen"/*ManuelleDatenpunkte.0.roborock.Alisa_saugen*/, false, 5000, false); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyQWYwJTJGJTVEJTdENiU1RWFVMzc2SzZIUSU3QmI2JTIyJTIweCUzRCUyMi0yMzglMjIlMjB5JTNEJTIyLTE4OCUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0V0cnVlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQwJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyJTNCSVdERkZZJTJGaiUyRiUyRktxJTVCJTdCd00yWXIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VNYW51ZWxsZURhdGVucHVua3RlLjAucm9ib3JvY2suQWxpc2Ffc2F1Z2VuJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJMMiUzQTQlN0JPJTNCLnNRYkc2RjczbjIqSiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFbWlob21lLXZhY3V1bS4wLmNvbnRyb2wuZmFuX3Bvd2VyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1RGQlM0ZhQiU3RDMlMjVkOEQlMjUlMkJSJTdCQW5qJTQwZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTc3JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMmklMjMuTzJCX2FaSCUyM3N+RS5OaCU1RWolNUQlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFbWlob21lLXZhY3V1bS4wLmNvbnRyb2wuWF9zZW5kX2NvbW1hbmQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJYJTJDITclNjB3dk5aOCU2MFJkc3VfclYlMkZpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRWFwcF96b25lZF9jbGVhbiUzQiU1QiU1QjMxNjUxJTJDMjE5NTglMkMzNjMwMSUyQzI1MzA4JTJDMSU1RCU1RCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlMkIlMjNqaU5EekxkQWolN0JfJTJGJTIzMCUyM3lLeCUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VNYW51ZWxsZURhdGVucHVua3RlLjAucm9ib3JvY2suQWxpc2Ffc2F1Z2VuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIybyU1RWdVVCU1RVpBRGchVE9WczhqJTdEdVIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
Wenn ich debug einschalte löst das script aus wenn ich den Datenpunkt mit hand auf true setze.
Über Alexa löst das script auch im debug nicht aus. -
Habe es jetzt hinbekommen.
So funktioniert es:
Und so schicke ich ihn nach Hause
-
@Shepherd
Falls was war? Wenn das so läuft, hsb ich Blocky nicht verstandrn -
das wahr bezieht sich auf die Objekt-ID vom Trigger
-
@v522533
Wäre mir neu, da hier dann Wert stehen sollte, oder ist das tatsächlich so? Mit nur wahr wäre auch unlogisch, da der Falls Block immer auf wahr prüft und nach der Aussage dann überhaupt nichts da stehen könnte. -
@v522533 sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
das wahr bezieht sich auf die Objekt-ID vom Trigger
Das ist korrekt.
ManuelleDatenpunkte.0.roborock.Alisa_saugen = Trigger
Falls wahr = if("ManuelleDatenpunkte.0.roborock.Alisa_saugen").val === wahr)Gruß
Christian -
@Shepherd sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
Habe es jetzt hinbekommen.
So funktioniert es:
Und so schicke ich ihn nach Hause
hab das mal so getestet
und es funktioniert wie es soll sobald der datenpunkt auf true ist wird der debug output ausgeführt und wen false dann nicht.
Wen ich es dann so mache wie bei dir wird die Aktion immer ausgeführt wenn sich der Wert ändert die Abfrage ( falls "wahr" mache debug output ON ) macht so kein sinn da "falls mache" kein datenpunkt zum gegenprüfen hat.wenn man es mit der falls Abfrage machen wolle dann eher so
so wird auch eine Abfrage gemacht -
OK, kann man ohne direkte Verknüpfung zum Objekt über den Triger machen, funktioniert nur nicht mehr, wenn man dann noch "sonst" Abfrage drunter setzt (gerade getestet). Deshalb sollte das in direkten Bezug zum Triger Objekt eben so gemacht werden (und wie geschrieben, ein eine "falls" Bedingung auf "wahr" zu prüfen ist unnötig, da das die Grundfunktion ist):
-
@Jan1 sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
OK, kann man ohne direkte Verknüpfung zum Objekt über den Triger machen, funktioniert nur nicht mehr, wenn man dann noch "sonst" Abfrage drunter setzt (gerade getestet). Deshalb sollte das in direkten Bezug zum Triger Objekt eben so gemacht werden (und wie geschrieben, ein eine "falls" Bedingung auf "wahr" zu prüfen ist unnötig, da das die Grundfunktion ist):
funktioniert nur nicht mehr, wenn man dann noch "sonst" Abfrage drunter setzt
so wie in deinem Beispiel blockly oder in einem von meinen?
-
@Issi
so wie ich es habe funktioniert das immer, so wie in Deinem Beispiel nur wenn auf "wahr" geprüft wird und die "sonst" das "falsch" schalten soll, wird das nix. -
@Jan1 sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
@Issi
so wie ich es habe funktioniert das immer, so wie in Deinem Beispiel nur wenn auf "wahr" geprüft wird und die "sonst" das "falsch" schalten soll, wird das nix.funktionirt auch mit "sonst" oder meinst du eines der anderen
-
@Issi
wenn in der Falls nur "wahr" steht, in dem Beispiel hast ja "Wert" mit drin und hier ist auch "= wahr" unnötig -
@Jan1 sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
@Issi
wenn in der Falls nur "wahr" steht, in dem Beispiel hast ja "Wert" mit drin und hier ist auch "= wahr" unnötigalso meinst du dann dises Beispiel
wen ja da hab ich ja auch oben dran geschrieben das es so kein sinn macht
und ja beim 3ten braucht man auch die prüfung nicht ist ja auch nur als Beispiel mit einer abfrage und nicht einfach nur mit einen "wahr" drin wie bei @Shepherd den da werden die aktionen auch ausgefürt wen es false ist da der block "falls mache" ja nichts zum gegenprüfen hat -
@Issi
Jou, jetzt sind wir auf der selben Spur, wobei mir neu war, das man das auch nur mit "falls wahr", ohne sonstige Angaben machen kann, wenn man "nur" mit wahr arbeiten möchte -
-
Die gegen Prüfung auf den Datenpunkt für wahr brauche ich den wenn ich auf den Trigger Manueller Datenpunkt auslöse?
Weil Script funktioniert so, aber für Verbesserungen bin ich offen.
Was meint ihr zu diesem:
oder so
-
Mit diesen 2 Scripte die ich gepostet habe, geht es nicht.
Warum? -
@Shepherd sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
Die gegen Prüfung auf den Datenpunkt für wahr brauche ich den wenn ich auf den Trigger Manueller Datenpunkt auslöse?
Weil Script funktioniert so, aber für Verbesserungen bin ich offen.
Was meint ihr zu diesem:
oder so
versuche es mal so
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on_ext" id="Gs!?cOTQ|yL#4/Qq0mhd" x="1037" y="87"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=")@N|2B$(S}O0m1x/MmbR"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="d.?wnsC=iXWHvOPvt^k}"> <value name="IF0"> <block type="on_source" id="zT7H]Q5j]/$rTMsyW!1^"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="control" id="`SH!,#35qN-[1[^YA,tU"> <mutation delay_input="false"></mutation> <field name="OID">mihome-vacuum.0.control.fan_power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="/iOTd]?yQY);j$3zK)aV"> <field name="NUM">77</field> </block> </value> <next> <block type="control" id=",x{gGH7:b(b;FUT`*G|K"> <mutation delay_input="true"></mutation> <field name="OID">mihome-vacuum.0.control.X_send_command</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="XQTX_E{A{fi8GeGQQ~oT"> <field name="TEXT">app_zoned_clean;[[31651,21958,36301,25308,1]]</field> </block> </value> <next> <block type="control" id="S-a[QDOrx-*,A.}03;#*"> <mutation delay_input="true"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="2jZHnenMqsIAM}Cz2/|n"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="]an?cudyis.^I8=+)obj"> <field name="COMMENT">Kommentar</field> <next> <block type="on_ext" id="pk[2xk-?p$8H_=|6SW}c"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=";/OQJxu.[J|wCKf$f}a|"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="E),vLFuWr[:Se{Xuj+li"> <value name="IF0"> <block type="on_source" id="YLnap^@Q}(j1CASZCJ^a"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="control" id="_`Qb%I[@4`HP63iR=ZQk"> <mutation delay_input="false"></mutation> <field name="OID">mihome-vacuum.0.control.pause</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="N6yYFE~Ta^cf3LaO!5hs"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="/hN*q+Xa?M`4d0_HOa}3"> <mutation delay_input="true"></mutation> <field name="OID">mihome-vacuum.0.control.home</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="lC=7f?#6qW/2_4GX4?`L"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@Issi
Verstehe nur das Blockly nichtfalls - Wert ?
muss ich nicht angeben dass er es nur bei wahr die steuere Blöcke ausführen soll? -
@Shepherd sagte in Alexa ändert datenpunkt Blockly script löst nicht aus manuell Datenpunkt auslösen script läuft:
@Issi
Verstehe nur das Blockly nichtfalls - Wert ?
muss ich nicht angeben dass er es nur bei wahr die steuere Blöcke ausführen soll?dass falls prüft bereits automatisch auf war es braucht dabei nur ein wert das er prüfen kann
wenn du da nur ein wahr rein machst wird z.B. dein sauger auch angechen wen ein false wert kommt da falls mache kein datenpunkt hat das er auf wahr prüfen kann somit ist alles wahr