NEWS
Alexa ein befehl true oder false
-
@mickym
Das macht ja der Flow. Ich schalte true oder false und die steuerung macht daraus on oder off da Alexa mit true oder false nix anfangen kann. ich meine ich brauche doch nur eine wechsel schaltung.
Also zB. wenn ich sage Bad und der Datenpunkt ist false wird er geändert auf true sage ich noch mal Alexa: bad wird der datenpunkt auf false gestellt. -
@aphofis In dem Du einfach den Status am Besten true/false status ausliest (mit einer get-Node) und dann das Gegenteil setzt.
Die Change Node mit der Negation sieht wie folgt aus - als Input darf natürlich nur eine Boolean Variable geholt werden:
Falls Du halt die unselige Option in dem Adapter angehakt hast, dass alles in Strings umgewandelt wird - dann musst halt den Umweg über eine neue Typvariable in der Change Node gehen.
-
@mickym
Serh Cool Vielen dank ich teste das mal ! -
@mickym
Ist nur die Frage, wo binde ich das ein !?[ { "id": "9210c811.e5cf7", "type": "tab", "label": "bad_decke", "disabled": false, "info": "" }, { "id": "f2936f54.4900d", "type": "function", "z": "9210c811.e5cf7", "name": "true", "func": "msg.payload = true;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 950, "y": 220, "wires": [ [ "de05e9b9.b4cd5" ] ] }, { "id": "de05e9b9.b4cd5", "type": "ioBroker out", "z": "9210c811.e5cf7", "name": "bad_decke POWER", "topic": "sonoff.0.bad_decke.POWER", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1220, "y": 240, "wires": [] }, { "id": "44863659.638d7", "type": "function", "z": "9210c811.e5cf7", "name": "false", "func": "msg.payload = false;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 950, "y": 260, "wires": [ [ "de05e9b9.b4cd5" ] ] }, { "id": "9b08d19a.45c8a", "type": "switch", "z": "9210c811.e5cf7", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "on", "vt": "str" }, { "t": "eq", "v": "off", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 710, "y": 240, "wires": [ [ "f2936f54.4900d" ], [ "44863659.638d7" ] ] }, { "id": "f71963ce.72d2", "type": "alexa-local", "z": "9210c811.e5cf7", "devicename": "bad", "inputtrigger": false, "x": 490, "y": 240, "wires": [ [ "9b08d19a.45c8a" ] ] }, { "id": "9295c9be.627c88", "type": "change", "z": "9210c811.e5cf7", "name": "Negation", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "str", "to": "true", "tot": "bool" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "str", "to": "true", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "false", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 320, "y": 240, "wires": [ [ "f71963ce.72d2" ] ] }, { "id": "658584c8.db959c", "type": "ioBroker get", "z": "9210c811.e5cf7", "name": "bad_decke POWER1", "topic": "sonoff.0.bad_decke.POWER1", "attrname": "payload", "payloadType": "value", "x": 140, "y": 240, "wires": [ [ "9295c9be.627c88" ] ] } ]
-
@aphofis sagte in Alexa ein befehl true oder false:
Ist nur die Frage, wo binde ich das ein !?
Anstelle Deinens Switches und den beiden function Nodes true und falls - also nur
aquarium-info die türkise Alexa Node - dann die beiden Nodes, die ich Dir geschickt habe und die iobroker-out Node.
In die get-Node musst Du im Topic natürlich noch den Pfad zu dem Aquarium_Info Node eingeben, um den aktuellen Zustand zu ermitteln.Im Prinzip interessiert Dich nicht WAS Alexa sagt, sondern nur DASS sie was sagt. Dann holst Du Dir die jetzige Einstellung und schaltest das Gegenteil.
-
@mickym
OK also praktisch so !?[ { "id": "9210c811.e5cf7", "type": "tab", "label": "bad_decke", "disabled": false, "info": "" }, { "id": "f71963ce.72d2", "type": "alexa-local", "z": "9210c811.e5cf7", "devicename": "bad", "inputtrigger": false, "x": 510, "y": 240, "wires": [ [ "658584c8.db959c" ] ] }, { "id": "9295c9be.627c88", "type": "change", "z": "9210c811.e5cf7", "name": "Negation", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "str", "to": "true", "tot": "bool" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "str", "to": "true", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "false", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 880, "y": 240, "wires": [ [] ] }, { "id": "658584c8.db959c", "type": "ioBroker get", "z": "9210c811.e5cf7", "name": "bad POWER1", "topic": "sonoff.0.bad_decke.POWER", "attrname": "payload", "payloadType": "value", "x": 700, "y": 240, "wires": [ [ "9295c9be.627c88" ] ] } ]
-
@aphofis Ja und Nein.
Du hast jetzt den Change Node genommen, der in Deinem Datenpunkt Text erwartet und nicht die Negation.
Grundsätzlich musst Du halt noch den iobroker-out Node dahinter hängen. Dann schau halt noch mal ob Dein Datenpunkt sonoff.0.bad_decke.POWER überhaupt true oder falls enthält wenn der ON oder OFF enthält dann musst Du die Change Node natürlich umschreiben.
Hast Du in Deiner Adapterkonfiguration alles in strings umzuwandeln angekreuzt?
-
@mickym
Ne der Datenpunkt enthält true oder false -
@aphofis OK - und ist diese dumme Option in Deiner Adapterkonfig nun angekreuzt oder nicht?
-
@mickym
Ja ist aktiviert
nur ich blicke nicht mehr durch in welcher reihenfolge die elemente sein müssen -
@aphofis Na ich weiß nicht wieiviel Flows Du schon hast - sonst würde ich das Ding in jedem Fall ausmachen. Aber so wie es jetzt ist, kannst Du den Flow nehmen, sowie von Dir gepostet -aber Du musst halt das Ergebnis über eine iobroker-out Node noch in den Datenpunkt schicken, der das Ding dann ein oder ausschaltet.
Wenn Du den Haken jetzt raus machst, dann kann es sein, dass Deine bisherigen Flows nicht mehr funktionieren. Es ist eine Schande, dass man den Haken standardmäßig einschaltet.
In dem Flow wie oben dargestellt ist das ja Aquarium_Info.
-
@mickym
ist es so korrekt ?[ { "id": "9210c811.e5cf7", "type": "tab", "label": "bad_decke", "disabled": false, "info": "" }, { "id": "f71963ce.72d2", "type": "alexa-local", "z": "9210c811.e5cf7", "devicename": "badezimmer", "inputtrigger": false, "x": 530, "y": 240, "wires": [ [ "658584c8.db959c" ] ] }, { "id": "9295c9be.627c88", "type": "change", "z": "9210c811.e5cf7", "name": "Negation", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "str", "to": "true", "tot": "bool" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "str", "to": "true", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "false", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 940, "y": 240, "wires": [ [ "ed7d17b7.c4d448" ] ] }, { "id": "658584c8.db959c", "type": "ioBroker get", "z": "9210c811.e5cf7", "name": "bad POWER1", "topic": "sonoff.0.bad_decke.POWER", "attrname": "payload", "payloadType": "value", "x": 740, "y": 240, "wires": [ [ "9295c9be.627c88" ] ] }, { "id": "ed7d17b7.c4d448", "type": "ioBroker out", "z": "9210c811.e5cf7", "name": "badezimmer", "topic": "Aqua_Control.0.System.badezimmer", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1140, "y": 240, "wires": [] } ]
-
@mickym
Ja ist aktiviert
nur ich blicke nicht mehr durch in welcher reihenfolge die elemente sein müssenWarum - dann scheinst Du den Flow nicht zu verstehen!!!
- Die Alexa Node - schickt eine Nachricht, wenn Du was sagst
- Im Prinzip interessiert Dich nicht, was Alexa sagt - nur dass sie was sagt - also Deinen Flow triggert.
- Du schaust in bad POWER1 für ein Status geschaltet ist (true oder false)
- Du schickst das Gegenteil an die badezimmer node.
Ja - der Flow sollte funktionieren.
-
bad POWER1 ist der Datenpunkt vom sonoff (Tasmota) gerät was die Deckenlampe schaltet und badezimmer ist ein true false datenpunkt der mit einem blockly dann die tatsächliche deckenlampe schaltet! da ich absolut nicht weiss wie man das nur in node red realisiert das direkt die deckenlampe mit node red geschaltet wird wenn man alexa sagt zb badezimmer dann wird halt die deckenlampe ein oder ausgeschaltet
-
@aphofis Wie gesagt es sollte funktionieren. Warum weißt Du nicht, wie man das in node Red realisiert? Du brauchst doch nur schauen, welchen Datenpunkt Dein blockly schaltet und gibst diesen in Deiner iobroker out Node an.
-
@mickym
mit blockly komme ich klar aber in node red überhaupt nicht!!! -
@aphofis Wenn das so ist- dann würde ich einfach die Ausgabe der Alexa Node in einen Datenpunkt schreiben - ohne irgendwas zu verändern - dann kannst Du alles mit blockly implementieren und brauchst Dir über NodeRed keine Gedanken mehr machen.
Damit ist in Deiner Badezimmer Node 1:1 was aus der Alexa Node rauskommt in der badezimmer Node - und kannst alles im Blockly machen.
Dann braucht ihr Euch um Node Red nicht mehr zu kümmern, sondern kannst alles im Blockly weiter bearbeiten. -
@mickym
ich habe sehr viele flows über die ich blockly steuerunen aktiviere deaktiviere oder infos abrufe.
Es wäre natürlich mega diese ausschließlich über node red zu steuern phen blockly
badezimmer decke ist ja auch nur zum testen normal rufe ich per alexa informationen zu meinem aquarium ab was ja direkt per iot pro adapter nicht mehr möglich ist. deswegen die alexa local flows damit ich das weiterhin nutzen kann. der Umweg über datenpunkte bei denen dann blockly triggert ist etwas umständlichMeinst du wenn ich dir eine simple blockly Steuerung schicke ob du die dann usetzen kannst in node red dann kann ich mir alle anderen selbst anpassen.
-
@aphofis Bin zwar nicht superfit im Blockly aber die Grundzüge verstehe ich. Aber warum willst Du Dich denn mit NodeRed beschäftigen, wenn Du damit eh auf Kriegsfuß stehst?????
Wie gesagt Du kannst mir gerne ein Blockly schicken und ich kann versuchen es in NodeRed umzusetzen, aber wenn Du Dich nicht mit diesem Produkt beschäftigen willst, warum willst Du Dir das antun.
Dann machs doch so, wenn Du nur Nodes in NodeRed findest - schreib diese 1:1 in einen Datenpunkt und bearbeite die dann mit blockly logisch weiter.
-
@mickym
Also ich habe einen Datenpunkt Aquarium Info dieser soll per alexa local direkt geschaltet werden
sprich wenn ich sage alexa aquarium info soll der datenpunkt ausgelöst werden womit dann die alexa ausgabe per alexa die infos zu den verschiedenen sensor werten ausgibt<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="19!qw~cv$H6hV#-Y@nPu" x="-1385" y="-1010"> <field name="OID">Aqua_Control.0.System.Aquarium_Info</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="v[+.^:td*@A!`}?;wakK"> <value name="IF0"> <block type="logic_compare" id="z`g479@_CM!8=p)OtA12"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="IQhZZ$BW7dP|fAsFYiD#"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.System.Aquarium_Info</field> </block> </value> <value name="B"> <block type="logic_boolean" id="9y8~Ekl+VO$-[y0hSFDI"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="l{DhYN}_th?*+FgapNAo"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LV0371040175.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="{_.tsQa7HwkxBPQMy8-]"> <mutation items="17"></mutation> <value name="ADD0"> <block type="text" id="M,9{x9+^IAn_gWrYi??P"> <field name="TEXT">Aquarium Werte,,</field> </block> </value> <value name="ADD1"> <block type="text" id="`iUI3`jPx!tg]SS_/7sk"> <field name="TEXT">Wasser,,</field> </block> </value> <value name="ADD2"> <block type="get_value" id="Q+c{_hkajiOaD1|![GiT"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-2_Temperature</field> </block> </value> <value name="ADD3"> <block type="text" id="}W1}R4sJrqKq4[mt*_KE"> <field name="TEXT">Grad Celsius,, Luft,,</field> </block> </value> <value name="ADD4"> <block type="get_value" id="Js4M3=jtCC1;:PkN6JN("> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-02_Temperature</field> </block> </value> <value name="ADD5"> <block type="text" id="Acf=9wQq3Szo5M_on%em"> <field name="TEXT">Grad Celsius,, Luftfeuchtigkeit,,</field> </block> </value> <value name="ADD6"> <block type="get_value" id="=:1-V{KOKB=V@?:ZKzd+"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-02_Humidity</field> </block> </value> <value name="ADD7"> <block type="text" id="B:FfIZ3T*O=,~oV~|ol-"> <field name="TEXT">Prozent,, Technik Werte,,</field> </block> </value> <value name="ADD8"> <block type="text" id="=QX,XOHk%pKfjcPmyhAL"> <field name="TEXT">Wasser,,</field> </block> </value> <value name="ADD9"> <block type="text" id="?*Qa,#!!rctHOHI0`LPg"> <field name="TEXT">,, Luft,,</field> </block> </value> <value name="ADD10"> <block type="get_value" id="-z,%g=cKHbMHzaOb/PfK"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-05_Temperature</field> </block> </value> <value name="ADD11"> <block type="text" id="4PUc4Ickt!*k`ALT%F/Y"> <field name="TEXT">Grad Celsius,,</field> </block> </value> <value name="ADD12"> <block type="text" id="p8U$}Zng|(twcMMY4Tb6"> <field name="TEXT">Luftfeuchtigkeit,,</field> </block> </value> <value name="ADD13"> <block type="get_value" id="FZ58m6Y?9eL@%CT:k;(-"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-05_Humidity</field> </block> </value> <value name="ADD14"> <block type="text" id="$y4{+c.:J:%ss]kLM!.q"> <field name="TEXT">Prozent,, Niveau,,</field> </block> </value> <value name="ADD15"> <block type="math_rndfixed" id=")8P5V0gXZB-*KROQ1laK"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="veSP=XKIlW4$?:8|Z+aH"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="X{|7uA{)Z+L%k8m[%US}"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.SR04_Distance</field> </block> </value> </block> </value> <value name="ADD16"> <block type="text" id="gKB]nBFJ!+YDw^Wt}{%H"> <field name="TEXT">zentimeter,,</field> </block> </value> </block> </value> <next> <block type="update" id="x!,Sqox.=Adkz#ub+J];"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">Aqua_Control.0.System.Aquarium_Info</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="YYL;$Pwng+7U;V(s((QN"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="OrSBDXNC?t$3wyLI=E}c"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Aqua_Control.0.VIS.Meldungen.Info</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="/EIjGTdu|9s}|wGRvnMw"> <mutation items="17"></mutation> <value name="ADD0"> <block type="text" id="m[#-MsUIy@?XoWNt:Wnh"> <field name="TEXT">Aquarium Werte,,</field> </block> </value> <value name="ADD1"> <block type="text" id="N5pKv}Wk%X8X)Qi(;k`e"> <field name="TEXT">Wasser,,</field> </block> </value> <value name="ADD2"> <block type="get_value" id=")Cl{Z4oKW-0ct;U;2L*3"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20_Temperature</field> </block> </value> <value name="ADD3"> <block type="text" id="ZWeJGefUee*N-FV`GO%F"> <field name="TEXT">Grad Celsius,, Luft,,</field> </block> </value> <value name="ADD4"> <block type="get_value" id="CnjQYLO(L2PPyN.S76)H"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-02_Temperature</field> </block> </value> <value name="ADD5"> <block type="text" id="V#hgTPTZ;diLiEdMr1@r"> <field name="TEXT">Grad Celsius,, Luftfeuchtigkeit,,</field> </block> </value> <value name="ADD6"> <block type="get_value" id="yoDk(^P^5}j[VnkXKzOA"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-02_Humidity</field> </block> </value> <value name="ADD7"> <block type="text" id="Y~sj,Qm8;#.]u76DNHIb"> <field name="TEXT">Prozent,, Technik Werte,,</field> </block> </value> <value name="ADD8"> <block type="text" id="UOnb1:[)umEjJ9]7Ze7="> <field name="TEXT">Wasser,,</field> </block> </value> <value name="ADD9"> <block type="text" id="-aVUC@,~a/lhb#wP![Hf"> <field name="TEXT">,, Luft,,</field> </block> </value> <value name="ADD10"> <block type="get_value" id="|G+*pC-jkG~l#ir))Ly)"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-05_Temperature</field> </block> </value> <value name="ADD11"> <block type="text" id="hxHjG:-`K5B8eBmV1`E("> <field name="TEXT">Grad Celsius,,</field> </block> </value> <value name="ADD12"> <block type="text" id="b$$j4+(m8$qTAlM,.({."> <field name="TEXT">Luftfeuchtigkeit,,</field> </block> </value> <value name="ADD13"> <block type="get_value" id="C)}/-{!fE[mV~mxs137X"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DHT11-05_Humidity</field> </block> </value> <value name="ADD14"> <block type="text" id="t8(?*r`~66Y]uSq/(|[N"> <field name="TEXT">Prozent,, Niveau,,</field> </block> </value> <value name="ADD15"> <block type="math_rndfixed" id="U8U$@AG%ZY;ZRfEJempy"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="veSP=XKIlW4$?:8|Z+aH"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="QIe4G%f(W=EB2]L_b(D1"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.SR04_Distance</field> </block> </value> </block> </value> <value name="ADD16"> <block type="text" id="UkHW*DS)=Efk5Fi~AZ,}"> <field name="TEXT">zentimeter,,</field> </block> </value> </block> </value> <next> <block type="debug" id="D_yqFb7p01G?z`)D1lV^"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="r`kSo-A0u)nsQQt?(Kmp"> <field name="TEXT">script ausgeführt</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Das komplette Blockly dann halt nur aufgebaut in Node Red das wäre Mega