Created
          March 3, 2023 09:53 
        
      - 
      
 - 
        
Save dale3h/b1c4e571947438728164dbe2ead728ec to your computer and use it in GitHub Desktop.  
    [Home Assistant] Verizon MiFi Jetpack 8800L
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | # IMPORTANT: Enable the package in `configuration.yaml` | |
| # @see https://www.home-assistant.io/docs/configuration/packages/ | |
| # Option 1: Include all files inside `config/packages` as package files: | |
| homeassistant: | |
| packages: !include_dir_named packages | |
| # Option 2: Use `packages/jetpack_8800l.yaml` file directly from `config/packages` folder: | |
| homeassistant: | |
| packages: | |
| jetpack_8800l: !include packages/jetpack_8800l.yaml | |
| # Option 3: Create `jetpack_8800l.yaml` file in the same directory as `configuration.yaml`: | |
| homeassistant: | |
| packages: | |
| jetpack_8800l: !include jetpack_8800l.yaml | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | # ============================================================================== | |
| # Packages / Jetpack 8800L | |
| # @file packages/jetpack_8800l.yaml | |
| # | |
| # IMPORTANT: Enable packages in `configuration.yaml` | |
| # @see https://www.home-assistant.io/docs/configuration/packages/ | |
| # | |
| # @notes Set `input_text.jetpack_8800l_host` to the IP address of your Verizon | |
| # Jetpack hotspot. | |
| # @notes Set `input_number.jetpack_8800l_data_cap` to the amount of data that | |
| # you are allotted. This is usually either 100GB or 150GB in the US. | |
| # ============================================================================== | |
| # ============================================== | |
| # Input Text | |
| # ============================================== | |
| input_text: | |
| jetpack_8800l_host: | |
| name: Jetpack 8800L Host | |
| icon: mdi:server | |
| # ============================================== | |
| # Input Number | |
| # ============================================== | |
| input_number: | |
| jetpack_8800l_data_cap: | |
| name: Jetpack 8800L Data Cap | |
| icon: mdi:swap-horizontal | |
| initial: 150 | |
| min: 0 | |
| max: 1000 | |
| step: 1 | |
| mode: box | |
| unit_of_measurement: GB | |
| # ============================================== | |
| # Sensor | |
| # ============================================== | |
| sensor: | |
| # ============================== | |
| # Usage Info | |
| # ============================== | |
| - platform: rest | |
| name: Jetpack 8800L Usage | |
| unique_id: jetpack_8800l_usage | |
| resource_template: "http://{{ states('input_text.jetpack_8800l_host') }}/apps_home/usageinfo/" | |
| value_template: "OK" | |
| json_attributes: | |
| - allowance | |
| - barLevelLineUsage | |
| - barLevelTotalShrUsage | |
| - barPercentageLineUsage | |
| - barPercentageTotalShrUsage | |
| - cycleEndDt | |
| - daysLeft | |
| - gBaseAssetsPath | |
| - gHelpURL | |
| - gHtmlLang | |
| - gIsLoggedIn | |
| - gLangDirection | |
| - gLocale | |
| - gPageId | |
| - gProductName | |
| - gProductNumber | |
| - gSecureToken | |
| - isHidden | |
| - lineUsage | |
| - planType | |
| - remainingUsage | |
| - totalShrUsage | |
| - unit | |
| - usageInformationState | |
| - usageTimestamp | |
| # ============================== | |
| # Status Info | |
| # ============================== | |
| - platform: rest | |
| name: Jetpack 8800L Status | |
| unique_id: jetpack_8800l_status | |
| resource_template: "http://{{ states('input_text.jetpack_8800l_host') }}/srv/status" | |
| value_template: "OK" | |
| json_attributes_path: "$.statusData" | |
| json_attributes: | |
| - statusBarAirplaneMode | |
| - statusBarBatteryChargingSource | |
| - statusBarBatteryChargingState | |
| - statusBarBatteryDetection | |
| - statusBarBatteryPercent | |
| - statusBarBytesReceived | |
| - statusBarBytesTotal | |
| - statusBarBytesTransmitted | |
| - statusBarClientListSize | |
| - statusBarConnectionDuration | |
| - statusBarConnectionState | |
| - statusBarFemtoCellStatus | |
| - statusBarGpsStatus | |
| - statusBarGuestClientListSize | |
| - statusBarGuestWifiEnabled | |
| - statusBarMaxWiFiClientListSize | |
| - statusBarMnsAvailable | |
| - statusBarMnsInUse | |
| - statusBarMnsScan | |
| - statusBarMobileDataEnabled | |
| - statusBarNetwork | |
| - statusBarNetworkID | |
| - statusBarNotificationFlag | |
| - statusBarPrimaryClientListSize | |
| - statusBarRoaming | |
| - statusBarSdCardFreeSpace | |
| - statusBarSdCardInUse | |
| - statusBarSdCardStatus | |
| - statusBarSdCardUsedSpace | |
| - statusBarSignalBars | |
| - statusBarSimStatus | |
| - statusBarSmsUnreadCount | |
| - statusBarTechnology | |
| - statusBarTechnologyText | |
| - statusBarTrafficStatus | |
| - statusBarWiFiClientListSize | |
| - statusBarWiFiEnabled | |
| # ============================================== | |
| # Template | |
| # ============================================== | |
| template: | |
| # ============================== | |
| # Calculated Sensors | |
| # ============================== | |
| - sensor: | |
| - name: Jetpack 8800L Cycle Days | |
| unique_id: jetpack_8800l_usage_cycleDays | |
| icon: mdi:calendar-month | |
| unit_of_measurement: days | |
| # device_class: duration | |
| state: >- | |
| {% set dt = strptime(states('sensor.jetpack_8800l_cycle_end_date'), '%Y-%m-%d', as_datetime(0)) %} | |
| {{ (dt.replace(day=1) - timedelta(days=1)).day }} | |
| - name: Jetpack 8800L Days Used | |
| unique_id: jetpack_8800l_usage_daysUsed | |
| icon: mdi:calendar-clock | |
| unit_of_measurement: days | |
| # device_class: duration | |
| state: >- | |
| {{ states('sensor.jetpack_8800l_cycle_days') | int(0) - states('sensor.jetpack_8800l_days_left') | int(0) }} | |
| - name: Jetpack 8800L Daily Threshold | |
| unique_id: jetpack_8800l_usage_dailyThreshold | |
| icon: mdi:calendar-month | |
| unit_of_measurement: GB | |
| state: >- | |
| {{ (states('input_number.jetpack_8800l_data_cap') | float(0) / states('sensor.jetpack_8800l_cycle_days') | int(0) | default(-99, true)) | round(2) }} | |
| - name: Jetpack 8800L Data Remaining | |
| unique_id: jetpack_8800l_usage_dataRemaining | |
| icon: mdi:database-clock | |
| unit_of_measurement: GB | |
| state: >- | |
| {{ (states('input_number.jetpack_8800l_data_cap') | float(0) - states('sensor.jetpack_8800l_data_usage') | float(0)) | round(2) }} | |
| - name: Jetpack 8800L Daily Allowance | |
| unique_id: jetpack_8800l_usage_dailyAllowance | |
| icon: mdi:calendar-month | |
| unit_of_measurement: GB | |
| state: >- | |
| {{ (states('sensor.jetpack_8800l_data_remaining') | float(0) / states('sensor.jetpack_8800l_days_left') | int(0) | default(-99, true)) | round(2) }} | |
| - name: Jetpack 8800L Average Daily Usage | |
| unique_id: jetpack_8800l_usage_avgDailyUsage | |
| icon: mdi:gauge | |
| unit_of_measurement: GB | |
| state: >- | |
| {{ (states('sensor.jetpack_8800l_data_usage') | float(0) / (states('sensor.jetpack_8800l_days_used') | int(0) | default(-99, true))) | round(2) }} | |
| # ============================== | |
| # Usage Info Sensors | |
| # ============================== | |
| - sensor: | |
| - name: Jetpack 8800L Allowance | |
| unique_id: jetpack_8800l_usage_allowance | |
| icon: mdi:wan | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') %} | |
| {{ state_attr('sensor.jetpack_8800l_usage', 'allowance') }} | |
| {% else %} | |
| {{ states('sensor.jetpack_8800l_allowance') }} | |
| {% endif %} | |
| - name: Jetpack 8800L Cycle End Date | |
| unique_id: jetpack_8800l_usage_cycleEndDt | |
| icon: mdi:calendar-refresh | |
| device_class: date | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') %} | |
| {{ strptime(state_attr('sensor.jetpack_8800l_usage', 'cycleEndDt'), '%m/%d/%Y', '2001-01-01' | as_datetime).strftime('%Y-%m-%d') }} | |
| {% else %} | |
| {% if states('sensor.jetpack_8800l_cycle_end_date') in ['unknown', 'unavailable'] %} | |
| 2001-01-01 | |
| {% else %} | |
| {{ states('sensor.jetpack_8800l_cycle_end_date') }} | |
| {% endif %} | |
| {% endif %} | |
| - name: Jetpack 8800L Days Left | |
| unique_id: jetpack_8800l_usage_daysLeft | |
| icon: mdi:calendar-clock | |
| unit_of_measurement: days | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') %} | |
| {{ state_attr('sensor.jetpack_8800l_usage', 'daysLeft') }} | |
| {% else %} | |
| {{ states('sensor.jetpack_8800l_days_left') }} | |
| {% endif %} | |
| - name: Jetpack 8800L Data Usage | |
| unique_id: jetpack_8800l_usage_totalShrUsage | |
| icon: mdi:wan | |
| unit_of_measurement: GB | |
| state_class: total_increasing | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') %} | |
| {{ state_attr('sensor.jetpack_8800l_usage', 'totalShrUsage') | round(2) }} | |
| {% else %} | |
| {{ states('sensor.jetpack_8800l_data_usage') }} | |
| {% endif %} | |
| - name: Jetpack 8800L Usage Unit | |
| unique_id: jetpack_8800l_usage_unit | |
| icon: mdi:wan | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') %} | |
| {{ state_attr('sensor.jetpack_8800l_usage', 'unit') }} | |
| {% else %} | |
| {{ states('sensor.jetpack_8800l_usage_unit') }} | |
| {% endif %} | |
| - name: Jetpack 8800L Usage Timestamp | |
| unique_id: jetpack_8800l_usage_usageTimestamp | |
| icon: mdi:wan | |
| device_class: date | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') %} | |
| {{ strptime(state_attr('sensor.jetpack_8800l_usage', 'usageTimestamp'), '%m/%d/%Y', '2001-01-01' | as_datetime).strftime('%Y-%m-%d') }} | |
| {% else %} | |
| {% if states('sensor.jetpack_8800l_usage_timestamp') in ['unknown', 'unavailable'] %} | |
| 2001-01-01 | |
| {% else %} | |
| {{ states('sensor.jetpack_8800l_usage_timestamp') }} | |
| {% endif %} | |
| {% endif %} | |
| # ============================== | |
| # Status Info Sensors | |
| # ============================== | |
| - sensor: | |
| # ============== | |
| # Battery | |
| # ============== | |
| - name: Jetpack 8800L Battery Charging Source | |
| unique_id: jetpack_8800l_status_BatteryChargingSource | |
| icon: >- | |
| {% set icon_key = state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryChargingSource') | lower %} | |
| {% set icons = { | |
| 'chargingsourceac': 'mdi:power-plug', | |
| 'chargingsourceusb': 'mdi:usb-port', | |
| 'chargingsourcenone': 'mdi:power-plug-off' | |
| } %} | |
| {{ icons[icon_key] | default('mdi:power-plug-off') }} | |
| state: >- | |
| {% if is_state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryChargingSource', 'ChargingSourceAC') %} | |
| AC | |
| {% elif is_state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryChargingSource', 'ChargingSourceUSB') %} | |
| USB | |
| {% elif is_state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryChargingSource', 'ChargingSourceNone') %} | |
| None | |
| {% else %} | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryChargingSource') }} | |
| {% endif %} | |
| - name: Jetpack 8800L Battery Level | |
| unique_id: jetpack_8800l_status_BatteryPercent | |
| unit_of_measurement: "%" | |
| device_class: battery | |
| state_class: measurement | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryPercent') }} | |
| # ============== | |
| # Connection | |
| # ============== | |
| - name: Jetpack 8800L Connection Duration | |
| unique_id: jetpack_8800l_status_ConnectionDuration | |
| icon: mdi:web-clock | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarConnectionDuration') }} | |
| unit_of_measurement: seconds | |
| - name: Jetpack 8800L Connection State | |
| unique_id: jetpack_8800l_status_ConnectionState | |
| icon: >- | |
| {% set icon_key = state_attr('sensor.jetpack_8800l_status', 'statusBarConnectionState') | lower %} | |
| {% set icons = { | |
| 'initializing': 'mdi:web-sync', | |
| 'searching': 'mdi:web-sync', | |
| 'ready': 'mdi:web-check', | |
| 'connecting': 'mdi:web-sync', | |
| 'connected': 'mdi:web-check', | |
| 'dormant': 'mdi:web-clock', | |
| 'disconnecting': 'mdi:web-minus', | |
| 'activation in progress': 'mdi:web-sync', | |
| 'no service': 'mdi:web-off', | |
| 'unactivated': 'mdi:web-off', | |
| 'account restricted (pco 2)': 'mdi:web-cancel', | |
| 'account restricted (pco 2) disconnected': 'mdi:web-cancel', | |
| 'account out of credit (pco 3)': 'mdi:web-cancel', | |
| 'account not active (pco 5)': 'mdi:web-cancel', | |
| } %} | |
| {{ icons[icon_key] | default('mdi:web-remove') }} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarConnectionState') }} | |
| - name: Jetpack 8800L Traffic Status | |
| unique_id: jetpack_8800l_status_TrafficStatus | |
| icon: >- | |
| {% set icon_key = state_attr('sensor.jetpack_8800l_status', 'statusBarTrafficStatus') | lower %} | |
| {% set icons = { | |
| 'none': 'mdi:wifi-remove', | |
| 'uplink': 'mdi:wifi-arrow-up', | |
| 'downlink': 'mdi:wifi-arrow-down', | |
| 'uplinkdownlink': 'mdi:wifi-arrow-up-down', | |
| } %} | |
| {{ icons[icon_key] | default('mdi:wifi-arrow-up-down') }} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarTrafficStatus') }} | |
| # ============== | |
| # WiFi / Devices / Clients | |
| # ============== | |
| - name: Jetpack 8800L Clients | |
| unique_id: jetpack_8800l_status_ClientListSize | |
| icon: mdi:devices | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarClientListSize') }} | |
| state_class: measurement | |
| - name: Jetpack 8800L Primary Clients | |
| unique_id: jetpack_8800l_status_PrimaryClientListSize | |
| icon: mdi:devices | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarPrimaryClientListSize') }} | |
| state_class: measurement | |
| - name: Jetpack 8800L Guest Clients | |
| unique_id: jetpack_8800l_status_GuestClientListSize | |
| icon: mdi:devices | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarGuestClientListSize') }} | |
| state_class: measurement | |
| - name: Jetpack 8800L WiFi Clients | |
| unique_id: jetpack_8800l_status_WiFiClientListSize | |
| icon: mdi:devices | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarWiFiClientListSize') }} | |
| state_class: measurement | |
| - name: Jetpack 8800L Max WiFi Clients | |
| unique_id: jetpack_8800l_status_MaxWiFiClientListSize | |
| icon: mdi:devices | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarMaxWiFiClientListSize') }} | |
| state_class: measurement | |
| # ============== | |
| # GPS | |
| # ============== | |
| - name: Jetpack 8800L GPS Status | |
| unique_id: jetpack_8800l_status_GpsStatus | |
| icon: mdi:crosshairs-gps | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarGpsStatus') | replace('GpsOff', 'Off') }} | |
| # ============== | |
| # Network | |
| # ============== | |
| - name: Jetpack 8800L Network | |
| unique_id: jetpack_8800l_status_Network | |
| icon: mdi:signal | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarNetwork') }} | |
| - name: Jetpack 8800L Network ID | |
| unique_id: jetpack_8800l_status_NetworkID | |
| icon: mdi:signal | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarNetworkID') }} | |
| - name: Jetpack 8800L Signal | |
| unique_id: jetpack_8800l_status_SignalBars | |
| icon: >- | |
| {% set signal = state_attr('sensor.jetpack_8800l_status', 'statusBarSignalBars') | int(0) %} | |
| {% if signal >= 3 %} | |
| mdi:signal-cellular-3 | |
| {% elif signal >= 2 %} | |
| mdi:signal-cellular-2 | |
| {% elif signal >= 1 %} | |
| mdi:signal-cellular-1 | |
| {% else %} | |
| mdi:signal-cellular-outline | |
| {% endif %} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarSignalBars') }} | |
| unit_of_measurement: bars | |
| # device_class: signal_strength | |
| state_class: measurement | |
| - name: Jetpack 8800L Technology | |
| unique_id: jetpack_8800l_status_Technology | |
| icon: mdi:signal | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarTechnology') }} | |
| - name: Jetpack 8800L Technology Text | |
| unique_id: jetpack_8800l_status_TechnologyText | |
| icon: mdi:signal-cellular-3 | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarTechnologyText') }} | |
| # ============== | |
| # SIM | |
| # ============== | |
| - name: Jetpack 8800L SIM Status | |
| unique_id: jetpack_8800l_status_SimStatus | |
| icon: mdi:sim | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarSimStatus') }} | |
| # ============== | |
| # Notifications | |
| # ============== | |
| - name: Jetpack 8800L SMS Unread Count | |
| unique_id: jetpack_8800l_status_SmsUnreadCount | |
| icon: >- | |
| {% if state_attr('sensor.jetpack_8800l_status', 'statusBarSmsUnreadCount') | int(0) %} | |
| mdi:message-alert | |
| {% else %} | |
| mdi:message | |
| {% endif %} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarSmsUnreadCount') }} | |
| # ============================================== | |
| # Usage Info Binary Sensors | |
| # ============================================== | |
| - binary_sensor: | |
| - name: Jetpack 8800L Usage Information State | |
| unique_id: jetpack_8800l_usage_usageInformationState | |
| icon: >- | |
| {% set icon_key = state_attr('sensor.jetpack_8800l_usage', 'usageInformationState') | lower %} | |
| {% set icons = { | |
| 'unavailable': 'mdi:close-network', | |
| 'available': 'mdi:check-network', | |
| } %} | |
| {{ icons[icon_key] | default('mdi:help-network') }} | |
| state: >- | |
| {{ is_state_attr('sensor.jetpack_8800l_usage', 'usageInformationState', 'available') }} | |
| # ============================================== | |
| # Status Info Binary Sensors | |
| # ============================================== | |
| - binary_sensor: | |
| # ============== | |
| # Network | |
| # ============== | |
| - name: Jetpack 8800L Airplane Mode | |
| unique_id: jetpack_8800l_status_AirplaneMode | |
| icon: >- | |
| {% set icon_key = state_attr('sensor.jetpack_8800l_status', 'statusBarAirplaneMode') | lower %} | |
| {% set icons = { | |
| 'airplanemodeon': 'mdi:airplane', | |
| 'airplanemodeoff': 'mdi:airplane-off', | |
| 'lowbatteryoff': 'mdi:airplane-alert' | |
| } %} | |
| {{ icons[icon_key] | default('mdi:airplane') }} | |
| state: >- | |
| {{ not is_state_attr('sensor.jetpack_8800l_status', 'statusBarAirplaneMode', 'AirplaneModeOff') }} | |
| - name: Jetpack 8800L Mobile Data Enabled | |
| unique_id: jetpack_8800l_status_MobileDataEnabled | |
| icon: >- | |
| {% if state_attr('sensor.jetpack_8800l_status', 'statusBarMobileDataEnabled') | int(0) %} | |
| mdi:access-point-network | |
| {% else %} | |
| mdi:access-point-network-off | |
| {% endif %} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarMobileDataEnabled') }} | |
| # ============== | |
| # Battery | |
| # ============== | |
| - name: Jetpack 8800L Battery Charging State | |
| unique_id: jetpack_8800l_status_BatteryChargingState | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryChargingState') }} | |
| device_class: battery_charging | |
| - name: Jetpack 8800L Battery Detection | |
| unique_id: jetpack_8800l_status_BatteryDetection | |
| icon: >- | |
| {% set icon_key = state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryDetection') | lower %} | |
| {% set icons = { | |
| 'present': 'mdi:battery-check', | |
| 'notpresent': 'mdi:battery-remove', | |
| 'invalid': 'mdi:battery-alert-variant' | |
| } %} | |
| {{ icons[icon_key] | default('mdi:battery-alert-variant') }} | |
| state: >- | |
| {{ is_state_attr('sensor.jetpack_8800l_status', 'statusBarBatteryDetection', 'Present') }} | |
| device_class: power | |
| # ============== | |
| # WiFi | |
| # ============== | |
| - name: Jetpack 8800L WiFi Enabled | |
| unique_id: jetpack_8800l_status_WiFiEnabled | |
| icon: >- | |
| {% if state_attr('sensor.jetpack_8800l_status', 'statusBarWiFiEnabled') | int(0) %} | |
| mdi:wifi | |
| {% else %} | |
| mdi:wifi-off | |
| {% endif %} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarWiFiEnabled') }} | |
| - name: Jetpack 8800L Guest WiFi Enabled | |
| unique_id: jetpack_8800l_status_GuestWifiEnabled | |
| icon: >- | |
| {% if state_attr('sensor.jetpack_8800l_status', 'statusBarGuestWifiEnabled') | int(0) %} | |
| mdi:wifi | |
| {% else %} | |
| mdi:wifi-off | |
| {% endif %} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarGuestWifiEnabled') }} | |
| # ============== | |
| # Notifications | |
| # ============== | |
| - name: Jetpack 8800L Notification Flag | |
| unique_id: jetpack_8800l_status_NotificationFlag | |
| icon: >- | |
| {% if state_attr('sensor.jetpack_8800l_status', 'statusBarNotificationFlag') | int(0) %} | |
| mdi:message-alert | |
| {% else %} | |
| mdi:message | |
| {% endif %} | |
| state: >- | |
| {{ state_attr('sensor.jetpack_8800l_status', 'statusBarNotificationFlag') }} | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
            
I'm in (almost) exactly the same situation, and this is also working well for me. Thank you very much @dale3h! The only difference is that I'm powering the Inseego M3000 off of a 12VDC to USB-C converter, so rather than an AC smart switch, I'm using a custom ESPHome node with a relay to cut the power to the DC-DC converter. The Inseego is powered through the normally closed contacts of the relay to give a failsafe mode: if the relay module processor goes down, the hotspot will still default to getting power and go into battery preservation mode.
And I thought I was the only one crazy enough to be running a full network in my RV, complete with Home Assistant managing things. I'm going to have to tell the wife that I'm not the only one...
@Gliebig: what battery charge thresholds are you using to turn on and off the supply?