@kusinta/iot-schema 0.2.0-beta.46 → 0.2.0-beta.48

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 (31) hide show
  1. package/package.json +1 -1
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +17 -3
  3. package/src/kusinta/iot/access/v1/acl_pb.js +3 -3
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +3 -1
  5. package/src/kusinta/iot/access/v1/roles_pb.js +3 -1
  6. package/src/kusinta/iot/accountlink/v1/account_link_pb.d.ts +10 -2
  7. package/src/kusinta/iot/climate/v1/climate_pb.d.ts +380 -24
  8. package/src/kusinta/iot/climate/v1/climate_pb.js +72 -15
  9. package/src/kusinta/iot/commissioning/v1/commissioning_pb.d.ts +21 -5
  10. package/src/kusinta/iot/commissioning/v1/commissioning_pb.js +1 -1
  11. package/src/kusinta/iot/common/v1/types_pb.d.ts +3 -0
  12. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +3 -3
  13. package/src/kusinta/iot/device/v1/device_pb.d.ts +267 -5
  14. package/src/kusinta/iot/device/v1/device_pb.js +44 -3
  15. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +15 -1
  16. package/src/kusinta/iot/device/v1/property_update_pb.js +1 -1
  17. package/src/kusinta/iot/heating/v1/heating_pb.d.ts +39 -5
  18. package/src/kusinta/iot/heating/v1/heating_pb.js +2 -1
  19. package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +28 -5
  20. package/src/kusinta/iot/reporting/v1/reporting_pb.js +4 -4
  21. package/src/kusinta/iot/space/v1/space_pb.d.ts +18 -1
  22. package/src/kusinta/iot/space/v1/space_pb.js +1 -1
  23. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +5 -4
  24. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +5 -4
  25. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +61 -1
  26. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +16 -2
  27. package/src/kusinta/iot/webrtc/v1/household_pb.d.ts +30 -7
  28. package/src/kusinta/iot/webrtc/v1/household_pb.js +1 -1
  29. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +162 -39
  30. package/src/kusinta/iot/webrtc/v1/management_pb.js +48 -34
  31. package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +4 -0
@@ -4,13 +4,14 @@
4
4
 
5
5
  import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
6
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+ import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
7
8
  import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
8
9
 
9
10
  /**
10
11
  * Describes the file kusinta/iot/climate/v1/climate.proto.
11
12
  */
12
13
  export const file_kusinta_iot_climate_v1_climate = /*@__PURE__*/
