Skip to content

Releases: pyscada/PyScada

v0.8.3

04 Jul 12:00
Compare
Choose a tag to compare

See changes since the v0.8.0 in the CHANGELOG.

What's Changed

  • various updates by @clavay in #58
  • pyscada installation in venv by @clavay in #60
  • add developer and plugin installation documentation by @clavay in #61
  • added plugin to list of device protocols, changed plugins url handling by @trombastic in #62
  • updates by @clavay in #63
  • add scipy to requirement for the waveform generic handler by @clavay in #65
  • Update install venv by @clavay in #64
  • replace setuptools find_packages by find_namespace_packages by @clavay in #66
  • black formatting by @clavay in #67
  • fix doc for ems protocol by @clavay in #68
  • update readme by @clavay in #69
  • add exclude field list for gen_hiddenConfigHtml by @clavay in #70
  • fix install in venv (partially broken by black formatting commit) by @clavay in #71
  • fixed page alignment problem in views by @trombastic in #73
  • JS : add event to anounce control item color change by @clavay in #72
  • fix page anchor position to include navbar padding and border by @clavay in #74
  • group display permisson by @clavay in #76
  • update tablesorter by @clavay in #77
  • add LOGOUT_REDIRECT_URL by @clavay in #79
  • pip3 install user by @clavay in #80
  • Js fixes and updates by @clavay in #78
  • fix measurement_data_dumps location by @clavay in #83
  • replace save method by get_or_create for dictionary items by @clavay in #84
  • add JS variable to for on before reload by @clavay in #85
  • fix query first value when no data found in time range by @clavay in #86
  • Fix tooltip hidden by @vincent-inviseo in #82
  • dispatch changePyScadaControlItemColor event on window by @clavay in #88
  • add loading page and load config2 on load event, format console.log, kill timeout and xhr on unload by @clavay in #89
  • create event data change by @clavay in #92
  • version 0.8.1 by @clavay in #91
  • prevent loading and showing data after DATA_TO_TIMESTAMP by @clavay in #93
  • fix generic device init import by @clavay in #94
  • last_element_min_time by @clavay in #95
  • add transform data and template for control item display value by @clavay in #96
  • fix difference percent period calculation by @clavay in #97
  • add readthedocs config file by @clavay in #100
  • Docs/develop by @vincent-inviseo in #104
  • add class panel-title control panel by @vincent-inviseo in #108
  • v0.8.2 : add data source logic and link it to variable, remove CalculatedVariable by @clavay in #109
  • fix variable property as variable bit for MultiDeviceDAQProces by @clavay in #110
  • remove unnecessary script by @clavay in #111
  • remove pass by @clavay in #112
  • add log for exceptions by @clavay in #113
  • DeviceHandler signals by @clavay in #114
  • fix RecordedData bit length for int16 by @clavay in #115
  • v0.8.2 by @clavay in #116
  • check if data before writing by @clavay in #118
  • fix pyscada home owner during install by @clavay in #119
  • remove unused function by @clavay in #120
  • generic function to populate inlines for device, variable, variablestate by @clavay in #121
  • RecordedData: store uint64 as int64 shifted - unknown class as float by @clavay in #122
  • fix stopping BP if not exist while deleting a device by @clavay in #123
  • default handler: update values checks and functions return by @clavay in #124
  • fix high limit for UINT64 by @clavay in #125
  • fix display value option transform data by @clavay in #126
  • log while converting variable readed value to float if not None by @clavay in #128
  • add checks and exceptions to recorded data init by @clavay in #129
  • theme check using context to avoid TemplateSyntaxError by @clavay in #130
  • default STATIC_URL with / by @clavay in #131
  • admin: display variable color choosed in the select by @clavay in #132
  • unique value class key for variable by @clavay in #133
  • processflowdiagram: execption when image not found by @clavay in #134
  • update theme validation and remove unused import by @clavay in #135
  • Upgrade flot and fixes by @clavay in #136
  • Css style and legend height by @clavay in #146
  • Widget default and form fix by @clavay in #151
  • utc import from datetime by @clavay in #152
  • view timedelta option, control item offset option, v0.8.3 by @clavay in #155
  • fix append dictionary item if multiple items by @clavay in #157
  • update JS name by @clavay in #159

