ナビゲーションをスキップする
All Places > All Things PI - Ask, Discuss, Connect > Japan PI Square > ブログ > 作成者 Jerome Lefebvre

Japan PI Square

12 投稿の作成者:: Jerome Lefebvre 従業員

テクストファイルの内容を取得し、PIに書き込むためのPI Connector for UFLがあります。

それぞれのデータファイルの種類を処理するためにINIファイルの作成が必要です。

このINIファイルにタグ名の取得の仕方などが含まれています。

 

INIファイルの作成をより簡単に作成するために、PI Connector for UFL v1.2に新しい関数が提供されています。

PI Connector for UFL v1.2は現在ベータとして提供されています。

ベータのバージョンを試したいパートナー様がいましたら、下記の開発のリードのChris Coenのメーセージを読んでください。(英語となります)

Beta program now open for PI Connector for UFL version 1.2

 

この新しい関数はCSV型とJSON型があるファイルを簡単に処理するための関数です。

 

例えば、CSVのファイルのにデータの行は「タイムスタンプ、値、値、値、値、...」のフォーマットであれば

データを取得するINIファイルの章は下記のように作成できます。

 

下記に事例では、利用する新しい機能はForeachの制御構造、CsvGetItemの関数、値の列と複数値を同時に送るためのStoreEventsの関数です。

 

Counter = 0
' 各項目をループします。
' __MESSAGEは現在処理する行という変数です。
FOREACH (CsvGetItem(__MESSAGE, ",")) DO
  ' 初の項目は値ではなく、タイムスタンプで、
  ' TimeStampの変数に保存します
  IF(Counter == 0) THEN
    TimeStamp = __ITEM
  ' 他の項目は値なので、値の列に追加する
  ELSE
    Values = Add(__ITEM)
  ENDIF
 Counter = Counter + 1
ENDFOR
' PI Serverに送ります。
StoreEvents(TagNames, ,Timestamp, Values)


 

この新しい関数を利用すると、CSVファイルの処理するために60行ぐらいのINIファイルでできます。

バージョン1.2以前では項目が多いCSVファイルの場合は500以上の行のINIファイルの作成が必要だったので、大部楽になりました。

PI上にアプリケーションを開発するお客様のためにAF SDKの入門資料を公開しました。

 

是非、ダウンロードしてAF SDKについて勉強してください!

https://techsupport.osisoft.com/Downloads/File/2c278307-bcfc-4f66-b0f4-2d9fc980e397

 

VLEも提供されております。

 

同トレーニングの利用するコードは下記に公開されています。

GitHub - osisoft/AF-SDK-Getting-Started-Guide: Lab Exercises for the PI AF SDK for Begginers

 

 

内容:

  • PI Data Archive や PI AF データベースに接続す る
  • アセットの検索
  • データの読み込みと書き込み
  • AF 階層の構築
  • AF イベントフレームを使用した作業

データを集まった後に、データをもう少し分かるためにいろいろな分析があります。

例えば、複数属性を比べて、相関性があるかどうか、あれば重回帰分析ができるかどうか。

今回、Tibco Spotfireの使い、単純なデモを紹介したいと思います。

 

AFでPLCのデータを管理しています。

 

 

相関性があるかどうかPI Vision 2017のXYplotのシンボルで確かめます。

例えば、センサ1とセンサ8は相関性があまりないですが、センサ2とセンサ8のほうが相関性があると確認しました。

(ρの絶対値は大きいほど相関性が高い)

 

それぞれの属性

すべての属性を相互に比較して相関を理解することができます。

ですが、膨大のデータやアセットがある場合は、分析の専門ツールを使って方がいい可能性があります。

そのため、Spotfireを使いました。

Spotfireで分析したいなら、まずはデータを渡すのは必要です。そのため、Integratorを使いました。PI Viewを作成した後に単純にSpotfireでデータを取得できます。

 

Spotfireにデータを渡した後に分析をしはじめます。

