Save one devices loop when handling a 2413 device. default tip

Version 0.9.20a2. Renamed one-wire struct resolution to rd_cache and added wr_cache. The rd_cache and wr_cache values are used by the DS2413. Added these values to the grid so we can see them live.

Much faster shutdown of the websocket service.

Made devices loop a bit slower.

Version 0.9.20a1. Analyse threads cpu usage. One-wire added a resolution flag to prevent continuous resolution checks, now only for new sensors and replugged known sensors. Added two 40 sSec delays in the state machine. In the panel thread moved a few locks so these expensive calls are called only when needed.

Different gettid() test

Added test for gettid()

Version 0.9.19

Log pid of each started thread so we can see which uses the most cpu time.

Fixed initial show instead of hide of the toggle switches. Block edit fermenter when the fermenter is in use.

In fermenter screen fix errors during page load.

Fixed updating PID parameters. Jqwidgets javascripts cleanup.

Removed some unused files

Last changes to fermenter.js (maybe). Simulator custom labels for the door switch. Some extra columns in the simulators grid.

Some javascript fixes and cleanup

Add new fermenter adds dummy yeast temperatures. Periodic thermferm unit logging adds the unit alias name. Added Green LED hide color. Moved getglobal.php to dbglobal.php. Adjusted several record types in global and fermenter javascript records so there is less guesswork. Only display control leds and switches for defined equipment.

Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.

Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.

Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.

It was impossible to remove devices from fermenters. Added beer_address2 device to the simulator.

Log marking device missing if a onewire devices goes away. Fixes in fermenters display. Added Present and Inuse columns in devices list.

Version 0.9.19b1. Less noisy logging.

Moved webcam scripts over to this www directory. Upgraded jquery to 2.1.1 (still old).

Removed old webpages from the repository

Version 0.9.19a6. Fixes after a short trial on the production controller. Fixed json for alternate beer termperature sensor. Fixed division by 1000 for the room temperature and humidity values. The dropdown list for devices shows the address instead of description in the list.

Version 0.9.19a5

Possible fix for large sockets messages.

Version 0.9.19a4

Finished save fermenter uit edit.

Fermenter editor layout is ready. Load record done. Add and Delete a new fermenter is done.

Drop fermenter volume setting.

Device Save implemented.

Added device delete

Added Add new device.

Finished global setup including Save.

The global settings screen added. No Save function yet.

Added web page to display the one-wire bus live status.

Final 0.9.19a3 change.

Version 0.9.19a3. Fixed segfault in onewire temperature measurement. Fixed json error in onewire device.

Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.

Fixed two compiler warnings on arm platform

Version 0.9.19a1

Better handling of a removed DS18B20 temperature sensor.

Create global_json() for all and expanded the data to the complete setup. Added design for the global setup.

More copyright references.

Devices edit popup layout ready.

More work for devices list and editor.

Devices list grid added.

Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.

Fixed fermenter switches in NONE mode. Som other small bugfixes.

Websocket ping/pong uses sequence numbers.

Minor details for server DEVICE commands. Added getdevice<s> php scripts.

Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).

Added getglobal.php script

Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.

Server json unit data list added

Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.

Added websockets to thermferm. Started new www directory for websocket enabled web. The init script now waits until thermferm is completely stopped.

Code cleanup

Version 0.9.18

Only log temperature error once. Only log temperature Ok again once. Do not log changed temperature.

Finished one-wire ds2413 output

Stop logging ghost one-wire devices.

Reboot from the panel is now restart application. The restart is working again, also via bmsapp.

Upgraded MIGRATION document.

Removed lcd-buffer create logmessage. Combined Keys and Delay states.

Added commandline switch --foreground, the --debug now only activates extra debug logging. No more console output. The thermferm process uses a state table, this makes the code more readable and have less large functions.

Fermentation processing in it's own function.

Version 0.9.17a3. Prepare for thermferm state tables.

Updated MIGRATION document.

One-wire tread more relaxed logging.

Version 0.9.17a2. Disabled a lot of mutex locks, some are blocking and need to be fixed. This version seems to be working, more or less.

Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.

Added state to scan vanished one-wire devices. Update devices if a one-wire device returns on the bus.

Fix for compile with wiringPi

Read ds2413 moved to one-wire thread. Only reprogram if it is an input and programmed as output.

One-wire thread is now the first to start. The devices_detect() function now uses the detected one-wire linked list instead of scan the sysfs. Base code for ds2413 added in the state table, needs rework.

State machine logging only when debug is active.

Added one-wire thread and some old state table macro's. The state machine first state scans new one-wire devices and stores them in a linked list.

Version 0.9.17

Moved all delay functions into a new general file.

Log compile options on startup.

Brought the retry attempts to read the DHT11 sensors to the main devices loop. The actual read function is now very simple. Called every 30 seconds when all is well, or 2 seconds if something is wrong.

Version 0.9.16. Final changes DHT11 reading via sysfs.

Better detection of the DHT11 sensors. Read DHT11 with errors detection and reapeated tries.

Work to move dht userspace code to kernel module.

Running threads and locking doesn't depend on wiringPi anymore.

All thread locks from wiringPi to standard pthreads.

Added MIGRATION document. Trying to drop usleep() call to replace by nanosleep(). Some code cleanup.

Updates for DHT11 reading

Impoved SDL configure checks

Version 0.9.15

Renamed initscript

Init system for Slackware only

Final rebuild brewpanel to SDL2

Add --enable-wiringpi to configure script to allow to disable wiringpi even when it is installed. Use SDL2 instead of partly old SDL.

Create installation directories

Create installation directories

Version 0.9.14

Add DESTDIR installation target. Some kicad update again. Moved init script to /etc/rc.d

Version 0.9.13. Close socket after use, fixes too much files open.

Version 0.9.12

Final changes for current wifi parameters.

Updates for cabled networks

Design wifi parameter reporting

Upgraded drawing to kicad 6.0.8

Upgraded kicad to version 6

Final changes in the css.

Updated css for webcam-ng

Added favicon.ico

Merged again

Improved conditional styling

Improved conditional styling

Merged

Added nextgen webcam scripts.

Upgraded jqwidgets

Always send network information, our IP may be changed.

Fixed init problems.

Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.

Added kicad drawings

Make sure the hostname doesn't contain the domain name. Added Slackare init and setup scripts.

Improved logging if wiringpi failed.

Implemented MQTT user/password auth.

Version 0.9.10.

Changed pub_domoticz mqtt publishing.

Better logging for locking the daemon and fixed stale lock recovery.

Version 0.9.9 Don't flag fermenter death if the unit is turned off. Fix a wrong log message. Send unit data even if the unit is turned off.

Version 0.9.8. Added extra path to the fonts for Debian buster. Changed the PID to work on Proportional on Measurement. Added loops so that it looks like the PID is running at 100 mSec intervals.

Version 0.9.7. Increased the maximum fermentation temperature to 45 degrees to allow Kveik fermentations.

Merged fix from default stable

Fix for non Pi hardware and virtual Pi's.

Merged with default stable

Version 0.9.6

Fix one byte too large buffer copy

Added wiringPi hardware detection code.

Less debug messages on stdout

Revoved old temperature sensors read errors workaround.

Removed simulator debug support

Code cleanup and removed a debug message

Removed Graph button from the status screen.

Removed ARCHIVER commands and web pages.

Removed writing local unit data logs

Created stable branch stable

Final device thermometer error detection.

Added sensor precision initialize. Changed PID logging.

Experimental 12 bits resolution init

Changed 1-wire DS18B20 sensor error check.

More relaxed DHT11 readings

Removed not working extra check

Attempt to better check the temperature sensors and lower the cpu load.

Version 0.9.5, interior lights are now only controlled by the open door or a 5 minutes timer. The timer is started via an MQTT command. The BMS web application sends this command just before a webcam page is requested.

Added webcam files.

Version 0.9.4 Handle yeast temperature limits per fermenter.

Concept for yeast limits settings.

Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.

DLOG messages are no longer retained.

Events are in the flat file log too

Version 0.9.2 DLOG messages every minute unless a unit is off. More event messages added. The target temperatur is now taken from the PIDs.

Removed some debug code

Fix for compiling with wiringPi

Send MQTT messages with temperature values also when the fermenter is off.

