Exemple #1
0
        public M3App(IHaContext ha)
        {
            Ha = ha;

            // Ha.CallService("notify", "persistent_notification", new { message = "Hello", title = "Yay it works in HassModel via HaContext" }, true);;

            _climateEntity = new ClimateEntity(ha, "climate.dummy_thermostat");

            _climateEntity.StateAllChanges().Where(e => e.New?.Attributes?.Temperature > 20).Subscribe();
            _climateEntity.StateAllChanges().Subscribe(OnNext);

            string?  state       = _climateEntity.State;
            string?  state2      = _climateEntity.EntityState?.State; // is the same
            DateTime?lastChanged = _climateEntity.EntityState?.LastChanged;

            Ha.StateChanges().Subscribe(e =>
            {
            });

            // Entity that has not changed yet is retrieved on demand
            var zone = new ZoneEntity(Ha, "zone.home");

            var lat = zone.Attributes?.latitude;

            var netEnergySensor = new NumericSensorEntity(Ha, "sensor.netto_energy");
            // NumericSensor has double? as state
            double?netEnergy  = netEnergySensor.State;
            double?netEnergy2 = netEnergySensor.EntityState?.State;

            netEnergySensor.StateChanges().Subscribe(e =>
                                                     Console.WriteLine($"{e.New?.Attributes?.FriendlyName} {e.New?.State} {e.New?.Attributes?.UnitOfMeasurement}"));

            // Prints: 'Netto energy 8908.81 kWh'
        }
Exemple #2
0
 public static IObservable <StateChange <NumericSensorEntity, NumericEntityState <NumericSensorAttributes> > > StateAllChangesWithCurrent(this NumericSensorEntity entity)
 {
     return(entity.StateAllChangesWithCurrent <NumericSensorEntity, NumericEntityState <NumericSensorAttributes>, NumericSensorAttributes>());
 }