fixing gitignore + traefik logging
|
|
@ -1,3 +1,11 @@
|
|||
librespeed/config/log/*
|
||||
**/[Ll]ogs
|
||||
**/[Ll]og
|
||||
ha/config/custom_components/*
|
||||
ha/config/themes/*
|
||||
ha/config/image/*
|
||||
ha/config/www/community/*
|
||||
ha/config/www/community/*
|
||||
ha/config/www/media/ha-bambulab/*
|
||||
ha/matter_server/
|
||||
secrets/
|
||||
|
|
|
|||
|
|
@ -1,184 +0,0 @@
|
|||
http:
|
||||
pprof:
|
||||
port: 6060
|
||||
enabled: false
|
||||
address: 0.0.0.0:80
|
||||
session_ttl: 720h
|
||||
users:
|
||||
- name: simon
|
||||
password: $2a$10$LmhzPrlAZ8gzqXuibTTlPud.vOXgkpa3zhzrVj8xgLqFEnHQTFt7e
|
||||
auth_attempts: 5
|
||||
block_auth_min: 15
|
||||
http_proxy: ""
|
||||
language: ""
|
||||
theme: auto
|
||||
dns:
|
||||
bind_hosts:
|
||||
- 0.0.0.0
|
||||
port: 53
|
||||
anonymize_client_ip: false
|
||||
ratelimit: 20
|
||||
ratelimit_subnet_len_ipv4: 24
|
||||
ratelimit_subnet_len_ipv6: 56
|
||||
ratelimit_whitelist: []
|
||||
refuse_any: true
|
||||
upstream_dns:
|
||||
- https://dns.cloudflare.com/dns-query
|
||||
- https://dns.google/dns-query
|
||||
- https://security.cloudflare-dns.com/dns-query
|
||||
upstream_dns_file: ""
|
||||
bootstrap_dns:
|
||||
- 9.9.9.10
|
||||
- 149.112.112.10
|
||||
- 2620:fe::10
|
||||
- 2620:fe::fe:10
|
||||
fallback_dns:
|
||||
- 1.1.1.2
|
||||
upstream_mode: load_balance
|
||||
fastest_timeout: 1s
|
||||
allowed_clients: []
|
||||
disallowed_clients: []
|
||||
blocked_hosts:
|
||||
- version.bind
|
||||
- id.server
|
||||
- hostname.bind
|
||||
trusted_proxies:
|
||||
- 127.0.0.0/8
|
||||
- ::1/128
|
||||
cache_size: 4194304
|
||||
cache_ttl_min: 0
|
||||
cache_ttl_max: 0
|
||||
cache_optimistic: false
|
||||
bogus_nxdomain: []
|
||||
aaaa_disabled: false
|
||||
enable_dnssec: false
|
||||
edns_client_subnet:
|
||||
custom_ip: ""
|
||||
enabled: false
|
||||
use_custom: false
|
||||
max_goroutines: 300
|
||||
handle_ddr: true
|
||||
ipset: []
|
||||
ipset_file: ""
|
||||
bootstrap_prefer_ipv6: false
|
||||
upstream_timeout: 10s
|
||||
private_networks: []
|
||||
use_private_ptr_resolvers: false
|
||||
local_ptr_upstreams: []
|
||||
use_dns64: false
|
||||
dns64_prefixes: []
|
||||
serve_http3: false
|
||||
use_http3_upstreams: false
|
||||
serve_plain_dns: true
|
||||
hostsfile_enabled: true
|
||||
tls:
|
||||
enabled: false
|
||||
server_name: ""
|
||||
force_https: false
|
||||
port_https: 443
|
||||
port_dns_over_tls: 853
|
||||
port_dns_over_quic: 853
|
||||
port_dnscrypt: 0
|
||||
dnscrypt_config_file: ""
|
||||
allow_unencrypted_doh: false
|
||||
certificate_chain: ""
|
||||
private_key: ""
|
||||
certificate_path: ""
|
||||
private_key_path: ""
|
||||
strict_sni_check: false
|
||||
querylog:
|
||||
dir_path: ""
|
||||
ignored: []
|
||||
interval: 2160h
|
||||
size_memory: 1000
|
||||
enabled: true
|
||||
file_enabled: true
|
||||
statistics:
|
||||
dir_path: ""
|
||||
ignored: []
|
||||
interval: 24h
|
||||
enabled: true
|
||||
filters:
|
||||
- enabled: false
|
||||
url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt
|
||||
name: AdGuard DNS filter
|
||||
id: 1
|
||||
- enabled: false
|
||||
url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_2.txt
|
||||
name: AdAway Default Blocklist
|
||||
id: 2
|
||||
whitelist_filters: []
|
||||
user_rules: []
|
||||
dhcp:
|
||||
enabled: false
|
||||
interface_name: ""
|
||||
local_domain_name: lan
|
||||
dhcpv4:
|
||||
gateway_ip: ""
|
||||
subnet_mask: ""
|
||||
range_start: ""
|
||||
range_end: ""
|
||||
lease_duration: 86400
|
||||
icmp_timeout_msec: 1000
|
||||
options: []
|
||||
dhcpv6:
|
||||
range_start: ""
|
||||
lease_duration: 86400
|
||||
ra_slaac_only: false
|
||||
ra_allow_slaac: false
|
||||
filtering:
|
||||
blocking_ipv4: ""
|
||||
blocking_ipv6: ""
|
||||
blocked_services:
|
||||
schedule:
|
||||
time_zone: UTC
|
||||
ids: []
|
||||
protection_disabled_until: null
|
||||
safe_search:
|
||||
enabled: false
|
||||
bing: true
|
||||
duckduckgo: true
|
||||
google: true
|
||||
pixabay: true
|
||||
yandex: true
|
||||
youtube: true
|
||||
blocking_mode: default
|
||||
parental_block_host: family-block.dns.adguard.com
|
||||
safebrowsing_block_host: standard-block.dns.adguard.com
|
||||
rewrites:
|
||||
- domain: '*.milvert.com'
|
||||
answer: milvert.com
|
||||
- domain: milvert.com
|
||||
answer: 10.0.0.3
|
||||
safebrowsing_cache_size: 1048576
|
||||
safesearch_cache_size: 1048576
|
||||
parental_cache_size: 1048576
|
||||
cache_time: 30
|
||||
filters_update_interval: 24
|
||||
blocked_response_ttl: 10
|
||||
filtering_enabled: true
|
||||
parental_enabled: false
|
||||
safebrowsing_enabled: false
|
||||
protection_enabled: false
|
||||
clients:
|
||||
runtime_sources:
|
||||
whois: true
|
||||
arp: true
|
||||
rdns: true
|
||||
dhcp: true
|
||||
hosts: true
|
||||
persistent: []
|
||||
log:
|
||||
enabled: true
|
||||
file: ""
|
||||
max_backups: 0
|
||||
max_size: 100
|
||||
max_age: 3
|
||||
compress: false
|
||||
local_time: false
|
||||
verbose: false
|
||||
os:
|
||||
group: ""
|
||||
user: ""
|
||||
rlimit_nofile: 0
|
||||
schema_version: 28
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: 1
|
||||
|
||||
deleteDatasources:
|
||||
- name: CarConnectivity-SQLite
|
||||
orgId: 1
|
||||
|
||||
datasources:
|
||||
- name: CarConnectivity-SQLite
|
||||
uid: P2EF847825A020B66
|
||||
type: frser-sqlite-datasource
|
||||
access: proxy
|
||||
isDefault: true
|
||||
editable: false
|
||||
jsonData:
|
||||
path: /carconnectivity.db
|
||||
pathPrefix: "file:"
|
||||
pathOptions: "mode=ro&_ignore_check_constraints=1"
|
||||
attachLimit: 0
|
||||
|
|
@ -29,7 +29,8 @@
|
|||
{
|
||||
"type": "database",
|
||||
"config": {
|
||||
"db_url": "sqlite:///carconnectivity.db"
|
||||
"log_level": "error",
|
||||
"db_url": "postgresql://carconnect:carconnect@postgres:5432/carconnect"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -15,4 +15,16 @@ EOF
|
|||
chmod 600 /root/.netrc
|
||||
|
||||
# Kör original-cmd
|
||||
if [ -n "$ADDITIONAL_INSTALLS" ]; then
|
||||
echo "Installing additional packages: $ADDITIONAL_INSTALLS"
|
||||
# try pip3 first, fall back to pip
|
||||
if command -v pip3 >/dev/null 2>&1; then
|
||||
pip3 install --no-cache-dir $ADDITIONAL_INSTALLS || echo "Warning: pip3 install failed for $ADDITIONAL_INSTALLS"
|
||||
elif command -v pip >/dev/null 2>&1; then
|
||||
pip install --no-cache-dir $ADDITIONAL_INSTALLS || echo "Warning: pip install failed for $ADDITIONAL_INSTALLS"
|
||||
else
|
||||
echo "No pip found in container; skipping additional installs"
|
||||
fi
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
|
|
@ -1,6 +1,16 @@
|
|||
db:
|
||||
path: diun.db
|
||||
|
||||
defaults:
|
||||
watchRepo: false
|
||||
notifyOn:
|
||||
- new
|
||||
- update
|
||||
maxTags: 10
|
||||
sortTags: reverse
|
||||
includeTags:
|
||||
- '^v[0-9]+\.[0-9]+\.[0-9]+$'
|
||||
|
||||
watch:
|
||||
workers: 20
|
||||
schedule: "0 */6 * * *"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ services:
|
|||
- backend
|
||||
ports:
|
||||
- "8088:8080"
|
||||
image: koenkk/zigbee2mqtt:2.7
|
||||
image: koenkk/zigbee2mqtt:2.10
|
||||
restart: always
|
||||
volumes:
|
||||
- ./zigbee_home_2:/app/data
|
||||
|
|
@ -43,7 +43,7 @@ services:
|
|||
max-file: "5"
|
||||
networks:
|
||||
- backend
|
||||
image: koenkk/zigbee2mqtt:2.6
|
||||
image: koenkk/zigbee2mqtt:2.10
|
||||
restart: always
|
||||
volumes:
|
||||
- ${DIR}/zigbee2matt:/app/data
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ services:
|
|||
reverse-proxy:
|
||||
# The official v2.0 Traefik docker image
|
||||
#image: traefik:v2.11
|
||||
image: traefik:v3.3
|
||||
image: traefik:v3.7
|
||||
container_name: "traefik"
|
||||
logging:
|
||||
driver: "json-file"
|
||||
|
|
@ -65,7 +65,7 @@ services:
|
|||
- "80:80"
|
||||
- "443:443"
|
||||
# Insecure port
|
||||
- "8080:8080"
|
||||
# - "8080:8080"
|
||||
# Influx
|
||||
- "8086:8086"
|
||||
# Mqtt
|
||||
|
|
@ -77,7 +77,7 @@ services:
|
|||
- ${DIR_LOCAL}/traefik/log:/log:rw
|
||||
- ./traefik.yml:/etc/traefik/traefik.yml
|
||||
- ./traefik:/rules
|
||||
- ./static_config.yml:/etc/traefik/static_config.yml
|
||||
# - ./static_config.yml:/etc/traefik/static_config.yml
|
||||
# - "./log.json:/etc/traefik/log.json"
|
||||
# - ./acme.json:/acme.json
|
||||
- ./letsencrypt/:/letsencrypt:rw
|
||||
|
|
@ -95,6 +95,7 @@ services:
|
|||
authelia:
|
||||
image: authelia/authelia:4
|
||||
container_name: authelia
|
||||
restart: always
|
||||
volumes:
|
||||
- ./authelia:/config
|
||||
- ./notify.txt:/tmp/authelia/notification.txt
|
||||
|
|
@ -176,36 +177,6 @@ services:
|
|||
- "traefik.http.routers.ddnsupdater.tls=true"
|
||||
|
||||
|
||||
adguard:
|
||||
container_name: adguard
|
||||
image: adguard/adguardhome:v0.107.52
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
docker_vlan:
|
||||
ipv4_address: 10.0.0.204
|
||||
ports:
|
||||
- 53/udp
|
||||
- 67/udp
|
||||
- 68/tcp
|
||||
- 68/udp
|
||||
- 80/tcp
|
||||
- 443/tcp
|
||||
- 853/tcp
|
||||
- 3000/tcp
|
||||
volumes:
|
||||
- ./adguard/conf:/opt/adguardhome/conf
|
||||
- ./adguard/work:/opt/adguardhome/work
|
||||
labels:
|
||||
- diun.enable=true
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.adguard.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.adguard.entrypoints=web-secure"
|
||||
- "traefik.http.routers.adguard.rule=Host(`adguard.${DOMAIN}`)"
|
||||
- "traefik.http.routers.adguard.middlewares=chain-authelia@file"
|
||||
- "traefik.http.routers.adguard.tls.certresolver=milvert_dns"
|
||||
- "traefik.http.routers.adguard.tls=true"
|
||||
|
||||
|
||||
######################### DATABASE ############################
|
||||
#
|
||||
# DATABASE
|
||||
|
|
@ -252,8 +223,7 @@ services:
|
|||
labels:
|
||||
- diun.enable=true
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.webdb-mid.ipallowlist.sourcerange=127.0.0.1/32, 10.0.0.1/24"
|
||||
- "traefik.http.routers.webdb-secure.middlewares=webdb-mid"
|
||||
- "traefik.http.routers.webdb-secure.middlewares=chain-local@file"
|
||||
- "traefik.http.routers.webdb-secure.entrypoints=web-secure"
|
||||
- "traefik.http.routers.webdb-secure.rule=Host(`webdb.${DOMAIN}`)"
|
||||
- "traefik.http.routers.webdb-secure.tls.certresolver=milvert_dns"
|
||||
|
|
@ -315,8 +285,7 @@ services:
|
|||
labels:
|
||||
- diun.enable=true
|
||||
- "traefik.enable=true"
|
||||
#- "traefik.http.middlewares.webpg-mid.ipwhitelist.sourcerange=127.0.0.1/32, 10.0.0.1/24"
|
||||
# # # - "traefik.http.routers.webpg-secure.middlewares=webpg-mid"
|
||||
- "traefik.http.routers.webpg-secure.middlewares=chain-local@file"
|
||||
- "traefik.http.routers.webpg-secure.entrypoints=web-secure"
|
||||
- "traefik.http.routers.webpg-secure.rule=Host(`webpg.${DOMAIN}`)"
|
||||
- "traefik.http.routers.webpg-secure.tls.certresolver=milvert_dns"
|
||||
|
|
@ -348,13 +317,14 @@ services:
|
|||
|
||||
ha:
|
||||
container_name: ha
|
||||
image: homeassistant/home-assistant:2026.1
|
||||
image: homeassistant/home-assistant:2026.2
|
||||
restart: always
|
||||
privileged: true
|
||||
networks:
|
||||
backend:
|
||||
docker_vlan:
|
||||
ipv4_address: 10.0.0.203
|
||||
ipv6_address: "2001:9b0:215:8e00::203"
|
||||
depends_on:
|
||||
- postgres
|
||||
ports:
|
||||
|
|
@ -375,6 +345,11 @@ services:
|
|||
- "traefik.http.routers.ha.tls.certresolver=milvert_dns"
|
||||
- "traefik.http.routers.ha.tls=true"
|
||||
- "traefik.http.services.ha.loadbalancer.server.port=8123"
|
||||
- "traefik.http.routers.ha-int.entrypoints=web-secure"
|
||||
- "traefik.http.routers.ha-int.rule=Host(`ha-int.${DOMAIN}`)"
|
||||
- "traefik.http.routers.ha-int.middlewares=localNetwork@file,chain-no-auth@file"
|
||||
- "traefik.http.routers.ha-int.tls=true"
|
||||
- "traefik.http.routers.ha-int.tls.certresolver=milvert_dns"
|
||||
|
||||
hassconf:
|
||||
container_name: hassconf
|
||||
|
|
@ -466,11 +441,29 @@ services:
|
|||
labels:
|
||||
- diun.enable=true
|
||||
|
||||
matter-server:
|
||||
image: ghcr.io/matter-js/python-matter-server:stable
|
||||
container_name: matter-server
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
backend:
|
||||
docker_vlan:
|
||||
ipv4_address: 10.0.0.204
|
||||
ipv6_address: "2001:9b0:215:8e00::204"
|
||||
#security_opt:
|
||||
# Needed for Bluetooth via dbus
|
||||
# - apparmor:unconfined
|
||||
volumes:
|
||||
# Create an .env file that sets the USERDIR environment variable.
|
||||
- ./ha/matter_server:/data
|
||||
environment:
|
||||
- diun.enable=true
|
||||
|
||||
evcc:
|
||||
command:
|
||||
- evcc
|
||||
container_name: evcc
|
||||
image: evcc/evcc:0.300.3
|
||||
image: evcc/evcc:0.305.1
|
||||
ports:
|
||||
- 7070:7070/tcp
|
||||
volumes:
|
||||
|
|
@ -527,8 +520,8 @@ services:
|
|||
- backend
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
ports:
|
||||
- "1881:1880"
|
||||
# ports:
|
||||
# - "1881:1880"
|
||||
#devices:
|
||||
#- /dev/ttyAMA0
|
||||
restart: unless-stopped
|
||||
|
|
@ -848,15 +841,19 @@ services:
|
|||
container_name: carconnect-grafana
|
||||
volumes:
|
||||
- ${DIR_LOCAL}/carconnect-grafana:/var/lib/grafana
|
||||
- ${DIR_LOCAL}/carconnectivity/sqlite.db:/carconnectivity.db:ro
|
||||
- ./carconnectivity/carconnectivity-sqlite.yaml:/etc/grafana/provisioning/datasources/carconnectivity-sqlite.yml
|
||||
# - ${DIR_LOCAL}/carconnectivity/sqlite.db:/carconnectivity.db:ro
|
||||
# - ./carconnectivity/carconnectivity-sqlite.yaml:/etc/grafana/provisioning/datasources/carconnectivity-sqlite.yml
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1004
|
||||
- TZ=Europe/Stockholm
|
||||
- GF_SECURITY_ADMIN_USER=admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD_FILE=/run/secrets/carconnect_grafana_pw
|
||||
- GF_PLUGINS_TRUSTED_FILES=/carconnectivity.db
|
||||
- DB_USER=carconnect
|
||||
- DB_PASSWORD=carconnect
|
||||
- DB_NAME=carconnect
|
||||
- DB_HOSTNAME=postgres
|
||||
- DB_PORT=5432
|
||||
secrets:
|
||||
- carconnect_grafana_pw
|
||||
restart: unless-stopped
|
||||
|
|
@ -888,11 +885,15 @@ networks:
|
|||
docker_vlan:
|
||||
external: true
|
||||
driver: macvlan
|
||||
enable_ipv6: true
|
||||
driver_opts:
|
||||
parent: eno1
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 10.0.0.200/27
|
||||
- subnet: 10.0.0.0/24 # Hela Home-nätverket
|
||||
gateway: 10.0.0.1
|
||||
- subnet: "2001:9b0:215:8e00::/64"
|
||||
gateway: "2001:9b0:215:8e00::1"
|
||||
|
||||
volumes:
|
||||
vwfriend_grafana:
|
||||
|
|
|
|||
|
|
@ -32,10 +32,6 @@ binary_sensor:
|
|||
script:
|
||||
- id: wake_screen
|
||||
mode: restart
|
||||
then:
|
||||
if:
|
||||
condition:
|
||||
light.is_off: backlight
|
||||
then:
|
||||
- light.turn_on:
|
||||
id: backlight
|
||||
|
|
@ -47,6 +43,7 @@ script:
|
|||
id(current_image) = 0;
|
||||
- component.update: display_main
|
||||
|
||||
|
||||
- id: send_volume_debounced
|
||||
mode: restart
|
||||
then:
|
||||
|
|
|
|||
214
evcc/evcc.yaml
|
|
@ -32,123 +32,124 @@ vehicles:
|
|||
# source: mqtt
|
||||
# topic: weconnect/0/vehicles/WVGZZZE2ZPE051949/domains/climatisation/climatisationStatus/climatisationState
|
||||
|
||||
- name: skoda_car
|
||||
type: custom
|
||||
title: elroq
|
||||
capacity: 64 # kWh
|
||||
soc:
|
||||
source: mqtt
|
||||
topic: carconnectivity/0/garage/TMBNC7NY8SF105227/drives/primary/level
|
||||
range:
|
||||
source: mqtt
|
||||
topic: carconnectivity/0/garage/TMBNC7NY8SF105227/drives/primary/range
|
||||
odometer:
|
||||
source: mqtt
|
||||
topic: carconnectivity/0/garage/TMBNC7NY8SF105227/odometer
|
||||
climater:
|
||||
source: mqtt
|
||||
topic: carconnectivity/0/garage/TMBNC7NY8SF105227/climatization/binarystate
|
||||
limitsoc:
|
||||
source: mqtt
|
||||
topic: carconnectivity/0/garage/TMBNC7NY8SF105227/charging/settings/target_level
|
||||
status:
|
||||
source: mqtt
|
||||
topic: carconnectivity/0/garage/TMBNC7NY8SF105227/charging/state
|
||||
#- name: skoda_car
|
||||
#type: custom
|
||||
#title: elroq
|
||||
#capacity: 64 # kWh
|
||||
#soc:
|
||||
#source: mqtt
|
||||
#topic: carconnectivity/0/garage/TMBNC7NY8SF105227/drives/primary/level
|
||||
#range:
|
||||
#source: mqtt
|
||||
#topic: carconnectivity/0/garage/TMBNC7NY8SF105227/drives/primary/range
|
||||
#odometer:
|
||||
#source: mqtt
|
||||
#topic: carconnectivity/0/garage/TMBNC7NY8SF105227/odometer
|
||||
#climater:
|
||||
#source: mqtt
|
||||
#topic: carconnectivity/0/garage/TMBNC7NY8SF105227/climatization/binarystate
|
||||
#limitsoc:
|
||||
#source: mqtt
|
||||
#topic: carconnectivity/0/garage/TMBNC7NY8SF105227/charging/settings/target_level
|
||||
#status:
|
||||
#source: mqtt
|
||||
#topic: carconnectivity/0/garage/TMBNC7NY8SF105227/charging/state
|
||||
|
||||
chargers:
|
||||
- name: wallbox
|
||||
type: easee
|
||||
user: simon+easee@milvert.com
|
||||
password: X7#aEzjlEysBgl
|
||||
charger: EHCNF485
|
||||
#- name: wallbox
|
||||
#type: easee
|
||||
#user: simon+easee@milvert.com
|
||||
#password: X7#aEzjlEysBgl
|
||||
#charger: EHCNF485
|
||||
|
||||
circuits:
|
||||
- name: main # if there is only one circuit defined the name needs to be 'main'
|
||||
title: 'main circuit' # name for the UI (not implemented in UI yet)
|
||||
maxCurrent: 20
|
||||
maxPower: 10000
|
||||
meter: my_grid # optiona
|
||||
#- name: main # if there is only one circuit defined the name needs to be 'main'
|
||||
#title: 'main circuit' # name for the UI (not implemented in UI yet)
|
||||
#maxCurrent: 20
|
||||
#maxPower: 10000
|
||||
#meter: my_grid # optiona
|
||||
|
||||
loadpoints:
|
||||
- title: Garage
|
||||
charger: wallbox
|
||||
vehicle: skoda_car
|
||||
circuit: main
|
||||
mode: pv
|
||||
enable:
|
||||
threshold: 0
|
||||
delay: 15s
|
||||
disable:
|
||||
threshold: 500
|
||||
delay:
|
||||
2m
|
||||
#- title: Garage
|
||||
# charger: wallbox
|
||||
#vehicle: skoda_car
|
||||
#circuit: main
|
||||
#mode: pv
|
||||
#enable:
|
||||
#threshold: 0
|
||||
#delay: 15s
|
||||
#disable:
|
||||
#threshold: 500
|
||||
#delay:
|
||||
#2m
|
||||
|
||||
site:
|
||||
title: Hemma
|
||||
meters:
|
||||
pv:
|
||||
- pv
|
||||
grid: my_grid
|
||||
#site:
|
||||
#title: Hemma
|
||||
#meters:
|
||||
#pv:
|
||||
#- pv
|
||||
#grid:
|
||||
#- my_grid
|
||||
|
||||
meters:
|
||||
- name: pv
|
||||
type: custom
|
||||
power:
|
||||
source: mqtt
|
||||
topic: inverter/measure/active_power
|
||||
#meters:
|
||||
#- name: pv
|
||||
#type: custom
|
||||
#power:
|
||||
#source: mqtt
|
||||
#topic: inverter/measure/active_power
|
||||
# jq: .value
|
||||
energy:
|
||||
source: mqtt
|
||||
topic: inverter/calculated/accumulated_yield_energy
|
||||
timeout: 60s
|
||||
currents:
|
||||
- source: mqtt
|
||||
topic: inverter/measure/phase_A_current
|
||||
timeout: 60s
|
||||
#energy:
|
||||
#source: mqtt
|
||||
#topic: inverter/calculated/accumulated_yield_energy
|
||||
#timeout: 60s
|
||||
#currents:
|
||||
#- source: mqtt
|
||||
#topic: inverter/measure/phase_A_current
|
||||
#timeout: 60s
|
||||
# jq: .value
|
||||
- source: mqtt
|
||||
topic: inverter/measure/phase_B_current
|
||||
timeout: 60s
|
||||
#- source: mqtt
|
||||
#topic: inverter/measure/phase_B_current
|
||||
#timeout: 60s
|
||||
# jq: .value
|
||||
- source: mqtt
|
||||
topic: inverter/measure/phase_C_current
|
||||
timeout: 60s
|
||||
#- source: mqtt
|
||||
#topic: inverter/measure/phase_C_current
|
||||
#timeout: 60s
|
||||
|
||||
- name: my_grid
|
||||
type: custom
|
||||
power:
|
||||
source: calc
|
||||
add:
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/electricity_currently_returned
|
||||
scale: -1000
|
||||
timeout: 30s
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/electricity_currently_delivered
|
||||
scale: 1000
|
||||
timeout: 30s
|
||||
energy:
|
||||
source: calc
|
||||
add:
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/electricity_returned_1
|
||||
scale: 0.001
|
||||
timeout: 30s
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/electricity_delivered_1
|
||||
scale: -0.001
|
||||
timeout: 30s
|
||||
#- name: my_grid
|
||||
#type: custom
|
||||
#power:
|
||||
#source: calc
|
||||
#add:
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/electricity_currently_returned
|
||||
#scale: -1000
|
||||
#timeout: 30s
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/electricity_currently_delivered
|
||||
#scale: 1000
|
||||
#timeout: 30s
|
||||
#energy:
|
||||
#source: calc
|
||||
#add:
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/electricity_returned_1
|
||||
#scale: 0.001
|
||||
#timeout: 30s
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/electricity_delivered_1
|
||||
#scale: -0.001
|
||||
#timeout: 30s
|
||||
|
||||
currents:
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/phase_power_current_l1
|
||||
timeout: 30s
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/phase_power_current_l2
|
||||
timeout: 30s
|
||||
- source: mqtt
|
||||
topic: dsmr/reading/phase_power_current_l1
|
||||
timeout: 30s
|
||||
#currents:
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/phase_power_current_l1
|
||||
#timeout: 30s
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/phase_power_current_l2
|
||||
#timeout: 30s
|
||||
#- source: mqtt
|
||||
#topic: dsmr/reading/phase_power_current_l1
|
||||
#timeout: 30s
|
||||
|
||||
|
||||
influx:
|
||||
|
|
@ -162,3 +163,8 @@ mqtt:
|
|||
user: simon
|
||||
password: bajsa123
|
||||
topic: evcc
|
||||
|
||||
network:
|
||||
host: 0.0.0.0
|
||||
port: 7070
|
||||
externalUrl: https://box.milvert.com
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
# Gitignore settings for HA
|
||||
# This is an example and may include too much for your use-case.
|
||||
# You can modify this file to suit your needs.
|
||||
/.cloud
|
||||
/.storage
|
||||
/backups
|
||||
/tts
|
||||
*.db*
|
||||
*.log*
|
||||
*.pyc
|
||||
**/.config-db
|
||||
custom_components/bambu_lab
|
||||
custom_components/battery_notes
|
||||
custom_components/edge_tts
|
||||
custom_components/evcc_intg
|
||||
custom_components/fontawesome
|
||||
custom_components/hacs
|
||||
custom_components/nordpool_git_repo
|
||||
custom_components/plant
|
||||
custom_components/pollenprognos
|
||||
|
||||
|
||||
www/community
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
sensor:
|
||||
- platform: nordpool
|
||||
region: "SE3"
|
||||
currency: "SEK"
|
||||
VAT: false # Vi sätter false här för att styra momsen exakt som i din Python-kod!
|
||||
name: "Nordpool Köppris Med Avgifter"
|
||||
# (Spotpris + överföring + skatt + påslag + certifikat) * 1.25 moms
|
||||
additional_costs: "{{ ((current_price + 0.3120 + 0.4390 + 0.07 + 0.014) * 1.25) - current_price }}"
|
||||
|
||||
- platform: nordpool
|
||||
region: "SE3"
|
||||
currency: "SEK"
|
||||
VAT: false
|
||||
name: "Nordpool Säljpris Med Nätnytta"
|
||||
# Spotpris + nätnytta (ingen moms på export)
|
||||
additional_costs: "{{ 0.132 }}"
|
||||
|
||||
|
|
@ -172,17 +172,18 @@
|
|||
mode: single
|
||||
- id: '1709494545609'
|
||||
alias: växtlampa schema
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: '{{ now().hour == 7 }}'
|
||||
description: ''
|
||||
triggers:
|
||||
- value_template: '{{ now().hour == 9 }}'
|
||||
id: 'on'
|
||||
- platform: template
|
||||
value_template: '{{ (now().hour, now().minute) == (21,30) }}'
|
||||
trigger: template
|
||||
- value_template: '{{ (now().hour, now().minute) == (21,30) }}'
|
||||
id: 'off'
|
||||
action:
|
||||
- service: light.turn_{{ trigger.id }}
|
||||
target:
|
||||
entity_id: light.vaxtlampa
|
||||
trigger: template
|
||||
actions:
|
||||
- target:
|
||||
label_id: blomma
|
||||
action: homeassistant.turn_{{ trigger.id }}
|
||||
- id: '1713552723716'
|
||||
alias: Automation_oscar_skrivbord
|
||||
description: ''
|
||||
|
|
@ -333,17 +334,27 @@
|
|||
action: scene.turn_on
|
||||
mode: single
|
||||
- id: '1725646259613'
|
||||
alias: Kök på 5 min
|
||||
alias: Kök släck efter 5 min utan rörelse
|
||||
description: ''
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- light.kok_ct
|
||||
to: 'on'
|
||||
condition: []
|
||||
action:
|
||||
- entity_id: script.kok_ct_timer_2
|
||||
action: script.turn_on
|
||||
triggers:
|
||||
- entity_id:
|
||||
- binary_sensor.sensor_inne_kitchen_mt004_occupancy
|
||||
to:
|
||||
- 'on'
|
||||
trigger: state
|
||||
conditions: []
|
||||
actions:
|
||||
- wait_for_trigger:
|
||||
- entity_id: binary_sensor.sensor_inne_kitchen_mt004_occupancy
|
||||
to: 'off'
|
||||
trigger: state
|
||||
- delay: 00:05:00
|
||||
- condition: state
|
||||
entity_id: binary_sensor.sensor_inne_kitchen_mt004_occupancy
|
||||
state: 'off'
|
||||
- target:
|
||||
entity_id: light.kok_ct
|
||||
action: light.turn_off
|
||||
mode: restart
|
||||
- id: '1729969302596'
|
||||
alias: Tänd och släck vrum upp vid helgmorgon
|
||||
|
|
@ -753,3 +764,52 @@
|
|||
media_content_type: playlist
|
||||
tag_id: '{{ trigger.event.data.tag_id }}'
|
||||
current: '{{ TAGS.get(tag_id) }}'
|
||||
- id: '1762201785091'
|
||||
description: Lås elroq efter 5 min
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- sensor.elroq_vehicle_state
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 30
|
||||
seconds: 0
|
||||
to: parked
|
||||
conditions: []
|
||||
actions:
|
||||
- action: lock.lock
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: lock.elroq_lock_unlock
|
||||
mode: single
|
||||
- id: '1763930495328'
|
||||
alias: Jul belysning 2025
|
||||
description: ''
|
||||
triggers:
|
||||
- value_template: '{{ now().hour >= 16 }}'
|
||||
id: 'on'
|
||||
trigger: template
|
||||
- value_template: '{{ (now().hour) == 8 }}'
|
||||
id: 'off'
|
||||
trigger: template
|
||||
actions:
|
||||
- target:
|
||||
label_id: jul
|
||||
action: homeassistant.turn_{{ trigger.id }}
|
||||
- id: '1777316920776'
|
||||
alias: Vattna_notis
|
||||
description: ''
|
||||
triggers:
|
||||
- trigger: numeric_state
|
||||
entity_id:
|
||||
- sensor.h034s_soil_moisture
|
||||
below: 19.9
|
||||
conditions: []
|
||||
actions:
|
||||
- action: notify.mobile_app_simon_mobil
|
||||
metadata: {}
|
||||
data:
|
||||
title: "Dags att vattna! \U0001F331"
|
||||
message: Fuktnivån är nu nere på {{ states('sensor.h034s_soil_moisture') }}%.
|
||||
mode: single
|
||||
|
|
|
|||
|
|
@ -10,26 +10,14 @@ frontend:
|
|||
|
||||
|
||||
automation: !include automations.yaml
|
||||
|
||||
script: !include scripts.yaml
|
||||
scene: !include scenes.yaml
|
||||
command_line: !include sensor.yaml
|
||||
|
||||
battery_notes:
|
||||
input_select: !include_dir_merge_named input_select # States såsom house/pople etc
|
||||
|
||||
|
||||
#lovelace:
|
||||
# mode: storage
|
||||
# resources:
|
||||
# - url: /local/week-planner-card_2.js
|
||||
# type: module
|
||||
# dashboards:
|
||||
# dash-general:
|
||||
# mode: yaml
|
||||
# filename: dashboards/default.yaml
|
||||
# title: Overview
|
||||
# icon: mdi:tools
|
||||
# show_in_sidebar: true
|
||||
# require_admin: false
|
||||
|
||||
tts:
|
||||
- platform: edge_tts
|
||||
|
|
@ -41,14 +29,6 @@ input_text:
|
|||
tts_syntesiser:
|
||||
name: TTS-til-Google
|
||||
|
||||
proximity:
|
||||
home_jaffa:
|
||||
zone: home
|
||||
devices:
|
||||
- device_tracker.jaffa_location
|
||||
tolerance: 5
|
||||
unit_of_measurement: km
|
||||
|
||||
homeassistant:
|
||||
internal_url: http://10.0.0.203:8123
|
||||
external_url: https://ha.milvert.com
|
||||
|
|
@ -77,15 +57,6 @@ sonos:
|
|||
logger:
|
||||
default: error
|
||||
|
||||
#logs:
|
||||
|
||||
#homeassistant.components.command_line: debug
|
||||
#adax: debug
|
||||
#custom_components.adax: debug
|
||||
#homeassistant.components.adax: debug
|
||||
# rflink: error
|
||||
# homeassistant.components.rflink: debug
|
||||
|
||||
|
||||
http:
|
||||
use_x_forwarded_for: true
|
||||
|
|
@ -93,6 +64,7 @@ http:
|
|||
login_attempts_threshold: 5
|
||||
trusted_proxies:
|
||||
- 10.0.0.223
|
||||
- 172.20.0.0/16
|
||||
- 172.19.0.0/24
|
||||
|
||||
template:
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z"/></svg>
|
||||
|
After Width: | Height: | Size: 688 B |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"monday": {
|
||||
"simon": "jobbet",
|
||||
"sandra": "hemma"
|
||||
},
|
||||
"tuesday": {
|
||||
"simon": "hemma",
|
||||
"sandra": "jobbet"
|
||||
},
|
||||
"wednesday": {
|
||||
"simon": "jobbet",
|
||||
"sandra": "jobbet"
|
||||
},
|
||||
"thursday": {
|
||||
"simon": "hemma",
|
||||
"sandra": "hemma"
|
||||
},
|
||||
"friday": {
|
||||
"simon": "jobbet",
|
||||
"sandra": "hemma"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
{"temperature": 22, "humidity": 36}
|
||||
{"temperature": 23, "humidity": 36}
|
||||
{"temperature": 25, "humidity": 36}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
jaffa_location:
|
||||
hide_if_away: false
|
||||
icon: mdi:car
|
||||
mac: ff:ff:ff:ff:f1
|
||||
name: Jaffa
|
||||
picture: https://ibb.co/nbXgmH3
|
||||
track: true
|
||||
unique_id: unique_id_jaffa_location
|
||||
|
||||
|
||||
|
||||
jaffa_location:
|
||||
name: jaffa_location
|
||||
mac:
|
||||
icon:
|
||||
picture:
|
||||
track: true
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
automation:
|
||||
- id: arbetsrum_släck_17_simon_hemma
|
||||
alias: Arbetsrum – släck liten gul lampa 17:00 när Simon jobbar hemma
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "17:00:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_select.simon_work_state
|
||||
state: "Hemma"
|
||||
action:
|
||||
- service: light.turn_off
|
||||
target:
|
||||
entity_id: light.arum_gullampa
|
||||
mode: single
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
template:
|
||||
- sensor:
|
||||
- name: "Nordpool Köppris Med Avgifter"
|
||||
unique_id: "nordpool_koppris_med_avgifter_2026"
|
||||
unit_of_measurement: "SEK/kWh"
|
||||
device_class: monetary
|
||||
state: >
|
||||
{% set spot = states('sensor.nordpool_kwh_se3_sek_3_10_0') | float(0) %}
|
||||
{% set overforing = 0.3120 %}
|
||||
{% set energiskatt = 0.4390 %}
|
||||
{% set spotpaslag = 0.07 %}
|
||||
{% set elcertifikat = 0.014 %}
|
||||
{{ ((spot + overforing + energiskatt + spotpaslag + elcertifikat) * 1.25) | round(3) }}
|
||||
|
||||
- name: "Nordpool Säljpris Med Nätnytta"
|
||||
unique_id: "nordpool_saljpris_med_natnytta_2026"
|
||||
unit_of_measurement: "SEK/kWh"
|
||||
device_class: monetary
|
||||
state: >
|
||||
{% set spot = states('sensor.nordpool_kwh_se3_sek_3_10_0') | float(0) %}
|
||||
{% set natnytta = 0.132 %}
|
||||
{{ (spot + natnytta) | round(3) }}
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
# Package: Vardagsrum - Kamin
|
||||
|
||||
template:
|
||||
- binary_sensor:
|
||||
- name: "Vardagsrum kamin igång"
|
||||
unique_id: vardagsrum_kamin_igang
|
||||
state: >
|
||||
{{ states('sensor_inne_kamin_th017_temperature') | float(0) > 23 }}
|
||||
delay_on:
|
||||
minutes: 5
|
||||
delay_off:
|
||||
minutes: 30
|
||||
icon: >
|
||||
{% if is_state('binary_sensor.vardagsrum_kamin_igang', 'on') %}
|
||||
mdi:fire
|
||||
{% else %}
|
||||
mdi:fireplace-off
|
||||
{% endif %}
|
||||
|
||||
counter:
|
||||
vardagsrum_kamin_eldningar:
|
||||
name: "Vardagsrum: Antal eldningar"
|
||||
icon: mdi:counter
|
||||
step: 1
|
||||
|
||||
automation:
|
||||
- id: vardagsrum_rakna_eldning
|
||||
alias: "Vardagsrum: Räkna eldning"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: binary_sensor.vardagsrum_kamin_igang
|
||||
from: "off"
|
||||
to: "on"
|
||||
action:
|
||||
- service: counter.increment
|
||||
target:
|
||||
entity_id: counter.vardagsrum_kamin_eldningar
|
||||
|
|
@ -14,14 +14,6 @@
|
|||
effect:
|
||||
color_mode:
|
||||
brightness:
|
||||
last_seen: '2023-12-16T12:43:47.097Z'
|
||||
linkquality: 36
|
||||
power_on_behavior:
|
||||
update:
|
||||
installed_version: 587806257
|
||||
latest_version: 587806257
|
||||
state: idle
|
||||
update_available: false
|
||||
friendly_name: Matrum_tak
|
||||
supported_features: 44
|
||||
state: 'off'
|
||||
|
|
@ -49,11 +41,11 @@
|
|||
- 69.357
|
||||
rgb_color:
|
||||
- 255
|
||||
- 162
|
||||
- 163
|
||||
- 78
|
||||
xy_color:
|
||||
- 0.538
|
||||
- 0.388
|
||||
- 0.536
|
||||
- 0.389
|
||||
friendly_name: matrum_fönster_2
|
||||
supported_features: 44
|
||||
state: 'on'
|
||||
|
|
@ -159,9 +151,6 @@
|
|||
hs_color:
|
||||
rgb_color:
|
||||
xy_color:
|
||||
color:
|
||||
x: 0.4599
|
||||
y: 0.4106
|
||||
friendly_name: Kök tak
|
||||
supported_features: 44
|
||||
state: 'off'
|
||||
|
|
@ -219,11 +208,19 @@
|
|||
- stop_effect
|
||||
supported_color_modes:
|
||||
- brightness
|
||||
effect:
|
||||
color_mode:
|
||||
brightness:
|
||||
friendly_name: Vrum fönster
|
||||
supported_features: 44
|
||||
effect:
|
||||
state: 'off'
|
||||
light.nodeid_23_nodeid_23_dimmer:
|
||||
supported_color_modes:
|
||||
- brightness
|
||||
color_mode: brightness
|
||||
brightness: 143
|
||||
brightness: 144
|
||||
friendly_name: Egen
|
||||
supported_features: 0
|
||||
state: 'on'
|
||||
icon: mdi:lightbulb-night
|
||||
metadata:
|
||||
|
|
@ -255,6 +252,8 @@
|
|||
entity_only: true
|
||||
light.h020l:
|
||||
entity_only: true
|
||||
light.nodeid_23_nodeid_23_dimmer:
|
||||
entity_only: true
|
||||
- id: '1698441557226'
|
||||
name: Natt
|
||||
entities:
|
||||
|
|
@ -673,7 +672,7 @@
|
|||
entities:
|
||||
switch.h016s:
|
||||
friendly_name: UteSlinga
|
||||
state: 'off'
|
||||
state: 'on'
|
||||
light.h018l:
|
||||
effect_list:
|
||||
- blink
|
||||
|
|
@ -690,11 +689,6 @@
|
|||
friendly_name: Garage_sida
|
||||
supported_features: 44
|
||||
state: 'on'
|
||||
switch.utebaksida_brytare:
|
||||
restored: true
|
||||
friendly_name: Utebaksida brytare
|
||||
supported_features: 0
|
||||
state: unavailable
|
||||
light.baksida_spot_ute:
|
||||
min_color_temp_kelvin: 2000
|
||||
max_color_temp_kelvin: 6535
|
||||
|
|
@ -772,8 +766,8 @@
|
|||
supported_features: 44
|
||||
state: 'on'
|
||||
switch.h024s:
|
||||
friendly_name: Framsida slingor
|
||||
state: 'off'
|
||||
friendly_name: Garage slinga
|
||||
state: 'on'
|
||||
switch.h023s:
|
||||
friendly_name: Ute baksida
|
||||
state: 'on'
|
||||
|
|
@ -786,8 +780,6 @@
|
|||
entity_only: true
|
||||
light.h018l:
|
||||
entity_only: true
|
||||
switch.utebaksida_brytare:
|
||||
entity_only: true
|
||||
light.baksida_spot_ute:
|
||||
entity_only: true
|
||||
light.h013s:
|
||||
|
|
|
|||
|
|
@ -24,29 +24,6 @@ talk_on_oscar:
|
|||
media_player:
|
||||
- media_player.oscar
|
||||
icon: mdi:speaker-message
|
||||
kok_ct_timer_2:
|
||||
alias: kok_ct_timer_2
|
||||
sequence:
|
||||
- action: timer.start
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: timer.kokct
|
||||
- wait_template: '"{{ state.binary_sensor.sensor_inne_kitchen_mt004_occupancy.state
|
||||
== ''on'' }}"'
|
||||
continue_on_timeout: true
|
||||
timeout: 00:05:00
|
||||
- action: timer.cancel
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: timer.kokct
|
||||
- action: light.turn_off
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: light.kok_ct
|
||||
description: ''
|
||||
test:
|
||||
alias: Test
|
||||
sequence:
|
||||
|
|
@ -329,3 +306,13 @@ nfc_playbox_volume_down:
|
|||
mode: restart
|
||||
icon: mdi:spotify
|
||||
description: ''
|
||||
talk_on_ada:
|
||||
alias: talk_on_ada
|
||||
use_blueprint:
|
||||
path: balloob/announce-text-to-speech-on-media-player.yaml
|
||||
input:
|
||||
text_to_speech_engine: tts.google_sv_se
|
||||
media_player:
|
||||
- media_player.ada
|
||||
icon: mdi:speaker-message
|
||||
description: ''
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 198 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 193 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 852 KiB |
|
|
@ -0,0 +1 @@
|
|||
.config-db
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script will quickly and easily swap between two different configurations so that access to configuration
|
||||
# options can be easily turned on or off, this can help to protect against unauthorised setting changes.
|
||||
|
||||
STR=$(cat access.ini | head -n1| cut -c4)
|
||||
GOOD=$(cat access_yes)
|
||||
BAD=$(cat access_no)
|
||||
|
||||
echo $STR
|
||||
|
||||
if [ $STR = 0 ]
|
||||
then
|
||||
echo -e "\x1B[31m Access Opened \x1B[0m"
|
||||
echo "$GOOD" > access.ini
|
||||
else
|
||||
echo -e "\x1B[32m Access Closed \x1B[0m"
|
||||
echo "$BAD" > access.ini
|
||||
fi
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
;; 1
|
||||
;; ruTorrent permissions.
|
||||
;; All flags are assumed to be yes by default.
|
||||
|
||||
[settings]
|
||||
showDownloadsPage = yes
|
||||
showConnectionPage = yes
|
||||
showBittorentPage = yes
|
||||
showAdvancedPage = yes
|
||||
|
||||
[tabs]
|
||||
showPluginsTab = yes
|
||||
|
||||
[statusbar]
|
||||
canChangeULRate = yes
|
||||
canChangeDLRate = yes
|
||||
|
||||
[dialogs]
|
||||
canChangeTorrentProperties = yes
|
||||
canAddTorrentsWithoutPath = yes
|
||||
canAddTorrentsWithoutStarting = yes
|
||||
canAddTorrentsWithResume = yes
|
||||
canAddTorrentsWithRandomizeHash = yes
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
;; 0
|
||||
;; ruTorrent permissions.
|
||||
;; All flags are assumed to be yes by default.
|
||||
|
||||
[settings]
|
||||
showDownloadsPage = no
|
||||
showConnectionPage = no
|
||||
showBittorentPage = no
|
||||
showAdvancedPage = no
|
||||
|
||||
[tabs]
|
||||
showPluginsTab = no
|
||||
|
||||
[statusbar]
|
||||
canChangeULRate = no
|
||||
canChangeDLRate = no
|
||||
|
||||
[dialogs]
|
||||
canChangeTorrentProperties = no
|
||||
canAddTorrentsWithoutPath = no
|
||||
canAddTorrentsWithoutStarting = no
|
||||
canAddTorrentsWithResume = no
|
||||
canAddTorrentsWithRandomizeHash = no
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
;; 1
|
||||
;; ruTorrent permissions.
|
||||
;; All flags are assumed to be yes by default.
|
||||
|
||||
[settings]
|
||||
showDownloadsPage = yes
|
||||
showConnectionPage = yes
|
||||
showBittorentPage = yes
|
||||
showAdvancedPage = yes
|
||||
|
||||
[tabs]
|
||||
showPluginsTab = yes
|
||||
|
||||
[statusbar]
|
||||
canChangeULRate = yes
|
||||
canChangeDLRate = yes
|
||||
|
||||
[dialogs]
|
||||
canChangeTorrentProperties = yes
|
||||
canAddTorrentsWithoutPath = yes
|
||||
canAddTorrentsWithoutStarting = yes
|
||||
canAddTorrentsWithResume = yes
|
||||
canAddTorrentsWithRandomizeHash = yes
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
// configuration parameters
|
||||
|
||||
// for snoopy client
|
||||
@define('HTTP_USER_AGENT', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36', true);
|
||||
@define('HTTP_TIME_OUT', 30, true); // in seconds
|
||||
@define('HTTP_USE_GZIP', true, true);
|
||||
$httpIP = null; // IP string. Or null for any.
|
||||
$httpProxy = array
|
||||
(
|
||||
'use' => false,
|
||||
'proto' => 'http', // 'http' or 'https'
|
||||
'host' => 'PROXY_HOST_HERE',
|
||||
'port' => 3128
|
||||
);
|
||||
|
||||
@define('RPC_TIME_OUT', 5, true); // in seconds
|
||||
|
||||
@define('LOG_RPC_CALLS', false, true);
|
||||
@define('LOG_RPC_FAULTS', true, true);
|
||||
|
||||
// for php
|
||||
@define('PHP_USE_GZIP', false, true);
|
||||
@define('PHP_GZIP_LEVEL', 2, true);
|
||||
|
||||
$schedule_rand = 10; // rand for schedulers start, +0..X seconds
|
||||
|
||||
$do_diagnostic = true;
|
||||
$log_file = '/config/log/rutorrent/rutorrent.log'; // path to log file (comment or leave blank to disable logging)
|
||||
|
||||
$saveUploadedTorrents = true; // Save uploaded torrents to profile/torrents directory or not
|
||||
$overwriteUploadedTorrents = false; // Overwrite existing uploaded torrents in profile/torrents directory or make unique name
|
||||
|
||||
$topDirectory = '/'; // Upper available directory. Absolute path with trail slash.
|
||||
$forbidUserSettings = false;
|
||||
|
||||
// $scgi_port = 5000;
|
||||
// $scgi_host = "127.0.0.1";
|
||||
|
||||
// For web->rtorrent link through unix domain socket
|
||||
// (scgi_local in rtorrent conf file), change variables
|
||||
// above to something like this:
|
||||
//
|
||||
$scgi_port = 0;
|
||||
$scgi_host = "unix:////run/php/.rtorrent.sock";
|
||||
|
||||
$XMLRPCMountPoint = "/RPC2"; // DO NOT DELETE THIS LINE!!! DO NOT COMMENT THIS LINE!!!
|
||||
|
||||
$pathToExternals = array(
|
||||
"php" => '/usr/bin/php7', // Something like /usr/bin/php. If empty, will be found in PATH.
|
||||
"pgrep" => '/usr/bin/pgrep', // Something like /usr/bin/pgrep. If empty, will be found in PATH.
|
||||
"python" => '/usr/bin/python3', // Something like /usr/bin/python3. If empty, will be found in PATH.
|
||||
"curl" => '/usr/bin/curl', // Something like /usr/bin/curl. If empty, will be found in PATH.
|
||||
"gzip" => '/usr/bin/gzip', // Something like /usr/bin/gzip. If empty, will be found in PATH.
|
||||
"id" => '/usr/bin/id', // Something like /usr/bin/id. If empty, will be found in PATH.
|
||||
"stat" => '/bin/stat', // Something like /usr/bin/stat. If empty, will be found in PATH.
|
||||
);
|
||||
|
||||
$localhosts = array( // list of local interfaces
|
||||
"127.0.0.1",
|
||||
"localhost",
|
||||
);
|
||||
|
||||
$profilePath = '/config/rutorrent/profiles'; // Path to user profiles
|
||||
$profileMask = 0777; // Mask for files and directory creation in user profiles.
|
||||
// Both Webserver and rtorrent users must have read-write access to it.
|
||||
// For example, if Webserver and rtorrent users are in the same group then the value may be 0770.
|
||||
|
||||
$tempDirectory = '/config/rutorrent/profiles/tmp/'; // Temp directory. Absolute path with trail slash. If null, then autodetect will be used.
|
||||
|
||||
$canUseXSendFile = true; // Use X-Sendfile feature if it exist
|
||||
|
||||
$locale = "UTF8";
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
;; Plugins' permissions.
|
||||
;; If flag is not found in plugin section, corresponding flag from "default" section is used.
|
||||
;; If flag is not found in "default" section, it is assumed to be "yes".
|
||||
;;
|
||||
;; For setting individual plugin permissions you must write something like that:
|
||||
;;
|
||||
;; [ratio]
|
||||
;; enabled = yes ;; also may be "user-defined", in this case user can control plugin's state from UI
|
||||
;; canChangeToolbar = yes
|
||||
;; canChangeMenu = yes
|
||||
;; canChangeOptions = no
|
||||
;; canChangeTabs = yes
|
||||
;; canChangeColumns = yes
|
||||
;; canChangeStatusBar = yes
|
||||
;; canChangeCategory = yes
|
||||
;; canBeShutdowned = yes
|
||||
|
||||
[default]
|
||||
enabled = user-defined
|
||||
canChangeToolbar = yes
|
||||
canChangeMenu = yes
|
||||
canChangeOptions = yes
|
||||
canChangeTabs = yes
|
||||
canChangeColumns = yes
|
||||
canChangeStatusBar = yes
|
||||
canChangeCategory = yes
|
||||
canBeShutdowned = yes
|
||||
17
traefik.yml
|
|
@ -1,7 +1,7 @@
|
|||
api:
|
||||
dashboard: true
|
||||
debug: true
|
||||
insecure: true
|
||||
insecure: false
|
||||
|
||||
providers:
|
||||
docker:
|
||||
|
|
@ -25,9 +25,22 @@ accessLog:
|
|||
statusCodes:
|
||||
- "200"
|
||||
- "300-302"
|
||||
- "500"
|
||||
- "400-599"
|
||||
retryAttempts: true
|
||||
minDuration: "10ms"
|
||||
fields:
|
||||
defaultMode: keep
|
||||
names:
|
||||
RequestPath: drop
|
||||
RequestLine: drop
|
||||
ClientUsername: drop
|
||||
headers:
|
||||
defaultMode: drop
|
||||
names:
|
||||
Authorization: drop
|
||||
Cookie: drop
|
||||
Set-Cookie: drop
|
||||
X-Forwarded-For: keep
|
||||
|
||||
#metrics:
|
||||
#influxDB:
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ http:
|
|||
ipAllowList:
|
||||
sourceRange:
|
||||
- "127.0.0.1/32"
|
||||
- "10.0.0.1/8"
|
||||
- "10.0.0.0/8"
|
||||
|
||||
middlewares-https-redirectscheme:
|
||||
redirectScheme:
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ http:
|
|||
- chain-authelia
|
||||
|
||||
redirecttohttps:
|
||||
rule: "HostRegexp(`{host:.+}`)"
|
||||
rule: "PathPrefix(`/`)"
|
||||
middlewares:
|
||||
- middlewares-https-redirectscheme
|
||||
service: noop
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
data
|
||||
|
|
@ -47,8 +47,6 @@ devices:
|
|||
'0x001788010452ec91':
|
||||
friendly_name: Philips Lily 4
|
||||
retain: false
|
||||
'0x14b457fffe6d87e8':
|
||||
friendly_name: Kök_Multidimmer
|
||||
'0x086bd7fffe5a6240':
|
||||
friendly_name: Kök 1
|
||||
'0xd0cf5efffed8c794':
|
||||
|
|
@ -93,6 +91,10 @@ devices:
|
|||
friendly_name: '0x00124b002a51c5f1'
|
||||
'0x00158d000484f134':
|
||||
friendly_name: sensor/inne/ada/th002
|
||||
'0x000d6ffffe61e2f8':
|
||||
friendly_name: Kök_dimmer_2
|
||||
'0x000b57fffe8abe13':
|
||||
friendly_name: Jul - stjärna 4
|
||||
groups:
|
||||
'1':
|
||||
friendly_name: Kök_ct
|
||||
|
|
@ -105,4 +107,8 @@ groups:
|
|||
retain: false
|
||||
'4':
|
||||
friendly_name: baksida_spot_ute
|
||||
version: 4
|
||||
'44386':
|
||||
friendly_name: '44386'
|
||||
'57338':
|
||||
friendly_name: '57338'
|
||||
version: 5
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ devices:
|
|||
'0x680ae2fffe6d374c':
|
||||
friendly_name: Kök_svart_2
|
||||
'0x086bd7fffe05e8ad':
|
||||
friendly_name: Julstjärna röd
|
||||
friendly_name: Jul - stjärna 3
|
||||
'0xb4e3f9fffe6c3642':
|
||||
friendly_name: Växtlampa
|
||||
'0x54ef4410003e9419':
|
||||
|
|
@ -107,7 +107,7 @@ devices:
|
|||
'0xb4e3f9fffec8b2bb':
|
||||
friendly_name: Oscar Skrivbord
|
||||
'0x385b44fffe1cb234':
|
||||
friendly_name: Ute_garage_slinga
|
||||
friendly_name: H032S
|
||||
'0x1c34f1fffe7b1d6c':
|
||||
friendly_name: mormor_malla_1
|
||||
'0x1c34f1fffed69863':
|
||||
|
|
@ -207,9 +207,6 @@ devices:
|
|||
'0x588e81fffe14100f':
|
||||
friendly_name: H018L
|
||||
description: Ute soptunna
|
||||
'0x00158d00058a2ad5':
|
||||
friendly_name: sensor/ute/vind/th007
|
||||
description: Temp vind
|
||||
'0x00158d0005888dfa':
|
||||
friendly_name: H017S
|
||||
description: Växthus
|
||||
|
|
@ -226,13 +223,36 @@ devices:
|
|||
description: 'Baksida '
|
||||
'0xa4c138743401b4ed':
|
||||
friendly_name: H024S
|
||||
description: Julslinga
|
||||
description: 'Garage sida '
|
||||
'0x5c0272fffe8ab0ce':
|
||||
friendly_name: H025L
|
||||
description: Garage inne
|
||||
'0x00158d00058a2ad5':
|
||||
friendly_name: sensor/ute/vind/th007
|
||||
description: Temp vind
|
||||
'0x0c2a6ffffe27eb85':
|
||||
friendly_name: H026L
|
||||
description: Spot framsida 2
|
||||
'0x0c2a6ffffe27e999':
|
||||
friendly_name: H027L
|
||||
description: Spot framsida 3
|
||||
'0xa46dd4fffe3000d5':
|
||||
friendly_name: H028s
|
||||
description: Temp oscar
|
||||
temperature_precision: 2
|
||||
'0x8c8b48fffec70f78':
|
||||
friendly_name: Jul - stjärna 2
|
||||
'0xbc8d7efffe33627d':
|
||||
friendly_name: h029
|
||||
'0x94a081fffef4b1c9':
|
||||
friendly_name: h030r
|
||||
'0xf4ce364abf76dbac':
|
||||
friendly_name: h014s
|
||||
description: Lås
|
||||
friendly_name: H014S
|
||||
'0xa4c138986ee26ddd':
|
||||
friendly_name: H033S
|
||||
'0xa4c1382931eb162b':
|
||||
friendly_name: H034S
|
||||
description: Framsida, jord
|
||||
groups:
|
||||
'0':
|
||||
friendly_name: default_0
|
||||
|
|
@ -252,4 +272,4 @@ homeassistant:
|
|||
enabled: true
|
||||
experimental_event_entities: true
|
||||
status_topic: homeassistant/status
|
||||
version: 4
|
||||
version: 5
|
||||
|
|
|
|||