auto commit

This commit is contained in:
bangdk 2024-11-27 12:40:07 +09:00
parent 3b3d92fa93
commit b549efc71f
15 changed files with 2307 additions and 518 deletions

View File

@ -58,6 +58,7 @@ export function ApiKeyDialog({ branch, isOpen, onClose }: ApiKeyDialogProps) {
`/api/v1/admin/api-keys/${branch.id}/api-keys`,
data
);
console.log("createApiKeyMutation", response.data);
return response.data;
},
onSuccess: () => {

View File

@ -2,7 +2,7 @@
import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import { useToast } from "@/hooks/use-toast";
import { Key, Copy } from "lucide-react";
import { Key, Copy, Power, Trash2 } from "lucide-react";
import type { Branch } from "@/types/company";
import { format } from "date-fns";
import { ko } from "date-fns/locale";
@ -26,7 +26,7 @@ export function ApiKeySection({
const queryClient = useQueryClient();
// API 키 상태 토글 mutation
const toggleApiKeytatusMutation = useMutation({
const toggleApiKeyStatusMutation = useMutation({
mutationFn: async ({
apiKeyId,
isActive,
@ -64,15 +64,16 @@ export function ApiKeySection({
return (
<div className="space-y-2">
<div className="flex items-center gap-2">
<div className="flex items-center justify-between">
<div className="text-sm text-muted-foreground mb-2">API </div>
<Button variant="outline" size="sm" onClick={onCreateClick}>
<Key className="w-4 h-4 mr-2" /> API
</Button>
</div>
{branch.ApiKey && branch.ApiKey.length > 0 ? (
{branch.ApiKeys && branch.ApiKeys.length > 0 ? (
<div className="space-y-2">
{branch.ApiKey.map((apiKey) => (
{branch.ApiKeys.map((apiKey) => (
<div
key={apiKey.id}
className="flex items-center justify-between bg-gray-50 p-2 rounded"
@ -113,29 +114,42 @@ export function ApiKeySection({
<Button
variant="ghost"
size="sm"
className="h-8 w-8 p-0"
onClick={() => handleCopyApiKey(apiKey.apiKey)}
title="API 키 복사"
>
<Copy className="w-4 h-4" />
<Copy className="h-4 w-4" />
</Button>
<Button
variant="outline"
variant="ghost"
size="sm"
className="h-8 w-8 p-0"
onClick={() =>
toggleApiKeytatusMutation.mutate({
toggleApiKeyStatusMutation.mutate({
apiKeyId: apiKey.id,
isActive: !apiKey.isActive,
})
}
title={apiKey.isActive ? "비활성화" : "활성화"}
>
{apiKey.isActive ? "비활성화" : "활성화"}
<Power
className={`h-4 w-4 ${
apiKey.isActive ? "" : "text-muted-foreground"
}`}
/>
</Button>
{(user?.role === "super_admin" ||
user?.role === "company_admin") && (
<Button
variant="destructive"
variant="ghost"
size="sm"
className="h-8 w-8 p-0 hover:bg-destructive/10 hover:text-destructive text-destructive"
onClick={() => onDeleteClick(apiKey.id, apiKey.keyName)}
title="삭제"
>
<Trash2 className="h-4 w-4" />
</Button>
)}
</div>
</div>
))}

View File

@ -0,0 +1,109 @@
// src/app/(admin)/company/branches/components/BranchCard.tsx
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import type { Branch, BranchCardProps } from "@/types/company";
import { useAuthStore } from "@/stores/auth";
import { useState } from "react";
import { ApiKeySection } from "./ApiKeySection";
import { ApiKeyDialog } from "./ApiKeyDialog";
import { DeleteApiKeyDialog } from "./DeleteApiKeyDialog";
import { Edit, Trash2 } from "lucide-react";
export function BranchCard({ branches, onEdit, onDelete }: BranchCardProps) {
const { user } = useAuthStore();
const [selectedBranch, setSelectedBranch] = useState<Branch | null>(null);
const [isApiKeyDialogOpen, setIsApiKeyDialogOpen] = useState(false);
const [deleteApiKeyInfo, setDeleteApiKeyInfo] = useState<{
id: string;
name: string;
branchId: string;
} | null>(null);
return (
<>
<div className="grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
{branches.map((branch) => (
<Card key={branch.id}>
<CardHeader className="pb-2">
<div className="flex justify-between items-center">
<div className="flex items-center gap-2">
<CardTitle className="text-lg">{branch.name}</CardTitle>
<Badge variant={branch.isActive ? "default" : "secondary"}>
{branch.isActive ? "활성" : "비활성"}
</Badge>
</div>
<div className="flex space-x-1">
<Button
variant="ghost"
size="sm"
className="h-8 w-8 p-0 hover:bg-muted"
onClick={() => onEdit(branch)}
>
<Edit className="h-4 w-4" />
</Button>
{(user?.role === "super_admin" ||
user?.role === "company_admin") && (
<Button
variant="ghost"
size="sm"
className="h-8 w-8 p-0 hover:bg-destructive/10 hover:text-destructive text-destructive"
onClick={() => onDelete(branch.id)}
title="삭제"
>
<Trash2 className="h-4 w-4" />
</Button>
)}
</div>
</div>
</CardHeader>
<CardContent>
<div className="space-y-2">
<div className="grid grid-cols-3 gap-1 text-sm">
<div className="text-muted-foreground"></div>
<div className="col-span-2 text-right">{branch.address}</div>
</div>
<div className="grid grid-cols-3 gap-1 text-sm">
<div className="text-muted-foreground"></div>
<div className="col-span-2 text-right">{branch.tel}</div>
</div>
<div className="pt-2">
<ApiKeySection
branch={branch}
onCreateClick={() => {
setSelectedBranch(branch);
setIsApiKeyDialogOpen(true);
}}
onDeleteClick={(apiKeyId, keyName) => {
setDeleteApiKeyInfo({
id: apiKeyId,
name: keyName,
branchId: branch.id,
});
}}
/>
</div>
</div>
</CardContent>
</Card>
))}
</div>
{selectedBranch && (
<ApiKeyDialog
branch={selectedBranch}
isOpen={isApiKeyDialogOpen}
onClose={() => {
setIsApiKeyDialogOpen(false);
setSelectedBranch(null);
}}
/>
)}
<DeleteApiKeyDialog
apiKeyInfo={deleteApiKeyInfo}
onClose={() => setDeleteApiKeyInfo(null)}
/>
</>
);
}

View File

@ -14,21 +14,7 @@ import { Label } from "@/components/ui/label";
import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button";
import { Switch } from "@/components/ui/switch";
import type { Branch } from "@/types/company";
interface BranchFormDialogProps {
mode: "add" | "edit" | null;
branch: Branch | null;
isOpen: boolean;
onClose: () => void;
}
interface BranchFormData {
name: string;
address: string;
tel: string;
isActive: boolean;
}
import type { BranchFormData, BranchFormDialogProps } from "@/types/company";
export function BranchFormDialog({
mode,

View File

@ -1,115 +0,0 @@
// src/app/(admin)/company/branches/components/BranchTable.tsx
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table";
import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import type { Branch } from "@/types/company";
import { ApiKeySection } from "./ApiKeySection";
import { useAuthStore } from "@/stores/auth";
import { useState } from "react";
import { ApiKeyDialog } from "./ApiKeyDialog";
import { DeleteApiKeyDialog } from "./DeleteApiKeyDialog";
interface BranchTableProps {
branches: Branch[];
onEdit: (branch: Branch) => void;
onDelete: (branchId: string) => void;
}
export function BranchTable({ branches, onEdit, onDelete }: BranchTableProps) {
const { user } = useAuthStore();
const [selectedBranch, setSelectedBranch] = useState<Branch | null>(null);
const [isApiKeyDialogOpen, setIsApiKeyDialogOpen] = useState(false);
const [deleteApiKeyInfo, setDeleteApiKeyInfo] = useState<{
id: string;
name: string;
branchId: string;
} | null>(null);
return (
<>
<Table>
<TableHeader>
<TableRow>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead>API </TableHead>
<TableHead className="text-right"></TableHead>
</TableRow>
</TableHeader>
<TableBody>
{branches.map((branch) => (
<TableRow key={branch.id}>
<TableCell>{branch.name}</TableCell>
<TableCell>{branch.address}</TableCell>
<TableCell>{branch.tel}</TableCell>
<TableCell>
<Badge variant={branch.isActive ? "default" : "secondary"}>
{branch.isActive ? "활성" : "비활성"}
</Badge>
</TableCell>
<TableCell>
<ApiKeySection
branch={branch}
onCreateClick={() => {
setSelectedBranch(branch);
setIsApiKeyDialogOpen(true);
}}
onDeleteClick={(apiKeyId, keyName) => {
setDeleteApiKeyInfo({
id: apiKeyId,
name: keyName,
branchId: branch.id,
});
}}
/>
</TableCell>
<TableCell className="text-right space-x-2">
<Button
variant="outline"
size="sm"
onClick={() => onEdit(branch)}
>
</Button>
{user?.role === "super_admin" && (
<Button
variant="destructive"
size="sm"
onClick={() => onDelete(branch.id)}
>
</Button>
)}
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
{selectedBranch && (
<ApiKeyDialog
branch={selectedBranch}
isOpen={isApiKeyDialogOpen}
onClose={() => {
setIsApiKeyDialogOpen(false);
setSelectedBranch(null);
}}
/>
)}
<DeleteApiKeyDialog
apiKeyInfo={deleteApiKeyInfo}
onClose={() => setDeleteApiKeyInfo(null)}
/>
</>
);
}

View File

@ -4,13 +4,14 @@
import { useQuery } from "@tanstack/react-query";
import { useAuthStore } from "@/stores/auth";
import { api } from "@/lib/api";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
// import { Card, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { useState } from "react";
import { BranchTable } from "./components/BranchTable";
import { BranchCard } from "./components/BranchCard";
import { BranchFormDialog } from "./components/BranchFormDialog";
import { DeleteBranchDialog } from "./components/DeleteBranchDialog";
import type { Company, Branch } from "@/types/company";
import { Plus } from "lucide-react";
export default function CompanyBranchesPage() {
const { token, user } = useAuthStore();
@ -30,7 +31,7 @@ export default function CompanyBranchesPage() {
const { data } = await api.get<Company>(
`/api/v1/admin/companies/${user?.companyId}?include=branches.apiKey`
);
console.log(data);
// console.log("branches.apiKey", data);
return data;
},
enabled: !!token && !!user?.companyId,
@ -57,11 +58,9 @@ export default function CompanyBranchesPage() {
if (!company) return <div> .</div>;
return (
<div className="container mx-auto py-6 space-y-6">
<Card>
<CardHeader>
<div className="flex justify-between items-center">
<CardTitle> </CardTitle>
<div className="container mx-auto py-6">
<div className="flex justify-between items-center mb-6">
<h1 className="text-3xl font-bold">/ </h1>
<Button
onClick={() => {
setDialogMode("add");
@ -69,18 +68,15 @@ export default function CompanyBranchesPage() {
setIsDialogOpen(true);
}}
>
<Plus className="mr-2 h-4 w-4" />
/
</Button>
</div>
</CardHeader>
<CardContent>
<BranchTable
<BranchCard
branches={company.Branches || []}
onEdit={handleEdit}
onDelete={handleDelete}
/>
</CardContent>
</Card>
{/* Dialogs */}
<BranchFormDialog

View File

@ -25,7 +25,7 @@ export interface Branch {
companyId: string;
createdAt: string;
updatedAt: string;
ApiKey?: ApiKey[];
ApiKeys?: ApiKey[];
}
export interface User {
@ -58,3 +58,23 @@ export interface ApiKey {
createdAt: string;
updatedAt: string;
}
export interface BranchFormData {
name: string;
address: string;
tel: string;
isActive: boolean;
}
export interface BranchFormDialogProps {
mode: "add" | "edit" | null;
branch: Branch | null;
isOpen: boolean;
onClose: () => void;
}
export interface BranchCardProps {
branches: Branch[];
onEdit: (branch: Branch) => void;
onDelete: (branchId: string) => void;
}

Binary file not shown.

View File

@ -1,2 +1,2 @@
fems:$7$101$Ach+k+7cDgannVqR$NmlplxX4UsCGcF4Z6zm+fGW+J4zGQO8n6qNLcXGVE8fxRTT9vpVrmYRRIA6uOOI6rrHzEn6MKNtxQRCZ1PpyfA==
nodered_user:$7$101$YtBaU4/sDUXIBCL5$G3aOkSmnpo2xTjtgPYo86YszNeYQlBhlnENG8AoYG/1zCQuVf8K318R7J9L6GZno6YjQ9BgSe7aNI9rDQPshoQ==
fems:$7$101$DReOc0qh4fHrvOsM$Jfh0DIt0Llwq30My4YnsIRnlW7BUb/kDH2zqKnYiUBuOpAIntmezbF1MYTAYJ1UOo032jQyV9IUGh+oMiHMjLg==
nodered_user:$7$101$539VdW5cs9LGnCl9$dCGBu0MZgktD2UOcbJmHZBsMoy8P9lk1zjLDl5yyzj2AV4uPh+8/1GVd/E+z+Sq4ssNIpzVT3P47yM4WJ8gpSA==

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,11 @@
"date": 1732570927269,
"name": "/app/logs/error/error-2024-11-26.log",
"hash": "38556fbbe3e1d2d094f6be5fddae74f769846d7424704a8ad290acc03c5baa12"
},
{
"date": 1732667260450,
"name": "/app/logs/error/error-2024-11-27.log",
"hash": "aaac408d9061c832f7dc73f8e3c456e371d23d73aed57068d6e215532ff4bac5"
}
],
"hashType": "sha256"

View File

@ -14,6 +14,11 @@
"date": 1732548728076,
"name": "/app/logs/info/info-2024-11-26.log",
"hash": "fd8c633eeb46930b2788b53ce7ebae1dd2b427ddb03b46ee39a86207d7172f2e"
},
{
"date": 1732633663556,
"name": "/app/logs/info/info-2024-11-27.log",
"hash": "210aa82c16bb88b4a750a458183869412cff9f0967c8c2c898d021e84b1bcb2e"
}
],
"hashType": "sha256"

View File

@ -1,171 +0,0 @@
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"info","message":"Info log rotated","newFilename":"/app/logs/info/info-2024-11-26.log","oldFilename":"/app/logs/info/info-2024-11-25.log","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:03:21"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:49:58"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 02:34:19"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:52:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:52:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:53:41"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 04:10:27"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 05:37:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:05:35"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:36:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:38:18"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:42:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:59:43"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 11:07:14"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 12:23:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 14:40:31"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:07:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:09:55"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:07:38"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:16:50"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.4:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:24:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.3:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:44:10"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:47:49"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:56:04"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:36:15"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:41:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:11:33"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:23:52"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 22:55:24"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 23:28:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}

View File

@ -14,6 +14,11 @@
"date": 1732548728182,
"name": "/app/logs/system/system-2024-11-26.log",
"hash": "b8f3a25c82337b2bb870ab9e4705680a040528cdc876977febe22f71cd99e359"
},
{
"date": 1732633663573,
"name": "/app/logs/system/system-2024-11-27.log",
"hash": "664d6884001d7c6bf73c07086d76b456c8c65e4bdebe6679895cae0ce18f72e3"
}
],
"hashType": "sha256"

View File

@ -1,171 +0,0 @@
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"info","message":"Info log rotated","newFilename":"/app/logs/info/info-2024-11-26.log","oldFilename":"/app/logs/info/info-2024-11-25.log","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:03:21"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:49:58"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 02:34:19"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:52:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:52:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:53:41"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 04:10:27"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 05:37:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:05:35"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:36:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:38:18"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:42:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:59:43"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 11:07:14"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 12:23:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 14:40:31"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:07:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:09:55"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:07:38"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:16:50"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.4:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:24:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.3:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:44:10"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:47:49"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:56:04"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:36:15"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:41:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:11:33"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:23:52"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 22:55:24"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 23:28:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}