Skip to content

Commit 039835b

Browse files
jjjonesjr33C4-DimitriNistpcdnninjajkrgr0
authored
Master Branch Update (#137)
* 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>
1 parent f931cde commit 039835b

43 files changed

Lines changed: 7272 additions & 338 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ liberapay: # Replace with a single Liberapay username
1010
issuehunt: # Replace with a single IssueHunt username
1111
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
1212
polar: # Replace with a single Polar username
13-
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
13+
buy_me_a_coffee: jamiejonesjr # Replace with a single Buy Me a Coffee username
1414
thanks_dev: # Replace with a single thanks.dev username
1515
custom: [jjjonesjr33.com/support] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,15 @@
11
<!--
2-
==== STOP ====================
3-
======== STOP ================
4-
============ STOP ============
5-
================ STOP ========
6-
==================== STOP ====
2+
Before opening this pull request please review the guidelines in the checklist below. If this PR does not meet those guidelines it will not be accepted, and everyone will be sad.
73
8-
⚠️ Before opening this pull request please review the guidelines in the checklist below.
9-
10-
If this PR does not meet those guidelines it will not be accepted, and everyone will be sad.
4+
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate. New devices or enhancements should include example(s) of relevant information.
115
-->
6+
## Proposed change:
127

13-
## Proposed change
14-
15-
<!--
16-
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate.
178

18-
New service widgets should include example(s) of relevant API output as well as updates to the docs for the new widget.
19-
-->
209

2110
Closes # (issue)
2211

23-
## Type of change
24-
25-
<!--
26-
What type of change does your PR introduce to Homepage?
27-
-->
12+
## Type of change:
2813

2914
- [ ] New device.
3015
- [ ] Bug fix (non-breaking change which fixes an issue).
@@ -37,3 +22,5 @@ What type of change does your PR introduce to Homepage?
3722
- [ ] If applicable, I have added corresponding documentation changes.
3823
- [ ] If applicable, I have reviewed the [feature / enhancement](https://github.com/jjjonesjr33/petlibro/wiki/Feature-&-Enhancement-Guidelines) guidlines before submitting my request.
3924
- [ ] If applicable, I have tested my code for new features & regressions on the latest version of Home Assistant.
25+
26+
## Additional notes:

.github/workflows/hassfest.yaml

Lines changed: 0 additions & 14 deletions
This file was deleted.

.github/workflows/validate.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Validate
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
validate-hassfest:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v5
12+
- name: Hassfest validation
13+
uses: home-assistant/actions/hassfest@master
14+
15+
validate-hacs:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v5
19+
- name: HACS validation
20+
uses: hacs/action@main
21+
with:
22+
category: integration

README.md

Lines changed: 44 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -4,121 +4,65 @@
44
[![Become a Sponsor](https://img.shields.io/badge/Become%20a%20Sponsor-❤️-black)](https://github.com/sponsors/jjjonesjr33)
55
[![Sponsors](https://img.shields.io/github/sponsors/jjjonesjr33?label=Sponsors)](https://github.com/sponsors/jjjonesjr33)
66
![Logo](https://raw.githubusercontent.com/jjjonesjr33/ha_petlibro/master/docs/media/logo.png)
7+
> [!IMPORTANT]
8+
> Before setting up the integration in Home Assistant, be sure to review the [Account Management](https://github.com/jjjonesjr33/petlibro/wiki/PetLibro-Account-Management) and [Password Limitations](https://github.com/jjjonesjr33/petlibro/wiki/PetLibro-Password-Limitation) sections in the wiki. This will help ensure a smooth and successful setup process.
79
810
# PETLIBRO integration for Home Assistant
911

10-
## Have questions, or need support? We now have a [Wiki](https://github.com/jjjonesjr33/petlibro/wiki)!
11-
Or get ahold of me via direct message on discord - `Jamie Jones Jr` / `jjjonesjr33` previously `JJJonesJr33#0001`
12+
### Account Integration
13+
#### Manage your Petlibro account directly within Home Assistant
1214

13-
Also if you want to check out all the other things I do follow me on my [**Socials**](https://jjjonesjr33.com/).
15+
* View account information (email, username, region, subscription status)
16+
* Update profile details
17+
* Configure time zone and language preferences
18+
* Manage linked devices at the account level
19+
* Access support and diagnostic information
20+
* Options Flow in Home Assistant (⚙️ Configure button) for account settings
1421

15-
## Supported Devices
16-
### This has been reworked to work with the following devices
22+
### Supported Devices
23+
#### This has been reworked to work with the following devices
1724

18-
* Air Smart Feeder (PLAF108)
25+
### Feeders
1926
* Granary Smart Feeder (PLAF103) | Version 2
27+
* Space Smart Feeder (PLAF107)
28+
* Air Smart Feeder (PLAF108)
29+
* Polar Wet Food Feeder (PLAF109)
2030
* Granary Smart Camera Feeder (PLAF203)
2131
* One RFID Smart Feeder (PLAF301)
22-
* Polar Wet Food Feeder (PLAF109)
32+
33+
### Fountains
2334
* Dockstream Smart Fountain (PLWF105)
2435
* Dockstream RFID Smart Fountain (PLWF305)
2536

37+
### Pending Device(s)
38+
* Dockstream 2 Smart Fountain | Plug-In Model (PLWF106)
39+
* Dockstream 2 Smart Fountain | Cordless Model (PLWF116)
40+
2641
### Some Devices / May or may not work as intended
2742

2843
* If you have a device that you would like added please issue a [request](https://github.com/jjjonesjr33/petlibro/issues/new/choose).
2944

30-
# Device Preview
31-
32-
## One RFID Smart Feeder (PLAF301) Features
33-
Device Information
34-
35-
Model
36-
Manufacturer
37-
Firmware Version
38-
39-
Features & Sensors
40-
41-
Battery Status
42-
Buttons Lock
43-
Desiccant Remaining Days
44-
Device SN
45-
Food Dispenser Status
46-
Food Status
47-
Lid Status
48-
MAC Address
49-
Sleep Mode
50-
51-
Feeding Statistics
52-
53-
Today's Eating Times
54-
Today's Feeding Plan
55-
Today's Feeding Quantity
56-
Today's Feeding Times
57-
Today's Total Eating Time
58-
59-
Connectivity
60-
61-
Wi-Fi Status
62-
Wi-Fi Signal Strength
63-
Wi-Fi SSID
64-
65-
Configuration Options
66-
67-
Disable Feeding Plan
68-
Enable Feeding Plan
69-
Manual Feed
45+
# Have questions, or need support?
46+
> [!TIP]
47+
>* Most answers can be found in our [Wiki](https://github.com/jjjonesjr33/petlibro/wiki)
48+
> and if they can't, try the [Discussions](https://github.com/jjjonesjr33/petlibro/discussions)
49+
>* Or get ahold of me via direct message on [Discord](https://discord.com/invite/3hkWMry) - `Jamie Jones Jr` / `jjjonesjr33` previously `JJJonesJr33#0001`
7050
71-
## One RFID Smart Feeder Preview
72-
![One RFID Smart Feeder](https://github.com/user-attachments/assets/0636003e-04ab-495c-8f28-d032610c9b19)
73-
74-
## Dockstream Smart RFID (PLWF305) Features
75-
Device Information
76-
77-
Model
78-
Manufacturer
79-
Firmware Version
80-
Hardware Version
81-
82-
Features & Sensors
83-
84-
Current Weight
85-
Device Serial Number
86-
MAC Address
87-
Remaining Cleaning Days
88-
Remaining Filter Day
89-
Remaining Water
90-
Water Interval
91-
Water Time Duration
92-
93-
Connectivity
94-
95-
Wi-Fi Status
96-
Wi-Fi Signal Strength
97-
Wi-Fi SSID
98-
99-
## Dockstream RFID Smart Fountain Preview
100-
![Dockstream RFID Smart Fountain](https://github.com/user-attachments/assets/45622291-5eae-4a83-87ea-b98a8749b8f8)
51+
#### Also if you want to check out all the other things I do follow me on my [**Socials**](https://jjjonesjr33.com/).
10152

10253
# In Development
103-
* This is still a WIP integration, features may or may not be removed at any time. If you have suggestions please let me know.
104-
- Features missing, but in the works.
105-
106-
> Buttons to reset Cleaning/Filter/Desiccant - (PLAF103), (PLAF203), (PLAF301), (PLWF105), (PLWF305)
107-
108-
> Switches to be added - Child Lock/Button Lock, Screen/Display, and Volume - (PLAF103), (PLAF203), (PLAF301)
109-
110-
> Tracking RFID per pet intance eat/drink - Both (PLAF301) & (PLWF305) - Currently missing the API to setup tracking.
111-
112-
> Live camera feed for Granary Smart Camera Feeder (PLAF203) - Currently missing the API to setup live stream.
54+
#### This is still a WIP integration, features may or may not be removed at any time. If you have suggestions please let me know.
55+
> [!NOTE]
56+
>* Switches to be added - Child Lock/Button Lock, Screen/Display, and Volume - (PLAF103), (PLAF203), (PLAF301)
57+
>* Tracking RFID per pet intance eat/drink - (PLWF305) - API Information gathered, working on implementation.
58+
>* Live camera feed for Granary Smart Camera Feeder (PLAF203) - Currently missing the API to setup live stream. Seems to connect via Kalay TUTK, if you have any experience integrating with this platform, please reach out to help us implement this.
11359
11460
# NOTICE
115-
Alpha/Beta State Notice for this Plugin:
116-
117-
When setting up for the first time, please sign in and allow 1-5 minutes for the login process and data retrieval to complete. If you do not see all the sensors and controls listed, you may need to refresh your web browser's cache.
118-
119-
I recommend performing a full reboot of Home Assistant to ensure you are logged in and that the add-on has refreshed the data without any errors.
120-
121-
> The addon is programmed to update every 60 seconds.
61+
#### Alpha/Beta state notice for this plugin:
62+
> [!WARNING]
63+
>* When setting up for the first time, please sign in and allow 1-5 minutes for the login process and data retrieval to complete. If you do not see all the sensors and controls listed, you may need to refresh your web browser's cache.
64+
>* I recommend performing a full reboot of Home Assistant to ensure you are logged in and that the add-on has refreshed the data without any errors.
65+
>* The addon is programmed to update every 60 seconds.
12266
12367
## Troubleshooting
12468
To troubleshoot your Home Assistant instance, you can add the following configuration to your configuration.yaml file:
@@ -145,6 +89,10 @@ Get the folder `custom_components/petlibro` in your HA `config/custom_components
14589

14690
- Enter your credentials.
14791

148-
> Only one device can be login at the same time.
92+
> Only one device can be logged in at the same time.
14993
>
150-
> If you to wan to keep your phone connected, create another account for this integration and share your device to it.
94+
> If you to want to keep your phone's app connected, create another account for this integration and share your device to it.
95+
96+
## Star History
97+
98+
[![Star History Chart](https://api.star-history.com/svg?repos=jjjonesjr33/petlibro&type=Date&theme=dark)](https://www.star-history.com/#jjjonesjr33/petlibro&Date)

custom_components/petlibro/__init__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from .devices.feeders.granary_smart_camera_feeder import GranarySmartCameraFeeder
1414
from .devices.feeders.one_rfid_smart_feeder import OneRFIDSmartFeeder
1515
from .devices.feeders.polar_wet_food_feeder import PolarWetFoodFeeder
16+
from .devices.feeders.space_smart_feeder import SpaceSmartFeeder
1617
from .devices.fountains.dockstream_smart_fountain import DockstreamSmartFountain
1718
from .devices.fountains.dockstream_smart_rfid_fountain import DockstreamSmartRFIDFountain
1819
from .const import DOMAIN, CONF_EMAIL, CONF_PASSWORD, PLATFORMS, UPDATE_INTERVAL_SECONDS # Assuming UPDATE_INTERVAL_SECONDS is defined in const
@@ -24,51 +25,87 @@
2425
# Define the platforms for each device type
2526
PLATFORMS_BY_TYPE = {
2627
Feeder: (
28+
Platform.SENSOR,
29+
Platform.BINARY_SENSOR,
2730
Platform.SWITCH,
2831
Platform.BUTTON,
32+
Platform.NUMBER,
33+
Platform.SELECT,
34+
Platform.TEXT,
2935
),
3036
AirSmartFeeder: (
3137
Platform.SENSOR,
3238
Platform.BINARY_SENSOR,
3339
Platform.SWITCH,
3440
Platform.BUTTON,
41+
Platform.NUMBER,
42+
Platform.SELECT,
43+
Platform.TEXT,
3544
),
3645
GranarySmartFeeder: (
3746
Platform.SENSOR,
3847
Platform.BINARY_SENSOR,
3948
Platform.SWITCH,
4049
Platform.BUTTON,
50+
Platform.NUMBER,
51+
Platform.SELECT,
52+
Platform.TEXT,
4153
),
4254
GranarySmartCameraFeeder: (
4355
Platform.SENSOR,
4456
Platform.BINARY_SENSOR,
4557
Platform.SWITCH,
4658
Platform.BUTTON,
59+
Platform.NUMBER,
60+
Platform.SELECT,
61+
Platform.TEXT,
4762
),
4863
OneRFIDSmartFeeder: (
4964
Platform.SENSOR,
5065
Platform.BINARY_SENSOR,
5166
Platform.SWITCH,
5267
Platform.BUTTON,
5368
Platform.NUMBER,
69+
Platform.SELECT,
70+
Platform.TEXT,
5471
),
5572
PolarWetFoodFeeder: (
73+
Platform.SENSOR,
74+
Platform.BINARY_SENSOR,
75+
Platform.SWITCH,
76+
Platform.SELECT,
77+
Platform.BUTTON,
78+
Platform.NUMBER,
79+
Platform.SELECT,
80+
Platform.TEXT,
81+
),
82+
SpaceSmartFeeder: (
5683
Platform.SENSOR,
5784
Platform.BINARY_SENSOR,
5885
Platform.SWITCH,
5986
Platform.BUTTON,
87+
Platform.NUMBER,
88+
Platform.SELECT,
89+
Platform.TEXT,
6090
),
6191
DockstreamSmartFountain: (
6292
Platform.SENSOR,
6393
Platform.BINARY_SENSOR,
6494
Platform.SWITCH,
6595
Platform.BUTTON,
96+
Platform.NUMBER,
97+
Platform.SELECT,
98+
Platform.TEXT,
6699
),
67100
DockstreamSmartRFIDFountain: (
68101
Platform.SENSOR,
69102
Platform.BINARY_SENSOR,
70103
Platform.SWITCH,
71104
Platform.BUTTON,
105+
Platform.NUMBER,
106+
Platform.SELECT,
107+
Platform.TEXT,
108+
Platform.UPDATE,
72109
),
73110
}
74111

@@ -101,6 +138,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
101138
# Store the hub in hass.data
102139
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = hub
103140

141+
# Load member only once here
142+
await hub.load_member()
143+
104144
# Load devices only once here
105145
await hub.load_devices()
106146

0 commit comments

Comments
 (0)