Repository navigation
PTZ
skrtk98 edited this page Oct 24, 2026
·
1 revision
ONVIF の PTZ サービスで動かす。ズームは無い。
GetNodes・GetConfigurations の値:
- 位置・移動量・速度は、どれも −1〜1 に正規化した値。速度の空間(PanTiltSpeedSpace)は 0〜1。
- DefaultPTZSpeed は x=1.0、y=0.89。
- プリセットは 8 件まで。保存・移動・削除を実機で確かめた。
- HomeSupported=false(GotoHomePosition は ActionNotSupported)。
- PresetTour に対応すると答える(MaximumNumberOfPresetTours 8、操作は Start・Stop・Pause)。実機では試していない。
- PTControlDirection の EFlip・Reverse はどちらも Mode OFF。
- pan の向きが、速度と位置で逆になる。 ContinuousMove の速度は正の pan で画面が右へ動く。一方、位置(GetStatus・AbsoluteMove・RelativeMove)は、正の pan で左を向く。tilt はどちらも正で上。
-
画像の上下反転(flip)をオンにして天井に逆さに付けると、首振りは上下左右とも逆になる。 step up で部屋の下を、step left で部屋の右を向いた。
ライブラリはこれを
TapoC220.invertedとdetect_inverted()で吸収している。
- ContinuousMove の Timeout は整数の秒だけ受け付ける。
PT1Sは受け付けられ、1 秒で自分で止まった。 -
PT0.5Sを送ると、カメラの HTTP サーバが壊れた応答を返す。NUL で区切ったヘッダの文字列のあとにHTTP/1.1 500が続く形で、Python の http クライアントはBadStatusLineで落ちた。 - Timeout を省くと、カメラの既定(180 秒)まで動き続ける。
1 秒間 ContinuousMove したときの位置の変化(指示の往復の時間を含む粗い値):
| 軸 | 速度 | 位置の変化 |
|---|---|---|
| pan | −0.1 | +0.056 |
| pan | +0.5 | −0.146 |
| pan | +1.0 | −0.204 |
| tilt | +0.5 | +0.711 |
正の pan の速度で位置が負に動くのは、上の「向き」の逆転による。tilt は正規化した値に対して速い。
- 移動の指示には、すぐ応答が返る(動き終わるのを待たない)。
- GetStatus の位置は動いている途中も変わるが、MoveStatus は常に UNKNOWN。動き終えたかは、位置が変わらなくなったことで判断するしかない。
- 動いている途中に次の移動を送ると、前の移動は打ち切られる。
- RelativeMove に Speed 要素を付けても受け付けられる。