iobroker.statechart 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "statechart",
4
- "version": "0.2.0",
4
+ "version": "0.3.0",
5
5
  "news": {
6
+ "0.3.0": {
7
+ "en": "simulation: the chart runs in the editor without switching anything, the inputs are set by hand, advance the time, pause, single steps and breakpoints on states and transitions\nparallel states (AND) with an execution order, and history junctions: entering a state returns to its last active sub state\nmore temporal logic: `before`, `at`, `every`, counting the wakeups by an input (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()`, and every day at a time or astro event (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` reads any state in conditions and actions, control states per chart: `enabled`, `reset` and `event`\nstatic check of the chart: states which never become active or are never left, transitions which are never taken, conditions which are never true, unused variables\neditor: color of each state (every second level of nested states darker), right-angled transitions as option, snap to the grid, align and distribute, labels of transitions can be moved\neditor: toolbar grouped by tasks with new buttons to cut and delete, collapsible side panels, colors and icons for each kind of element, variables grouped by kind with a search\neditor: transitions are black, their labels have no background\nexport of the whole chart as PNG image\nfixed: labels of transitions inside a superstate were hidden, labels of several transitions between the same states and the line to a moved label covered text, self transitions on the top or right side were drawn twisted",
8
+ "de": "Simulation: Das Chart läuft im Editor, ohne etwas zu schalten, die Eingänge werden von Hand gesetzt, Zeit vorspulen, Pause, Einzelschritte und Haltepunkte auf Zuständen und Übergängen\nParallele Zustände (UND) mit Ausführungsreihenfolge und History-Junction: Beim Betreten eines Zustands geht es in den zuletzt aktiven Unterzustand zurück\nMehr Zeitlogik: `before`, `at`, `every`, Zählen des Aufweckens durch einen Eingang (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` und jeden Tag zu einer Uhrzeit oder einem Astro-Ereignis (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` liest beliebige Datenpunkte in Bedingungen und Aktionen, Steuer-Datenpunkte pro Chart: `enabled`, `reset`, `event`\nStatische Prüfung des Charts: Zustände, die nie aktiv oder nie verlassen werden, Übergänge, die nie genommen werden, Bedingungen, die nie wahr sind, ungenutzte Variablen\nEditor: Farbe pro Zustand (jede zweite Ebene verschachtelter Zustände dunkler), rechtwinklige Übergänge als Option, Einrasten am Raster, Ausrichten und Verteilen, verschiebbare Beschriftungen von Übergängen\nEditor: Werkzeugleiste nach Aufgaben gruppiert mit neuen Knöpfen zum Ausschneiden und Löschen, einklappbare Seitenspalten, Farben und Symbole für jede Art von Element, Variablen nach Art gruppiert mit Suche\nEditor: Übergänge sind schwarz, ihre Beschriftungen haben keinen Hintergrund\nExport des ganzen Charts als PNG-Bild\nBehoben: Beschriftungen von Übergängen in einem Superstate waren verdeckt, Beschriftungen mehrerer Übergänge zwischen denselben Zuständen und die Linie zu einer verschobenen Beschriftung überdeckten Text, Selbstübergänge oben oder rechts wurden verdreht gezeichnet",
9
+ "ru": "Симуляция: диаграмма выполняется в редакторе, ничего не переключая, входы задаются вручную, перемотка времени, пауза, пошаговое выполнение и точки останова на состояниях и переходах\nПараллельные состояния (И) с порядком выполнения и узел истории: при входе в состояние возвращается последнее активное подсостояние\nБольше временной логики: `before`, `at`, `every`, подсчёт пробуждений по входу (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()`, а также каждый день в заданное время или по астрособытию (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` читает любые состояния в условиях и действиях, управляющие состояния для каждой диаграммы: `enabled`, `reset`, `event`\nСтатическая проверка диаграммы: состояния, которые никогда не становятся активными или не покидаются, переходы, которые никогда не выполняются, условия, которые никогда не истинны, неиспользуемые переменные\nРедактор: цвет каждого состояния (каждый второй уровень вложенных состояний темнее), прямоугольные переходы как опция, привязка к сетке, выравнивание и распределение, перемещаемые подписи переходов\nРедактор: панель инструментов сгруппирована по задачам, новые кнопки «Вырезать» и «Удалить», сворачиваемые боковые панели, цвета и значки для каждого вида элементов, переменные сгруппированы по виду и с поиском\nРедактор: переходы чёрные, их подписи без фона\nЭкспорт всей диаграммы как изображения PNG\nИсправлено: подписи переходов внутри суперсостояния были скрыты, подписи нескольких переходов между одними и теми же состояниями и линия к перемещённой подписи перекрывали текст, переходы в себя сверху или справа рисовались перекрученными",
10
+ "pt": "Simulação: o gráfico é executado no editor sem acionar nada, as entradas são definidas manualmente, avançar o tempo, pausa, passos individuais e pontos de interrupção em estados e transições\nEstados paralelos (E) com ordem de execução e junção de histórico: ao entrar num estado, volta ao último subestado ativo\nMais lógica temporal: `before`, `at`, `every`, contagem dos despertares por uma entrada (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` e todos os dias a uma hora ou num evento astronómico (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` lê qualquer estado em condições e ações, estados de controlo por gráfico: `enabled`, `reset`, `event`\nVerificação estática do gráfico: estados que nunca ficam ativos ou nunca são deixados, transições que nunca são tomadas, condições que nunca são verdadeiras, variáveis não utilizadas\nEditor: cor de cada estado (cada segundo nível de estados aninhados mais escuro), transições em ângulo reto como opção, ajustar à grade, alinhar e distribuir, rótulos de transições podem ser movidos\nEditor: barra de ferramentas agrupada por tarefas com novos botões para cortar e eliminar, painéis laterais recolhíveis, cores e ícones para cada tipo de elemento, variáveis agrupadas por tipo com pesquisa\nEditor: as transições são pretas, os seus rótulos não têm fundo\nExportação do gráfico inteiro como imagem PNG\nCorrigido: os rótulos de transições dentro de um superestado ficavam ocultos, os rótulos de várias transições entre os mesmos estados e a linha para um rótulo movido sobrepunham-se ao texto, as auto-transições em cima ou à direita eram desenhadas torcidas",
11
+ "nl": "Simulatie: de grafiek draait in de editor zonder iets te schakelen, de ingangen worden handmatig ingesteld, tijd vooruitspoelen, pauze, enkele stappen en breekpunten op toestanden en overgangen\nParallelle toestanden (EN) met uitvoeringsvolgorde en geschiedenisknooppunt: bij het betreden van een toestand keert die terug naar de laatst actieve subtoestand\nMeer tijdslogica: `before`, `at`, `every`, het tellen van het wekken door een ingang (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` en elke dag op een tijdstip of astronomische gebeurtenis (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` leest elke status in voorwaarden en acties, besturingsstatussen per grafiek: `enabled`, `reset`, `event`\nStatische controle van de grafiek: toestanden die nooit actief worden of nooit worden verlaten, overgangen die nooit worden genomen, voorwaarden die nooit waar zijn, ongebruikte variabelen\nEditor: kleur van elke toestand (elk tweede niveau van geneste toestanden donkerder), rechthoekige overgangen als optie, uitlijnen op het raster, uitlijnen en verdelen, verplaatsbare labels van overgangen\nEditor: werkbalk gegroepeerd per taak met nieuwe knoppen om te knippen en te verwijderen, inklapbare zijpanelen, kleuren en pictogrammen voor elk soort element, variabelen gegroepeerd per soort met zoekfunctie\nEditor: overgangen zijn zwart, hun labels hebben geen achtergrond\nExport van de hele grafiek als PNG-afbeelding\nOpgelost: labels van overgangen binnen een supertoestand waren verborgen, labels van meerdere overgangen tussen dezelfde toestanden en de lijn naar een verplaatst label bedekten tekst, zelfovergangen boven of rechts werden gedraaid getekend",
12
+ "fr": "Simulation : le graphique s'exécute dans l'éditeur sans rien commuter, les entrées sont réglées à la main, avance du temps, pause, pas à pas et points d'arrêt sur les états et les transitions\nÉtats parallèles (ET) avec ordre d'exécution et jonction d'historique : en entrant dans un état, on revient à son dernier sous-état actif\nPlus de logique temporelle : `before`, `at`, `every`, comptage des réveils par une entrée (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` et chaque jour à une heure ou à un événement astronomique (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` lit n'importe quel état dans les conditions et les actions, états de contrôle par graphique : `enabled`, `reset`, `event`\nVérification statique du graphique : états qui ne deviennent jamais actifs ou ne sont jamais quittés, transitions jamais prises, conditions jamais vraies, variables inutilisées\nÉditeur : couleur de chaque état (un niveau sur deux d'états imbriqués plus foncé), transitions à angle droit en option, aimantation à la grille, aligner et répartir, étiquettes des transitions déplaçables\nÉditeur : barre d'outils groupée par tâches avec de nouveaux boutons pour couper et supprimer, panneaux latéraux repliables, couleurs et icônes pour chaque type d'élément, variables groupées par type avec recherche\nÉditeur : les transitions sont noires, leurs étiquettes n'ont pas de fond\nExport du graphique entier en image PNG\nCorrigé : les étiquettes des transitions dans un super-état étaient masquées, les étiquettes de plusieurs transitions entre les mêmes états et la ligne vers une étiquette déplacée recouvraient le texte, les auto-transitions en haut ou à droite étaient dessinées tordues",
13
+ "it": "Simulazione: il grafico viene eseguito nell'editor senza commutare nulla, gli ingressi si impostano a mano, avanzamento del tempo, pausa, passi singoli e punti di interruzione su stati e transizioni\nStati paralleli (AND) con ordine di esecuzione e giunzione di cronologia: entrando in uno stato si torna all'ultimo sottostato attivo\nPiù logica temporale: `before`, `at`, `every`, conteggio dei risvegli da un ingresso (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` e ogni giorno a un'ora o a un evento astronomico (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` legge qualsiasi stato in condizioni e azioni, stati di controllo per grafico: `enabled`, `reset`, `event`\nVerifica statica del grafico: stati che non diventano mai attivi o non vengono mai lasciati, transizioni mai eseguite, condizioni mai vere, variabili inutilizzate\nEditor: colore di ogni stato (ogni secondo livello di stati annidati più scuro), transizioni ad angolo retto come opzione, aggancio alla griglia, allineare e distribuire, etichette delle transizioni spostabili\nEditor: barra degli strumenti raggruppata per attività con nuovi pulsanti per tagliare ed eliminare, pannelli laterali comprimibili, colori e icone per ogni tipo di elemento, variabili raggruppate per tipo con ricerca\nEditor: le transizioni sono nere, le loro etichette non hanno sfondo\nEsportazione dell'intero grafico come immagine PNG\nCorretto: le etichette delle transizioni all'interno di un superstato erano nascoste, le etichette di più transizioni tra gli stessi stati e la linea verso un'etichetta spostata coprivano il testo, le auto-transizioni in alto o a destra erano disegnate attorcigliate",
14
+ "es": "Simulación: el gráfico se ejecuta en el editor sin conmutar nada, las entradas se ajustan a mano, avanzar el tiempo, pausa, pasos individuales y puntos de interrupción en estados y transiciones\nEstados paralelos (Y) con orden de ejecución y unión de historial: al entrar en un estado se vuelve a su último subestado activo\nMás lógica temporal: `before`, `at`, `every`, contar los despertares por una entrada (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` y cada día a una hora o en un evento astronómico (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` lee cualquier estado en condiciones y acciones, estados de control por gráfico: `enabled`, `reset`, `event`\nComprobación estática del gráfico: estados que nunca se activan o nunca se abandonan, transiciones que nunca se toman, condiciones que nunca son verdaderas, variables sin usar\nEditor: color de cada estado (cada segundo nivel de estados anidados más oscuro), transiciones en ángulo recto como opción, ajustar a la cuadrícula, alinear y distribuir, etiquetas de transiciones desplazables\nEditor: barra de herramientas agrupada por tareas con nuevos botones para cortar y eliminar, paneles laterales plegables, colores e iconos para cada tipo de elemento, variables agrupadas por tipo con búsqueda\nEditor: las transiciones son negras, sus etiquetas no tienen fondo\nExportación del gráfico completo como imagen PNG\nCorregido: las etiquetas de transiciones dentro de un superestado estaban ocultas, las etiquetas de varias transiciones entre los mismos estados y la línea hacia una etiqueta desplazada tapaban el texto, las autotransiciones arriba o a la derecha se dibujaban retorcidas",
15
+ "pl": "Symulacja: wykres działa w edytorze bez przełączania czegokolwiek, wejścia ustawia się ręcznie, przewijanie czasu, pauza, pojedyncze kroki i punkty przerwania na stanach i przejściach\nStany równoległe (AND) z kolejnością wykonywania i węzłem historii: po wejściu do stanu następuje powrót do ostatnio aktywnego podstanu\nWięcej logiki czasowej: `before`, `at`, `every`, liczenie wybudzeń przez wejście (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()` oraz codziennie o określonej godzinie lub zdarzeniu astronomicznym (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` odczytuje dowolny stan w warunkach i akcjach, stany sterujące dla każdego wykresu: `enabled`, `reset`, `event`\nStatyczna kontrola wykresu: stany, które nigdy nie stają się aktywne lub nigdy nie są opuszczane, przejścia, które nigdy nie są wykonywane, warunki, które nigdy nie są prawdziwe, nieużywane zmienne\nEdytor: kolor każdego stanu (co drugi poziom zagnieżdżonych stanów ciemniejszy), przejścia pod kątem prostym jako opcja, przyciąganie do siatki, wyrównywanie i rozmieszczanie, przesuwane etykiety przejść\nEdytor: pasek narzędzi pogrupowany według zadań z nowymi przyciskami wycinania i usuwania, zwijane panele boczne, kolory i ikony dla każdego rodzaju elementu, zmienne pogrupowane według rodzaju z wyszukiwaniem\nEdytor: przejścia są czarne, ich etykiety nie mają tła\nEksport całego wykresu jako obrazu PNG\nNaprawiono: etykiety przejść wewnątrz superstanu były ukryte, etykiety kilku przejść między tymi samymi stanami i linia do przesuniętej etykiety zasłaniały tekst, przejścia do samego siebie u góry lub z prawej były rysowane skręcone",
16
+ "uk": "Симуляція: діаграма виконується в редакторі, нічого не перемикаючи, входи задаються вручну, перемотування часу, пауза, покрокове виконання та точки зупинки на станах і переходах\nПаралельні стани (І) з порядком виконання та вузол історії: під час входу в стан повертається останній активний підстан\nБільше часової логіки: `before`, `at`, `every`, підрахунок пробуджень входом (`after(3, button)`), `after(5, min, condition)`, `elapsed()`, `duration()`, а також щодня в заданий час або за астроподією (`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` читає будь-які стани в умовах і діях, керувальні стани для кожної діаграми: `enabled`, `reset`, `event`\nСтатична перевірка діаграми: стани, які ніколи не стають активними або ніколи не залишаються, переходи, які ніколи не виконуються, умови, які ніколи не є істинними, невикористані змінні\nРедактор: колір кожного стану (кожен другий рівень вкладених станів темніший), прямокутні переходи як опція, прив'язка до сітки, вирівнювання та розподіл, переміщувані підписи переходів\nРедактор: панель інструментів згрупована за завданнями, нові кнопки «Вирізати» та «Видалити», бічні панелі згортаються, кольори та значки для кожного виду елементів, змінні згруповані за видом і з пошуком\nРедактор: переходи чорні, їхні підписи без фону\nЕкспорт усієї діаграми як зображення PNG\nВиправлено: підписи переходів усередині суперстану були приховані, підписи кількох переходів між тими самими станами та лінія до переміщеного підпису перекривали текст, переходи в себе зверху або праворуч малювалися перекрученими",
17
+ "zh-cn": "模拟:图表在编辑器中运行而不切换任何设备,输入可手动设置,可快进时间、暂停、单步执行,并可在状态和转换上设置断点\n并行状态(AND)及执行顺序,以及历史连接点:进入状态时返回其上次活动的子状态\n更多时间逻辑:`before`, `at`, `every`,按输入唤醒次数计数(`after(3, button)`),`after(5, min, condition)`, `elapsed()`, `duration()`,以及每天在指定时间或天文事件触发(`at(\"22:30\")`, `at(\"sunset\", -30)`)\n`getState(\"id\")` 可在条件和动作中读取任意状态,每个图表的控制状态:`enabled`, `reset`, `event`\n图表静态检查:从不激活或从不离开的状态、从不执行的转换、从不为真的条件、未使用的变量\n编辑器:每个状态可设颜色(嵌套状态每隔一层颜色更深),可选直角转换线,对齐网格,对齐与分布,转换标签可移动\n编辑器:工具栏按任务分组,新增剪切和删除按钮,侧边栏可折叠,每种元素都有颜色和图标,变量按类型分组并可搜索\n编辑器:转换为黑色,其标签无背景\n将整个图表导出为 PNG 图片\n修复:超状态内转换的标签被遮挡;同一对状态之间多个转换的标签以及指向移动后标签的连线遮挡文字;位于状态上方或右侧的自转换绘制为扭曲形状"
18
+ },
6
19
  "0.2.0": {
7
20
  "en": "the adapter and the editor are written in TypeScript now, no changes of the behavior\nlive values of the variables in the editor\ntaken transitions light up in the editor\nhistory of the starts and the transitions taken (tab \"History\", state `charts.<chart>.history`)\na chart wakes up once right after the start, so transitions without label are taken without waiting for a change of an input\nchart option \"super step\": take transitions until none is valid anymore\nthe arrows of transitions start and end where the states face each other (floating edges), their ends can be dragged along the border of the states or onto another state to move the transition there\nchange detection: `hasChanged`, `hasChangedFrom` and `hasChangedTo`, e.g. `hasChangedTo(button, true)` for edges\nsuncalc 2: `isDaytime()` is true all day during the midnight sun, `astroTime()` reports events which do not happen on a day (polar regions)",
8
21
  "de": "Adapter und Editor sind jetzt in TypeScript geschrieben, das Verhalten bleibt gleich\nLive-Werte der Variablen im Editor\nGenommene Übergänge leuchten im Editor auf\nVerlauf der Starts und der genommenen Übergänge (Reiter „Verlauf“, Datenpunkt `charts.<chart>.history`)\nEin Chart wacht direkt nach dem Start einmal auf, Übergänge ohne Beschriftung werden also genommen, ohne auf die Änderung eines Eingangs zu warten\nChart-Option „Super-Step“: weiterschalten, bis kein Übergang mehr gilt\nDie Pfeile der Übergänge beginnen und enden dort, wo sich die Zustände gegenüberliegen (Floating Edges). Ihre Enden lassen sich am Rand der Zustände verschieben oder auf einen anderen Zustand ziehen, um den Übergang dorthin zu verlegen\nÄnderungserkennung: `hasChanged`, `hasChangedFrom` und `hasChangedTo`, z.B. `hasChangedTo(taster, true)` für Flanken\nsuncalc 2: `isDaytime()` ist während der Mitternachtssonne den ganzen Tag wahr, `astroTime()` meldet Ereignisse, die an einem Tag nicht stattfinden (Polargebiete)",
@@ -28,32 +41,6 @@
28
41
  "pl": "zmieniono nazwę z „statemachine” na „statechart”, ponieważ npm nie akceptuje starej nazwy (zbyt podobnej do istniejącego pakietu)",
29
42
  "uk": "перейменовано з «state-machine» на «statechart», оскільки npm не приймає старе ім'я (занадто схоже на існуючий пакет)",
30
43
  "zh-cn": "从 “状态机” 重命名为 “状态图”,因为 npm 不接受旧名称(与现有包太相似)"
31
- },
32
- "0.1.0": {
33
- "en": "initial release\ngraphical chart editor in the admin side bar: states, transitions, nested states, function blocks, notes\ntransition labels in Stateflow syntax event[condition]{action}, timers with after(n, unit)\nexecution with Stateflow semantics (outer before inner transitions, inner transitions)\ncharts continue in their state after a restart of the adapter\nper input: wake up on updates or changes, filter by ack, debounce\nhelper functions: setState, setStateDelayed, sendTo, isTimeBetween, isDaytime, astroTime\ncode editor with syntax highlighting, error checks and completion, generated code view\nundo/redo, copy/paste, import/export of charts as JSON",
34
- "de": "erste Version\nGrafikeditor in der Admin-Seitenleiste: Zustände, Übergänge, Funktionsblöcke, Notizen\nÜbergangslabel in Stateflow-Syntax event [condition] {action}, Timer mit after (n, unit)\nAusführung mit Stateflow-Semantik (außen vor inneren, inneren Übergängen)\nCharts bleiben auch nach einem Adapter-Neustart\npro Eingabe: Bei Änderungen wecken, nach Ack filtern, entprellen\nHilfsfunktionen: setState, setStateDelayed, sendTo, isTimeBetween, isDaytime, astroTime\nCode-Editor mit Syntaxhervorhebung, Fehlerprüfung und -vervollständigung\nUndo/Redo, Copy/Paste, Import/Export von Charts als JSON",
35
- "ru": "первоначальный релиз\nграфический редактор диаграмм в боковой панели администратора: состояния, переходы, вложенные состояния, функциональные блоки, заметки\nметки переходов в синтаксическом событии Stateflow [условие] {action}, таймеры со значением после (n, единица измерения)\nвыполнение с использованием семантики Stateflow (внешний вид перед внутренними переходами, внутренние переходы)\nграфики остаются в своем состоянии после перезапуска адаптера\nза каждый вход: отслеживание обновлений или изменений, фильтрация по пакету, отмена\nвспомогательные функции: setState, setStateDelayed, SendTo, isTimeBetween, isDaytime, AstroTime\nредактор кода с подсветкой синтаксиса, проверкой и заполнением ошибок, сгенерированным представлением кода\nотмена/повтор, копирование/вставка, импорт/экспорт диаграмм в формате JSON",
36
- "pt": "versão inicial\neditor gráfico na barra de administração: estados, transições, blocos de funções, notas\nrótulos de transição na sintaxe Stateflow event [condition] {action}, timers com after (n, unit)\nexecução com semântica Stateflow (externa antes da interna, interna)\nos gráficos continuam após o reinício do adaptador\npor entrada: ativar atualizações, filtrar por ack, debater\nfunções auxiliares: setState, setStateDelayed, sendTo, isTimeBetween, isDaytime\neditor de código com realce de sintaxe, verificação e conclusão de erros, código gerado\nundo/redo, copie/cole, importe gráficos em JSON",
37
- "nl": "eerste uitgave\ngrafische grafiekeditor in de zijbalk van de beheerder: staten, overgangen, geneste staten, functieblokken, notities\novergangslabels in de syntaxisgebeurtenis van Stateflow [conditie] {action}, timers met after (n, unit)\nuitvoering met Stateflow-semantiek (externe voor innerlijke overgangen, innerlijke overgangen)\nde kaarten blijven in hun staat na een herstart van de adapter\nper ingang: wakker worden bij updates of wijzigingen, filteren op ack, debounce\nhulpfuncties: setState, setState Delayed, SendTo, iTime Between, IsDaytime, AstroTime\ncode-editor met syntaxisaccentuering, foutcontroles en -aanvulling, gegenereerde codeweergave\ngrafieken ongedaan maken/opnieuw uitvoeren, kopiëren/plakken, importeren/exporteren als JSON",
38
- "fr": "sortie initiale\néditeur de graphiques dans la barre d'administration : états, transitions, états imbriqués, blocs de fonctions, notes\nlibellés de transition dans Stateflow Syntax Event [condition] {action}, minuteurs après (n, unit)\nexécution avec la sémantique Stateflow (transitions extérieures avant intérieures)\nles cartes restent en l'état après le redémarrage de l'adaptateur\npar entrée : réveil en cas de mise à jour, filtre par ack, rebond\nfonctions auxiliaires : SetState, SetStateDelayed, SendTo, IsTimeBetween, IsDaytime, AstroTime\néditeur de code avec surlignage syntaxique, vérification des erreurs et saisie, vue du code généré\nannuler/rétablir, copier/coller, importer/exporter des graphiques au JSON",
39
- "it": "prima versione\neditor grafico nella barra admin: stati, transizioni, stati annidati, blocchi funzione, note\netichette di transizione in sintassi Stateflow [condizione] {azione}, timer con dopo (n, unità)\nesecuzione con semantica Stateflow (esterna prima delle transizioni interne)\ni grafici restano così dopo il riavvio dell'adattatore\nper input: attiva le modifiche, filtra per ack, debounce\nfunzioni ausiliarie: setState, setStateDelayed, sendTo, isTimeBetween, isDayTime\neditor di codice con evidenziazione della sintassi, errori e vista generata\nannulla/redo, copia/incolla, import/export grafici in JSON",
40
- "es": "versión inicial\neditor gráfico de gráficos en la barra de administración: estados, transiciones, anidados, bloques de funciones, notas\netiquetas de transición en Stateflow sintaxis event [condition] {action}, temporizadores con after (n, unit)\nejecución con la semántica de Stateflow (exterior antes que transiciones interiores)\nlos gráficos siguen en su estado tras reiniciar el adaptador\npor entrada: despertarse con cambios, filtrar por ack, rebote\nfunciones auxiliares: setState, setStateDelayed, sendTo, isTimeBetween, isDaytime, astroTime\neditor de código con resaltado de sintaxis, comprobación y finalización de errores, vista de código generada\ndeshacer, copiar y pegar, importar y exportar gráficos como JSON",
41
- "pl": "wstępne wydanie\ngraficzny edytor wykresów na pasku bocznym administratora: stany, przejścia, stany zagnieżdżone, bloki funkcyjne, notatki\netykiety przejścia w zdarzeniu składni Stateflow [warunek] {action}, timery z after (n, unit)\nwykonanie z semantyką Stateflow (przejścia zewnętrzne przed wewnętrznymi, przejścia wewnętrzne)\nwykresy są kontynuowane w swoim stanie po ponownym uruchomieniu adaptera\nna wejście: budzić się przy aktualizacjach lub zmianach, filtrować według ack, rozbić\nfunkcje pomocnicze: setState, setStateDelayed, sendTo, istimeBetween, IsDaytime, AstroTime\nedytor kodu z podświetleniem składni, sprawdzaniem błędów i uzupełnianiem, generowanym widokiem kodu\ncofnij/powtórz, kopiuj/wklej, importu/eksportuj wykresy jako JSON",
42
- "uk": "первинний випуск\nграфічний редактор діаграм в бічній панелі адміністратора: стани, переходи, вкладені стани, функціональні блоки, примітки\nмітки переходу в події синтаксису Stateflow [умова] {дія}, таймери з після (n, одиниця)\nвиконання з семантикою Stateflow (зовнішні перед внутрішніми переходами, внутрішні переходи)\nграфіки продовжуються в своєму стані після перезавантаження адаптера\nза вхід: прокидатися від оновлень або змін, фільтрувати за ack, debounce\nдопоміжні функції: setState, setStateLayed, SendTo, IsBetween, IsDaytime, AstroTime\nредактор коду з підсвічуванням синтаксису, перевіркою помилок і завершенням, переглядом згенерованого коду\nскасування/повторити, копіювати/вставити, імпорту/експортувати діаграми як JSON",
43
- "zh-cn": "初始版本\n管理员侧栏中的图形图表编辑器:状态、过渡、嵌套状态、功能块、注释\nStateflow 语法中的过渡标签 event [condition] {action},带有 after (n,单位) 的计时器\n使用 Stateflow 语义执行(内部过渡之前的外层,内部过渡)\n重新启动适配器后,图表继续保持其状态\n每个输入:更新或更改时唤醒,按 ack 过滤,去抖动\n辅助函数:setState、setStateDelayed、sendTo、isTimeBetween、isDayTime、AstroTime\n具有语法突出显示、错误检查和完成功能、生成的代码视图的代码编辑器\n撤消/重做、复制/粘贴、将图表导入/导出为 JSON"
44
- },
45
- "0.0.1": {
46
- "en": "initial release",
47
- "de": "Erstveröffentlichung",
48
- "ru": "Начальная версия",
49
- "pt": "lançamento inicial",
50
- "nl": "Eerste uitgave",
51
- "fr": "Première version",
52
- "it": "Versione iniziale",
53
- "es": "Versión inicial",
54
- "pl": "Pierwsze wydanie",
55
- "uk": "Початкова версія",
56
- "zh-cn": "首次出版"
57
44
  }
58
45
  },
