All Projects → jgyates → Genmon

jgyates / Genmon

Licence: gpl-2.0
Generac Generator Monitoring using a Raspberry Pi and WiFi

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Genmon

go-modbus
modbus write in pure go, support rtu,ascii,tcp master library,also support tcp slave.(WIP new implement<old: https://github.com/thinkgos/gomodbus >)
Stars: ✭ 124 (-13.29%)
Mutual labels:  modbus, modbus-tcp
Easymodbustcp.net
Modbus TCP, Modbus UDP and Modbus RTU client/server library for .NET implementations
Stars: ✭ 358 (+150.35%)
Mutual labels:  modbus, modbus-tcp
rodbus
Rust implementation of Modbus with idiomatic bindings for C, C++, .NET, and Java
Stars: ✭ 34 (-76.22%)
Mutual labels:  modbus, modbus-tcp
modbus-esp8266
Most complete Modbus library for Arduino. A library that allows your Arduino board to communicate via Modbus protocol, acting as a master, slave or both. Supports network transport (Modbus TCP) and Serial line/RS-485 (Modbus RTU). Supports Modbus TCP Security for ESP8266/ESP32.
Stars: ✭ 332 (+132.17%)
Mutual labels:  modbus, modbus-tcp
Modbridge
Bridge between modbus and MQTT
Stars: ✭ 20 (-86.01%)
Mutual labels:  modbus, modbus-tcp
huawei solar
Home Assistant integration for Huawei Solar inverters via Modbus
Stars: ✭ 126 (-11.89%)
Mutual labels:  modbus, modbus-tcp
Node Modbus
Modbus TCP Client/Server implementation for Node.JS
Stars: ✭ 313 (+118.88%)
Mutual labels:  modbus, modbus-tcp
Modbustool
A modbus master and slave test tool with import and export functionality, supports TCP, UDP and RTU.
Stars: ✭ 187 (+30.77%)
Mutual labels:  modbus, modbus-tcp
Gomodbus
A Modbus client in Go
Stars: ✭ 11 (-92.31%)
Mutual labels:  modbus, modbus-tcp
Modbus
Modbus RTU and TCP support for C#
Stars: ✭ 23 (-83.92%)
Mutual labels:  modbus, modbus-tcp
EasyModbusTCP.Java
EasyModbusTCP library for Java implementation
Stars: ✭ 76 (-46.85%)
Mutual labels:  modbus, modbus-tcp
Modbus Tcp Client
PHP client for Modbus TCP and Modbus RTU over TCP (can be used for serial)
Stars: ✭ 89 (-37.76%)
Mutual labels:  modbus, modbus-tcp
Mbusd
Open-source Modbus TCP to Modbus RTU (RS-232/485) gateway.
Stars: ✭ 233 (+62.94%)
Mutual labels:  modbus, modbus-tcp
ModbusMechanic
Cross platform GUI MODBUS TCP/RTU simulator & gateway. Interprets data types including ascii float and int.
Stars: ✭ 63 (-55.94%)
Mutual labels:  modbus, modbus-tcp
Pyscada
PyScada is a open source scada system that uses the Django framework as backend
Stars: ✭ 233 (+62.94%)
Mutual labels:  modbus, modbus-tcp
solaredge modbus
SolarEdge Modbus data collection library
Stars: ✭ 49 (-65.73%)
Mutual labels:  modbus, modbus-tcp
Jlibmodbus
JLibModbus is an implementation of the Modbus protocol v1.1b in java language.
Stars: ✭ 149 (+4.2%)
Mutual labels:  modbus, modbus-tcp
J2mod
Enhanced Modbus library implemented in the Java programming language
Stars: ✭ 155 (+8.39%)
Mutual labels:  modbus, modbus-tcp
Hslcommunication
An industrial IoT underlying architecture framework, focusing on the underlying technical communications and cross-platform, cross-language communication functions, to achieve a variety of mainstream PLC data reading and writing, to achieve modbus of various protocols read and write, and so on, to support the rapid construction of industrial upper computer software, configuration software, SCADA software, factory mes system, To help enterprise Industry 4.0 take-off, to achieve intelligent manufacturing, smart factory goals. The main PLC contains Siemens, Mitsubishi, Omron, Panasonic, Modbus, AB-PLC, Redis
Stars: ✭ 816 (+470.63%)
Mutual labels:  modbus, modbus-tcp
Pymodbus
A full modbus protocol written in python
Stars: ✭ 1,225 (+756.64%)
Mutual labels:  modbus, modbus-tcp

genmon

Generator Monitoring Application using a Raspberry Pi and WiFi

This project will monitor a backup generator that utilizes the Generac Controllers over a WiFi or wired connection. The following generator controllers are supported:

  • Generac Nexus and Evolution (1.0 and 2.0) Controller (Used in Generac's residential product line)
  • Honeywell and Eaton use the Generac Controllers, they call them Sync 1.0 (Nexus), Sync 2.0 (Evolution 1.0) and Sync 3.0 (Evolution 2.0)
  • Generac H-100 Industrial Controllers
  • The H-100 controller is used in industrial generators from Generac and Eaton.
  • Generac G-Panel based Industrial Controllers
  • Generac PowerPact
  • 2008 Era Generac Pre-Nexus controllers. See this page for more info.

The project is written mostly in python and has been tested with a Raspberry Pi 3 (Pi Zero, Pi Zero W, Pi 2 and Pi 3b+ have also been validated). To use this project you would need to create a physical enclosure for your raspberry pi and possibly make a cable to connect the raspberry pi to the generator controller or purchase pre-assembled hardware. If you are comfortable doing these things and you have a backup generator that has a supported controller then this project may be of interest to you.

Functionality

The software supports the following features:

  • Monitoring of the generator to to detect and report the following:
    • Maintenance, Start / Stop and Alarm Logs (No Maintenance log exist on Nexus or Industrial Gens)
    • Display Generator Serial Number
    • Generator warnings and faults
    • Generator Status:
      • Engine State
        • Generator Switch State (Auto, On, Off)
        • Generator Engine State (Stopped, Starting, Exercising, Running Manual, Running Utility Loss, Stopped due to Alarm, Cooling Down)
        • Battery Voltage and Charging Status
        • Relay Output State: (Starter, Fuel Relay, Battery Charger, others for liquid cooled models)
        • Engine RPM, Hz and Voltage Output
        • Generator Controller Time
        • Line State
          • Utility Voltage Level
          • Transfer Switch State (Evolution liquid cooled model and Industrial Gens with HTS/MTS/STS Transfer Switches models only)
      • Outage Information
        • Time since last outage
        • Current Utility Voltage
        • Min and Max Utility Voltage since program started
      • Maintenance Information
        • Weekly Exercise time, day (biweekly and monthly if supported by your generator)
        • Hours till next scheduled service
        • Total Run Hours
        • Firmware and Hardware versions
      • Various statics from the generator monitor including time since program launched, MODBUS / serial communications health and program health.
  • Email notification of :
    • Engine state change
    • Switch state change
    • Critical or Warning messages from the generator
  • Web based application for viewing status of the generator
  • Limited and Full Rights login for web interface
  • SMS notifications of Generator state and power outages (via Twilio SMS API or Expansion Cellular Modem)
  • Push notifications (via pushover.net)
  • syslog logging of generator events
  • Command Line application (all the functionality of email).
  • Ability to set exercise time
  • Ability to set generator time
  • Ability to start, stop, exercise and start / active the transfer switch (i.e. power your house off the generator) remotely.
  • Power, Current output on selected models
  • Fuel consumption on selected models
  • MQTT integration for third party home automation support
  • Service Journal for logging maintenance, repair, etc
  • Backup configuration files
  • Enhanced Exercise options for Evolution/Nexus controller (Exercise Transfer Switch)
  • Optional low bandwidth URL (http://ipaddress:8000/low)
  • Firmware update notification for Evolution 2.0
  • SNMP monitoring
  • Optional LDAP authentication to web interface

Generator Monitor Web Interface

Support

This project is free to use under the posted license agreement. It was written and is supported by one person with testing and some documentation supported by users of the software. I originally created this project for my personal use however I decided to make the project available to anyone interested, however I do accept tips via paypal:

paypal

Testing

This software was written by one person with full time access to one generator. The primary model used for testing and development is a liquid cooled model with an evolution controller. The software was written with every intention of working on liquid and air-cooled models with the Evolution or Nexus controller however the author has not tested all scenarios. Testing has been performed with both Evolution and Nexus Controllers (air cooled and liquid cooled) with help of the community, however not all firmware versions and models have been tested.

In an effort to expand compatibility and functionality, from time to time I may use the issue tracker of this project to request input from people using the software. This input will will allow greater compatibility and new features to be added.

Placement of your Raspberry Pi

If you have a large generator, the placement of your Raspberry Pi could be important due to EMI. Larger generators can produce more EMI when starting. For example a 48kw diesel generator may generate enough EMI to cause CRC errors when the generator starts if the Raspberry Pi enclosure is close to the engine. If you see CRC errors, check the validity of your cable. The errors may be caused by vibration of loose molex connectors in your cable. Also, if the Raspberry Pi enclosure is moved away from the engine and closer to the controller, this will likely reduce EMI if that is causing any CRC errors. EMI may not be an issue with smaller liquid cooled generators. There are several ways to resolve EMI issues however the best solution is dependent on your particular site needs (generator, how much space you need for your Pi, how much space you have available, etc). The project wiki has information regarding a typical enclosure for the Raspberry Pi, however the example enclosure is not RF shielded.

Connectivity

This application was written to be agnostic of the underlying network media (i.e. WiFi, Ethernet, etc). Testing and development was performed with WiFi. WiFi access points were connected to an uninterruptible power supply (UPS) so connectivity is not lost power is transferred from the utility to the generator.

Setting Up Your Raspberry Pi (Serial Port)

Since there are several version of the raspberry Pi out and also several options regarding the operating system, I will leave this section somewhat minimal. I used a Raspberry Pi 3 with Raspbian Lite. There are many resources on the web for setting up a Raspberry Pi so I will only include links for setting up the serial port. The Linux device name of the serial port changed or at least the symbolic link changed starting with the Raspberry Pi 3 from /dev/ttyAMA0 to /dev/serial0 so if you are using the on board serial port you will want to validate the device name and make sure genmon.conf reflects the serial device name of your Raspberry Pi and Linux distribution. The following two links are helpful in setting up the serial port on the Raspberry Pi:

General Setup of the serial port for a Raspberry Pi

An updated serial port setup instructions based on the Raspberry Pi 3

One important step is to validate your serial port is working properly. You can validate the serial port is working properly by using the program serialtest.py in this repository. To validate your serial port connect the RS-232 transmit to RS-232 receive and follow the instructions in the software section on serialtest.py. Also, you can validate your cable by connecting your cable to your serial port and connecting transmit to receive at the far end of the cable so you will be looping back through your cable, then repeat the serialtest.py test.

Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].