自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

APIで取得したJSONをいい感じにスプレッドシートに展開したい

SlackなどのAPIからJSONデータを取得したあとそれをスプレッドシートに展開する場合、オブジェクトのkeyを一個ずつ指定して二次元配列を作ってシートに展開...みたいなことをやっていました。 しかし、いちいちkeyを指定してやるのが面倒だしコードも見やす…

MacroDroidを使ってSESAMEのステータスをワンボタンで確認する

サクッとステータス確認。80%くらいあると思ったら意外と減ってた。 昨年IFTTTの有料化によって回避策として投稿した記事にて 「セサミのステータス(バッテリー、ロック状態)をウィジェットボタン一つでわかるようなスクリプトは出来るでしょうか?」 と…

Rakuten miniとMacroDroidを使って登下校時の通知システムを0円で作る

1GBまで0円のRakuten Mobileに最小スマホRakuten miniと3つまでマクロ作成が無料なアプリMacroDroidで完全無料の登下校通知システムを作ってみました。

プライベートチャンネル自動生成 GASでSlackスラッシュコマンド(後編)

GAS

前回、GASでSlackのスラッシュコマンドのテストを行いました。 無事に応答が返ってくるのも確認できたので実際にプライベートチャンネルを作成する処理を書いていきます。 codelife.cafe 動作概要の確認 スラッシュコマンド /soudan を実行 プライベートチャ…

相談用プライベートチャンネル自動生成 GASでSlackのスラッシュコマンド(前編)

GAS

会社の同僚からこんなのをやりたいとURL付きのチャットが来たので、GASで実装できるか検証。 「Slackのスラッシュコマンドを叩くと労務相談用のプライベートチャンネルを自動生成して適切なユーザを参加させる」

Node-RED×Yahoo気象情報API×Slack×Alexaで雨雲通知システムを作る

Yahoo気象情報APIを15分毎に参照して自宅の座標に一定数以上の降水量予測が検知された場合、Slackのhome_speakerチャンネルに予測日時と予測降水量を投稿しつつ、Alexaに読み上げてもらうというものです。

毎朝GASでGoogle Tasks(ToDo)を取得して期限切れタスクをSlackで教えてもらう

GAS

この記事は UG Advent Calendar 2020 23日目の記事です。 カレンダーやGmailの横にある Google Tasks はシンプルかつ使いやすい。 でもここに書いたは良いけど定期的に棚卸ししたりできているかというと...。 ということでGASで取得してスプレッドシートにサ…

beebotteのクライアントにPowerShellを使ってリモートでWindowsをスリープモードにする

この記事は UG Advent Calendar 2020 22日目の記事です。 今日、何を思ったかPowerShellでMQTTクライアントを動かしてBeebotteのシステムコールトピックに「スリープモード」がパブリッシュされたら自動でデスクトップPCをスリープするというのを作ってみた…

GASでGoogleカレンダーの予定を取得して稼働計画表を生成する

この記事でできるようになること ・GASでGoogleカレンダーに入っている予定を取得してスプレッドシートに出力 ・複数のカレンダーも同時取得 ・日付範囲を指定して取得 ・特定の件名の予定は取得対象から除外する(正規表現) ・終日の予定を除外する

SESAMEスマートロックをMacroDrodのウィジェットボタンからAPI経由で操作する

40秒で仕度できた のでは遅いんですよ

Powershellスクリプトを実行するだけでWindows10を自動的に最新状態にしたい

前回のWindows10Upgrade自動化スクリプト と組み合わせて通常のWindowsUpdate含め全自動でWindows10を最新状態にしたい。 ということで欲しい機能を色々まとめたものを作ったのでGithubにアップしております。 github.com 概要

Windows10 Feature Updateを完全自動化するPowershellスクリプト

最新バージョンのインストーラからSetup.exeを取り出して引数に /auto upgrade を渡すことでFeature Updateも実行可能だったけど、インストーラ用意するのすら面倒。 www.ka-net.org どうにかPowerShellのコマンドだけで出来ないか調べてみていたとき、検索…

LINEボットにメッセージを送ったら特定メンバーに転送する アナウンスボットをGASだけで作ってみた2(GASライブラリを使う)

codelife.cafe 前回作成したメッセージ転送LINE bot 「Message Broker」ですが、GAS用のライブラリを作ってくれている方がいたので試してみました。 最終更新が約2年前なので大丈夫かなと思いましたが使えました。 github.com ライブラリを読み込み リソース…

LINEボットにメッセージを送ったら特定メンバーに転送する アナウンスボットをGASだけで作ってみた

GAS

会社の同僚からこんなのできるー?とお題を頂いたので2時間くらいで作ってみました。 MQTTみたいだなと思ったので用語をそっちに合わせてみた。 2020/10/03 追記 GASライブラリ利用パターンもやってみました。 codelife.cafe 動作概要 構築手順 1. LINE bot…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう④ - Google Homeを喋らせるのは簡単

