GithubHelp home page GithubHelp logo

Pulse 2000 compatible about igrill HOT 15 CLOSED

bendikwa avatar bendikwa commented on August 18, 2024
Pulse 2000 compatible

from igrill.

Comments (15)

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024 1

Got it to work :)
I will work on prettying up the code and then create a pull request

from igrill.

runestone74 avatar runestone74 commented on August 18, 2024

If you have an Android device you can scan for UUID codes with this app https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner

from igrill.

runestone74 avatar runestone74 commented on August 18, 2024

My guess is that these two (or one) lines is needed for the internal temperature probe in igrill.py
#Pulse 1000
PROBE5_TEMPERATURE = btle.UUID('06ef000A-2e06-4b79-9e33-fce2c42805ec')
PROBE5_THRESHOLD = btle.UUID('06ef000B-2e06-4b79-9e33-fce2c42805ec')

#Pulse 2000? havent seen these actual values, just an educated guess with C and D
PROBE6_TEMPERATURE = btle.UUID('06ef000C-2e06-4b79-9e33-fce2c42805ec')
PROBE7_THRESHOLD = btle.UUID('06ef000D-2e06-4b79-9e33-fce2c42805ec')

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

The 4 probes are the same UUID as the standard igrill.

The main heating element temperatures and setpoint are communicated on UUID 6c91000a-58dc-41c7-943f-518b278ceaaa. The return example is 20 30 32 30 20 30 31 35 20 30 30 30 20 30 30 30 which can be converted HextoASCII into "020 015 000 000" which can be read as actual temp left element, right element. Temp setpoint left right.

Authentication is not working and thus I cannot read the probe temperatures so I need to figure out how to debug that, any tips?

from igrill.

bendikwa avatar bendikwa commented on August 18, 2024

Hi
It would be cool to be able to support the pulse 2000, unfortunately, I don’t think I can help much. The original authentication code is from the first fork, https://github.com/onlywade/igrill and the updated authentication method was contributed by kins-dev: https://blog.kins.dev/2019/04/igrill-device-support-for-igrill-smoker.html
So other than turning the debug logging on, and trying to see where it fails, I don’t have any good ideas.

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

Yeah I'm not experienced with Python so I'm figuring it out as I go through here. It gets stuck after sending key of all 0's (that is a message with debug on). It just never moves past that. The code i'm using for now is just exactly your code with this for the device.yaml:

`
devices:

  • name: 'Pulse2000' # Unique name of the device
    type: 'igrill_v3' # Supported devices: igrill_mini, igri$
    address: '70:91:8F:7B:1A:6C' # The MAC of the device
    topic: 'temperature/outside' # The topic to publish on. will have n$
    interval: 20 # Polling interval
    `

Can you help modify the code to check the extra UUID for the central heating zones actual temperature and setpoints? Also if we specify the pulse device we can disable the battery check.

I have ordered a BLE sniffer (Adafruit Bluefruit) so maybe I can use that to figure out the authentication method.

from igrill.

bendikwa avatar bendikwa commented on August 18, 2024

That sound like the same issue as "Getting stuck at authenticating"

Have you tried to use bluetoothctl to pair the iGrill first?
Or the trick in the readme: https://github.com/bendikwa/igrill#troubleshooting

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

Commenting out that line in the udev rules fixed the authentication, now to figure out how to read that main temperature :)

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

Pull request #16

from igrill.

bendikwa avatar bendikwa commented on August 18, 2024

I have merged the PR to https://github.com/bendikwa/igrill/tree/pulse2000_support and refactored the code a bit. Can you test to see that it still works?

Does the Pulse 2000 have a battery indicator? Or should we remove that?

-Bendik

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

That code looks much nicer, thanks :)
It does not have a battery but will report 100% whenever read, so it is safe to read. Just ignore it on the MQTT sensor level in HA.
I will test it out today.

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

Tested, working great!
You want to add this to the readme as an example of how to add the sensors in Home Assistant:

`
sensor:

  • platform: mqtt
    state_topic: "temperature/outside/Pulse 2000/probe1"
    name: "P2000 Probe 1"
    qos: 0
    unit_of_measurement: "ºC"

  • platform: mqtt
    state_topic: "temperature/outside/Pulse 2000/probe2"
    name: "P2000 Probe 2"
    qos: 0
    unit_of_measurement: "ºC"

  • platform: mqtt
    state_topic: "temperature/outside/Pulse 2000/probe3"
    name: "P2000 Probe 3"
    qos: 0
    unit_of_measurement: "ºC"

  • platform: mqtt
    state_topic: "temperature/outside/Pulse 2000/probe4"
    name: "P2000 Probe 4"
    qos: 0
    unit_of_measurement: "ºC"

  • platform: mqtt
    state_topic: "temperature/outside/Pulse 2000/heating_element"
    name: "P2000 Heating element"
    qos: 0

  • platform: template
    sensors:
    p2000_left_element_actual:
    value_template: "{{ states('sensor.p2000_heating_element').split(' ')[1]|int}}"
    unit_of_measurement: 'ºC'
    icon_template: mdi:grill
    p2000_right_element_actual:
    value_template: "{{ states('sensor.p2000_heating_element').split(' ')[2]|int}}"
    unit_of_measurement: 'ºC'
    icon_template: mdi:grill
    p2000_left_element_setpoint:
    value_template: "{{ states('sensor.p2000_heating_element').split(' ')[3]|int}}"
    unit_of_measurement: 'ºC'
    icon_template: mdi:grill
    p2000_right_element_setpoint:
    value_template: "{{ states('sensor.p2000_heating_element').split(' ')[4]|int}}"
    unit_of_measurement: 'ºC'
    icon_template: mdi:grill
    `

from igrill.

PaulAntonDeen avatar PaulAntonDeen commented on August 18, 2024

On a seperate thought, since it only publishes a probe temp when it is connected it means that the non-connected probe's stay at the temperature they had the last time they were connected making it harder to see which are reporting. Should we tweak the temp reporting from the probes to just send a 0 or . when the 65356 value is read from the probes?

from igrill.

bendikwa avatar bendikwa commented on August 18, 2024

Great! I'll merge the Pulse 2000 support to master.

Regarding your two other suggestions:

  1. I think that the Home Assistant information belongs in the Home Assistant forum. I dont actually use Home Assistant, so I will not be able to help with it. ;-)

  2. On the subject of non-connected probes, I guess it is the same as #6 ? I have actually just pushed an attempt on a fix for this to a branch, hope to get it merged to master today.

from igrill.

bendikwa avatar bendikwa commented on August 18, 2024

Merged to master

from igrill.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.