Skrypt - nie działa

Hej , zerknie ktos na to ? Dlaczego nie rusza mi skrypt ?
Błedów zadnych nie pokazuje…
Chce zeby sprawdzało tem co jakis tam okreslony czas, zapisywalo do excela - at taka moja fanaberia, bardziej w celach dydaktycznych , chociaz moze sie przyda kiedys :slight_smile:

Skrypty muszą być uruchamiana z uprawnieniami root

ale to gdzies w configuration.yaml powiniem ustawic ?

Root jest, to nie to chyba

U kolegi ktory ma wersje Home Assistant Core 2022.5.4 działa to jak nalezy.
U mnie Home Assistant 2022.11.2 juz nie.

Cos z tym pythonem inaczej jest…:frowning:

Skrypt przepisywałeś/kopiowałeś w windows ?

Tak, sprawdzam configuration.yaml wszystko ok, nie wiem oco chodzi kurde ;/
U niego działa u mnie nie :smiley:

Screenshot - 20.11.2022 , 21_07_13
Sugeruje zły znak powrotu typowy dla Windows

spróbuj tego $ sed -i -e 's/\r$//' twojplik.py

to teraz dostaje cos takiego
image

zrobilem jak mowiles, powinien sie wygenerowac plik

Wrzuć ten skrypt tutaj.

#!/usr/bin/python3
 

from requests import get
import json
import csv
from os.path import exists
from datetime import datetime, timedelta
 
now = datetime.now()
 
# ścieżka i nazwa pliku CSV
timestr = datetime.now().strftime("%Y-%m-%d")
FILE_CSV = "/config/temperatura/temperatura_{}.{}".format(timestr,'csv')
#FILE_CSV = "/config/temperatura/temperatura.csv"
 
# sensory do odczytania
END_POINT_1 = "states/sensor.magazyn_temperature"
END_POINT_2 = "states/sensor.lodowka_temperature"
 
# serwer HA
HOST = "192.168.0.26"
 
# adres serwera z HA
url_1 = "http://{}:8123/api/{}".format(HOST, END_POINT_1)
url_2 = "http://{}:8123/api/{}".format(HOST, END_POINT_2)
 
# HA LIVE TOKEN "Bearer aaaBBBBcccDDDeeeFFF.."
f = open("/config/temperatura/HA_API_KEY.txt", "r")
HA_API_KEY = f.readline()
f.close()
 
headers={"Authorization": HA_API_KEY,
         "content-type": "application/json"
        }
 
response_1 = get(url_1, headers=headers)
response_json_1 = response_1.json()
 
response_2 = get(url_2, headers=headers)
response_json_2 = response_2.json()
 
# utwórz plik CSV jeśli nie istnieje
def check_file(file):
    if not exists(file):
        table_1 = ["last_updated_1", "last_updated_2", "temp_1 in °C", "temp_2 in °C", "data", "godzina"]
        with open(file, 'a+', newline='') as file:
            writer = csv.writer(file)
            writer.writerow(table_1)
        file.close()
                
# zmień strefę czasową na UTC+2        
def change_tzone(date_time_str):
    date_time_obj = datetime.strptime(date_time_str, '%Y-%m-%dT%H:%M:%S.%f')
    date_time_local = date_time_obj  + timedelta(hours=2)
    return date_time_local
 
# sprawdź czy plik CSV już istnieje
check_file(FILE_CSV)
 
last_updated_1 = change_tzone(response_json_1['last_updated'][0:26]).strftime("%Y-%m-%d %H:%M:%S")
last_updated_2 = change_tzone(response_json_2['last_updated'][0:26]).strftime("%Y-%m-%d %H:%M:%S")
state_1 = response_json_1['state']
state_2 = response_json_2['state']
date = now.date()
time = now.time().strftime("%H:%M:%S")
 
table_2 = [last_updated_1, last_updated_2, state_1, state_2, date, time]
 
with open(FILE_CSV, 'a+',newline='') as file:
    writer = csv.writer(file)
    writer.writerow(table_2)
file.close()

moze ja zła sciezke do python podaje ? Skoro u kolegi działa…
Moze byc inna ?

Wklej to co dostaniesz w schowku stamtąd
Ustawienia → System → Naprawy → hamburger menu → Informacje o systemie → popup → KOPIUJ
i poproś tego kolegę na 2022.5.4 by zrobił to samo.

Jeśli uważasz, że to tylko kwestia wersji
(UWAGA przy tak radykalnym cofaniu wersji możesz utracić bazę danych oraz doprowadzić wiele komponentów do braku działania!)
to w terminalu odpal
ha core update --version 2022.5.4

