NEWS
Neuer Adapter: iobroker.alexa2
-
ich scripte auch mit dem trigger - updatetime im adapter ist 0
hab dich schon verstanden - habe gestern fehler im script gehabt - danach hat er sekundlich getriggert und somit garnichts mehr gemacht - script überprüft? bzw. mal das objet history.#trigger beobachtet
-
was noch sein könnte - evtl hat sich der objectname verändert zw. den versionen - d.h. adapter löschen - version 0.3.8 installieren - adapter installieren - danach skript überprüfen, ob alle object noch richtig sind
-
Ich hab schon alles mal neu eingerichtet. Wie schon gesagt, wenn ich mit den gleichen Einstellungen
zurück auf die Version 0.3.4 gehe dann funktioniert es. Hab auch den Adapter und die Datenpunkte komplett gelöscht und neu installiert.
War auch nur ein Hinweis ob nicht vielleicht doch ein Fehler im Adapter ist.
Mir reicht eigentlich auch die Version 0.3.4.
Trotzdem nochmals vielen Dank für die tolle Arbeit.
-
Alte Version ist keine sinnvolle Option.
Es hat sich glaube zwischen 0.2 und 0.3 der Name von history.#trigger nach History.#trigger geändert.
Weiterhin wird jetzt strenger geprüft was in die datenpunkte reingeschrieben wird. Der Datentype muss stimmen. Da gibts debug im log.
Bitte alexa2 Instanz loglevel auf debug. Dann bitte aus node red heraus ändern und log senden an der Änderung ein bissl.
Bitte log nicht aus admin kopieren sondern von der Platte.
Gesendet vom Handy …
-
Hallo,
Ich habe mal eine Anwessenheit über das Handy mit Sprachausgabe über Alexa und dem neuen Adappter Alex2 gemacht.
on({id: 'ping.0.raspberry.192_168_178_38', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Alexa Lauter
setState("alexa2.0.Echo-Devices.G090LF0965230DAL.Player.volume"/volume/, 70);
// Alexa Handy ist da
setState("alexa2.0.Echo-Devices.G090LF0965230DAL.Commands.speak"/speak/, (String('Hallo, das Handy') + String(getState("ping.0.raspberry.192_168_178_38").val ? 'ist jetzt im WLan Netz' : 'ist nicht mehr im WLan Netz')));
// Alexa wieder Leiser
setStateDelayed("alexa2.0.Echo-Devices.G090LF0965230DAL.Player.volume"/volume/, 30, 10000, false);
});
Sorry war etwas zu schneel mit dem drücken
Gruß Fuenkchen
-
Hallo,
Ich habe mal eine Anwessenheit über das Handy mit Sprachausgabe über Alexa und dem neuen Adappter Alex2 gemacht.
on({id: 'ping.0.raspberry.192_168_178_38', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Alexa Lauter
setState("alexa2.0.Echo-Devices.G090LF0965230DAL.Player.volume"/volume/, 70);
// Alexa Handy ist da
setState("alexa2.0.Echo-Devices.G090LF0965230DAL.Commands.speak"/speak/, (String('Hallo, das Handy') + String(getState("ping.0.raspberry.192_168_178_38").val ? 'ist jetzt im WLan Netz' : 'ist nicht mehr im WLan Netz')));
// Alexa wieder Leiser
setStateDelayed("alexa2.0.Echo-Devices.G090LF0965230DAL.Player.volume"/volume/, 30, 10000, false);
});
Sorry war etwas zu schneel mit dem drücken
Gruß Fuenkchen `
das kingt nach ner coolen idee..
habe überlegt, dass wenn jemand nach hause kommt, und sich dann im wlan netz verbindet, alexa in der diele "guten abend xyz" wiedergibt..
leider habe ich noch keine idee, wie ich das ganze etwas intuitiver umsetzen kann, sodass nicht bei jedem verbindungsabbruch, wenn man schon zu hause ist, alexa wieder anfängt "guten abend xyz" zu sagen….
-
das kingt nach ner coolen idee..
habe überlegt, dass wenn jemand nach hause kommt, und sich dann im wlan netz verbindet, alexa in der diele "guten abend xyz" wiedergibt..
leider habe ich noch keine idee, wie ich das ganze etwas intuitiver umsetzen kann, sodass nicht bei jedem verbindungsabbruch, wenn man schon zu hause ist, alexa wieder anfängt "guten abend xyz" zu sagen…. `
Hab's mit Geofency Anwesenheit (da kann man das Telefon auch mal zu Hause in Flugmodus schalten) gelöst und in Verbindung mit Hue Licht / Bewegungsmelder im Flur. Bei Ankunft im Homebereich passiert erstmal nix, sobald ich die Wohnung betrete plappert Alexa die Begrüßung.
Hab gerade keinen Zugriff, kann aber das Blockly zur Verfügung stellen.
-
Dazu habe ich folgendes noch gemacht per Bluetooth. Oder per geofence was bei mir leidet nicht hin hauen will.
Mfg Maggi
Gesendet von meinem SM-G955F mit Tapatalk
-
das kingt nach ner coolen idee..
habe überlegt, dass wenn jemand nach hause kommt, und sich dann im wlan netz verbindet, alexa in der diele "guten abend xyz" wiedergibt..
leider habe ich noch keine idee, wie ich das ganze etwas intuitiver umsetzen kann, sodass nicht bei jedem verbindungsabbruch, wenn man schon zu hause ist, alexa wieder anfängt "guten abend xyz" zu sagen…. `
Hab's mit Geofency Anwesenheit (da kann man das Telefon auch mal zu Hause in Flugmodus schalten) gelöst und in Verbindung mit Hue Licht / Bewegungsmelder im Flur. Bei Ankunft im Homebereich passiert erstmal nix, sobald ich die Wohnung betrete plappert Alexa die Begrüßung.
Hab gerade keinen Zugriff, kann aber das Blockly zur Verfügung stellen. `
das wäre mega, wenn du das machen könntest
-
Dazu habe ich folgendes noch gemacht per Bluetooth. Oder per geofence was bei mir leidet nicht hin hauen will.
Mfg Maggi
Gesendet von meinem SM-G955F mit Tapatalk `
ich versuche es mal mit geofencing.. was ich noch nicht eingerichtet habe bei mir, notfalls würde ich es über bluetooth testen
thx
-
Hier das Blocklyscript:
Wenn mein Flurlicht (geschaltet via Hue Bewegungsmelder) angeht und ich nach Geofency Abwesenheit wieder anwesend bin begrüßt mich Alexa mit der Temperatur dem CO2 Wert der Netatmo Wetterstation.
Hab das mit der Ansage erfolgt Funktion hier irgendwo im Forum übernommen.
Ich glaube das man das noch etwas umbauen kann, die extra Ansageschleife braucht's eigentlich nicht.
var Meldungstext; /** * Beschreibe diese Funktion … */ function Ansage(Meldungstext) { setStateDelayed("alexa2.0.Echo-Devices.G090LV086765004S.Commands.speak"/*speak*/, Meldungstext, 5000, false); } on({id: "hue.0.Philips_hue.Flur.on"/*Philips_hue.Flur.on*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("hue.0.Philips_hue.Flur.on").val == true && getState("javascript.0.AnsageErfolgt").val == true) { Ansage(['Hallo ! willkommen zu Hause!','Es sind',getState("netatmo.0.zu-Hause.Wetterstation.Temperature.Temperature").val,'Grad in der Wohnung und der Zehohzweiwert beträgt',getState("netatmo.0.zu-Hause.Wetterstation.CO2.CO2").val].join('')); setState("javascript.0.AnsageErfolgt"/*AnsageErfolgt*/, false); } }); createState("AnsageErfolgt", function () { }); on({id: "geofency.0.Handy_[priv_].entry"/*entry*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("geofency.0.Handy_[priv_].entry").val == false) { setState("javascript.0.AnsageErfolgt"/*AnsageErfolgt*/, false); } else if (getState("geofency.0.Handy_[priv_].entry").val == true) { setState("javascript.0.AnsageErfolgt"/*AnsageErfolgt*/, true); } });
-
Hier das Blocklyscript:
Bildschirmfoto 2018-08-01 um 16.47.16.png
Wenn mein Flurlicht (geschaltet via Hue Bewegungsmelder) angeht und ich nach Geofency Abwesenheit wieder anwesend bin begrüßt mich Alexa mit der Temperatur dem CO2 Wert der Netatmo Wetterstation.
Hab das mit der Ansage erfolgt Funktion hier irgendwo im Forum übernommen.
Ich glaube das man das noch etwas umbauen kann, die extra Ansageschleife braucht's eigentlich nicht.
var Meldungstext; /** * Beschreibe diese Funktion … */ function Ansage(Meldungstext) { setStateDelayed("alexa2.0.Echo-Devices.G090LV086765004S.Commands.speak"/*speak*/, Meldungstext, 5000, false); } on({id: "hue.0.Philips_hue.Flur.on"/*Philips_hue.Flur.on*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("hue.0.Philips_hue.Flur.on").val == true && getState("javascript.0.AnsageErfolgt").val == true) { Ansage(['Hallo ! willkommen zu Hause!','Es sind',getState("netatmo.0.zu-Hause.Wetterstation.Temperature.Temperature").val,'Grad in der Wohnung und der Zehohzweiwert beträgt',getState("netatmo.0.zu-Hause.Wetterstation.CO2.CO2").val].join('')); setState("javascript.0.AnsageErfolgt"/*AnsageErfolgt*/, false); } }); createState("AnsageErfolgt", function () { }); on({id: "geofency.0.Handy_[priv_].entry"/*entry*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("geofency.0.Handy_[priv_].entry").val == false) { setState("javascript.0.AnsageErfolgt"/*AnsageErfolgt*/, false); } else if (getState("geofency.0.Handy_[priv_].entry").val == true) { setState("javascript.0.AnsageErfolgt"/*AnsageErfolgt*/, true); } }); ```` `
super danke, ich werde es später mal testen.
gibt es auch die möglichkeit das blocky zu exportieren, damit ich das importieren und nur die werte ersetzen muss?
-
super danke, ich werde es später mal testen.
gibt es auch die möglichkeit das blocky zu exportieren, damit ich das importieren und nur die werte ersetzen muss? `
Klar. Machst einfach ein neues Script und nutzt den kleinen Pfeil nach oben (Blöcke importieren) über dem Script zum importieren des Codes aus meinem Beitrag.
-
super danke, ich werde es später mal testen.
gibt es auch die möglichkeit das blocky zu exportieren, damit ich das importieren und nur die werte ersetzen muss? `
Klar. Machst einfach ein neues Script und nutzt den kleinen Pfeil nach oben (Blöcke importieren) über dem Script zum importieren des Codes aus meinem Beitrag. `
hm..
das einzige, was ich dann angezeigt bekomme ist folgendes:
das ist doch der code für das blockly script, was in deiner grafik weiter oben angezeigt wird, oder?
oder ist das ein java script?
-
Nö . Das ist Java
-
-
Ja, da hast du Recht.
Das scheint tatsächlich nur der Teil mit der Textmeldung zu sein. Der ganze Rest fehlt :?:
Edit: Quatsch. Ist alles da.
Du kannst Blockly als Java exportieren. Dann kommt sowas dabei raus.
-
Ja, da hast du Recht.
Das scheint tatsächlich nur der Teil mit der Textmeldung zu sein. Der ganze Rest fehlt :?:
Edit: Quatsch. Ist alles da.
Du kannst Blockly als Java exportieren. Dann kommt sowas dabei raus. `
ok.. verstanden.. und wie bekomme ich das ganze rückwärts wieder als blockly angezeigt?
-
Das geht leider nicht.
Dazu fehlen in dem Script die Bildinformationen.
Allerdings kann ich dir einen kleinen Trick verraten:
lege ein leeres Blockly script an und wähle dort einfach einen Befehl "steure XXXX mit XX".
in dem Befehl wählst du jetzt deinen Sensor aus und schaltest rechts oben auf "zeige Code".
Jetzt siehst du den Befehl in Javascript und kannst dir die genaue Sensorbezeichnung per Copy und Paste direkt in das andere Script kopieren. Immer die genauen Passagen vergleichen und passend ausschneiden.
-
Hier das Script nochmal als Export. Sollte nun iimportierbar sein…
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id="RUoTzvo?H17}CcoV|M]y" x="-262" y="-137"><field name="NAME">AnsageErfolgt</field> <next><block type="on" id="|[-@.==-%lkD3p#NA/|D"><field name="OID">hue.0.Philips_hue.Flur.on</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="controls_if" id="@218=IkE/qsKmRu{pA[)"><value name="IF0"><block type="logic_operation" id="h;:?sO;C*QR++sFvwlmj"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="bEb2TgS_Vzfgrm4@YL,K"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="K.gTsCV12F:_5Ncs6-+#"><field name="ATTR">val</field> <field name="OID">hue.0.Philips_hue.Flur.on</field></block></value> <value name="B"><block type="logic_boolean" id="M2k`x?^@ELd;?/_Yx!O?"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="G{)dWgjJ#+._~Hgk8mSQ"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="7=/x-BQ.v3Xa7@cb#N72"><field name="ATTR">val</field> <field name="OID">javascript.0.AnsageErfolgt</field></block></value> <value name="B"><block type="logic_boolean" id=".k]H{IFel`:;,S)b)d%z"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="?WB3cxnc1VW;,;wpT7.m"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LV036445004S.Commands.speak</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="text_join" id="(6p7BX#~~2P}xj7Wn1@;"><mutation items="5"></mutation> <value name="ADD0"><block type="text" id="M76-)zYehBG]!LdyeY5q"><field name="TEXT">Hallo! willkommen zu Hause!</field></block></value> <value name="ADD1"><block type="text" id="E|w.AEkyy_)gieFW[B1@"><field name="TEXT">Es sind</field></block></value> <value name="ADD2"><block type="get_value" id="+23FeR%/`)Vy3Ni[(7za"><field name="ATTR">val</field> <field name="OID">netatmo.0.zu-Hause.Wetterstation.Temperature.Temperature</field></block></value> <value name="ADD3"><block type="text" id="7-:u)+Rn,a.REn{7XAl."><field name="TEXT">Grad in der Wohnung und der Zehohzweiwert beträgt</field></block></value> <value name="ADD4"><block type="get_value" id="ss#R)QpEW`@hPOuqB`[%"><field name="ATTR">val</field> <field name="OID">netatmo.0.zu-Hause.Wetterstation.CO2.CO2</field></block></value></block></value> <next><block type="control" id=":+sw;3]O*:2=m;}oY-`%"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AnsageErfolgt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="V:ezxxg{L.az[68LgO]E"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement> <next><block type="on" id="5%2sw2vN~IUt?:~nLn56"><field name="OID">geofency.0.Handy_[priv_].entry</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="controls_if" id="2.o(9=pF;72dQLlZd{Z}"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="n-3QfDqel51,DR:78:lE"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="[@ZAwx3Q~-5cnVrQn2e}"><field name="ATTR">val</field> <field name="OID">geofency.0.Handy_[priv_].entry</field></block></value> <value name="B"><block type="logic_boolean" id="/LqU`_{.-!+4G?=ARrER"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO0"><block type="control" id="+Kxc%`:x3XPxhj30^E:e"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AnsageErfolgt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Klxp/+JSwFl*I#}Muk^Q"><field name="BOOL">FALSE</field></block></value></block></statement> <value name="IF1"><block type="logic_compare" id="C!EKDYHnHg)X@@cAeOT{"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="pd4|+~n%5WOdi_QxvPsU"><field name="ATTR">val</field> <field name="OID">geofency.0.Handy_[priv_].entry</field></block></value> <value name="B"><block type="logic_boolean" id="ZZkwi~iV+!bc0KV]7A)i"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO1"><block type="control" id="EoUSPk1}^Oly6`[a[k^%"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AnsageErfolgt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="]PIxRNdgc/#6E`|nuw^B"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></xml>