SpotfireのData Relationshipsの機能を使い、簡単に相関性の分析できます。

 

 

Data Relationshipsの機能を使うと下記のテーブルさ作成できます。例えば、センサ8について特に興味があれば、センサ1からセンサ16までに相関性があるかどうかすぐに確認できます。

このテーブルを見るとセンサ3、センサ2、センサ7、センサ4とセンサ5はセンサ8と相関性が高いと分かります。(Rの絶対値は大きいほど相関性が高い)

 

センサ3、センサ2、センサ7、センサ4とセンサ5を使い、センサ8の重回帰分析のモデルを作成できます。

モデルを作成するためにSpotfireのLine Similarityを使います。下記のテーブルを作成できます。

 

つまり、センサ8のモデルは下記のように作成できます。

'センサ8' 123.54 - 3.06*'センサ3' - 0.30*'センサ2' - 0.29*'センサ4' - 0.1*'センサ7' + 1.28*'センサ5'

 

こんなような式があれば、AF分析で簡単に実装できます。

 

PI Visionで確認すると良いモデルを作成できるようです。

機能の動作の確認、社内のデモのために、データの作成が必要なケースがあります。

 

そのために、色々なオプションがあります。

 

などあります。

 

今回はAF Analysisを使い、デモダータを作成したいと思います。

 

事前に準備した一分のデータをテーブルで作成しました。(このデータをExcelで作成しました)

 

このAFテーブルの定義です。

 

このデータを表示できる属性を作成します。データはAFテーブルに保存されているので、Table Lookのデータ参照を作成し、下記の定義を設定します。

他のテーブルデータ参照と違って、Whereの条件を使わずにAFテーブルに時系列データがあると設定します。

この属性のトレンドをPSEで下記のように表示されます。データは2017/01/01 00:00:00から2017/01/01 00:01:00までにだけあるので、この間だけにトレンドが現れます。

同じトレンドをループするために、AF Analysisで下記の分析を設定します。

一行目は現在の秒数を使用し、新しいタイムスタンプを作成します。このタイムスタンプはAFテーブルにあるタイムレンジの間にあります。

二行目では、モデルの属性の値を取得します。

 

この設定を使うと下記のデータを作成できます。

PI Coresight 2016 R2に写真を表示するカスタムシンボルについてのブログポストを作成した後に、PI ProcessBookで同じことできますでしょうかという質問を受けました。

 

取り急ぎですが、

 

ブログポストは下記にあります。

PI Coresight 2016 R2にて時系列の写真を表示するカスタムシンボル 

 

  • PI ProcessBookに写真の表示の仕方
  1. 表示したい写真をフォルダーのパスを取得する

  1. タグに表示したいファイル名を保存する。

  1. PI ProcessBookのディスプレイに値のシンボルと画像のシンボルを追加する。

   

  1. 画像のシンボルをVBAでアクセスするため、「スクリプト記述」を有効する。

 

 

 

 

  1. 値が更新すると、この画像も更新するために、下記の関数をプロジェクトに追加する
Private Sub Value1_DataUpdate()
    Dim path As String
    Dim filename As String
    Dim vrStatus As Variant
    Dim vrDate As Variant

    ' このディスプレイを共有する場合は、画像のフォルダーを共有フォルダーにするとお勧め致します。
    path = "C:\OSISoft\OSIsoft_Projects\GeneratePicturesForCoresightDemo\frames"
    filename = ThisDisplay.Value1.GetValue(vrDate, vrStatus)
    
    ThisDisplay.Graphic1.Load (path + filename)
End Sub

先週終わった「Visualization Virtual Hackathon」というPI Coresightのカスタムシンボルのハッカソンの提出が各チームからされました。

 

世界中のPIユーザー様、パートナー様と弊社の社員が参加しました。

それぞれ提出されたカスタムシンボルに紹介ビデオがある上に、ソースコードも記載されています。

 