前回はSlackの特定チャンネルに投稿したらAlexaが読み上げるという状態にするため、Slack Botの作成、ngrokで公開するところまでを行いました。 今回は Google Home / Google Home mini / Google Nest なども喋れるように「node-red-contrib-cast」モジュー…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう③ - Slack Botとngrok導入

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。 前回 Slack Botを…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう② - Alexa用モジュール追加

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。 前回 Node-REDの管…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう① - Node-RED初期設定

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。 インストールは公…

Windows10のパッケージ管理にScoopを使ってみる

Scoopは、Windows用のコマンドラインインストーラー。 github.com github.com gitをインストールするとしたら scoop install git のようにコマンド入力するだけで完了できるので環境構築がかなり楽。Chocolateyが有名だがScoopはレジストリを汚さないポータ…

GoogleスプレッドシートのQUERY関数でCONCATが使えない件

今回やりたかったこと ちょっとトリッキーなやり方 WHEREとか使わない、ただ配列参照で結合したい場合 中間テーブルを作ることになっても良い場合 参考になったページ 脱線してたまたま見つけたけど便利そうな情報 Googleスプレッドシートには QUERY関数とい…

WindowsのSSIDごとにWi-Fi接続先の優先順位を設定するにはnetshコマンド

Wi-Fi接続して使っているときたまにあるのが「そっちじゃなくてこっちのアクセスポイントに接続して欲しいんですけど!」ってやつ。 過去の接続回数とかから自動的に優先順位を決めて接続しているらしいけどそれを設定画面上から操作する手段がない。 どうや…

Power Queryで相対的な日付範囲フィルタを設定する計算式チートシートと解説

ExcelやPower BIでデータを取り込み・集計する際には前処理としてPower Queryでデータ型を定義したり、複数のデータテーブルを統合・結合したり、不要なデータを削除したりするわけですが、相対的な日付範囲のフィルタ(例えば当月末以前など)は詳細エディ…

【Hyper-V入門】Windows10 Proで使える仮想マシン環境 Hyper-V に評価版のWindows10をインストールしてみた

Windows 10 Pro で利用可能な機能 Hyper-V。 今まで仮想マシンはOracle Virtual Boxを使っていましたが、BitLockerの動作検証が必要になったため、仮想TPMが利用可能なHyper-Vを試してみました。 ※Windows 10 Pro または Enterpriseライセンスが必要です。Ho…

Windows10のサンドボックス機能を試してみる

フリーソフトの検証などの際に現環境にインストールしてしまうとレジストリが汚れるとか、いらないファイルやフォルダが大量に生成されて邪魔だとか、別のソフトとの相性によって正常に動かないとか、様々な問題があって検証するのに無駄な時間を使ってしま…

PowerShellの実行結果をMicrosoft Teamsでbotに自動投稿させるのは割と簡単

Slackでは着信Webhookインテグレーションでチャットに投稿させるが、実はMicrosoft TeamsでもIncoming Webhookコネクタがあり、同じことが簡単に出来るというお話。

For文での線形探索より高速 VBAで連想配列 Dictionaryオブジェクト

以下のような検索キー列がユニークであるテーブルからデータを取得したい(VLOOKUPみたいなイメージ)場合、処理回数が多いと `WorksheetFanction.Vlookup` やFor文での線形探索では時間がかかり過ぎる。 そんなときに役立つのが連想配列(Dictionaryオブジ…

タスクスケジューラのxmlをコマンドで直接編集してバッテリーモードでも実行させる

バッチファイルで自分自身をタスクスケジューラに登録して再起動後も実行させようと思っても「コンピューターを AC電源で使用している場合のみタスクを開始する(P)」という項目がONの場合はノートPCが電源に接続されていない状態だとタスクを実行してくれな…

自宅で開発・導入しているIoT機器や機能を晒してみる

多分生まれつきとにかく楽をしたい気持ちが強いが、GoogleアシスタントとAlexaなどの音声アシスタント、超小型の低消費電力コンピュータのRaspberry Pi、便利なIoTデバイスの登場がそれに拍車をかけた。 もしかしたら誰かの参考になるかもしれないので晒して…

New-DistributionGroup のMembers引数に配列を渡したいときはハッシュテーブルスプラッティング

`Invoke-Command` や `Invoke-Expression` なども考えられるが、今回の例に最も適しているであろう「スプラッティング」という方法を用いる。

Slackのログ(JSONファイル)をExcel PowerQuery だけでなるべく楽に解析

CSVならあまり頭を使わなくてもそのまま開いたり、日付ごとのファイルでもbatで統合するなりすればいいがJSONファイルをExcelで扱うにはPowerQueryが最適。VBA-JSONを使う手もあるが、初心者向けではない。