diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 42962b6..e0842ba 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,7 +1,6 @@ name: Publish Docker image -on: - push +on: push jobs: push_to_registry: @@ -10,22 +9,35 @@ jobs: steps: - name: Check out the repo uses: actions/checkout@v4 - + + - name: Run read-yaml action + id: yaml-data + uses: jbutcher5/read-yaml@1.6 + with: + file: "./matter-bridge/config.yml" + key-path: '["version"]' + + - name: Display read-yaml output + run: echo "${{ steps.yaml-data.outputs.data }}" + - name: Log in to the Container registry - uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + uses: docker/login-action@v3.0.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GHCR }} - + - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + uses: docker/metadata-action@v5 with: images: ghcr.io/${{ github.repository }} - + tags: | + type=raw,value=${{ steps.yaml-data.outputs.data }} + type=raw,value=latest + - name: Build and push Docker image - uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + uses: docker/build-push-action@v5.1.0 with: context: ./matter-bridge file: ./matter-bridge/Dockerfile diff --git a/matter-bridge/src/home-assistant/HAmiddleware.ts b/matter-bridge/src/home-assistant/HAmiddleware.ts index 80817ab..d7f1d85 100644 --- a/matter-bridge/src/home-assistant/HAmiddleware.ts +++ b/matter-bridge/src/home-assistant/HAmiddleware.ts @@ -35,10 +35,10 @@ export class HAMiddleware { subscribe() { this.hassClient.on('state_changed', (event) => { - this.logger.debug(event); + this.logger.debug(JSON.stringify(event)); const toDo = this.functionsToCallOnChange[event.data.entity_id]; if (toDo) { - toDo(event.data); + toDo(event); } }); } @@ -58,7 +58,7 @@ export class HAMiddleware { }, {} ); - this.logger.debug({ getStates: sorted }); + this.logger.debug(JSON.stringify({ getStates: sorted })); this.entities = sorted; return this.entities; } @@ -75,7 +75,9 @@ export class HAMiddleware { prev[key].push(states[current]); return prev; }, {}); - this.logger.debug({ getStatesPartitionedByType: toReturn }); + this.logger.debug( + JSON.stringify({ getStatesPartitionedByType: toReturn }) + ); return toReturn; } diff --git a/matter-bridge/src/mapper/devices/lights/DimmerableLightDevice.ts b/matter-bridge/src/mapper/devices/lights/DimmerableLightDevice.ts index 5147fad..7a06faa 100644 --- a/matter-bridge/src/mapper/devices/lights/DimmerableLightDevice.ts +++ b/matter-bridge/src/mapper/devices/lights/DimmerableLightDevice.ts @@ -19,7 +19,8 @@ export const addDimmerableLightDevice: AddHaDeviceToBridge = ( const device = new DimmableLightDevice( { onOff: haEntity.state === 'on' }, { - currentLevel: Number(haEntity.attributes['brightness']) || null, + currentLevel: + Number(haEntity.attributes['brightness']) / 255 || null, onLevel: 0.1, options: { coupleColorTempToLevel: false, executeIfOff: false }, } @@ -50,6 +51,8 @@ export const addDimmerableLightDevice: AddHaDeviceToBridge = ( haMiddleware.subscrieToDevice( haEntity.entity_id, (event: StateChangedEvent) => { + LOGGER.debug(`Event for device ${haEntity.entity_id}`); + LOGGER.debug(JSON.stringify(event)); device.setOnOff(event.data.new_state?.state === 'on'); device.setCurrentLevel( (event.data.new_state?.attributes as never)['brightness'] diff --git a/matter-bridge/src/mapper/devices/lights/OnOffLightDevice.ts b/matter-bridge/src/mapper/devices/lights/OnOffLightDevice.ts index 5805ceb..5bf67f6 100644 --- a/matter-bridge/src/mapper/devices/lights/OnOffLightDevice.ts +++ b/matter-bridge/src/mapper/devices/lights/OnOffLightDevice.ts @@ -33,6 +33,8 @@ export const addOnOffLightDevice: AddHaDeviceToBridge = ( haMiddleware.subscrieToDevice( haEntity.entity_id, (event: StateChangedEvent) => { + LOGGER.debug(`Event for device ${haEntity.entity_id}`); + LOGGER.debug(JSON.stringify(event)); device.setOnOff(event.data.new_state?.state === 'on'); } );