PyViCare 2.55.0__tar.gz → 2.56.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {pyvicare-2.55.0 → pyvicare-2.56.0}/PKG-INFO +1 -1
  2. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareFuelCell.py +16 -16
  3. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareGateway.py +2 -2
  4. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareHeatPump.py +147 -4
  5. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareHeatingDevice.py +4 -0
  6. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareVentilationDevice.py +4 -0
  7. {pyvicare-2.55.0 → pyvicare-2.56.0}/pyproject.toml +1 -1
  8. {pyvicare-2.55.0 → pyvicare-2.56.0}/LICENSE +0 -0
  9. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/Feature.py +0 -0
  10. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCare.py +0 -0
  11. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareAbstractOAuthManager.py +0 -0
  12. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareBrowserOAuthManager.py +0 -0
  13. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareCachedService.py +0 -0
  14. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareDevice.py +0 -0
  15. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareDeviceConfig.py +0 -0
  16. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareElectricalEnergySystem.py +0 -0
  17. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareFloorHeating.py +0 -0
  18. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareGazBoiler.py +0 -0
  19. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareHeatCurveCalculation.py +0 -0
  20. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareHybrid.py +0 -0
  21. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareOAuthManager.py +0 -0
  22. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareOilBoiler.py +0 -0
  23. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCarePelletsBoiler.py +0 -0
  24. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareRadiatorActuator.py +0 -0
  25. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareRepeater.py +0 -0
  26. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareRoomSensor.py +0 -0
  27. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareService.py +0 -0
  28. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/PyViCareUtils.py +0 -0
  29. {pyvicare-2.55.0 → pyvicare-2.56.0}/PyViCare/__init__.py +0 -0
  30. {pyvicare-2.55.0 → pyvicare-2.56.0}/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyViCare
3
- Version: 2.55.0
3
+ Version: 2.56.0
4
4
  Summary: Library to communicate with the Viessmann ViCare API.
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -192,9 +192,9 @@ class FuelCell(HeatingDevice):
192
192
  return self.getProperty("heating.fuelCell.power.production")["properties"]["year"]["value"][0]
193
193
 
194
194
  @handleNotSupported
195
- def getFuelCellOperatingPhase(self):
195
+ def getFuelCellOperatingPhase(self) -> str:
196
196
  # Returns current operating phase as string, e.g. "standby" or "generation"
197
- return self.getProperty("heating.fuelCell.operating.phase")["properties"]["value"]["value"]
197
+ return str(self.getProperty("fuelCell.operating.phase")["properties"]["value"]["value"])
198
198
 
199
199
  @handleNotSupported
200
200
  def getFuelCellPowerProductionCurrentUnit(self):
@@ -257,39 +257,39 @@ class FuelCell(HeatingDevice):
257
257
  return self.getProperty("heating.power.sold.cumulative")["properties"]["value"]["value"]
258
258
 
259
259
  @handleNotSupported
260
- def getFuelCellFlowReturnTemperatureUnit(self):
260
+ def getFuelCellFlowReturnTemperatureUnit(self) -> str:
261
261
  # Returns flow return temperature unit, e.g. "celsius"
262
- return self.getProperty("heating.fuelCell.sensors.temperature.return")["properties"]["value"]["unit"]
262
+ return str(self.getProperty("fuelCell.sensors.temperature.return")["properties"]["value"]["unit"])
263
263
 
264
264
  @handleNotSupported
265
- def getFuelCellFlowReturnTemperature(self):
265
+ def getFuelCellFlowReturnTemperature(self) -> float:
266
266
  # Returns flow return temperature at the fuel cell as float
267
- return self.getProperty("heating.fuelCell.sensors.temperature.return")["properties"]["value"]["value"]
267
+ return float(self.getProperty("fuelCell.sensors.temperature.return")["properties"]["value"]["value"])
268
268
 
269
269
  @handleNotSupported
270
- def getFuelCellFlowSupplyTemperatureUnit(self):
270
+ def getFuelCellFlowSupplyTemperatureUnit(self) -> str:
271
271
  # Returns flow supply temperature unit, e.g. "celsius"
272
- return self.getProperty("heating.fuelCell.sensors.temperature.supply")["properties"]["value"]["unit"]
272
+ return str(self.getProperty("fuelCell.sensors.temperature.supply")["properties"]["value"]["unit"])
273
273
 
274
274
  @handleNotSupported
275
- def getFuelCellFlowSupplyTemperature(self):
275
+ def getFuelCellFlowSupplyTemperature(self) -> float:
276
276
  # Returns flow supply temperature at the fuel cell as float
277
- return self.getProperty("heating.fuelCell.sensors.temperature.supply")["properties"]["value"]["value"]
277
+ return float(self.getProperty("fuelCell.sensors.temperature.supply")["properties"]["value"]["value"])
278
278
 
279
279
  @handleNotSupported
280
- def getFuelCellOperationHours(self):
280
+ def getFuelCellOperationHours(self) -> int:
281
281
  # Returns the operation hours of the fuel cell
282
- return self.getProperty("heating.fuelCell.statistics")["properties"]["operationHours"]["value"]
282
+ return int(self.getProperty("fuelCell.statistics")["properties"]["operationHours"]["value"])
283
283
 
284
284
  @handleNotSupported
285
- def getFuelCellProductionHours(self):
285
+ def getFuelCellProductionHours(self) -> int:
286
286
  # Returns the production hours of the fuel cell
287
- return self.getProperty("heating.fuelCell.statistics")["properties"]["productionHours"]["value"]
287
+ return int(self.getProperty("fuelCell.statistics")["properties"]["productionHours"]["value"])
288
288
 
289
289
  @handleNotSupported
290
- def getFuelCellProductionStarts(self):
290
+ def getFuelCellProductionStarts(self) -> int:
291
291
  # Returns the number of production starts of the fuel cell
292
- return self.getProperty("heating.fuelCell.statistics")["properties"]["productionStarts"]["value"]
292
+ return int(self.getProperty("fuelCell.statistics")["properties"]["productionStarts"]["value"])
293
293
 
294
294
  @handleNotSupported
295
295
  def getFuelCellGasConsumptionUnit(self):
@@ -9,5 +9,5 @@ class Gateway(Device):
9
9
  return self.getProperty("gateway.devices")["gatewayId"]
10
10
 
11
11
  @handleNotSupported
12
- def getWifiSignalStrength(self):
13
- return self.getProperty("gateway.wifi")["properties"]["strength"]["value"]
12
+ def getWifiSignalStrength(self) -> int:
13
+ return int(self.getProperty("gateway.wifi")["properties"]["strength"]["value"])
@@ -34,6 +34,13 @@ class HeatPump(HeatingDevice, VentilationDevice):
34
34
  def getEvaporator(self, evaporator) -> Evaporator:
35
35
  return Evaporator(self, evaporator)
36
36
 
37
+ @property
38
+ def inverters(self) -> List[Inverter]:
39
+ return [self.getInverter(x) for x in self.getAvailableCompressors()]
40
+
41
+ def getInverter(self, inverter) -> Inverter:
42
+ return Inverter(self, inverter)
43
+
37
44
  @handleNotSupported
38
45
  def getBufferMainTemperature(self):
39
46
  return self.getProperty("heating.bufferCylinder.sensors.temperature.main")["properties"]['value']['value']
@@ -356,6 +363,10 @@ class Compressor(HeatingDeviceWithComponent):
356
363
  def getPhase(self):
357
364
  return self.getProperty(f"heating.compressors.{self.compressor}")["properties"]["phase"]["value"]
358
365
 
366
+ @handleNotSupported
367
+ def getSpeed(self) -> int:
368
+ return int(self.getProperty(f"heating.compressors.{self.compressor}.speed.current")["properties"]["value"]["value"])
369
+
359
370
  @handleNotSupported
360
371
  def getHeatProductionCurrent(self) -> float:
361
372
  return float(self.getProperty(f"heating.compressors.{self.compressor}.heat.production.current")["properties"]["value"]["value"])
@@ -392,46 +403,111 @@ class Compressor(HeatingDeviceWithComponent):
392
403
  def getPowerConsumptionTotalUnit(self) -> str:
393
404
  return str(self.getProperty(f"heating.compressors.{self.compressor}.power.consumption.total")["properties"]["year"]["unit"])
394
405
 
406
+ #TODO: remove deprecated method in 03.2026 release
395
407
  @handleNotSupported
408
+ @deprecated(reason="renamed, use getOutletPressureUnit", version="2.55.1")
396
409
  def getCompressorOutletPressureUnit(self) -> str:
410
+ return str(self.getOutletPressureUnit())
411
+
412
+ @handleNotSupported
413
+ def getOutletPressureUnit(self) -> str:
397
414
  # Shows the unit of measurement of the outlet pressure.
