Skip to content

NystronSolar/GrowattSpreadsheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Growatt Spreadsheet

NystronSolarBadge semantic-release: angular

Read, Write and Manage Growatt Device Data Spreadsheets

The Package 🚀

The package provides several classes to extract Electric Bills. The project is separated in several classes. Each class extract an specific type of bill.

Using the Package 🎮

Each extractor class have two main methods: fromFile and fromContent, and both returns an associative-array with all the bill data.

Example 🔧

Here, we will use the Extractor RGE, but it apply to any other extractor

<?php

use NystronSolar\ElectricBillExtractor\BR\RS\ExtractorRGE;

$extractor = new ExtractorRGE(/* You can put an custom PDF Parser (from smalot/pdfparser Package) */);
$output = $extractor->fromFile('my_bill.pdf'); // You can also use the fromContent() method, that does the same, but accepting an PDF Content String.

echo json_encode($output);

This should return something like that:

{
    "Client": {
        "Name": "Client Name",
        "Address": "Client Address",
        "District": "Client District",
        "City": "Client City",
        "Building": {
            "Classification": "Classification",
            "SupplyType": "Supply Type",
            "Voltage": {
                "Available": 220,
                "MinimumLimit": 202,
                "MaximumLimit": 231
            }
        }
    },
    "Batch": 1,
    "ReadingGuide": "Reading Guide",
    "PowerMeterId": 10000000,
    "Pages": {
        "Actual": 1,
        "Total": 1
    },
    "DeliveryDate": { /* PHP \DateTime Object */ },
    "NextReadingDate": { /* PHP \DateTime Object */ },
    "DueDate": { /* PHP \DateTime Object */ },
    "ActualReadingDate": { /* PHP \DateTime Object */ },
    "PreviousReadingDate": { /* PHP \DateTime Object */ },
    "TotalDays": 31,
    "InstallationCode": "Installation Code",
    "Date": { /* PHP \DateTime Object */ },
    "Cost": { /* Money from moneyphp/money Package */ },
    "Notices": {
        "Text": "Notices Text"
    },
    "SolarGeneration": {
        "ParticipationGeneration": 100,
        "Balance": 0,
        "NextMonthExpiringBalance": 0
    },
    "EnergyData": {
        "EnergyConsumed": {
            "Timetables": "Timetables",
            "PreviousReading": 1000,
            "ActualReading": 2000,
            "MeterConstant": 1,
            "Consumed": 250
        },
        "EnergyExcess": {
            "Timetables": "Timetables",
            "PreviousReading": 1000,
            "ActualReading": 2000,
            "MeterConstant": 1,
            "Consumed": 250
        }
    }
}

The Extractors List 📌

Title Namespace Region
RGE NystronSolar\ElectricBillExtractor\BR\RS\ExtractorRGE 🇧🇷 Brazil / RS

RGE

This extractor uses the New Bill from RGE. Note that just the New Bill (RGE starts sending the new bills approximately in 2022 May) is Implemented for extraction. The extractor for older version is still being developed. image

Image from RGE Website - Nova Conta | RGE - Access in 03/24/2023 (May, 24th, 2023)

About

Read, Write and Manage Growatt Device Data Spreadsheets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages