|
1 | 1 | """Plugwise Stick and Smile constants.""" |
2 | 2 |
|
| 3 | +import datetime as dt |
| 4 | + |
3 | 5 | # Copied homeassistant.consts |
4 | 6 | ATTR_DEVICE_CLASS = "device_class" |
| 7 | +ATTR_LAST_RESET = "last_reset" |
5 | 8 | ATTR_NAME = "name" |
6 | 9 | ATTR_STATE = "state" |
| 10 | +ATTR_STATE_CLASS = "state_class" |
7 | 11 | ATTR_UNIT_OF_MEASUREMENT = "unit_of_measurement" |
8 | 12 | DEGREE = "°" |
9 | 13 | HVAC_MODE_AUTO = "auto" |
|
22 | 26 | VOLUME_CUBIC_METERS = "m³" |
23 | 27 | VOLUME_CUBIC_METERS_PER_HOUR = "m³/h" |
24 | 28 |
|
| 29 | +UTC = dt.timezone.utc |
| 30 | +LR_TIME_0 = dt.datetime.utcfromtimestamp(0).replace(tzinfo=UTC) |
| 31 | + |
25 | 32 | ### Stick constants ### |
26 | 33 |
|
27 | 34 | UTF8_DECODE = "utf-8" |
|
150 | 157 |
|
151 | 158 | # Max seconds the internal clock of plugwise nodes |
152 | 159 | # are allowed to drift in seconds |
153 | | -MAX_TIME_DRIFT = 30 |
| 160 | +MAX_TIME_DRIFT = 5 |
154 | 161 |
|
155 | 162 | # Default sleep time in seconds for watchdog daemon |
156 | 163 | WATCHDOG_DEAMON = 60 |
|
244 | 251 | "state": "available", |
245 | 252 | "unit": "state", |
246 | 253 | } |
| 254 | +FEATURE_ENERGY_CONSUMPTION_TODAY = { |
| 255 | + "id": "energy_consumption_today", |
| 256 | + "name": "Energy consumption today", |
| 257 | + "state": "Energy_consumption_today", |
| 258 | + "unit": ENERGY_KILO_WATT_HOUR, |
| 259 | +} |
247 | 260 | FEATURE_HUMIDITY = { |
248 | 261 | "id": "humidity", |
249 | 262 | "name": "Humidity", |
|
564 | 577 | ATTR_NAME: "Battery", |
565 | 578 | ATTR_STATE: None, |
566 | 579 | ATTR_DEVICE_CLASS: "battery", |
| 580 | + ATTR_STATE_CLASS: "measurement", |
| 581 | + ATTR_LAST_RESET: None, |
567 | 582 | ATTR_ICON: None, |
568 | 583 | ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, |
569 | 584 | } |
|
573 | 588 | ATTR_NAME: "Temperature", |
574 | 589 | ATTR_STATE: None, |
575 | 590 | ATTR_DEVICE_CLASS: "temperature", |
| 591 | + ATTR_STATE_CLASS: "measurement", |
| 592 | + ATTR_LAST_RESET: None, |
576 | 593 | ATTR_ICON: None, |
577 | 594 | ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, |
578 | 595 | } |
|
582 | 599 | ATTR_NAME: "Device State", |
583 | 600 | ATTR_STATE: None, |
584 | 601 | ATTR_DEVICE_CLASS: None, |
| 602 | + ATTR_STATE_CLASS: None, |
| 603 | + ATTR_LAST_RESET: None, |
585 | 604 | ATTR_ICON: None, |
586 | 605 | ATTR_UNIT_OF_MEASUREMENT: None, |
587 | 606 | } |
|
591 | 610 | ATTR_NAME: "Electricity Consumed", |
592 | 611 | ATTR_STATE: None, |
593 | 612 | ATTR_DEVICE_CLASS: "power", |
| 613 | + ATTR_STATE_CLASS: "measurement", |
| 614 | + ATTR_LAST_RESET: None, |
594 | 615 | ATTR_ICON: None, |
595 | 616 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
596 | 617 | } |
|
600 | 621 | ATTR_NAME: "Electricity Consumed Interval", |
601 | 622 | ATTR_STATE: None, |
602 | 623 | ATTR_DEVICE_CLASS: "energy", |
| 624 | + ATTR_STATE_CLASS: "measurement", |
| 625 | + ATTR_LAST_RESET: None, |
603 | 626 | ATTR_ICON: None, |
604 | 627 | ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
605 | 628 | } |
|
609 | 632 | ATTR_NAME: "Electricity Consumed Off Peak Cumulative", |
610 | 633 | ATTR_STATE: None, |
611 | 634 | ATTR_DEVICE_CLASS: "energy", |
| 635 | + ATTR_STATE_CLASS: "measurement", |
| 636 | + ATTR_LAST_RESET: LR_TIME_0, |
612 | 637 | ATTR_ICON: None, |
613 | | - ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
| 638 | + ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, |
614 | 639 | } |
615 | 640 | EL_CONSUMED_OFF_PEAK_INTERVAL = { |
616 | 641 | ATTR_ID: "electricity_consumed_off_peak_interval", |
617 | 642 | ATTR_ENABLED: True, |
618 | 643 | ATTR_NAME: "Electricity Consumed Off Peak Interval", |
619 | 644 | ATTR_STATE: None, |
620 | 645 | ATTR_DEVICE_CLASS: "energy", |
| 646 | + ATTR_STATE_CLASS: "measurement", |
| 647 | + ATTR_LAST_RESET: None, |
621 | 648 | ATTR_ICON: None, |
622 | 649 | ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
623 | 650 | } |
|
627 | 654 | ATTR_NAME: "Electricity Consumed Off Peak Point", |
628 | 655 | ATTR_STATE: None, |
629 | 656 | ATTR_DEVICE_CLASS: "power", |
| 657 | + ATTR_STATE_CLASS: "measurement", |
| 658 | + ATTR_LAST_RESET: None, |
630 | 659 | ATTR_ICON: None, |
631 | 660 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
632 | 661 | } |
|
636 | 665 | ATTR_NAME: "Electricity Consumed Peak Cumulative", |
637 | 666 | ATTR_STATE: None, |
638 | 667 | ATTR_DEVICE_CLASS: "energy", |
| 668 | + ATTR_STATE_CLASS: "measurement", |
| 669 | + ATTR_LAST_RESET: LR_TIME_0, |
639 | 670 | ATTR_ICON: None, |
640 | | - ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
| 671 | + ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, |
641 | 672 | } |
642 | 673 | EL_CONSUMED_PEAK_INTERVAL = { |
643 | 674 | ATTR_ID: "electricity_consumed_peak_interval", |
644 | 675 | ATTR_ENABLED: True, |
645 | 676 | ATTR_NAME: "Electricity Consumed Peak Interval", |
646 | 677 | ATTR_STATE: None, |
647 | 678 | ATTR_DEVICE_CLASS: "energy", |
| 679 | + ATTR_STATE_CLASS: "measurement", |
| 680 | + ATTR_LAST_RESET: None, |
648 | 681 | ATTR_ICON: None, |
649 | 682 | ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
650 | 683 | } |
|
654 | 687 | ATTR_NAME: "Electricity Consumed Peak Point", |
655 | 688 | ATTR_STATE: None, |
656 | 689 | ATTR_DEVICE_CLASS: "power", |
| 690 | + ATTR_STATE_CLASS: "measurement", |
| 691 | + ATTR_LAST_RESET: None, |
657 | 692 | ATTR_ICON: None, |
658 | 693 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
659 | 694 | } |
|
663 | 698 | ATTR_NAME: "Electricity Produced", |
664 | 699 | ATTR_STATE: None, |
665 | 700 | ATTR_DEVICE_CLASS: "power", |
| 701 | + ATTR_STATE_CLASS: "measurement", |
| 702 | + ATTR_LAST_RESET: None, |
666 | 703 | ATTR_ICON: None, |
667 | 704 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
668 | 705 | } |
|
672 | 709 | ATTR_NAME: "Electricity Produced Interval", |
673 | 710 | ATTR_STATE: None, |
674 | 711 | ATTR_DEVICE_CLASS: "energy", |
| 712 | + ATTR_STATE_CLASS: "measurement", |
| 713 | + ATTR_LAST_RESET: None, |
675 | 714 | ATTR_ICON: None, |
676 | 715 | ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
677 | 716 | } |
|
681 | 720 | ATTR_NAME: "Electricity Produced Off Peak Cumulative", |
682 | 721 | ATTR_STATE: None, |
683 | 722 | ATTR_DEVICE_CLASS: "energy", |
| 723 | + ATTR_STATE_CLASS: "measurement", |
| 724 | + ATTR_LAST_RESET: LR_TIME_0, |
684 | 725 | ATTR_ICON: None, |
685 | | - ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
| 726 | + ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, |
686 | 727 | } |
687 | 728 | EL_PRODUCED_OFF_PEAK_INTERVAL = { |
688 | 729 | ATTR_ID: "electricity_produced_off_peak_interval", |
689 | 730 | ATTR_ENABLED: True, |
690 | 731 | ATTR_NAME: "Electricity Produced Off Peak Interval", |
691 | 732 | ATTR_STATE: None, |
692 | 733 | ATTR_DEVICE_CLASS: "energy", |
| 734 | + ATTR_STATE_CLASS: "measurement", |
| 735 | + ATTR_LAST_RESET: None, |
693 | 736 | ATTR_ICON: None, |
694 | 737 | ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
695 | 738 | } |
|
699 | 742 | ATTR_NAME: "Electricity Produced Off Peak Point", |
700 | 743 | ATTR_STATE: None, |
701 | 744 | ATTR_DEVICE_CLASS: "power", |
| 745 | + ATTR_STATE_CLASS: "measurement", |
| 746 | + ATTR_LAST_RESET: None, |
702 | 747 | ATTR_ICON: None, |
703 | 748 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
704 | 749 | } |
|
708 | 753 | ATTR_NAME: "Electricity Produced Peak Cumulative", |
709 | 754 | ATTR_STATE: None, |
710 | 755 | ATTR_DEVICE_CLASS: "energy", |
| 756 | + ATTR_STATE_CLASS: "measurement", |
| 757 | + ATTR_LAST_RESET: LR_TIME_0, |
711 | 758 | ATTR_ICON: None, |
712 | | - ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
| 759 | + ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, |
713 | 760 | } |
714 | 761 | EL_PRODUCED_PEAK_INTERVAL = { |
715 | 762 | ATTR_ID: "electricity_produced_peak_interval", |
716 | 763 | ATTR_ENABLED: True, |
717 | 764 | ATTR_NAME: "Electricity Produced Peak Interval", |
718 | 765 | ATTR_STATE: None, |
719 | 766 | ATTR_DEVICE_CLASS: "energy", |
| 767 | + ATTR_STATE_CLASS: "measurement", |
| 768 | + ATTR_LAST_RESET: None, |
720 | 769 | ATTR_ICON: None, |
721 | 770 | ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
722 | 771 | } |
|
726 | 775 | ATTR_NAME: "Electricity Produced Peak Point", |
727 | 776 | ATTR_STATE: None, |
728 | 777 | ATTR_DEVICE_CLASS: "power", |
| 778 | + ATTR_STATE_CLASS: "measurement", |
| 779 | + ATTR_LAST_RESET: None, |
729 | 780 | ATTR_ICON: None, |
730 | 781 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
731 | 782 | } |
|
735 | 786 | ATTR_NAME: "Gas Consumed Cumulative", |
736 | 787 | ATTR_STATE: None, |
737 | 788 | ATTR_DEVICE_CLASS: None, |
| 789 | + ATTR_STATE_CLASS: "measurement", |
| 790 | + ATTR_LAST_RESET: LR_TIME_0, |
738 | 791 | ATTR_ICON: FLAME_ICON, |
739 | 792 | ATTR_UNIT_OF_MEASUREMENT: VOLUME_CUBIC_METERS, |
740 | 793 | } |
|
744 | 797 | ATTR_NAME: "Gas Consumed Interval", |
745 | 798 | ATTR_STATE: None, |
746 | 799 | ATTR_DEVICE_CLASS: None, |
| 800 | + ATTR_STATE_CLASS: "measurement", |
| 801 | + ATTR_LAST_RESET: None, |
747 | 802 | ATTR_ICON: FLAME_ICON, |
748 | 803 | ATTR_UNIT_OF_MEASUREMENT: VOLUME_CUBIC_METERS, |
749 | 804 | } |
|
753 | 808 | ATTR_NAME: "Relative Humidity", |
754 | 809 | ATTR_STATE: None, |
755 | 810 | ATTR_DEVICE_CLASS: "humidity", |
| 811 | + ATTR_STATE_CLASS: "measurement", |
| 812 | + ATTR_LAST_RESET: None, |
756 | 813 | ATTR_ICON: None, |
757 | 814 | ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, |
758 | 815 | } |
|
762 | 819 | ATTR_NAME: "Illuminance", |
763 | 820 | ATTR_STATE: None, |
764 | 821 | ATTR_DEVICE_CLASS: "illuminance", |
| 822 | + ATTR_STATE_CLASS: "measurement", |
| 823 | + ATTR_LAST_RESET: None, |
765 | 824 | ATTR_ICON: None, |
766 | 825 | ATTR_UNIT_OF_MEASUREMENT: UNIT_LUMEN, |
767 | 826 | } |
|
771 | 830 | ATTR_NAME: "Intended Boiler Temperature", |
772 | 831 | ATTR_STATE: None, |
773 | 832 | ATTR_DEVICE_CLASS: "temperature", |
| 833 | + ATTR_STATE_CLASS: "measurement", |
| 834 | + ATTR_LAST_RESET: None, |
774 | 835 | ATTR_ICON: None, |
775 | 836 | ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, |
776 | 837 | } |
|
780 | 841 | ATTR_NAME: "Modulation Level", |
781 | 842 | ATTR_STATE: None, |
782 | 843 | ATTR_DEVICE_CLASS: None, |
| 844 | + ATTR_STATE_CLASS: "measurement", |
| 845 | + ATTR_LAST_RESET: None, |
783 | 846 | ATTR_ICON: "mdi:percent", |
784 | 847 | ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, |
785 | 848 | } |
|
789 | 852 | ATTR_NAME: "Net Electricity Cumulative", |
790 | 853 | ATTR_STATE: None, |
791 | 854 | ATTR_DEVICE_CLASS: "energy", |
| 855 | + ATTR_STATE_CLASS: "measurement", |
| 856 | + ATTR_LAST_RESET: LR_TIME_0, |
792 | 857 | ATTR_ICON: None, |
793 | | - ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, |
| 858 | + ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, |
794 | 859 | } |
795 | 860 | NET_EL_POINT = { |
796 | 861 | ATTR_ID: "net_electricity_point", |
797 | 862 | ATTR_ENABLED: True, |
798 | 863 | ATTR_NAME: "Net Electricity Point", |
799 | 864 | ATTR_STATE: None, |
800 | 865 | ATTR_DEVICE_CLASS: "power", |
| 866 | + ATTR_STATE_CLASS: "measurement", |
| 867 | + ATTR_LAST_RESET: None, |
801 | 868 | ATTR_ICON: None, |
802 | 869 | ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, |
803 | 870 | } |
|
807 | 874 | ATTR_NAME: "Outdoor Temperature", |
808 | 875 | ATTR_STATE: None, |
809 | 876 | ATTR_DEVICE_CLASS: "temperature", |
| 877 | + ATTR_STATE_CLASS: "measurement", |
| 878 | + ATTR_LAST_RESET: None, |
810 | 879 | ATTR_ICON: None, |
811 | 880 | ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, |
812 | 881 | } |
|
816 | 885 | ATTR_NAME: "Return Temperature", |
817 | 886 | ATTR_STATE: None, |
818 | 887 | ATTR_DEVICE_CLASS: "temperature", |
| 888 | + ATTR_STATE_CLASS: "measurement", |
| 889 | + ATTR_LAST_RESET: None, |
819 | 890 | ATTR_ICON: None, |
820 | 891 | ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, |
821 | 892 | } |
|
825 | 896 | ATTR_NAME: "Setpoint", |
826 | 897 | ATTR_STATE: None, |
827 | 898 | ATTR_DEVICE_CLASS: "temperature", |
| 899 | + ATTR_STATE_CLASS: "measurement", |
| 900 | + ATTR_LAST_RESET: None, |
828 | 901 | ATTR_ICON: None, |
829 | 902 | ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, |
830 | 903 | } |
|
834 | 907 | ATTR_NAME: "Temperature Difference", |
835 | 908 | ATTR_STATE: None, |
836 | 909 | ATTR_DEVICE_CLASS: None, |
| 910 | + ATTR_STATE_CLASS: "measurement", |
| 911 | + ATTR_LAST_RESET: None, |
837 | 912 | ATTR_ICON: None, |
838 | 913 | ATTR_UNIT_OF_MEASUREMENT: TEMP_KELVIN, |
839 | 914 | } |
|
843 | 918 | ATTR_NAME: "Valve Position", |
844 | 919 | ATTR_STATE: None, |
845 | 920 | ATTR_DEVICE_CLASS: None, |
| 921 | + ATTR_STATE_CLASS: "measurement", |
| 922 | + ATTR_LAST_RESET: None, |
846 | 923 | ATTR_ICON: "mdi:valve", |
847 | 924 | ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, |
848 | 925 | } |
|
852 | 929 | ATTR_NAME: "Water Pressure", |
853 | 930 | ATTR_STATE: None, |
854 | 931 | ATTR_DEVICE_CLASS: "pressure", |
| 932 | + ATTR_STATE_CLASS: "measurement", |
| 933 | + ATTR_LAST_RESET: None, |
855 | 934 | ATTR_ICON: None, |
856 | 935 | ATTR_UNIT_OF_MEASUREMENT: PRESSURE_BAR, |
857 | 936 | } |
|
861 | 940 | ATTR_NAME: "Water Temperature", |
862 | 941 | ATTR_STATE: None, |
863 | 942 | ATTR_DEVICE_CLASS: "temperature", |
| 943 | + ATTR_STATE_CLASS: "measurement", |
| 944 | + ATTR_LAST_RESET: None, |
864 | 945 | ATTR_ICON: None, |
865 | 946 | ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, |
866 | 947 | } |
|
0 commit comments