398
415
  return str(self.getProperty(f"heating.compressors.{self.compressor}.sensors.pressure.outlet")["properties"]["value"]["unit"])
399
416
 
417
+ #TODO: remove deprecated method in 03.2026 release
400
418
  @handleNotSupported
419
+ @deprecated(reason="renamed, use getOutletPressure", version="2.55.1")
401
420
  def getCompressorOutletPressure(self) -> float:
421
+ return float(self.getOutletPressure())
422
+
423
+ @handleNotSupported
424
+ def getOutletPressure(self) -> float:
402
425
  # Shows the outlet pressure of the compressor.
403
426
  return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.pressure.outlet")["properties"]["value"]["value"])
404
427
 
428
+ #TODO: remove deprecated method in 03.2026 release
405
429
  @handleNotSupported
430
+ @deprecated(reason="renamed, use getInletPressureUnit", version="2.55.1")
406
431
  def getCompressorInletPressureUnit(self) -> str:
432
+ return str(self.getInletPressureUnit())
433
+
434
+ @handleNotSupported
435
+ def getInletPressureUnit(self) -> str:
407
436
  # Shows the unit of measurement of the inlet pressure.
408
437
  return str(self.getProperty(f"heating.compressors.{self.compressor}.sensors.pressure.inlet")["properties"]["value"]["unit"])
409
438
 
439
+ #TODO: remove deprecated method in 03.2026 release
410
440
  @handleNotSupported
441
+ @deprecated(reason="renamed, use getInletPressure", version="2.55.1")
411
442
  def getCompressorInletPressure(self) -> float:
443
+ return float(self.getInletPressure())
444
+
445
+ @handleNotSupported
446
+ def getInletPressure(self) -> float:
412
447
  # Shows the inlet pressure of the compressor.
413
448
  return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.pressure.inlet")["properties"]["value"]["value"])
414
449
 
450
+ #TODO: remove deprecated method in 03.2026 release
415
451
  @handleNotSupported
452
+ @deprecated(reason="renamed, use getOutletTemperatureUnit", version="2.55.1")
416
453
  def getCompressorOutletTemperatureUnit(self) -> str:
454
+ return str(self.getOutletTemperatureUnit())
455
+
456
+ @handleNotSupported
457
+ def getOutletTemperatureUnit(self) -> str:
417
458
  # Shows the unit of measurement of the outlet temperature.
