博世Indego割草机API
pyIndego的Python项目详细描述
Bosch Indego割草机的API
与家庭助理一起使用
对于源文件和版本处理:https://github.com/jm-73/pyindego
对于pypi包:https://pypi.org/project/pyindego/
所需基本信息
<表><广告>python库是为带有用户名(电子邮件地址)和密码的登录方法编写的。不支持使用Facebook帐户登录。
调用api和割草机
调用api:
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
获取函数
从API和割草机更新数据的函数的说明。仅从Bosch API收集数据的功能不会唤醒割草机。从Bosch API和割草机收集数据的功能确实会唤醒割草机的睡眠。
<表><广告>get函数列表
getalerts()
收集警报。
Response:{'alm_sn':'123456789','alert_id':'5d48171263c5345a75dbc017','error_code':'ntfy_blade_life','headline':'Underhållstips.','date':'2019-08-05T11:46:26.397Z','message':'Kontrollera klippknivarna. Indego har klippt i 100 timmar. Ska den fungera optimalt, kontrollera klippknivarna så att de är i bra skick. Du kan beställa nya knivar via avsnittet Tillbehör.','read_status':'unread','flag':'warning','push':True}
getGenericData()
收集序列号、服务计数器、名称、割草模式、型号和固件。
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}
getNextCutting()
收集下一次切割的数据。似乎得到了发送到割草机的最后一个命令。
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}
getOperatingData()
收集操作数据:电池、运行时间、花园数据和温度。
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}
getState()
收集割草机状态、%割草机、位置、运行时间、地图坐标。
Response:{'state':64513,'map_update_available':True,'mowed':95,'mowmode':0,'xPos':68,'yPos':30,'runtime':{'total':{'operate':86327,'charge':25845},'session':{'operate':4,'charge':0}},'mapsvgcache_ts':1565381013023,'svg_xPos':928,'svg_yPos':264}
getupdates()
检查割草机是否有可用的更新。
Response:{'available':False}
getusers()
收集用户数据。
Response:{'email':'mail@gmail.com','display_name':'Indego','language':'sv','country':'GB','optIn':True,'optInApp':True}
从本地缓存的API数据中读取数据的函数
所有名字中不包含"get"的函数都是从本地存储的变量中收集数据的。没有API调用Bosch或Mower。
AlertScount()
统计割草机上的当前警报。
Response:
1
警报描述()
获取al的详细列表ERTS/P>
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
0
almFirmwareReversion()
获取割草机固件版本。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
1
almmode()
获取割草机模式。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
1
almname()
获取割草机实例名称。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
3
bareToolNumber()
显示割草机的型号。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
4
电池()
获取电池信息。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
5
batterypercent()
获取剩余百分比的原始值。对于1代来说,这似乎是电池电压。对于2代割草机,它似乎是电池中剩余的实际百分比。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
5
batterypercentadjusted()
获取左百分比的调整值。为1代割草机计算,为2代割草机计算实际百分比值。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
7
电池电压()
得到电池的电压。对于1代割草机,该值似乎是正确的。对于Gen 2,它的值似乎与电池中剩余的百分比相同。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
8
电池循环()
不知道这个值是多少?
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
9
电池放电()
似乎是割草机正在绘制的AH。
Response:{'alm_sn':'123456789','alert_id':'5d48171263c5345a75dbc017','error_code':'ntfy_blade_life','headline':'Underhållstips.','date':'2019-08-05T11:46:26.397Z','message':'Kontrollera klippknivarna. Indego har klippt i 100 timmar. Ska den fungera optimalt, kontrollera klippknivarna så att de är i bra skick. Du kan beställa nya knivar via avsnittet Tillbehör.','read_status':'unread','flag':'warning','push':True}0
电池bienttemp()
似乎是电池的环境温度。
Response:{'alm_sn':'123456789','alert_id':'5d48171263c5345a75dbc017','error_code':'ntfy_blade_life','headline':'Underhållstips.','date':'2019-08-05T11:46:26.397Z','message':'Kontrollera klippknivarna. Indego har klippt i 100 timmar. Ska den fungera optimalt, kontrollera klippknivarna så att de är i bra skick. Du kan beställa nya knivar via avsnittet Tillbehör.','read_status':'unread','flag':'warning','push':True}1
电池组()
似乎是电池的温度。
Response:{'alm_sn':'123456789','alert_id':'5d48171263c5345a75dbc017','error_code':'ntfy_blade_life','headline':'Underhållstips.','date':'2019-08-05T11:46:26.397Z','message':'Kontrollera klippknivarna. Indego har klippt i 100 timmar. Ska den fungera optimalt, kontrollera klippknivarna så att de är i bra skick. Du kan beställa nya knivar via avsnittet Tillbehör.','read_status':'unread','flag':'warning','push':True}2
国家(country)
>> 显示Bosch帐户的国家/地区。
AAAAAAAAA 23显示名称()
不知道这是什么…
MapUpdateAvailable()
显示是否有地图图像的更新。
型号说明()
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<型号电压()
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<模型电压管理()
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<型号voltagemax()
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<修剪过的()
显示已修剪草坪的百分比
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}6
mowerState()
显示割草机的当前状态
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}7
mowerstatedescription()
显示割草机当前状态的简单描述。可用状态包括停靠、割草、卡住、诊断模式、寿命结束、软件更新。
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}8
mowerStateDescriptionDetailed()
显示割草机当前状态的详细说明。
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}9
割草模式描述()
获取用户友好的割草模式说明。
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}0
needsService()
获取需求服务标志。不知道何时使用。
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}1
nextcutting()
应该得到下一个计划的削减会议。似乎给出了上次发送的割草机命令。
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}2
optin()
不知道这是干什么用的?
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}1
optinApp()
不知道这是干什么用的?
Response:{'alm_sn':'123456789','alm_name':'Indego','service_counter':60488,'needs_service':False,'alm_mode':'manual','bareToolnumber':'3600HA2300','alm_firmware_version':'00837.01043'}1
运行时()
以分钟为单位获取会话和总rutime以及充电时间。
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}5
runtimesession()
以分钟为单位获取会话运行时间和充电时间
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}6
RuntimeTotal()
以小时为单位获取总运行时间和充电时间
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}7
serial()
获取序列号
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}8
服务计数器()
获取k的服务计数器尼维斯
Response:{'lastMowSent':'2019-08-20T05:09:51.842+01:00','lastMowCode':200}9
svgxpos()
显示割草机的SVG X位置。
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}0
firmwareavailable()
检查割草机是否有可用的固件更新。
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}1
SVGypos()
显示割草机的SVG Y位置。
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}2
xpos()
显示割草机的X位置。
IndegoApi_Instance = IndegoAPI(username=your_mail@gmail.com, password=your_password, serial=your_serial)
7
ypos()
显示割草机的Y位置。
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}4
发送命令
putcommand(命令)
发送命令。接受的命令:
<表><广告>不工作
尚未正确实施
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}5
获取花园位置(GPS坐标?)
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}6
获取预测切割会话的日历
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}7
获得用户对切割频率的调整
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}8
获取允许切割时间的日历
Response:{'runtime':{'total':{'operate':86333,'charge':25845},'session':{'operate':0,'charge':0}},'battery':{'voltage':33.5,'cycles':1,'discharge':0.0,'ambient_temp':17,'battery_temp':17,'percent':335},'garden':{'id':7,'name':1,'signal_id':1,'size':625,'inner_bounds':3,'cuts':26,'runtime':82197,'charge':24860,'bumps':4650,'stops':24,'last_mow':4},'hmiKeys':1344}9
获取安全设置
Response:{'state':64513,'map_update_available':True,'mowed':95,'mowmode':0,'xPos':68,'yPos':30,'runtime':{'total':{'operate':86327,'charge':25845},'session':{'operate':4,'charge':0}},'mapsvgcache_ts':1565381013023,'svg_xPos':928,'svg_yPos':264}0
获取自动更新设置
API调用
https://api.indego.iot.bosch si.com:443/api/v1
Response:{'state':64513,'map_update_available':True,'mowed':95,'mowmode':0,'xPos':68,'yPos':30,'runtime':{'total':{'operate':86327,'charge':25845},'session':{'operate':4,'charge':0}},'mapsvgcache_ts':1565381013023,'svg_xPos':928,'svg_yPos':264}1