59
46
  "titleLang": {
@@ -86,7 +73,6 @@
86
73
  "Igge <mail@igge.org>"
87
74
  ],
88
75
  "keywords": [
89
- "ioBroker",
90
76
  "state machine",
91
77
  "statechart",
92
78
  "automation",
@@ -104,12 +90,13 @@
104
90
  "loglevel": "info",
105
91
  "tier": 3,
106
92
  "mode": "daemon",
93
+ "messagebox": true,
107
94
  "type": "logic",
108
95
  "compact": true,
109
96
  "connectionType": "local",
110
97
  "dataSource": "poll",
111
98
  "adminUI": {
112
- "config": "json",
99
+ "config": "none",
113
100
  "tab": "materialize"
114
101
  },
115
102
  "adminTab": {
@@ -126,14 +113,11 @@
126
113
  ],
127
114
  "globalDependencies": [
128
115
  {
129
- "admin": ">=7.6.17"
116
+ "admin": ">=7.6.20"
130
117
  }
131
118
  ]
132
119
  },
133
- "native": {
134
- "option1": true,
135
- "option2": "42"
136
- },
120
+ "native": {},
137
121
  "objects": [],
138
122
  "instanceObjects": []
139
123
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.statechart",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Statecharts (hierarchical state machines) with a graphical editor for ioBroker",
5
5
  "author": {
6
6
  "name": "Igge",
@@ -58,6 +58,7 @@
58
58
  "@types/react": "^18.3.31",
59
59
  "@types/react-dom": "^18.3.7",
60
60
  "@xyflow/react": "^12.12.0",
61
+ "html-to-image": "^1.11.11",
61
62
  "patch-package": "^8.0.1",
62
63
  "react": "^18.3.1",
63
64
  "react-dom": "^18.3.1",
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "option1": "Option 1",
3
- "option2": "Option 2"
4
- }
@@ -1,19 +0,0 @@
1
- {
2
- "i18n": true,
3
- "type": "panel",
4
- "items": {
5
- "option1": {
6
- "type": "checkbox",
7
- "label": "option1",
8
- "sm": 12
9
- },
10
- "option2": {
11
- "type": "text",
12
- "label": "option2",
13
- "newLine": true,
14
- "sm": 12,
15
- "md": 6,
16
- "lg": 4
17
- }
18
- }
19
- }
@@ -1,38 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="320" height="320" viewBox="0 0 320 320">
2
- <defs>
3
- <linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
4
- <stop offset="0" stop-color="#1e3a8a"/>
5
- <stop offset="1" stop-color="#0f766e"/>
6
- </linearGradient>
7
- <marker id="arr" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="5" markerHeight="5" orient="auto-start-reverse">
8
- <path d="M0,0 L10,5 L0,10 z" fill="#e2e8f0"/>
9
- </marker>
10
- <marker id="arrA" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="5" markerHeight="5" orient="auto-start-reverse">
11
- <path d="M0,0 L10,5 L0,10 z" fill="#fbbf24"/>
12
- </marker>
13
- </defs>
14
-
15
- <rect x="0" y="0" width="320" height="320" rx="64" fill="url(#bg)"/>
16
-
17
- <!-- start indicator -->
18
- <circle cx="44" cy="96" r="9" fill="#e2e8f0"/>
19
- <path d="M55 96 L82 96" stroke="#e2e8f0" stroke-width="6" fill="none" marker-end="url(#arr)"/>
20
-
21
- <!-- transitions -->
22
- <path d="M128 78 Q 172 40 212 78" stroke="#fbbf24" stroke-width="7" fill="none" stroke-linecap="round" marker-end="url(#arrA)"/>
23
- <path d="M232 138 L 192 210" stroke="#e2e8f0" stroke-width="7" fill="none" stroke-linecap="round" marker-end="url(#arr)"/>
24
- <path d="M138 222 L 108 140" stroke="#e2e8f0" stroke-width="7" fill="none" stroke-linecap="round" marker-end="url(#arr)"/>
25
- <path d="M212 116 Q 172 140 132 116" stroke="#e2e8f0" stroke-width="5" fill="none" stroke-linecap="round" stroke-dasharray="2 10" marker-end="url(#arr)"/>
26
-
27
- <!-- states -->
28
- <circle cx="104" cy="98" r="30" fill="#f8fafc"/>
29
- <circle cx="236" cy="98" r="30" fill="#fbbf24"/>
30
- <circle cx="236" cy="98" r="38" fill="none" stroke="#fbbf24" stroke-width="4" opacity="0.55"/>
31
- <circle cx="168" cy="244" r="30" fill="#f8fafc"/>
32
- <circle cx="168" cy="244" r="22" fill="none" stroke="#0f766e" stroke-width="4"/>
33
-
34
- <!-- state labels -->
35
- <text x="104" y="107" font-family="DejaVu Sans, Arial, sans-serif" font-size="26" font-weight="700" fill="#1e3a8a" text-anchor="middle">A</text>
36
- <text x="236" y="107" font-family="DejaVu Sans, Arial, sans-serif" font-size="26" font-weight="700" fill="#1e3a8a" text-anchor="middle">B</text>
37
- <text x="168" y="253" font-family="DejaVu Sans, Arial, sans-serif" font-size="22" font-weight="700" fill="#1e3a8a" text-anchor="middle">C</text>
38
- </svg>