13
- fileDesc("CiRrdXNpbnRhL2lvdC9jbGltYXRlL3YxL2NsaW1hdGUucHJvdG8SFmt1c2ludGEuaW90LmNsaW1hdGUudjEiogEKDFRhcmdldENoYW5nZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEdXNlchgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZEgAEjMKBmRldmljZRgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkSABCBAoCYnkizggKC1Jvb21DbGltYXRlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAIgASgRSACIAQESOwoNdGFyZ2V0X2NoYW5nZRgDIAEoCzIkLmt1c2ludGEuaW90LmNsaW1hdGUudjEuVGFyZ2V0Q2hhbmdlEioKHWVmZmVjdGl2ZV90YXJnZXRfY2VudGlkZWdyZWVzGAQgASgRSAGIAQESFgoOb3ZlcnJpZGVzX21vZGUYBSABKAgSNwoNbW9kZV9zcGFjZV9pZBgNIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSHQoQbWluX2NlbnRpZGVncmVlcxgGIAEoEUgCiAEBEh0KEG1heF9jZW50aWRlZ3JlZXMYByABKBFIA4gBARI1CgpzZW5zb3JfaWRzGAggAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSGgoSc2Vuc29yc19jb25maWd1cmVkGA4gASgIEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgJIAEoEUgEiAEBEjYKC21lYXN1cmVkX2J5GAogASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSPwoJY29uZGl0aW9uGAsgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZUNvbmRpdGlvbhIcChRsb2NrX2RldmljZV9jb250cm9scxgMIAEoCBIWCg5zdGF0ZV93aXRoaGVsZBgPIAEoCBJACgxleHBsYW5hdGlvbnMYECADKAsyKi5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvbhI1ChF0YXJnZXRfaGVsZF91bnRpbBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoIcGxhbm5pbmcYEiABKA4yJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21QbGFubmluZxIqCh1jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlcxgTIAEoEUgFiAEBEisKHmNvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcxgUIAEoEUgGiAEBQhYKFF90YXJnZXRfY2VudGlkZWdyZWVzQiAKHl9lZmZlY3RpdmVfdGFyZ2V0X2NlbnRpZGVncmVlc0ITChFfbWluX2NlbnRpZGVncmVlc0ITChFfbWF4X2NlbnRpZGVncmVlc0IYChZfbWVhc3VyZWRfY2VudGlkZWdyZWVzQiAKHl9jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlc0IhCh9fY29tZm9ydF9iYW5kX2hpZ2hfY2VudGlkZWdyZWVzIsMBChJDbGltYXRlRXhwbGFuYXRpb24SPAoEa2luZBgBIAEoDjIuLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZUV4cGxhbmF0aW9uS2luZBJCCgdzdWJqZWN0GAIgASgOMjEua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlRXhwbGFuYXRpb25TdWJqZWN0EisKB2VuZHNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIoMDCgtDbGltYXRlTW9kZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoEa2luZBgCIAEoDjInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGVLaW5kEiEKFHNldGJhY2tfY2VudGlkZWdyZWVzGAMgASgRSACIAQESLQoJc3RhcnRzX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgZzZXRfYnkYBiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSMgoJd2FybV9mcm9tGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhcKFV9zZXRiYWNrX2NlbnRpZGVncmVlc0IMCgpfd2FybV9mcm9tInkKD1Jvb21DbGltYXRlTGlzdBIyCgVyb29tcxgBIAMoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGUSMgoFbW9kZXMYAiADKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVNb2RlIrEDChFSb29tSGlzdG9yeVNhbXBsZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIgoVbWVhc3VyZWRfY2VudGlkZWdyZWVzGAIgASgRSACIAQESIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgDIAEoEUgBiAEBEioKHWVmZmVjdGl2ZV90YXJnZXRfY2VudGlkZWdyZWVzGAQgASgRSAKIAQESIAoTdmFsdmVfb3Blbl9wZXJtaWxsZRgFIAEoDUgDiAEBEh8KEnZhbHZlX29wZW5fc2Vjb25kcxgGIAEoDUgEiAEBEiIKFWZsb29yX2hlYXRpbmdfc2Vjb25kcxgHIAEoDUgFiAEBQhgKFl9tZWFzdXJlZF9jZW50aWRlZ3JlZXNCFgoUX3RhcmdldF9jZW50aWRlZ3JlZXNCIAoeX2VmZmVjdGl2ZV90YXJnZXRfY2VudGlkZWdyZWVzQhYKFF92YWx2ZV9vcGVuX3Blcm1pbGxlQhUKE192YWx2ZV9vcGVuX3NlY29uZHNCGAoWX2Zsb29yX2hlYXRpbmdfc2Vjb25kcyLQAgoLUm9vbUhpc3RvcnkSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSLQoJa2VwdF9mcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6CgdzYW1wbGVzGAMgAygLMikua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeVNhbXBsZRJBCgpyZXNvbHV0aW9uGAQgASgOMi0ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeVJlc29sdXRpb24SMAoMY292ZXJlZF9mcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjb3ZlcmVkX3RvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLUAgoRQ2xpbWF0ZVBlcmlvZE1lYW4SLQoJc3RhcnRzX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChVtZWFzdXJlZF9jZW50aWRlZ3JlZXMYAyABKBFIAIgBARIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAQgASgRSAGIAQESIgoabWVhc3VyZWRfY292ZXJhZ2VfcGVybWlsbGUYBSABKA0SIAoYdGFyZ2V0X2NvdmVyYWdlX3Blcm1pbGxlGAYgASgNEhYKDnJvb21zX21lYXN1cmVkGAcgASgNEg0KBXJvb21zGAggASgNQhgKFl9tZWFzdXJlZF9jZW50aWRlZ3JlZXNCFgoUX3RhcmdldF9jZW50aWRlZ3JlZXMivgIKF0FwYXJ0bWVudENsaW1hdGVTdW1tYXJ5EjYKDGFwYXJ0bWVudF9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPAoGcGVyaW9kGAIgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVBlcmlvZBJCCgl3ZWlnaHRpbmcYAyABKA4yLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVTdW1tYXJ5V2VpZ2h0aW5nEi0KCWtlcHRfZnJvbRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoHcGVyaW9kcxgFIAMoCzIpLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVBlcmlvZE1lYW4q1QIKFFJvb21DbGltYXRlQ29uZGl0aW9uEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fVU5TUEVDSUZJRUQQABIiCh5ST09NX0NMSU1BVEVfQ09ORElUSU9OX0hPTERJTkcQARIkCiBST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX1RBUkdFVBACEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fU0VOU09SX0xPU1QQAxImCiJST09NX0NMSU1BVEVfQ09ORElUSU9OX1dJTkRPV19PUEVOEAQSJQohUk9PTV9DTElNQVRFX0NPTkRJVElPTl9OT19IRUFUSU5HEAUSLgoqUk9PTV9DTElNQVRFX0NPTkRJVElPTl9IRUFUSU5HX1VOUkVBQ0hBQkxFEAYSJAogUk9PTV9DTElNQVRFX0NPTkRJVElPTl9OT19TRU5TT1IQByqGAQoMUm9vbVBsYW5uaW5nEh0KGVJPT01fUExBTk5JTkdfVU5TUEVDSUZJRUQQABIZChVST09NX1BMQU5OSU5HX1BMQU5ORUQQARIdChlST09NX1BMQU5OSU5HX05PVF9QTEFOTkVEEAISHQoZUk9PTV9QTEFOTklOR19VTkFWQUlMQUJMRRADKoAEChZDbGltYXRlRXhwbGFuYXRpb25LaW5kEigKJENMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9VTlNQRUNJRklFRBAAEiUKIUNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9QUkVfSEVBVBABEiUKIUNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9DT0FTVElORxACEicKI0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9QUklDRV9ISUdIEAMSJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BFQUtfR1VBUkQQBBIvCitDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfSE9UX1dBVEVSX1BSSU9SSVRZEAUSMAosQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1NIQVJFRF9QT1dFUl9CVURHRVQQBhIyCi5DTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfRElTVFJJQ1RfSEVBVElOR19QRUFLEAcSLworQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0FUX0NPTUZPUlRfQ0VJTElORxAIEicKI0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9OT19SRUFESU5HEAkSKwonQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX09VVFNJREVfV0lORE9XEAoq9wEKGUNsaW1hdGVFeHBsYW5hdGlvblN1YmplY3QSKwonQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX1VOU1BFQ0lGSUVEEAASJAogQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX1JPT00QARIqCiZDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfRkxPT1JfWk9ORRACEiwKKENMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9DT01GT1JUX0xPQUQQAxItCilDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfQUREX09OX0hFQVRFUhAEKm8KD0NsaW1hdGVNb2RlS2luZBIhCh1DTElNQVRFX01PREVfS0lORF9VTlNQRUNJRklFRBAAEhoKFkNMSU1BVEVfTU9ERV9LSU5EX0FXQVkQARIdChlDTElNQVRFX01PREVfS0lORF9IT0xJREFZEAIqjAEKFVJvb21IaXN0b3J5UmVzb2x1dGlvbhInCiNST09NX0hJU1RPUllfUkVTT0xVVElPTl9VTlNQRUNJRklFRBAAEigKJFJPT01fSElTVE9SWV9SRVNPTFVUSU9OX1FVQVJURVJfSE9VUhABEiAKHFJPT01fSElTVE9SWV9SRVNPTFVUSU9OX0hPVVIQAiqhAQoUQ2xpbWF0ZVN1bW1hcnlQZXJpb2QSJgoiQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9VTlNQRUNJRklFRBAAEh4KGkNMSU1BVEVfU1VNTUFSWV9QRVJJT0RfREFZEAESHwobQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9XRUVLEAISIAocQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9NT05USBADKm8KF0NsaW1hdGVTdW1tYXJ5V2VpZ2h0aW5nEikKJUNMSU1BVEVfU1VNTUFSWV9XRUlHSFRJTkdfVU5TUEVDSUZJRUQQABIpCiVDTElNQVRFX1NVTU1BUllfV0VJR0hUSU5HX1JPT01TX0VRVUFMEAFCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CiRrdXNpbnRhL2lvdC9jbGltYXRlL3YxL2NsaW1hdGUucHJvdG8SFmt1c2ludGEuaW90LmNsaW1hdGUudjEitQEKDFRhcmdldENoYW5nZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEdXNlchgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZEgAEjMKBmRldmljZRgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkSAASEQoHbW92ZV9pbhgEIAEoCEgAQgQKAmJ5IqcLCgtSb29tQ2xpbWF0ZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBEjsKDXRhcmdldF9jaGFuZ2UYAyABKAsyJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlRhcmdldENoYW5nZRIqCh1lZmZlY3RpdmVfdGFyZ2V0X2NlbnRpZGVncmVlcxgEIAEoEUgBiAEBEhYKDm92ZXJyaWRlc19tb2RlGAUgASgIEjcKDW1vZGVfc3BhY2VfaWQYDSABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEiEKEG1pbl9jZW50aWRlZ3JlZXMYBiABKBFCAhgBSAKIAQESIQoQbWF4X2NlbnRpZGVncmVlcxgHIAEoEUICGAFIA4gBARI1CgpzZW5zb3JfaWRzGAggAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSGgoSc2Vuc29yc19jb25maWd1cmVkGA4gASgIEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgJIAEoEUgEiAEBEjYKC21lYXN1cmVkX2J5GAogASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSPwoJY29uZGl0aW9uGAsgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZUNvbmRpdGlvbhIcChRsb2NrX2RldmljZV9jb250cm9scxgMIAEoCBIWCg5zdGF0ZV93aXRoaGVsZBgPIAEoCBJACgxleHBsYW5hdGlvbnMYECADKAsyKi5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvbhI1ChF0YXJnZXRfaGVsZF91bnRpbBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoIcGxhbm5pbmcYEiABKA4yJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21QbGFubmluZxIqCh1jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlcxgTIAEoEUgFiAEBEisKHmNvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcxgUIAEoEUgGiAEBEj0KDG91dGVyX2xpbWl0cxgVIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJSb29tTGltaXRzEj0KDGlubmVyX2xpbWl0cxgWIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuSW5uZXJSb29tTGltaXRzEkIKEW91dGVyX2xpbWl0X2NsYW1wGBcgASgLMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Q2xhbXASSgoVb3V0ZXJfbGltaXRzX2NvdmVyYWdlGBggASgOMisua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0c0NvdmVyYWdlEkEKFm91dGVyX2JvdW5kX2RldmljZV9pZHMYGSADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZEIWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXNCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IgCh5fY29tZm9ydF9iYW5kX2xvd19jZW50aWRlZ3JlZXNCIQofX2NvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcyKAAQoKT3V0ZXJMaW1pdBIUCgxjZW50aWRlZ3JlZXMYASABKBESMAoLc2V0X2J5X3JvbGUYAiABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRIqCgZzZXRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIr8CCg9PdXRlclJvb21MaW1pdHMSLwoDbWluGAEgASgLMiIua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Ei8KA21heBgCIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI0Cghhd2F5X21pbhgDIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI6Cg5tb3ZlX2luX3RhcmdldBgEIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBIwCiNtaW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcxgFIAEoEUgAiAEBQiYKJF9taW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcyJ5Cg9Jbm5lclJvb21MaW1pdHMSHQoQbWluX2NlbnRpZGVncmVlcxgBIAEoEUgAiAEBEh0KEG1heF9jZW50aWRlZ3JlZXMYAiABKBFIAYgBAUITChFfbWluX2NlbnRpZGVncmVlc0ITChFfbWF4X2NlbnRpZGVncmVlcyKIAQoPT3V0ZXJMaW1pdENsYW1wEjUKBWxpbWl0GAEgASgOMiYua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0S2luZBIjChZ1bmNsYW1wZWRfY2VudGlkZWdyZWVzGAIgASgRSACIAQFCGQoXX3VuY2xhbXBlZF9jZW50aWRlZ3JlZXMiwwEKEkNsaW1hdGVFeHBsYW5hdGlvbhI8CgRraW5kGAEgASgOMi4ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlRXhwbGFuYXRpb25LaW5kEkIKB3N1YmplY3QYAiABKA4yMS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvblN1YmplY3QSKwoHZW5kc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwMKC0NsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KBnNldF9ieRgGIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIyCgl3YXJtX2Zyb20YByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCFwoVX3NldGJhY2tfY2VudGlkZWdyZWVzQgwKCl93YXJtX2Zyb20ieQoPUm9vbUNsaW1hdGVMaXN0EjIKBXJvb21zGAEgAygLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZRIyCgVtb2RlcxgCIAMoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGUisQMKEVJvb21IaXN0b3J5U2FtcGxlEiYKAmF0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChVtZWFzdXJlZF9jZW50aWRlZ3JlZXMYAiABKBFIAIgBARIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAMgASgRSAGIAQESKgodZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAogBARIgChN2YWx2ZV9vcGVuX3Blcm1pbGxlGAUgASgNSAOIAQESHwoSdmFsdmVfb3Blbl9zZWNvbmRzGAYgASgNSASIAQESIgoVZmxvb3JfaGVhdGluZ19zZWNvbmRzGAcgASgNSAWIAQFCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCFgoUX3ZhbHZlX29wZW5fcGVybWlsbGVCFQoTX3ZhbHZlX29wZW5fc2Vjb25kc0IYChZfZmxvb3JfaGVhdGluZ19zZWNvbmRzItACCgtSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglrZXB0X2Zyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKB3NhbXBsZXMYAyADKAsyKS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5U2FtcGxlEkEKCnJlc29sdXRpb24YBCABKA4yLS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5UmVzb2x1dGlvbhIwCgxjb3ZlcmVkX2Zyb20YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNvdmVyZWRfdG8YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItQCChFDbGltYXRlUGVyaW9kTWVhbhItCglzdGFydHNfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgDIAEoEUgAiAEBEiAKE3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAYgBARIiChptZWFzdXJlZF9jb3ZlcmFnZV9wZXJtaWxsZRgFIAEoDRIgChh0YXJnZXRfY292ZXJhZ2VfcGVybWlsbGUYBiABKA0SFgoOcm9vbXNfbWVhc3VyZWQYByABKA0SDQoFcm9vbXMYCCABKA1CGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlcyK+AgoXQXBhcnRtZW50Q2xpbWF0ZVN1bW1hcnkSNgoMYXBhcnRtZW50X2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI8CgZwZXJpb2QYAiABKA4yLC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVTdW1tYXJ5UGVyaW9kEkIKCXdlaWdodGluZxgDIAEoDjIvLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVN1bW1hcnlXZWlnaHRpbmcSLQoJa2VwdF9mcm9tGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6CgdwZXJpb2RzGAUgAygLMikua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlUGVyaW9kTWVhbirVAgoUUm9vbUNsaW1hdGVDb25kaXRpb24SJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9VTlNQRUNJRklFRBAAEiIKHlJPT01fQ0xJTUFURV9DT05ESVRJT05fSE9MRElORxABEiQKIFJPT01fQ0xJTUFURV9DT05ESVRJT05fTk9fVEFSR0VUEAISJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9TRU5TT1JfTE9TVBADEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fV0lORE9XX09QRU4QBBIlCiFST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX0hFQVRJTkcQBRIuCipST09NX0NMSU1BVEVfQ09ORElUSU9OX0hFQVRJTkdfVU5SRUFDSEFCTEUQBhIkCiBST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX1NFTlNPUhAHKoUBCg5PdXRlckxpbWl0S2luZBIgChxPVVRFUl9MSU1JVF9LSU5EX1VOU1BFQ0lGSUVEEAASGAoUT1VURVJfTElNSVRfS0lORF9NSU4QARIYChRPVVRFUl9MSU1JVF9LSU5EX01BWBACEh0KGU9VVEVSX0xJTUlUX0tJTkRfQVdBWV9NSU4QAyqbAQoTT3V0ZXJMaW1pdHNDb3ZlcmFnZRIlCiFPVVRFUl9MSU1JVFNfQ09WRVJBR0VfVU5TUEVDSUZJRUQQABIeChpPVVRFUl9MSU1JVFNfQ09WRVJBR0VfTk9ORRABEh4KGk9VVEVSX0xJTUlUU19DT1ZFUkFHRV9TT01FEAISHQoZT1VURVJfTElNSVRTX0NPVkVSQUdFX0FMTBADKoYBCgxSb29tUGxhbm5pbmcSHQoZUk9PTV9QTEFOTklOR19VTlNQRUNJRklFRBAAEhkKFVJPT01fUExBTk5JTkdfUExBTk5FRBABEh0KGVJPT01fUExBTk5JTkdfTk9UX1BMQU5ORUQQAhIdChlST09NX1BMQU5OSU5HX1VOQVZBSUxBQkxFEAMqgAQKFkNsaW1hdGVFeHBsYW5hdGlvbktpbmQSKAokQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASJQohQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BSRV9IRUFUEAESJQohQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0NPQVNUSU5HEAISJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BSSUNFX0hJR0gQAxInCiNDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfUEVBS19HVUFSRBAEEi8KK0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9IT1RfV0FURVJfUFJJT1JJVFkQBRIwCixDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfU0hBUkVEX1BPV0VSX0JVREdFVBAGEjIKLkNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9ESVNUUklDVF9IRUFUSU5HX1BFQUsQBxIvCitDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfQVRfQ09NRk9SVF9DRUlMSU5HEAgSJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX05PX1JFQURJTkcQCRIrCidDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfT1VUU0lERV9XSU5ET1cQCir3AQoZQ2xpbWF0ZUV4cGxhbmF0aW9uU3ViamVjdBIrCidDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfVU5TUEVDSUZJRUQQABIkCiBDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfUk9PTRABEioKJkNMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9GTE9PUl9aT05FEAISLAooQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX0NPTUZPUlRfTE9BRBADEi0KKUNMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9BRERfT05fSEVBVEVSEAQqbwoPQ2xpbWF0ZU1vZGVLaW5kEiEKHUNMSU1BVEVfTU9ERV9LSU5EX1VOU1BFQ0lGSUVEEAASGgoWQ0xJTUFURV9NT0RFX0tJTkRfQVdBWRABEh0KGUNMSU1BVEVfTU9ERV9LSU5EX0hPTElEQVkQAiqMAQoVUm9vbUhpc3RvcnlSZXNvbHV0aW9uEicKI1JPT01fSElTVE9SWV9SRVNPTFVUSU9OX1VOU1BFQ0lGSUVEEAASKAokUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fUVVBUlRFUl9IT1VSEAESIAocUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fSE9VUhACKqEBChRDbGltYXRlU3VtbWFyeVBlcmlvZBImCiJDTElNQVRFX1NVTU1BUllfUEVSSU9EX1VOU1BFQ0lGSUVEEAASHgoaQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9EQVkQARIfChtDTElNQVRFX1NVTU1BUllfUEVSSU9EX1dFRUsQAhIgChxDTElNQVRFX1NVTU1BUllfUEVSSU9EX01PTlRIEAMqbwoXQ2xpbWF0ZVN1bW1hcnlXZWlnaHRpbmcSKQolQ0xJTUFURV9TVU1NQVJZX1dFSUdIVElOR19VTlNQRUNJRklFRBAAEikKJUNMSU1BVEVfU1VNTUFSWV9XRUlHSFRJTkdfUk9PTVNfRVFVQUwQAUICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
14
15
 
15
16
  /**
16
17
  * Describes the message kusinta.iot.climate.v1.TargetChange.
@@ -26,54 +27,82 @@ export const TargetChangeSchema = /*@__PURE__*/
26
27
  export const RoomClimateSchema = /*@__PURE__*/
27
28
  messageDesc(file_kusinta_iot_climate_v1_climate, 1);
28
29
 
30
+ /**
31
+ * Describes the message kusinta.iot.climate.v1.OuterLimit.
32
+ * Use `create(OuterLimitSchema)` to create a new message.
33
+ */
34
+ export const OuterLimitSchema = /*@__PURE__*/
35
+ messageDesc(file_kusinta_iot_climate_v1_climate, 2);
36
+
37
+ /**
38
+ * Describes the message kusinta.iot.climate.v1.OuterRoomLimits.
39
+ * Use `create(OuterRoomLimitsSchema)` to create a new message.
40
+ */
41
+ export const OuterRoomLimitsSchema = /*@__PURE__*/
42
+ messageDesc(file_kusinta_iot_climate_v1_climate, 3);
43
+
44
+ /**
45
+ * Describes the message kusinta.iot.climate.v1.InnerRoomLimits.
46
+ * Use `create(InnerRoomLimitsSchema)` to create a new message.
47
+ */
48
+ export const InnerRoomLimitsSchema = /*@__PURE__*/
49
+ messageDesc(file_kusinta_iot_climate_v1_climate, 4);
50
+
51
+ /**
52
+ * Describes the message kusinta.iot.climate.v1.OuterLimitClamp.
53
+ * Use `create(OuterLimitClampSchema)` to create a new message.
54
+ */
55
+ export const OuterLimitClampSchema = /*@__PURE__*/
56
+ messageDesc(file_kusinta_iot_climate_v1_climate, 5);
57
+
29
58
  /**
30
59
  * Describes the message kusinta.iot.climate.v1.ClimateExplanation.
31
60
  * Use `create(ClimateExplanationSchema)` to create a new message.
32
61
  */
33
62
  export const ClimateExplanationSchema = /*@__PURE__*/
34
- messageDesc(file_kusinta_iot_climate_v1_climate, 2);
63
+ messageDesc(file_kusinta_iot_climate_v1_climate, 6);
35
64
 
36
65
  /**
37
66
  * Describes the message kusinta.iot.climate.v1.ClimateMode.
38
67
  * Use `create(ClimateModeSchema)` to create a new message.
39
68
  */
40
69
  export const ClimateModeSchema = /*@__PURE__*/
41
- messageDesc(file_kusinta_iot_climate_v1_climate, 3);
70
+ messageDesc(file_kusinta_iot_climate_v1_climate, 7);
42
71
 
43
72
  /**
44
73
  * Describes the message kusinta.iot.climate.v1.RoomClimateList.
45
74
  * Use `create(RoomClimateListSchema)` to create a new message.
46
75
  */
47
76
  export const RoomClimateListSchema = /*@__PURE__*/
48
- messageDesc(file_kusinta_iot_climate_v1_climate, 4);
77
+ messageDesc(file_kusinta_iot_climate_v1_climate, 8);
49
78
 
50
79
  /**
51
80
  * Describes the message kusinta.iot.climate.v1.RoomHistorySample.
52
81
  * Use `create(RoomHistorySampleSchema)` to create a new message.
53
82
  */
54
83
  export const RoomHistorySampleSchema = /*@__PURE__*/
55
- messageDesc(file_kusinta_iot_climate_v1_climate, 5);
84
+ messageDesc(file_kusinta_iot_climate_v1_climate, 9);
56
85
 
57
86
  /**
58
87
  * Describes the message kusinta.iot.climate.v1.RoomHistory.
59
88
  * Use `create(RoomHistorySchema)` to create a new message.
60
89
  */
61
90
  export const RoomHistorySchema = /*@__PURE__*/
62
- messageDesc(file_kusinta_iot_climate_v1_climate, 6);
91
+ messageDesc(file_kusinta_iot_climate_v1_climate, 10);
63
92
 
64
93
  /**
65
94
  * Describes the message kusinta.iot.climate.v1.ClimatePeriodMean.
66
95
  * Use `create(ClimatePeriodMeanSchema)` to create a new message.
67
96
  */
68
97
  export const ClimatePeriodMeanSchema = /*@__PURE__*/
69
- messageDesc(file_kusinta_iot_climate_v1_climate, 7);
98
+ messageDesc(file_kusinta_iot_climate_v1_climate, 11);
70
99
 
71
100
  /**
72
101
  * Describes the message kusinta.iot.climate.v1.ApartmentClimateSummary.
73
102
  * Use `create(ApartmentClimateSummarySchema)` to create a new message.
74
103
  */
75
104
  export const ApartmentClimateSummarySchema = /*@__PURE__*/
76
- messageDesc(file_kusinta_iot_climate_v1_climate, 8);
105
+ messageDesc(file_kusinta_iot_climate_v1_climate, 12);
77
106
 
78
107
  /**
79
108
  * Describes the enum kusinta.iot.climate.v1.RoomClimateCondition.
@@ -94,11 +123,39 @@ export const RoomClimateConditionSchema = /*@__PURE__*/
94
123
  export const RoomClimateCondition = /*@__PURE__*/
95
124
  tsEnum(RoomClimateConditionSchema);
96
125
 
126
+ /**
127
+ * Describes the enum kusinta.iot.climate.v1.OuterLimitKind.
128
+ */
129
+ export const OuterLimitKindSchema = /*@__PURE__*/
130
+ enumDesc(file_kusinta_iot_climate_v1_climate, 1);
131
+
132
+ /**
133
+ * Which bound of a room's outer limits clamps the outputs it binds.
134
+ *
135
+ * @generated from enum kusinta.iot.climate.v1.OuterLimitKind
136
+ */
137
+ export const OuterLimitKind = /*@__PURE__*/
138
+ tsEnum(OuterLimitKindSchema);
139
+
140
+ /**
141
+ * Describes the enum kusinta.iot.climate.v1.OuterLimitsCoverage.
142
+ */
143
+ export const OuterLimitsCoverageSchema = /*@__PURE__*/
144
+ enumDesc(file_kusinta_iot_climate_v1_climate, 2);
145
+
146
+ /**
147
+ * How many of a room's heating outputs its outer limits bind (OuterRoomLimits, WHAT THEY BIND).
148
+ *
149
+ * @generated from enum kusinta.iot.climate.v1.OuterLimitsCoverage
150
+ */
151
+ export const OuterLimitsCoverage = /*@__PURE__*/
152
+ tsEnum(OuterLimitsCoverageSchema);
153
+
97
154
  /**
98
155
  * Describes the enum kusinta.iot.climate.v1.RoomPlanning.
99
156
  */
100
157
  export const RoomPlanningSchema = /*@__PURE__*/
101
- enumDesc(file_kusinta_iot_climate_v1_climate, 1);
158
+ enumDesc(file_kusinta_iot_climate_v1_climate, 3);
102
159
 
103
160
  /**
104
161
  * Whether a plan steers a room: one that looks ahead at prices, weather and the heat
@@ -114,7 +171,7 @@ export const RoomPlanning = /*@__PURE__*/
114
171
  * Describes the enum kusinta.iot.climate.v1.ClimateExplanationKind.
115
172
  */
116
173
  export const ClimateExplanationKindSchema = /*@__PURE__*/
117
- enumDesc(file_kusinta_iot_climate_v1_climate, 2);
174
+ enumDesc(file_kusinta_iot_climate_v1_climate, 4);
118
175
 
119
176
  /**
120
177
  * What held a room, or a part of its heating, where it is. A closed list of causes: the
@@ -141,7 +198,7 @@ export const ClimateExplanationKind = /*@__PURE__*/
141
198
  * Describes the enum kusinta.iot.climate.v1.ClimateExplanationSubject.
142
199
  */
143
200
  export const ClimateExplanationSubjectSchema = /*@__PURE__*/
144
- enumDesc(file_kusinta_iot_climate_v1_climate, 3);
201
+ enumDesc(file_kusinta_iot_climate_v1_climate, 5);
145
202
 
146
203
  /**
147
204
  * What a cause acts on.
@@ -155,7 +212,7 @@ export const ClimateExplanationSubject = /*@__PURE__*/
155
212
  * Describes the enum kusinta.iot.climate.v1.ClimateModeKind.
156
213
  */
157
214
  export const ClimateModeKindSchema = /*@__PURE__*/
158
- enumDesc(file_kusinta_iot_climate_v1_climate, 4);
215
+ enumDesc(file_kusinta_iot_climate_v1_climate, 6);
159
216
 
160
217
  /**
161
218
  * A setback that applies to every room in a space while it is on.
@@ -169,7 +226,7 @@ export const ClimateModeKind = /*@__PURE__*/
169
226
  * Describes the enum kusinta.iot.climate.v1.RoomHistoryResolution.
170
227
  */
171
228
  export const RoomHistoryResolutionSchema = /*@__PURE__*/
172
- enumDesc(file_kusinta_iot_climate_v1_climate, 5);
229
+ enumDesc(file_kusinta_iot_climate_v1_climate, 7);
173
230
 
174
231
  /**
175
232
  * The length of the buckets a room's history is given in. Buckets are fixed and aligned to
@@ -184,7 +241,7 @@ export const RoomHistoryResolution = /*@__PURE__*/
184
241
  * Describes the enum kusinta.iot.climate.v1.ClimateSummaryPeriod.
185
242
  */
186
243
  export const ClimateSummaryPeriodSchema = /*@__PURE__*/
187
- enumDesc(file_kusinta_iot_climate_v1_climate, 6);
244
+ enumDesc(file_kusinta_iot_climate_v1_climate, 8);
188
245
 
189
246
  /**
190
247
  * The length of the periods an ApartmentClimateSummary is given in. Each period runs from
@@ -209,7 +266,7 @@ export const ClimateSummaryPeriod = /*@__PURE__*/
209
266
  * Describes the enum kusinta.iot.climate.v1.ClimateSummaryWeighting.
210
267
  */
211
268
  export const ClimateSummaryWeightingSchema = /*@__PURE__*/
212
- enumDesc(file_kusinta_iot_climate_v1_climate, 7);
269
+ enumDesc(file_kusinta_iot_climate_v1_climate, 9);
213
270
 
214
271
  /**
215
272
  * How an apartment's mean is formed from its rooms' means.
@@ -694,8 +694,9 @@ export declare type CommissioningGrant = Message<"kusinta.iot.commissioning.v1.C
694
694
 
695
695
  /**
696
696
  * Who granted it, and when. GRANTED only. granted_by is given to the home's residents, and
697
- * for a space outside homes to the property owner and the gateway's administrators; to the
698
- * installer it is unset, since a resident's user id would tell them who lives in the home.
697
+ * for a space outside homes or an empty home to the property owner and the gateway's
698
+ * administrators; to the installer it is unset, since a resident's user id would tell them
699
+ * who lives in the home.
699
700
  *
700
701
  * @generated from field: kusinta.iot.identity.v1.UserId granted_by = 10;
701
702
  */
@@ -717,9 +718,13 @@ export declare const CommissioningGrantSchema: GenMessage<CommissioningGrant>;
717
718
  * The grants on one space that have not ended, as listed to one caller: the answer to
718
719
  * webrtc.v1.ListCommissioningGrants, and pushed whole as webrtc.v1.GatewayMessage
719
720
  * .commissioning_grants to every session that may list them whenever one is requested,
720
- * answered or ended before its time — to the installer, their own grants alone. Nothing is
721
- * pushed when a grant starts, ends or lapses at the time it states: a client reads those from
722
- * starts_at, ends_at and expires_at.
721
+ * answered or ended before its time — to the installer, their own grants alone. When who may
722
+ * list a home's grants changes — the home gaining a resident (webrtc.v1 household.proto,
723
+ * MOVE-IN), its last residency ending — they are pushed whole to the sessions that could list
724
+ * them before as well: empty, to one that may list none now, so that no session keeps showing a
725
+ * grant it no longer has or a request it can no longer answer. Nothing is pushed when a grant
726
+ * starts, ends or lapses at the time it states: a client reads those from starts_at, ends_at
727
+ * and expires_at.
723
728
  *
