Do you find yourself manually transferring money every week for the kids' allowances? Or maybe you've promised yourself you'll save money for that vacation, but somehow it never happens? What if I told you that your Home Assistant setup could automatically handle your money management, making transfers based on completed chores, workout achievements, or even energy savings?
I just finished my latest project, the Sparebank1 Pengerobot, that lets you automate money transfers between your Norwegian bank accounts directly from Home Assistant. Combined with for example the household chore system I've written about earlier, this opens up incredible possibilities for gamifying and automating your family's finances.
Let's face it - manual money management is tedious and error-prone. How many times have you forgotten to transfer the kids' allowance, or promised to put money aside for savings but never got around to it?
With Home Assistant controlling your bank transfers, you can:
It's all transparent and traceable through Home Assistant's event system - and you can easily notify yourself on every movement made by the system.
First, you'll need to install the Sparebank1 Pengerobot integration. The setup requires creating OAuth credentials with Sparebank1, but the integration guides you through this process smoothly. On caveat - the credential manager in home assistant can be REALLY slow. So be patient opening it!
Once installed and configured, you can easily transfer money between your accounts using simple service calls:
service: sparebank1_pengerobot.transfer_debit
data:
device_id: "your_device_id"
from_account: "sensor.checking_account"
to_account: "sensor.kids_allowance_account"
amount: "50.00"
message: "Weekly allowance - well done!"
⚠️ Currency Costs: The integration supports multiple currencies, but choosing currencies other than NOK may incur additional transfer costs from your bank.
Remember the household chore system I wrote about? Now we can take it to the next level by automatically transferring money based on completed tasks.
Let's extend the existing chore system with automatic payments:
# Calculate weekly allowance based on points
template:
- sensor:
- name: "Emma Weekly Allowance"
unit_of_measurement: "NOK"
state: >
{% set points = states('sensor.household_chores_emma_points') | int %}
{% if points >= 15 %}
{{ 100 }}
{% elif points >= 10 %}
{{ 75 }}
{% elif points >= 7 %}
{{ 50 }}
{% elif points >= 4 %}
{{ 25 }}
{% else %}
{{ 0 }}
{% endif %}
# Automatic allowance transfer every Sunday
automation:
- alias: "Weekly Allowance - Emma"
trigger:
- platform: time
at: "09:00:00"
condition:
- condition: time
weekday:
- sun
- condition: template
value_template: "{{ states('sensor.emma_weekly_allowance') | int > 0 }}"
action:
- service: sparebank1_pengerobot.transfer_debit
data:
device_id: "abc123def456"
from_account: "sensor.main_account"
to_account: "sensor.emma_savings_account"
amount: "{{ states('sensor.emma_weekly_allowance') }}"
message: "Weekly allowance - {{ states('sensor.household_chores_emma_points') }} points earned!"
# Reset points for new week
- service: input_number.set_value
target:
entity_id: input_number.household_chores_emma
data:
value: 0
# Send notification
- service: notify.mobile_app_emma_phone
data:
title: "💰 Allowance Transferred!"
message: "{{ states('sensor.emma_weekly_allowance') }} NOK transferred for {{ states('sensor.household_chores_emma_points') }} points this week!"
The beauty of this system is that it's completely transparent. Kids can see their progress in real-time, and parents never have to remember to make transfers manually. Admittedly, a little scary too!
Want to motivate yourself to work out while saving for that dream vacation? Let's create an automation that transfers money to your vacation fund based on your fitness achievements.
Assuming you have fitness data in Home Assistant (via Apple Health, Google Fit, or a fitness tracker):
# Track monthly fitness goals
template:
- binary_sensor:
- name: "Monthly Fitness Goal Met"
state: >
{% set steps_goal = 10000 * now().day %}
{% set current_steps = states('sensor.daily_steps') | int * now().day %}
{{ current_steps >= steps_goal }}
- sensor:
- name: "Fitness Bonus Amount"
unit_of_measurement: "NOK"
state: >
{% set workout_count = states('sensor.weekly_workouts') | int %}
{% if workout_count >= 5 %}
{{ 500 }}
{% elif workout_count >= 3 %}
{{ 300 }}
{% elif workout_count >= 1 %}
{{ 100 }}
{% else %}
{{ 0 }}
{% endif %}
# Weekly fitness-based savings transfer
automation:
- alias: "Vacation Savings - Fitness Reward"
trigger:
- platform: time
at: "20:00:00"
condition:
- condition: time
weekday:
- sun
- condition: template
value_template: "{{ states('sensor.fitness_bonus_amount') | int > 0 }}"
action:
- service: sparebank1_pengerobot.transfer_debit
data:
device_id: "abc123def456"
from_account: "sensor.checking_account"
to_account: "sensor.vacation_savings_account"
amount: "{{ states('sensor.fitness_bonus_amount') }}"
message: "Fitness reward - {{ states('sensor.weekly_workouts') }} workouts completed!"
- service: notify.mobile_app_your_phone
data:
title: "🏃♂️ Fitness Bonus Saved!"
message: "{{ states('sensor.fitness_bonus_amount') }} NOK transferred to vacation fund for {{ states('sensor.weekly_workouts') }} workouts this week!"
Here's a clever idea: automatically save the money you didn't spend on electricity into a separate "gadgets fund" for smart home purchases. Make it fun to freeze, saving money! (I know, it's a stretch).
# Calculate energy savings compared to previous month or any other benchmark you choose
template:
- sensor:
- name: "Monthly Energy Savings"
unit_of_measurement: "NOK"
state: >
{% set current_cost = states('sensor.monthly_energy_cost') | float %}
{% set target_cost = 800 %} # Your monthly energy budget
{% set savings = target_cost - current_cost %}
{{ [0, savings] | max | round(0) }}
# Monthly energy savings transfer
automation:
- alias: "Energy Savings to Gadgets Fund"
trigger:
- platform: time
at: "10:00:00"
condition:
- condition: template
value_template: "{{ now().day == 1 }}" # First day of month
- condition: template
value_template: "{{ states('sensor.monthly_energy_savings') | float > 50 }}"
action:
- service: sparebank1_pengerobot.transfer_debit
data:
device_id: "abc123def456"
from_account: "sensor.checking_account"
to_account: "sensor.gadgets_savings_account"
amount: "{{ states('sensor.monthly_energy_savings') }}"
message: "Energy efficiency bonus - saved {{ states('sensor.monthly_energy_savings') }} NOK on electricity!"
- service: persistent_notification.create
data:
title: "💡 Energy Savings Bonus"
message: "Great job on energy efficiency! {{ states('sensor.monthly_energy_savings') }} NOK transferred to your gadgets fund."
A really nice feature of the Sparebank1 integration is its event system. Every transfer generates detailed events that you can use for notifications and logging:
# Comprehensive transfer logging
automation:
- alias: "Log All Money Transfers"
trigger:
- platform: event
event_type: sparebank1_pengerobot_money_transferred
action:
- service: logbook.log
data:
name: "Family Money Transfer"
message: >
{% if trigger.event.data.success %}
✅ {{ trigger.event.data.amount }} {{ trigger.event.data.currency }}
transferred from {{ trigger.event.data.from_account }}
to {{ trigger.event.data.to_account }}
{% if trigger.event.data.description %}
Reason: {{ trigger.event.data.description }}
{% endif %}
{% if trigger.event.data.warnings %}
⚠️ Warnings: {{ trigger.event.data.warnings | join(', ') }}
{% endif %}
{% else %}
❌ Transfer failed: {{ trigger.event.data.failure_reason }}
{% if trigger.event.data.error_codes %}
Error codes: {{ trigger.event.data.error_codes | join(', ') }}
{% endif %}
{% endif %}
Before implementing automated banking, consider these important points:
Automating your family's finances with Home Assistant and the Sparebank1 Pengerobot integration transforms money management from a chore into an engaging, transparent system. Kids learn the value of work through automated allowances, parents stay motivated with fitness-based savings, and everyone benefits from energy efficiency rewards.
The key is starting simple and building complexity over time. Begin with one automation - perhaps the weekly allowance system - and expand from there.