Internet of Things

Turnkey solutions to facilitate the daily life of your business.

Perfect for:
Startups SMB Large enterprises

The world of IoT

Discover all the applications of the IoT

Our solutions include

Sensors

Durable sensors adapted to all your needs: smart water, smart meter, asset tracking, waste management, etc.

Connectivity

The sensors are connected as soon as they are received and can thus send data via any type of network (cellular, Sigfox, LoRaWan, wired, etc.).

Access to our IoT platform

A single IoT platform to process data from all your assets: dashboarding, alerting, reporting and device management.

Asset Tracking - LiveMat

The LiveMat IoT solution is a complete and 100% local IoT solution developed by POST with 2 major players in the construction sector (Tralux and Mako) for real-time monitoring and management of your company's mobile resources: vehicles, machinery, material, production, etc.

With LiveMat, you will be able to have precise data on your assets at all times:

  • Centralization of data on a single platform
  • Aggregation of data from manufacturers' platforms (Caterpillar, Liebherr, Komatsu, etc.) and those from your own sensors
  • Provision of an automated inventory
  • Geolocation and monitoring of vehicle and equipment movements
  • Information on the general condition of the equipment (hours of operation, levels, etc.)
  • Alert if malfunction or for preventive interventions
  • Reporting for global monitoring
  • Development of areas of improvement for management and CSR

Smart Metering

Optimize the management of your consumption and your uses, for any field of activity.

  • Connected water meter

  • Air quality (CO2, T°, H2O, PPM,…)

  • Waste management

  • Energetic efficiency

  • Monitoring of remote sites

  • Connected beekeeping

Flexibility, your new superpower

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy111.getFriendlyURLLayout(long, boolean, String)" threw an exception when invoked on com.sun.proxy.$Proxy111 object "com.liferay.portal.service.impl.LayoutLocalServiceImpl@7aa62365"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: authorPage = layoutLocalService.getFr...  [in template "20102#20129#1341914" at line 32, column 45]
----
1<#assign local = themeDisplay.getLocale() 
2        layouts = themeDisplay.getLayouts() 
3        extendedSeq = [] 
4        finalSeq = [] 
5        assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
6        layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
7<!-- Get the tags from the webcontent and create a new sequence with the string --> 
8<#assign 
9        inputTags = .vars['reserved-article-asset-tag-names'].data 
10        inputTagsSeq = inputTags?split(",")> 
11<#setting locale= local> 
12 
13 
14<#list layouts as mainpage> 
15    <#if mainpage.getFriendlyURL(local) == '/business'> 
16        <#list mainpage.getChildren() as homeSubPages> 
17            <#if homeSubPages.getFriendlyURL(local) == '/business/blog'> 
18                <#list homeSubPages.getChildren() as articlesHomepage> 
19                    <#if articlesHomepage.getFriendlyURL(local) == '/business/blog/articles'> 
20                        <#list articlesHomepage.getChildren() as categoryPages> 
21                            <#list categoryPages.getChildren() as subCategoryPages> 
22                                <#list subCategoryPages.getChildren() as articleElement> 
23                                    <!-- Get the tag for the target article Page --> 
24                                    <#assign plId = articleElement.getPlid() 
25                                            layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId) 
26                                            assetTags = layoutEntry.getTags()> 
27                                    <#assign 
28                                            tagList = [] 
29                                            dateArticle = articleElement.getExpandoBridge().getAttribute('Blog display date from') 
30                                            authorPageUrl = articleElement.getExpandoBridge().getAttribute('Blog author page url') 
31                                            authorTruncatedUrl = "/business" + authorPageUrl?keep_after("/business") 
32                                            authorPage = layoutLocalService.getFriendlyURLLayout(groupId, false, authorTruncatedUrl) 
33                                            authorImage = authorPage.getExpandoBridge().getAttribute('Blog image url') 
34                                            articleImage = articleElement.getExpandoBridge().getAttribute('Blog image url')> 
35                                    <#list assetTags as tag> 
36                                        <#assign  tagList += [tag.name]> 
37                                    </#list> 
38                                    <!-- Insert element in the extendedSeq --> 
39                                    <#assign layoutHash = {"tags": tagList, 
40                                    "friendlyUrl": articleElement.friendlyURL, "articleTitle": articleElement.getHTMLTitle(local), 
41                                    "articleDescription": articleElement.getDescription(local), 
42                                    "date": dateArticle?datetime, "authorFriendlyUrl": authorPage.getRegularURL(request), 
43                                    "authorName": authorPage.getHTMLTitle(local), 
44                                    "authorImage": authorImage, "articleImage": articleImage, 
45                                    "categoryName": categoryPages.getHTMLTitle(local), 
46                                    "categoryUrl": categoryPages.getRegularURL(request), 
47                                    "subCategoryName": subCategoryPages.getHTMLTitle(local), 
48                                    "subCategoryUrl": subCategoryPages.getRegularURL(request)} 
49                                    extendedSeq += [layoutHash] /> 
50                                </#list> 
51                            </#list> 
52                        </#list> 
53                    </#if> 
54                </#list> 
55            </#if> 
56        </#list> 
57    </#if> 
58</#list> 
59 
60<#list extendedSeq?sort_by("date")?reverse as reversedSeq> 
61    <#if finalSeq?size lt 3> 
62        <!-- Boolean to get out of the loop and only add once the element to the final sequence--> 
63        <#assign tagsFound = false> 
64        <#list reversedSeq.tags as tag> 
65            <#if tagsFound != true> 
66                <#list inputTagsSeq as inputTag> 
67                    <#if inputTag == tag> 
68                        <#assign finalSeq += [reversedSeq] 
69                                 tagsFound = true> 
70                        <#break> 
71                    </#if> 
72                </#list> 
73            <#else> 
74                <#break> 
75            </#if> 
76        </#list> 
77    <#else> 
78        <#break> 
79    </#if> 
80</#list> 
81 
82<section class="module module-cards-article" > 
83    <div class="container"> 
84        <div class="row justify-content-center"> 
85            <div class="col-lg-12"> 
86                <div class="title-wrapper"> 
87                    <h3 class="bottom-cut">${Title.getData()}</h3> 
88                </div> 
89 
90                <div class="content-list"> 
91                    <div class="row"> 
92                        <#list finalSeq as articles> 
93                            <div class="col-lg-4"> 
94                                <div class="card card-article card-article-small"> 
95                                    <div class="card-wrapper"> 
96                                        <div> 
97                                            <div class="card-img-wrapper"> 
98                                                <a data-senna-off="true" href="${articles.friendlyUrl}"> 
99                                                    <img src="${articles.articleImage}" class="img-fluid object-fit" alt=""> 
100                                                </a> 
101                                            </div> 
102 
103                                            <div class="card-text-wrapper"> 
104                                                <div class="badge-wrapper"> 
105                                                    <a data-senna-off="true" href="${articles.categoryUrl}" class="badge badge-small badge-blue-business ">${articles.categoryName}</a> 
106                                                    <a data-senna-off="true" href="${articles.subCategoryUrl}" class="badge badge-small badge-blue-business ">${articles.subCategoryName}</a> 
107                                                </div> 
108 
109                                                <h3><a data-senna-off="true" href="${articles.friendlyUrl}">${articles.articleTitle}</a></h3> 
110                                                <p>${articles.articleDescription}</p> 
111                                            </div> 
112                                        </div> 
113                                        <div> 
114                                            <a data-senna-off="true" href="${articles.friendlyUrl}" class="btn btn-link" 
115                                                <#if LinkLabel.LinkAriaLabel?? && 
116                                                    LinkLabel.LinkAriaLabel?has_content && 
117                                                    LinkLabel.LinkAriaLabel.getData()?has_content> 
118                                                    aria-label="${LinkLabel.LinkAriaLabel.getData()}"</#if>> 
119                                                    ${LinkLabel.getData()} <i class="icon-chevron-right"></i> 
120                                            </a> 
121 
122                                            <#if articles.authorImage?? && articles.authorImage?has_content 
123                                                && articles.authorName?? && articles.authorName?has_content 
124                                                && articles.date?? && articles.date?has_content 
125                                                && articles.articleImage?? && articles.articleImage?has_content> 
126                                                <div class="card-details-wrapper"> 
127                                                    <div class="author"> 
128                                                        <div class="author-img-wrapper"> 
129                                                            <img src="${articles.authorImage}" class="img-fluid object-fit" alt=""> 
130                                                        </div> 
131                                                        <div> 
132                                                            <p class="title">${AuthorLabel.getData()}</p> 
133                                                            <a data-senna-off="true" href="${articles.authorFriendlyUrl}" 
134                                                               class="value stretched-link" 
135                                                                    <#if AuthorLabel.AuthorAriaLabel?? && 
136                                                            AuthorLabel.AuthorAriaLabel?has_content && 
137                                                            AuthorLabel.AuthorAriaLabel.getData()?has_content> 
138                                                            aria-label="${AuthorLabel.AuthorAriaLabel.getData()} ${articles.authorName}"</#if>> 
139                                                                ${articles.authorName} 
140                                                            </a> 
141                                                        </div> 
142                                                    </div> 
143                                                    <div class="date"> 
144                                                        <p class="title">${PublicationLabel.getData()}</p> 
145                                                        <p class="value">${articles.date?string["dd MMMM yyyy"]}</p> 
146                                                    </div> 
147                                                </div> 
148                                            </#if> 
149                                        </div> 
150                                    </div> 
151                                </div> 
152                            </div> 
153                        </#list> 
154                    </div> 
155                </div> 
156            </div> 
157        </div> 
158    </div> 
159</section> 

Our experts answer your questions

Do you have any questions about an article? Do you need help solving your IT issues?

Do you have any other questions? 

Call us free of charge on 8002 4000 or +352 2424 4000 for international calls form Monday to Friday from 8am until 6pm.

Why choose POST?

Discover POST's strengths: innovations, certifications, CSR commitments.