724
729
  * @generated from message kusinta.iot.commissioning.v1.CommissioningGrants
725
730
  */
@@ -1140,6 +1145,17 @@ export enum BlockReason {
1140
1145
  * @generated from enum value: BLOCK_REASON_LEASE_TOO_LONG = 6;
1141
1146
  */
1142
1147
  LEASE_TOO_LONG = 6,
1148
+
1149
+ /**
1150
+ * The device lies on the other side of a home's boundary from the record that binds or reads
1151
+ * it: a binding stored before such crossings were refused or undone (heating.v1). Mostly
1152
+ * transitional: a gateway removes such a binding once at start-up, before it first reads its
1153
+ * records (webrtc.v1 management.proto, START-UP), so this is sent only by one that holds such
1154
+ * a binding yet. Its output is held at rest and nothing reads it for the record meanwhile.
1155
+ *
1156
+ * @generated from enum value: BLOCK_REASON_DEVICE_ACROSS_HOME = 7;
1157
+ */
1158
+ DEVICE_ACROSS_HOME = 7,
1143
1159
  }
1144
1160
 
1145
1161
  /**
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
11
11
  * Describes the file kusinta/iot/commissioning/v1/commissioning.proto.
12
12
  */
13
13
  export const file_kusinta_iot_commissioning_v1_commissioning = /*@__PURE__*/
14
- fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIrcEChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgISgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIvMCChRDb21taXNzaW9uaW5nUHJvZmlsZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPgoFZmFjdHMYAiADKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0Ej4KBXRlc3RzGAMgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdBI9CghmZWF0dXJlcxgEIAMoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXR1cxI9Cgh0ZW1wbGF0ZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZRIWCg5uZWVkc193aXRoaGVsZBgHIAEoCEoECAUQBlILdGVtcGxhdGVfaWQiTgoJSG9tZVNldHVwEjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg4KBnNldF91cBgCIAEoCCJECgpIb21lU2V0dXBzEjYKBWhvbWVzGAEgAygLMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXAi4gEKE0NvbW1pc3Npb25pbmdSZWNvcmQSPwoEZmFjdBgBIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0ZhY3RIABI/CgR0ZXN0GAIgASgLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdEgAEj8KCHRlbXBsYXRlGAMgASgLMisua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib3VzZVRlbXBsYXRlSABCCAoGcmVjb3JkIo8EChJDb21taXNzaW9uaW5nR3JhbnQSEAoIZ3JhbnRfaWQYASABKAkSMgoIc3BhY2VfaWQYAiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjIKCWluc3RhbGxlchgDIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIWCg5pbnN0YWxsZXJfbmFtZRgEIAEoCRJECgVzdGF0ZRgFIAEoDjI1Lmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSMAoMcmVxdWVzdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglzdGFydHNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmdyYW50ZWRfYnkYCiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSLgoKZ3JhbnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiwEKE0NvbW1pc3Npb25pbmdHcmFudHMSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEkAKBmdyYW50cxgCIAMoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50Ir8BChhDb21taXNzaW9uaW5nR3JhbnRSZWNvcmQSFgoOaW5zdGFsbGVyX25hbWUYASABKAkSLgoKZ3JhbnRlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAqewoFUGFydHkSFQoRUEFSVFlfVU5TUEVDSUZJRUQQABIcChhQQVJUWV9PV05FUl9PUkdBTklTQVRJT04QARITCg9QQVJUWV9IT1VTRUhPTEQQAhITCg9QQVJUWV9JTlNUQUxMRVIQAxITCg9QQVJUWV9BVVRPTUFUSUMQBCpxCglOZWNlc3NpdHkSGQoVTkVDRVNTSVRZX1VOU1BFQ0lGSUVEEAASFgoSTkVDRVNTSVRZX1JFUVVJUkVEEAESGQoVTkVDRVNTSVRZX0ZPUl9GRUFUVVJFEAISFgoSTkVDRVNTSVRZX09QVElPTkFMEAMqqAEKCEV2aWRlbmNlEhgKFEVWSURFTkNFX1VOU1BFQ0lGSUVEEAASEwoPRVZJREVOQ0VfU1RBVEVEEAESEgoORVZJREVOQ0VfUEhPVE8QAhIUChBFVklERU5DRV9EUkFXSU5HEAMSFgoSRVZJREVOQ0VfSU5TUEVDVEVEEAQSFQoRRVZJREVOQ0VfTUVBU1VSRUQQBRIUChBFVklERU5DRV9ERVJJVkVEEAYqoAIKCUZhY3RUb3BpYxIaChZGQUNUX1RPUElDX1VOU1BFQ0lGSUVEEAASFwoTRkFDVF9UT1BJQ19CVUlMRElORxABEhQKEEZBQ1RfVE9QSUNfUk9PTVMQAhIaChZGQUNUX1RPUElDX0hFQVRfU09VUkNFEAMSHAoYRkFDVF9UT1BJQ19GTE9PUl9IRUFUSU5HEAQSHAoYRkFDVF9UT1BJQ19DT01GT1JUX0xPQURTEAUSGgoWRkFDVF9UT1BJQ19FTEVDVFJJQ0lUWRAGEh8KG0ZBQ1RfVE9QSUNfRElTVFJJQ1RfSEVBVElORxAHEhsKF0ZBQ1RfVE9QSUNfQ09OTkVDVElWSVRZEAgSFgoSRkFDVF9UT1BJQ19DT01GT1JUEAkqqQEKB0ZlYXR1cmUSFwoTRkVBVFVSRV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfRkxPT1JfWk9ORVMQARIRCg1GRUFUVVJFX1BMQU5UEAISGQoVRkVBVFVSRV9DT01GT1JUX0xPQURTEAMSEAoMRkVBVFVSRV9DT1NUEAQSFgoSRkVBVFVSRV9QRUFLX0dVQVJEEAUSFAoQRkVBVFVSRV9QTEFOTklORxAGKoUBCgxGZWF0dXJlU3RhdGUSHQoZRkVBVFVSRV9TVEFURV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfU1RBVEVfV09SS1MQARIXChNGRUFUVVJFX1NUQVRFX05FRURTEAISJAogRkVBVFVSRV9TVEFURV9CTE9DS0VEX0ZPUl9TQUZFVFkQAyr3AQoLQmxvY2tSZWFzb24SHAoYQkxPQ0tfUkVBU09OX1VOU1BFQ0lGSUVEEAASHAoYQkxPQ0tfUkVBU09OX1RFU1RfRkFJTEVEEAESIgoeQkxPQ0tfUkVBU09OX09VVFBVVF9OT1RfTEVBU0VEEAISJQohQkxPQ0tfUkVBU09OX1BPV0VSX09OX05PVF9BVF9SRVNUEAMSHAoYQkxPQ0tfUkVBU09OX0RFVklDRV9HT05FEAQSIgoeQkxPQ0tfUkVBU09OX0NPTlRST0xfUk9PTV9HT05FEAUSHwobQkxPQ0tfUkVBU09OX0xFQVNFX1RPT19MT05HEAYqfgoIVGVzdEtpbmQSGQoVVEVTVF9LSU5EX1VOU1BFQ0lGSUVEEAASGgoWVEVTVF9LSU5EX09VVFBVVF9MRUFTRRABEhkKFVRFU1RfS0lORF9aT05FX0VGRkVDVBACEiAKHFRFU1RfS0lORF9QVU1QX0FMTF9aT05FU19PRkYQAyqFAQoJVGVzdFN0YXRlEhoKFlRFU1RfU1RBVEVfVU5TUEVDSUZJRUQQABIWChJURVNUX1NUQVRFX1JVTk5JTkcQARIVChFURVNUX1NUQVRFX1BBU1NFRBACEhUKEVRFU1RfU1RBVEVfRkFJTEVEEAMSFgoSVEVTVF9TVEFURV9BQk9SVEVEEAQqnQIKC1Rlc3RGYWlsdXJlEhwKGFRFU1RfRkFJTFVSRV9VTlNQRUNJRklFRBAAEiUKIVRFU1RfRkFJTFVSRV9QT1dFUl9PTl9OT1RfQVRfUkVTVBABEiAKHFRFU1RfRkFJTFVSRV9OT19TVEFURV9DSEFOR0UQAhIiCh5URVNUX0ZBSUxVUkVfTEVBU0VfTk9UX1JFTkVXRUQQAxInCiNURVNUX0ZBSUxVUkVfRElEX05PVF9SRVRVUk5fVE9fUkVTVBAEEiMKH1RFU1RfRkFJTFVSRV9ERVZJQ0VfVU5SRUFDSEFCTEUQBRIaChZURVNUX0ZBSUxVUkVfTk9fRUZGRUNUEAYSGQoVVEVTVF9GQUlMVVJFX09CU0VSVkVEEAcqlAEKF0NvbW1pc3Npb25pbmdHcmFudFN0YXRlEikKJUNPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfVU5TUEVDSUZJRUQQABInCiNDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX1JFUVVFU1RFRBABEiUKIUNPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfR1JBTlRFRBACQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIrcEChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgISgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIvMCChRDb21taXNzaW9uaW5nUHJvZmlsZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPgoFZmFjdHMYAiADKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0Ej4KBXRlc3RzGAMgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdBI9CghmZWF0dXJlcxgEIAMoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXR1cxI9Cgh0ZW1wbGF0ZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZRIWCg5uZWVkc193aXRoaGVsZBgHIAEoCEoECAUQBlILdGVtcGxhdGVfaWQiTgoJSG9tZVNldHVwEjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg4KBnNldF91cBgCIAEoCCJECgpIb21lU2V0dXBzEjYKBWhvbWVzGAEgAygLMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXAi4gEKE0NvbW1pc3Npb25pbmdSZWNvcmQSPwoEZmFjdBgBIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0ZhY3RIABI/CgR0ZXN0GAIgASgLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdEgAEj8KCHRlbXBsYXRlGAMgASgLMisua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib3VzZVRlbXBsYXRlSABCCAoGcmVjb3JkIo8EChJDb21taXNzaW9uaW5nR3JhbnQSEAoIZ3JhbnRfaWQYASABKAkSMgoIc3BhY2VfaWQYAiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjIKCWluc3RhbGxlchgDIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIWCg5pbnN0YWxsZXJfbmFtZRgEIAEoCRJECgVzdGF0ZRgFIAEoDjI1Lmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSMAoMcmVxdWVzdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglzdGFydHNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmdyYW50ZWRfYnkYCiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSLgoKZ3JhbnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiwEKE0NvbW1pc3Npb25pbmdHcmFudHMSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEkAKBmdyYW50cxgCIAMoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50Ir8BChhDb21taXNzaW9uaW5nR3JhbnRSZWNvcmQSFgoOaW5zdGFsbGVyX25hbWUYASABKAkSLgoKZ3JhbnRlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAqewoFUGFydHkSFQoRUEFSVFlfVU5TUEVDSUZJRUQQABIcChhQQVJUWV9PV05FUl9PUkdBTklTQVRJT04QARITCg9QQVJUWV9IT1VTRUhPTEQQAhITCg9QQVJUWV9JTlNUQUxMRVIQAxITCg9QQVJUWV9BVVRPTUFUSUMQBCpxCglOZWNlc3NpdHkSGQoVTkVDRVNTSVRZX1VOU1BFQ0lGSUVEEAASFgoSTkVDRVNTSVRZX1JFUVVJUkVEEAESGQoVTkVDRVNTSVRZX0ZPUl9GRUFUVVJFEAISFgoSTkVDRVNTSVRZX09QVElPTkFMEAMqqAEKCEV2aWRlbmNlEhgKFEVWSURFTkNFX1VOU1BFQ0lGSUVEEAASEwoPRVZJREVOQ0VfU1RBVEVEEAESEgoORVZJREVOQ0VfUEhPVE8QAhIUChBFVklERU5DRV9EUkFXSU5HEAMSFgoSRVZJREVOQ0VfSU5TUEVDVEVEEAQSFQoRRVZJREVOQ0VfTUVBU1VSRUQQBRIUChBFVklERU5DRV9ERVJJVkVEEAYqoAIKCUZhY3RUb3BpYxIaChZGQUNUX1RPUElDX1VOU1BFQ0lGSUVEEAASFwoTRkFDVF9UT1BJQ19CVUlMRElORxABEhQKEEZBQ1RfVE9QSUNfUk9PTVMQAhIaChZGQUNUX1RPUElDX0hFQVRfU09VUkNFEAMSHAoYRkFDVF9UT1BJQ19GTE9PUl9IRUFUSU5HEAQSHAoYRkFDVF9UT1BJQ19DT01GT1JUX0xPQURTEAUSGgoWRkFDVF9UT1BJQ19FTEVDVFJJQ0lUWRAGEh8KG0ZBQ1RfVE9QSUNfRElTVFJJQ1RfSEVBVElORxAHEhsKF0ZBQ1RfVE9QSUNfQ09OTkVDVElWSVRZEAgSFgoSRkFDVF9UT1BJQ19DT01GT1JUEAkqqQEKB0ZlYXR1cmUSFwoTRkVBVFVSRV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfRkxPT1JfWk9ORVMQARIRCg1GRUFUVVJFX1BMQU5UEAISGQoVRkVBVFVSRV9DT01GT1JUX0xPQURTEAMSEAoMRkVBVFVSRV9DT1NUEAQSFgoSRkVBVFVSRV9QRUFLX0dVQVJEEAUSFAoQRkVBVFVSRV9QTEFOTklORxAGKoUBCgxGZWF0dXJlU3RhdGUSHQoZRkVBVFVSRV9TVEFURV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfU1RBVEVfV09SS1MQARIXChNGRUFUVVJFX1NUQVRFX05FRURTEAISJAogRkVBVFVSRV9TVEFURV9CTE9DS0VEX0ZPUl9TQUZFVFkQAyqcAgoLQmxvY2tSZWFzb24SHAoYQkxPQ0tfUkVBU09OX1VOU1BFQ0lGSUVEEAASHAoYQkxPQ0tfUkVBU09OX1RFU1RfRkFJTEVEEAESIgoeQkxPQ0tfUkVBU09OX09VVFBVVF9OT1RfTEVBU0VEEAISJQohQkxPQ0tfUkVBU09OX1BPV0VSX09OX05PVF9BVF9SRVNUEAMSHAoYQkxPQ0tfUkVBU09OX0RFVklDRV9HT05FEAQSIgoeQkxPQ0tfUkVBU09OX0NPTlRST0xfUk9PTV9HT05FEAUSHwobQkxPQ0tfUkVBU09OX0xFQVNFX1RPT19MT05HEAYSIwofQkxPQ0tfUkVBU09OX0RFVklDRV9BQ1JPU1NfSE9NRRAHKn4KCFRlc3RLaW5kEhkKFVRFU1RfS0lORF9VTlNQRUNJRklFRBAAEhoKFlRFU1RfS0lORF9PVVRQVVRfTEVBU0UQARIZChVURVNUX0tJTkRfWk9ORV9FRkZFQ1QQAhIgChxURVNUX0tJTkRfUFVNUF9BTExfWk9ORVNfT0ZGEAMqhQEKCVRlc3RTdGF0ZRIaChZURVNUX1NUQVRFX1VOU1BFQ0lGSUVEEAASFgoSVEVTVF9TVEFURV9SVU5OSU5HEAESFQoRVEVTVF9TVEFURV9QQVNTRUQQAhIVChFURVNUX1NUQVRFX0ZBSUxFRBADEhYKElRFU1RfU1RBVEVfQUJPUlRFRBAEKp0CCgtUZXN0RmFpbHVyZRIcChhURVNUX0ZBSUxVUkVfVU5TUEVDSUZJRUQQABIlCiFURVNUX0ZBSUxVUkVfUE9XRVJfT05fTk9UX0FUX1JFU1QQARIgChxURVNUX0ZBSUxVUkVfTk9fU1RBVEVfQ0hBTkdFEAISIgoeVEVTVF9GQUlMVVJFX0xFQVNFX05PVF9SRU5FV0VEEAMSJwojVEVTVF9GQUlMVVJFX0RJRF9OT1RfUkVUVVJOX1RPX1JFU1QQBBIjCh9URVNUX0ZBSUxVUkVfREVWSUNFX1VOUkVBQ0hBQkxFEAUSGgoWVEVTVF9GQUlMVVJFX05PX0VGRkVDVBAGEhkKFVRFU1RfRkFJTFVSRV9PQlNFUlZFRBAHKpQBChdDb21taXNzaW9uaW5nR3JhbnRTdGF0ZRIpCiVDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX1VOU1BFQ0lGSUVEEAASJwojQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9SRVFVRVNURUQQARIlCiFDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX0dSQU5URUQQAkICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.commissioning.v1.Provenance.
@@ -24,6 +24,9 @@ export declare const file_kusinta_iot_common_v1_types: GenFile;
24
24
  * household nothing beyond what living in the home gives it. Setting or changing an asset
