Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 3.8.10

- Added new fields on `InboundProtocol` and `Model` to support Zigbee and ConfIoT related configurations

## 3.8.9

- Added new value `NFE_CHANGED` in `AtsPurchaseOrderStatus` enum
Expand Down
1 change: 1 addition & 0 deletions lib/src/inbound/inbound.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion lib/src/inbound/src/enums.dart
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ enum ConfigSource {
/// [unknown] refers that the command definition is unknown.
/// Layrz API Definition: `UNKNOWN`
@JsonValue('UNKNOWN')
unknown;
unknown
;

@override
String toString() => toJson();
Expand Down Expand Up @@ -181,6 +182,10 @@ enum OperationMode {
@JsonValue('PERIPHERAL')
peripheral,

/// Zigbee operation mode
@JsonValue('ZIGBEE')
zigbee,

/// [unknown] is the default value for the operation mode.
@JsonValue('UNKNOWN')
unknown,
Expand Down
2 changes: 2 additions & 0 deletions lib/src/models/models.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ library;

import 'package:collection/collection.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:layrz_icons/layrz_icons.dart';
import 'package:layrz_models/layrz_models.dart';

part 'models.freezed.dart';
Expand All @@ -11,3 +12,4 @@ part 'src/model.dart';
part 'src/hw_model.dart';
part 'src/firmware_build.dart';
part 'src/firmware_branch.dart';
part 'src/widget.dart';
50 changes: 30 additions & 20 deletions lib/src/models/models.freezed.dart

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions lib/src/models/models.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions lib/src/models/src/model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ abstract class Model with _$Model {

/// [firmwares] is the list of firmwares for the model.
@Default([]) List<FirmwareBuild> firmwares,

/// The icon of the model, if not exists, you must render the protocol icon
@IconOrNullConverter() LayrzIcon? icon,

/// Indicates the rendering widget, useful to render visually the kind of device
@JsonKey(unknownEnumValue: RenderWidget.unknown) @Default(RenderWidget.unknown) RenderWidget widget,
}) = _Model;

factory Model.fromJson(Map<String, dynamic> json) => _$ModelFromJson(json);
Expand Down
106 changes: 106 additions & 0 deletions lib/src/models/src/widget.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
part of '../models.dart';

@JsonEnum(alwaysCreate: true)
enum RenderWidget {
/// Renders a Thermometer
@JsonValue('THERMOMETER')
thermometer,

/// Renders a Humidity display
@JsonValue('HUMIDITY')
humidity,

/// Renders a Pressure display
@JsonValue('PRESSURE')
pressure,

/// Renders an Illuminance display
@JsonValue('ILLUMINANCE')
illuminance,

/// Renders an Air Quality / CO2 display
@JsonValue('AIR_QUALITY')
airQuality,

/// Renders a Battery level display
@JsonValue('BATTERY')
battery,

/// Renders a Link Quality (LQI) display
@JsonValue('LINK_QUALITY')
linkQuality,

/// Renders a read-only binary state indicator
@JsonValue('BINARY_SENSOR')
binarySensor,

/// Renders a Switch
@JsonValue('SWITCH')
switch_,

/// Renders a Dimmer slider
@JsonValue('DIMMER')
dimmer,

/// Renders a Color Temperature slider
@JsonValue('COLOR_TEMPERATURE')
colorTemperature,

/// Renders a Thermostat Setpoint slider
@JsonValue('SETPOINT')
setpoint,

/// Renders a Fan Speed slider
@JsonValue('FAN_SPEED')
fanSpeed,

/// Renders an RGB/RGBW Color Picker
@JsonValue('COLOR_PICKER')
colorPicker,

/// Renders a Mode Selector (e.g. heat/cool/auto)
@JsonValue('MODE_SELECTOR')
modeSelector,

/// Renders a Scene Selector
@JsonValue('SCENE_SELECTOR')
sceneSelector,

/// Renders a Cover/Blind control (open, close, stop, position)
@JsonValue('COVER')
cover,

/// Renders a Lock/Unlock control
@JsonValue('LOCK')
lock,

/// Renders a Power display (Watts)
@JsonValue('POWER_METER')
powerMeter,

/// Renders an Energy display (kWh)
@JsonValue('ENERGY_METER')
energyMeter,

/// Renders a Voltage display (V)
@JsonValue('VOLTAGE')
voltage,

/// Renders a Current display (A)
@JsonValue('CURRENT')
current,

/// Unknown render widget
@JsonValue('UNKNOWN')
unknown,
;

@override
String toString() => toJson();
String toJson() => _$RenderWidgetEnumMap[this] ?? 'UNKNOWN';

static RenderWidget fromJson(String json) {
final found = _$RenderWidgetEnumMap.entries.firstWhereOrNull((e) => e.value == json);
return found?.key ?? RenderWidget.unknown;
}
}
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
description: Layrz API models for Dart/Flutter. This package contains the models
used by the Layrz API.
name: layrz_models
version: "3.8.9"
version: "3.8.10"
repository: https://github.com/goldenm-software/layrz_models

environment:
Expand Down
Loading