NEWS
Temperatur mit Alexa abfragen
-
@deta ich hänge dir mal als Beispiel einen Teil der RAW Angaben meines HomeMatic Aussentemperatursensors an.
Im wesentlichen werden folgende Angaben benötigt:
type = number
unit = °C
role = value.temperature
read = trueMeine SmartName Einstellung lautet "Außenbereich" und ist vom SmartType "THEMOSTAT"
Somit erfolgt meine Abfrage als: "Alexa, wie ist die Temperatur im Außenbereich?"{ "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1550316198254, "common": { "name": "Temperatur-Außen.TEMPERATURE", "type": "number", "unit": "°C", "role": "value.temperature", "def": 0, "min": -40, "max": 80, "read": true, "write": false, "smartName": { "de": "Außenbereich", "smartType": "THERMOSTAT" },
-
Ich verstege es nicht, warum es nicht funktioniert.
Ich habe einen Datenpunkt erzeugt, wie hier beschrieben.
Dann habe ich ein Blockly Script wie hier eingebunden erstellt.<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="72I2IFRvo7M]b!+g`fp+">Ausgabetext</variable> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="on_ext" id="Ac;^b|`@QSn~WL%:8Hxc" x="-588" y="-563"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="hD}F{s%j}T;e:l|Y_t5O"> <field name="oid">Eigene_Datenpunkte.Alexa_Sprachsteuerung.Aquarium_Temperatur</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"> <field name="VAR" id="72I2IFRvo7M]b!+g`fp+" variabletype="">Ausgabetext</field> <value name="VALUE"> <block type="text_join" id="4?k[0reCRn.mjkxHg41~"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_join" id="ZmQmi(8rSQwnTHmbtjXY"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="75Z)Wn`YF@;38~bIM;pA"> <field name="TEXT">Die Aquarium Wassertemperatur ist,</field> </block> </value> <value name="ADD1"> <block type="get_value" id="Wbs}M!Y#v^O/FCR=ZHbS"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="gj9|0C4CJF7J/jO@)Qa0"> <field name="TEXT">Grad,</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"> <field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="comment" id="s30b2{fSQ:a0uC3`+QWU"> <field name="COMMENT">Aquarium</field> <next> <block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"> <value name="IF0"> <block type="logic_compare" id="MKwJn0C!O]xc!~.9|B`*"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> <value name="B"> <block type="text" id="?}A;8(IyMF%F@(t]Kc~+"> <field name="TEXT">Aquarium</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id=")M^jLcZ!hCpj,X={-`nV"> <mutation 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="variables_get" id="p)bNOdcZFVoq1e^M5V-."> <field name="VAR" id="72I2IFRvo7M]b!+g`fp+" variabletype="">Ausgabetext</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="debug" id="rXH);cF5o{s@[/$5}*l7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="}QU.58yyq1?uvTO[7RV;"> <field name="TEXT">Script wurde ausgelöst</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
Dann im Cloud Adapter den Datenpukt als switch verknüpft.
In Alexa eine Routine erstellt mit Echo, wie ist meine Aquarium Temperatur.
Doch wenn ich Echo frege, passiert nichts außer das der Datenpunkt auf true wechselt aber dann auch auf true stehen bleibt. Alexa macht nur beding und mehr nicht.
Wenn ich in speak in meinem Echo in Objekte einen Text eingebe sagt Alexa bzw Echo dann auch den vorgegebenen
Text.
Wo liegt das Problem!? -
@Aphofis ich wiederum verstehe nicht weshalb Du versuchst das ganze über ein Script zu lösen, wenn Du nur den Datenpunkt mit der Temperatur auslesen und ansagen müsstest.
Aber dafür muss der Datenpunkt dann auch als value.temperatur, number, und mit der Einheit "°C´" eingerichtet sein.Dein Datenpunkt "Aquarium Temperatur" ist hingegen eine "Schalter" (switch) und den kann man nun einmal nur schalten.
Im übrigen solltest Du nicht den Cloud-Adapter verwenden, für deine Aufgabenstellung ist der IoT-Adapter gedacht.
Der Cloud-Adapter wird zukünftig im wesentlichen für Fernzugriffe auf ioBroker verwendet werden (Zugriff über die Cloud) -
@BBTown
Das habe ich auch schon versucht! Das hat auch nicht funktioniert!
Ich habe schon alles mögliche probiert über cloud oder iot adapter und beide Iobroker Adpater sind eingerichtet und verknüpft.
Wenn im cloud adapter ein smart Gerät eingerichtet wird ist er auch im iot zusehen und auch anders herum. -
@Aphofis ändere als erstes mal den Datenpunkt mit der Temeperaturangabe entsprechend ab und zeige den RAW anschließend hier, so wie ich es etwas weiter untern gemacht habe.
-
RAM habe ich dann so geändert!
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1560685577673, "common": { "name": "Aqua-Controller.Aquarium.TEMPERATURE", "type": "number", "unit": "°C", "role": "value.temperature", "def": 0, "min": -40, "max": 80, "read": true, "write": true, "smartName": { "de": "Aquarium", "smartType": "THERMOSTAT" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "_id": "Eigene_Datenpunkte.Alexa_Sprachsteuerung.Aquarium_Temperatur_", "type": null }
-
@Aphofis Dann müßte Alexa nunmehr den Datenpunkt "Aquarium" finden und im IoT Adapter sollte dieser auch auftauchen?!
Welchen Skill hast Du in Alexa aktiviert?
ioBroker-IoT oder ioBroker-Cloud?Welcher Wert steht derzeit im Datenpunkt "Aqua-Controller.Aquarium.TEMPERATURE" ?
Was Antwortet Alexa bei der Frage: "Alexa, wie ist die Temperatur im Aquarium"PS
Die min. -40 und max 80 scheinen für ein Aquarium recht ungewöhnlch zu sein -
Im Datenpunkt Wert steht nichts.
Verknüpft sind beide ! cloud sowie iotNaja ich kann auch +10 und +35 nehmen aber da hast du wohl recht!
Nur wenn wir draußen 80 Grad haben sollten dann denke ich ist auch unsere Welt schon dem UNtergang geweiht!
Routine ist, Sprach befehl: Alexa wie ist meine Aquarium Temperatur.
Dazu soll sie dann das Gerät Datenpunkt Aqua-Controller.Aquarium.TEMPERATURE auf true steuern ich hatte jetzt noch nicht den alten datenpunkt gelöscht und neu gesucht. -
komischerweise, ist jetzt der Datenpunkt in iot und cloud verschwunden wenn ich ein smart Gerät erstellen will.
In Iobroker Objekte ist der Datenpunkt noch vorhanden.Mein RAW:
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1560685577673, "common": { "name": "Aqua-Controller.Aquarium.TEMPERATURE", "type": "number", "unit": "°C", "role": "value.temperature", "def": 0, "min": 10, "max": 35, "read": true, "write": true, "smartName": { "de": "Aquarium", "smartType": "THERMOSTAT" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "_id": "Eigene_Datenpunkte.Alexa_Sprachsteuerung.Aquarium_Temperatur_", "type": "number" }
-
@Aphofis sagte in Temperatur mit Alexa abfragen:
Im Datenpunkt Wert steht nichts.
Dann kann Alexa auch keine Temperatur ansagen.
@Aphofis sagte in Temperatur mit Alexa abfragen:
Dazu soll sie dann das Gerät Datenpunkt Aqua-Controller.Aquarium.TEMPERATURE auf true steuern ich hatte jetzt noch nicht den alten datenpunkt gelöscht und neu gesucht.
Nein, der Datenpunkt soll nicht auf TRUE gesteuert werden.
In diesen Datenpunkt gehört die aktuell gemessene Temperatur rein.
Wo sonst steht denn die aktuelle Temperatur, die angesagt werden soll? -
Ne das mir auch klar hab den Type in RAW schon geändert! Da type eine nummern ausgabe ist
Die Temp kommt von einem DS18B20-1_Tepmerature über ESP8266 mit Tasmota Sonoff. -
Ich verstehe noch nicht ganz wie der Wert da rein kommt,
wenn nicht über das Blockly, da in der RAW ja nix steht das die Temp aus dem Sonoff gelesen werden soll. -
@Aphofis ja und weshalb fragst Du dann nicht genau den Datenpunkt ab, wenn der Wert da schon vorhanden ist?
Was soll denn das ganze drumherumgebastel? -
@BBTown
Weil ich das direkte einbinden dieses Datenpunktes schon versucht hatte, doch Alexa erzählt mir nicht welche Temperatur das eingerichtete Smart Gerät hat. -
@Aphofis dann zeige doch mal den RAW dieses Datenpunktes
-
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1560685577673, "common": { "name": "Aqua-Controller.Aquarium.TEMPERATURE", "type": "number", "unit": "°C", "role": "value.temperature", "def": 0, "min": 10, "max": 35, "read": true, "write": true, "smartName": { "de": "Aquarium", "smartType": "THERMOSTAT" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "_id": "Eigene_Datenpunkte.Alexa_Sprachsteuerung.Aquarium_Temperatur_", "type": "number" }
Das ist die momentane RAW
und der Datenpunkt vom Temp Sensor sieht so aus.{ "_id": "sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature", "common": { "type": "number", "role": "value.temperature", "read": true, "write": false, "unit": "°C", "name": "Aqua_Sensoren_Aquarium", "smartName": { "de": "Aquarium Temperatur", "smartType": "THERMOSTAT" } }, "native": {}, "type": "state", "from": "system.adapter.sonoff.0", "user": "system.user.admin", "ts": 1560631090272, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@Aphofis benenne den Smartnamen "Aquarium mal in etwas völlig anderes um
dann benennst Du den Temp-Sensor auf "Aquarium" umIm Bereich "native" steht als "type": "state", ändere diesen mal auf "FLOAT" (so stehe es bei mir) oder "number"
-
@BBTown
Habe ich geändert!
nur wenn ich den wert im Sonoff Sensor von State auf number oder float ändere ist in der übersicht die Temperatur verschwunden. Setzte ich es zurück auf State ist die Temperatur wieder da.
Alles weitere teste ich Morgen. -
@apocalypse said in Temperatur mit Alexa abfragen:
Hallo zusammen, ich wollte euch auch mal meine Umsetzung zeigen.
Ich habe vor einer Woche etwa angefangen den ioBroker zu installieren, in Verbindung mit Alexa und ich komme sehr gut mit Node Red zurecht.
Darin habe ich auch das Zusammenspiel von Alexa und dem Auslesen der aktuellen Temperatur umgesetzt:
Das Ganze habe ich dann als Routine in der Alexa App erstellt:
VG
Dennis
Danke - mit dem iobroker input sogar noch ohne das lesen/respone möglich.
Sehr simple Geschichte - super! -
Kannst du den Flow hochladen?