カスタムシンボルについてご興味がある方、是非、御覧ください。

Visualization Virtual Hackathon: Submissions

 

僕はJSKのチームの一人として参加致しました。PI CoresightにAFツリーを表示するカスタムシンボルを作成しました。

PI Visualization Hackathon - JKS Staleness Alert Tree

AlarmTree.gif

通常、PI Tagの中に時系列データの値(数字)が入っているのが、一般的ですが、

時系列で、動画や定期間に取っている写真を表示したい場合もあります。

このような写真がある場合に表示する方法を紹介します。

 

例として、1秒毎に写真を取っています。

 

タグにこのファイルのデータを保存するのではなく、ファイル名のみを保存します。

表示するために、PI Coresightのカスタムシンボルの作成できます。

 

 

PI Coresightで表示するため、ファイルを保存されたフォルダーを仮想ディレクトリに追加します。

仮想ディレクトリの設定はパスと接続の認証です。

 

物理パスはネットワークの共有のフォルダーの場合は、IISから、共有フォルダーにアクセスするのは規定のユーザーが必要可能性があります。

 

PI Coresightの事例のSimple Valueの入門のhtmlファイル(template)だけを更新しました。

<img src="ExternalPictures/{{value}}" ng-attr-style="height:100%; width:100%; background: {{Fill || 'rgba(255,255,255,0)'}};">

 

これだけすると、PI Coresightですぐ見れます!(時刻をずらすことで画像が切り替わります)

Loop.gif

 

PI Coresightはデフォルトで5秒更新の点は注意が必要です。過去に戻ればその秒数以下のデータであっても画像を確認できます。

 

コードは下記に記載されています。

GitHub - JeromeLefebvre/PictureCustomSymbol: A simple custom symbol to display pictures

 

上記の例をKenji Hashimoto と作成しました。

 

パフォーマンスのテスト

ファイルサーバーが遠く、ファイルのサイズが大きい場合は、表示の時間が掛かるのは当然だと思いますが、

PI Coresightで表示するとファイルをファイルサーバーからローカルにコピーすると同じぐらい時間を表示すると確認しました。

 

※テストの環境:

マシンが3つ:

  • ファイルサーバー
  • PI ServerとPI Coresight
  • クライアント

ネットワークのスピード:  

     レイテンシ:1ms

ファイルのサイズ: 2.2MB

 

クライアントのマシンで次の写真を表示するための時間:80msから170msまでです。

 

 

ビデオの表示

 

もし、ビデオをPI Coresightに表示したい場合は、別の方法が幾つかあると思いますが、上記の方法で表示したいなら、

ビデオをファイルに分割が必要です。

ビデオをフレームに分割ツールも幾つかがあると思いますが、

私ではPythonのOpenCVのライブラリを使用し、MP4のビデオからJPGのファイルに問題なく分割できました。

OSIsoft Japan サポートチームは日本のお客様向けに便利な記事や設定方法などの資料を多数掲載しております。

 

Japan PI Squareのスペースをフォローして頂くと、新しい投稿があった際には、いち早くお知らせを受け取ることができます。

 

 

 

お知らせを受信する方法

 

Japan PI Squareの上右に「フォローする」メニューがあります。

このメニューを選択していただくと、二つのオプションが現れます。

   

1.「フォロー」にチェックを入れると、PI Squareの更新のお知らせがご登録のEmailに送られます。

2.「受信トレイ」にチェックを入れると、PI Squareの更新のお知らせが、PI Squareの受信トレイに送られます。

 

PI Square受信トレイ

 

通知メールの設定

PI Squareからのお知らせメールが多いと感じる場合、またはメールが受信できていない場合はPI Squareの個人設定を確認してください。

個人設定画面の「受信トレイ通知」メニューで、通知メールの設定を変更できます。

お知らせメールが多い場合は、概要のみ受信する設定に変更することも可能です。

 

 

 

 

 

今後ますますJapan PI Squareはコンテンツを増やしていく予定です。

この機会にぜひJapan PI Squareをフォローしていただき、投稿されるコンテンツをご活用ください!

GitHub - JeromeLefebvre/SilentInstaller: OSIsoftのサイレントインストールの例のページに下記にあるファイルをダウンロードできます。

事前

PI Systemの管理者は、多くのマシンにPIの製品をインストールしなくてはならず、多くの場合、自動インストール(サイレントインストール)を利用すると、効率よく作業できます。 そのサイレントインストールに使用するsilent.iniの書き方は、資料がとても少ないため、今回、その例を作成いたしました。

作業と環境の条件

今回はPI Buffer SubsystemはインストールせずにPISDK201664ビットのみをサイレントインストールにてインストールします。 (注意:平常は32ビットと64ビットの両方をインストールします。短い例を作成のため、64ビットのみのサイレントインストールさせて頂きます。)

環境の条件:

  1. PI-TestPI-Mainという二つPI Data Archiveがあり、規定サーバーはPI-Mainになり、「Production」というPI-Mainの別名があります。
  2. Domainositestです。
  3. PI Data Archiveとの接続は5450の規定ポートを利用します。
  4. PI Buffer Subsystemをインストールしない。
  5. 事前条件の.Net 4.6がすでにインストールされているものとします。

KST_INI_FILEの準備

KST(Known Server Table)はこのマシンに登録されているPI Data Archiveの一覧リストになります。 PI SDKにインストールすると、このリストにいくつかのPI Data Archiveを登録できます。 登録するために、「KST_INI_FILE」の作成が必要です。

KST_INI_FILE

[NUM_SERVERS]
; PI Data Archiveの数
NUM = 2
[PI_SERVER]
; それぞれのPI Data Archiveの名前
1 = PI-Main
2 = PI-Test
; PI Data Archiveのネットワークのパス
[PI_PATH]
1 = PI-Main.ositest.com
2 = PI-Test.ositest.com
; ポートを記入したい場合は、[PI_PORT]を使えますが規定の5450ポートの利用しているので、設定の必要がありません。
; 規定のPI Data Archiveは1です。
[PI_DEFAULT_SERVER]
1 = TRUE
; それぞれのPI Data Archiveのアリアスです。
[PI_ALIAS]
1 = Production

SILENT.INI

新規のインストールではSETUPKITNUMSETUPMODULESSETUPMODULESCOMMANDLINEの四つのモジュールがあります。

SETUPKIT

[SETUPKIT]
; インストールの表示名前
; 下記にあるNAMEとDISPLAYNAMEのパラメーターはインストールのログにでます。
NAME = SetupPISDK
DISPLAYNAME = PI Software Development Kit (PI SDK) 2016 64 bit
; サイレントインストールを実行すると下記の四つの設定はすべてTRUEに設定する
SUPPRESSCOMPLETIONMESSAGE = TRUE
SUPPRESSPROGRESSMESSAGE = TRUE
SUPPRESSHEADERMESSAGE = TRUE
SUPPRESSDIALOGS = TRUE

NUMSETUPMODULES

[NUMSETUPMODULES]
; 下記にモジュールの数
NUM=4

SETUPMODULES

setup.exeは、以下のモジュールを使用し、COMMANDLINEの下にリストされている与えられたパラメータを使用してインストーラーを実行します。

[SETUPMODULES]
; 下記の三つのmsiのファイルは事前条件のアプリケーションになります。
1 = MSRuntimes\MSRuntimes.msi
2 = VS2008Redistrib\MSVC9SP1x64Redistrib
3 = VS2015Redistrib\MSRuntimesVS2015u2_x64
;PI SDKの64ビットのインストーラー
4 = pisdk\PISDK_x64.msi

COMMANDLINE

下記の四つのインストーラーではマシンを再起動しないで済むので、 REBOOT=Suppress」と「/norestart」のパラメーターを使い、無駄な再起動が起きないようにインストールします。

