Class: Ocpp::Rails::Actions::StatusNotificationHandler
- Inherits:
-
Object
- Object
- Ocpp::Rails::Actions::StatusNotificationHandler
- Defined in:
- app/services/ocpp/rails/actions/status_notification_handler.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(charge_point, message_id, payload) ⇒ StatusNotificationHandler
constructor
A new instance of StatusNotificationHandler.
Constructor Details
#initialize(charge_point, message_id, payload) ⇒ StatusNotificationHandler
Returns a new instance of StatusNotificationHandler.
5 6 7 8 9 |
# File 'app/services/ocpp/rails/actions/status_notification_handler.rb', line 5 def initialize(charge_point, , payload) @charge_point = charge_point @message_id = @payload = payload end |
Instance Method Details
#call ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/services/ocpp/rails/actions/status_notification_handler.rb', line 11 def call connector_id = @payload["connectorId"] status = @payload["status"] error_code = @payload["errorCode"] ::Rails.logger.info("[OCPP] StatusNotification from #{@charge_point.identifier}: Connector #{connector_id} is #{status}") # Update charge point or connector status if connector_id == 0 # Status for entire charge point old_status = @charge_point.status @charge_point.update(status: status) # Log state change if status actually changed log_status_change(nil, old_status, status, { error_code: error_code, info: @payload["info"], vendor_id: @payload["vendorId"], vendor_error_code: @payload["vendorErrorCode"] }) else # Status for specific connector - store in metadata update_connector_status(connector_id, status, error_code) end # Broadcast status change for real-time UI updates broadcast_status_change # Return empty response (StatusNotification doesn't require data in response) {} end |