New Contributors

Full Changelog: v0.8.0...v0.8.3

v0.8.0

23 May 11:04
3926c38
Compare
Choose a tag to compare

v0.8.0

  • core : fix when no handler selected to use the GenericHandlerDevice of the selected protocol
  • systemstat : Create systemstat device (allow remote over ssh)
  • core : Fix timestamp not integer in RecordedData init
  • systemstat : process pid find in cmdline and not only in processus name
  • systemstat : fix pre_delete signal and information choice name
  • core : fix config2 and add classes
  • systemstat : add write_data to execute command
  • JS : fixes
  • core : fix protocol list for devices
  • hmi : fix color for control items
  • core : add related models to Config2
  • JS : dateTimePicker Event : send pyscadaDateTimeChange event for all objects with the class pyscadaDateTimeChange when the datetime picker value change.
  • various : replace ugettext_lazy by gettext_lazy
  • core : replacing pyscada.core in INSTALLED_APPS by pyscada
  • hmi : replace django.conf.urls.url by django.urls.path
  • all : Moving to AGPL3 License
  • core : Moving to django 4.2
  • docs : fixed urls in the docs
  • added a testscript for the instalation routine
  • core : display value option refactoring. Control items display value option code refactoring. Allows more than 3 color.
  • fix django requirements. It should be a coma separated list.
  • moved to new namespace packet format (PEP420) : this was nessesary to make the use of venv possible
  • Fix django 4.0 login : change the default value for LOGIN_REDIRECT_URL in settings.py
  • Fix django 4.0 CSRF_TRUSTED_ORIGINS : change the nginx config to forward the protocol used (http or https) because : Changed in Django 4.0: The values in older versions must only include the hostname (possibly with a leading dot) and not the scheme or an asterisk.
  • Fix when a plugin is uninstalled but the WidgetContent defined in this plugin remain and is selected in an active widget. Add an information log.
  • modbus : fix migration test
  • update install shell : system and docker options
  • modbus : fix test : remove pyvisa from settings template
  • HMI GroupDisplayPermission no groups :
    • add GroupDisplayPermission for users without any group (blank=True).
    • auto create in the hmi/0072 migration.
    • this GroupDisplayPermission cannot be deleted in the admin interface.
    • this group allow everything by default (exclude is empty for each OneToOne related model).
    • add ValidationError for duplicate GroupDisplayPermission.
    • auto collapse only empty inlines in GroupDisplayPermission admin.
    • update get_group_display_permission_list in utils.
    • use get_group_display_permission_list in read and write task.
  • CompexEvent with multiple output variables and refactoring
    • Change names :
      • ComplexEventGroup > ComplexEvent
      • ComplexEvent > ComplexEventLevel
      • ComplexEventItem > ComplexEventInput
    • add ComplexEventOutput to set multiple output variable values when a ComplexEventLevel is active or when no level in active for a ComplexEvent.
  • Remove unused import
  • add informations to pyscada.mail
  • init_db for event and mail add pyscada.core to installed app in init_db
  • use concurrent_log_handler to rotate logs
  • remove django_cas_ng config from settings
  • send mails to admins and managers
  • force channel layer to be empty
  • Create background process for generic device
    • use id 16 for the generic process worker as 1 is taken by the scheduler
    • but id 1 is taken for generic protocol id
    • by defaut the generic device don't do nothing
    • use the dummy handler to save
  • Allow millisecond timestamp for recorded data
    • Replace time() by time_ns / 1000000000 in
    • GenericDevice (write)
    • GenericHandlerDevice (time)
    • RecordedData (init)
    • Do not force timestamp in recorded data init to be integer beforce id calculation.
  • add handler for dummy waveforms
    • Create waveforms for a generic device.
    • Type can be sinus, square and triangle.
    • Properties are set using variable properties: type, amplitude, start_timestamp, frequency and duty cycle.
    • Variable Property type should be a string.
    • default is:
    • "type": "sinus", # sinus, square, triangle
    • "amplitude": 1.0, # peak to peak value
    • "start_timestamp": 0.0, # in second from 01/01/1970 00:00:00
    • "frequency": 0.1, # Hz
    • "duty_cycle": 0.5, # between 0 and 1, duty cycle for square and for
    • triangle : Width of the rising ramp as a proportion of the total cycle.
    • Default is 1, producing a rising ramp, while 0 produces a falling ramp.
    • width = 0.5 produces a triangle wave. If an array, causes wave shape to
    • change over time, and must be the same length as t.
  • log for device write task : log when DWT for a variable not writeable
  • fix boolean with display option
    • use button.html for boolean with display options and for non boolean with color only display option
  • add span for display button : use this span to display the value next to the control item label
  • fix variable property control item
    • fix dictionary, color for VP
    • merge number and boolean in update data values to simplify the code
    • remove unused boolean classes
  • add offset property to generic waveform handler
  • send mail fail not silently : show the error message in a warning log
  • refactor logs
    • remove some error logs
    • replace error logs by warning logs
    • use f-strings in error logs
    • add exc_info=True to log traceback and send it to ADMINS (see settings.py)
    • log as error when a process failed 3 times (to send a mail to ADMINS) then log as warning
  • set AdminEmailHandler settings
  • update gitignore for docker
  • fix export when a filename is given

