@apollon77 Hab Dir das gewünschte Logfile gemailt. Bitte entschuldige die Wartezeit
NEWS

Best posts made by DAN78
-
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
-
RE: Überprüfen ob Aktor Steuerbefehl erhalten hat...
@AnamCara Hallo,
auch ich hatte anfangs ähnliche Probleme mit den Rolladenaktoren.
Zwar sind bei mir diejenigen von Homematic (ohne IP) verbaut, aber möglicher Weiße können dir diese Infos weiterhelfen. Eine Lösung mittels Skript wie von dir gewünscht ist weiter unten-
Homematic Funkgeräte wünschen untereinander einen Mindestabstand von 20 cm.
Wusste das beim Kauf nicht und habe diese Aktoren in einer Berker Leiste nebeneinander verbaut, versetzen wollte ich diese Beiden aus ästhetische Gründe nicht.
Das Zeitliche versetzen der Startbefehle für mehreren Rolladen ist sinnvoll, half aber bei der Lösung des Problem nicht wirklich viel. Die Situation verbesserte sich ein wenig. Abhilfe schaffte das ausbauen und um 180 Grad wieder montieren des Aktors. Abdeckplatte passt auch umgedreht und die Internen Tasten des Aktors können in der CCU konfiguriert werden.
Als Zeitversatz habe ich 40 Sekunden gewählt, meine Rolladen brauchen um die 30 Sekunden von Level 0-100. So stelle ich sicher dass jedes Rollo nur einzeln fährt. Funkbefehle gibt es auch während der Fahrt. -
Ablauf der Befehle (so weit ich mitbekommen bin)
Eingabe eines Werts in Objekt "LEVEL"
a) CCU erteilt Befehl an Aktor den eingegebenen Wert anzusteuern
b) CCU erhält während- und beim Abschluss der Aktion Updtates zum Wert von Objekt bzw. Rückmeldungen.
Läuft alles normal blinkt im iobroker der Wert dieses Objekts nach Status-Änderungen kurz auf. Bleiben die Rückmeldungen aus wird der Wert rot dargestellt. In der CCU wirst du die Fehlermeldung "Kommunikationsstörung" finden.
Du kannst diese Tatsache beim erstellen der Skripte berücksichtigen.
Es ist möglich den anerkannt Status eines Objekt abzufragen. Falls es mal ein "nicht anerkannt" geben sollte, Befehl wiederholen. Bei einen zweiten Versuch wird das ganze auch klappen. (Anerkannt bei Trigger: "Update" für aktualisiere Objekt ID bzw. "Befehl" für steuere Objekt ID)
Ob's Störung gab kannst man in der CCU immer noch verfolgen. Dort wird in diesem Fall die Fehlermeldung "Kommunikation WAR gestört" gelistet sein.
Zu HM-IP: Ich hab vier Stück Unterputz Schaltaktoren. Diese reagierten sporadisch nicht mehr. Ein Triggern von "nicht-anerkannt" nutzte bei diesen Geräten nicht weshalb durch unbegrenzte Schaltbefehlen der Duty Cylke stark anstieg. Sicherheitshalber empfehle ich dir in deinen Skripte die anzahl der Versuche zu limitieren.Abhilfe verschaffte letztendlich das versetzen der CCU zentraler in der Wohnung. Fehlermeldungen sind sehr sehr selten geworden.
Testweise habe ich den umgedrehten Rolloaktor wieder gerade gestellt.
CCU mitten in der Wohnung kein Problem; CCU an ursprünglichen Standort Probleme treten wieder auf.
(Aktor ist nahe an einen Anderen Aktor verbaut, jedoch nicht wie bei dir entfernt von CCU) -
-
RE: Überprüfen ob Aktor Steuerbefehl erhalten hat...
@AnamCara Probier mal das Skript. Ich glaube du wolltest das haben
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="fGkS8jJx-UC*s0yHpdv*">var_neue_Behanghoehe</variable> <variable type="" id="Yyk;+Ej*G^q;$$=E8S}l">var_Anzahl_Versuche</variable> <variable type="undefined" id="Intervall_weiterer_Versuch">Intervall_weiterer_Versuch</variable> </variables> <block type="variables_set" id="e8dE+dd:bTXjxgRb9~4?" x="-438" y="37"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> <value name="VALUE"> <block type="math_number" id="dj3~OilSG7CKfWwMQOk@"> <field name="NUM">70</field> </block> </value> <next> <block type="schedule" id="TCe,*CJa}b+Jd_3e(#;G"> <field name="SCHEDULE">49 15 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="L$.KI`y*kgR#nR0BX3JJ"> <value name="IF0"> <block type="logic_compare" id="Q3A1x?oUTFLHLZ}%{|ux"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="X_oyMKvcM,J#8,+-.EqH"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="e6n%9(6~|$SO(B-Z#7NM"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="D|P8C=#ml5QYhj{$EMuR"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="QahG?%RGy:~Q*qb{l,f^"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <next> <block type="debug" id="?z|?eaHf-CB^X)WwSmsq"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="dNW](`0}~]2aq:]KjY1("> <field name="TEXT">1. Versuch</field> </shadow> </value> <next> <block type="variables_set" id="gMbk;?$z_[Af8pEA1Mpy"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> <value name="VALUE"> <block type="math_number" id="R(Hl|}rF20EbED5,:?)f"> <field name="NUM">1</field> </block> </value> <next> <block type="timeouts_setinterval" id="26zz;Qjv:Ae:EPjV)},K"> <field name="NAME">Intervall_weiterer_Versuch</field> <field name="INTERVAL">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="${[B@86#A~$X%^If(XZ{"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> <value name="DELTA"> <shadow type="math_number" id="V,mJT1/f?=TkL*V2!62T"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="TNQkz1~2HtsEWy]7~gGu"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="O2yuL1;z2nk3kkw{+{.^"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="a?hCtQF?1_S(Fqwa*fXa"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Dwq77@qs?FOIPh+]vBn#"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> </block> </value> <value name="B"> <block type="math_number" id="_@,w5,-[?Hi))Vs9:?_i"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="K`|`?6#+WZ:]~378XENY"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="eB35z2Gz-9pKG@|rRX]0"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="|H)xi=7Vc?]F+(}x#fWx"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="LPoX~di|oNj$[!i{rTPT"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="x/4L5EMrB=Z]%g^}Eox~"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <next> <block type="debug" id="-o-^OGwdRTOp2[|+Wro."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=";xPlZCpA^7Asu6v`DK:%"> <field name="TEXT">1. Versuch</field> </shadow> <block type="text_join" id="+Y[_X9ky{vf]4ahC-NuS"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="x8(Q!|R!{:VrD6AK,@D@"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> </block> </value> <value name="ADD1"> <block type="text" id="/(PHvCiQv)2Q7+XN-ImP"> <field name="TEXT">. Versuch</field> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="0o,:CCsd[6[VLU4E8#Uz"> <field name="NAME">Intervall_weiterer_Versuch</field> <next> <block type="debug" id="s/5zpJ!M@jhY*ib5/g]N"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="D|6rcCb|b@ax^xIM#/fU"> <field name="TEXT">Rolladen Buero Joerg verzeichnet eine Störung!</field> </shadow> </value> <next> <block type="debug" id="PFQeInC2-=9KZr$hCYea"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="o,uR+N]%2dAY#0--NRZu"> <field name="TEXT">Intervall/Skript Ende</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="+.-r#/(bd(1;%iji|@OG"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid" id="F}2pd5:IApGH#fdP7Kea"> <field name="oid">hm-rpc.0.PEQ0005311.1.WORKING</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="cI$Iy0K*u5qH)k}4+}5Y"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="EY69Ml6`|vHhmrcu{g:e"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="debug" id="?W;z^Nfw#ojq2W+b@oID"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="h3arA9hGdT|2^mmI|W#N"> <field name="TEXT">Rolladen in Aktion</field> </shadow> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="|nw:k=p~Yn6,8{1`!q9e"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="g(+XF=#sOL_t5bVJ;.?A"> <value name="BOOL"> <block type="on_source" id="i;:o=-y%9gA}A-R9p7qR"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="?n9YB~5~.R2i{pch#0$1"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="|VUq.Z5l`]Gf#V[e;3xv"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="bc.gU,7!}/an!aG1hXFN"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="debug" id="n*~m:g:BfTs0_`]=stW~"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*_Y#R].#=_ek)LQ#(s%="> <field name="TEXT">Rolladen ist auf Behanghoehe.</field> </shadow> </value> <next> <block type="debug" id="M4Zv{r5[qetQXav^BD;5"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="5=|n{7v:BacBXfuYT%(L"> <field name="TEXT">Intervall/Skript Ende</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
Latest posts made by DAN78
-
RE: Trigger stoppen / löschen
@ticaki Vielen Dank. Ich bin zwar dabei mein Skript umzudenken. Mir gefällt das Trigger in Trigger nicht wirklich. Kann aber sein, dass ich es trotzdem brauchen werde.
-
Trigger stoppen / löschen
Hallo zusammen,
bin ein wenig Anfänger und wollte fragen ob man Trigger zu löschen kann.Bei Intervallen gibt es diese Möglichkeit.
let cnt = 0; let Intervall = setInterval(() => { cnt ++ console.log(cnt) if (cnt == 10) (() => { if (Intervall) { clearInterval(Intervall); Intervall = null; }})(); }, 1000);
ich möchte eine bestimmte Anzahl von Werten in einer Liste schreiben, danach den Trigger löschen.
let Offset = '0_userdata.0.52 Heizen.00 Verteiler.10 Temperaturfühler.10 Rücklauf Fußbodenheizung.00 Kalibrierung.100 Wohnraum'; let Refrnz = '0_userdata.0.52 Heizen.00 Verteiler.00 Wärmemengenzähler.11 Temperatur Rücklauf'; let Sensor = 'alias.0.52 Heizen.00 Verteiler.10 Temperaturfühler.10 Rücklauf Fußbodenheizung.10 Messwert.100 Wohnraum' let Liste = [0]; on({ id: Offset, val:true }, () => { Liste = []; on({ id: Sensor, val:true }, () => { Liste.push(getState(Refrnz).val - getState(Sensor).val); if (Liste.length = 5) {/*Da den Trigger löschen*/} }); }); let Abweichung = Liste.reduce(function(x, y) {return x + y;}) / Liste.length;
-
Fehler in meinem Skript
Hallo zusammen,
bisher hab ich meine Programme mit Blockly erstellt. Seit kurzem beschäftige ich mich mit Javascript.
Versuche mittels Anleitungen, Beispiele aus dem Internet das Ganze zu lernen.Das angefügten Skript macht eigentlich genau das was es soll (ohne Fehlermeldungen)
Jedoch gibt es zwei rot Unterstrichene Befehle. Woran die Probleme liegen verstehe ich nicht. Kann mir jemand helfen?Zeile 40: replaceAll
Wenn ich replace verwenden würde gäbe es keine Fehleranzeige. Ich möchte aber sämtliche "_" durch Leerzeichen ersetzten. Zur besseren Lesbarkeit hab ich das replaceAll anstelle replace in einer Schleife verwendet.
Kann ich da bedenkenlos die Fehlermeldung ausblenden?Zeile 70: Die Variable Common im createState
Wenn ich den Code von Zeile 61 bis 81 in einer Funktion packe, scheint dieser in Ordnung zu sein
In Zeile 100 habe ich den selben Befehl erneut , dort scheint dieser in Ordnung zu sein?
Kann / sollte man bei Variablen, so wie bei States die type definieren? Vermutlich braucht es hier Object...const Ist = [ // Objekt ID Common //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ['00 Aktuell.0000 Außen', {'name':'τx- 0000', 'type':'number', 'unit':'°C' }], ['00 Aktuell.0100 Wohnraum', {'name':'τx- 0100', 'type':'number', 'unit':'°C' }], ['00 Aktuell.0101 Wohnraum (Air Quality Monitor)', {'name':'τx- 0101', 'type':'number', 'unit':'°C' }], ['00 Aktuell.0200 Zimmer Klein', {'name':'τx- 0200', 'type':'number', 'unit':'°C' }], ['00 Aktuell.0300 Zimmer Groß', {'name':'τx- 0300', 'type':'number', 'unit':'°C' }], ['00 Aktuell.0301 Zimmer Groß (Air Quality Monitor)', {'name':'τx- 0301', 'type':'number', 'unit':'°C' }], ['00 Aktuell.0400 Badezimmer', {'name':'τx- 0400', 'type':'number', 'unit':'°C' }] ]; const IstMin = [ // Objekt ID Reset täglich (0:00) Reset bei Skriptstart Common //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ['01 Tages Minimum.0000 Außen', true, false, {'name':'τx↓ 0000', 'type':'number', 'unit':'°C' }], ['01 Tages Minimum.0100 Wohnraum', true, false, {'name':'τx↓ 0100', 'type':'number', 'unit':'°C' }], ['01 Tages Minimum.0101 Wohnraum (Air Quality Monitor)', true, false, {'name':'τx↓ 0101', 'type':'number', 'unit':'°C' }], ['01 Tages Minimum.0200 Zimmer Klein', true, false, {'name':'τx↓ 0200', 'type':'number', 'unit':'°C' }], ['01 Tages Minimum.0300 Zimmer Groß', true, false, {'name':'τx↓ 0300', 'type':'number', 'unit':'°C' }], ['01 Tages Minimum.0301 Zimmer Groß (Air Quality Monitor)', true, false, {'name':'τx↓ 0301', 'type':'number', 'unit':'°C' }], ['01 Tages Minimum.0400 Badezimmer', true, false, {'name':'τx↓ 0400', 'type':'number', 'unit':'°C' }] ]; const IstMax = [ // Objekt ID Reset täglich (0:00) Reset bei Skriptstart Common //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ['02 Tages Maximum.0000 Außen', true, false, {'name':'τx↑ 0000', 'type':'number', 'unit':'°C' }], ['02 Tages Maximum.0100 Wohnraum', true, false, {'name':'τx↑ 0100', 'type':'number', 'unit':'°C' }], ['02 Tages Maximum.0101 Wohnraum (Air Quality Monitor)', true, false, {'name':'τx↑ 0101', 'type':'number', 'unit':'°C' }], ['02 Tages Maximum.0200 Zimmer Klein', true, false, {'name':'τx↑ 0200', 'type':'number', 'unit':'°C' }], ['02 Tages Maximum.0300 Zimmer Groß', true, false, {'name':'τx↑ 0300', 'type':'number', 'unit':'°C' }], ['02 Tages Maximum.0301 Zimmer Groß (Air Quality Monitor)', true, false, {'name':'τx↑ 0301', 'type':'number', 'unit':'°C' }], ['02 Tages Maximum.0400 Badezimmer', true, false, {'name':'τx↑ 0400', 'type':'number', 'unit':'°C' }], ]; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Verzeichnis Datenpunkte: // @ts-ignore const Skript = (instance == 0 ? '.' : '.Test.') + scriptName.slice(10).replaceAll('_', ' ') + ('.'); const idAlias = 'alias.0' + Skript; const idState = '0_userdata.0' + Skript; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Berechnung Taupunkt: /** * @param {string} idT * @param {string} idH */ function Taupunkt(idT, idH) { let T = getState(idT).val; let H = getState(idH).val; let DEW = 243.12 * ((((17.62 * T) / (243.12 + T)) + (Math.log(H / 100))) / (((17.62 * 243.12) / (243.12 + T)) - (Math.log(H / 100)))); return Math.round(DEW * 10) / 10; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Skript-Datenpunkte Taupunkt Istwert erzeugen und aktualisieren for (let i = 0; i <= Ist.length - 1; i++) { let ID = idState + Ist[i][0]; let idT = idAlias.slice(0, idAlias.lastIndexOf('03 Taupunkt')) + '01 Temperatur.10 Istwert.00 Aktuell' + ID.slice(ID.lastIndexOf('.')); let idH = idAlias.slice(0, idAlias.lastIndexOf('03 Taupunkt')) + '02 Feuchtigkeit.10 Istwert.00 Aktuell' + ID.slice(ID.lastIndexOf('.')); let Wert = Taupunkt(idT, idH) let Common = Ist[i][1]; // Datenpunkt Taupunkt Istwert erzeugen falls es ihn noch nicht gibt if (!existsState(ID)) { createState(ID, Wert, Common); // Datenpunkt Taupunkt Istwert aktualisieren falls sich der Wert geändert hat } else if (getState(ID).val != Wert) { setState(ID, Wert, true); } // Trigger Temperatur oder Feuchtigkeit haben sich geändert → Datenpunkt Taupunkt Istwert aktualisieren on({ id: [].concat(idT).concat(idH), change: "ne" }, function (obj) { setState(ID, Taupunkt(idT, idH), true) }); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Skript-Datenpunkte Istwert Minimum / Maximum erzeugen und aktualisieren: //Wartezeit bis Skript-Datenpunkte IST-Taupunkt erstellt wurden setTimeout(function () { let resetDayList = [] for (let i = 0; i <= 1; i++) { let ListeID = [IstMin, IstMax][i]; for (let i2 = 0; i2 <= ListeID.length - 1; i2++) { let ID = idState + ListeID[i2][0]; let Wert = idState + '00 Aktuell' + ID.slice(ID.lastIndexOf('.')); let Common = ListeID[i2][3] let resetDay = ListeID[i2][1]; let resetStart = ListeID[i2][2]; // Datenpunkt Min-bzw.Max- Wert erzeugen falls es ihn noch nicht gibt if (!existsState(ID)) { createState(ID, getState(Wert).val, Common); // Min-bzw.Max- Wert resettieren falls 'Reset täglich' angewählt ist, Wert vom vorherigen Tag ist und der aktuelle Istwert vom Min-bzw.Max- Wert abweicht } else if (resetDay && formatDate(getDateObject(getState(ID).ts), "DD.MM.YYYY") != formatDate(new Date(), "DD.MM.YYYY") && getState(Wert).val != getState(ID).val) { setState(ID, getState(Wert).val, true); // Min-bzw.Max- Wert resettieren falls 'Reset bei Skriptstart' angewählt ist und der aktuelle Istwert vom Min-bzw.Max- Wert abweicht } else if (resetStart && getState(Wert).val != getState(ID).val) { setState(ID, getState(Wert).val, true); // Min-Wert aktualisieren falls der aktuelle Istwert geringer ist bzw. Max-Wert aktualisieren falls der aktuelle Istwert höher ist } else if (i == 0 && getState(Wert).val < getState(ID).val || i == 1 && getState(Wert).val > getState(ID).val) { setState(ID, getState(Wert).val, true); } // Trigger Istwert hat sich geändert → Min-Wert aktualisieren falls der aktuelle Istwert geringer ist bzw. Max-Wert aktualisieren falls der aktuelle Istwert höher ist on({ id: Wert, change: 'ne' }, function (obj) { if (i == 0 && getState(obj.id).val < getState(ID).val || i == 1 && getState(obj.id).val > getState(ID).val) { setState(ID, getState(Wert).val, true); } }); // Falls 'Reset täglich' beim betreffenden Min-bzw.Max- Wert angewählt ist, Diesen und dazugehörigen Istwert auflisten. if (resetDay) { resetDayList.push([ID, Wert]); } } } // Trigger 00:00 Uhr → Alle Min-bzw.Max- Werte laut Liste auf dem aktuellen Istwert setzen schedule("0 0 * * *", function () { for (let i = 0; i <= resetDayList.length - 1; i++) { let ID = resetDayList[i][0]; let Wert = getState(resetDayList[i][1]).val; if (getState(ID).val != Wert) { setState(ID, Wert, true); } } }); }, 500);
-
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@apollon77 Hab Dir das gewünschte Logfile gemailt. Bitte entschuldige die Wartezeit
-
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@apollon77 Ja, kann ich gerne machen. Aber heute schaffe ich es zeitlich nicht mehr.
Ich werde, das System wieder vom Alexa2 säubern und nochmal einrichten ohne Änderungen. Soll dabei der language header auf "it-IT" gestellt sein bevor ich das Cookie hole. Proxy 2x die Adresse von meinem iobroker Raspi und eine hohe Portnummer?Für den LOG. Soll ich starten mit nur den Admin und Alexa2 adapter mit das Log übersichtlicher bleibt?
-
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@apollon77 Ja. Bevor ich diesen Thread aufgemacht habe, wurden alle Dinge probiert welche ich hier im Forum und auf GIT finden konnte.
Damit meinte ich das mit den Language header it-IT. Adware war bei den Versuchen immer deaktiviert.
Um den Adapter grün zu bekommen musste ich layla eintragen und die it Domaine. Wenn eines dieser Felder leer bleibt gibt es keine Anmeldung -
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@apollon77 bitte lass dich nicht von diesem Anliegen stressen. Wäre froh, wenn etwas ginge.
Ist es problematisch wenn ich über Skript alle 15 Minuten den #querry für ein einziges Gerät auslöse?
Würde die Push-Verbindung deaktivieren und alle 3 Datenaktualisierungsintervalle deaktivieren.Ich befürchte, dass das Problem daran liegt, dass sich meine Alexa zum Host alexa.amazon.it verbindet, wodurch die Pusch-Funktionalität nicht läuft.
Danke für die Hilfe
-
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@djmarc75 nein. mein Amazon Konto wurde mit einer italienischen Adresse erstellt. Mit einem italienischen Account kann man aber auch in anderen Ländern Shoppen. Nur Alexa ist fest auf Land Italien eingestellt; das ist auch nicht einstellbar.
Sprache der Alexa kann aber Deutsch eingestellt werden -
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@djmarc75 Hallo Marc
das sollte keine geografische Belehrung sein. Wollte erklären dass ich als Deutschsprachiger in Italien ansässig bin.Wenn ich die "alexa.amazon.de" Webseite aufrufe und mich anmelde werde ich automatisch auf der italienischen Seite umgeleitet.
Sobald ich mich dort erneut angemelde befinde ich mich auf https://alexa.amazon.it/spa/index.html#cards (Sprache der Seite ist aber Deutsch).
Beim einkaufen könnte ich die App auf Deutschland-Deutsch umstellen. Bei Alexa Themen geht das nicht.
Auch die Skills muss ich gezwungener Maßen aus italien holen -
RE: Alexa2 Italienisch Auth-Fehler/Push-Verbindung geht nicht
@apollon77
Mit der Italienischen Domain funktioniert der Adapter aber die Push Verbindung nicht
Ohne italinischer Domain funktioniert der Adapter nicht (Fehler 401 "Not Authorized")Bitte entschuldige mich, wenn ich mich schlecht ausgedrückt habe