Skip to content

Releases: pyscada/PyScada

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