[COMMANDLINE]
; MSRuntimes
1 = ALLUSERS=1 REBOOT=Suppress /qn
; 2008 SP1 Runtimes (64-bit)
2 = /q /norestart
; 2015 update 2 Runtimes (64-bit)
3 = /q /norestart
; PI SDK (64-bit)
; KST_INI_FILEのパラメーターはKSTのファイルのフルパスです。
; INSTALLDIRは%pihome64%のフォルダーになります。
4 = ALLUSERS=1 REBOOT=Suppress /qn INSTALLDIR="C:\Program Files\PIPC" IMPORT_KST=1 KST_INI_FILE="c:\kst.ini"

インストーラーを実行します

kst.iniのファイルをKST_INI_FILEに保存し、 PISDK_2016_が展開されたフォルダーにsilent.iniのファイルを入れ替え後に、下記のコマンドを実行します。

     silent.bat -install

実行後、インストーラーの結果が表示されます。 無事にインストールしたかどうか確認します。

 

他の製品のサイレントインストール

PI SDKに含まれているsilent.iniのファイルにはPI Buffer Subsystemなど、他の製品の設定例もあるので、参照になります。

下記のKB(英)もあります。

  1. KB01034 - How to Silently Install OSIsoft Software
  2. 3044OSI8 - How to perform a silent install of PI ProcessBook
  3. 3045OSI8 - How to perform a silent install of PI DataLink

今年の春から、ご要望の多いテクニカルサポートのKBを日本語に翻訳しております。

KB Articlesのサイトにアクセスすると、日本語の記事の一覧が表示されます。

 

追加で翻訳してほしいKBがあれば、ぜひこのブログにコメントしてください!

お客様の要望が多い場合には、次の翻訳対象として扱わせていただきます。

 

その他、KBの日本語の内容につきましても、何かフィードバックやコメント等ございまいたら、

ぜひ本記事に、コメントしてみてください。

    2016年8月2日

    OSIsoftのコミュニティサイト PI Squareのご案内

PI Squareについて

PI Squareは2014年末から運用されているOSIsoftのオンラインコミュニティサイトです。

世界中のPI Systemのユーザー様をはじめとし、OSIsoftのサポートスタッフ、製品開発者なども参加し、PI Systemのユーザー様の参考になるような情報交換の場として提供しています。

 

 

PI Squareのログインについて

OSIsoftのテクニカルサポートサイトでも使用いただいているSSOアカウントでログインします。

 

 

表示言語の設定

PI Squareは日本語でもご利用いただけます。英語で表示される場合は、下記設定を編集してください。

   

Preferences(個人設定)ページの「Language」にて「Japanese」を選択し、画面下部のSaveボタンをクリックします。

 

プライバシー

会社名を公開するかどうかも設定可能です。

プロフィールの編集 > プライバシータブ > 会社: の部分を「あなた自身」とすると、会社名は公開されません。

 

コンテンツの検索

拡大鏡のアイコンをクリックすると、コンテンツの検索が可能です。興味のあるトピックを記入すると自動で検索結果を表示します。

   

    PI Squareがオープンする2014年末以前は、vCampusというコミュニティサイトが運用されていました。そのため、英語のコンテンツが多くあります。興味があるトピックについては英語での検索も一度お試しください。

    今後、日本のユーザー様と一緒に日本語のコンテンツを増やしていきたいと考えています。

 

 

スペースについて

PI Squareにあるコンテンツはスペース(Space)ごとに分けられています。

 

Japan PI Square (日本のお客様向けのスペース)

All Things PI > サブスペースとプロジェクト > Japan PI Square

リンクはこちらです。Japan PI Square

 

PI Developers Club (開発者向けのスペース)

   

PI Developers ClubはPI Data Access製品を使用している、開発者向けのスペースです。コーディングに関する質問はこちらに投稿できます。(質問方法については後述します)

例として、PI AF SDKに関連した情報を閲覧したい場合は、PI Developers Clubのスペースに行き、下図のように「PI .NET Framework」をクリックしてください。PI AF SDKをはじめとした.NETを使用した製品に関する投稿が確認できます。

   

 

Learn PI (オンライン講座)

自分のペースでOSIsoftの製品について学習したい場合は、Learn PIというスペースをクリックしてください。こちらからオンラインコースを受講することが可能です。

   

   

PI AF、PI DataLink、分析などの講座があります。現在のところコンテンツは英語ですが、2016年以降に日本語版のコンテンツも公開予定です。

 

質問方法

PI Square内の情報を確認し、それでもわからないことがあれば、ぜひ質問をしてみてください。 Japan PI Squareから質問できます。

Japan PI Square

   

例えば、海外ではあまり使われていないPI Melsec Interfaceについてはコミュニティー上に情報が少ないため、このインターフェースについて質問をしてみます。

   

質問するボタンをクリックすると、記載した内容がタイトルとなり投稿が編集できるようになります。

質問の詳細も記載します。

   

 

入力が完了したら、投稿するプレイスを決めます。Japan PI Squareから質問すると、デフォルトでJapan PI Squareが入力されています。

 

変更する場合、変更のリンクより、スペース名を入力、または「プレイスを参照」をクリックしてスペース名の一覧を表示し、選択します。

 

開発に関する質問であれば、PI Developers Clubのスペースを選択してください。(日本語であれば Japan PI Squareで構いません)

そのほか、タグを付ける機能もあるので、日本語であればjapaneseなどのタグを付けてください。カテゴリも関連するものを可能な限り選択するのが良いでしょう。

日本語で投稿していただくと、日本語のできるエンジニアが回答することが多くなります。英語でご質問いただければ、世界中の技術者が回答してくれる可能性が高くなります。

たくさんのご利用をお待ちしております。

(This note and the code comments are in Japanese and I do not intend to translate it to English, but the latest version of the code is posted on GitHub. The code should be readable enough that if you ignore all the comments, I believe it would still be a useful (but very brief) intro to using python to make requests against PI Web API.)

PI Web APIの特徴はプログラミングの言語とプラットホームを自由に選べることです。

 

Pythonを使い、PI Web APIのGETのリクエストの例を紹介したいと思います。

更に、テスト環境でよく使われている自己署名証明書についての設定も紹介します。

 

構成:python3 (3.5.0のみテスト)

pipのパッケージ: requests (2.8.1のみテスト)

Requestsについてパッケージのホームページは参考になります。

 

コードの最新版はGitHubに乗せていますので、ご参考ください。

 

■ 基本のコード

import json

import requests
# PI Web APIのリクエストはHTTPSが必要ですが、
# テストの環境では、PI Web APIのサーバーに自己署名証明書しかないことが多いです。
# この場合、HTTPSのリクエストをするとrequestsのパッケージか警告またはエラーが発生します。
# 下記の行は警告を無視するためです。
requests.packages.urllib3.disable_warnings()

# PI Web APIのサーバー名を記入してください。
piwebapi_server = ''
base_url = 'https://' + piwebapi_server + '/piwebapi/'

# PI Web APIにて認証は三種類ありますが、このポストではKerberosについては言及しません。
# Basic認識を使う場合はユーザー名とパスワードを送る必要があります。
# Anonymousを使う場合は下記のように空白でよいです。
user = ''
password = ''

def pi_get_requests(action, parameters={}):
  # pi_get_requestsの関数は変数として:
  # actionにelement、assetdatabasessetなどのController(Method)名か
  #   
  # parametersに"Url Parameters"を設定する

    # verify=Falseのパラメーターは自己署名証明書しかない環境では
    # エラーを発生させないためのパラメーターです。
    response = requests.get(url=base_url + controller,
                            params=parameters,
                            verify=False,
                            auth=(user, password))
    return json.loads(response.text)