25
25
  * owner changes no one's access.
26
26
  *
27
+ * IT DECIDES ONE THING: whether a room's outer limits can bind the device
28
+ * (climate.v1.OuterRoomLimits, WHAT THEY BIND). It still decides nothing about who sees what.
29
+ *
27
30
  * Unset: not recorded. On a device whose ownership is COMPANY, anything that depends on it
28
31
  * reads an unset owner as owner_organisation; a device a person owns has none, and is theirs.
29
32
  *
@@ -103,9 +103,9 @@ export declare type DeviceDescriptor = Message<"kusinta.iot.device.v1.DeviceDesc
103
103
 
104
104
  /**
105
105
  * Who owns it as an asset, where ownership is COMPANY: see common.v1.AssetOwner, which
106
- * decides nobody's access. Set by the gateway from its own records (webrtc.v1.SetAssetOwner)
107
- * and given to whoever is given the descriptor; a connector leaves it unset, and the gateway
108
- * ignores it from one.
106
+ * decides nobody's access, only whether a room's outer limits can bind the device. Set by the
107
+ * gateway from its own records (webrtc.v1.SetAssetOwner) and given to whoever is given the
108
+ * descriptor; a connector leaves it unset, and the gateway ignores it from one.
109
109
  *
110
110
  * @generated from field: kusinta.iot.common.v1.AssetOwner asset_owner = 21;
111
111
  */
