move files, rename home package to homekit

This commit is contained in:
Evgeny Zinoviev 2023-06-10 23:02:34 +03:00
parent f3b9d50496
commit b0bf43e6a2
151 changed files with 205 additions and 159 deletions

5
.gitignore vendored
View File

@ -6,10 +6,11 @@
config.def.h config.def.h
__pycache__ __pycache__
.DS_Store .DS_Store
/src/test/test_inverter_monitor.log /py_include/test/test_inverter_monitor.log
/youtrack-certificate /youtrack-certificate
/cpp /cpp
/src/test.py /py_include/test.py
/bin/test.py
/esp32-cam/CameraWebServer/wifi_password.h /esp32-cam/CameraWebServer/wifi_password.h
cmake-build-* cmake-build-*
.pio .pio

9
bin/__py_include.py Normal file
View File

@ -0,0 +1,9 @@
import sys
import os.path
for _name in ('py_include',):
sys.path.extend([
os.path.realpath(
os.path.join(os.path.dirname(os.path.join(__file__)), '..', _name)
)
])

View File

@ -1,12 +1,13 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import asyncio import asyncio
import time import time
import __py_include
from home.config import config from homekit.config import config
from home.media import MediaNodeServer, ESP32CameraRecordStorage, CameraRecorder from homekit.media import MediaNodeServer, ESP32CameraRecordStorage, CameraRecorder
from home.camera import CameraType, esp32 from homekit.camera import CameraType, esp32
from home.util import Addr from homekit.util import Addr
from home import http from homekit import http
# Implements HTTP API for a camera. # Implements HTTP API for a camera.

View File

@ -3,11 +3,12 @@ import logging
import os import os
import sys import sys
import inspect import inspect
import __py_include
from home.config import config # do not remove this import! from homekit.config import config # do not remove this import!
from datetime import datetime, timedelta from datetime import datetime, timedelta
from logging import Logger from logging import Logger
from home.database import InverterDatabase from homekit.database import InverterDatabase
from argparse import ArgumentParser, ArgumentError from argparse import ArgumentParser, ArgumentError
from typing import Optional from typing import Optional

View File

@ -2,10 +2,11 @@
import asyncio import asyncio
import logging import logging
import os.path import os.path
import __py_include
from argparse import ArgumentParser from argparse import ArgumentParser
from home.camera.esp32 import WebClient from homekit.camera.esp32 import WebClient
from home.util import Addr from homekit.util import Addr
from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.schedulers.asyncio import AsyncIOScheduler
from datetime import datetime from datetime import datetime
from typing import Optional from typing import Optional

View File

@ -3,11 +3,12 @@ import asyncio
import logging import logging
import os.path import os.path
import tempfile import tempfile
import home.telegram.aio as telegram import __py_include
import homekit.telegram.aio as telegram
from home.config import config from homekit.config import config
from home.camera.esp32 import WebClient from homekit.camera.esp32 import WebClient
from home.util import Addr, send_datagram, stringify from homekit.util import Addr, send_datagram, stringify
from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.schedulers.asyncio import AsyncIOScheduler
from typing import Optional from typing import Optional

View File

@ -2,9 +2,10 @@
import logging import logging
import os import os
import sys import sys
import __py_include
from home.config import config from homekit.config import config
from home.relay.sunxi_h3_server import RelayServer from homekit.relay.sunxi_h3_server import RelayServer
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -5,30 +5,31 @@ import datetime
import json import json
import itertools import itertools
import sys import sys
import __py_include
from inverterd import Format, InverterError from inverterd import Format, InverterError
from html import escape from html import escape
from typing import Optional, Tuple, Union from typing import Optional, Tuple, Union
from home.util import chunks from homekit.util import chunks
from home.config import config, AppConfigUnit from homekit.config import config, AppConfigUnit
from home.telegram import bot from homekit.telegram import bot
from home.telegram.config import TelegramBotConfig, TelegramUserListType from homekit.telegram.config import TelegramBotConfig, TelegramUserListType
from home.inverter import ( from homekit.inverter import (
wrapper_instance as inverter, wrapper_instance as inverter,
beautify_table, beautify_table,
InverterMonitor, InverterMonitor,
) )
from home.inverter.types import ( from homekit.inverter.types import (
ChargingEvent, ChargingEvent,
ACPresentEvent, ACPresentEvent,
BatteryState, BatteryState,
ACMode, ACMode,
OutputSourcePriority OutputSourcePriority
) )
from home.database.inverter_time_formats import FormatDate from homekit.database.inverter_time_formats import FormatDate
from home.api.types import BotType from homekit.api.types import BotType
from home.api import WebApiClient from homekit.api import WebApiClient
from telegram import ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton from telegram import ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton

View File

@ -1,7 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import __py_include
from argparse import ArgumentParser from argparse import ArgumentParser
from home.config import config, app_config from homekit.config import config
from home.mqtt import MqttWrapper, MqttNode from homekit.mqtt import MqttWrapper, MqttNode
if __name__ == '__main__': if __name__ == '__main__':
@ -17,8 +19,8 @@ if __name__ == '__main__':
node = MqttNode(node_id='inverter') node = MqttNode(node_id='inverter')
module_kwargs = {} module_kwargs = {}
if mode == 'sender': if mode == 'sender':
module_kwargs['status_poll_freq'] = int(app_config['poll_freq']) module_kwargs['status_poll_freq'] = int(config.app_config['poll_freq'])
module_kwargs['generation_poll_freq'] = int(app_config['generation_poll_freq']) module_kwargs['generation_poll_freq'] = int(config.app_config['generation_poll_freq'])
node.load_module('inverter', **module_kwargs) node.load_module('inverter', **module_kwargs)
mqtt.add_node(node) mqtt.add_node(node)

View File

@ -1,7 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import logging import logging
import __py_include
from home.inverter.emulator import InverterEmulator from homekit.inverter.emulator import InverterEmulator
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -5,15 +5,17 @@ import re
import asyncio import asyncio
import time import time
import shutil import shutil
import home.telegram.aio as telegram import __py_include
import homekit.telegram.aio as telegram
from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.schedulers.asyncio import AsyncIOScheduler
from asyncio import Lock from asyncio import Lock
from home.config import config from homekit.config import config
from home import http from homekit import http
from home.database.sqlite import SQLiteBase from homekit.database.sqlite import SQLiteBase
from home.camera import util as camutil from homekit.camera import util as camutil
from enum import Enum from enum import Enum
from typing import Optional, Union, List, Tuple from typing import Optional, Union, List, Tuple

View File

@ -1,13 +1,14 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os.path import os.path
import __py_include
from time import sleep from time import sleep
from typing import Optional from typing import Optional
from argparse import ArgumentParser, ArgumentError from argparse import ArgumentParser, ArgumentError
from home.config import config from homekit.config import config
from home.mqtt import MqttNode, MqttWrapper, get_mqtt_modules from homekit.mqtt import MqttNode, MqttWrapper, get_mqtt_modules
from home.mqtt import MqttNodesConfig from homekit.mqtt import MqttNodesConfig
mqtt_node: Optional[MqttNode] = None mqtt_node: Optional[MqttNode] = None
mqtt: Optional[MqttWrapper] = None mqtt: Optional[MqttWrapper] = None

View File

@ -1,11 +1,12 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import home.telegram as telegram import __py_include
import homekit.telegram as telegram
from home.telegram.config import TelegramChatsConfig from homekit.telegram.config import TelegramChatsConfig
from home.util import validate_mac_address from homekit.util import validate_mac_address
from typing import Optional from typing import Optional
from home.config import config, AppConfigUnit from homekit.config import config, AppConfigUnit
from home.database import BotsDatabase, SimpleState from homekit.database import BotsDatabase, SimpleState
class OpenwrtLogAnalyzerConfig(AppConfigUnit): class OpenwrtLogAnalyzerConfig(AppConfigUnit):

View File

@ -1,12 +1,13 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import __py_include
from datetime import datetime from datetime import datetime
from typing import Tuple, List, Optional from typing import Tuple, List, Optional
from argparse import ArgumentParser from argparse import ArgumentParser
from home.config import config, AppConfigUnit from homekit.config import config, AppConfigUnit
from home.database import SimpleState from homekit.database import SimpleState
from home.api import WebApiClient from homekit.api import WebApiClient
class OpenwrtLoggerConfig(AppConfigUnit): class OpenwrtLoggerConfig(AppConfigUnit):

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import __py_include
if __name__ == '__main__': if __name__ == '__main__':
print('TODO') print('TODO')

