Translate

Post Date:2022年6月7日 

アナログ・スマートウォッチという選択

Withings ScanWatch 38mm ブラック

Apple Watch と決別をして、Withings ScanWatch にしてから半年が過ぎました。

Apple Watch は、スマホを出さずに完結できる "スマホの代替" としての機能が充実しているのでとても便利でした。

しかし、その利便性の代償として、毎日の充電という苦行があります

これが、Apple Watch に別れを告げた理由です、、、。


充電の束縛からの解放

「毎日充電しなくていい!!」

というのは、常に腕にしているスマートウォッチにとっては大きな意味があるということがこの半年で実感できました。

Apple Watch の駆動時間は最大18時間ですが、ScanWatchは「最大30日間充電不要」です。実際に使ってみても20日以上は充電せずに使えています。

この30日間というのは他のスマートウォッチと比較して、ずば抜けて長い駆動時間です。

スマートウォッチ - 駆動時間の比較

また、バッテーリー低下の通知(4%)から1日以上は普通に使えるので、1日の途中でバッテリー切れるといったことがありません。

また、自宅では Withings Sleep で睡眠計測をしていますが、旅行や出張時には ScanWatch で睡眠計測もするので、バッテリーの消費が多くなります。しかし、出発前日にフル充電をしておけば、1-2週間の不在でも充電器を持ち歩く必要がないというのも安心です。


なぜスマートウォッチではデジタルを受容するのか

日本時計協会のデータをみると腕時計の世界生産の7割がアナログ時計です。

世界のウォッチ生産台数
【引用】日本時計協会 - 2021年ウォッチの世界生産(推定値)

デジタルネイティブではない世代としては、針で時を刻まれた方が、残り時間(あと何分)、経過時間(どれくらい経った)が直感的に分かるのでアナログ時計の方が好きです。

またアナログ時計では、常に時間を物理的な針で示しているので、時計をチラ見したときに時間がわかるというのも地味にありがたいです。


アナログ時計とスマートウォッチのハイブリッド

そんなアナログ時計の良さを活かした、シチズン エコ・ドライブ Riiiver は、充電不要のアナログ時計なスマートウォッチです。

シチズン エコ・ドライブ Riiiver

洗練されたデザインで、針で色々なことを表すという発想が素敵です。「LINEで通知あり」とかまでなら針の動きで把握することができます。また加速度センサーが搭載されているので、活動量計の機能もあります。

かなり惹かれましたが、スマホの代替までとはいかなくとも、通知内容を把握するための小型スクリーンと心拍数などの健康管理機能は捨てられない、、、。

小型スクリーンを搭載しながらも長時間駆動、心拍数などのセンサーを備えたアナログ時計型のスマートウォッチとなると、候補は限られ、

  • Withings ScanWatch
  • SKAGEN JORN

の 2つでした。

Withings Scan Watch には、小さなスクリーンがあり、送信者、メッセージの一部、次の予定 などが表示されます。

また、SKAGEN ハイブリッドスマートウォッチJORN は、デザイン変更可能なE-inkディスプレイを搭載していますが、最大2週間の駆動で、価格もお手頃です。


Withings ScanWatch

Withings(ウィジングズ)は、フランスのヘルス・テック企業です。WiFi体重計(Body Cardio)睡眠計測パッド(Sleep)を愛用していたので、Withings ScanWatch を購入。

Withings ScanWatch 38mm ブラック

デザイン的には 42mm の方が好みでしたが、大きな時計は好きではないので 38mm を選択。湾曲した面のサファイアガラスが腕時計感を更に醸し出し、カジュアルでもスーツにもマッチします。

付属のバンドはシリコン製ですが、専用のミラネーゼリストバンド、専用レザーバンド/ミラネーゼバンドが別売されています。

後から専用レザーバンド(ブラック)を購入しました。

Withings ScanWatch 38mm ブラック

バンドの取り外し方は、購入したバンドのケースの裏側に記載されていましたが、簡単です。

Withings 専用レザーバンド

専用バンドでなくても、同じような仕様の18mmのバンドであれば ScanWatch 38mm に取り付けられるのではないかと思います。ScanWatch 42mm のバンド幅は 20mm です。


SacnWatchの健康管理機能

ScanWatchでは、歩数、階段の昇降、心拍、運動(ウォーキングやサイクリングなど自動判定)などが記録されます。

また睡眠時の心拍数、呼吸の乱れ、血中酸素も記録できますが、夜間は時計を外してWithings Sleep(睡眠パッド)で記録し、外泊したときだけ睡眠時もScanWatchを使っています。

残念ながら日本ではScanWachのすべの機能を使えません。酸素飽和度(SpO2)は利用できるようになりましたが、心電図(ECG)などは、まだ日本では利用できません。

Apple Watchでは、ECGも日本でも利用可能となっているのでWithingsにも頑張ってもらいたいところです。

下記が現在、日本でも利用できる健康管理機能となっています。

ScanWatch 健康管理機能日本
心電図(ECG)
酸素飽和度:医療用 SpO2
酸素飽和度:血中酸素✔️
呼吸スキャン:
呼吸障害と夜通し連続の血中酸素
✔️
心拍動通知:不規則な心拍動✔️
心拍動通知:心房細動の徴候

詳細は、ScanWatch - 私の地域では現在、どの様な健康関連の機能が利用できますか? – Withings | Support を参照してください。


アップデートでさらに使い勝手がよくなった

2022年3月末にScanWatchのファームウェアがアップデートされ、

  • アクティビティ・リマインダー
  • 新たな針の動作

が追加されました。

SCANWATCHがさらに進化しました!

アクティビティ・リマインダーで、直近1時間でアクティビティがないと通知されます。夜間や既に目標を達成していると通知がないというのは気が利いています。

  • 「Unwind with 100 steps(100ステップ歩いて体をほぐそう)」
  • 「Let's go for a walk(散歩しよう)」
  • 「Take some time for a walk(散歩の時間を!)」
  • 「Think about taking a lunch walk(お昼に散歩をしたら?)」

など、いくつかのパターンで通知されます。

新たな針の動作というのは、針待避機能のことです。時計の短針、長針の何れかが小さいな円形スクリーン上にあるときに、通知があると、文字を見やすくするために針が(おおよそ)10時10分になります。

ダイヤルボタンを押したときにも同様の動きです。

Withings ScanWatch 38mm ブラック

これ滅茶ありがたい。


ScanWatch を使う上での注意点

通知を受け取るためには、スマホ側とHelth Mate(Withingsのアプリ)での設定が必要です。また、Helth Mate App がバックグランドで起動していなければ通知は受け取れません。

「ScanWatch - 通知の有効化」に設定方法が記載されていますが、日本語の画面だとこんな感じです。LINEやインスタも、もちろん通知を受信することが可能です。

Helth Mate App - 通知設定

またスマホ(iPhone)の通知設定で、「プレビューを表示」を「常に(デフォルト)」にする必要があります。

iPhone 設定 - 通知

アナログなスマートウォッチはちょうどいい

Withngs ScanWatchは、Apple Wathcほど高機能ではありませんが、

  • 充電の呪縛から解放
  • アナログ時計への懐古
  • 健康状態の追跡

を重視するであれば、「ちょうどいい」ハイブリッド・スマートウォッチです。

Post Date:2022年5月7日 

Googleスプレッドシートの更新された範囲をURLとして通知する

ゾウでもわかる Google Apps Script

シートの更新通知を使うと確認が必要のない更新通知も送られてくるので、自分に必要な項目が更新されたときだけに通知が欲しい。

また、どこが変更されたのかが分かると、通知を受けた人に優しい仕様となります。

象と散歩: Googleスプレッドシートの更新された値を知るで、変更された箇所の行番号と列番号を取得する方法を紹介しましたが、変更範囲をセル範囲が指定されたリンクとして作成するGASプログラムを作ってみました。


URLの取得

onEdit()関数については、象と散歩: Googleスプレッドシートの更新された値を知る で説明していますが、スプレッドシートが更新されたときに実行される関数です。

onEdit(e)	{
  var ssUrl = e.source.getUrl()	//スプレッドシートのURL
  console.log(ssUrl)
}

セルの内容が更新されると、上記の関数が実行されます。マニュアルで実行するとエラーとなりますので、セルの値を更新してログを確認してください。

onEdit()関数の引数に e を指定していますが、e.source でスプレッドシートオブジェクトが取得でき、getUrl()でスプレッドシートのURLが取得できます


シートはGIDパラメータで指定する

上記で取得したスプレッドシートのURLは、下記のような構成になっています。

https://docs.google.com/spreadsheets/d/xxxxx/edit

複数シートがある場合には、URLにGIDパラメータが付与されています。

https://docs.google.com/spreadsheets/d/xxxxx/edit#gid=749420395

最初のシート(シート 1)は、必ず gid=0 ですが、getSheetId() で GIDを取得することができます。

onEdit(e)	{
  var sheet = e.source.getActiveSheet()
  var sheetId = sheet.getSheetId()	//シートID
  console.log(sheetId)
} 

セル範囲はRANGEで指定する

セルを右クリックして"このセルへのリンクを取得"をクリックすると

範囲を指定してリンクを取得する

下記のようなURLが取得できます。

https://docs.google.com/spreadsheets/d/xxxxx/edit#gid=0&range=C2

また複数セルを選択した状態で右クリックして"この範囲のリンクを取得"をクリックすると下記のようなURLが取得できます。

https://docs.google.com/spreadsheets/d/xxxxx/edit#gid=0&range=A3:C3

"range=" で範囲を指定したURLを取得できます。


A1形式で範囲を取得する

onEdit()で実行されたときにrangeで変更範囲が取得できますが、A3:C3のようなA1形式で範囲を取得するには、range.getA1Notation() を使います

更新範囲がひとつのセルならA3、範囲ならA3:C3のように取得することができます。

onEdit(e)	{
  var sheetRange = e.range.getA1Notation()	//変更範囲
  console.log(sheetRange)
}

シートの値を変更して、ログを確認してください。複数セルの範囲は、シート上で範囲選択をしてコピペをすることで確認できます。


シートと範囲を指定したURLを作成

シートID(GID)と範囲(RANGE)を指定したURLを作成します。

function onEdit(e) {
  var ssUrl = e.source.getUrl()	//スプレッドシートのURL
  var sheet = e.source.getActiveSheet()
  var sheetId = sheet.getSheetId()	//シートID
  var sheetRange = e.range.getA1Notation()	//変更範囲
  var url = ssUrl + '#gid=' + sheetId + '&range=' + sheetRange
  console.log(url)
}

ログに出力されたURLをコピペして、範囲選択がされた状態でスプレッドシートが開くかを確認してください。


変更範囲の確認

特定の範囲が更新されたときだけ通知があるように、更新されたセルが対象としたいセル範囲内にあるかを確認します。

下記のサンプルプログラムでは、targetStartColumn, targetEndColumn で対象列を、targetStartRow, targetEndRow で対象行を指定しています。

下例では、C列の2行目から1000行目が更新されたかを確認するサンプルコードとなります。

function onEdit(e)  {
  var targetStarColumn =3 //対象セル(開始列)
  var targetEndColumn = 3 //対象セル(終了列) 
  var targetStartRow = 2  //対象セル(開始列)
  var targetEndRow = 1000 //対象セル(終了列)

  var rowStart = e.range.rowStart //更新開始行の取得
  var rowEnd = e.range.rowStart   //更新終了行の取得
  var columnStart = e.range.columnStart //更新開始列の取得
  var columnEnd = e.range.columnEnd     //更新終了列の取得

  var ssUrl = e.source.getUrl() //スプレッドシートのURL
  var sheet = e.source.getActiveSheet()
  var sheetId = sheet.getSheetId()  //シートID
  var sheetRange = e.range.getA1Notation()  //変更範囲

  var text = '変更箇所の通知\n'
  if (targetStarColumn <= columnStart &&  columnEnd <= targetEndColumn
      &&  targetStartRow <= rowStart &&  rowEnd <= targetEndRow) {
    text = text + ssUrl + '#gid=' + sheetId + '&range=' + sheetRange
  } else  {
    text = '対象範囲外の更新'
  }
  console.log(text)
}

対象範囲が更新された場合に "更新されたシートとセル範囲を指定したURL" を作成します。シートを更新して実行結果をログで確認してください。


メールを送信する

シンプルトリガーのonEdit()ではメール送信ができないので、function名を変更して、トリガーを設定します。

トリガーの設定方法については、

を参考にしてください。

メール送信は GmailAppクラスのsendEmailメソッドを使います。

GmailApp.sendEmail(宛先, 件名, 本文, {オプション})

オプションは省略可能です。(詳細はClass GmailAppを参照してください)

mailTo で指定しているメールアドレスは、自分のメアドに変更してください。

function updateNotice(e) {
  var ssUrl = e.source.getUrl()	//スプレッドシートのURL
  var sheet = e.source.getActiveSheet()
  var sheetId = sheet.getSheetId()	//シートID
  var sheetRange = e.range.getA1Notation()	//変更範囲
  var url = ssUrl + '#gid=' + sheetId + '&range=' + sheetRange

  // メール送信
  var mailTo   = 'sample@gmail.com'
  var subject  = '更新通知'
  var bodyText = '変更箇所の通知\n'
  bodyText     = bodyText + url
	
  GmailApp.sendEmail(
    mailTo,
    subject,
    bodyText
  )
}

特定のセルが更新されたときにメールを出す場合には下例を参考にしてください。

function updateNotice(e) {
  var targetStarColumn = 3	//対象セル(開始列)
  var targetEndColumn = 3	//対象セル(終了列) 
  var targetStartRow = 2	//対象セル(開始列)
  var targetEndRow = 1000	//対象セル(終了列)

  var rowStart = e.range.rowStart //更新開始行の取得
  var rowEnd = e.range.rowStart   //更新終了行の取得
  var columnStart = e.range.columnStart //更新開始列の取得
  var columnEnd = e.range.columnEnd     //更新終了列の取得

  var ssUrl = e.source.getUrl() //スプレッドシートのURL
  var sheet = e.source.getActiveSheet()
  var sheetId = sheet.getSheetId()  //シートID
  var sheetRange = e.range.getA1Notation()  //変更範囲

  var text = '変更箇所の通知\n'
  if (targetStarColumn <= columnStart &&  columnEnd <= targetEndColumn
      &&  targetStartRow <= rowStart &&  rowEnd <= targetEndRow) {
    text = text + ssUrl + '#gid=' + sheetId + '&range=' + sheetRange
    sendMail(text)
  }
}
function sendMail(text)	{
  // メール送信
  var mailTo   = 'sample@gmail.com'
  var subject  = '更新通知'
  var bodyText = text

  GmailApp.sendEmail(
    mailTo,
    subject,
    bodyText
  )
}

上記例では更新されたセル範囲でURLを作成していますが、range=開始行番号:終了行番号とすると、更新された行をフォーカスしたURLが作成できます。

https://docs.google.com/spreadsheets/d/XXXXX/edit#gid=0&range=3:3

上記も、rowStart と rowEnd を使って簡単に作成できます。


GASの基礎を学べる参考図書

ある程度プログラミンがわかっていれば、WEBやYoutubeでも十分に調べられると思いますが、初歩的なところからであれば参考図書は有効な学習手段です。

詳解! Google Apps Script完全入門 [第3版]」は、プラグラミング初心者にわかりやすく説明されています。GASを最初に学ぶ一冊として良書です。

Udemy オススメ講座

【新IDE対応】Google Apps Script(GAS)の基礎を完全習得

【新IDE対応】Google Apps Script(GAS)の基礎を完全習得

講師:事務職たらこ

印象に残りやすい手書き風スライドを用いGASの基本的なプログラミングを気軽に学ぶことができる。本講座でGASを活用した自動化ができるレベルにはなれないが、基礎としては十分。