v0.7.1rc1

11 May 13:33
a01ff35
Compare
Choose a tag to compare

0.7.1rc1

  • Update to Django 3
  • Update docker config and doc to use pyscada repository

0.7.0rc23

  • Add svg to render ProcessFlowDiagram. Allows to resize to fit the window size
  • Add OPC-UA protocol
  • close DB connection in scheduler to allow multiple instance on the same DB to run
  • Add INT8 and UINT8 variable value class
  • change the date range picker JS library
  • Add logrotate config file
  • Add a slider to change the refresh rate value of data handling

0.7.0rc22

  • Add choose_login.html to have multiple login ways
  • Add circular gauge to display control items
  • Add silent delete option in admin for VariableState and Device to delete a lot of data
  • Add grafana doc and config file to use Grafana to display data from a PyScada instance
  • Add dictionaries to store string with a key. Allows to store strings for Variables

0.7.0rc21

  • Update docker config file
  • Add optional PID_FILE_NAME to settings to allow multiple instances
  • Add custom periodic auto caltulated variable

0.7.0rc20

  • add django channels to send informations between processes

0.7.0rc19

  • add fk_name in admin for bacnet device with 2 ForeignKey to Device model

0.7.0rc17, 0.7.0rc18

  • add pre_delete signals to stop the background process before deleting a device
  • move widget post_save signal to the model to remove the global receiver (not filtering by sender)
  • move device handlers to core
  • add stop in DAQ Process restart
  • move the device and variable protocol specific configuration to core
  • add protocol name in device str for the variable js admin file
  • add complex events

0.7.0rc16

  • fixed re-login after logout (#22)
  • added LINK_TARGET option to change the default behaviour of links in view overview (#23)
  • Catching exceptions if DB close while pyscada is running

v0.7.0rc15

27 May 09:39
Compare
Choose a tag to compare
  • 0.7.0rc13

    • updated docs, switching from python 2.7 to python 3
    • added redirect to https to the nginx sample config
    • fixed server error for BackgroundProcess View in Admin with python3
    • fixed HDF5 export for python 3
    • fixed ProcessFlowDiagram in HMI
    • added support for multiple SlidingSidePanels on one Side
    • added date_saved field to the RecordedData Model, renamed the RecordedData model without the field to RecordedDataOld,
      migration #48 will copy some data to the new model, the rest can be copied by using the move_data.py script
  • 0.7.0rc14

    • update to flot 2.1.6
    • fixed process flow diagram value not displayed
    • moved x y zoom selection in HMI to each Chart
    • add option of redirecting to a custom login page
    • add framer option for modbus communication
    • add data courser in chart
    • add XYChart
    • add new form widget in HMI
    • add new drop down control element in HMI
    • fixed WidgetContent not being deleted
    • moved signal related methods to dedicated signals.py
    • added pyserial to dependency list
    • improved hmi <--> db communication to avoid data loss on slow connections
  • 0.7.0rc15

    • fixed zombi process problem
    • fixed migrations with python3
    • changed datetime_now to now from django timezone

0.6.16

14 Apr 16:00
Compare
Choose a tag to compare
updated version number