Solutions for LPG tank monitoring

Linear temperature compensation doesn’t ask a lot.

What is this? Where can you get it?

Measuring the pressure in an LPG bottle tells you nothing about how much liquid is in there. The pressure is constant (for a given temperature) until all the liquid has evaporated.

That’s correct. Measuring pressure you han only detect when tank is almost empty.
I have pressure detection on my underground tank, it gives just margine to call for refill.

I have an actual gas meter with pulse output that I use. Mine reads in CF, but they make ones that measure in liters.

Since I have a 500 gallon tank, measuring the weight would be difficult (and need to meet intrinsic safety standards, since there is some venting of propane when it gets filled). Mine has a remote ready dial on it, but it doesn’t look that accurate.

My meter is not temperature compensated, but a little math can fix that (if I really cared enough to do it again).

I think I’m going with this, using the load cell and amplifier I linked above.

With the 10:1 lever advantage, I’ll be lifting 20kgs for two full bottles and there’ll be an accurate reading.

Using that diagram, if your setup is similar, why cant you just use scales like I linked above? Just curious.

There’s far less hardware in my lift system and I don’t need to lift the bottles onto anything.

Does anyone know a way I can dynamically fill this image to disapply the bottle level?

Thanks

I have completed this and happy with the result.

Frontend advice

Yea on that note, I have this card that I want to dynamically fill using this integration but having trouble, maybe you could help me out?

The fill area is transparent.

Share your current card code and I’ll see if I can assist. I am fairly fluent in CSS.

Thanks

Well to be fair, I just stole some other code and tried, knowing that it would not work because its not suited for my image.

type: picture-elements
image: /local/images/bottle.png
card_mod:
  style:
    hui-image $: |
      img {
        z-index: 1 !important;
        position: relative !important;
        right: 0px;
        top: 0px;
        width: 100% !important;
        opacity: 1
      }
elements:
  - type: custom:fluid-level-background-card
    entity: sensor.camper_gas_weight_right_bottle_2
    style:
      z-index: 1
    card_mod:
      style: |
        ha-card {
          text-align: center;
          --ha-card-border-color: #ff000000 !important;
        }  
        #container, .container {
          width: 110px !important;
          height: 180px !important;
          position: relative !important;
          transform: translate(220%, -75%);
          opacity: 0.8;
        }
        @media (max-width: 600px) {
          #container, .container {
            width: 42px !important;
            height: 72px !important;
            transform: translate(225%, -74%);
          }
        }
        @media (min-width: 601px) and (max-width: 900px) {
          #container, .container {
            width: 85px !important;
            height: 150px !important;
            transform: translate(211%, -70%);
          }
        }
        @media (min-width: 901px) and (max-width: 1440px) {
          #container, .container {
            width: 52px !important;
            height: 82px !important;
            transform: translate(220%, -74%);
            }
        }
    tap_action: none
    level_color: rgba(0,0,255,1)
    card:
      type: custom:card-templater
      card:
        type: entities
        entity: sensor.camper_gas_weight_right_bottle_2
        title_template: "{{states('sensor.camper_gas_weight_right_bottle_2')|round(0)}}% "
        show_header_toggle: false
        show_name: true
        card:
          type: custom:bar-card
          color: rgba(0,0,0,1)
        position:
          value: "off"
        card_mod:
          style: |
            ha-card {
             --ha-card-header-font-size: 11px;
               height: 225px !important;

            }
            .card-header {
             justify-content: center !important;
            }
            .name {
             overflow: unset !important;
            }

Share your basic image and we will adjust as needed. That’s not a big deal.

Examples always help others

Sure, here is the image.

Perfect… I can work with that!

1 Like

Also, here is the full set.

1 Like

Thanks for helping! I was not sure how I was going to approach this one.

Give me a day or so. Been up too late tonight :wink: