Hive API v2


#21

Do you have working farms in Hive 2.0 and do you see charts on Farm Overview pane there?


#22

Hello,
I have the same issue as Valkinaz: metrics API (workers or farms) always return “data”: []
Do you know why?
Thanks!


#24

Switch your devices for Hive 2.0


#25

Где найти паблик и секрет апикей для мобильного приложения?


#26

Можно хотя бы один пример как управлять воркером?
Например как назначить FS определенному воркеру?

Из документации это абсолютно невозможно понять.


You can at least one example of how to manage a worker?
For example, how do I assign a FS to a certain worker?

From the documentation it’s absolutely impossible to understand.


#27

Расширенная документация будет позже. А пока можно посмотреть какие запросы шлет новый фронтенд - он работает с этим же апи.

Extended documentation will be later. But you can inspect the requests that new frontend sends since it works with this API.


#28

Здравствуйте! На сайте хайв отключил воркера с кнопки по питанию(перезагрузка и выключение) нажал выключение ферма выключилась! Далее на ферме из розетки выключил и включил, все заработало набрал команду miner все нормально, на пуле тоже все нормально “воркер в сети”. А вот на сайте хайв воркер показывает " не в сети"! Что нужно сделать чтоб на сайте хайва воркер появился в сети!???


#29

Простой bash скрипт с некоторыми распространенными функциями.
Возможно, кому-то пригодится в качестве примера.
+++++++++++++++++
A simple bash script with some common functions.
Perhaps someone will come in handy as an example.


#30

Привет. Когда можно ожидать паблик АПИ для hiveon?


#31

Здравствуйте, подскажите пожалуйста что я не так делаю, написал скрипт на python на запросы без передачи параметров приходит нужная информация нормально, но когда я передаю параметры например что бы изменить Имя фермы мне приходит ответ:
<Response [400]>
{‘message’: ‘Empty input’}
Работаю с библиотекой requests, параметры передаю в data={ “name”: “Test_farm”}
Вот сам код скрипта:

from requests import request, exceptions
from time import sleep


class Hive(object):

    def __init__(self, token):
        self.token = token

    def api_query(self, method, command, payload=None, params=None):

        if payload is None:
            payload = {}
        if params is None:
            params = {}
        headers = {
            'Content-Type': 'application/json',
            'Authorization': 'Bearer ' + self.token
        }

        while True:
            try:
                s = request(method, 'https://api2.hiveos.farm/api/v2' + command, data=payload, params=params,
                            headers=headers, timeout=10)
            except exceptions.ConnectionError:
                print('Oops. Подключение не удалось к HiveOs')
                sleep(15)
                continue
            except exceptions.Timeout:
                print('Oops. Закончилось время ожидания ответа от HiveOs')
                sleep(15)
                continue
            except exceptions.TooManyRedirects:
                print('Oops. Превышенно количество запросов от HiveOs, Ждём 30 минут')
                sleep(1800)
                continue
            else:
                print(s)
                api = s.json()
                break

        return api

    def get_farms(self):
        return self.api_query('GET', '/farms')

    def create_farm(self):
        return self.api_query('POST', '/farms')

    def edit_farm(self, farm_id, params):
        return self.api_query('PATCH', '/farms/' + farm_id, params)


def main():

    cHive = Hive('Мой токен HiveOs')
    farm_id = 'ID нужной фермы'
    data = {
        "name": "Test farm"
    }
    print(cHive.edit_farm(farm_id, data))


if __name__ == '__main__':
    main()

Буду благодарен за любую помощь, может у кого то есть уже готовые примеры на python


#32

С питоном не знаком, но payload в запросе должен быть JSON, и судя по коду думаю проблема в этом…


#33

Спасибо большое, проблема была в этом и всё получилось, сделал запрос такого вида:

print(cHive.edit_farm(farm_id, json.dumps(data)))

#34

Подскажите, есть необходимость такого:

Создал в полётных листах несколько записей. Нужно чтобы эти записи по кругу менялись через 20 минут.

Как это сделать?


#35

В хайве такого функционала пока нет. Но используя апи вы можете применять полетные листы самостоятельно, используя любой эндпоинт с параметром fs_id:
PATCH /farms/{farmId}/workers
PATCH /farms/{farmId}/workers/{workerId}


#36

Самому менять не удобно.
Думал, что можно автоматизировать процесс.
Да и никогда не настраивал ничего через api

Было бы хорошо, если в Хайв добавили такую возможность.


#37

Hey guys,

we are new around, therefore “Hello to everyone!”.

At the moment we are starting to have a look on the promising API, we could query with the provided examples, if we turn off our 2FA.

But is it possible to connect with enabled 2FA through an API Key only or something similar?

Background of my question is, that we’d like to have the protection through 2FA for changes / management over the Farm Website. But for our own monitoring and data logging we’d like to automate the queries and couldn’t easily use 2FA for API Calls.

Many thanks in advance!

Best regards
O.


#38

Hi,
2FA is needed only for log in with password. When connecting with API key 2FA is not needed.
By the way whitelist IPs are checked on every connection, even when using API key.


#39

Hi vadimz,

thank you, this is perfect, that’s exactly the way we want to use it.
I’ve already generated a personal API key within my login.

But where / how i’ve to pass that API key? I’m currently using the Bash client sample.

response=`curl -s -w "\n%{http_code}" \
         -H "Content-Type: application/json" \
         -X POST \
         -d "{\"login\":\"$login\",\"password\":\"$password\"}" \ <-- must be an option over here, i think?
         "$baseUrl/auth/login"`

I haven’t found the API parameter for the API key within the API documentation:

https://forum.hiveos.farm/discussion/192/hive-api --> Site seems down

and

https://app.swaggerhub.com/apis/HiveOS/public/2.1-beta#/auth/post_auth_login

Maybe you can help me further where to find it?

Many thanks in advance!

Best regards
O.


#40

You don’t need to log in if you already have a token.
Just use the API with that token - pass it in special header “Authorization: Bearer $token”.


#41

Happy new year vadimz,

perfect, thank you - now it’s working!

Best regards
O.