NEWS
Test Adapter mytime
-
@Negalein
Nein.Nur ein Timer. Wie kommst Du auf die 2 ? Hab ich das falsche exportiert ?
Die Unterscheidung ist lediglich ob die Eingabe ein OK, ein CLR, oder sonstiges war.
Mach mal aus Deinem Timer2 ein Timer. Löschen darfst Du die falls Option nicht.
Guck Dir oben das Blockly Bild nochmal an.
Ich habe Scripts für zwei Timer, sorry wenn ich da was falsch exportiert hatte.
Input nimmt die Eingabe und setzt es in Output nur zusammen.
-
@skokarl sagte in Test Adapter mytime v0.1.x:
Wie kommst Du auf die 2 ?
Im Blockly von dir ist Timer und Timer2
Löschen darfst Du die falls Option nicht.
dachte ich mir schon. werde es auf 1 Timer ändern.
sorry wenn ich da was falsch exportiert hatte.
Kein Problem, ist kein Weltuntergang.
Funktioniert perfekt! Danke nochmals
-
geil....freut mich
-
Blockly oben ist korrigiert.
-
@Coffeelover nee, ich habe nach der Version des js-controllers gefragt. Also der Version vom Host.
Ich hatte mit einer Controller-Version 1.x nämlich das gleiche Problem und habe daher auf die 2.x geupdatet. Dort war dann alles ok.
Seit heute ist übrigens der Controller in der Version 3.x im Stable. -
@skokarl sagte in Test Adapter mytime v0.1.x:
Ich bastel mir den String über eine kleine Tastatur selbst zusammen und schicke
es dann ins cmd Feld. Die Zeit wird automatisch ins Timer Feld in Sek übernommen.
Geht bestimmt noch eleganter, aber ich lerne ja nochCool, Danke.
2 Fragen
-
Wie machst du die Anzeige der Zeit
-
Wenn ich mehrere Timer habe kann ich immer nur einen Timer schalten, geht das auch mit mehreren?
-
-
@sigi234 sagte in Test Adapter mytime v0.1.x:
Wenn ich mehrere Timer habe kann ich immer nur einen Timer schalten, geht das auch mit mehreren?
obs einfacher geht weiß ich nicht.
Ich hab zB für 3 Timer 3 Blocklys und je 3x die DP.
Das Ziffernwidget dann auch 3x. -
1.) die Zeit ist das myTime Countdown Plain Widget von @OliverIO
2.)
Ich hab ein Testscript, aber das ist noch nicht fertig, weil ich auch gerne als Timer heute 20:15 (Tatort :-))
einstellen möchte. Jedenfalls setze ich über das anklicken des Timer Widgets eine Zahl die ich in Blockly abfrage.
Somit kann ich beliebig viele Timer bedienen.
-
@skokarl sagte in Test Adapter mytime v0.1.x:
Ich hab ein Testscript, aber das ist noch nicht fertig, weil ich auch gerne als Timer heute 20:15 (Tatort :-))
einstellen möchte. Jedenfalls setze ich über das anklicken des Timer Widgets eine Zahl die ich in Blockly abfrage.
Somit kann ich beliebig viele Timer bedienen.Cool
Freu mich wenn es fertig ist
Dann kann ich mir meine 3-fache Ausführung sparen! -
@skokarl sagte in Test Adapter mytime v0.1.x:
die Zeit ist das myTime Countdown Plain Widget von @OliverIO
Oh Mann ja...kann mich wieder erinnern.
Habe es gelöscht weil es einen komischen Effekt hat:
Ist auf Git schon gemeldet. -
Könntest Du mir bei der Eingabe
noch etwas entgegenkommen?
dass nur die Zeit eingegeben werden kann und Du immer den aktuellen Tag nimmst ?
Ich weiß, dass das zu Problemen führt wenn es über 0 Uhr hinaus geht, aber die Praxis ist doch eine
andere. Ich will einfach heute abend das Fußballspiel nicht verpassen, und stelle daher tagsüber einen Timer auf 20:15 Uhr.
Den für mich unnötigen Tag davor eingeben zu müssen macht die Tastatur etwas schwieriger.Schön wäre eine Möglichkeit der Eingabe mit z.B. X20:15, X für heute, 20:15 für die Zeit.
-
Ja, kann mich erinnern, Du hast ein Problem mit CSS weil ein anderer Adapter die CSS Formatierung stört.
-
Hast Du schon ein Signalton bei Ende des Timers ?
Ich mach das über ein mp3 Clip mit der Sonos API, aber das geht auch anders.
Du musst nur das Feld action abfragen. -
@skokarl sagte in Test Adapter mytime v0.1.x:
Hast Du schon ein Signalton bei Ende des Timers ?
Ich mach das über ein mp3 Clip mit der Sonos API, aber das geht auch anders.
Du musst nur das Feld action abfragen.Nein, noch nicht.
Ist eine coole Idee!
Muss ich schaun, wie ich das mit Alexa schaffe. Eventuell mit dem PlayListPlayer-Skill. -
ungefähr so.....
Wenn action auf end steht ist der timer fertig.
Jetzt wird alle 8 Sekunden über Alexa ein Text wiedergegeben,
maximal allerdings 3 Minuten lang.Hab nur gerade mal meine Sonos Api rausgenommen, hoffe das hilft dir.
Original Script mit Sonos und 2 Timern, kannst Du Dir anpassen.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout">timeout</variable> <variable type="timeout" id="timeout2">timeout2</variable> <variable type="interval" id="Intervall">Intervall</variable> <variable type="interval" id="Intervall2">Intervall2</variable> </variables> <block type="on_ext" id="$^$%Q4Kiz@}/N`6+xYtN" x="-15987" y="-9237"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="E$E`XMExwA_Ol2M[aB4."> <field name="oid">mytime.0.Countdown.Timer.action</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="C+0MHkwRxstJ1JC(U-;)"> <field name="oid">mytime.0.Countdown.Timer2.action</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="M@*i7~J@XmQphvh/GPAE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak-volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="4Zy3Yn%skfnz)(]PynBI"> <field name="NUM">10</field> </block> </value> <next> <block type="controls_if" id="m9tn;[n`]~4_5];etDE3"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="8%/`zsdNH`Be-z![tMY%"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="%1hb,PLp{NdG;;)@~CiN"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Timer.timer</field> </block> </value> <value name="B"> <block type="math_number" id="svM/bDpr4Ir,D3g`Pshq"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="fD,{-:M[($}[8unQ0YY0"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="~#ROx}@f_vOnEP`oY_oe"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="swTIR=~23Rf,(|P,wp~t"> <field name="ATTR">val</field> <field name="OID">mytime.0.Countdown.Timer.action</field> </block> </value> <value name="B"> <block type="text" id="NimL]3t83N:dIg()$KT3"> <field name="TEXT">run</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="EfmaiW1eoFma/%;tx/uN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="7~NfsWx!4`$Axj+5yW;5"> <field name="TEXT">Timer eins wurde gestartet</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Y|UR?g+FQ5{4@;]M^28,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="nCKT_%}l03Tf_Jc9u-#^"> <field name="ATTR">val</field> <field name="OID">mytime.0.Countdown.Timer.action</field> </block> </value> <value name="B"> <block type="text" id="N|up!cE@mKM{hl,m3bm_"> <field name="TEXT">end</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="Y3+B@zvx^)3VCBE;z`U8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="4$~FM}uYth9yx^j/YrV1"> <field name="TEXT">Timer eins beendet</field> </block> </value> <next> <block type="timeouts_settimeout" id="+g=xTmH517Yu+eZ?ayD="> <field name="NAME">timeout</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="timeouts_clearinterval" id="=oXm62dEbt{!T67q]kXh"> <field name="NAME">Intervall</field> </block> </statement> <next> <block type="timeouts_setinterval" id="MAi`[D#8Vz^Z2G@_$n*;"> <field name="NAME">Intervall</field> <field name="INTERVAL">8000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="request" id="ll^,!}(ZxpvhHb!t[!Cv"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="=lM{;r5Ji9%,}z5L5?-I"> <field name="TEXT">http://192.168.178.56:5005/Tablet/clip/wecker.mp3/10</field> </shadow> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="+pWsR|RfvHg$s1dkN.hB"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="}rtiDO(rigv*zL{^(He/"> <field name="ATTR">val</field> <field name="OID">mytime.0.Countdown.Timer.action</field> </block> </value> <value name="B"> <block type="text" id="AGW)}%0xDAv6:)#9cC=+"> <field name="TEXT">stop</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="Z`t{6U|AO(Q;({~Z%saK"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="_d[9D+}WnaQ(iV,}ExY{"> <field name="TEXT">Timer eins wurde gestoppt</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_compare" id="(%qS}leW3-Tsb~{ws1mo"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Tx.o!/A*ZTwW9DXZ4X_L"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Timer.timer</field> </block> </value> <value name="B"> <block type="math_number" id="6i^n(*0!6kB=I,lt^];."> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO1"> <block type="controls_if" id="vigBNR?w)}$8Ed:x4_.3"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="AbvCsYnS3C9vSiTHx:C#"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=".7*C]:{ql7gmKRT=u^Ta"> <field name="ATTR">val</field> <field name="OID">mytime.0.Countdown.Timer2.action</field> </block> </value> <value name="B"> <block type="text" id="{Sfsw(VfRaeEhe5xl`n0"> <field name="TEXT">run</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="}Fub4OF#GNqZ@_Uf[#$#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="LA`2.hEV*5|vA,;-BTA-"> <field name="TEXT">Timer zwei wurde gestartet</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Xj^F([}b[Q^!r4nN:_-m"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="D)_S/GG5nsp1u1AVLkEF"> <field name="ATTR">val</field> <field name="OID">mytime.0.Countdown.Timer2.action</field> </block> </value> <value name="B"> <block type="text" id="M!Qq1AQ%0KCzho@H.{%~"> <field name="TEXT">end</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="kog8jDG4zX;1u$04BK+s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="w,NoiY_8]dBhgrldMG$?"> <field name="TEXT">Timer zwei beendet</field> </block> </value> <next> <block type="timeouts_settimeout" id="{h.d4Rr};tw4Z#+@?78:"> <field name="NAME">timeout2</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="timeouts_clearinterval" id="J~?1Um%z^IyT2uT!ZNT`"> <field name="NAME">Intervall2</field> </block> </statement> <next> <block type="timeouts_setinterval" id=":CMHZ~$1D~dXz55Ckp0u"> <field name="NAME">Intervall2</field> <field name="INTERVAL">8000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="request" id="Iig)Os]/mt6K/HJo~8kj"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="?C%-$MWL~2=T65L^pZxA"> <field name="TEXT">http://192.168.178.56:5005/Tablet/clip/wecker.mp3/10</field> </shadow> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="TCgxJj=|NS4K|Ng@01mc"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="V`Su?/xb]/T*L).?LWp#"> <field name="ATTR">val</field> <field name="OID">mytime.0.Countdown.Timer2.action</field> </block> </value> <value name="B"> <block type="text" id=".f+KSxn;%wR:$G.0*8Ly"> <field name="TEXT">stop</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="@Dj9R+e#LL^cWB/nl%)="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.391502c03c754d209b5b3e2e4265de30.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="Bo6.QY2V?:Oc|1E/A+f^"> <field name="TEXT">Timer zwei wurde gestoppt</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@htrecksler Richtig, jetzt habe ich es auch gesehen. Beide Host (NAS mit Docker und Pi als Slave laufen als JS controller 3.1.4). Der Speicherfehler tritt bei beiden Hosts auf.
Edit: Fehler mit dem Speichern durch folgendes Procedere gelöst:
- Als ich eine neue Instanz ergänzen wollte, war der Adapter verschwunden ->
- nochmals von GITHUB mit dem Link aus #1 installiert
- Nochmals Instanz hinzugefügt
- Gleicher Fehler bei der Erstanlage der Instanz
- unkoordiniertes, wildes rumgeklicke auf dem Speichern / Speichern-Schließen bereich. Irgendwann hat er dann gespeichert.
Verstehe wer will. Und reproduzieren lässt es sich auch nicht.
-
@skokarl sagte in Test Adapter mytime v0.1.x:
ungefähr so.....
Danke, an Speak hab ich jetzt garnicht gedacht.
-
@skokarl sagte in Test Adapter mytime v0.1.x:
Könntest Du mir bei der Eingabe
noch etwas entgegenkommen?
dass nur die Zeit eingegeben werden kann und Du immer den aktuellen Tag nimmst ?
Ich weiß, dass das zu Problemen führt wenn es über 0 Uhr hinaus geht, aber die Praxis ist doch eine
andere. Ich will einfach heute abend das Fußballspiel nicht verpassen, und stelle daher tagsüber einen Timer auf 20:15 Uhr.
Den für mich unnötigen Tag davor eingeben zu müssen macht die Tastatur etwas schwieriger.Schön wäre eine Möglichkeit der Eingabe mit z.B. X20:15, X für heute, 20:15 für die Zeit.
Ich schau mal, wäre machbar.
-
@OliverIO
wäre toll, ich krieg das aktuelle Datum über Blockly nicht, zumindest habe ich nix gefunden.edit: erledigt, manchmal sieht man den Wald vor lauter Bäumen nicht.
-
So, ich habe meinen Adapter nach Deinstallation, Host-Neustart und Neuinstallation nun auch dazu gebracht, den Speicherknopf zu akzeptieren.
Geiler Adapter, aber für meinen 1. Anwendungsfall leider mit einem merkwürdigen Fehler: Ich habe den Timer auf 27 Sekunden gestellt (OT: die Dauer, die ein Espressoshot in einem Siebträger dauert). Sobald ich nun starte, springt der Timer auf 47 und zählt runter, bevor er bei 20 Sekunden auf 0 springt und fertig ist.
Edit Ergänzung: Der Timer wird direkt über die Instanz eingestellt und zum Testen in den Objects gestartet.
Edit 2: Auch ein 12 Min Timer reagiert merkwürdig. Wenn ich Stop sende, springt er auf 12:00. Sobald ich ich starte, zeigt er 12:20 an und zählt dann runter.