{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Копытов Иван: заметки с тегом налоговая",
    "_rss_description": "Блог ленивого сисадмина",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kini24.ru\/tags\/nalogovaya\/",
    "feed_url": "https:\/\/kini24.ru\/tags\/nalogovaya\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Копытов Иван",
            "url": "https:\/\/kini24.ru\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "276",
            "url": "https:\/\/kini24.ru\/all\/poluchaem-dannye-s-sayta-sgk-dlya-home-assistant\/",
            "title": "Получаем данные с сайта СГК для Home Assistant",
            "content_html": "<p>В Home Assistant у меня было отслеживание почти всех счетов по квартире: электроэнергия, коммунальные платежи, ТКО, капитальный ремонт и т. д. Проблема была только с сайтом компании СГК, которая занимается предоставлением горячей и холодной воды, отоплением и водоотведением. При помощи таких интеграций, как scrape и multiscrape загрузить данные с их сайта не получалось, поэтому пришлось пойти более сложным путем и написать свой скрипт. На деле он оказался совсем простым, требует доработки в плане проверок ответов сервера, но даже в таком виде он вполне работоспособен. Чтобы не перечислять все данные, возьму только отопление.<\/p>\n<code python>\nimport requests\nimport json\n\nlogin = data.get(\"username\", \"\")\npassword = data.get(\"password\", \"\")\nlogin_url = 'https:\/\/krk.sibgenco.services\/Account\/Auth'\ndata_url = 'https:\/\/krk.sibgenco.services\/fl\/accounts\/getAccounts'\n\nheaders = {\n    \"Content-Type\": \"application\/x-www-form-urlencoded; charset=UTF-8\",\n    \"User-Agent\": \"Mozilla\/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko\/20100101 Firefox\/115.0\",\n}\n\n# Создаем новую сессию\nsession = requests.Session()\n# Авторизуемся на сервере\nresult = session.post(login_url, data = 'login=' + login + '&password=' + password, headers = headers)\n# print(result.text)\n\n# Получаем данные в JSON формате\nresult = session.get(data_url, headers = headers).json()\nsession.close()\n\n# Перекодируем текст в читаемый\nresult = result.encode().decode('unicode-escape', 'ignore')\nresult = json.dumps(result)\nresult = json.loads(result)\n\n# Убираем лишние кавычки в разделе \"Cards\" (откуда взялись?)\nresult = result.replace('\"Cards\":\"', '\"Cards\":').replace('}]\"}', '}]}')\n# print(type(result))\n# print(result)\n\nif len(result) > 0:\n    logger.info(\"Данные от СКГ получены\")\nelse:\n    logger.warning(\"Ошибка получения данных от СГК\")\n# print(result.encode().decode('unicode-escape', 'ignore'))\n\n# Преобразуем строку данных в JSON объект\njson_data = json.loads(result)[\"Accounts\"][0][\"CalcData\"][\"Products\"]#[0][\"ToPay\"]\n\n# print(json_data, '\\n')\n# print(json.dumps(json_data), '\\n')\n\n# for product in json_data[\"Accounts\"][0][\"CalcData\"][\"Products\"]:\n#     print(product[\"ItemName\"] + \": \" + str(product[\"ToPay\"]) + \" руб.\")\n\nif json_data[0][\"ToPay\"] > 0:\n    hass.states.set('sensor.sgk_heating', json_data[0][\"ToPay\"] * -1)\nelse:\n    hass.states.set('sensor.sgk_heating', json_data[0][\"ToPay\"])\n<\/code>\n<p>В ходе работы скрипта получаем несколько секций для каждой из услуг, которые выглядят вот так:<\/p>\n<code json>\n  - IsFine: false\n    Item: 13\n    ContractId: 307015\n    ItemName: Отопление\n    SaldoBegin: 4228.65\n    Paid: 4228.65\n    SaldoEnd: 0\n    FineEndCheck: true\n    FineEnd: 0\n    AccrualsCheck: false\n    Accruals: 0\n    Recalculation: 0\n    ToPayCheck: true\n    ToPay: 0\n    ChargeDetails: \"\"\n    PayDetails: 08.02.2025 4228.65;\n    FinePayDetails: \"\"\n    WebPayDetails: 08.02.2025=5338.65=20250208171312-99240-6764617.585349\n<\/code>\n<p>Далее просто создаем автоматизацию в Home Assistant, которая будет запускать этот скрипт. Для надежности перед первым запуском создаем несколько новых сенсоров в примерно таком формате:<\/p>\n<code python>\n    # Задолженность за отопление, итого\n    heating_debt_summary:\n      unique_id: <тут ваш ID сенсора>\n      attribute_templates:\n        Пеня: \"{{ states('sensor.sgk_heating_penya') }} ₽\"\n      device_class: monetary\n      friendly_name: Задолженность за отопление\n      unit_of_measurement: \"RUB\"\n      # value_template: \"{{ states('sensor.sgk_heating') | float(0) + states('sensor.sgk_heating_penya') | float(0) }}\"\n      value_template: \"{{ states('sensor.sgk_heating') | float(0) }}\"\n<\/code>\n<p>Как видно, в сенсоре будет также атрибут «пеня». Можно вывести суммарную задолженность — долг+пеня, можно вывести только основную — на выбор.<br \/>\nИ вот после сайта СГК меня слегка «понесло» и сделал схожие скрипты для получения информации с сайтов ФНС, капремонта, энергосбыта и регистратора доменов. С ФНС было интересно — там сначала нужно пройти basic-авторизацию, получить токен безопасности, авторизоваться еще раз и слать его при каждом запросе данных. А дальше было уже намного легче — у ФНС существует API, которое они активно используют. Официальной документации по нему нет, но, покопавшись на сайте, можно легко получить все запросы. Для чего нужны эти данные? Например, чтобы отслеживать задолженность по налогам (в том числе и самозанятого), недвижимость и банковские счета. Сейчас такое время, что на тебя могут открыть какой-то счет в банке, сделать тебя «начальником» какой-то конторы, а ты даже будешь не в курсе. Но стоит отметить, что в налоговой отображаются только обычные, дебетовые счета, информации по кредитам там нет.<\/p>\n",
            "date_published": "2025-02-20T10:22:01+07:00",
            "date_modified": "2025-03-27T11:18:56+07:00",
            "tags": [
                "home assistant",
                "python",
                "вода",
                "данные",
                "налоговая",
                "отопление",
                "получение",
                "сайт",
                "сгк",
                "скрипт"
            ],
            "_date_published_rfc2822": "Thu, 20 Feb 2025 10:22:01 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "276",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "95",
            "url": "https:\/\/kini24.ru\/all\/u-tebya-net-shansov\/",
            "title": "У тебя нет шансов!",
            "content_html": "<p>Сижу я, значит, на выходных дома, думаю чем бы заняться. Тут приходит уведомление на email, что начислен мне налог за квартиру. «О!» — думаю, — «точно! Надо за хату заплатить!» Решил начать с налога.<br \/>\nЗахожу в личный кабинет, выбираю строчку с текущими начислениями, жму «Оплатить». Открывается страница с выбором банков, через которые я могу провести оплату. Жму Сбер, сайт мне отвечает ошибкой. «Плять» — подумалось мне, ибо текст ошибки не оставлял мне никакого шанса на оплату. Вернулся на предыдущую страницу, выбрал ради интереса пункт «Госуслуги». «Хер тебе!» — ответил сайт, выдав ту же самую ошибку. Другие банки ответили так же. Опечалившись, пришлось сдаться и накатать жалобу в техподдержку налоговой.<br \/>\nНу что же, попробуем оплатить коммунальные услуги. Начал с мобильного приложения на телефоне, потому что ушел курить. Выбрал ранее созданный шаблон, ввел сумму, кучу раз нажал кнопку «Продолжить», каждый раз проверяя что все верно и плачу я за себя. После очередного «продолжения» приложение мне выдало забавное сообщение: «Сумма такая-то не совпадает с сумой оплаты». Текст не точный, но смысл заключался в том, что рассчитанная сумма для оплаты не совпадает с суммой, которую я хочу внести на счет. Интересненько... Продолжаю уже на компьютере через «Сбербанк Онлайн» (я быстро курю). Получаю ту же самую ошибку. В общем, заплатить за квартиру мне не удалось. «Суки!» — вертелось у меня в голове. Подумав несколько секунд, открываю сайт УК, вхожу в личный кабинет. Выбираю оплату по карте, вписываю сумму оплаты, меня перебрасывает на страницу банка. Комиссия составила 1% от общей суммы. Да наплевать, ввожу код из СМС и продолжаю. Деньги улетели на первой космической, о чем телефон радостно мне сообщил. Да лучше бы они с такой же скоростью прилетали! :-)<br \/>\nОплата элетроэнергии прошла без сучка и задоринки, как и телефон и интернета.<\/p>\n",
            "date_published": "2017-10-02T10:55:02+07:00",
            "date_modified": "2017-10-02T10:54:59+07:00",
            "tags": [
                "госуслуги",
                "жкх",
                "налог",
                "налоговая",
                "онлайн",
                "оплата",
                "ошибка",
                "сайт",
                "сбербанк"
            ],
            "_date_published_rfc2822": "Mon, 02 Oct 2017 10:55:02 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "95",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}