View File

@ -2,11 +2,12 @@
import os import os
import yaml import yaml
import re import re
import __py_include
from pprint import pprint from pprint import pprint
from argparse import ArgumentParser, ArgumentError from argparse import ArgumentParser, ArgumentError
from home.pio import get_products, platformio_ini from homekit.pio import get_products, platformio_ini
from home.pio.exceptions import ProductConfigNotFoundError from homekit.pio.exceptions import ProductConfigNotFoundError
def get_config(product: str) -> dict: def get_config(product: str) -> dict:

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from __future__ import annotations from __future__ import annotations
import __py_include
import logging import logging
import locale import locale
import queue import queue
@ -8,11 +9,11 @@ import time
import threading import threading
import paho.mqtt.client as mqtt import paho.mqtt.client as mqtt
from home.telegram import bot from homekit.telegram import bot
from home.api.types import BotType from homekit.api.types import BotType
from home.mqtt import Mqtt from homekit.mqtt import Mqtt
from home.config import config from homekit.config import config
from home.util import chunks from homekit.util import chunks
from syncleo import ( from syncleo import (
Kettle, Kettle,
PowerType, PowerType,

View File

@ -4,12 +4,13 @@
import logging import logging
import sys import sys
import paho.mqtt.client as mqtt import paho.mqtt.client as mqtt
import __py_include
from typing import Optional from typing import Optional
from argparse import ArgumentParser from argparse import ArgumentParser
from queue import SimpleQueue from queue import SimpleQueue
from home.mqtt import Mqtt from homekit.mqtt import Mqtt
from home.config import config from homekit.config import config
from syncleo import ( from syncleo import (
Kettle, Kettle,
PowerType, PowerType,

View File

@ -1,19 +1,21 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import __py_include
from enum import Enum from enum import Enum
from typing import Optional from typing import Optional
from telegram import ReplyKeyboardMarkup, User from telegram import ReplyKeyboardMarkup, User
from time import time from time import time
from datetime import datetime from datetime import datetime
from home.config import config, is_development_mode from homekit.config import config, is_development_mode
from home.telegram import bot from homekit.telegram import bot
from home.telegram._botutil import user_any_name from homekit.telegram._botutil import user_any_name
from home.relay.sunxi_h3_client import RelayClient from homekit.relay.sunxi_h3_client import RelayClient
from home.api.types import BotType from homekit.api.types import BotType
from home.mqtt import MqttNode, MqttWrapper, MqttPayload from homekit.mqtt import MqttNode, MqttWrapper, MqttPayload
from home.mqtt.module.relay import MqttPowerStatusPayload, MqttRelayModule from homekit.mqtt.module.relay import MqttPowerStatusPayload, MqttRelayModule
from home.mqtt.module.temphum import MqttTemphumDataPayload from homekit.mqtt.module.temphum import MqttTemphumDataPayload
from home.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload from homekit.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload
config.load_app('pump_bot') config.load_app('pump_bot')

View File

@ -1,16 +1,17 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import datetime import datetime
import __py_include
from enum import Enum from enum import Enum
from typing import Optional from typing import Optional
from telegram import ReplyKeyboardMarkup, User from telegram import ReplyKeyboardMarkup, User
from home.config import config from homekit.config import config
from home.telegram import bot from homekit.telegram import bot
from home.telegram._botutil import user_any_name from homekit.telegram._botutil import user_any_name
from home.mqtt import MqttNode, MqttPayload from homekit.mqtt import MqttNode, MqttPayload
from home.mqtt.module.relay import MqttRelayState from homekit.mqtt.module.relay import MqttRelayState
from home.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload from homekit.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload
config.load_app('pump_mqtt_bot') config.load_app('pump_mqtt_bot')

View File

@ -1,18 +1,19 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
import __py_include
from enum import Enum from enum import Enum
from typing import Optional, Union from typing import Optional, Union
from telegram import ReplyKeyboardMarkup from telegram import ReplyKeyboardMarkup
from functools import partial from functools import partial
from home.config import config, AppConfigUnit, Translation from homekit.config import config, AppConfigUnit, Translation
from home.telegram import bot from homekit.telegram import bot
from home.telegram.config import TelegramBotConfig from homekit.telegram.config import TelegramBotConfig
from home.mqtt import MqttPayload, MqttNode, MqttWrapper, MqttModule from homekit.mqtt import MqttPayload, MqttNode, MqttWrapper, MqttModule
from home.mqtt import MqttNodesConfig from homekit.mqtt import MqttNodesConfig
from home.mqtt.module.relay import MqttRelayModule, MqttRelayState from homekit.mqtt.module.relay import MqttRelayModule, MqttRelayState
from home.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload from homekit.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload
if __name__ != '__main__': if __name__ != '__main__':

View File

@ -1,11 +1,12 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import logging import logging
import __py_include
from home import http from homekit import http
from home.config import config, AppConfigUnit from homekit.config import config, AppConfigUnit
from home.mqtt import MqttPayload, MqttWrapper, MqttNode, MqttModule, MqttNodesConfig from homekit.mqtt import MqttPayload, MqttWrapper, MqttNode, MqttModule, MqttNodesConfig
from home.mqtt.module.relay import MqttRelayState, MqttRelayModule, MqttPowerStatusPayload from homekit.mqtt.module.relay import MqttRelayState, MqttRelayModule, MqttPowerStatusPayload
from home.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload from homekit.mqtt.module.diagnostics import InitialDiagnosticsPayload, DiagnosticsPayload
from typing import Optional, Union from typing import Optional, Union

View File

@ -4,6 +4,7 @@ import socket
import logging import logging
import re import re
import gc import gc
import __py_include
from io import BytesIO from io import BytesIO
from typing import Optional from typing import Optional
@ -14,11 +15,11 @@ import matplotlib.ticker as mticker
from telegram import ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton from telegram import ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton
from home.config import config from homekit.config import config
from home.telegram import bot from homekit.telegram import bot
from home.util import chunks, MySimpleSocketClient from homekit.util import chunks, MySimpleSocketClient
from home.api import WebApiClient from homekit.api import WebApiClient
from home.api.types import ( from homekit.api.types import (
BotType, BotType,
TemperatureSensorLocation TemperatureSensorLocation
) )

View File

@ -2,21 +2,22 @@
import logging import logging
import os import os
import tempfile import tempfile
import __py_include
from enum import Enum from enum import Enum
from datetime import datetime, timedelta from datetime import datetime, timedelta
from html import escape from html import escape
from typing import Optional, List, Dict, Tuple from typing import Optional, List, Dict, Tuple
from home.config import config from homekit.config import config
from home.api import WebApiClient from homekit.api import WebApiClient
from home.api.types import SoundSensorLocation, BotType from homekit.api.types import SoundSensorLocation, BotType
from home.api.errors import ApiResponseError from homekit.api.errors import ApiResponseError
from home.media import SoundNodeClient, SoundRecordClient, SoundRecordFile, CameraNodeClient from homekit.media import SoundNodeClient, SoundRecordClient, SoundRecordFile, CameraNodeClient
from home.soundsensor import SoundSensorServerGuardClient from homekit.soundsensor import SoundSensorServerGuardClient
from home.util import Addr, chunks, filesize_fmt from homekit.util import Addr, chunks, filesize_fmt
from home.telegram import bot from homekit.telegram import bot
from telegram.error import TelegramError from telegram.error import TelegramError
from telegram import ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton, User from telegram import ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton, User

View File

@ -1,12 +1,13 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import __py_include
from typing import Optional from typing import Optional
from home.config import config from homekit.config import config
from home.audio import amixer from homekit.audio import amixer
from home.media import MediaNodeServer, SoundRecordStorage, SoundRecorder from homekit.media import MediaNodeServer, SoundRecordStorage, SoundRecorder
from home import http from homekit import http
# This script must be run as root as it runs arecord. # This script must be run as root as it runs arecord.

View File

@ -2,10 +2,11 @@
import logging import logging
import os import os
import sys import sys
import __py_include
from home.config import config from homekit.config import config
from home.util import Addr from homekit.util import Addr
from home.soundsensor import SoundSensorNode from homekit.soundsensor import SoundSensorNode
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -1,16 +1,17 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import logging import logging
import threading import threading
import __py_include
from time import sleep from time import sleep
from typing import Optional, List, Dict, Tuple from typing import Optional, List, Dict, Tuple
from functools import partial from functools import partial
from home.config import config from homekit.config import config
from home.util import Addr from homekit.util import Addr
from home.api import WebApiClient, RequestParams from homekit.api import WebApiClient, RequestParams
from home.api.types import SoundSensorLocation from homekit.api.types import SoundSensorLocation
from home.soundsensor import SoundSensorServer, SoundSensorHitHandler from homekit.soundsensor import SoundSensorServer, SoundSensorHitHandler
from home.media import MediaNodeType, SoundRecordClient, CameraRecordClient, RecordClient from homekit.media import MediaNodeType, SoundRecordClient, CameraRecordClient, RecordClient
interrupted = False interrupted = False
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import __py_include
from home.config import config from homekit.config import config
if __name__ == '__main__': if __name__ == '__main__':
config.load_app('ssh_tunnels_config_util') config.load_app('ssh_tunnels_config_util')

View File

@ -2,12 +2,13 @@
import asyncio import asyncio
import json import json
import logging import logging
import __py_include
from typing import Optional from typing import Optional
from home.config import config from homekit.config import config
from home.temphum import SensorType, BaseSensor from homekit.temphum import SensorType, BaseSensor
from home.temphum.i2c import create_sensor from homekit.temphum.i2c import create_sensor
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
sensor: Optional[BaseSensor] = None sensor: Optional[BaseSensor] = None

View File

@ -1,9 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import paho.mqtt.client as mqtt import paho.mqtt.client as mqtt
import re import re
import __py_include
from home.config import config from homekit.config import config
from home.mqtt import MqttWrapper, MqttNode from homekit.mqtt import MqttWrapper, MqttNode
class MqttServer(Mqtt): class MqttServer(Mqtt):

View File

@ -1,5 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from home.mqtt.temphum import MqttTempHumNodes import __py_include
from homekit.mqtt.temphum import MqttTempHumNodes
if __name__ == '__main__': if __name__ == '__main__':
max_name_len = 0 max_name_len = 0

View File

@ -1,7 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import __py_include
from argparse import ArgumentParser from argparse import ArgumentParser
from home.temphum import SensorType from homekit.temphum import SensorType
from home.temphum.i2c import create_sensor from homekit.temphum.i2c import create_sensor
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -2,12 +2,13 @@
import asyncio import asyncio
import json import json
import logging import logging
import __py_include
from typing import Optional from typing import Optional
from home.config import config from homekit.config import config
from home.temphum import SensorType, BaseSensor from homekit.temphum import SensorType, BaseSensor
from home.temphum.i2c import create_sensor from homekit.temphum.i2c import create_sensor
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
sensor: Optional[BaseSensor] = None sensor: Optional[BaseSensor] = None

View File

@ -2,16 +2,17 @@
import asyncio import asyncio
import json import json
import os import os
import __py_include
from datetime import datetime, timedelta from datetime import datetime, timedelta
from aiohttp import web from aiohttp import web
from home import http from homekit import http
from home.config import config, is_development_mode from homekit.config import config, is_development_mode
from home.database import BotsDatabase, SensorsDatabase, InverterDatabase from homekit.database import BotsDatabase, SensorsDatabase, InverterDatabase
from home.database.inverter_time_formats import * from homekit.database.inverter_time_formats import *
from home.api.types import BotType, TemperatureSensorLocation, SoundSensorLocation from homekit.api.types import BotType, TemperatureSensorLocation, SoundSensorLocation
from home.media import SoundRecordStorage from homekit.media import SoundRecordStorage
def strptime_auto(s: str) -> datetime: def strptime_auto(s: str) -> datetime:

View File

@ -45,7 +45,7 @@ class Mqtt:
'..', '..',
'..', '..',
'..', '..',
'assets', 'misc',
'mqtt_ca.crt' 'mqtt_ca.crt'
)) ))
self._client.tls_set(ca_certs=ca_certs, self._client.tls_set(ca_certs=ca_certs,

View File

@ -11,7 +11,7 @@ from .._module import MqttModule
from .._node import MqttNode from .._node import MqttNode
from .._payload import MqttPayload, bit_field from .._payload import MqttPayload, bit_field
try: try:
from home.database import InverterDatabase from homekit.database import InverterDatabase
except: except:
pass pass

Some files were not shown because too many files have changed in this diff Show More