# pi_get_requestsを綺麗に出力するため
def pprint(response):
    print(json.dumps(response, indent=4, sort_keys=True))

 

このポストで使用しているpi_get_requestsの構成は、piwebapi/helpのActionの構成を模倣するように設計されています。

 

■使用例

piwebapi/help/controllers/assetserversのページを見るとGet、GetByPathなどのActionsがあります。

 

ヘルプを参照すると、GetByPathのActionについて下記の情報が見つかります。

GetByPath
GET assetservers

URL Parameters

  • path

 

このヘルプから分かることは以下です:

  • Getのリクエストを使う
  • Controllerはassetserversです
  • Parameters(変数)はpathの変数のみがある

 

Pathの変数はAF Serverのパスになります。

# AF Server名を記入してください。
af_server_name = ''
parameters = {'path': r'\\' + af_server_name}
af_server = pi_get_requests('assetservers', parameters)

 

assetserversの他のActionにはGetがあります。

Get
GET assetservers/{webId}

Getの場合はWebIDが必要ですが、上記のaf_serverの変数から取得できます。

pi_get_requestsの第1引数にcontroller名+WebIDを設定し、第2引数のパラメーターは無しとすることでAF Serverの情報が取得できます。

webID = af_server['WebId']
pi_get_requests(r'assetservers/' + webID) == af_server # True

 

上記の例でWebIDを除くとすべてのAF Serverが取得できます。

allServers = pi_get_requests('assetservers')

 

■あるデータベースのエレメントを反復する

 

# piwebapi/help/controllers/assetdatabase/actions/getelementsによると
# あるデータベースのエレメントを収集したい場合は下記の様に収集できます。
# GET assetdatabases/{webId}/elements
af_server = ''
af_database = 'Pumps'
parameters = {'path': r'\\' + af_server + '\\' + af_database}
pump_db_web_Id = pi_get_requests('assetdatabases', parameters)['WebId']


# assetdaabases/{webId}/elementsのURLを作成し、
# エレメントを反復する
pumps = pi_get_requests('assetdatabases\{0}\elements'.format(pump_db_web_Id))


for element in pumps['Items']:
    print(element['Name'], element['TemplateName'])

web_Id))  for element in pumps['Items']:     print(element['Name'], element['TemplateName'])

 

■デバッグの情報

エラーが発生すると、レスポンスのヘッダーなどを見て何かあったと分かるケースが多いので、

pi_get_requestsを下記の様に編集するとこの情報が出力できます。

def pi_get_requests(controller, parameters={}, debug=False):
   # pi_get_requestsの関数は変数として:
   # controllerにelement、assetdatabasessetなどのController(Method)名
   # parametersに"Url Parameters"を設定する

    # verify=Falseのパラメーターは自己署名証明書しかない環境では
    # エラーを発生させないためのパラメーターです。
    response = requests.get(url=base_url + controller,
                            params=parameters,
                            verify=False,
                            auth=(user, password))
    if debug:
        # レスポンスなどを出力する
        print('デバッグのための情報です')
        print('{0: <10} {1}'.format('url:', response.url))
        print('{0: <10} {1}'.format('status:', response.status_code))
        print('{0: <10} {1}'.format('reason:   ', response.reason))
        print('{0: <10} '.format('headers:'))
        for key in response.headers:
            print('     {0: <17} {1}'.format(key + ':', response.headers[key]))
        # print('{0: <10} {1}'.format('text:'), response.text)
    return json.loads(response.text)

 

■セキュリティーについて

コーディングのファイルにパスワードを記入するのは良くないので、下記の様に実行する時にプロンプトを表示するようにもできます。

import getpass
_password = ''
def password():
    if _password != '':
        return _password
    password = getpass.getpass('please type in your password: ')
    return password

requestsのパッケージのSessionの機能も役立つと思います。

 

今後、Update、Deleteなどの例を記載するつもりです。