<<< Назад

Обновление движка Blockly


SergeJey (2019-08-27 16:33:20):

В альфа-ветке обновился движок blockly -- потестируйте пожалуйста, не ломаются ли ранее созданные сценарии.

(1)
 
DivanX10 (2019-09-05 16:37:58):

У меня вся система MD построена на blockly, поднял виртуальную машину, скопировал с работающей системы бэкап и проверил на виртуальной машине, все сценарии работают исправно. Есть одно, что мне не нравится, это раздел в blockly "Состояния", там пустые блоки и на них нет надписей, не ясно что за блок, приходится их ставить и потом смотреть в коде PHP, что очень не удобно.

(0)
 
DivanX10 (2019-09-18 00:15:15):

После обновлении majordomo от 12.09.2019, blockly перестал нормально работать, первый раз сборка кода идет нормально, после 2-4 раз захода, чтобы отредактировать код, всплывает такая ошибка, приходится собирать код по новой. Скриншот ошибки можете посмотреть здесь

(0)
 
SergeJey (2019-09-18 11:47:00):

Здравствуйте,

Ок, спасибо, буду разбираться.

(0)
 
SergeJey (2019-09-18 12:09:51):

В догонку -- не могли бы вы в текстовом виде прислать полный текст ошибки?

(0)
 
DivanX10 (2019-09-23 14:50:57):

Не удается скопировать саму ошибку, я смог скопировать только текст с раздела "Показать xml", ошибка всплывает, если часто редактируешь сценарии в blockly, отредактировал - закрыл, и так несколько раз, потом будет ошибка.

<xml xmlns="https://developers.google.com/blockly/xml">
<block type="controls_if" id="Pa8w2U]m7bs+v:M3%}@X" x="129" y="293">
<value name="IF0">
<block type="logic_operation" id="/admin.php?pd=pz_c2NyaXB0czp7aWQ9NTIsdmlld19tb2RlPWVkaXRfc2NyaXB0cyxpbnN0YW5jZT1hZG19pzcGFuZWw6e2FjdGlvbj1zY3JpcHRzfQ%3D%3Dpz&md=blockly_code&inst=&PQ73T-OtsbJnLG[S|wd">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="F?@TcOQ8yFu75%svZn:i">
<field name="OP">EQ</field>
<value name="A">
<block type="majordomo_device_2_currentStatus" id="DH{R[2~V9UlR(j7V.9T;"/>
</value>
<value name="B">
<block type="math_number" id="dQ5OF[;)GQh+$gHZrVsC">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="majordomo_timebetween" id="X()v_zD7RN0]}^?Me1-l">
<value name="TIME1">
<block type="text" id="R.eZxt~@:5ObranSV$ml">
<field name="TEXT">10:00</field>
</block>
</value>
<value name="TIME2">
<block type="text" id="l.^{[s^h;#-wW.:gmX8v">
<field name="TEXT">23:00</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="majordomo_device_21turnOn" id="8pquUQ+vl3]j:q%;:[X"/>
</statement>
</block>
</xml>

(0)
 
SergeJey (2019-09-23 18:00:09):

Проблема из-за того, что новый GoogleBlockly меняет id элементов и временами они получаются со знаком вопроса в начале, на что система некорректно реагирует, добавляя туда путь admin.php с параметрами. В альфа версии я исправил этот момент, так что попробуйте пожалуйста сейчас.

(1)
 
DivanX10 (2019-09-23 18:12:38):

хорошо, я проверю и отпишусь вам

(0)
 
DivanX10 (2019-09-23 18:56:50):

Ого, вы исправили в blockly "Состояния" - круто!!! Теперь можно понимать что за блоки состояния. Пробовал в Альфа версии сломать blockly как в мастер версии, пока у меня не получилось, как я только откатил с Альфа версии на Мастер, ситуация повторилась. В Мастер версии blockly повреждаются, в Альфа версии blockly не повреждаются.

(0)
 
DivanX10 (2019-09-23 19:00:24):

Скажите, если я на боевом сервере поставлю Альфу версию, потестирую, потом я смогу безболезненно перейти на Мастер версию?

(0)
 
SergeJey (2019-09-24 10:13:42):

Думаю да, не должно быть проблем с переходом на мастер.

(0)
 
DivanX10 (2019-09-24 11:54:55):

Проверил на тестовой машине, проблем с переходом с Мастер версии на Альфа и обратно нет. Поставил Альфу версию на боевом сервере, пока проблем с blockly не наблюдаю. Скажите, а модуль блоки это относится к blockly? Там нет дерева по категориям, все смешано в одну кучу, надо, чтобы было как в сценариях.

(0)
 
DivanX10 (2019-09-26 21:45:42):

За два дня тестирования с blockly, проблем не было обнаружено. Работает четко.

(0)
 
SergeJey (2019-09-26 21:48:05):

