Releases: pyscada/PyScada
Releases · pyscada/PyScada
v0.8.3
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
- @vincent-inviseo made their first contribution in #82
Full Changelog: v0.8.0...v0.8.3
v0.8.0
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
- since the version 4 of channel redis version, the channel layer is not
- empty after the first read
- we read it again to empty it
- maybe it is related to
- django/channels_redis#348
- or to django/channels_redis#366
- 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
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
v0.7.0rc15
-
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
updated version number