Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't change many settings with Python SDK #648

Open
mmoollllee opened this issue Dec 22, 2024 · 3 comments
Open

Can't change many settings with Python SDK #648

mmoollllee opened this issue Dec 22, 2024 · 3 comments
Assignees
Labels
feedback requested Further information is requested python sdk Python SDK question A discussion / question. Not sure if bug or enhancement.

Comments

@mmoollllee
Copy link

mmoollllee commented Dec 22, 2024

Is your feature request related to a problem or use case? Please describe.
I've been trying to set up a GoPro Hero 13 to be managed by a RaspberryPi to remotely control the GoPro.
I'm failing to switch from HDR to Night Mode with the following code.
Other features like changing the lens mode don't work either.

import asyncio
from open_gopro import WirelessGoPro, Params, proto

async def gopro():
   async with WirelessGoPro() as gopro:

      assert (await gopro.ble_command.load_preset_group(group=proto.EnumPresetGroup.PRESET_GROUP_ID_PHOTO)).ok
      print("Switched to Photo Mode")
      assert (await gopro.ble_setting.camera_ux_mode.set(Params.CameraUxMode.PRO)).ok
      print("Switched to Pro UX Mode")

      print("Photo Easy Mode Values:")
      print(await gopro.ble_setting.photo_easy_mode.get_capabilities_values())

      print("Photo Mode Values:")
      print(await gopro.ble_setting.photo_mode.get_capabilities_values())

      print("Photo Mode V2 Values:")
      print(await gopro.ble_setting.photo_mode_v2.get_capabilities_values())

      print("Trying to switch Photo Mode V2 to Night:")
      assert (await gopro.ble_setting.photo_mode_v2.set(Params.PhotoModeV2.NIGHT)).ok 

if __name__ == "__main__":
    asyncio.run(gopro())

returns

python gopro.py
Switched to Photo Mode
Switched to Pro UX Mode
Photo Easy Mode Values:
No parser defined for SettingId.INTERNAL_41
No parser defined for SettingId.INTERNAL_41
No parser defined for SettingId.INTERNAL_42
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_44
No parser defined for SettingId.INTERNAL_45
No parser defined for SettingId.INTERNAL_47
No parser defined for SettingId.INTERNAL_47
No parser defined for SettingId.INTERNAL_54
No parser defined for SettingId.INTERNAL_54
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_83
No parser defined for SettingId.INTERNAL_83
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_86
No parser defined for SettingId.INTERNAL_86
SettingId.LED does not contain a value bytearray(b'd')
No parser defined for SettingId.INTERNAL_105
No parser defined for SettingId.INTERNAL_105
No parser defined for SettingId.INTERNAL_105
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_114
No parser defined for SettingId.INTERNAL_114
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_116
No parser defined for SettingId.INTERNAL_117
No parser defined for SettingId.INTERNAL_117
No parser defined for SettingId.INTERNAL_117
SettingId.PHOTO_FOV does not contain a value bytearray(b'\x1f')
SettingId.PHOTO_FOV does not contain a value bytearray(b' ')
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
SettingId.ANTI_FLICKER does not contain a value bytearray(b'\x00')
SettingId.ANTI_FLICKER does not contain a value bytearray(b'\x01')
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_168
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x03')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x04')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x06')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x07')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x08')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\t')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\n')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'd')
No parser defined for SettingId.INTERNAL_205
No parser defined for SettingId.INTERNAL_205
No parser defined for SettingId.INTERNAL_220
No parser defined for SettingId.INTERNAL_220
No parser defined for SettingId.INTERNAL_221
No parser defined for SettingId.INTERNAL_221
No parser defined for SettingId.INTERNAL_222
No parser defined for SettingId.INTERNAL_222
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_226
No parser defined for SettingId.INTERNAL_226
No parser defined for SettingId.INTERNAL_228
No parser defined for SettingId.INTERNAL_228
No parser defined for SettingId.INTERNAL_228
No parser defined for SettingId.INTERNAL_228
{
    "id" : "QueryCmdId.GET_CAPABILITIES_VAL",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : {
        "SettingId.RESOLUTION" : [
            
        ],
        "SettingId.INTERNAL_5" : [
            
        ],
        "SettingId.INTERNAL_6" : [
            
        ],
        "SettingId.INTERNAL_13" : [
            
        ],
        "SettingId.INTERNAL_19" : [
            
        ],
        "SettingId.INTERNAL_24" : [
            
        ],
        "SettingId.INTERNAL_30" : [
            
        ],
        "SettingId.INTERNAL_31" : [
            
        ],
        "SettingId.INTERNAL_32" : [
            
        ],
        "SettingId.INTERNAL_37" : [
            
        ],
        "SettingId.INTERNAL_41" : "0c",
        "SettingId.INTERNAL_42" : "08",
        "SettingId.INTERNAL_43" : "04",
        "SettingId.INTERNAL_44" : "09",
        "SettingId.INTERNAL_45" : "08",
        "SettingId.INTERNAL_47" : "0c",
        "SettingId.INTERNAL_54" : "01",
        "SettingId.AUTO_OFF" : [
            "AutoOff.NEVER", "AutoOff.MIN_1", "AutoOff.MIN_5", "AutoOff.MIN_15", "AutoOff.MIN_30"
        ],
        "SettingId.INTERNAL_62" : "00:3d:09:00",
        "SettingId.INTERNAL_64" : "0c",
        "SettingId.INTERNAL_75" : [
            
        ],
        "SettingId.INTERNAL_76" : [
            
        ],
        "SettingId.INTERNAL_83" : "01",
        "SettingId.INTERNAL_84" : "0b",
        "SettingId.INTERNAL_86" : "01",
        "SettingId.LED" : "bytearray(b'd')",
        "SettingId.INTERNAL_102" : [
            
        ],
        "SettingId.INTERNAL_105" : "02",
        "SettingId.INTERNAL_111" : [
            
        ],
        "SettingId.INTERNAL_112" : "68",
        "SettingId.INTERNAL_114" : "01",
        "SettingId.INTERNAL_115" : "0c",
        "SettingId.INTERNAL_116" : "64",
        "SettingId.INTERNAL_117" : "02",
        "SettingId.INTERNAL_118" : [
            
        ],
        "SettingId.VIDEO_FOV" : [
            
        ],
        "SettingId.PHOTO_FOV" : "bytearray(b' ')",
        "SettingId.MULTI_SHOT_FOV" : [
            
        ],
        "SettingId.PHOTO_OUTPUT" : [
            "PhotoOutput.STANDARD", "PhotoOutput.RAW", "PhotoOutput.HDR", "PhotoOutput.SUPERPHOTO"
        ],
        "SettingId.INTERNAL_126" : [
            
        ],
        "SettingId.MEDIA_FORMAT" : [
            
        ],
        "SettingId.INTERNAL_129" : "70",
        "SettingId.INTERNAL_130" : "70",
        "SettingId.INTERNAL_131" : "70",
        "SettingId.INTERNAL_132" : "70",
        "SettingId.ANTI_FLICKER" : "bytearray(b'\x01')",
        "SettingId.HYPERSMOOTH" : [
            
        ],
        "SettingId.INTERNAL_139" : [
            
        ],
        "SettingId.INTERNAL_144" : "20",
        "SettingId.INTERNAL_145" : [
            
        ],
        "SettingId.INTERNAL_146" : [
            
        ],
        "SettingId.INTERNAL_147" : [
            
        ],
        "SettingId.INTERNAL_153" : [
            
        ],
        "SettingId.VIDEO_DURATION" : [
            
        ],
        "SettingId.INTERNAL_157" : [
            
        ],
        "SettingId.INTERNAL_161" : "c8",
        "SettingId.INTERNAL_164" : [
            
        ],
        "SettingId.INTERNAL_165" : [
            
        ],
        "SettingId.INTERNAL_166" : [
            
        ],
        "SettingId.HINDSIGHT" : [
            
        ],
        "SettingId.INTERNAL_168" : "00:00:00:00",
        "SettingId.PHOTO_INTERVAL" : [
            "PhotoInterval.OFF", "PhotoInterval.SEC_0_5", "PhotoInterval.SEC_1", "PhotoInterval.SEC_2", "PhotoInterval.SEC_5", "PhotoInterval.SEC_10", "PhotoInterval.SEC_30", "PhotoInterval.SEC_60", "PhotoInterval.SEC_120", "PhotoInterval.SEC_3"
        ],
        "SettingId.PHOTO_INTERVAL_DURATION" : [
            
        ],
        "SettingId.CAMERA_UX_MODE" : [
            "CameraUxMode.EASY", "CameraUxMode.PRO"
        ],
        "SettingId.VIDEO_EASY_MODE" : [
            
        ],
        "SettingId.WIFI_BAND" : [
            "WifiBand.BAND_2_4_GHZ", "WifiBand.BAND_5_GHZ"
        ],
        "SettingId.STAR_TRAIL_LENGTH" : [
            
        ],
        "SettingId.SYSTEM_VIDEO_MODE" : [
            
        ],
        "SettingId.BIT_RATE" : [
            
        ],
        "SettingId.BIT_DEPTH" : [
            
        ],
        "SettingId.VIDEO_PROFILE" : [
            
        ],
        "SettingId.VIDEO_MODE" : [
            
        ],
        "SettingId.TIMELAPSE_MODE" : [
            
        ],
        "SettingId.ADDON_MAX_LENS_MOD" : "bytearray(b'd')",
        "SettingId.FRAMING" : [
            
        ],
        "SettingId.REGIONAL_FORMAT" : [
            "RegionalFormat.HZ_60", "RegionalFormat.HZ_50"
        ],
        "SettingId.INTERNAL_198" : [
            
        ],
        "SettingId.INTERNAL_199" : [
            
        ],
        "SettingId.INTERNAL_200" : [
            
        ],
        "SettingId.QUALITY_CONTROL" : [
            
        ],
        "SettingId.INTERNAL_202" : [
            
        ],
        "SettingId.INTERNAL_203" : [
            
        ],
        "SettingId.INTERNAL_205" : "01",
        "SettingId.INTERNAL_206" : [
            
        ],
        "SettingId.INTERNAL_207" : [
            
        ],
        "SettingId.INTERNAL_208" : [
            
        ],
        "SettingId.INTERNAL_209" : [
            
        ],
        "SettingId.INTERNAL_210" : [
            
        ],
        "SettingId.INTERNAL_211" : [
            
        ],
        "SettingId.INTERNAL_212" : [
            
        ],
        "SettingId.INTERNAL_213" : [
            
        ],
        "SettingId.INTERNAL_214" : [
            
        ],
        "SettingId.INTERNAL_215" : [
            
        ],
        "SettingId.CAMERA_VOLUME" : [
            "Volume.LOW", "Volume.MEDIUM", "Volume.HIGH"
        ],
        "SettingId.LENS_ATTACHMENT" : [
            "LensAttachment.MAX_LENS_2_0", "LensAttachment.MAX_LENS_2_5", "LensAttachment.MACRO", "LensAttachment.ND_4", "LensAttachment.ND_8", "LensAttachment.ND_16", "LensAttachment.ND_32", "LensAttachment.STANDARD_LENS", "LensAttachment.AUTO_DETECT"
        ],
        "SettingId.INTERNAL_218" : [
            
        ],
        "SettingId.SETUP_SCREEN_SAVER" : [
            "ScreenSaverTimeout.MIN_1", "ScreenSaverTimeout.MIN_2", "ScreenSaverTimeout.MIN_3", "ScreenSaverTimeout.MIN_5"
        ],
        "SettingId.INTERNAL_220" : "01",
        "SettingId.INTERNAL_221" : "01",
        "SettingId.INTERNAL_222" : "01",
        "SettingId.SETUP_LANGUAGE" : [
            "SetupLanguage.ENGLISH_US", "SetupLanguage.ENGLISH_UK", "SetupLanguage.ENGLISH_AUS", "SetupLanguage.GERMAN", "SetupLanguage.FRENCH", "SetupLanguage.ITALIAN", "SetupLanguage.SPANISH", "SetupLanguage.SPANISH_NA", "SetupLanguage.CHINESE", "SetupLanguage.JAPANESE", "SetupLanguage.KOREAN", "SetupLanguage.PORTUGUESE", "SetupLanguage.RUSSIAN", "SetupLanguage.ENGLISH_IND", "SetupLanguage.SWEDISH"
        ],
        "SettingId.INTERNAL_224" : "64",
        "SettingId.AUTO_POWER_OFF" : [
            "AutoPowerOff.NEVER", "AutoPowerOff.MIN_1", "AutoPowerOff.MIN_5", "AutoPowerOff.MIN_15", "AutoPowerOff.MIN_30"
        ],
        "SettingId.INTERNAL_226" : "01",
        "SettingId.PHOTO_MODE_V2" : [
            
        ],
        "SettingId.INTERNAL_228" : "03",
        "SettingId.VIDEO_DIGITAL_LENSES_V2" : [
            
        ],
        "SettingId.PHOTO_DIGITAL_LENSES_V2" : [
            "PhotoLensV2.MP_27_WIDE", "PhotoLensV2.MP_27_LINEAR"
        ],
        "SettingId.TIMELAPSE_DIGITAL_LENSES_V2" : [
            
        ],
        "SettingId.VIDEO_FRAMING" : [
            
        ],
        "SettingId.MULTI_SHOT_FRAMING" : [
            
        ],
        "SettingId.FRAME_RATE" : [
            
        ],
    },
}
Photo Mode Values:
No parser defined for SettingId.INTERNAL_41
No parser defined for SettingId.INTERNAL_41
No parser defined for SettingId.INTERNAL_42
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_43
No parser defined for SettingId.INTERNAL_44
No parser defined for SettingId.INTERNAL_45
No parser defined for SettingId.INTERNAL_47
No parser defined for SettingId.INTERNAL_47
No parser defined for SettingId.INTERNAL_54
No parser defined for SettingId.INTERNAL_54
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_62
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_64
No parser defined for SettingId.INTERNAL_83
No parser defined for SettingId.INTERNAL_83
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_84
No parser defined for SettingId.INTERNAL_86
No parser defined for SettingId.INTERNAL_86
SettingId.LED does not contain a value bytearray(b'd')
No parser defined for SettingId.INTERNAL_105
No parser defined for SettingId.INTERNAL_105
No parser defined for SettingId.INTERNAL_105
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_112
No parser defined for SettingId.INTERNAL_114
No parser defined for SettingId.INTERNAL_114
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_115
No parser defined for SettingId.INTERNAL_116
No parser defined for SettingId.INTERNAL_117
No parser defined for SettingId.INTERNAL_117
No parser defined for SettingId.INTERNAL_117
SettingId.PHOTO_FOV does not contain a value bytearray(b'\x1f')
SettingId.PHOTO_FOV does not contain a value bytearray(b' ')
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_129
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_130
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_131
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
No parser defined for SettingId.INTERNAL_132
SettingId.ANTI_FLICKER does not contain a value bytearray(b'\x00')
SettingId.ANTI_FLICKER does not contain a value bytearray(b'\x01')
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_144
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_161
No parser defined for SettingId.INTERNAL_168
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x03')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x04')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x06')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x07')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\x08')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\t')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'\n')
SettingId.ADDON_MAX_LENS_MOD does not contain a value bytearray(b'd')
No parser defined for SettingId.INTERNAL_205
No parser defined for SettingId.INTERNAL_205
No parser defined for SettingId.INTERNAL_220
No parser defined for SettingId.INTERNAL_220
No parser defined for SettingId.INTERNAL_221
No parser defined for SettingId.INTERNAL_221
No parser defined for SettingId.INTERNAL_222
No parser defined for SettingId.INTERNAL_222
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_224
No parser defined for SettingId.INTERNAL_226
No parser defined for SettingId.INTERNAL_226
No parser defined for SettingId.INTERNAL_228
No parser defined for SettingId.INTERNAL_228
No parser defined for SettingId.INTERNAL_228
No parser defined for SettingId.INTERNAL_228
{
    "id" : "QueryCmdId.GET_CAPABILITIES_VAL",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : {
        "SettingId.RESOLUTION" : [
            
        ],
        "SettingId.INTERNAL_5" : [
            
        ],
        "SettingId.INTERNAL_6" : [
            
        ],
        "SettingId.INTERNAL_13" : [
            
        ],
        "SettingId.INTERNAL_19" : [
            
        ],
        "SettingId.INTERNAL_24" : [
            
        ],
        "SettingId.INTERNAL_30" : [
            
        ],
        "SettingId.INTERNAL_31" : [
            
        ],
        "SettingId.INTERNAL_32" : [
            
        ],
        "SettingId.INTERNAL_37" : [
            
        ],
        "SettingId.INTERNAL_41" : "0c",
        "SettingId.INTERNAL_42" : "08",
        "SettingId.INTERNAL_43" : "04",
        "SettingId.INTERNAL_44" : "09",
        "SettingId.INTERNAL_45" : "08",
        "SettingId.INTERNAL_47" : "0c",
        "SettingId.INTERNAL_54" : "01",
        "SettingId.AUTO_OFF" : [
            "AutoOff.NEVER", "AutoOff.MIN_1", "AutoOff.MIN_5", "AutoOff.MIN_15", "AutoOff.MIN_30"
        ],
        "SettingId.INTERNAL_62" : "00:3d:09:00",
        "SettingId.INTERNAL_64" : "0c",
        "SettingId.INTERNAL_75" : [
            
        ],
        "SettingId.INTERNAL_76" : [
            
        ],
        "SettingId.INTERNAL_83" : "01",
        "SettingId.INTERNAL_84" : "0b",
        "SettingId.INTERNAL_86" : "01",
        "SettingId.LED" : "bytearray(b'd')",
        "SettingId.INTERNAL_102" : [
            
        ],
        "SettingId.INTERNAL_105" : "02",
        "SettingId.INTERNAL_111" : [
            
        ],
        "SettingId.INTERNAL_112" : "68",
        "SettingId.INTERNAL_114" : "01",
        "SettingId.INTERNAL_115" : "0c",
        "SettingId.INTERNAL_116" : "64",
        "SettingId.INTERNAL_117" : "02",
        "SettingId.INTERNAL_118" : [
            
        ],
        "SettingId.VIDEO_FOV" : [
            
        ],
        "SettingId.PHOTO_FOV" : "bytearray(b' ')",
        "SettingId.MULTI_SHOT_FOV" : [
            
        ],
        "SettingId.PHOTO_OUTPUT" : [
            "PhotoOutput.STANDARD", "PhotoOutput.RAW", "PhotoOutput.HDR", "PhotoOutput.SUPERPHOTO"
        ],
        "SettingId.INTERNAL_126" : [
            
        ],
        "SettingId.MEDIA_FORMAT" : [
            
        ],
        "SettingId.INTERNAL_129" : "70",
        "SettingId.INTERNAL_130" : "70",
        "SettingId.INTERNAL_131" : "70",
        "SettingId.INTERNAL_132" : "70",
        "SettingId.ANTI_FLICKER" : "bytearray(b'\x01')",
        "SettingId.HYPERSMOOTH" : [
            
        ],
        "SettingId.INTERNAL_139" : [
            
        ],
        "SettingId.INTERNAL_144" : "20",
        "SettingId.INTERNAL_145" : [
            
        ],
        "SettingId.INTERNAL_146" : [
            
        ],
        "SettingId.INTERNAL_147" : [
            
        ],
        "SettingId.INTERNAL_153" : [
            
        ],
        "SettingId.VIDEO_DURATION" : [
            
        ],
        "SettingId.INTERNAL_157" : [
            
        ],
        "SettingId.INTERNAL_161" : "c8",
        "SettingId.INTERNAL_164" : [
            
        ],
        "SettingId.INTERNAL_165" : [
            
        ],
        "SettingId.INTERNAL_166" : [
            
        ],
        "SettingId.HINDSIGHT" : [
            
        ],
        "SettingId.INTERNAL_168" : "00:00:00:00",
        "SettingId.PHOTO_INTERVAL" : [
            "PhotoInterval.OFF", "PhotoInterval.SEC_0_5", "PhotoInterval.SEC_1", "PhotoInterval.SEC_2", "PhotoInterval.SEC_5", "PhotoInterval.SEC_10", "PhotoInterval.SEC_30", "PhotoInterval.SEC_60", "PhotoInterval.SEC_120", "PhotoInterval.SEC_3"
        ],
        "SettingId.PHOTO_INTERVAL_DURATION" : [
            
        ],
        "SettingId.CAMERA_UX_MODE" : [
            "CameraUxMode.EASY", "CameraUxMode.PRO"
        ],
        "SettingId.VIDEO_EASY_MODE" : [
            
        ],
        "SettingId.WIFI_BAND" : [
            "WifiBand.BAND_2_4_GHZ", "WifiBand.BAND_5_GHZ"
        ],
        "SettingId.STAR_TRAIL_LENGTH" : [
            
        ],
        "SettingId.SYSTEM_VIDEO_MODE" : [
            
        ],
        "SettingId.BIT_RATE" : [
            
        ],
        "SettingId.BIT_DEPTH" : [
            
        ],
        "SettingId.VIDEO_PROFILE" : [
            
        ],
        "SettingId.VIDEO_MODE" : [
            
        ],
        "SettingId.TIMELAPSE_MODE" : [
            
        ],
        "SettingId.ADDON_MAX_LENS_MOD" : "bytearray(b'd')",
        "SettingId.FRAMING" : [
            
        ],
        "SettingId.REGIONAL_FORMAT" : [
            "RegionalFormat.HZ_60", "RegionalFormat.HZ_50"
        ],
        "SettingId.INTERNAL_198" : [
            
        ],
        "SettingId.INTERNAL_199" : [
            
        ],
        "SettingId.INTERNAL_200" : [
            
        ],
        "SettingId.QUALITY_CONTROL" : [
            
        ],
        "SettingId.INTERNAL_202" : [
            
        ],
        "SettingId.INTERNAL_203" : [
            
        ],
        "SettingId.INTERNAL_205" : "01",
        "SettingId.INTERNAL_206" : [
            
        ],
        "SettingId.INTERNAL_207" : [
            
        ],
        "SettingId.INTERNAL_208" : [
            
        ],
        "SettingId.INTERNAL_209" : [
            
        ],
        "SettingId.INTERNAL_210" : [
            
        ],
        "SettingId.INTERNAL_211" : [
            
        ],
        "SettingId.INTERNAL_212" : [
            
        ],
        "SettingId.INTERNAL_213" : [
            
        ],
        "SettingId.INTERNAL_214" : [
            
        ],
        "SettingId.INTERNAL_215" : [
            
        ],
        "SettingId.CAMERA_VOLUME" : [
            "Volume.LOW", "Volume.MEDIUM", "Volume.HIGH"
        ],
        "SettingId.LENS_ATTACHMENT" : [
            "LensAttachment.MAX_LENS_2_0", "LensAttachment.MAX_LENS_2_5", "LensAttachment.MACRO", "LensAttachment.ND_4", "LensAttachment.ND_8", "LensAttachment.ND_16", "LensAttachment.ND_32", "LensAttachment.STANDARD_LENS", "LensAttachment.AUTO_DETECT"
        ],
        "SettingId.INTERNAL_218" : [
            
        ],
        "SettingId.SETUP_SCREEN_SAVER" : [
            "ScreenSaverTimeout.MIN_1", "ScreenSaverTimeout.MIN_2", "ScreenSaverTimeout.MIN_3", "ScreenSaverTimeout.MIN_5"
        ],
        "SettingId.INTERNAL_220" : "01",
        "SettingId.INTERNAL_221" : "01",
        "SettingId.INTERNAL_222" : "01",
        "SettingId.SETUP_LANGUAGE" : [
            "SetupLanguage.ENGLISH_US", "SetupLanguage.ENGLISH_UK", "SetupLanguage.ENGLISH_AUS", "SetupLanguage.GERMAN", "SetupLanguage.FRENCH", "SetupLanguage.ITALIAN", "SetupLanguage.SPANISH", "SetupLanguage.SPANISH_NA", "SetupLanguage.CHINESE", "SetupLanguage.JAPANESE", "SetupLanguage.KOREAN", "SetupLanguage.PORTUGUESE", "SetupLanguage.RUSSIAN", "SetupLanguage.ENGLISH_IND", "SetupLanguage.SWEDISH"
        ],
        "SettingId.INTERNAL_224" : "64",
        "SettingId.AUTO_POWER_OFF" : [
            "AutoPowerOff.NEVER", "AutoPowerOff.MIN_1", "AutoPowerOff.MIN_5", "AutoPowerOff.MIN_15", "AutoPowerOff.MIN_30"
        ],
        "SettingId.INTERNAL_226" : "01",
        "SettingId.PHOTO_MODE_V2" : [
            
        ],
        "SettingId.INTERNAL_228" : "03",
        "SettingId.VIDEO_DIGITAL_LENSES_V2" : [
            
        ],
        "SettingId.PHOTO_DIGITAL_LENSES_V2" : [
            "PhotoLensV2.MP_27_WIDE", "PhotoLensV2.MP_27_LINEAR"
        ],
        "SettingId.TIMELAPSE_DIGITAL_LENSES_V2" : [
            
        ],
        "SettingId.VIDEO_FRAMING" : [
            
        ],
        "SettingId.MULTI_SHOT_FRAMING" : [
            
        ],
        "SettingId.FRAME_RATE" : [
            
        ],
    },
}
Photo Mode V2 Values:
{
    "id" : "QueryCmdId.GET_CAPABILITIES_VAL",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
}
Received non-success status: ErrorCode.ERROR
Traceback (most recent call last):
  File "/Users/mg/dev/kuckuck-pi/gopro.py", line 38, in <module>
    asyncio.run(gopro())
  File "/Users/mg/.pyenv/versions/3.9.18/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/Users/mg/.pyenv/versions/3.9.18/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()
  File "/Users/mg/dev/kuckuck-pi/gopro.py", line 22, in gopro
    assert (await gopro.ble_setting.photo_mode_v2.set(Params.PhotoModeV2.NIGHT)).ok
AssertionError

System

Host Python 3.9.18
GoPro HERO13 Black
Firmware v01.30.70
Lab with WAKE=2 active

I've been trying to follow the tutorials and demos, but after trying everything I could consider from my knowledge I'm still failing. Maybe I can get some help on this here?

@mmoollllee mmoollllee added the enhancement New feature or request label Dec 22, 2024
@github-actions github-actions bot added the triage Needs to be reviewed and assigned label Dec 22, 2024
@tcamise-gpsw
Copy link
Collaborator

At a high level this is because the current setting values do not currently allow any capabilities for the Photo Mode V2 setting.
This is currently a major flaw in the API that there is no way to understand the interdependencies between settings.

But maybe there is better solution for you here. What exactly are you trying to accomplish? It is probably better to select a Preset that will achieve your desired results than settings these settings manually.

@tcamise-gpsw tcamise-gpsw self-assigned this Jan 7, 2025
@tcamise-gpsw tcamise-gpsw added demos Relating to demos (not SDKs) question A discussion / question. Not sure if bug or enhancement. python sdk Python SDK and removed enhancement New feature or request triage Needs to be reviewed and assigned demos Relating to demos (not SDKs) labels Jan 7, 2025
@mmoollllee
Copy link
Author

At a high level this is because the current setting values do not currently allow any capabilities for the Photo Mode V2 setting. This is currently a major flaw in the API that there is no way to understand the interdependencies between settings.

I understand. Trying to change every other setting with impact on this I could think of, didn't help too. Is there any other way to understand these interdependencies?

But maybe there is better solution for you here. What exactly are you trying to accomplish? It is probably better to select a Preset that will achieve your desired results than settings these settings manually.

Actually I just want to switch between HDR Mode and Night Mode for Photos and maybe add a custom ISO limit for nightmode. Can you help me with that?

@tcamise-gpsw
Copy link
Collaborator

tcamise-gpsw commented Jan 8, 2025

The general procedure here is to switch between presets, and set the HDR setting in the desired preset. Here is an example:

import asyncio
from pathlib import Path

from rich.console import Console

from open_gopro import Params, WirelessGoPro
from open_gopro.api.params import PresetGroup
from open_gopro.gopro_base import GoProBase
from open_gopro.logger import setup_logging
from open_gopro.proto.preset_status_pb2 import EnumPresetTitle

console = Console()


async def main() -> None:
    logger = setup_logging(__name__, Path("demo.log"))

    gopro: GoProBase | None = None

    try:
        async with WirelessGoPro(enable_wifi=False) as gopro:
            assert gopro
            # Turn off easy mode
            assert (await gopro.ble_setting.camera_ux_mode.set(Params.CameraUxMode.PRO)).ok

            # Get Presets and store desired preset IDs
            photo_presets = [
                preset
                for preset in [
                    group
                    for group in (await gopro.ble_command.get_preset_status()).data.preset_group_array
                    if group.id == PresetGroup.PHOTO
                ][0].preset_array
            ]
            photo_preset = [
                preset for preset in photo_presets if preset.title_id == EnumPresetTitle.PRESET_TITLE_PHOTO
            ][0]
            night_mode_preset = [
                preset for preset in photo_presets if preset.title_id == EnumPresetTitle.PRESET_TITLE_NIGHT
            ][0]

            console.print("Switching to photo preset")
            assert (await gopro.ble_command.load_preset(preset=photo_preset.id)).ok
            console.print("Setting HDR mode")
            assert (await gopro.ble_setting.photo_output.set(Params.PhotoOutput.HDR)).ok
            assert (await gopro.ble_command.set_shutter(shutter=Params.Toggle.ENABLE)).ok

            console.print("Switching to night photo preset")
            assert (await gopro.ble_command.load_preset(preset=night_mode_preset.id)).ok
            assert (await gopro.ble_command.set_shutter(shutter=Params.Toggle.ENABLE)).ok

    except Exception as e:  # pylint: disable = broad-except
        logger.error(repr(e))

    if gopro:
        await gopro.close()


if __name__ == "__main__":
    asyncio.run(main())

The Open GoPro API does not currently support ISO (or any other Protune settings)

@github-project-automation github-project-automation bot moved this to To do in Python SDK Jan 8, 2025
@tcamise-gpsw tcamise-gpsw moved this from To do to In progress in Python SDK Jan 8, 2025
@tcamise-gpsw tcamise-gpsw moved this from In progress to Waiting for Feedback in Python SDK Jan 8, 2025
@tcamise-gpsw tcamise-gpsw added the feedback requested Further information is requested label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback requested Further information is requested python sdk Python SDK question A discussion / question. Not sure if bug or enhancement.
Projects
Status: Waiting for Feedback
Development

No branches or pull requests

2 participants