Bug/Report-Day-Sensors-Float-Not-Str - #110
Merged
jjjonesjr33 merged 11 commits intoAug 22, 2025
Merged
Conversation
…t_of_measurement to sensors.
…//github.com/C4-Dimitri/petlibro into bug/fix-desiccant-remaining-days-int-not-str
jjjonesjr33
self-requested a review
August 11, 2025 20:32
jjjonesjr33
requested changes
Aug 20, 2025
jjjonesjr33
left a comment
Owner
There was a problem hiding this comment.
Minor change to handle possible error(s). Please review and let me know.
Owner
|
same here @C4-Dimitri |
Contributor
Author
|
@jjjonesjr33, this one resolved. |
jjjonesjr33
added a commit
that referenced
this pull request
Sep 15, 2025
* Add PLAF107 (Space Smart Feeder) integration for automated feeding and control * Add Support for Lid Mode, Lid Speed, and Lid Close Time for OneRFIDSmartFeeder PLAF301 (#55) * Test Manual Lid Opening * With correct description for def, and with missing comma. * Try without in line comment - and Bool True * Test Display Matrix Buttons * Better Endpoint to get data, data is already in seconds, no need to convert. * Test Sound + Shorter Names For Display * With Corrected soundEndTime * Now sending to the correct endpoint... * Test 1st real commit on this. * Remove device class from select entity as its superfluous. * switch order to ensure defaults are after none defaults. * switch order again... * Change order of a few things and dont assign a default to current_option. * try and make the other dataclasses non-default. * try with list rather than List * test again * try and rename options to see if it interferes. * test * lets try with naming them a custom name. * test with select in init * Test * Test Again * Test new order again... * try making all non-required. * test again * Now with options included. * Test setting from initilization * add logic for method to correctly address mapping to api values. * add missing comma... * test on 1 line. * Test with lid close time * Add correct reference to get initial value for close door time. and change MDI for select entities. * Updated select.py Changed wording to match app, but also leave descriptive * Updated one_rfid_smart_feeder.py matched app and added descriptive text * Update en.json updated translations * Update de.json updated translations * Update en.json fixed spacing * Update de.json reverting, error with validation * Update en.json reverting, error with validation --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Update manifest.json * Updated FUNDING.yml Added Buy Me a Cofffee * Updated PULL_REQUEST_TEMPLATE.md Updated pull request template * Updated PULL_REQUEST_TEMPLATE.md Changed formatting * Updated PULL_REQUEST_TEMPLATE.md fixed spacing for webhook * Updated PULL_REQUEST_TEMPLATE.md Corrected layout for webhook change * Updated README.md testing webhook integration * Updated README.md removed webhook test * Add Support for Setting the Manual Feed Amount for Air Smart Feeders (#63) * Adding a Number-based "Manual Feed" Entity so a defined number of feed can be dispensed * Created static manual feed quantity, a setter, and a number gauge for the user to set the value * Was able to dispense more than 1/24th cup of food Edited air_smart_feeder.py and api.py * Implemented the option to set the manual feed dispense value via a number scale. -Added a in-class variable that represents the manual feed quantity in air_smart_feeder.py - Changed the set_manual_feed method in air_smart_feeder.py to accomadate passing in the new variable -Changed the set_manual_feed function in api.py to allow to pass the new variable into the api-driven web-request -Added a number entity to represent the manual feed quantity in number.py * Updated api.py * Updated button.py * Updated api.py * Updated air_smart_feeder.py * Updated granary_smart_camera_feeder.py * Updated granary_smart_feeder.py * Updated space_smart_feeder.py * Updated one_rfid_smart_feeder.py * Updated number.py * Updated button.py * Updated button.py * Updated button.py --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Add Support for Changing Display Icon and Display Text for OneRFIDSmartFeeder PLAF301 (#64) * Test Manual Lid Opening * With correct description for def, and with missing comma. * Try without in line comment - and Bool True * Test Display Matrix Buttons * Better Endpoint to get data, data is already in seconds, no need to convert. * Test Sound + Shorter Names For Display * With Corrected soundEndTime * Now sending to the correct endpoint... * Test 1st real commit on this. * Remove device class from select entity as its superfluous. * switch order to ensure defaults are after none defaults. * switch order again... * Change order of a few things and dont assign a default to current_option. * try and make the other dataclasses non-default. * try with list rather than List * test again * try and rename options to see if it interferes. * test * lets try with naming them a custom name. * test with select in init * Test * Test Again * Test new order again... * try making all non-required. * test again * Now with options included. * Test setting from initilization * add logic for method to correctly address mapping to api values. * add missing comma... * test on 1 line. * Test with lid close time * Add correct reference to get initial value for close door time. and change MDI for select entities. * Updated select.py Changed wording to match app, but also leave descriptive * Updated one_rfid_smart_feeder.py matched app and added descriptive text * Update en.json updated translations * Update de.json updated translations * Update en.json fixed spacing * Update de.json reverting, error with validation * Update en.json reverting, error with validation * Test initial text implementation - definitely wont work lol * test again * test with value defined. * test * test * Test * Test * Test again * test with updating the state. * change how native_value is filled. * Test with new calling of update. * try with a method for setting the display_text. without actually updating API. * force state update after update. * force update after action. * Update text.py * Test with a setter property to set the state. * Change a lot of structure to state locally only. * Test first implementation of icon selector. * test with floats instead of str * Test * test * Test Text Entity and Select Menu Interaction * Update en.json * Test * Remove hello and text options from icon selector, as they dont work. * Final * Test Display Value Sensor * Add Back Display Selection Property * Handle as Integer rather than float. --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Updated manifest.json Bumping two version as we have a double push going out for: Add Support for Changing Display Icon and Display Text for OneRFIDSmartFeeder PLAF301 Add Support for Setting the Manual Feed Amount for Feeders * Hot Fix: Reduce Warnings in HA (#71) * Hot Fix: Reduce Warnings in HA These warnings don't seem to be an issue just rather logic working as intended. This clutters HA logs. * Update switch.py * Updated README.md Added star history * Updated README.md Moved preview to wiki, and updated the main readme. * Updated README.md Corrected spacing * Updated README.md Issued a notice at the top for Important information as well as changed important to note. * Add translations for multiple languages - Added support for Simplified Chinese - Added Spanish translations - Added Hindi translations - Added Arabic translations - Added Bengali translations - Added Portuguese translations - Added Russian translations - Added Japanese translations - Added French translations * PLAF109 | Add button to reposition the schedule (#88) * fix(session): 🐛 Use time zone from home assistant to ensure commands work as expected The action `/device/wetFeedingPlan/repositon` requires the correct time zone in the headers.\nIf this is not the case an error is returned that a modification of the feeding times are not allowed * feat(api): ✨ Added new method `set_reposition_schedule` This action is used by the Polar Wet Food Feeder for `Reposition This Schedule` when managing the schedules.\nThis action should be executed after inserting the food bowl with new food. * feat(device/PLAF109): ✨ Added method to reposition the schedule * feat(button): ✨ Added button to reposition the schedule for the Polar Wet Food Feeder * fix(api): 🚑 Added missing parameter `time_zone` * refactor(device/PLAF109): 🥅 Catch missing templateName or invalid wet feeding plan data --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Fix [Bug]: [Minor] [One RIFD] Text on display needs to be all caps (#89) * Test Manual Lid Opening * With correct description for def, and with missing comma. * Try without in line comment - and Bool True * Test Display Matrix Buttons * Better Endpoint to get data, data is already in seconds, no need to convert. * Test Sound + Shorter Names For Display * With Corrected soundEndTime * Now sending to the correct endpoint... * Test 1st real commit on this. * Remove device class from select entity as its superfluous. * switch order to ensure defaults are after none defaults. * switch order again... * Change order of a few things and dont assign a default to current_option. * try and make the other dataclasses non-default. * try with list rather than List * test again * try and rename options to see if it interferes. * test * lets try with naming them a custom name. * test with select in init * Test * Test Again * Test new order again... * try making all non-required. * test again * Now with options included. * Test setting from initilization * add logic for method to correctly address mapping to api values. * add missing comma... * test on 1 line. * Test with lid close time * Add correct reference to get initial value for close door time. and change MDI for select entities. * Updated select.py Changed wording to match app, but also leave descriptive * Updated one_rfid_smart_feeder.py matched app and added descriptive text * Update en.json updated translations * Update de.json updated translations * Update en.json fixed spacing * Update de.json reverting, error with validation * Update en.json reverting, error with validation * Test initial text implementation - definitely wont work lol * test again * test with value defined. * test * test * Test * Test * Test again * test with updating the state. * change how native_value is filled. * Test with new calling of update. * try with a method for setting the display_text. without actually updating API. * force state update after update. * force update after action. * Update text.py * Test with a setter property to set the state. * Change a lot of structure to state locally only. * Test first implementation of icon selector. * test with floats instead of str * Test * test * Test Text Entity and Select Menu Interaction * Update en.json * Test * Remove hello and text options from icon selector, as they dont work. * Final * Test Display Value Sensor * Add Back Display Selection Property * Handle as Integer rather than float. * Test Add Uppercase Conversion * Fix Logging --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Updated manifest.json * Add Todays Feeding Plan Information to Feeding Plan Status Sensor + add Danish & Dutch/Flemish translations (#90) * Test Manual Lid Opening * With correct description for def, and with missing comma. * Try without in line comment - and Bool True * Test Display Matrix Buttons * Better Endpoint to get data, data is already in seconds, no need to convert. * Test Sound + Shorter Names For Display * With Corrected soundEndTime * Now sending to the correct endpoint... * Test 1st real commit on this. * Remove device class from select entity as its superfluous. * switch order to ensure defaults are after none defaults. * switch order again... * Change order of a few things and dont assign a default to current_option. * try and make the other dataclasses non-default. * try with list rather than List * test again * try and rename options to see if it interferes. * test * lets try with naming them a custom name. * test with select in init * Test * Test Again * Test new order again... * try making all non-required. * test again * Now with options included. * Test setting from initilization * add logic for method to correctly address mapping to api values. * add missing comma... * test on 1 line. * Test with lid close time * Add correct reference to get initial value for close door time. and change MDI for select entities. * Updated select.py Changed wording to match app, but also leave descriptive * Updated one_rfid_smart_feeder.py matched app and added descriptive text * Update en.json updated translations * Update de.json updated translations * Update en.json fixed spacing * Update de.json reverting, error with validation * Update en.json reverting, error with validation * Test initial text implementation - definitely wont work lol * test again * test with value defined. * test * test * Test * Test * Test again * test with updating the state. * change how native_value is filled. * Test with new calling of update. * try with a method for setting the display_text. without actually updating API. * force state update after update. * force update after action. * Update text.py * Test with a setter property to set the state. * Change a lot of structure to state locally only. * Test first implementation of icon selector. * test with floats instead of str * Test * test * Test Text Entity and Select Menu Interaction * Update en.json * Test * Remove hello and text options from icon selector, as they dont work. * Final * Test Display Value Sensor * Add Back Display Selection Property * Handle as Integer rather than float. * Test Add Uppercase Conversion * Fix Logging * test extra attributes for feeding plan today * fix _device to be device * Add PlanID into attributes * Try and add amount of grains with correct unit of measurement. + expand attributes to all feeder type devices. * Add correct resolved unit of measurement * fix cups check * Add Danish + Dutch/Flemish translations --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * feature/fountains-water-mode-control (#97) * Support for changing water dispensing mode, the interval, and duration of water being dispensed for the intermitten water mode. * Feature/Dry-Feeders-Last-Feed-Time-Sensor (#99) * Feature/Dry-Feeders-Last-Feed-Time-Sensor * Feature/Fountains-Filter-Cleaning-Control (#98) * Feature/Fountains-Filter-Cleaning-Control * Complete all requested renamings. + fix key = str, to key: str * Complete all requested name changes + fix key = str, to key: str * Fix a couple accidental removals * Remove last refernence to Frequency vs Cycle * fix accidental FR translation changes --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Feature/Granary-Smart-Feeder-Reset-Desiccant (#109) * Feature/Granary-Smart-Feeder-Reset-Desiccant * Feature/Granary-Smart-Feeder-Reset-Desiccant --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Update manifest.json * Feature/Account-Settings (#115) * Basic Account functionality update Adds a Member class object representing the user's Petlibro account, and makes modifications to accommodate it. Allows the user to update some of their account settings, as well as show or use those account settings on the front-end with a sensor entity (lovelace, automations, scripts etc) Can be easily built upon to include more settings and ways to manage things on your account in the future. * Account icon for member entity * test * test * Changed translation JSON keys to lowercase * Account icon for member entity * Changed symbols to unicode strings --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Bug/Report-Day-Sensors-Float-Not-Str (#110) * Convert str to float and apply corret device_class, state_class + unit_of_measurement to sensors. * remove native_value * Fix other device_class & state_class issues * Test Pump Selector * Undo Accidental Commit to wrong branch * Undo accidental commit on wrong branch * type error handling * Test * Undo commit on wrong branch * Feature/Firmware-Update-Tracking (#112) * feature/firmware-update-tracking * Feature/fountains filter cleaning control (#25) * Resolve accidental commit on branch * Last fixes to bring back in line with dev branch * last tiny change --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Feature/polar-wet-food-feeder-enhanced-plate-control (#117) Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Feature/Indicator-Control-Multiple-Devices (#116) * Feature/indicator-control-multiple-devices * Fix couple of errors in button device map * Fix a number of issues preventing the binary sensor from reporting the correct state. * Feature/Space-Smart-Feeder-PLAF107-Controls (#111) * Test Last Feed Time Sensor * logger for workrecord * test with datetime imported * test * convert workRecord to JSON * Test with converting list to dict * add logging to workrecord * test new sensor structure. * test with list check * add some loggers * fix sensor mapping * Roll out to other feeder types * import datetime for each device type * Add to device map * Feature/space-smart-feeder-controls Add Support Space Smart Feeder Controls: Vacuum/Pump Mode Control Sound On/Off Control Sound Level Control Light On/Off Control Sleep Mode On/Off Control Also fixed an issue where all feeders sleep mode was always off, as realInfo API endpoint whetherInSleepMode is always false for some reason. resolved by switching to getAttributeSetting, enableSleepMode as this updates correctly depending on the sleep mode. * Feature/Space-Smart-Feeder-Additional-Error-Sensors Add Additional Error Binary Sensors * fix error in select device map * fix ) instead of } (#41) * missing comma (#42) * Remove duplicates (#43) * Updated manifest.json Bumping version as we have had 1 major update, 4 minor updates and 2 hot fixes as of now completed and merged. * Updated README.md Added Account Integration information * Bug/Last-Feed-Time-Sensor-Datetime-Object (#114) * Bug/last-feed-sensor-datetime-object Convert string to be datetime object instead. * UTIL for UTC + Remove noisy logging * Bug/last feed sensor datetime object * Final Dockstream 2 Removal --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Update __init__.py hot fix to temp remove - from .fountains.dockstream_2_smart_cordless_fountain import Dockstream2SmartCordlessFountain * Fix (#128) * feat: GUI enable display debug (#127) * feat: GUI enable display debug * Update manifest.json --------- Co-authored-by: Jamie Jones <29973406+jjjonesjr33@users.noreply.github.com> * Updated README.md Corrected Pending Device(s) Dockstream 2 Smart Fountain (Plug-In Model) (PLWF106) Dockstream 2 Smart Fountain (PLWF116) * Updated README.md Corrected wording for both Dockstream 2 * Created hacs.yml * Updated hacs.yml * Delete .github/workflows/hassfest.yaml * Delete .github/workflows/hacs.yml * Created validate.yml mergerd hassfest with hacs * Delete .github /workflows/validate.yml * Created validate.yml Fixed validate.yml location * Updated hacs.json * Updated README.md Fixed star history link --------- Co-authored-by: C4-Dimitri <88452320+C4-Dimitri@users.noreply.github.com> Co-authored-by: Nistp <31832285+Nistp@users.noreply.github.com> Co-authored-by: cdnninja <jaydenaphillips@gmail.com> Co-authored-by: Janek <6506725+jkrgr0@users.noreply.github.com> Co-authored-by: Mateusz Greń <mateusz.gren1992@gmail.com> Co-authored-by: Felicity <40734666+FeliGoblin@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed change:
Convert all sensors that report days to be floats and not str. making it easier to automate on.
(also fixed some underlying issues on state_class and device_class) + fixed a mistake i made when adding last_feed_time sensor, i accidentally renamed the Today's Total Eating Time sensor to Last Feed Time and removed its state_class. now resolved as well.
Closes #106
Type of change:
Checklist:
Additional notes: