type: vertical-stack cards: - type: markdown content: "## 🛠️ House Battery Charging Override" - type: entities entities: - entity: sensor.home_solar_plant_battery_state_of_charge name: House Battery SOC - entity: sensor.farm_solar_plant_battery_state_of_charge name: Mining Battery SOC title: Current Battery Status - type: horizontal-stack cards: - type: custom:button-card entity: script.charge_from_mining name: Mining Farm icon: mdi:chip show_state: false tap_action: action: call-service service: script.charge_from_mining styles: card: - background-color: "#1e3a8a" - height: 180px icon: - color: white - animation: | [[[ if (states['script.charge_from_mining'].state === 'on') return 'pulse 1.8s infinite'; return 'none'; ]]] - width: 72px - height: 72px - margin-bottom: 8px name: - color: white - font-size: 14px - padding-bottom: 6px custom_fields: runtime: - color: "#a5b4fc" - font-size: 13px - font-weight: bold - align-self: center - justify-content: center - text-align: center - padding-top: 4px custom_fields: runtime: | [[[ return 'Running ' + (states['input_number.mining_runtime'] || '0') + ' hrs'; ]]] - type: custom:button-card entity: script.charge_from_diesel name: Diesel Generator icon: mdi:engine show_state: false tap_action: action: call-service service: script.charge_from_diesel styles: card: - background-color: "#b45309" - height: 180px icon: - color: white - animation: | [[[ if (states['script.charge_from_diesel'].state === 'on') return 'pulse 2s infinite'; return 'none'; ]]] - width: 72px - height: 72px - margin-bottom: 8px name: - color: white - font-size: 14px - padding-bottom: 6px custom_fields: runtime: - color: "#fed7aa" - font-size: 13px - font-weight: bold - align-self: center - justify-content: center - text-align: center - padding-top: 4px custom_fields: runtime: | [[[ return 'Running ' + (states['input_number.diesel_runtime'] || '0') + ' hrs'; ]]] - type: horizontal-stack cards: - type: custom:button-card entity: script.charge_from_propane name: Propane Generator icon: mdi:gas-cylinder show_state: false tap_action: action: call-service service: script.charge_from_propane styles: card: - background-color: "#166534" - height: 180px icon: - color: white - animation: | [[[ if (states['script.charge_from_propane'].state === 'on') return 'pulse 2s infinite'; return 'none'; ]]] - width: 72px - height: 72px - margin-bottom: 8px name: - color: white - font-size: 14px - padding-bottom: 6px custom_fields: runtime: - color: "#86efac" - font-size: 13px - font-weight: bold - align-self: center - justify-content: center - text-align: center - padding-top: 4px custom_fields: runtime: | [[[ return 'Running ' + (states['input_number.propane_runtime'] || '0') + ' hrs'; ]]] - type: custom:button-card entity: script.stop_all_charging name: STOP ALL icon: mdi:stop-circle show_state: false tap_action: action: call-service service: script.stop_all_charging styles: card: - background-color: "#991b1b" icon: - color: white - size: 36px name: - color: white - font-size: 15px - font-weight: bold