在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Wirehome.Core:基于.NET Core的开源智能家居系统

Wirehome.Core:基于.NET Core的开源智能家居系统

一般编程问题

下载此实例

实例介绍

【实例简介】
Wirehome.Core是一个专为.NET Core设计的开源智能家居系统。该系统使用C#编写,目标框架为.NET Standard 2.0+,可在Windows、macOS和Linux(例如Raspberry Pi 2 Model B+)上运行。
该系统通过Python编写的适配器与物理智能家居硬件进行交互。这些适配器存放在单独的仓库中,可以下载到Wirehome.Core的本地实例中。Python代码的执行引擎为IronPython。
Python适配器可以访问广泛的模块(Wirehome.API),这些模块提供了对GPIO、I2C、MQTT、HTTP、COAP等的访问。
Wirehome.Core还包括一个功能齐全的MQTT代理和HTTP服务器,可用于托管用户内容或与设备进行交互。
自动化和自定义服务也是用Python编写的。Open Weather Map的集成完全用Python编写,并且可以从官方Wirehome.Repository下载。版本更新也从该仓库分发。
此外,该项目还包括由Wirehome.Core托管的Web App,它几乎可以在所有当前设备上运行,如智能手机、平板电脑、PC等。
【实例截图】
【核心代码】
文件清单
└── Wirehome.Core-c0f178677b93da74dd19af756e68543b5f1d19c8
    ├── Build
    │   └── CreatePackage.ps1
    ├── docs
    │   ├── Commands.md
    │   ├── Configuration.md
    │   ├── _config.yml
    │   ├── ControlTypes.md
    │   ├── Devices.md
    │   ├── drawings
    │   │   ├── ComponentArchitecture.png
    │   │   └── ComponentArchitecture.xml
    │   ├── exampleConfiguration
    │   │   ├── Automations
    │   │   │   ├── bathroom_lower.auto_light
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.auto_light
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.auto_ventilation
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.auto_light
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.lamp_bed_left_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.lamp_bed_right_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.roller_shutter_left_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.roller_shutter_right_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.spots_by_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.lamp_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children1.roller_shutter_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.lamp_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children2.roller_shutter_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── circulation_pump
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.auto_light
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_upper.auto_light_spots
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.auto_light_spots
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.lamp_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.roller_shutter_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.lamp_couch_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.lamp_dining_table_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.lamp_edge_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.door_top_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.tradfri_by_button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── roller_shutter_assistant.bedroom
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── roller_shutter_assistant.children_2
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── roller_shutter_assistant.default
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── stairway.auto_light
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.roller_shutter_buttons
    │   │   │   │   └── Configuration.json
    │   │   │   ├── storeroom.auto_light
    │   │   │   │   └── Configuration.json
    │   │   │   └── storeroom.cat_litter_box_auto_ventilation
    │   │   │       └── Configuration.json
    │   │   ├── ComponentGroups
    │   │   │   ├── bathroom_lower
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── bathroom_lower.lamp.mirror
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_lower.lamp.spots
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_lower.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── bathroom_lower.sensor.temperature
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── bathroom_upper
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── bathroom_upper.fan
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_upper.lamp.cabinet
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_upper.lamp.spots
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_upper.motion_detector
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_upper.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── bathroom_upper.sensor.temperature
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── bedroom
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── bedroom.bed.rgb
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button.bed_left_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button.bed_left_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button.bed_right_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button.bed_right_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button_door
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button_window_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.button_window_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.fan
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.lamp.bed_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.lamp.bed_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.lamp.spots
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.motion_detector
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.roller_shutter_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.roller_shutter_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── bedroom.sensor.temperature
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── children_1
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── children_1.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_1.roller_shutter
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_1.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_1.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_1.socket.wall_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_1.socket.wall_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── children_1.socket.window
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── children_2
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── children_2.button_door
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.roller_shutter
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.socket.wall_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.socket.wall_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── children_2.socket.window
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── floor_lower
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── floor_lower.button.bathroom
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.button.kitchen_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.button.kitchen_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.button.main_door_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.button.main_door_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.button.stairs_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.button.stairs_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.lamp.stairway
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── floor_lower.sensor.temperature
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── floor_upper
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── floor_upper.button
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_upper.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_upper.motion_detector_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_upper.motion_detector_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── floor_upper.stairs
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── garden
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── garden.button.default
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.garage
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.parking_lot
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.pavillion
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.rear_area
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.roof
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.tap
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.lamp.terrace
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── garden.sensor.temperature
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── heating
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── bathroom_lower.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bathroom_upper.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── bedroom.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_1.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── children_2.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── floor_lower.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── garden.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── heating.circulation_pump
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── heating.room_temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── heating.water_source
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── heating.water_temperature.external_tank_1
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── heating.water_temperature.external_tank_2
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── heating.water_temperature.own_tank
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── kitchen.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── office.sensor.temperature
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── kitchen
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── kitchen.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── kitchen.motion_detector
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── kitchen.roller_shutter
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── kitchen.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── kitchen.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── kitchen.socket.kitchenette
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── living_room
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── living_room.button_center
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.button_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.button_passage
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.button_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.lamp.couch
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.lamp.dining_table
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.wall_right_edge_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.wall_right_edge_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.window_center_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.window_left_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.window_left_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.window_right_lower
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── living_room.socket.window_right_upper
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── tradfri.lamp.1
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── tradfri.lamp.2
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── office
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── office.button.door_bottom_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.button.door_bottom_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.button.door_top_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.button.door_top_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.button.edge_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.button.edge_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.motion_detector
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.sensor.humidity
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.sensor.temperature
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.front_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.front_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.rear_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.rear_left_edge
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.rear_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.window_left
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── office.socket.window_right
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── tradfri.lamp.3
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── other
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── shared.sensor.humidity1
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── shared.sensor.temperature1a
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── shared.sensor.temperature1b
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── shared.socket.tasmota1
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── shared.socket.tasmota2
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   ├── stairway
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── stairway.button.entry_door
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── stairway.button.roller_shutter_down
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── stairway.button.roller_shutter_up
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   ├── stairway.lamp
    │   │   │   │   │   │   └── Settings.json
    │   │   │   │   │   └── stairway.roller_shutter
    │   │   │   │   │       └── Settings.json
    │   │   │   │   ├── Configuration.json
    │   │   │   │   └── Settings.json
    │   │   │   └── storeroom
    │   │   │       ├── Components
    │   │   │       │   ├── storeroom.fan.cat_litter_box
    │   │   │       │   │   └── Settings.json
    │   │   │       │   ├── storeroom.lamp
    │   │   │       │   │   └── Settings.json
    │   │   │       │   ├── storeroom.motion_detector
    │   │   │       │   │   └── Settings.json
    │   │   │       │   └── storeroom.motion_detector_cat_litter_box
    │   │   │       │       └── Settings.json
    │   │   │       ├── Configuration.json
    │   │   │       └── Settings.json
    │   │   ├── Components
    │   │   │   ├── bathroom_lower.lamp.mirror
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_lower.lamp.spots
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_lower.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_lower.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_lower.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.fan
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.lamp.cabinet
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.lamp.spots
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bathroom_upper.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.bed.rgb
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.bed_left_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.bed_left_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.bed_right_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.bed_right_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button_door
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.lower_down
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.lower_up
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.upper_down
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button.upper_up
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button_window_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.button_window_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.fan
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.lamp.bed_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.lamp.bed_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.lamp.spots
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.roller_shutter_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.roller_shutter_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── bedroom.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.button_door
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.button.down
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.button.up
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.roller_shutter
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.socket.wall_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.socket.wall_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_1.socket.window
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.button_door
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.button.down
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.button.up
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.roller_shutter
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.socket.wall_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.socket.wall_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── children_2.socket.window
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.bathroom
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.kitchen_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.kitchen_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.main_door_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.main_door_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.stairs_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.button.stairs_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.motion_detector.stairway
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_lower.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_upper.button
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_upper.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_upper.motion_detector_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_upper.motion_detector_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── floor_upper.stairs
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.button.default
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.garage
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.parking_lot
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.pavillion
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.rear_area
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.roof
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.tap
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.lamp.terrace
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── garden.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── heating.circulation_pump
    │   │   │   │   └── Configuration.json
    │   │   │   ├── heating.room_temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── heating.water_source
    │   │   │   │   └── Configuration.json
    │   │   │   ├── heating.water_temperature.external_tank_1
    │   │   │   │   └── Configuration.json
    │   │   │   ├── heating.water_temperature.external_tank_2
    │   │   │   │   └── Configuration.json
    │   │   │   ├── heating.water_temperature.own_tank
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.button_door_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.button.down
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.button_passage_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.button_passage_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.button.up
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.roller_shutter
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.socket.ceiling1
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.socket.ceiling2
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.socket.kitchenette
    │   │   │   │   └── Configuration.json
    │   │   │   ├── kitchen.socket.wall
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.button_center
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.button_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.button_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.lamp.couch
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.lamp.dining_table
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.wall_right_edge_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.wall_right_edge_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.window_center_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.window_left_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.window_left_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.window_right_lower
    │   │   │   │   └── Configuration.json
    │   │   │   ├── living_room.socket.window_right_upper
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.door_bottom_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.door_bottom_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.door_top_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.door_top_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.edge_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.button.edge_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.sensor.humidity
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.sensor.temperature
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.front_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.front_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.rear_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.rear_left_edge
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.rear_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.window_left
    │   │   │   │   └── Configuration.json
    │   │   │   ├── office.socket.window_right
    │   │   │   │   └── Configuration.json
    │   │   │   ├── shared.sensor.humidity1
    │   │   │   │   └── Configuration.json
    │   │   │   ├── shared.sensor.temperature1a
    │   │   │   │   └── Configuration.json
    │   │   │   ├── shared.sensor.temperature1b
    │   │   │   │   └── Configuration.json
    │   │   │   ├── shared.socket.tasmota1
    │   │   │   │   └── Configuration.json
    │   │   │   ├── shared.socket.tasmota2
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.button.entry_door
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.button.roller_shutter_down
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.button.roller_shutter_up
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── stairway.roller_shutter
    │   │   │   │   └── Configuration.json
    │   │   │   ├── storeroom.fan.cat_litter_box
    │   │   │   │   └── Configuration.json
    │   │   │   ├── storeroom.lamp
    │   │   │   │   └── Configuration.json
    │   │   │   ├── storeroom.motion_detector
    │   │   │   │   └── Configuration.json
    │   │   │   ├── storeroom.motion_detector_cat_litter_box
    │   │   │   │   └── Configuration.json
    │   │   │   ├── tradfri.lamp.1
    │   │   │   │   └── Configuration.json
    │   │   │   ├── tradfri.lamp.2
    │   │   │   │   └── Configuration.json
    │   │   │   └── tradfri.lamp.3
    │   │   │       └── Configuration.json
    │   │   ├── Notes.md
    │   │   ├── Services
    │   │   │   ├── service.wirehome.cc_tools.board_manager
    │   │   │   │   └── Configuration.json
    │   │   │   ├── service.wirehome.homebridge_adapter
    │   │   │   │   └── Configuration.json
    │   │   │   ├── service.wirehome.open_weather_map_importer
    │   │   │   │   └── Configuration.json
    │   │   │   └── service.wirehome.tradfri.gateway_manager
    │   │   │       └── Configuration.json
    │   │   └── StartupScripts
    │   │       └── default
    │   │           ├── Configuration.json
    │   │           └── script.py
    │   ├── images
    │   │   ├── app_screen_1.png
    │   │   ├── app_screen_2.png
    │   │   ├── app_screen_3.png
    │   │   ├── cloud128.png
    │   │   ├── gitHubLogo.png
    │   │   ├── icon.png
    │   │   ├── logo256_cloud_square.png
    │   │   ├── logo256_round.png
    │   │   ├── logo256_square.png
    │   │   └── touch-icon.png
    │   ├── Messages.md
    │   ├── Settings.md
    │   └── Status.md
    ├── LICENSE
    ├── README.md
    ├── StartupScripts
    │   ├── rund.sh
    │   └── run.sh
    ├── Wirehome.Cloud
    │   ├── Controllers
    │   │   ├── AccountController.cs
    │   │   ├── AppController.cs
    │   │   ├── ChannelController.cs
    │   │   ├── CloudController.cs
    │   │   └── Models
    │   │       ├── ChannelsModel.cs
    │   │       └── LoginModel.cs
    │   ├── Filters
    │   │   └── DefaultExceptionFilter.cs
    │   ├── Program.cs
    │   ├── Properties
    │   │   └── launchSettings.json
    │   ├── SampleConfiguration
    │   │   ├── CloudServiceConfiguration.json
    │   │   └── Identities
    │   │       └── user@wirehome.com
    │   │           ├── Configuration.json
    │   │           └── Readme.txt
    │   ├── Services
    │   │   ├── Authorization
    │   │   │   └── AuthorizationService.cs
    │   │   ├── DeviceConnector
    │   │   │   ├── ChannelIdentifier.cs
    │   │   │   ├── DeviceConnectorService.cs
    │   │   │   ├── OpenChannel.cs
    │   │   │   └── OpenChannelNotFoundException.cs
    │   │   └── Repository
    │   │       ├── Entities
    │   │       │   ├── AccessTokenEntity.cs
    │   │       │   ├── AllowedIdentityEntity.cs
    │   │       │   ├── ChannelEntity.cs
    │   │       │   └── IdentityEntity.cs
    │   │       └── RepositoryService.cs
    │   ├── Startup.cs
    │   ├── Views
    │   │   ├── Account
    │   │   │   └── Index.cshtml
    │   │   ├── Channel
    │   │   │   ├── DeviceNotConnected.cshtml
    │   │   │   └── Index.cshtml
    │   │   └── Layout.cshtml
    │   ├── Wirehome.Cloud.csproj
    │   └── wwwroot
    │       ├── app
    │       │   ├── icon.png
    │       │   └── touch-icon.png
    │       ├── images
    │       │   └── Banner.png
    │       ├── jquery
    │       │   └── jquery-3.3.1.min.js
    │       ├── semantic-ui
    │       │   ├── LICENSE
    │       │   ├── semantic.min.css
    │       │   ├── semantic.min.js
    │       │   └── themes
    │       │       └── default
    │       │           └── assets
    │       │               ├── fonts
    │       │               │   ├── brand-icons.eot
    │       │               │   ├── brand-icons.svg
    │       │               │   ├── brand-icons.ttf
    │       │               │   ├── brand-icons.woff
    │       │               │   ├── brand-icons.woff2
    │       │               │   ├── icons.eot
    │       │               │   ├── icons.otf
    │       │               │   ├── icons.svg
    │       │               │   ├── icons.ttf
    │       │               │   ├── icons.woff
    │       │               │   ├── icons.woff2
    │       │               │   ├── outline-icons.eot
    │       │               │   ├── outline-icons.svg
    │       │               │   ├── outline-icons.ttf
    │       │               │   ├── outline-icons.woff
    │       │               │   └── outline-icons.woff2
    │       │               └── images
    │       │                   └── flags.png
    │       └── style.css
    ├── Wirehome.Core
    │   ├── App
    │   │   ├── AppPanelDefinition.cs
    │   │   ├── AppService.cs
    │   │   └── AppServicePythonProxy.cs
    │   ├── Backup
    │   │   └── BackupService.cs
    │   ├── Cloud
    │   │   ├── Channel
    │   │   │   ├── ConnectorChannel.cs
    │   │   │   ├── ConnectorChannelOptions.cs
    │   │   │   ├── ConnectorChannelReceiveResult.cs
    │   │   │   └── ConnectorChannelStatistics.cs
    │   │   ├── CloudServiceConfiguration.cs
    │   │   ├── CloudService.cs
    │   │   ├── CloudServicePythonProxy.cs
    │   │   ├── Protocol
    │   │   │   ├── CloudCookieNames.cs
    │   │   │   ├── CloudHeaderNames.cs
    │   │   │   ├── CloudMessage.cs
    │   │   │   ├── CloudMessageFactory.cs
    │   │   │   ├── CloudMessageSerializer.cs
    │   │   │   ├── CloudMessageType.cs
    │   │   │   ├── Content
    │   │   │   │   ├── ExceptionCloudMessageContent.cs
    │   │   │   │   ├── HttpRequestCloudMessageContent.cs
    │   │   │   │   └── HttpResponseCloudMessageContent.cs
    │   │   │   └── TransportCloudMessage.cs
    │   │   └── RawCloudMessageHandler.cs
    │   ├── Components
    │   │   ├── Adapters
    │   │   │   ├── EmptyComponentAdapter.cs
    │   │   │   ├── IComponentAdapter.cs
    │   │   │   └── ScriptComponentAdapter.cs
    │   │   ├── Component.cs
    │   │   ├── ComponentInitializer.cs
    │   │   ├── ComponentPythonProxy.cs
    │   │   ├── ComponentRegistryMessageBusAdapter.cs
    │   │   ├── ComponentRegistryService.cs
    │   │   ├── ComponentRegistryServicePythonProxy.cs
    │   │   ├── ComponentStatusChangedEventArgs.cs
    │   │   ├── ComponentStatusChangingEventArgs.cs
    │   │   ├── Configuration
    │   │   │   ├── ComponentAdapterConfiguration.cs
    │   │   │   ├── ComponentConfiguration.cs
    │   │   │   └── ComponentLogicConfiguration.cs
    │   │   ├── Exceptions
    │   │   │   ├── ComponentGroupNotFoundException.cs
    │   │   │   └── ComponentNotFoundException.cs
    │   │   ├── Groups
    │   │   │   ├── ComponentGroupAssociation.cs
    │   │   │   ├── ComponentGroupConfiguration.cs
    │   │   │   ├── ComponentGroup.cs
    │   │   │   └── ComponentGroupRegistryService.cs
    │   │   ├── History
    │   │   │   ├── ComponentHistoryService.cs
    │   │   │   ├── ComponentHistoryServiceOptions.cs
    │   │   │   └── ComponentStatusHistoryWorkItem.cs
    │   │   ├── Logic
    │   │   │   ├── EmptyLogic.cs
    │   │   │   ├── IComponentLogic.cs
    │   │   │   └── ScriptComponentLogic.cs
    │   │   └── SetValueResult.cs
    │   ├── Constants
    │   │   ├── ControlType.cs
    │   │   ├── GlobalVariableUids.cs
    │   │   └── NotificationResourceUids.cs
    │   ├── Contracts
    │   │   └── WirehomeCoreService.cs
    │   ├── Devices
    │   │   ├── BuiltInDevicePropertyNames.cs
    │   │   ├── Device.cs
    │   │   ├── DeviceProperty.cs
    │   │   ├── DeviceRegistryService.cs
    │   │   ├── DeviceRegistryServicePythonProxy.cs
    │   │   ├── DeviceRepository.cs
    │   │   └── Exceptions
    │   │       └── DeviceNotFoundException.cs
    │   ├── Diagnostics
    │   │   ├── DiagnosticsService.cs
    │   │   ├── Log
    │   │   │   ├── LogEntry.cs
    │   │   │   ├── LogEntryFilter.cs
    │   │   │   ├── LogReceiver.cs
    │   │   │   ├── LogSender.cs
    │   │   │   ├── LogService.cs
    │   │   │   ├── LogServiceLogger.cs
    │   │   │   ├── LogServiceLoggerProvider.cs
    │   │   │   └── LogServiceOptions.cs
    │   │   ├── OperationsPerSecondCounter.cs
    │   │   ├── SystemStatusPythonProxy.cs
    │   │   └── SystemStatusService.cs
    │   ├── Exceptions
    │   │   ├── ConfigurationException.cs
    │   │   ├── HardwareException.cs
    │   │   ├── NotFoundException.cs
    │   │   └── WirehomeException.cs
    │   ├── Extensions
    │   │   ├── ArraySegmentExtensions.cs
    │   │   ├── DictionaryExtensions.cs
    │   │   ├── ParallelTask.cs
    │   │   ├── Reflection.cs
    │   │   ├── StreamExtensions.cs
    │   │   └── TaskExtensions.cs
    │   ├── Foundation
    │   │   ├── AsyncLock.cs
    │   │   ├── Model
    │   │   │   └── WirehomeConvert.cs
    │   │   └── ThreadSafeDictionary.cs
    │   ├── FunctionPool
    │   │   ├── FunctionPoolService.cs
    │   │   └── FunctionPoolServicePythonProxy.cs
    │   ├── GlobalVariables
    │   │   ├── GlobalVariablesService.cs
    │   │   └── GlobalVariablesServicePythonProxy.cs
    │   ├── Hardware
    │   │   ├── CoAP
    │   │   │   └── CoapServicePythonProxy.cs
    │   │   ├── GPIO
    │   │   │   ├── Adapters
    │   │   │   │   ├── GpioAdapterStateChangedEventArgs.cs
    │   │   │   │   ├── Gpio.cs
    │   │   │   │   ├── GpioInterruptMonitor.cs
    │   │   │   │   ├── GpioStateChangedEventArgs.cs
    │   │   │   │   ├── IGpioAdapter.cs
    │   │   │   │   ├── LinuxGpioAdapter.cs
    │   │   │   │   └── TestGpioAdapter.cs
    │   │   │   ├── GpioDirection.cs
    │   │   │   ├── GpioInterruptEdge.cs
    │   │   │   ├── GpioRegistryService.cs
    │   │   │   ├── GpioRegistryServicePythonProxy.cs
    │   │   │   ├── GpioState.cs
    │   │   │   ├── Interrupt.cs
    │   │   │   └── InterruptEvent.cs
    │   │   ├── I2C
    │   │   │   ├── Adapters
    │   │   │   │   ├── II2CBusAdapter.cs
    │   │   │   │   ├── LinuxI2CBusAdapter.cs
    │   │   │   │   ├── LiveI2CBusAdapter.cs
    │   │   │   │   ├── SafeNativeMethods.cs
    │   │   │   │   └── TestI2CBusAdapter.cs
    │   │   │   ├── I2CBusService.cs
    │   │   │   └── I2CBusServicePythonProxy.cs
    │   │   └── MQTT
    │   │       ├── BlockedMqttMessage.cs
    │   │       ├── IncomingMqttMessage.cs
    │   │       ├── LoggerAdapter.cs
    │   │       ├── MqttImportTopicParameters.cs
    │   │       ├── MqttPublishParameters.cs
    │   │       ├── MqttRetainedMessageModel.cs
    │   │       ├── MqttServerStorage.cs
    │   │       ├── MqttService.cs
    │   │       ├── MqttServiceOptions.cs
    │   │       ├── MqttServicePythonProxy.cs
    │   │       ├── MqttSubscriber.cs
    │   │       ├── MqttTopicImporter.cs
    │   │       └── MqttTopicImportManager.cs
    │   ├── History
    │   │   ├── Extract
    │   │   │   ├── HistoryExtractBuilder.cs
    │   │   │   ├── HistoryExtract.cs
    │   │   │   ├── HistoryExtractDataPoint.cs
    │   │   │   └── HistoryExtractDataType.cs
    │   │   ├── HistoryService.cs
    │   │   ├── HistoryServiceOptions.cs
    │   │   ├── HistoryServicePythonProxy.cs
    │   │   ├── HistoryUpdateOperation.cs
    │   │   ├── HistoryValueFormatter.cs
    │   │   ├── HistoryValueFormatterOptions.cs
    │   │   ├── HistoryValueFormatterOptionsFactory.cs
    │   │   └── Repository
    │   │       ├── BeginToken.cs
    │   │       ├── DayPath.cs
    │   │       ├── EndToken.cs
    │   │       ├── HistoryReadOperation.cs
    │   │       ├── HistoryRepository.cs
    │   │       ├── HistoryRepositoryUpdateOperation.cs
    │   │       ├── HistorySettingName.cs
    │   │       ├── HistoryValueElement.cs
    │   │       ├── HistoryValuesStream.cs
    │   │       ├── HistoryValueStreamSerializer.cs
    │   │       ├── Token.cs
    │   │       └── ValueToken.cs
    │   ├── HTTP
    │   │   ├── Controllers
    │   │   │   ├── AppController.cs
    │   │   │   ├── BackupController.cs
    │   │   │   ├── CloudController.cs
    │   │   │   ├── ComponentGroupsController.cs
    │   │   │   ├── ComponentsController.cs
    │   │   │   ├── DevicesController.cs
    │   │   │   ├── FirmwareController.cs
    │   │   │   ├── FunctionPoolController.cs
    │   │   │   ├── GlobalVariablesController.cs
    │   │   │   ├── GpioController.cs
    │   │   │   ├── HistoryController.cs
    │   │   │   ├── I2CController.cs
    │   │   │   ├── LogController.cs
    │   │   │   ├── MacrosController.cs
    │   │   │   ├── MessageBusController.cs
    │   │   │   ├── Models
    │   │   │   │   ├── ActiveCountdownModel.cs
    │   │   │   │   ├── ActiveThreadModel.cs
    │   │   │   │   ├── ActiveTimerModel.cs
    │   │   │   │   ├── MessageBusSubscriberModel.cs
    │   │   │   │   └── MqttSubscriberModel.cs
    │   │   │   ├── MqttController.cs
    │   │   │   ├── NotesController.cs
    │   │   │   ├── NotificationsController.cs
    │   │   │   ├── PackageManagerController.cs
    │   │   │   ├── PythonApiController.cs
    │   │   │   ├── PythonScratchpadController.cs
    │   │   │   ├── ResourcesController.cs
    │   │   │   ├── SchedulerController.cs
    │   │   │   ├── ServicesController.cs
    │   │   │   ├── StartupScriptsController.cs
    │   │   │   ├── StorageController.cs
    │   │   │   ├── SystemController.cs
    │   │   │   ├── ToolsController.cs
    │   │   │   ├── ValueStorageController.cs
    │   │   │   └── WirehomeControllerFeatureProvider.cs
    │   │   ├── Filters
    │   │   │   ├── BinaryContentAttribute.cs
    │   │   │   ├── BinaryContentFilter.cs
    │   │   │   └── DefaultExceptionFilterAttribute.cs
    │   │   ├── HttpRequestConverter.cs
    │   │   ├── HttpServerService.cs
    │   │   ├── PackageFileProvider.cs
    │   │   ├── PythonProxies
    │   │   │   ├── HttpClientPythonProxy.cs
    │   │   │   ├── HttpRequestInterceptor.cs
    │   │   │   └── HttpServerPythonProxy.cs
    │   │   └── Startup.cs
    │   ├── Licenses.txt
    │   ├── Macros
    │   │   ├── Configuration
    │   │   │   ├── MacroActionConfiguration.cs
    │   │   │   ├── MacroConfiguration.cs
    │   │   │   └── SendComponentMessageMacroActionConfiguration.cs
    │   │   ├── Exceptions
    │   │   │   └── MacroNotFoundException.cs
    │   │   ├── MacroInstance.cs
    │   │   ├── MacroRegistryMessageBusWrapper.cs
    │   │   ├── MacroRegistryService.cs
    │   │   └── MacroRegistryServicePythonProxy.cs
    │   ├── MessageBus
    │   │   ├── MessageBusFilterComparer.cs
    │   │   ├── MessageBusMessage.cs
    │   │   ├── MessageBusMessageHistory.cs
    │   │   ├── MessageBusSender.cs
    │   │   ├── MessageBusService.cs
    │   │   ├── MessageBusServicePythonProxy.cs
    │   │   └── MessageBusSubscriber.cs
    │   ├── Notifications
    │   │   ├── Notification.cs
    │   │   ├── NotificationsService.cs
    │   │   ├── NotificationsServiceOptions.cs
    │   │   ├── NotificationsServicePythonProxy.cs
    │   │   ├── NotificationType.cs
    │   │   └── PublishFromResourceParameters.cs
    │   ├── Packages
    │   │   ├── Exceptions
    │   │   │   ├── WirehomePackageException.cs
    │   │   │   └── WirehomePackageNotFoundException.cs
    │   │   ├── GitHub
    │   │   │   ├── GitHubItem.cs
    │   │   │   └── GitHubRepositoryPackageDownloader.cs
    │   │   ├── Package.cs
    │   │   ├── PackageManagerService.cs
    │   │   ├── PackageManagerServiceOptions.cs
    │   │   ├── PackageManagerServicePythonProxy.cs
    │   │   ├── PackageMetaData.cs
    │   │   └── PackageUid.cs
    │   ├── Python
    │   │   ├── Exceptions
    │   │   │   └── PythonProxyException.cs
    │   │   ├── IInjectedPythonProxy.cs
    │   │   ├── IPythonConvertible.cs
    │   │   ├── IPythonProxy.cs
    │   │   ├── Models
    │   │   │   └── ExceptionPythonModel.cs
    │   │   ├── Proxies
    │   │   │   ├── ConverterPythonProxy.cs
    │   │   │   ├── DebuggerPythonProxy.cs
    │   │   │   ├── LogPythonProxy.cs
    │   │   │   ├── OS
    │   │   │   │   ├── ExecuteResult.cs
    │   │   │   │   ├── LaunchParamters.cs
    │   │   │   │   ├── LaunchResult.cs
    │   │   │   │   └── OSPythonProxy.cs
    │   │   │   ├── ResponseCreatorPythonProxy.cs
    │   │   │   ├── ResponseValidatorPythonProxy.cs
    │   │   │   └── StopwatchPythonProxy.cs
    │   │   ├── PythonConvert.cs
    │   │   ├── PythonDelegates.cs
    │   │   ├── PythonEngineService.cs
    │   │   ├── PythonIOStream.cs
    │   │   ├── PythonProxyFactory.cs
    │   │   ├── PythonProxyReferenceGenerator.cs
    │   │   ├── PythonScriptHost.cs
    │   │   └── PythonScriptHostFactoryService.cs
    │   ├── Resources
    │   │   ├── Exceptions
    │   │   │   └── ResourceNotFoundException.cs
    │   │   ├── ResourceService.cs
    │   │   └── ResourceServicePythonProxy.cs
    │   ├── Resources.json
    │   ├── Scheduler
    │   │   ├── ActiveCountdown.cs
    │   │   ├── ActiveThread.cs
    │   │   ├── ActiveTimer.cs
    │   │   ├── CountdownElapsedParameters.cs
    │   │   ├── SchedulerService.cs
    │   │   ├── SchedulerServicePythonProxy.cs
    │   │   ├── StartThreadCallbackParameters.cs
    │   │   └── TimerTickCallbackParameters.cs
    │   ├── ServiceHost
    │   │   ├── Configuration
    │   │   │   └── ServiceConfiguration.cs
    │   │   ├── Exceptions
    │   │   │   ├── ServiceNotFoundException.cs
    │   │   │   └── ServiceNotStartedException.cs
    │   │   ├── ServiceHostService.cs
    │   │   ├── ServiceHostServicePythonProxy.cs
    │   │   └── ServiceInstance.cs
    │   ├── Storage
    │   │   ├── DefaultDirectoryNames.cs
    │   │   ├── DefaultFilenames.cs
    │   │   ├── JsonSerializerService.cs
    │   │   ├── RelativeValueStoragePath.cs
    │   │   ├── StoragePaths.cs
    │   │   ├── StorageService.cs
    │   │   ├── ValueStoragePythonProxy.cs
    │   │   └── ValueStorageService.cs
    │   ├── System
    │   │   ├── StartupScripts
    │   │   │   ├── StartupScriptConfiguration.cs
    │   │   │   ├── StartupScriptInstance.cs
    │   │   │   ├── StartupScriptNotFoundException.cs
    │   │   │   └── StartupScriptsService.cs
    │   │   ├── SystemCancellationToken.cs
    │   │   ├── SystemLaunchArguments.cs
    │   │   └── SystemService.cs
    │   ├── Wirehome.Core.csproj
    │   ├── WirehomeCoreHost.cs
    │   └── WirehomeCoreVersion.cs
    ├── Wirehome.Core.Hosts.Console
    │   ├── Program.cs
    │   └── Wirehome.Core.Hosts.Console.csproj
    ├── Wirehome.sln
    ├── Wirehome.sln.DotSettings
    └── Wirehome.Tests
        ├── History
        │   ├── HistoryExtractTests.cs
        │   └── HistoryValuesStreamTests.cs
        ├── MessageBus
        │   └── MessageBusFilterComparerTests.cs
        ├── Model
        │   └── WirehomeDictionaryTests.cs
        ├── Python
        │   └── PythonConverterTests.cs
        └── Wirehome.Tests.csproj

462 directories, 731 files

标签:

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警