Отлично! Спасибо, что сообщили :)

(0)
 
DivanX10 (2020-02-08 00:07:28):

Доброй ночи, столкнулся с проблемой, после обновления MD, при создании сценария в блокли, появляется ошибка
File "/var/www/cms/cached/d8bd62a7fb27e4bdbf46ad2be50b7e22.py", line 15
if (timeBetween('22:00', '05:00')) {
^
SyntaxError: invalid syntax

Содержимое в d8bd62a7fb27e4bdbf46ad2be50b7e22.py

-- coding: utf-8 --

import os
import sys
import re
import json
from mjd_constants import *
sys.path.append(os.path.abspath("/var/www/lib/python"))
import mjdm

if (sys.argv[1]):
params=json.loads(sys.argv[1])
else:
params = {}

if (timeBetween('', '')) {
}

Если вставлять код, то прокатывает нормально, а с блокли нет.

(0)
 
SergeJey (2020-02-10 19:07:40):

А не могли бы вы показать картинку, как код выглядит в Blockly чтобы я попробовал его в точности воспроизвести?

(0)
 
DivanX10 (2020-02-10 21:16:11):

Конечно. Я записал видео, где вы можете увидеть сами - https://cloud.mail.ru/public/59Zo/3tQ1VXPuR

(0)
 
SergeJey (2020-02-11 16:56:18):

В альфа версии это исправлено, проверьте пожалуйста.

(0)
 
DivanX10 (2020-02-11 18:15:58):

Проверил, теперь все работает, ошибка не всплывает - спасибо )

(0)
 
DivanX10 (2020-02-15 17:08:05):

Вчера обновил MD на стабильную версию и при попытке открыть любой сценарии написанные в блокли, то я получаю такую ошибку

(0)
 
SergeJey (2020-02-15 19:50:05):

Напишите пожалуйста ошибку, не добавилась.

(0)
 
DivanX10 (2020-02-15 20:15:42):

Скриншот ошибки https://cloud.mail.ru/public/27rk/3JNbx6NMc

(0)
 
SergeJey (2020-02-16 21:20:05):

А можете ещё сюда вставить код из раздела "Показать XML" для таких сценариев?

(0)
 
SergeJey (2020-02-16 21:20:16):

(для одного хотя бы)

(0)
 
DivanX10 (2020-02-16 21:40:52):

Не все сценарий в блокли открываются с проблемой, но большинство

Выкладываю код 3 разных сценариев

Сценарий 1
if (getGlobal("SMonitorBacklight.status") == 0) {
callMethod("SMonitorBacklight.turnOn");
}


Сценарий 2
if (getGlobal("SСomputer_01.status") == 0 && getGlobal("SZeootaSmartPowerSwitch2.status") == 1) {
callMethod("SZeootaSmartPowerSwitch2.turnOff");
}


Сценарий 3
if (getGlobal("DarknessMode.active") == 1 && getGlobal("HomeMode.active") == 1 && getGlobal('HomeMode'.'.'.'blocked') == 0) {
runScript('Позиция шторы - 70', array());
callMethod("SSwitchXiaomi1.turnOn");
}

(0)
 
SergeJey (2020-02-16 21:47:54):

Это вид PHP, а посмотрите ещё пожалуйста вид XML (кнопка Показать XML)

(0)
 
DivanX10 (2020-02-16 22:08:38):

Сценарий 2
if (getGlobal("SСomputer_01.status") == 0 && getGlobal("SZeootaSmartPowerSwitch2.status") == 1) {
callMethod("SZeootaSmartPowerSwitch2.turnOff");
}
XML принадлежит сценарию 2

<xml xmlns="https://developers.google.com/blockly/xml">
<block type="controls_if" id="qkd{VrMIbVphxR-aoFY" x="-21" y="133">
<value name="IF0">
<block type="logic_operation" id="MP2(}q?!a_73_YoYd;OC">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="~)HhzEKTrenwXSwZKcjG">
<field name="OP">EQ</field>
<value name="A">
<block type="majordomo_device_10_currentStatus" id="9MbSzRcsY?:rFc2..}1?">
</value>
<value name="B">
<block type="math_number" id="4jH5UBrn},m5IkN]y.3~">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logiccompare" id="[IC%oeG$dlF}R,|Ac%">
<field name="OP">EQ</field>
<value name="A">
<block type="majordomo_device_8_currentStatus" id="dH}QIHKN8OHtGYJKteR^">
</value>
<value name="B">
<block type="math_number" id="!_ic]uQKIAJPIpSb%">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="majordomo_device_8_switch" id="Uq:JF5;q
,63V^X1T;uW">
<field name="MODE">OFF</field>
</block>
</statement>
</block>
</xml>

(0)
 

Пожалуйста, войдите в систему, чтобы добавлять комментарии Присоединиться!