Version 0.9.1. Added fermentation profiles via MQTT. Added uuid field for loaded product. Removed some debug messages in the simulator. Removed dead code and debug messages from the lcd driver.

Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.

Version 0.9.0. Implemented DCMD via mqtt to set stage, mode, setpoint low and high. Implemeted DCMD via mqtt to set heater, cooler, fan and light state. Implemented DCMD via mqtt to set product code and name. Set the PID's in fridge mode without idle range offset, that was an old leftover setting that was obsolete.

Switched export server to https

Versie 0.8.9

Added Carbonation stage.

Fix not generating a valid system uuid

Versie 0.8.8 Fermentation stage implemented in units.

On Raspberry with WiringPi better hardware info is sent with NBIRTH

Fix for deprecated warnings

Versie 0.8.7. Fixed a lot of memory leaks with the aid of valgrind.

Forced mosquitto before thermferm

Improved Debian installation

Update init script and installation

Versie 0.8.6 De mosquitto library is geen optie meer maar verplicht.

Fixed compile for LCD display

Add fermenter uuid to the DLOG message

Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.

Updated simulator with more simulated devices.

Add INSTALL file. Less simulator logging.

Versie 0.8.4. Init script toegevoegd inclusief make install.

Versie 0.8.3. Enkele debug console berichten verwijderd. De MQTT NCMD reboot en rebirth commando's geimplementeerd.

Versie 0.8.2. Node NBIRTH payload heeft nu netwerk informatie.

Versie 0.8.1. Geen DDATA als fermenter uit staat. Profile JSON formaat is nu werkend.

Versie 0.8.0. Fixed eerste DBIRTH fout geinitialiseerde waardes.

Changed alarm message and mqtt message order

Fixed compiling whithout mqtt support.

Versie 0.6.8. Code cleanup. Publish NDATA MQTT bericht iedere 5 minuten of als er een THB wijziging is.

Removed NBIRTH/NDATA nodecontrol message.

Code cleanup

Fixed spelling error

Versie 0.6.7. Globale uuid toegevoegd voor de NBIRTH payload.

Changed opacity of heater and cooler lines

Versie 0.6.6. Subprojecten mash, rc433 en dht11 verwijderd.

Style fixes for the log chart. Removed png export button that doesn't work anymore.

Versie 0.6.5. LIST LOG <unit> commando verwijderd, alleen ARCHIVE LOG <unit> is nog in gebruik. De chiller temperatuur zit nu ook in de log en grafiek.

Een kleine correctie

Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.

Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.

Lights always on

Fan off during cooling

Serious alarms are above 255

Added alarm LED

Changed 1-wire logic a little bit

Debug CRC error messages

Chiller alarm and cutoff now against the air temperature.

Added unit alarm flag

Changed extreme PID control from 5to 8 degrees.

Thermometers styling

Liveview completed the chiller thermometer.

Design live view page

Fix storing beer_idx value

Version 0.6.2 released.

Added chiller configuration items

Changed livescreen, now displays thermometers. The chart is loaded on request. This speeds up loading the application.

Don't continuous send data to domoticz

Only send domoticz changed values

Changed state messages to domoticz

Version 0.6.1 added support for domoticz mqtt sensors.

Small web page changes

Upgraded jqwidgets to version 4.5.2

Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.

Turn off MQTT debug

Add Raspberry support in MQTT init message

Extra shutdown delay

New MQTT protocol

Small fix

Added some MQTT publish clear functions. Version 0.5.8

Better door and 12 volt detection and logging

Fixed some MQTT messages. Added more profile MQTT messages. Version 0.5.7

Bumped to version 0.5.6

Units now have an unique alias name so that the MQTT messages are more friendly.

Created mqtt sourcefiles. Use flags to trigger publish messages. The main source does not know and does not care if MQTT messages will be sent. Version 0.5.5

Fixed empty setpoint values

Compiles mosquitto code if library is found on the system. Bumped to version 0.5.4

The FAN always runs if the unit is active. Bumped tp version 0.5.3

Code cleanup.

Fix Deadlok problem when there is only a heater or a cooler.

Fixed server log when changed PID parameters from the web interface.

(0) -240 tip

mercurial