System Health

version: core-2022.5.4
installation_type: Home Assistant Supervised
dev: false
hassio: true
docker: true
user: root
virtualenv: false
python_version: 3.9.9
os_name: Linux
os_version: 5.10.0-9-amd64
arch: x86_64
timezone: Europe/Warsaw

GitHub API: ok
GitHub Content: ok
GitHub Web: ok
GitHub API Calls Remaining: 1260
Installed Version: 1.23.0
Stage: running
Available Repositories: 1158
Downloaded Repositories: 9

logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: ok

host_os: Debian GNU/Linux 11 (bullseye)
update_channel: stable
supervisor_version: supervisor-2022.10.2
docker_version: 20.10.9
disk_total: 108.0 GB
disk_used: 13.8 GB
healthy: true
supported: failed to load: Unsupported
supervisor_api: ok
version_api: ok
installed_addons: Mosquitto broker (6.1.2), Zigbee2mqtt (1.25.1-1), File editor (5.3.3), Terminal & SSH (9.4.0), Home Assistant Google Drive Backup (0.108.2), Samba share (9.6.1), Node-RED (12.0.2), Studio Code Server (5.0.6), InfluxDB (4.5.0), Grafana (7.6.0), SQLite Web (3.6.0), FTP (4.6.0), Cloudflared (2.0.16), Z-Wave JS (0.1.74), ESPHome (dev) (dev)

dashboards: 3
resources: 6
views: 9
mode: storage

logged_in: true
can_reach_micloud_server: ok
accounts_count: 3
account_devices_count: 2
added_devices: 1py\

i moje

System Information

version core-2022.11.2
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.10.0-9-amd64
arch x86_64
timezone Europe/Warsaw
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 1321
Installed Version 1.28.3
Stage running
Available Repositories 1224
Downloaded Repositories 4
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2022.10.2
agent_version 1.2.2
docker_version 20.10.9
disk_total 108.0 GB
disk_used 8.0 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (6.1.3), Zigbee2MQTT (1.28.2-1), File editor (5.4.2), Terminal & SSH (9.6.1), Home Assistant Google Drive Backup (0.109.1), Samba share (10.0.0), Node-RED (13.5.2), ZeroTier One (0.15.1), SSH & Web Terminal (12.1.3), ESPHome (dev) (dev)
Dashboards
dashboards 1
resources 3
views 1
mode storage
Recorder
oldest_recorder_run November 10, 2022 at 4:48 PM
current_recorder_run November 20, 2022 at 9:38 PM
estimated_db_size 61.15 MiB
database_engine sqlite
database_version 3.38.5

inna wersja pythona
jeśli nie masz nic do stracenia możesz spróbować downgrade HA core

porównaj też środowiska w których masz to zainstalowane

i przez to sie nie odpala skrypt ?
Kurde a nie ma innego wyjscia oprocz downgrade ? :frowning:

Lepiej spytaj go jak on to odpalił, bo podejrzewam brak jakiegoś istotnego kroku z twojej strony.

Scieżki w DEB. powinny wyglądać tak

/usr/share/hassio/homeassistant/temperatura/HA_API_KEY.txt

FILE_CSV = “/usr/share/hassio/homeassistant/temperatura/temperatura_{}.{}”.format(timestr, ‘csv’)

Hej Artur,
nie mam takiej sciezki nawet, kupilem gotowca na allegro i chyba jakaś szajsowna instalacja.
probuje wywołac ten skryp przez call developers tools - call service - python_script.tempertura.
Wywala mi znowu jakis bledy dziwne.
Dziwne to wszystko

Cytat

root@debian:/usr/share/hassio/homeassistant/temperatura# sudo python3 temperatura.py
Traceback (most recent call last):
File “/usr/share/hassio/homeassistant/temperatura/temperatura.py”, line 37, in
response_json_1 = response_1.json()
File “/usr/lib/python3/dist-packages/requests/models.py”, line 900, in json
return complexjson.loads(self.text, **kwargs)
File “/usr/lib/python3.9/json/init.py”, line 346, in loads
return _default_decoder.decode(s)
File “/usr/lib/python3.9/json/decoder.py”, line 340, in decode
raise JSONDecodeError(“Extra data”, s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 4 (char 3)
root@debian:/usr/share/hassio/homeassistant/temperatura#


W HA wyskakuje błąd autoryzacji więc skrypt raczej działa