418
459
  return str(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.outlet")["properties"]["value"]["unit"])
419
460
 
461
+ #TODO: remove deprecated method in 03.2026 release
420
462
  @handleNotSupported
463
+ @deprecated(reason="renamed, use getOutletTemperature", version="2.55.1")
421
464
  def getCompressorOutletTemperature(self) -> float:
465
+ return float(self.getOutletTemperature())
466
+
467
+ @handleNotSupported
468
+ def getOutletTemperature(self) -> float:
422
469
  # Shows the outlet temperature of the compressor.
423
470
  return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.outlet")["properties"]["value"]["value"])
424
471
 
472
+ #TODO: remove deprecated method in 03.2026 release
425
473
  @handleNotSupported
474
+ @deprecated(reason="renamed, use getInletTemperatureUnit", version="2.55.1")
426
475
  def getCompressorInletTemperatureUnit(self) -> str:
476
+ return str(self.getInletTemperatureUnit())
477
+
478
+ @handleNotSupported
479
+ def getInletTemperatureUnit(self) -> str:
427
480
  # Shows the unit of measurement of the inlet temperature.
428
481
  return str(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.inlet")["properties"]["value"]["unit"])
429
482
 
483
+ #TODO: remove deprecated method in 03.2026 release
430
484
  @handleNotSupported
485
+ @deprecated(reason="renamed, use getInletTemperature", version="2.55.1")
431
486
  def getCompressorInletTemperature(self) -> float:
487
+ return float(self.getInletTemperature())
488
+
489
+ @handleNotSupported
490
+ def getInletTemperature(self) -> float:
432
491
  # Shows the inlet temperature of the compressor.
433
492
  return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.inlet")["properties"]["value"]["value"])
434
493
 
494
+ @handleNotSupported
495
+ def getOilTemperature(self) -> float:
496
+ # Shows the oil temperature of the compressor.
497
+ return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.oil")["properties"]["value"]["value"])
498
+
499
+ def getMotorChamberTemperature(self) -> float:
500
+ # Shows the motor chamber temperature of the compressor.
501
+ return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.motorChamber")["properties"]["value"]["value"])
502
+
503
+ def getAmbientTemperature(self) -> float:
504
+ # Shows the ambient temperature of the compressor.
505
+ return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.ambient")["properties"]["value"]["value"])
506
+
507
+ def getOverheatTemperature(self) -> float:
508
+ # Shows the overheat temperature of the compressor.
509
+ return float(self.getProperty(f"heating.compressors.{self.compressor}.sensors.temperature.overheat")["properties"]["value"]["value"])
510
+
435
511
 
436
512
  class Evaporator(HeatingDeviceWithComponent):
437
513
 
@@ -439,23 +515,47 @@ class Evaporator(HeatingDeviceWithComponent):
439
515
  def evaporator(self) -> str:
440
516
  return self.component
441
517
 
518
+ #TODO: remove deprecated method in 03.2026 release
442
519
  @handleNotSupported
520
+ @deprecated(reason="renamed, use getLiquidTemperatureUnit", version="2.55.1")
443
521
  def getEvaporatorLiquidTemperatureUnit(self) -> str:
522
+ return str(self.getLiquidTemperatureUnit())
523
+
524
+ @handleNotSupported
525
+ def getLiquidTemperatureUnit(self) -> str:
444
526
  # Shows the unit of measurement of the liquid temperature of the evaporator.
445
527
  return str(self.getProperty(f"heating.evaporators.{self.evaporator}.sensors.temperature.liquid")["properties"]["value"]["unit"])
446
528
 
529
+ #TODO: remove deprecated method in 03.2026 release
447
530
  @handleNotSupported
531
+ @deprecated(reason="renamed, use getLiquidTemperature", version="2.55.1")
448
532
  def getEvaporatorLiquidTemperature(self) -> float:
533
+ return float(self.getLiquidTemperature())
534
+
535
+ @handleNotSupported
536
+ def getLiquidTemperature(self) -> float:
449
537
  # Shows the liquid temperature of the evaporator.
450
538
  return float(self.getProperty(f"heating.evaporators.{self.evaporator}.sensors.temperature.liquid")["properties"]["value"]["value"])
451
539
 
540
+ #TODO: remove deprecated method in 03.2026 release
452
541
  @handleNotSupported
542
+ @deprecated(reason="renamed, use getOverheatTemperatureUnit", version="2.55.1")
453
543
  def getEvaporatorOverheatTemperatureUnit(self) -> str:
544
+ return str(self.getOverheatTemperatureUnit())
545
+
546
+ @handleNotSupported
547
+ def getOverheatTemperatureUnit(self) -> str:
454
548
  # Shows the unit of measurement of the overheat temperature of the evaporator.
455
549
  return str(self.getProperty(f"heating.evaporators.{self.evaporator}.sensors.temperature.overheat")["properties"]["value"]["unit"])
456
550
 
551
+ #TODO: remove deprecated method in 03.2026 release
457
552
  @handleNotSupported
553
+ @deprecated(reason="renamed, use getOverheatTemperature", version="2.55.1")
458
554
  def getEvaporatorOverheatTemperature(self) -> float:
555
+ return float(self.getOverheatTemperature())
556
+
557
+ @handleNotSupported
558
+ def getOverheatTemperature(self) -> float:
459
559
  # Shows the overheat temperature of the evaporator.
460
560
  return float(self.getProperty(f"heating.evaporators.{self.evaporator}.sensors.temperature.overheat")["properties"]["value"]["value"])
461
561
 
@@ -466,22 +566,65 @@ class Condensor(HeatingDeviceWithComponent):
466
566
  def condensor(self) -> str:
467
567
  return self.component
468
568
 
569
+ #TODO: remove deprecated method in 03.2026 release
469
570
  @handleNotSupported
571
+ @deprecated(reason="renamed, use getSubcoolingTemperatureUnit", version="2.55.1")
470
572
  def getCondensorSubcoolingTemperatureUnit(self) -> str:
471
- # Shows the unit of measurement of the subcooling temperature of the condensor.
573
+ return str(self.getSubcoolingTemperatureUnit())
574
+
575
+ @handleNotSupported
576
+ def getSubcoolingTemperatureUnit(self) -> str:
577
+ # Shows the unit of measurement of the subcooling temperature of the condenser.
472
578
  return str(self.getProperty(f"heating.condensors.{self.condensor}.sensors.temperature.subcooling")["properties"]["value"]["unit"])
473
579
 
580
+ #TODO: remove deprecated method in 03.2026 release
474
581
  @handleNotSupported
582
+ @deprecated(reason="renamed, use getSubcoolingTemperature", version="2.55.1")
475
583
  def getCondensorSubcoolingTemperature(self) -> float:
476
- # Shows the subcooling temperature of the condensor.
584
+ return float(self.getSubcoolingTemperature())
585
+
586
+ @handleNotSupported
587
+ def getSubcoolingTemperature(self) -> float:
588
+ # Shows the subcooling temperature of the condenser.
477
589
  return float(self.getProperty(f"heating.condensors.{self.condensor}.sensors.temperature.subcooling")["properties"]["value"]["value"])
478
590
 
591
+ #TODO: remove deprecated method in 03.2026 release
479
592
  @handleNotSupported
593
+ @deprecated(reason="renamed, use getLiquidTemperatureUnit", version="2.55.1")
480
594
  def getCondensorLiquidTemperatureUnit(self) -> str:
481
- # Shows the unit of measurement of the liquid temperature of the condensor.
595
+ return str(self.getLiquidTemperatureUnit())
596
+
597
+ @handleNotSupported
598
+ def getLiquidTemperatureUnit(self) -> str:
599
+ # Shows the unit of measurement of the liquid temperature of the condenser.
482
600
  return str(self.getProperty(f"heating.condensors.{self.condensor}.sensors.temperature.liquid")["properties"]["value"]["unit"])
483
601
 
602
+ #TODO: remove deprecated method in 03.2026 release
484
603
  @handleNotSupported
604
+ @deprecated(reason="renamed, use getLiquidTemperature", version="2.55.1")
485
605
  def getCondensorLiquidTemperature(self) -> float:
486
- # Shows the liquid temperature of the condensor.
606
+ return float(self.getLiquidTemperature())
607
+
608
+ @handleNotSupported
609
+ def getLiquidTemperature(self) -> float:
610
+ # Shows the liquid temperature of the condenser.
487
611
  return float(self.getProperty(f"heating.condensors.{self.condensor}.sensors.temperature.liquid")["properties"]["value"]["value"])
612
+
613
+
614
+ class Inverter(HeatingDeviceWithComponent):
615
+
616
+ @property
617
+ def inverter(self) -> str:
618
+ return self.component
619
+
620
+ @handleNotSupported
621
+ def getCurrent(self) -> float:
622
+ return float(self.getProperty(f"heating.inverters.{self.inverter}.sensors.power.current")["properties"]["value"]["value"])
623
+
624
+ @handleNotSupported
625
+ def getPower(self) -> float:
626
+ return float(self.getProperty(f"heating.inverters.{self.inverter}.sensors.power.output")["properties"]["value"]["value"])
627
+
628
+ @handleNotSupported
629
+ def getTemperature(self) -> float:
630
+ return float(self.getProperty(f"heating.inverters.{self.inverter}.sensors.temperature.powerModule")["properties"]["value"]["value"])
@@ -36,6 +36,10 @@ class HeatingDevice(Device):
36
36
  Note that currently, a new token is generated for each run.
37
37
  """
38
38
 
39
+ @handleNotSupported
40
+ def getWifiSignalStrength(self) -> int:
41
+ return int(self.getProperty("tcu.wifi")["properties"]["strength"]["value"])
42
+
39
43
  @property
40
44
  def circuits(self) -> List[Any]:
41
45
  return list([self.getCircuit(x) for x in self.getAvailableCircuits()])
@@ -12,6 +12,10 @@ class VentilationDevice(Device):
12
12
  Note that currently, a new token is generated for each run.
13
13
  """
14
14
 
15
+ @handleNotSupported
16
+ def getWifiSignalStrength(self) -> int:
17
+ return int(self.getProperty("tcu.wifi")["properties"]["strength"]["value"])
18
+
15
19
  @handleNotSupported
16
20
  def getVentilationDemand(self) -> str:
17
21
  return str(self.getProperty("ventilation.operating.state")["properties"]["demand"]["value"])
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "PyViCare"
3
- version = "2.55.0"
3
+ version = "2.56.0"
4
4
  description = "Library to communicate with the Viessmann ViCare API."
5
5
  authors = [
6
6
  "Simon Gillet <mail+pyvicare@gillet.ninja>"
File without changes
File without changes
File without changes