Skip to content
This repository has been archived by the owner on Nov 19, 2024. It is now read-only.

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
willie68 committed May 30, 2021
2 parents 8b1a3a4 + b48e054 commit 05426be
Show file tree
Hide file tree
Showing 78 changed files with 26,448 additions and 70 deletions.
23 changes: 16 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,37 @@
**/vendor/*

service/sensorlist.txt

service/cmd/__debug_bin

**/node_modules/**

3rd party/openhardwaremonitor-v0.9.6/OpenHardwareMonitor/

3rd party/open-cue-service/

webclient/RecosUI/public/assets/

webclient/recosadmin/public/assets/

*.syso

*.bak

service/devdata/sessions/sessions/


*.log

service/web/webadmin/
service/web/webclient/

service/recos-service.zip

integrations/**/.vs/
integrations/**/bin/
integrations/**/obj/
integrations/**/packages/
integrations/**/publish/
swagger/swagger-editor/

3rd party/PSTools/

integrations/streamdeck/StreamDeckService.2.zip

integrations/streamdeck/StreamDeckService.zip

3rd party/PSTools.zip
109 changes: 109 additions & 0 deletions 3rd party/swagger/swagger.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
servers:
- url: http://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time (max 100)
required: false
schema:
type: integer
format: int32
responses:
200:
description: An paged array of pets
headers:
x-next:
description: A link to the next page of responses
schema:
type: string
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: Create a pet
operationId: createPets
tags:
- pets
responses:
201:
description: Null response
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: string
responses:
200:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
components:
schemas:
Pet:
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Pets:
type: array
items:
$ref: "#/components/schemas/Pet"
Error:
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
43 changes: 29 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ For the normal execution client please use http://localhost:9280/webclient. On o

# ReCoS Client - Web Client Interface

This is the ReCoS web client. After successful installation you can access it with
This is the main ReCoS web client for executing the configured commands. After successful installation you can access it with
http://localhost:9280/webclient on the same computer.

<img src="documentation/assets/webclient.png" alt="webclient" style="zoom:50%;" />

The client has a small toolbar and a big area, presenting the different actions. But let us start at the very beginning. First, everything is organized in a **profile**. You can have different profiles for different clients, or different scenarios. One client can only present one profile at a time, but you can have different profiles in different browser open. As an example, you can have a special profile for your Phone and another for the Pad and a really big one for the PC. And all can be active at the same time. But to emphasize again, you can of course also operate the same profile on 2 different devices at the same time. When starting the client, the first profile is selected. You can select profiles using the Profile Combobox.
The client has a small toolbar and a big button area, presenting the different actions. But let us start at the very beginning. First, everything is organized in a **profile**. You can have different profiles for different clients, or different scenarios. One client can only present one profile at a time, but you can have different profiles in different browser open. As an example, you can have a special profile for your Phone and another for the Pad and a really big one for the PC. And all can be active at the same time. But to emphasize again, you can of course also operate the same profile on 2 different devices at the same time. When starting the client, the first profile is selected. You can select profiles using the Profile Combobox.

Each profile has different **pages** for further structuring. When the client starts, the first page is automatically selected. A page then consists of rows and columns. You can set the size in the Admin Client. The more rows and columns you have, the smaller the individual actions become. The page adapts its actions to the possible space. Pages can be changed directly via the toolbar (shown as buttons) or via special actions. Whether a page appears at the top of the bar can be set in the page configuration. If the page has no icon, only the name is displayed.

Expand Down Expand Up @@ -499,7 +499,9 @@ Just a clock in different designs.
`dateformat`: the format of the date in Golang format syntax, used by different designs, defaults: 02.01
`analog`: true or false, shows an analog clock
`timezone`: string with the name of the timezone of the IANA Timezone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
`design`: the desing of the clock. `analog` is for a analog clock, `digital` showing a nice digital clock, `berlin` is showing the berlin clock (https://en.wikipedia.org/wiki/Mengenlehreuhr).
`design`: the design of the clock. `analog` is for a analog clock, `digital` showing a nice digital clock, `berlin` is showing the berlin clock (https://en.wikipedia.org/wiki/Mengenlehreuhr).
There is another Berlin clock, called `berlin2`, which is created in svg format. It's usually better for smaller resolutions.

`showseconds`: showing the seconds in the design.
`showdate`: showing the date in the design formatted with dateformat.
`color`: the color of the segments of the digital clock
Expand Down Expand Up @@ -1117,6 +1119,16 @@ Parameter:

# Installing 3'rd Party products

For other 3'rd party products there is an so called integration for accessing the different parts. Here you can find some remarks on these integration.

## Elagto Streamdeck (c)

The stream deck integration instrumented an Elgato streamdeck for the ReCoS system. Since only one application can access the hardware, it is necessary that you deactivate and close the original streamdeck application. You can then simply activate the streamdeck integration in the section settings in the admin client.

<img src="documentation/assets/sd_1.png" alt="sd_1" style="zoom: 50%;" />

The second parameter is optional. You can add here the profile, the streamdeck will present. But there are defaults for it. For a normal streamdeck (15 Button version, no matter whether revision 1 or 2) the default profile is called `streamdeck`. A profile with the name `streamdeck_mini` is expected for the Streamdeck mini. The `streamdeck_xl` profile is expected for the XL. The following applies to all three, if the profile is not found and no profile is specified, the `default` profile is used. So that the profiles in the surface correspond to the display in the stream deck, you should create the rows and columns accordingly. For the normal stream deck the configuration is 3x5 (rows / cols) for the Mini 2x3 and for the XL 4x8. Other profile configurations also work, but it is possible that not all buttons are displayed on the stream deck or that they remain empty.

## Installation of OpenHardwareMonitor

For hardware sensor reading ReCoS relies on the OpenHardwareMonitor Software. (https://openhardwaremonitor.org/) To get use of it, simply install the software. After installation, go to Option/Remote Web Server/Port.
Expand Down Expand Up @@ -1178,26 +1190,29 @@ In the `extconfig:` area, the area for `philipshue` must now be changed. Please

```yaml
extconfig:
philipshue:
username: IwtURJmST8b44mvZSZ2nl73nZhghVltMvgzlH7UC
device: recos#hue_user
ipaddress: 192.168.178.81
updateperiod: 5
philipshue:
username: IwtURJmST8b44mvZSZ2nl73nZhghVltMvgzlH7UC
device: recos#hue_user
ipaddress: 192.168.178.81
updateperiod: 5
```

## Homematic

For using the Hometmatic system for commands, you simply have to do 2 Things:
First add the url of your homematic system in the system config (sceleton is already there) and set the active state to true:
homematic:
active: **true**
updateperiod: 5
url: **http://192.168.178.80**

```yaml
extconfig:
homematic:
active: true
updateperiod: 5
url: http://192.168.178.80
```

Second you have to add the xmlapi addon to your homematic.
https://github.com/homematic-community/XML-API

Thats all.

# Thanks

Thanks goes to iconshock for the great icons set.
7 changes: 7 additions & 0 deletions build_all.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ call build.cmd
cd ..
cd ..

echo build streamdeck integration
cd integrations\streamdeck\StreamDeckService
call build.cmd
cd ..
cd ..
cd ..

echo build service binaries
cd service
call deployments\build.cmd
Expand Down
Binary file modified documentation/README.pdf
Binary file not shown.
Binary file added documentation/assets/sd_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added general/sd_logo.ico
Binary file not shown.
Loading

0 comments on commit 05426be

Please sign in to comment.