Weiter zum Inhalt

Skripten / Logik

16.7k Themen 216.0k Beiträge

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    matze55M
    ich habe ein Icecast2 server installiert. Ich möchte ja möchte gerne aber ob es es geht weis ich nicht ton vom enigma2 api abgreifen......geht das?.......seit 3 tagen sitze ich daran..ich habe auch schon scripte aber das klapt nich einer ne idee?
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    Murphy 0M
    Nachdem mein Blockly zum Steuern meines Hyper 2000 seit Monaten perfekt läuft habe ich mich mal dem Problem mit meinem Elektroherd angenommen. Wen der Herd eingeschaltet ist und die Vorwärmphase beendet ist fängt er an zu pulsen. Das heist er schaltet alle ca. 30 Sekunden die Last ab und dann wieder nach ca, 30 Skunden die Last aus. Das ist für meinen Hyper suboptimal da der dann wenn die Sonne scheint dauernd zwischen Laden und Einspeisen hin und her schaltet. Auch Abends ohne Sonne schaltet er ständig das Einspeisen ein und aus. Dafür habe ich jetzt mal ein JS erstellt. Wärend dem Pulsen des Herdes hört der Hyper auf zu Laden oder Einzuspeißen. /************************************************************ Elektroherd - Pulserkennung über Hausverbrauch ioBroker JavaScript ************************************************************/ // ============================================================ // EINSTELLUNGEN // ============================================================ const HERD_LEISTUNG_W = 2000; const SCHWELLWERT_W = 1000; // Zeit nach dem letzten Puls bis zum Ende des Pulsens const ZEIT_NACHLAUF_SEKUNDEN = 15; // Anzahl notwendiger Wechsel const MIN_PULSE_WECHSEL = 4; // Zeit ohne Wechsel -> vollständiger Reset const ZEIT_OHNE_WECHSEL_SEKUNDEN = 60; // ============================================================ // OBJEKTE // ============================================================ const HAUSVERBRAUCH = '0_userdata.0.Hausverbrauch'; const AKKU = '0_userdata.0.Laden_Schalter'; const EINSPEISEN = '0_userdata.0.Einspeisen_Schalter'; // ============================================================ // VARIABLEN // ============================================================ let letzterStatus = 'start'; let pulseWechsel = 0; // Pulserkennung aktuell aktiv? let herdPulst = false; // Timer für das Ende des Pulsens let nachlaufTimer = null; // Timer für 60-Sekunden-Reset let wechselResetTimer = null; // Ursprüngliche Schalterzustände let urspruenglicherAkkuZustand = null; let urspruenglicherEinspeisenZustand = null; // ============================================================ // AUSGANGSSTELLUNG WIEDERHERSTELLEN // ============================================================ function ausgangsstellungWiederherstellen() { // Nur wenn vorher tatsächlich ein Pulsbetrieb // aktiviert wurde if (!herdPulst) { return; } // -------------------------------------------------------- // AKKU // -------------------------------------------------------- if (urspruenglicherAkkuZustand !== null) { setState( AKKU, urspruenglicherAkkuZustand ); } // -------------------------------------------------------- // EINSPEISEN // -------------------------------------------------------- if (urspruenglicherEinspeisenZustand !== null) { setState( EINSPEISEN, urspruenglicherEinspeisenZustand ); } log( 'Ausgangsstellung wiederhergestellt: ' + 'Laden=' + urspruenglicherAkkuZustand + ', Einspeisen=' + urspruenglicherEinspeisenZustand, 'warn' ); // Pulserkennung AUS herdPulst = false; // Gespeicherte Zustände löschen urspruenglicherAkkuZustand = null; urspruenglicherEinspeisenZustand = null; } // ============================================================ // VOLLSTÄNDIGER RESET // ============================================================ function vollstaendigerReset() { log( '60 Sekunden kein neuer Wechsel -> ' + 'vollständiger Reset', 'warn' ); // -------------------------------------------------------- // TIMER LÖSCHEN // -------------------------------------------------------- if (nachlaufTimer !== null) { clearTimeout(nachlaufTimer); nachlaufTimer = null; } // -------------------------------------------------------- // AUSGANGSSTELLUNG WIEDERHERSTELLEN // -------------------------------------------------------- if (herdPulst) { ausgangsstellungWiederherstellen(); } // -------------------------------------------------------- // PULSZÄHLER ZURÜCKSETZEN // -------------------------------------------------------- pulseWechsel = 0; // -------------------------------------------------------- // STATUS ZURÜCKSETZEN // -------------------------------------------------------- letzterStatus = 'start'; log( 'Pulserkennung AUS / Wechselzähler = 0', 'warn' ); } // ============================================================ // PULSEN STARTEN // ============================================================ function pulsenStarten() { if (herdPulst) { return; } // -------------------------------------------------------- // AUSGANGSSTELLUNG SPEICHERN // -------------------------------------------------------- urspruenglicherAkkuZustand = getState(AKKU).val; urspruenglicherEinspeisenZustand = getState(EINSPEISEN).val; log( 'Pulsen erkannt -> Ausgangsstellung gespeichert: ' + 'Laden=' + urspruenglicherAkkuZustand + ', Einspeisen=' + urspruenglicherEinspeisenZustand, 'warn' ); // -------------------------------------------------------- // PULSERKENNUNG EIN // -------------------------------------------------------- herdPulst = true; // Während des Pulsens beide AUS setState(AKKU, false); setState(EINSPEISEN, false); log( 'HERD PULST -> Laden_Schalter AUS / Einspeisen AUS', 'warn' ); } // ============================================================ // PULSEN NORMAL BEENDEN // ============================================================ function pulsenBeenden() { if (!herdPulst) { return; } log( 'Herdpulsen beendet', 'warn' ); // Ausgangsstellung wiederherstellen ausgangsstellungWiederherstellen(); // Zähler zurücksetzen pulseWechsel = 0; letzterStatus = 'start'; // Reset-Timer löschen if (wechselResetTimer !== null) { clearTimeout(wechselResetTimer); wechselResetTimer = null; } } // ============================================================ // 60-SEKUNDEN-RESET-TIMER // ============================================================ function wechselResetTimerStarten() { // Alten Timer löschen if (wechselResetTimer !== null) { clearTimeout(wechselResetTimer); } // Neuen Timer starten wechselResetTimer = setTimeout(function () { wechselResetTimer = null; // Nur wenn tatsächlich Wechsel gezählt wurden if (pulseWechsel > 0) { vollstaendigerReset(); } }, ZEIT_OHNE_WECHSEL_SEKUNDEN * 1000); } // ============================================================ // NACHLAUF-TIMER // ============================================================ function nachlaufTimerStarten() { if (nachlaufTimer !== null) { clearTimeout(nachlaufTimer); } nachlaufTimer = setTimeout(function () { nachlaufTimer = null; const aktuell = Number( getState(HAUSVERBRAUCH).val ); if (aktuell <= SCHWELLWERT_W) { pulsenBeenden(); } }, ZEIT_NACHLAUF_SEKUNDEN * 1000); } // ============================================================ // HAUSVERBRAUCH ÜBERWACHEN // ============================================================ on( { id: HAUSVERBRAUCH, change: 'ne' }, function (obj) { const leistung = Number(obj.state.val); if (isNaN(leistung)) { log( 'Ungültiger Hausverbrauch: ' + obj.state.val, 'warn' ); return; } // ==================================================== // HOHER VERBRAUCH // ==================================================== if (leistung >= HERD_LEISTUNG_W) { // Wechsel NIEDRIG -> HOCH if (letzterStatus === 'niedrig') { pulseWechsel++; log( 'Puls HOCH: ' + leistung.toFixed(0) + ' W | Wechsel=' + pulseWechsel, 'warn' ); // 60-Sekunden-Timer neu starten wechselResetTimerStarten(); } letzterStatus = 'hoch'; // Nachlauf abbrechen if (nachlaufTimer !== null) { clearTimeout(nachlaufTimer); nachlaufTimer = null; } // ================================================= // 4 WECHSEL ERREICHT // ================================================= if ( pulseWechsel >= MIN_PULSE_WECHSEL && !herdPulst ) { pulsenStarten(); } return; } // ==================================================== // NIEDRIGER VERBRAUCH // ==================================================== if (leistung <= SCHWELLWERT_W) { // Wechsel HOCH -> NIEDRIG if (letzterStatus === 'hoch') { pulseWechsel++; log( 'Puls NIEDRIG: ' + leistung.toFixed(0) + ' W | Wechsel=' + pulseWechsel, 'warn' ); // 60-Sekunden-Timer neu starten wechselResetTimerStarten(); } letzterStatus = 'niedrig'; // Wenn Herd bereits pulst, // Nachlauf starten if (herdPulst) { nachlaufTimerStarten(); } return; } } ); // ============================================================ // STARTMELDUNG // ============================================================ log( '============================================', 'warn' ); log( 'Elektroherd-Pulserkennung gestartet', 'warn' ); log( 'Herdleistung: ' + HERD_LEISTUNG_W + ' W', 'warn' ); log( 'Schwellwert: ' + SCHWELLWERT_W + ' W', 'warn' ); log( 'Nachlauf: ' + ZEIT_NACHLAUF_SEKUNDEN + ' Sekunden', 'warn' ); log( 'Benötigte Wechsel: ' + MIN_PULSE_WECHSEL, 'warn' ); log( 'Reset nach ' + ZEIT_OHNE_WECHSEL_SEKUNDEN + ' Sekunden ohne Wechsel', 'warn' ); log( '============================================', 'warn' );
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO ich versuche morgen noch etwas mehr raus zu holen. Eben es verwirrt mich das es manchmal durchläuft und dann plötzlich nicht mehr. Für mich als Laie sieht es irgendwie so aus, wie wenn das BMS irgendwie auf was warten würde und daher nicht mehr.
  • Fronius Symo Hybrid über Javaskript auslesen (Json)

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    8k Aufrufe
    ldittmarL
    Hallo, ich bin gerade dabei den Adapter für den Fronius Wechselrichter zu machen und hätte z.Z. eine Frage: kann mir jemand sagen was "EnergyReal_WAC_Minus_Relative" sein soll? Und am Besten mit Einheit :-) Danke!! Grüße, ldittmar
  • [gelöst] Blockly mit Zeitauslösung klappt nicht

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    Hey Stefan, danke dir. da hätte ich auch selbst drauf kommen können. Aber manchmal sitzt man davor und sieht den Wald vor lauter Bäumen nicht… Vielen Dank Gruß Sven
  • Gruppen lassen sich nicht richtig löschen

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    Z
    Danke Euch beiden. Nach dem löschen muss wirklich der Aktualisieren Button gedrückt werden, dann sind die Einträge endgültig verschwunden
  • 2-Punkt-Regler (Heizung)

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    3k Aufrufe
    M
    Hallo, vielen Dank für deinen Hinweis, jetzt funktioniert es! Gruß Matthias
  • Console gibt keine Ausgabe aus

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    5k Aufrufe
    S
    Vielen Dank für Eure hilfreichen Antworten.
  • [gelöst] Sript zu Zeiten ausführen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    P
    Hallo @ all, ich bin jetzt erst dazu gekommen mich wieder damit zu beschäftigen. Leider bin ich gar kein guter Scripter. Ich brauch immer eine kleine Vorlage. @ Pix dein Script hat geklappt. Ich musste lediglich die Cron Notation anpassen. Die von dir lief nicht richtig. Danke nochmal auch an die anderen. LG
  • Zeitsteuerung will nicht

    Verschoben
    11
    1
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    T
    Danke, das sieht gut aus :-)
  • Hilfe: Via Javascript URL abesenden

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    M
    Hallo Leute, ich eure Hilfe, ich bin ein absoluter Neuling was das programmieren mit JavaSrcipt angeht. Und zwar möchtige ich eine Variable anlegen, die ich durch den Cloud-Adapter mit true und false beschreiben kann, um dann jeweils einen Befehl per URL an mein Mediola-Gateway zu schicken das wiederum meine Geräte per IR ansteuert. Die URL ist mir bekannt. Hintergrund: Ich möchte diverse IR-Geräte per Alexa steuern Ich habe keinen Plan wie ich das anstellen kann und hoffe ihr könnt mir helfen. Gruß Marc
  • Mein erstes Script (Sayit) bräuchte Hilfe :-)

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    M
    nein, wurde nichts geschrieben. der javascript adapter war off :idea: ich bin schon viele schritte weiter. ;) allerdings probiere ich gerade über hm-rpc eine getState abfrage, welche noch noch nicht so funktioniert wie ich will. ich melde mich, wenn ich absolut nicht mehr weiterkomme. logfile ist sehr rot. 8-) lg.
  • Wunderground Wetter Abfrage über script

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    6k Aufrufe
    B
    @ykuendig: Hi Bob Da Du auf einen einjährigen Post reagierst, wollte ich es mir nicht nehmen lassen, Dich darüber zu informieren, dass mittlerweile ein Weatherunderground Adapter geführt wird. Denn kann man benutzen, muss man aber nicht ;-) ` Oh man, den Adapter hab ich echt übersehen :roll: Aber danke für den Tip! ` > Das Script ist für javascript.1 eingestellt. Bei dir läuft es unter der Instanz 0. Du musst ganz oben im Script die Instanz anpassen. ` Auch danke dafür. Damit läuft das Skript. Und ich hab wieder was dazugerlernt ;)
  • Wo finde ich Variablen der VIS Oberfläche

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    HomoranH
    Ich taste mich jetzt auch erst über Blockly an javascript ran. In einem ähnlichen Fall habe ich statt des "Schreibe", den "aktualisiere" Block genutzt aktualisiere (Objekt ID) mit (Wert) in deinem Falle also "true" als Wert Gruß Rainer
  • Daten über CAN-Bus senden

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    M
    msg.payload = [0xa1,0xb2]
  • BestPractis für "doppeltes on"?

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    paul53P
    @Fitti: schreibt man val und true jeweils OHNE ' (einfaches Anführungszeichen) , richtig? ` Ja, die Bezeichner (z.B. val) werden ohne Anführungszeichen geschrieben (vielleicht funktioniert es auch mit ' ?). true ist ein boolscher Wert, kein String. change: 'lt' 'lt' ist ein String; es kann keine boolscher Wert (boolean) und keine Zahl (number) sein.
  • Anrufansage & Nachricht mit Blockly

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    S
    Hier der aktuelle funktionierende Stand… ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on" id="D-]gKr{S6nMnK~Da4-z?" x="88" y="88"><field name="OID">tr-064.0.callmonitor.inbound.timestamp</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="timeouts_settimeout" id="{wuJ3NuDI(4[{ye3j~dn"><field name="NAME">timeout</field> ! <field name="DELAY">500</field> ! <statement name="STATEMENT"><block type="controls_if" id="P(a)Y:K0wpRnM/q5(}l"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="1D+T-RF2EDZ]K.@@v_H6"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="zGok2Xs:!;,o(cNQcwpS"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="B"></value></block></value> ! <statement name="DO0"><block type="sayit" id="L:c+_.z9)q9oCcpxREr-"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <value name="VOLUME"><block type="math_number" id="OGpAMalB@dUpxuo_=Ay"><field name="NUM">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="zk+69/O]Wn5QiOS={%J="><field name="TEXT">text</field></shadow> ! <block type="text_join" id="/aTtDlgAtMMFqH.RN6TE"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="Nep.Vu=,+(e}b/w7(sNS"><field name="TEXT">Anruf von Nummer</field></block></value> ! <value name="ADD1"><block type="get_value" id="O!yi{EAjnOMl5toHgdu)"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value></block></value></block></statement> ! <statement name="ELSE"><block type="comment" id="LA6K/IS3q#y!uU=B:O7g"><field name="COMMENT">sayit mit Namen</field> ! <next><block type="sayit" id="4_uFDZo=99#_th/I|j1"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <value name="VOLUME"><block type="math_number" id="%agKngXzUzhO;^x:j*Zl"><field name="NUM">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="h6_/@CY+4s/{abGe?Kd,"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="Fo,RhD@*WMeAu;3hm[:g"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="aqu}1e|RiNeC+ebp2Bec"><field name="TEXT">Anruf von</field></block></value> ! <value name="ADD1"><block type="get_value" id="T9=g0@eTP2o{6;WXKIiE"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value></block></value></block></next></block></statement> ! <next><block type="controls_if" id="[h~#}T~EYq|%zOS1f)36"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="?nW%5,F9qdYo-/~iL8rj"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="ip#M!UFj@gHr1tOMpCt{"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="B"></value></block></value> ! <statement name="DO0"><block type="pushover" id="9}=1gd)3|pvDE^OHKf(S"><field name="PRIORITY">0</field> ! <value name="MESSAGE"><shadow type="text" id="8aS7f-IBzM^.q*;[{G"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="R~8qxH%/7P8fdUN{It@"><mutation items="4"></mutation> ! <value name="ADD0"><block type="text" id="=+8,5-[Vn2=~_jKF4Z5"><field name="TEXT">Name unbekannt - Tel:</field></block></value> ! <value name="ADD1"><block type="get_value" id="Fqb{QAc_RCOEhvLU9Fi_"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value> ! <value name="ADD2"><block type="text" id="c+mAi(^%_MPAW5C[(XH"><field name="TEXT">- am:</field></block></value> ! <value name="ADD3"><block type="get_value" id="DNkn?|Nl|A}Us4^Z[ds"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field></block></value></block></value> ! <value name="TITLE"><block type="text" id="J4?g4z#2lm~+;yDR8cQ"><field name="TEXT">Anruf von:</field></block></value></block></statement> ! <statement name="ELSE"><block type="pushover" id="AsqMoI4]3ER{z8#g:-"><field name="PRIORITY">0</field> ! <value name="MESSAGE"><shadow type="text" id="8aS7f-IBzM^.q;[{G"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="#3AWc1va;bG]AA9bs^l"><mutation items="5"></mutation> ! <value name="ADD0"><block type="get_value" id="C2d]lIN)B,!6D{Ho/]rn"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="ADD1"><block type="text" id="P_4T%4zNei/-K^a9I%O0"><field name="TEXT">- Tel:</field></block></value> ! <value name="ADD2"><block type="get_value" id="R(2]3hcDQtF!rB[ry~.{"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value> ! <value name="ADD3"><block type="text" id="^5m:W7PWh8;j7XJ/}^cO"><field name="TEXT">- am:</field></block></value> ! <value name="ADD4"><block type="get_value" id="y2H-bQyb=StWAJFHOV#C"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field></block></value></block></value> ! <value name="TITLE"><block type="text" id="XOyHv|H3ed2i2,5sQ.;R"><field name="TEXT">Anruf von:</field></block></value></block></statement></block></next></block></statement></block></statement></block> ! <block type="comment" id="Ck[=ssU#?W|4Dx@91d3g" x="88" y="113"><field name="COMMENT">Änderung bei Anruf</field></block></xml> leider ohne die Funktion der Wiederholung der Ansage. Der Block wiederholen solange - scheint nicht zu funktionieren. Dabei stürzt immer der Java Script Adapter ab. PS die Debug Ausgaben habe ich in diesem Blockly bereits entfernt. Gruß Sven
  • Schleife für Wired DImmer

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    917 Aufrufe
    paul53P
    Hier noch eine Variante (nicht getestet), die weniger Belastung für die CPU bringt, da nicht alle 300 ms getState(id) aufgerufen wird: var timer = null; var idTaste = 'hm-rpc.0.XXX1234567.N.PRESS_SHORT'; var idLevel = 'hm-rpc.0.XXX1234567.N.LEVEL'; var level = getState(idLevel).val; function dunkler() { if(level) { level = level - 5; if(level < 0) level = 0; setState(idLevel, level); } if(timer && level === 0) clearInterval(timer); } on({id: idTaste, val: true}, function() { level = getState(idLevel).val; dunkler(); timer = setInterval(dunkler, 300); });
  • Json Objekt in Blockly weiter bearbeiten

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • [gelöst] Anrufer Ansage wiederholen, bis Gespäch angenommen wurde

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    A
    Hi, Für Android gibt es was ähnliches, läuft allerdings nicht über iobroker. Vielleicht kann man das ja irgendwie einbinden. http://www.sonofy.co
  • Nach 2h keine Bewegung im Raum schalten

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    htreckslerH
    var idFensterAuf = "hm-rpc.0.NEQ11000000.1.STATE"; var timer = null; subscribe(idFensterAuf, function (obj) { if (obj.newState.val) { // Starte timer für 2 Minuten if (!timer) { timer = setTimeout(function () { timer = null; log("Fenster im Bad länger als 2 Minuten auf"); }, 120000); } } else { // Fenster zugemacht. Falls timer läuft = stopp log('Fenster im Bad geschlossen!'); if (timer) { clearTimeout(timer); timer = null; } } }); so funktioniert es bei mir mit einem Fenster. (Ist nur für einen Test auf 2 Minuten gesetzt :-))
  • Sayit -> mp3-Ausgabeprobleme

    Verschoben
    4
    2
    0 Stimmen
    4 Beiträge
    973 Aufrufe
    S
    Erst mal eine Teilmeldung aus der Ferne. Mein Wandtablet (mit Firefox) macht den Ankündigungston wenn sayit auf Browser gestellt ist. Mein zweites Tablet (mit Boat Browser) macht es trotzdem nicht wenn sayit auf Browser gestellt ist. Den Boat-Browser muss ich aber für die weitere Funktionalität des Tablet verwenden. Scheint also das die Einstellung "Browser" zwingend Voraussetzung im sayit-Adapter ist. Nachtrag: Dieter, wie sieht dein Script mit request aus ? Bei mir steht im Log: ReferenceError: request is not defined at Object.
  • Sayit - Sprachrückmeldung

    Verschoben
    27
    0 Stimmen
    27 Beiträge
    4k Aufrufe
    H
    Vielen Dank, für Deine Hilfe.

189

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge