回答編集履歴
11
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
※ GASから1分ごとに扉の状態を取得するとのことですが、
|
1
|
+
※ GASから1分ごとに扉の状態を取得するとのことですが、隣接するステータス取得タイミングで扉の状態が変わらないような開け閉め動作(GASの次の取得前に、閉じている状態から開けて閉める。もしくは開いている状態から閉めてまた開ける、というような動作)が行われた場合は、状態変化が起きていないものとみなす、という暗黙の前提があるとします。
|
2
2
|
|
3
3
|
|
4
4
|
> ・ステータスがclose⇒openになったタイミングだけ記録し、open⇒openでは何もしない
|
10
test
CHANGED
@@ -17,6 +17,6 @@
|
|
17
17
|
つまり「10分程度」経過すれば自動で閉じるということでしょう。
|
18
18
|
これを前提とした場合、扉が開いている10分間のうち最初のタイミングであることを確認できた時刻を記録するには「確認時のステータスがopenであり、かつ前回の確認時はclose状態であった、と判定できるタイミング」で、その時刻を記録すれば十分です。
|
19
19
|
|
20
|
-
上記のようにすれば、要件を満たす(履歴列に”最初にOPENとなった時刻"が連綿と記録される)のではないでしょうか。
|
20
|
+
上記のようにすれば、要件を満たす(履歴列に”最初にOPENとなったことが確認できた時刻"だけが連綿と記録される)のではないでしょうか。
|
21
21
|
|
22
22
|
|
9
test
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
質問文によれば扉はつねに「10分程度開く」とのことです。
|
17
17
|
つまり「10分程度」経過すれば自動で閉じるということでしょう。
|
18
|
-
これを前提とした場合、扉が開いている10分間のうち最初のタイミングであることを確認できた時刻を記録するには「
|
18
|
+
これを前提とした場合、扉が開いている10分間のうち最初のタイミングであることを確認できた時刻を記録するには「確認時のステータスがopenであり、かつ前回の確認時はclose状態であった、と判定できるタイミング」で、その時刻を記録すれば十分です。
|
19
19
|
|
20
20
|
上記のようにすれば、要件を満たす(履歴列に”最初にOPENとなった時刻"が連綿と記録される)のではないでしょうか。
|
21
21
|
|
8
test
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
> ・ステータスがclose⇒openになったタイミングだけ記録し、open⇒openでは何もしない
|
5
5
|
まさにこれをコード化すればよいだけではないでしょうか?
|
6
|
-
状態を記録するスプレッドシートのセルを「状態記録セル」、最初にopenになった時刻を記録
|
6
|
+
状態を記録するスプレッドシートのセルを「状態記録セル」、"最初にopenになったことを確認できた時刻"を記録していく列を「履歴列」と呼称することとします。
|
7
7
|
つまり、1分ごとにセンサーを確認するとして:
|
8
8
|
・センサーを確認したときにclose状態だったとき
|
9
9
|
→「CLOSE」という文字列を状態記録セルに記録します。
|
7
test
CHANGED
@@ -14,7 +14,8 @@
|
|
14
14
|
ELSE 状態記録セルが「OPEN」だった場合(「CLOSE」という文字列ではなかった場合) → 何もしません。
|
15
15
|
|
16
16
|
質問文によれば扉はつねに「10分程度開く」とのことです。
|
17
|
+
つまり「10分程度」経過すれば自動で閉じるということでしょう。
|
17
|
-
|
18
|
+
これを前提とした場合、扉が開いている10分間のうち最初のタイミングであることを確認できた時刻を記録するには「1分ごとに確認したそのときにステータスがopenであり、かつ**前回の確認時はclose状態であった、と判定できるタイミング」で、その時刻を記録**すれば十分です。
|
18
19
|
|
19
20
|
上記のようにすれば、要件を満たす(履歴列に”最初にOPENとなった時刻"が連綿と記録される)のではないでしょうか。
|
20
21
|
|
6
test
CHANGED
@@ -3,19 +3,19 @@
|
|
3
3
|
|
4
4
|
> ・ステータスがclose⇒openになったタイミングだけ記録し、open⇒openでは何もしない
|
5
5
|
まさにこれをコード化すればよいだけではないでしょうか?
|
6
|
-
状態を記録するスプレッドシートのセルを「状態記録セル」、最初にopenになった時刻を記録する
|
6
|
+
状態を記録するスプレッドシートのセルを「状態記録セル」、最初にopenになった時刻を記録する列を「履歴列」と呼称することとします。
|
7
7
|
つまり、1分ごとにセンサーを確認するとして:
|
8
8
|
・センサーを確認したときにclose状態だったとき
|
9
9
|
→「CLOSE」という文字列を状態記録セルに記録します。
|
10
10
|
|
11
11
|
・センサーを確認したときにopen状態だったとき
|
12
12
|
まず、状態記録セルを読み取ります。そして
|
13
|
-
IF 状態記録セルが「CLOSE」であった場合→状態記録セルに「OPEN」を記録し、履歴
|
13
|
+
IF 状態記録セルが「CLOSE」であった場合→状態記録セルに「OPEN」を記録し、履歴列の次の空白行に現在時刻を記録します。
|
14
14
|
ELSE 状態記録セルが「OPEN」だった場合(「CLOSE」という文字列ではなかった場合) → 何もしません。
|
15
15
|
|
16
16
|
質問文によれば扉はつねに「10分程度開く」とのことです。
|
17
17
|
つまり「10分程度」経過すれば自動で閉じるということでしょうから、1分ごとに確認したそのときにステータスがopenであり、かつ**直近の過去に確認したときはclose状態であった、と判定できるタイミングで、その時刻を記録**すれば十分です。
|
18
18
|
|
19
|
-
上記のようにすれば、要件を満たす(履歴
|
19
|
+
上記のようにすれば、要件を満たす(履歴列に”最初にOPENとなった時刻"が連綿と記録される)のではないでしょうか。
|
20
20
|
|
21
21
|
|
5
test
CHANGED
@@ -3,19 +3,19 @@
|
|
3
3
|
|
4
4
|
> ・ステータスがclose⇒openになったタイミングだけ記録し、open⇒openでは何もしない
|
5
5
|
まさにこれをコード化すればよいだけではないでしょうか?
|
6
|
-
状態を記録するスプレッドシートのセルを「記録セル」と呼称することとします。
|
6
|
+
状態を記録するスプレッドシートのセルを「状態記録セル」、最初にopenになった時刻を記録するセルを「履歴セル」と呼称することとします。
|
7
|
-
つまり、
|
7
|
+
つまり、1分ごとにセンサーを確認するとして:
|
8
|
-
・センサーを確認したときにclose状態
|
8
|
+
・センサーを確認したときにclose状態だったとき
|
9
|
-
→「CLOSE」という文字列を記録セルに記録します。
|
9
|
+
→「CLOSE」という文字列を状態記録セルに記録します。
|
10
10
|
|
11
|
-
・センサーを確認したときにopen状態
|
11
|
+
・センサーを確認したときにopen状態だったとき
|
12
|
-
まず、記録セルを読み取ります。そして
|
12
|
+
まず、状態記録セルを読み取ります。そして
|
13
|
-
IF 記録セルが「CLOSE」であった場合→現在時刻を
|
13
|
+
IF 状態記録セルが「CLOSE」であった場合→状態記録セルに「OPEN」を記録し、履歴セルの次の行に現在時刻を記録します。
|
14
|
-
ELSE 記録セルが「CLOSE」という文字列ではなかった場合 → 何もしません。
|
14
|
+
ELSE 状態記録セルが「OPEN」だった場合(「CLOSE」という文字列ではなかった場合) → 何もしません。
|
15
15
|
|
16
16
|
質問文によれば扉はつねに「10分程度開く」とのことです。
|
17
17
|
つまり「10分程度」経過すれば自動で閉じるということでしょうから、1分ごとに確認したそのときにステータスがopenであり、かつ**直近の過去に確認したときはclose状態であった、と判定できるタイミングで、その時刻を記録**すれば十分です。
|
18
18
|
|
19
|
-
上記のようにすれば、要件を満たすのではないでしょうか。
|
19
|
+
上記のようにすれば、要件を満たす(履歴セルには常に最初にOPENとなった時刻が記録される)のではないでしょうか。
|
20
20
|
|
21
21
|
|
4
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
まさにこれをコード化すればよいだけではないでしょうか?
|
6
6
|
状態を記録するスプレッドシートのセルを「記録セル」と呼称することとします。
|
7
7
|
つまり、
|
8
|
-
・センサーを確認したときにclose状態の
|
8
|
+
・センサーを確認したときにclose状態のとき
|
9
9
|
→「CLOSE」という文字列を記録セルに記録します。
|
10
10
|
|
11
11
|
・センサーを確認したときにopen状態のとき
|
3
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
→「CLOSE」という文字列を記録セルに記録します。
|
10
10
|
|
11
11
|
・センサーを確認したときにopen状態のとき
|
12
|
-
|
12
|
+
まず、記録セルを読み取ります。そして
|
13
13
|
IF 記録セルが「CLOSE」であった場合→現在時刻を上書きします。
|
14
14
|
ELSE 記録セルが「CLOSE」という文字列ではなかった場合 → 何もしません。
|
15
15
|
|
2
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
ELSE 記録セルが「CLOSE」という文字列ではなかった場合 → 何もしません。
|
15
15
|
|
16
16
|
質問文によれば扉はつねに「10分程度開く」とのことです。
|
17
|
-
つまり「10分程度」経過すれば閉じるということでしょうから、1分ごとに確認
|
17
|
+
つまり「10分程度」経過すれば自動で閉じるということでしょうから、1分ごとに確認したそのときにステータスがopenであり、かつ**直近の過去に確認したときはclose状態であった、と判定できるタイミングで、その時刻を記録**すれば十分です。
|
18
18
|
|
19
19
|
上記のようにすれば、要件を満たすのではないでしょうか。
|
20
20
|
|
1
test
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
・センサーを確認したときにopen状態のとき
|
12
12
|
→記録セルを読み取ります。
|
13
13
|
IF 記録セルが「CLOSE」であった場合→現在時刻を上書きします。
|
14
|
-
ELSE 記録セルが「CLOSE」ではな
|
14
|
+
ELSE 記録セルが「CLOSE」という文字列ではなかった場合 → 何もしません。
|
15
15
|
|
16
16
|
質問文によれば扉はつねに「10分程度開く」とのことです。
|
17
17
|
つまり「10分程度」経過すれば閉じるということでしょうから、1分ごとに確認するときに、**前回閉じていた状態から開いたと判定できるタイミングで、その時刻を記録**すれば十分です。
|