Post Date:2022年5月5日 

パドルブラシの頭皮マッサージが気持ちいい

【無印良品】パドルブラシ(頭皮ケアブラシ)

ブラッシングによる適度な頭皮への刺激は、頭皮の血行促進効果があります。

薄毛、白髪対策にも頭皮マッサージが効果的とあるので、入浴時には、ケンザンで頭皮マッサージ で紹介した、uka スカルプブラシを使っています。

ケンザン(バリカタ)は、とても気持ちよくシャンプーができます。

下記の動画は、uka(ウカ)スカルプブラシ kenzan(ケンザン)の使い方です。


頭皮マッサージ

頭皮マッサージは、髪に優しいだけではなく、

「3大たるみを引き上げ、白髪・薄毛対策や頭痛・目の疲れ・不眠にも効く」

という謳い文句に惹かれて「10秒で顔が引き上がる 奇跡の頭ほぐし」を購読。

3大たるみ
  • ほうれい線
  • 上まぶた
  • フェイスライン

「奇跡の頭ほぐし」の公式動画で、3大たるみ対策の頭皮マッサージ方法が紹介されています。

効果は別として、とても気持ちいがいいので、湯船に浸かりながら頭皮マッサージに励んでいます。

そして、この本の「ブラシマッサージも白髪・薄毛対策に効果的」の中で、パドルブラシによる頭皮マッサージが紹介されていました。


パドルブラシとは

形状が、カヌーのパドル(オール)に似ていることからパドルブラシと呼ばれているそうですが、一般的なブラシと比べてかなり大きく、ピンの密度が低く(スカスカ)なブラシです。

パドルブラシの特徴
  • クッション性が高い
  • ピンの毛先が丸い
  • ピンの密度が低い
  • ブラシ面が広い

頭皮に優しい刺激

ピンが刺さっているクッション面に空気穴があります。

パドルブラシの空気穴

頭皮に強く押し当てるとこの空気穴から「プシュー」と空気が抜けてブラシが凹みます。

クッション性の高いパドルブラシ

この高いクッション性と先が丸いピンが頭皮に優しい適度な刺激を与えてくれます。そしてブラシ面が広いので頭皮を幅広く捉えてくれるので「気持ちいい!」。

またスカルプマッサージだけではなくブラッシングもでき、髪がふわっと仕上がります。


パドルブラシの選択

「奇跡の頭ほぐし」の中では、下記の3つのパドルブラシが紹介されています。

  1. AVEDA(アヴェダ)
  2. maPEPE(マペペ)
  3. ACCA KAPPA(アッカカッパ)

AVEDAのパドルブラシもAmazon, 楽天でも購入できますが、並行輸入品、海外品との記載がありますので、日本の正規品をということであれば、AVEDA ショップ サイト にある店舗か、アヴェダ 公式 オンラインショップ で購入してください。

また、Amazonで探しているときに、ピンが竹のパドルブラシがありました。ナイロンよりも刺激がありそうですし、竹ピンならブラッシングでの静電気もなさそうです。

と、迷っていたら、MUJIにパドルブラシがあり、値段もかわいいので、こちらを購入。


パドルブラシの使い方

奇跡の頭ほぐし」でパドルブラシの使い方も紹介されています。

  1. 耳上をジグザグにとかす
  2. 生え際から後ろへとかす
  3. ブラシを頭頂部に押し当て「の」の字を描く
  4. 上から下へリンパを流して整える

とありますが、詳細は、書籍で確認してください。

またAVEDA公式チャネルの「【HOW-TO】「パドル ブラシ」で簡単5 STEP ブラッシング」も参考になります。


頭皮マッサージは気持ちいい

洗髪ではuka ケンザンを、そして、頭皮環境改善計画(育毛剤と低温ドライヤー) で紹介している低温ドライヤーで髪の毛を乾かし、とろみ育毛剤を塗布して、パドルブラシで頭皮マッサージをしています。

いずれも

「とっても、気持ちがいい!」

そして、

「ガンバレ、自分の頭髪!!」

象と散歩:人気の投稿(過去7日間)