@@ -25,7 +25,8 @@ export declare const file_kusinta_iot_device_v1_device: GenFile;
25
25
  * per physical device, so a device is still one row, one claim, one placement.
26
26
  *
27
27
  * Field numbers: 1-2 identity, 3-49 standard Matter device types, 50-99 vendor
28
- * extensions — the vendor_properties cases, and radio_link (52) outside that oneof.
28
+ * extensions — the vendor_properties cases, and radio_link (52) and heat_source (53) outside
29
+ * that oneof.
29
30
  *
30
31
  * endpoint_id is Matter's own endpoint number, and it is scoped to ONE DEVICE — not
31
32
  * global, and nothing coordinates numbering between devices. Endpoint 1 on one valve and
@@ -193,6 +194,17 @@ export declare type Endpoint = Message<"kusinta.iot.device.v1.Endpoint"> & {
193
194
  */
194
195
  radioLink?: RadioLink | undefined;
195
196
 
197
+ /**
198
+ * A heat source's own readings, on the endpoint its connector reports them on. Outside
199
+ * vendor_properties for the reason radio_link is: they are not one vendor's extension but
200
+ * readings any heat source may have, whoever made it, and they must be able to sit beside a
201
+ * vendor case the same endpoint carries. Selected by the vendor branch by its
202
+ * (vendor_extension) key "kusinta.heat_source".
203
+ *
204
+ * @generated from field: kusinta.iot.device.v1.HeatSourceReadings heat_source = 53;
205
+ */
206
+ heatSource?: HeatSourceReadings | undefined;
207
+
196
208
  /**
197
209
  * Every cluster this endpoint hosts: what it supports, and any attribute value that has
198
210
  * no typed field above. This is what makes a device the schema does not model usable
@@ -214,10 +226,11 @@ export declare type Endpoint = Message<"kusinta.iot.device.v1.Endpoint"> & {
214
226
  * vendor parameter has no cluster and so no ClusterState to be listed in. A name list
215
227
  * rather than an id list because the vendor branch addresses by name. A bare list
216
228
  * rather than a per-extension map because an endpoint carries at most one
217
- * vendor_properties case and at most a radio_link beside it, and the schema keeps
218
- * radio_link's attribute names disjoint from every vendor_properties case's — a test
219
- * enforces it — so a name here never needs its extension to be read. radio_link's
220
- * parameters are listed here the same way as a vendor's.
229
+ * vendor_properties case and at most a radio_link and a heat_source beside it, and the
230
+ * schema keeps the attribute names of radio_link, heat_source and every vendor_properties
231
+ * case disjoint — a test enforces it — so a name here never needs its extension to be
232
+ * read. radio_link's and heat_source's parameters are listed here the same way as a
233
+ * vendor's.
221
234
  *
222
235
  * Same reading as the Matter side: named here with no value = implemented, not yet
223
236
  * reported. Absent from the list = this device does not have it. Empty = not stated,
@@ -346,6 +359,149 @@ export declare type Device = Message<"kusinta.iot.device.v1.Device"> & {
346
359
  */
347
360
  export declare const DeviceSchema: GenMessage<Device>;
348
361
 
362
+ /**
363
+ * A heat source's own readings: the temperatures its controller measures and works out, and
364
+ * its run state — what it is producing, its compressor, its degree minutes, its alarm — as its
365
+ * connector reads them from the heat source or the maker's service. What
366
+ * heating.v1.HeatingPlant.readings_device_id reads a plant's heat source by.
367
+ *
368
+ * Travels as vendor-branch PropertyUpdates with vendor_extension "kusinta.heat_source" and
369
+ * these attribute names, the value case following the field type as everywhere on the vendor
370
+ * branch. A temperature is in centidegrees (°C × 100) as int_value, as temperatures are
371
+ * throughout this schema: a connector converts what the heat source gives — degrees with a
372
+ * decimal, a maker's register scale — into centidegrees and rounds it no further. An
373
+ * enum-valued reading travels as its number in uint_value, as RadioLink.quality does, and
374
+ * keeps explicit presence: its UNSPECIFIED is never sent, since an unreported one is an
375
+ * absent field.
376
+ *
377
+ * Vendor-neutral on purpose: the same message for every heat source, a heat pump, a boiler
378
+ * or a district-heating substation, so that whoever reads a plant reads one shape. Which of
379
+ * the maker's points carries each reading, and how its codes map onto the values here, is
380
+ * the connector's mapping and not part of this contract; a reading the heat source has no
381
+ * sensor or state for is never sent, never sent as zero.
382
+ *
383
+ * Every field is `optional`, for the reason vendor readings always are: absent means never
384
+ * reported, present means a reading, 0 °C included. Read only: a heat source is steered
385
+ * through its plant's control inputs (heating.v1.HeatPumpControl), never by writing these.
386
+ *
387
+ * Who is sent them follows the device, as for any device's readings
388
+ * (access.v1.MembershipRelation), whoever owns the heat source (common.v1.AssetOwner decides
389
+ * nothing of who sees what). A heat source filed in a home is household data there: its
390
+ * readings go to the home's residents and never to service (access.v1.DeviceAcl.relation
391
+ * SERVICE), who are given of it only what a webrtc.v1.ServiceStatus carries, within the
392
+ * service signals (access.v1.ServiceSignal): an alarm as a fault (alarm_active), and never
393
+ * alarm_code or any other reading here.
394
+ *
395
+ * @generated from message kusinta.iot.device.v1.HeatSourceReadings
396
+ */
397
+ export declare type HeatSourceReadings = Message<"kusinta.iot.device.v1.HeatSourceReadings"> & {
398
+ /**
399
+ * The heat source's own outdoor sensor: the outdoor temperature its heating curve works
400
+ * from.
401
+ *
402
+ * @generated from field: optional sint32 outdoor_centidegrees = 1;
403
+ */
404
+ outdoorCentidegrees?: number | undefined;
405
+
406
+ /**
407
+ * The supply (flow) line from the heat source to its climate system, at its own sensor —
408
+ * its first climate system where it serves several. Where radiators and a floor circuit
409
+ * share it, this is the shared supply, before the floor circuit's own mixing
410
+ * (heating.v1.FloorCircuit.supply_probe reads after it).
411
+ *
412
+ * @generated from field: optional sint32 supply_centidegrees = 2;
413
+ */
414
+ supplyCentidegrees?: number | undefined;
415
+
416
+ /**
417
+ * The return line into the heat source, at its own sensor: the combined return of
418
+ * everything it heats.
419
+ *
420
+ * @generated from field: optional sint32 return_centidegrees = 3;
421
+ */
422
+ returnCentidegrees?: number | undefined;
423
+
424
+ /**
425
+ * The top of the hot-water tank: how hot the water available to draw is.
426
+ *
427
+ * @generated from field: optional sint32 hot_water_top_centidegrees = 4;
428
+ */
429
+ hotWaterTopCentidegrees?: number | undefined;
430
+
431
+ /**
432
+ * The hot-water tank's charging sensor: the one the heat source starts and stops making
433
+ * hot water by.
434
+ *
435
+ * @generated from field: optional sint32 hot_water_charging_centidegrees = 5;
436
+ */
437
+ hotWaterChargingCentidegrees?: number | undefined;
438
+
439
+ /**
440
+ * The supply temperature the heat source's own control is aiming for on the line
441
+ * supply_centidegrees reads, as it has worked it out from its heating curve and the
442
+ * outdoor temperature, with whatever offsets it applies. Its target, not a measurement.
443
+ *
444
+ * @generated from field: optional sint32 calculated_supply_centidegrees = 6;
445
+ */
446
+ calculatedSupplyCentidegrees?: number | undefined;
447
+
448
+ /**
449
+ * What the heat source is producing now (HeatSourceProduction), as its number. While it
450
+ * makes hot water its supply and return say nothing of the space heating, which is what a
451
+ * consumer reading them for the heating sets aside. A connector that cannot tell what its
452
+ * heat source is producing sends none, rather than a guess or OTHER: OTHER is a state the
453
+ * heat source reports, not a reading the connector lacks.
454
+ *
455
+ * @generated from field: optional uint32 producing = 7;
456
+ */
457
+ producing?: number | undefined;
458
+
459
+ /**
460
+ * Its compressor's state (CompressorState), as its number — its first compressor, where it
461
+ * has several. Absent for a heat source with none.
462
+ *
463
+ * @generated from field: optional uint32 compressor_state = 8;
464
+ */
465
+ compressorState?: number | undefined;
466
+
467
+ /**
468
+ * Its degree minutes, in whole degree-minutes (°C × minutes), rounded to the nearest: the
469
+ * running sum over time of how far the supply has been from calculated_supply_centidegrees,
470
+ * negative while it has run below it. What a heat source that keeps one starts its
471
+ * compressor and its add-on heat by, at thresholds of its own. Absent for a heat source
472
+ * that keeps none.
473
+ *
474
+ * @generated from field: optional sint32 degree_minutes = 9;
475
+ */
476
+ degreeMinutes?: number | undefined;
477
+
478
+ /**
479
+ * Whether the heat source reports an alarm now. An error it reports in its own operation:
480
+ * service is given it as webrtc.v1.SERVICE_FAULT_ERROR (access.v1.SERVICE_SIGNAL_FAULT), as
481
+ * any device's error, and nothing more of it.
482
+ *
483
+ * @generated from field: optional bool alarm_active = 10;
484
+ */
485
+ alarmActive?: boolean | undefined;
486
+
487
+ /**
488
+ * The maker's own number for its most severe current alarm, for whoever looks it up in the
489
+ * maker's documentation. Vendor-specific: it means nothing without the product, and no
490
+ * consumer decides anything by it. Present only while alarm_active is true; a connector
491
+ * sends a null value (PropertyUpdate.null_value) when the alarm ends. Never sent to service,
492
+ * in a home or out of one.
493
+ *
494
+ * @generated from field: optional uint32 alarm_code = 11;
495
+ */
496
+ alarmCode?: number | undefined;
497
+ };
498
+
499
+ /**
500
+ * Describes the message kusinta.iot.device.v1.HeatSourceReadings.
501
+ * Use `create(HeatSourceReadingsSchema)` to create a new message.
502
+ */
503
+ export declare const HeatSourceReadingsSchema: GenMessage<HeatSourceReadings>;
504
+
349
505
  /**
350
506
  * A device's radio link, as its connector reports it.
351
507
  *
@@ -393,6 +549,112 @@ export declare type RadioLink = Message<"kusinta.iot.device.v1.RadioLink"> & {
393
549
  */
394
550
  export declare const RadioLinkSchema: GenMessage<RadioLink>;
395
551
 
552
+ /**
553
+ * The value set of HeatSourceReadings.producing: what a heat source is producing now. Not a
554
+ * field type — producing is a uint32 like every enum-valued reading, so it keeps explicit
555
+ * presence — but the named constants for its numbers. A connector maps its maker's codes onto
556
+ * these; a code none of them names is OTHER.
557
+ *
558
+ * @generated from enum kusinta.iot.device.v1.HeatSourceProduction
559
+ */
560
+ export enum HeatSourceProduction {
561
+ /**
562
+ * Never sent; an unreported state is an absent field.
563
+ *
564
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_UNSPECIFIED = 0;
565
+ */
566
+ UNSPECIFIED = 0,
567
+
568
+ /**
569
+ * Producing nothing.
570
+ *
571
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_OFF = 1;
572
+ */
573
+ OFF = 1,
574
+
575
+ /**
576
+ * Heating the building: its climate systems.
577
+ *
578
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_SPACE_HEATING = 2;
579
+ */
580
+ SPACE_HEATING = 2,
581
+
582
+ /**
583
+ * Making hot water.
584
+ *
585
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_HOT_WATER = 3;
586
+ */
587
+ HOT_WATER = 3,
588
+
589
+ /**
590
+ * Heating a pool.
591
+ *
592
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_POOL = 4;
593
+ */
594
+ POOL = 4,
595
+
596
+ /**
597
+ * Cooling.
598
+ *
599
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_COOLING = 5;
600
+ */
601
+ COOLING = 5,
602
+
603
+ /**
604
+ * Something none of the above names, such as a transfer between stores.
605
+ *
606
+ * @generated from enum value: HEAT_SOURCE_PRODUCTION_OTHER = 6;
607
+ */
608
+ OTHER = 6,
609
+ }
610
+
611
+ /**
612
+ * Describes the enum kusinta.iot.device.v1.HeatSourceProduction.
613
+ */
614
+ export declare const HeatSourceProductionSchema: GenEnum<HeatSourceProduction>;
615
+
616
+ /**
617
+ * The value set of HeatSourceReadings.compressor_state, as the named constants for its
618
+ * numbers. Starting and stopping are kept apart from running and stopped: while a compressor
619
+ * starts, the heat it makes has not yet reached the supply, and readings then are not yet what
620
+ * it runs at.
621
+ *
622
+ * @generated from enum kusinta.iot.device.v1.CompressorState
623
+ */
624
+ export enum CompressorState {
625
+ /**
626
+ * Never sent; an unreported state is an absent field.
627
+ *
628
+ * @generated from enum value: COMPRESSOR_STATE_UNSPECIFIED = 0;
629
+ */
630
+ UNSPECIFIED = 0,
631
+
632
+ /**
633
+ * @generated from enum value: COMPRESSOR_STATE_STOPPED = 1;
634
+ */
635
+ STOPPED = 1,
636
+
637
+ /**
638
+ * @generated from enum value: COMPRESSOR_STATE_STARTING = 2;
639
+ */
640
+ STARTING = 2,
641
+
642
+ /**
643
+ * @generated from enum value: COMPRESSOR_STATE_RUNNING = 3;
644
+ */
645
+ RUNNING = 3,
646
+
647
+ /**
648
+ * @generated from enum value: COMPRESSOR_STATE_STOPPING = 4;
649
+ */
650
+ STOPPING = 4,
651
+ }
652
+
653
+ /**
654
+ * Describes the enum kusinta.iot.device.v1.CompressorState.
655
+ */
656
+ export declare const CompressorStateSchema: GenEnum<CompressorState>;
657
+
396
658
  /**
397
659
  * The value set of RadioLink.quality: how well a link is doing, as the device's
398
660
  * connector rates it. Not a field type — quality is a uint32 like every enum-valued